您的位置:首页 > 数据库

sql 查询时间执行长的sql语句

2012-04-27 22:10 375 查看
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


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: