警告SQL Server上运行缓慢的查询

时间:2012-07-10 04:15:08

标签: sql sql-server sql-server-2008 alert

我想创建一个运行查询的SQL作业,如果需要花费一定的时间向我发送电子邮件警报。任何想法如何做到这一点。我正在运行SQL Server 2008。

2 个答案:

答案 0 :(得分:2)

要测量特定查询的运行时间,您可以简单地在作业本身内捕获它,然后引发事件以触发代理失败警报或使用dbmail在t-sql中自行发送电子邮件:

declare @Elapsed int,
        @Start datetime = getdate();

--your query
waitfor delay '00:00:03'
--

select @Elapsed = datediff(ss, @Start, getdate());

raiserror('Query ran for %d sec(s)', 10, 1, @Elapsed) with nowait;

此方法的缺点是您必须实际完成查询以测量运行时。

答案 1 :(得分:0)

您可以安装Nagios并编写一个测试来检查查询的运行时间,如果测试失败,请发送电子邮件给您。我们曾经在我的公司做同样的事情,现在我们正在使用另一个(昂贵的)工具Event247