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

18
我正在寻找一种定期(例如每周)在数据库中运行一些SQL语句以删除旧数据的方法。就我所见,有(至少)两种方法可以实现这一点:
  • 使用“维护计划”和“执行T-SQL语句任务”
  • 使用“SQL Server Agent作业”,并在该作业的“步骤”中指定语句
我的问题是:这两种可能性有什么区别,哪一种应该用于我的任务?
1个回答

22

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

将维护计划视为执行“某些操作”到您的数据库的步骤集合;这些步骤被封装到需要安排运行的计划中。

SQL Server代理是定期运行作业的服务;作业是任何按计划运行的任务。维护计划也是一个作业。

当您安排维护计划运行时,您实际上正在为SQL Server代理创建一个或多个作业来定期运行。

现在,关于选择哪种方式最好(是通过维护计划向导还是直接通过代理),我会说对于大多数数据库,维护计划向导已足够。您可以根据环境需求为维护计划创建的作业添加其他步骤。

这样讲清楚了吗?


那么维护计划只是一个图形用户界面,用于创建 SQL Server 代理作业,并将它们按特定顺序放置? - M4N
不完全正确;维护计划是创建特定类型作业的图形用户界面。您可以使用SQL Server Agent执行除维护计划之外的其他操作。 - Stuart Ainsworth
是的,这就是我的意思:维护计划是一个漂亮的 GUI,允许您设置 SQL Server 代理作业功能的子集。非常感谢! - M4N
1
似乎维护计划向导不会警告您如果“SQL Server代理”未运行,但是运行维护计划任务需要它。因此,请确保代理正在运行并设置为“自动”启动。 - Simon_Weaver

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接