![]() |
1
3
不,没有关于此的通知。 |
![]() |
2
2
我想补充一下Mladen Prajdic的正确答案,并从SQL Server Central改进kevchadders的答案。下面我建议的解决方案使用DBMail而不是SQLMail(SQLServerCentral的解决方案通过xp\u sendmail调用使用SQLMail)。从本质上讲,SQLMail使用MAPI并且更难设置,DBMail使用SMTP并且更容易设置。这是 more information 关于两者之间的区别。 我无法让SQLServerCentral的解决方案在SQLS2005中工作,下面的解决方案仅在我安装的基于版本的SQLServer2005-YMMV上进行了测试。
例如
http://www.sqlserverspecialists.co.uk/blog/_archives/2008/11/26/3996346.html |
![]() |
3
2
长时间运行作业的警报过程 http://www.sqlservercentral.com/scripts/Lock+and+Connection+Management/30144/ 如果您无法访问,请输入下面的文本。 对于定期运行且运行时间较短的作业,DBA可能希望知道作业何时运行的时间过长。在这种情况下,仅仅检查作业是否正在运行是不行的;需要能够确保它不会长时间运行。将作业id与sysprocesss中的进程id进行匹配需要对作业id进行一些重新安排以进行匹配。此脚本创建一个存储过程,该过程将接受作业名称、允许的最大运行时间和要通知的电子邮件地址。然后,它将使用作业名称重新设置作业编号的字符串,并检查sysprocesss(基于作为程序名称一部分的进程id),以确定作业运行的时间,然后在该时间超过“允许时间”参数时发出警报。
|
![]() |
4
2
你可以使用像这样的监控软件 Nagios 定期统计数据库中缓慢查询的数量。 我个人使用下面的查询与优秀的 PRTG . 我将其设置为每当我有5个以上的查询且每次查询的执行时间大于3秒时,或当最慢的查询耗时超过10秒时,向我发送电子邮件:
免责声明:此查询基于 https://stackoverflow.com/a/820252/638040
现在,如果要监视存储过程,只需使用
|
![]() |
5
0
您可以使用SQL事件探查器记录运行缓慢的查询,但这并不能帮助您发出警报。(我想您可以登录到一个文件或数据库表,然后让其他东西“侦听”并发出警报)。 如果您不熟悉SQL Profiler,请执行以下步骤: 您应该在服务器本身以外的其他设备上运行SQL Profiler。 从SQLProfilerTSQL_持续时间模板开始 将过滤器:持续时间:“大于”设置为1000(毫秒) 在过滤器中,您可以根据需要限制数据库、登录或类似内容。 在事件中,您可以仅限制存储过程(默认值还包括SQL语句) |
![]() |
6
0
如果你不是在寻找一个免费的解决方案,你可以看看 SQL Sentry . 它会满足你的要求,甚至更多。 |
![]() |
Duvan · 将逗号(,)替换为点(.)[副本] 2 年前 |
![]() |
Mateen Bagheri · 选择表的计数并选择其自身 2 年前 |
![]() |
SoT · SQL Server中求和函数的工作方式 2 年前 |
![]() |
NKAT · 将列值聚合到列表中会产生错误 2 年前 |
![]() |
deanpillow · 返回两列中有一个匹配值的记录 2 年前 |
![]() |
snowflakes74 · 在Dapper中异步查询多个结果 2 年前 |