1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| DECLARE @index_name sysname = 'myIndex';
WITH
XMLNAMESPACES (DEFAULT 'http://schemas.microsoft.com/sqlserver/2004/07/showplan')
, CTE AS
(
SELECT QP.query_plan
, CP.usecounts
, P.n.query('.') AS sql_stmt
FROM sys.dm_exec_cached_plans AS CP
OUTER APPLY sys.dm_exec_query_plan(CP.plan_handle) AS QP
CROSS APPLY QP.query_plan.nodes('//StmtSimple') AS P(n)
WHERE QP.query_plan.exist('//Object[@Index = sql:variable("@index_name")]') = 1
)
SELECT C.sql_stmt.value('StmtSimple[1]/@StatementText', 'varchar(max)') AS sql_text
, T.tbl.value('@Database','sysname') AS database_name
, T.tbl.value('@Schema','sysname') AS schema_name
, T.tbl.value('@Table','sysname') AS table_name
, T.tbl.value('@Index','sysname') AS index_name
,C.query_plan
FROM CTE AS C
CROSS APPLY C.sql_stmt.nodes('//Object') AS T(tbl)
WHERE T.tbl.exist('//Object[@Index = sql:variable("@index_name")]') = 1 |
Partager