sql 查询时间执行长的sql语句:
select * from sys.sysprocesses select * from sys.dm_exec_connections SELECT c.session_id,t.text FROM sys.dm_exec_connections c CROSS APPLY sys.dm_exec_sql_text (c.most_recent_sql_handle) t -- DECLARE @html NVARCHAR(MAX); with tb as ( SELECT c.session_id,t.text FROM sys.dm_exec_connections c CROSS APPLY sys.dm_exec_sql_text (c.most_recent_sql_handle) t ) select distinct x.spid,DB_NAME(x.dbid) as dbname,x.last_batch,x.hostname,x.program_name,x.nt_domain,x.nt_username,tb.text into #T from sys.sysprocesses x with (nolock) inner join tb on x.spid=tb.session_id where x.last_batch<dateadd(mi,-15,getdate()) and x.program_name<>'Report Server' and nt_domain<>'NT AUTHORITY' and x.status<>'sleeping' and x.hostname<>'HZCSRPTSRV' if exists(select top 1 * from #T) begin SET @html = '<style type=''text/css''>.header {text-align:center;font-weight:bold;white-space:nowrap;color:#7f7e82;} .cell_text {vertical-align:top;text-align:left;color:#333333;} .cell_num {vertical-align:top;text-align:right;color:#333333;}</style>' ; SET @html = @html + CAST(( SELECT 3 [@cellpadding],0 [@cellspacing],'font-family:verdana;font-size:10px;' [@style],1 [@border], ( SELECT [@class] = 'header', 'spid' [text()] FOR XML PATH('th'), TYPE) tr, ( SELECT [@class] = 'header', 'dbname' [text()] FOR XML PATH('th'), TYPE) tr, ( SELECT [@class] = 'header', 'last_batch' [text()] FOR XML PATH('th'), TYPE) tr, ( SELECT [@class] = 'header', 'hostname' [text()] FOR XML PATH('th'), TYPE) tr, ( SELECT [@class] = 'header', 'program_name' [text()] FOR XML PATH('th'), TYPE) tr, ( SELECT [@class] = 'header', 'nt_domain' [text()] FOR XML PATH('th'), TYPE) tr, ( SELECT [@class] = 'header', 'nt_username' [text()] FOR XML PATH('th'), TYPE) tr, ( SELECT [@class] = 'header', 'text' [text()] FOR XML PATH('th'), TYPE) tr, ( SELECT ( SELECT [@class] = 'cell_text', spid [text()] FOR XML PATH('td'), TYPE ), ( SELECT [@class] = 'cell_text', dbname [text()] FOR XML PATH('td'), TYPE ), ( SELECT [@class] = 'cell_text', last_batch [text()] FOR XML PATH('td'), TYPE ), ( SELECT [@class] = 'cell_text', hostname [text()] FOR XML PATH('td'), TYPE ), ( SELECT [@class] = 'cell_text', program_name [text()] FOR XML PATH('td'), TYPE ), ( SELECT [@class] = 'cell_text', nt_domain [text()] FOR XML PATH('td'), TYPE ), ( SELECT [@class] = 'cell_text', nt_username [text()] FOR XML PATH('td'), TYPE ), ( SELECT [@class] = 'cell_text', text [text()] FOR XML PATH('td'), TYPE ) FROM ( select spid,dbname,last_batch,hostname,program_name,nt_domain,nt_username,text from #T ) data FOR XML PATH('tr'), TYPE ) FOR XML PATH('table'), TYPE ) AS VARCHAR(MAX)); drop table #T; --Send Email EXEC msdb.dbo.sp_send_dbmail @profile_name = 'DBMAIL' ,@recipients = 'DarrenXie@QQ.com' ,@copy_recipients = 'QQQQQ@QQ.com' ,@subject = 'Camstar HZCSRPTSRV long runtime process' ,@body = @html ,@importance ='High' ,@body_format= 'HTML' end else begin drop table #T; end