Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 r2 SQL代理作业运行时警报_Sql Server 2008 R2_Sql Agent Job_Sql Job_Sql Agent - Fatal编程技术网

Sql server 2008 r2 SQL代理作业运行时警报

Sql server 2008 r2 SQL代理作业运行时警报,sql-server-2008-r2,sql-agent-job,sql-job,sql-agent,Sql Server 2008 R2,Sql Agent Job,Sql Job,Sql Agent,我希望能得到一些帮助,了解如何为特定的代理作业设置电子邮件警报,以便在运行持续时间超过30分钟时发送电子邮件警报 在作业本身中添加此步骤是否更容易?SQL代理GUI中是否有可用的方法,或者我是否必须创建新作业?我认为创建新作业的可能性较小,因为我必须在msdb中查询sysjobhistory;该值仅在作业完成后更新,因此没有帮助…我需要它在运行时检查1个特定代理作业的实时持续时间。。。 特别是因为作业碰巧遇到死锁(现在不再是问题),所以作业只是停留在锁定的表上,我只收到终端用户的通知,报告不会返

我希望能得到一些帮助,了解如何为特定的代理作业设置电子邮件警报,以便在运行持续时间超过30分钟时发送电子邮件警报

在作业本身中添加此步骤是否更容易?SQL代理GUI中是否有可用的方法,或者我是否必须创建新作业?我认为创建新作业的可能性较小,因为我必须在msdb中查询sysjobhistory;该值仅在作业完成后更新,因此没有帮助…我需要它在运行时检查1个特定代理作业的实时持续时间。。。
特别是因为作业碰巧遇到死锁(现在不再是问题),所以作业只是停留在锁定的表上,我只收到终端用户的通知,报告不会返回结果:S

第三方监控软件之外的最佳方法是创建一个高频SQL代理作业,在SPID期间对活动会话(由sp_who之类的人返回)运行查询。这样,每当spid超过阈值时,您就可以通过电子邮件发送此监视作业。或者,您可以让它将当前运行时与从sys.jobhistory表中收集的计算平均运行时进行比较。

Hmm,我明白您的意思,但SPID不是随机生成的分配给给定任务的数字吗?换句话说,作业的SPID在每次运行时都会有不同的SPID…?正确,但这是一个问题吗?使用msdb中的Sysjobs和sysprocesss的组合,您应该能够根据作业名称识别spid是什么!非常感谢!