web-dev-qa-db-ja.com

必要なインデックスを識別するためのツール

データベースの各テーブルに最適なインデックスを作成したい。このプロセスを支援するSQL Serverのクエリまたはツールはありますか?

8
mehdi lotfi

はい、データベースエンジンチューニングアドバイザーのようなツールがあります。 SQL Serverに付属しており、かなり厄介なことがいくつかあります。

  • これにより、非常に小さなワークロード(単一のクエリであっても)のみを考慮することができます。これにより、残りのワークロードに関係なく、その小さなワークロードのみに役立つインデックスが提案されます(インデックスは一部のクエリを高速化するのに役立ちますが、他のクエリ、特に挿入/更新/削除を遅くする可能性があります)。ビジネスサイクルの。
  • 多くの場合、末尾の列または含まれている列のみが異なる冗長インデックスが推奨されます。
  • それは本当に、本当に、本当に含まれたコラムが好きです-私はそれがフェチかもしれないと思います。

インデックスチューニングの適切なアプローチは、完全なビジネスサイクルにわたってワークロード全体を考慮することです。場合によっては、ホイールを再発明するよりも、サードパーティのツールを使用する方がよい場合があります。 DBSophic は、QTAワークロードアナライザーと呼ばれる無料の製品を作成します。これは、DTAよりもはるかに優れていると思います。昨年、私は ソリューションと統合したときのツールの動作についてブログSQL ServerのSQL Sentry Performance Advisor )(免責事項:I SQL Sentry)で機能します。

他にもいくつかのオプションがあります。たとえば、不足しているインデックスがDMVで報告され、どのインデックスが書き込まれているか(スペースを消費して挿入/更新/削除の操作に影響を与えている)を発見することもできますが、ほとんど(またはまれに) )ユーザークエリで使用:

ただし、DMVは最後のSQL Serverの再起動以降にのみ有効であり、適切なビジネスサイクルを必ずしもカバーしない(したがって、重要な情報が欠落している可能性がある)ことにも注意が必要です。

10
Aaron Bertrand

あなたが話しているツールはDatabase Engine Tuning Advisor(略してDTA)と呼ばれています。これは、いくつかの入力を受け取り、欠落しているインデックスなどの推奨事項を提供できます。ただし、これらは単なる提案であり、DTAの推奨事項を盲目的に実行するのではなく、慎重に検討する必要があります。

DTAチュートリアルのリンク

そのタイプの情報を収集するための組み込みDMVがあることにも注意する価値があります。

7
Thomas Stringer