Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как понять, какие поля индекса используются?  [new]
Kudep
Member

Откуда: From Russia
Сообщений: 146
Подскажите,
Есть некластерный индекс с тремя полями.
Я посмотрел различную статистику по использованию данного индекса: кол-во сканов, скиов, объем индексов, число записей в нем и т.д.
А есть ли способ, возможно каким-то образом подключить профилирование, чтобы увидеть:
1. какие именно поля используются из этого индекса
2. Для каких запросов скивел принял решение использовать данный индекс?
17 сен 12, 18:27    [13178341]     Ответить | Цитировать Сообщить модератору
 Re: Как понять, какие поля индекса используются?  [new]
Леша777
Guest
Как-то так можно найти где индекс используется среди планов закешированных на данный момент.


DECLARE @IndexName SYSNAME; 
SET @IndexName = N'IndexName';

SELECT OBJECT_NAME(t.objectid), t.[text]
FROM sys.dm_exec_cached_plans d
CROSS APPLY sys.dm_exec_query_plan(d.plan_handle) AS p
CROSS APPLY sys.dm_exec_sql_text(d.plan_handle) AS t
WHERE CAST(p.query_plan AS NVARCHAR(MAX)) LIKE N'%'+ @IndexName +'%';
17 сен 12, 18:40    [13178426]     Ответить | Цитировать Сообщить модератору
 Re: Как понять, какие поля индекса используются?  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Kudep
1. какие именно поля используются из этого индекса
Посмотреть в план запроса.
Kudep
2. Для каких запросов скивел принял решение использовать данный индекс?
Распарсить все кэшированные планы запросов в табличку, с именами таблиц/индексов, а потом сделать по ней поиск. У меня вроде где-то был подходящий скрипт, если найду - выложу.
Вариант предложенный Лешей тоже можно использовать, но этот запрос выдаст кучу планов, где этот индекс обновлялся, что обычно не очень интересно, таким образом прийдется перелопатить кучу планов вручную чтобы найти искомое.
18 сен 12, 01:14    [13179715]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить