Как узнать, какие хранимые процедуры используют какие индексы?

Я пытаюсь определить, какие индексы больше не используются в моей базе данных. Мне очень повезло, используя следующий запрос:

SELECT   OBJECT_NAME(S.[OBJECT_ID]) AS [OBJECT NAME],
         I.[NAME] AS [INDEX NAME],
         i.Type_Desc as [Index Type],
         USER_SEEKS,
         USER_SCANS,
         USER_LOOKUPS,
         USER_UPDATES
FROM     SYS.DM_DB_INDEX_USAGE_STATS AS S
         INNER JOIN SYS.INDEXES AS I
           ON I.[OBJECT_ID] = S.[OBJECT_ID]
              AND I.INDEX_ID = S.INDEX_ID 
WHERE i.name is not null
AND 
    (   OBJECT_NAME(S.[OBJECT_ID]) = 'Table1'
        OR
        OBJECT_NAME(S.[OBJECT_ID]) = 'Table2'
        OR
        OBJECT_NAME(S.[OBJECT_ID]) = 'Table3'
    )
ORder by S.[OBJECT_ID], user_Seeks desc , user_scans desc

Теперь я хотел бы выяснить, что вызывают хранимые процедуры для поиска, сканирования и поиска, о которых сообщает вышеуказанный запрос. Хранится ли эта информация в системных представлениях / таблицах?

ПОЯСНЕНИЯ

Как указал gbn, хранимая процедура не использует индекс напрямую, она использует таблицу, которая использует индекс. Ниже приводится объяснение, которое, я надеюсь, прояснит то, что я пытаюсь спросить здесь.

Могу ли я определить, какой SQL был запущен, что вызвало использование вышеуказанных индексов? Например, если один из индексов, о которых сообщается, имеет 10 User_Seeks, можно было бы определить, чтоexec sp_1 вызвал это использование 7 раз иexec sp_2 вызвал это использование 3 раза?

Ответы на вопрос(5)

Ваш ответ на вопрос