web-dev-qa-db-ja.com

欠落しているインデックスDMVの原因となっているクエリを見つける

特定のインデックスの作成を提案する、欠落したインデックスDMVの原因となっているクエリを見つけるにはどうすればよいですか?

ありがとうございました。

11

短い答え:100%の精度では不可能です。

長い答え:プランキャッシュをクエリして、インデックスが見つからないという警告のあるプランを特定し、その結果をsys.dm_db_missing_index_ * DMVで見つかったものと比較できます。 これは、プランキャッシュのクエリに使用できるスクリプトです 。何らかの理由でプランがキャッシュされないか、キャッシュから押し出された場合、一致するものは見つからないため、短い答えに戻ります。

100%確実にするには、ワークロードをトレースし、インデックスが欠落しているプラ​​ンをキャプチャする必要があります。それは軽量ではなく、簡単ではありません。 これを行うスクリプトは次のとおりです 。少しの努力で、拡張イベントに移植できます。

11
spaghettidba

プランキャッシュをクエリして、不足しているインデックスを見つける計算に含まれるインデックスを探すDMVは、貼り付けたリンクの下から見ることができます。

https://www.sqlskills.com/blogs/jonathan/finding-what-queries-in-the-plan-cache-use-a-specific-index/

同じことについての詳細は、リンクも参照してください

http://blogs.lessthandot.com/index.php/datamgmt/dbadmin/sql-server-dba-tip-missing-index-dmv/

3
KASQLDBA