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


8

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


1
推奨されるインデックスはありますが、これらは非常に制限されているため、何をしているのかを知っている誰かがまだ評価する必要があります。インデックス作成について具体的な質問がありますか?
JNK、2012年

1
パフォーマンスが低いクエリ/テーブルはありますか?JNKが暗示するように、実際には、何をしているのかがわかっている場合にのみインデックスを追加する必要があります(そして、それをテストします)。テーブルにインデックス(巨大なテーブル、遅いクエリ、明らかなクラスター化インデックス)が必要であると考える理由がない限り、それらを追加して試してはいけません
Ben Brocka

回答:


10

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

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

インデックスチューニングの適切なアプローチは、完全なビジネスサイクルにわたってワークロード全体を考慮することです。場合によっては、ホイールを再発明するよりも、サードパーティのツールを使用する方が良い場合があります。DBSophicは、QTAワークロードアナライザーと呼ばれる無料の製品を作成します。これは、DTAよりもはるかに優れていると思いますが、ライセンスされたツール(Qureワークロードオプティマイザー)は、その機能においてまったく驚異的です。昨年、SQL Sentryと統合したときにツールがどのように機能するかについてブログ書きました)。

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

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


7

あなたが話しているツールは、データベースエンジンチューニングアドバイザー(略してDTA)と呼ばれます。これは、いくつかの入力を受け取り、欠落しているインデックスなどの推奨事項を提供できます。ただし、これらは単なる提案であり、DTAの推奨事項を盲目的に実行するのではなく、慎重に検討する必要があることに注意してください。

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.