SQL Server:我应该使用“代理作业”还是“维护计划”来删除旧数据?

时间:2009-10-05 11:35:43

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

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

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

我的问题是:这两种可能性之间有什么区别?我应该将哪一种用于我的任务?

1 个答案:

答案 0 :(得分:18)

这不是一个或两个选择;有一些重叠。

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

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

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

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

这有意义吗?