まぁ、とりあえず色々触っていきましょう
SSMS(Microsoft SQL server Management studio でSelect文の処理効率化のため、他の開発担当よりIndexの作成依頼を受けました。
トランザクションデータ約1000万件と顧客情報100万件のjoinの際、Primary keyがそれぞれ違うので、どちらかのテーブルに反対のテーブルのPrimary keyと同じレイアウトのIndexを作れば早くなるはず!
という依頼でした。
INTIはこういうの鵜呑みにしません。
まずは疑って実験。処理対象となっているDBのバックアップを開発機へロードしてIndex検証を開始。
その際、実行プランを見ると「不足しているインデックス」なる文字が。
右クリックメニュー「インデックス~」というメニューを選択すると、推奨Indexのcreate文が。
これは中々参考になりますね。
もちろん、大量データテーブルだからこそIndexを作成するのであり、Index作るほどのテーブルは様々な角度から参照されるので一つのselect文に特化したIndexを作ってそれで良しというわけではありません。
ただ、重めのSQLや重要度の高いSQLの実行プランを確認した上で、どういったIndexを作成するのが最適化という参考にはなるかなと思いました。
(調子にのって大量にIndex作らないように注意ですが)