Bạn có số lần thực thi cho tất cả các câu lệnh trong sys.dm_exec_query_stats và bạn có thể trích xuất XML kế hoạch bằng cách sử dụng sys.dm_exec_query_plan . Kế hoạch chứa các chi tiết như toán tử quét được sử dụng, vì vậy giữa hai toán tử này, bạn có thể tạo ra nhiều thông tin từ những gì bạn yêu cầu. Ví dụ:truy vấn sau sẽ hiển thị cho bạn các toán tử IndexScan trong các câu lệnh thường chạy từ các kế hoạch được lưu trong bộ nhớ cache gây ra nhiều lần đọc logic:
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;