0

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

4

2 回答 2

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;

这种方法的缺点是您必须实际完成查询才能测量运行时间。

于 2012-07-10T06:36:02.343 回答
0

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

于 2012-07-10T04:18:28.957 回答