【问题标题】:Determine the expected run times of an SQL agent within a timeframe确定某个时间范围内 SQL 代理的预期运行时间
【发布时间】:2014-07-25 08:55:36
【问题描述】:

是否有可靠的方法来确定给定 sql 代理将在给定时间范围内运行的时间?

我有一个Microsoft.SqlServer.Management.Smo.Agent.Job 对象,但希望避免重新创建逻辑来根据其时间表计算运行时间。我希望有一些内置功能。

【问题讨论】:

    标签: c# sql-server sql-agent-job


    【解决方案1】:

    不,很遗憾没有。当您的工作有多个计划时,检测这一点会更加复杂。

    但是,对于只有 1 个时间表的简单情况,我认为您可以执行以下操作:

    • 查询作业的NextRunDate
    • 将计划的ActiveStartDate 设置为下一个运行日期。
    • 重复,直到你覆盖你的间隔。
    • 最后确保将ActiveStartDate 设置为其初始值。

    您只能在创建作业时执行此操作一次,并保留结果。因此,您消除了每次需要评估运行时间时修改作业的风险(因为更改 ActiveStartDate 实际上会修改计划)。

    【讨论】:

    • 开箱即用的好想法!请注意,我喜欢它调整计划的事实,但看起来与我将获得的一样好,而无需手动重新创建计划程序的逻辑。
    猜你喜欢
    • 1970-01-01
    • 2017-05-09
    • 2011-02-28
    • 2016-06-21
    • 2023-03-03
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多