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