06-SQLServer查看执行超过30秒的慢SQL
1、脚本
SET NOCOUNT ON SELECT total_elapsed_time / 1000 /1000 N'总执行时间(s)' , execution_count N'执行次数' , ( total_elapsed_time / execution_count ) / 1000 /1000 N'平均执行时间(s)' , SUBSTRING(st.text, ( qs.statement_start_offset / 2 ) + 1, ( ( CASE statement_end_offset WHEN -1 THEN DATALENGTH(st.text) ELSE qs.statement_end_offset END - qs.statement_start_offset ) / 2 ) + 1) N'执行语句' FROM sys.dm_exec_query_stats AS qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st WHERE SUBSTRING(st.text, ( qs.statement_start_offset / 2 ) + 1, ( ( CASE statement_end_offset WHEN -1 THEN DATALENGTH(st.text) ELSE qs.statement_end_offset END - qs.statement_start_offset ) / 2 ) + 1) NOT LIKE '%fetch%' and (( total_elapsed_time / execution_count ) / 1000) >30000 ORDER BY total_elapsed_time / execution_count DESC;