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

M4N*_*M4N 15 sql-server sql-server-agent sql-server-2005 maintenance-plan

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

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

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

Stu*_*rth 18

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

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

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

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

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

那有意义吗?