--------------------------------------------------
◆実行されているSQLの性能解析
--------------------------------------------------
以下SQLで、実行されているSQLの実行回数、実行時間、実行計画等の解析を行える。
SELECT
SUBSTRING
(qt.text,
(qs.statement_start_offset/2)+1,
((CASE qs.statement_end_offset
WHEN -1 THEN DATALENGTH(qt.text)
ELSE qs.statement_end_offset
END -qs.statement_start_offset)/2
)+1) as [SQL文],
--以下項目はhttps://msdn.microsoft.com/ja-jp/library/ms189741.aspx参照
qs.max_logical_reads as [論理読取数(最大)],
qs.execution_count as [実行回数],
qs.total_elapsed_time as [実行時間(累積)],
qs.total_elapsed_time / qs.execution_count as [実行時間(平均)],
qs.last_execution_time as [実行日時],
qp.query_plan as [実行計画]
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qp
WHERE qt.encrypted = 0
AND qt.text like '%table1%' --SQL文に使用されている文字列を指定
ORDER BY qs.max_logical_reads desc