wherecounter_name='User Connections'
if@conn>=550--根据用户链接数来收集信息和触发报警
begin
--active requests
Select@activeconn=isnull(SUM(cntr_value),0) fromsys.dm_os_performance_counters with(nolock)
wherecounter_name ='Active requests'
groupbycounter_name
set@count=1
if@activeconn>=40 --根据活动链接数来判断
begin
while1=1 --循环收集信息
begin
execRecodeAndAlertInfo
if(@count%5=0) --连续次就发邮件
begin
set@subject='Server:'+@@SERVERNAME+' Connections Alert'
SET@body='Server:'+@@SERVERNAME+CHAR(13)+'; UserConnections:'+cast(@connasvarchar)+CHAR(13)+'; ActiveRequests:'+cast(@activeconnasvarchar)
EXECmsdb.dbo.sp_send_dbmail
@recipients=N'Ken@xxx.com;itmon@xxx.com',
@body=@body,
@body_format='TEXT',
@subject=@subject,
@profile_name='dba_profile'--需要配置该模板
end
Select@activeconn=isnull(SUM(cntr_value),0) fromsys.dm_os_performance_counters with(nolock)
wherecounter_name ='Active requests'
groupbycounter_name
if@activeconn>=40
waitfordelay '00:00:05'
else
break;
if@count>50
break;
set@count=@count+1;
end
end
else--根据Blocked 百分比来收集信息和触发报警
begin
select@spidcount=count(0) fromsys.sysprocesses with(nolock) wherespid>50
select@blockedcount=count(0) fromsys.sysprocesses with(nolock) wherespid>50andblocked<>0
--计算百分比
set@spidblocked=@blockedcount/@spidcount
set@count=1
if(@spidblocked>=0.1) --10%时,记录信息
begin
while1=1 --循环收集信息
begin
execRecodeAndAlertInfo
if(@count%5=0or@spidblocked>=0.15) --连续5次阻塞比率大于10%或者阻塞比率大于等于15%时,记录信息并发生报警邮件
begin
set@subject='Server:'+@@SERVERNAME+' Blocked Alert'
SET@body='Server:'+@@SERVERNAME+CHAR(13)+'; BlockedCount:'+cast(@blockedcountasvarchar)+CHAR(13)+'; SPIDCount:'+cast(@spidcountasvarchar)
EXECmsdb.dbo.sp_send_dbmail
@recipients=N'Ken@xxx.com',
@body=@body,
@body_format='TEXT',
@subject=@subject,
@profile_name='dba_profile'
end
select@spidcount=count(0) fromsys.sysprocesses with(nolock) wherespid>50
select@blockedcount=count(0) fromsys.sysprocesses with(nolock) wherespid>50andblocked<>0
set@spidblocked=@blockedcount/@spidcount
if@spidblocked>=0.1
waitfordelay '00:00:05'
else
break;
if@count>50
break;
set@count=@count+1;
end
end
end
end
4. 查看信息:
USE[m