MsSQL - Performance Script and Monitoring Scripts
SELECT TOP 10
qs.total_worker_time AS [Total CPU Time (ms)],
qs.execution_count AS [Execution Count],
qs.total_worker_time / qs.execution_count AS [Avg CPU Time (ms)],
qs.total_elapsed_time / qs.execution_count AS [Avg Elapsed Time (ms)],
qs.total_logical_reads / qs.execution_count AS [Avg Logical Reads],
SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,
((CASE qs.statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE qs.statement_end_offset
END - qs.statement_start_offset)/2) + 1) AS [Query Text],
qp.query_plan AS [Query Plan]
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qp
ORDER BY qs.total_worker_time DESC;