本文共 1696 字,大约阅读时间需要 5 分钟。
--当前正在执行的SQL
SELECT [Spid] = session_id , ecid , [Database] = DB_NAME(sp.dbid) , [User] = nt_username , [Status] = er.status , [Wait] = wait_type , [Individual Query] = SUBSTRING(qt.text, er.statement_start_offset / 2, ( CASE WHEN er.statement_end_offset = -1 THEN LEN(CONVERT(NVARCHAR(MAX), qt.text)) * 2 ELSE er.statement_end_offset END - er.statement_start_offset ) / 2) , [Parent Query] = qt.text , Program = program_name , hostname , nt_domain , start_time FROM sys.dm_exec_requests er INNER JOIN sys.sysprocesses sp ON er.session_id = sp.spid CROSS APPLY sys.dm_exec_sql_text(er.sql_handle) AS qt WHERE session_id > 50 -- Ignore system spids. AND session_id NOT IN ( @@SPID ) -- Ignore this current statement. ORDER BY 1,2--SQLServer找出执行慢的SQL语句
SELECT ( total_elapsed_time / execution_count ) / 1000 N'平均时间ms' , total_elapsed_time / 1000 N'总花费时间ms' , total_worker_time / 1000 N'所用的CPU总时间ms' , total_physical_reads N'物理读取总次数' , total_logical_reads / execution_count N'每次逻辑读次数' , total_logical_reads N'逻辑读取总次数' , total_logical_writes N'逻辑写入总次数' , execution_count N'执行次数' , 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'执行语句' , creation_time N'语句编译时间' , last_execution_time 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%' ORDER BY total_elapsed_time / execution_count DESC;转载地址:http://wzrli.baihongyu.com/