Anda memiliki jumlah eksekusi untuk semua pernyataan di sys.dm_exec_query_stats , dan Anda dapat mengekstrak XML paket menggunakan sys.dm_exec_query_plan . Paket berisi detail seperti operator pemindaian yang digunakan, jadi di antara keduanya Anda dapat membuat banyak informasi dari apa yang Anda minta. Misalnya, kueri berikut akan menunjukkan kepada Anda operator IndexScan dalam pernyataan yang sering dijalankan dari paket yang di-cache yang menyebabkan banyak pembacaan logis:
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;