Sie haben die Anzahl der Ausführungen für alle Anweisungen in sys.dm_exec_query_stats , und Sie können die Plan-XML mit sys.dm_exec_query_plan extrahieren . Der Plan enthält Details wie verwendete Scan-Operatoren, sodass Sie aus diesen beiden Informationen viele Informationen aus Ihren Fragen zusammenstellen können. Die folgende Abfrage zeigt Ihnen beispielsweise die IndexScan-Operatoren in den häufig ausgeführten Anweisungen aus den zwischengespeicherten Plänen, die viele logische Lesevorgänge verursachen:
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;