Du har antallet af henrettelser for alle udsagn i sys.dm_exec_query_stats , og du kan udtrække plan-XML ved hjælp af sys.dm_exec_query_plan . Planen indeholder detaljer som brugte scanningsoperatorer, så mellem disse to kan du finde på en masse information ud fra det, du spørger om. For eksempel vil følgende forespørgsel vise dig IndexScan-operatorerne i de ofte kørende sætninger fra de cachelagrede planer, der forårsager mange logiske læsninger:
with xmlnamespaces ('http://schemas.microsoft.com/sqlserver/2004/07/showplan' as sp)
select top(100)
q.total_logical_reads, q.execution_count
, x.value(N'@Database', N'sysname') as [Database]
, x.value(N'@Schema', N'sysname') as [Schema]
, x.value(N'@Table', N'sysname') as [Table]
, x.value(N'@Index', N'sysname') as [Index]
, substring(t.text, q.statement_start_offset/2,
case when 0 < q.statement_end_offset then (q.statement_end_offset - q.statement_start_offset)/2
else len(t.text) - q.statement_start_offset/2 end) as [Statement]
from sys.dm_exec_query_stats q
cross apply sys.dm_exec_query_plan(plan_handle)
cross apply sys.dm_exec_sql_text(sql_handle) as t
cross apply query_plan.nodes(N'//sp:IndexScan/sp:Object') s(x)
where execution_count > 100
order by total_logical_reads desc;