【问题标题】:SQL Server: should I use an "Agent Job" or a "Maintenance Plan" to delete old data?SQL Server:我应该使用“代理作业”还是“维护计划”来删除旧数据?
【发布时间】:2009-10-05 11:35:42
【问题描述】:

我正在寻找一种方法来定期(例如每周)在数据库中运行一些 SQL 语句以删除旧数据。据我所知,有(至少)两种方法可以做到这一点:

  • 使用“维护计划”和“执行 T-SQL 语句任务”
  • 使用“SQL Server 代理作业”并在该作业的“步骤”中指定语句

我的问题是:这两种可能性有什么区别,我应该使用哪一种来完成我的任务?

【问题讨论】:

    标签: sql-server sql-server-2005 sql-server-agent maintenance-plan


    【解决方案1】:

    这不是一个非此即彼的选择;有一些重叠。

    将维护计划视为对数据库“做某事”的一系列步骤;这些步骤被封装在一个需要安排运行的计划中。

    SQL Server 代理是定期运行作业的服务;作业是计划运行的任何东西。维护计划是一项工作。

    当您安排运行维护计划时,实际上是在创建一个作业(或多个作业;感谢 DJ),以便 SQL Server 代理定期运行。

    现在,至于选择哪种方式最好(通过维护计划向导或直接通过代理),我想说对于大多数数据库来说,维护计划向导就足够了。您可能希望向维护计划创建的作业添加其他步骤,但这取决于您的环境。

    这有意义吗?

    【讨论】:

    • 所以维护计划只是一个图形用户界面,用于创建 SQL Server 代理作业,并将它们按特定顺序排列?
    • 不完全;维护计划是用于创建特定类型作业的图形用户界面。除了维护计划之外,您还可以使用 SQL Server 代理执行其他操作。
    • 是的,这就是我的意思:维护计划是一个不错的 GUI,允许您设置 sql server 代理作业功能的子集。非常感谢!
    • 如果“sql server agent”没有运行,维护计划向导似乎不会警告您,但它是运行维护计划任务所必需的。所以请确保代理正在运行并设置为“自动”启动
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-15
    • 1970-01-01
    • 2017-10-15
    • 2010-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多