SQL Server作業における車輪の再開発を避ける方法
データベースの新機能を素早くテストしたり、クライアント向けのデモ環境を構築したりする必要があるとします。通常、これは以下のような旅になります。テーブル構造を考え出し、少なくともそれなりの現実的なデータで埋め、インデックスのことも忘れずに対応する必要があります。Microsoftはずっと前に、データ作業に必要なすべてを一箇所に集めることでこの問題を解決しました。

このリポジトリとは
sql-server-samplesプロジェクトは、Microsoftの公式「サンドボックス」です。コードスニペットだけでなく、クラシックなSQL ServerからAzure SynapseやSQL Edgeまで、Azure Dataファミリー全体のための本格的なサンプルが含まれています。
ここでの主な価値は、 готовые базы данныхとシナリオです。SQLの学習を始めたばかりの方や、In-Memory OLTPのような複雑な機能が実際の条件でどのように動作するかを確認したい方に、このリポジトリは数十時間を節約してくれます。
このセットの活用方法
このリポジトリにはいくつか主要な領域があり、それぞれが特定の開発者やデータベース管理者のタスクに対応しています。
あらゆるタスクに対応した готовые базы данных
空のテーブルではなく、データが投入されたプロジェクトが手に入ります。最も有名なものは以下の通りです:
- Wide World Importers。SQL Server 2016以降向けの現代的な標準です。クラシックなトランザクション(OLTP)から分析用キューブ(OLAP)まで、すべてが揃っています。
- AdventureWorks。数世代の管理者がお世話になった经典です。軽量版から大規模データウェアハウスまで、様々なバリエーションが用意されています。
- Northwind。構造を視覚化したい方向けで、リリースにはこのデータベースのER図すら含まれています。
パフォーマンスデモンストレーション
最も興味深いセクションの1つが、In-Memory OLTP Performance Demoです。これは、通常のテーブルとメモリ最適化テーブルの速度差を明確に示す готовые демоです。新しい技術への移行を経営陣に説得する必要がある場合、こうした数字はどんなプレゼンテーションよりも効果的です。
IoTシナリオ
ハードウェアを扱う方のために、IoT Smart Gridがあります。これは、SQL Serverがセンサーからの大規模なデータストリームをどのように処理するかを示す例です。データ取り込みからリアルタイム分析まで、全体的なサイクルを示しています。
使用方法
このリポジトリは非常に大きく、500MB以上あります。1つのスクリプトのためだけにクローンを作成するのは意味がありません。開発者们はこれを予見しており、スパースチェックアウトを提供しています。これにより、必要なフォルダのみをダウンロードできます。
機能とデモ資料のみを取得する方法:
git clone -n https://github.com/Microsoft/sql-server-samples
cd sql-server-samples
git config core.sparsecheckout true
echo samples/features/* >> .git/info/sparse-checkout
echo samples/demos/* >> .git/info/sparse-checkout
git checkout
ちなみに、コードのビルドたくない場合は、Releasesセクションを確認してください。 готовые .bakと.bacpacファイルがあります。数クリックでサーバーにデプロイできます。
実践的なユースケース
私はよく2つのシナリオでこれらの資料を使用しています。1つはトレーニング用です。パーティショニングやColumnstoreインデックスの動作を同僚に説明する必要がある場合、ナプキンに図を描くよりもWide World Importersでデモする方が簡単です。
2つ目に、負荷テストの優れた基盤になります。ランダムなノイズを生成する代わりに、AdventureWorksの構造を使用してクエリを実行します。これにより、より予測可能で現実的な結果が得られます。
microsoft/sql- server- samplesリポジトリは次のような場合に役立ちます:
- アプリケーションのデバッグに現実的なデータが必要な開発者。
- エンジン作成者本身からデータベース設計のベストプラクティスを学ぶアーキテクト。
- ゼロから環境をセットアップする時間をかけずにAzure SynapseやSQL Edgeを試したいすべての人。
毎日勉強するプロジェクトではありませんが、ブックマークしておく価値はあります。最適化や移行タスクが発生したときに、データジェネレーターを手で書かなくてよかったと自分に感謝するでしょう。
関連プロジェクト