Поиск запроса, вызывающего отсутствие индекса DMV

Ответы:

12

Краткий ответ: вы не можете со 100% точностью.

Длинный ответ: вы можете запросить кэш планов, чтобы определить планы с отсутствующими индексными предупреждениями и сравнить результаты с результатами, найденными в sys.dm_db_missing_index_ * DMV. Вот скрипт, который вы можете использовать для запроса кеша плана . Если по какой-либо причине план не кэшируется или не выгружается из кеша, совпадений не будет, поэтому мы вернемся к краткому ответу.

Чтобы быть на 100% уверенным, вам придется отслеживать рабочую нагрузку и фиксировать планы с отсутствующими индексами. Это не легкий и не тривиальный. Вот скрипт для этого . С небольшим усилием его можно перенести на расширенные события.

spaghettidba
источник
3

Запрос к кэшу плана для поиска индексов, участвующих в вычислении поиска отсутствующих индексов 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/

KASQLDBA
источник