Advertisement
mike_fal

Cache mining

Apr 21st, 2014
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 1.11 KB | None | 0 0
  1.  
  2. DECLARE @TableName sysname = 'Journal';
  3. SET @TableName = QUOTENAME(@TableName,'[');
  4.  
  5. WITH XMLNAMESPACES (DEFAULT 'http://schemas.microsoft.com/sqlserver/2004/07/showplan')
  6. ,IndexSearch
  7. AS (
  8. SELECT qp.query_plan
  9. ,cp.usecounts
  10. ,ix.query('.') AS StmtSimple
  11. FROM sys.dm_exec_cached_plans cp
  12. OUTER APPLY sys.dm_exec_query_plan(cp.plan_handle) qp
  13. CROSS APPLY qp.query_plan.nodes('//StmtSimple') AS p(ix)
  14. WHERE query_plan.exist('//Object[@Table = sql:variable("@TableName")]') = 1
  15. )
  16. SELECT StmtSimple.value('StmtSimple[1]/@StatementText', 'VARCHAR(4000)') AS sql_text
  17. ,ixs.usecounts
  18. ,obj.value('@Database','sysname') AS database_name
  19. ,obj.value('@Schema','sysname') AS schema_name
  20. ,obj.value('@Table','sysname') AS table_name
  21. ,obj.value('@Index','sysname') AS index_name
  22. ,ixs.query_plan
  23. ,obj.query('//SeekPredicates/SeekPredicateNew/SeekKeys/Prefix/RangeColumns/ColumnReference[@Table = sql:variable("@TableName")]') as seekpred
  24. FROM IndexSearch ixs
  25. CROSS APPLY StmtSimple.nodes('//Object') AS o(obj)
  26. WHERE obj.exist('//Object[@Table = sql:variable("@TableName")]') = 1
  27. and obj.value('@Table','sysname') = @TableName
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement