这篇文章主要介绍如何使用长时间运行作业的警报监控SQL代理,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!当你必须在繁忙的生产服务器上管理数百个计划作业时,不可避免地会出现作业需要很长时间才能完成的情况,从而导致大量等待或影响其他进程的性能。在深入调查性能下降的原因之前,我们想知道一项工作何时开始花费太长时间。有些工作不仅需要很长时间才能完成,而且它们可能需要比通常使用的时间更长的时间才能完成。哪些工作的表现正在倒退?缓慢的工作现在是否一直成为问题,还是一次性发生?当需要调查一项工作时,通常在时间限制内,运行时长是我们分免费云主机域名析中首先要考虑的指标。为了将当前运行时间与同一作业之前执行的持续时间进行比较,我们通常会查看作业的前一个运行时间的历史记录,并看到当前运行时间比之前的几个持续时间长。然而,如果你以 DBA、开发人员或 DevOps 工程师的身份管理 500 份工作,一次调查一项工作的任务可能需要半天时间,但仍然无法让你更接近结论。你可能需要检查 20 个作业,你不想一直单独照看每份工作。在这种情况下,发送到你的邮箱的自动警报会派上用场。本文中的解决方案是创建一个将接受参数的存储过程。此参数是用于计算过去作业平均持续时间的天数。该过程会生成一份报告,显示当前正在运行的作业的性能正在下降(退化)以及可选的电子邮件警报。理解这种方法的某些步骤以及我们已经在生产中使用的方便的存储过程如下所示(在运行受监控作业的同一服务器上安排为单独的作业(有关此类作业的脚本,请参阅“附录”) ) 以帮助您收到有关在轮询时正在退化的一个或多个作业的电子邮件警报。我们asp_long_running_Regressing_Jobs_Alerts
每分钟在我们的环境中执行 Stored Proc
,,因为我们的作业持续时间从几秒到几小时不等。在给予之前SP DDL,SP 的某些组件被分解为先决条件(小尺寸代码片段),有助于全面了解警报 SP。所需工具列表:SQL Server
(以下代码在 2012 及更高版本上测试)这里的目标是将每个当前正在运行的作业的持续时间与给定时间段内同一作业的所有运行时间的平均持续时间进行比较。注意:在继续编译下面给出的存储过程之前,请确保你在要分析计划作业的环境中具有高访问权限。理想情况下,管理员。要检查你的访问级别(如果你不是该服务器的管理员,请运行此或类似的 T-SQL 语句。如果你没有此查询的结果,则你没有对 MSDB 表的选择权限。下面存储过程的 T-SQL DDL 代码可以在您选择的任何数据库中编译。我们使用专用DBA_db
于此类管理 SP。除了 SP 标头中列出的调用示例之外,以下是一个典型调用的示例:SP 的此调用意味着以下内容:给我一份报告(或警报),说明在 45 天内完成相同作业的平均运行时间所需时间的两倍的所有作业。通过电子邮件将此类报告发送给我 (myName
) 和我的同事 (myAssociateName
)。不要将此数据保存到基线表,并且不包括持续时间为零的作业。图 2:SSMS 中对 SP 的另一个类似调用的示例输出:在这种情况下,显示现在花费的时间比过去 2 天花费 AVG 多 10% 的作业。下图显示了由 SP 生成的电子邮件警报在 HTML 中的外观示例。此电子邮件通知仅在 时通过调用此 SP 生成parameter @bEmail = 1
。图 3电子邮件主题行如下:
作业花费的时间比最近的基线持续时间长;yyyy-mm-dd mm:ss
如果你决定将报告保存到表格,请执行以下操作:除了通过电子邮件或在 SSMS 中直接运行 SP 收到警报外,还需要一个表格。用@bSaveToTable = 1
呼叫 SP 。(它是 SP 的依赖项之一,因此即使此时您没有将结果放入表格,也最好创建它)。这是表 DDL:此调用具有完整功能的 SP 的示例,包括保存到表格和电子邮件警报 (bSaveToTable= 1, bEmail=1
):将当前运行的作业与其过去 30 天的历史进行比较,并报告当前持续时间超过 30 天平均值 1.5 倍的每个作业。不要发送警报电子邮件,也不要将此信息保存到基线表:将当前运行的作业与其过去 60 天的历史进行比较,并报告当前持续时间超过 60 天平均值 2 倍的每个作业。向默认收件人(列表)发送电子邮件警报,并且不要将此信息保存到基线表:注意:强烈建议对参数进行赋值,明确命名每个参数。给出上述示例是为了简洁。本文描述了管理员在高度自动化的工作负载环境中管理和分析多个作业的性能问题时面临的问题。我在此处共享的存储过程允许管理员在某些作业在给定时间段内花费的时间超过其过去平均持续时间时收到警报。下面是用于创建名为 [MyMonitoredServerName_Maintenance- Regressing Jobs
]的计划作业的 DDL,以asp_long_running_Regressing_Jobs_Alerts
每分钟执行一次并向BigShotAdminBigShotAdmin@MyCoDomain.com
发送警报。享受有关回归/长时间运行的 SQL 代理作业的警报!以上是“如何使用长时间运行作业的警报监控SQL代理”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注百云主机行业资讯频道!
这篇“怎么开启Laravel对PHP8的支持”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么开启Laravel对PHP8的支持”文章吧。 la…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。