データベースの各テーブルに最適なインデックスを作成したい。このプロセスを支援するSQL Serverのクエリまたはツールはありますか?
はい、データベースエンジンチューニングアドバイザーのようなツールがあります。 SQL Serverに付属しており、かなり厄介なことがいくつかあります。
インデックスチューニングの適切なアプローチは、完全なビジネスサイクルにわたってワークロード全体を考慮することです。場合によっては、ホイールを再発明するよりも、サードパーティのツールを使用する方がよい場合があります。 DBSophic は、QTAワークロードアナライザーと呼ばれる無料の製品を作成します。これは、DTAよりもはるかに優れていると思います。昨年、私は ソリューションと統合したときのツールの動作についてブログ ( SQL ServerのSQL Sentry Performance Advisor )(免責事項:I SQL Sentry)で機能します。
他にもいくつかのオプションがあります。たとえば、不足しているインデックスがDMVで報告され、どのインデックスが書き込まれているか(スペースを消費して挿入/更新/削除の操作に影響を与えている)を発見することもできますが、ほとんど(またはまれに) )ユーザークエリで使用:
ただし、DMVは最後のSQL Serverの再起動以降にのみ有効であり、適切なビジネスサイクルを必ずしもカバーしない(したがって、重要な情報が欠落している可能性がある)ことにも注意が必要です。
あなたが話しているツールはDatabase Engine Tuning Advisor(略してDTA)と呼ばれています。これは、いくつかの入力を受け取り、欠落しているインデックスなどの推奨事項を提供できます。ただし、これらは単なる提案であり、DTAの推奨事項を盲目的に実行するのではなく、慎重に検討する必要があります。
そのタイプの情報を収集するための組み込みDMVがあることにも注意する価値があります。