1. SQL server维护计划概述
在 SQL Server 数据库中可以使用维护计划向导创建单个服务器或多服务器的维护计划。维护计划向导用于创建 Microsoft SQL Server 代理可定期自动运行或手动运行维护计划。它使您可以执行各种数据库管理任务,包括备份、数据库完整性检查或以指定的间隔更新数据库统计信息等。
SQL 维护计划依赖于 SQL Server Agent 服务,在执行维护计划时要确保此服务处于启动的状态, 依次打开【控制面板】→【管理工具】→【服务】,在服务列表中找到 SQL Server Agent 服务,将该服务的启动类型设置为自动, 并且启动服务, 如图-1 所示。
图-1 设置SQL代理服务—自动
1.1 维护计划建立方法(自动执行)
1、使用具有管理员权限的用户登录到【SQL Server Management Studio】,在左侧的【对象资源管理器】窗口中展开【管理】 节点,然后右键单击【维护计划】选择【维护计划向导】菜单,如图-2 所示,在弹出向导窗口中单击【下一步】按钮。
图-2 维护计划向导
2、在【选择计划属性】中维护名称、说明等信息,并单击勾选【整个计划统筹安排或无计
划】选项,然后单击右下角的【更改】按钮,在弹出的【作业计划属性】窗口中,设置计划执行的周期及时间,分别如图-3、图-4 所示。
图-3 设置计划属性
图-4 设置自动执行计划间隔时间
3、选择维护任务
可根据实际情况进行选择,结合本文内容主要介绍下列几项:
1.收缩数据库:任务通过删除空的数据页和日志页来减少数据库和日志文件占用的磁盘
空间;
2.重新组织索引:任务可以对表和视图的聚集索引和非聚集索引进行碎片整理和压缩,
这将提高索引扫描性能;
3.重新生成索引:任务通过重新生成索引来重新组织数据页和索引页上的数据。这会改
善索引扫描和查找的性能。此任务还可以优化数据和可用空间在索引页上的分布,能够承受
未来更快的增长速度。
4.更新统计信息:任务确保查询优化器有表中数据值的最新分布信息。
这样,优化器才能更好地确定数据访问策略,如果是版本有升级的情况,建议执行该任务,
其它日常维护时不必每次都执行。 备份数据库任务确保当发生系统故障、硬件故障或用户错误对数据库造成某种破坏时, 导致发生数据丢失或数据库无法使用, 可以使用最近的备份副本来还原数据, 该任务可用于建立日常备份维护计划。 其它任务在此不做详细讲解。
对于WISE做日常优化任务,建议选择“收缩数据库”、“重新组织索引”和“重新生
成索引”、“更新统计信息”即可, 如图-5 所示。 单击【 下一步】按钮后, 还可以设置各任务的执行顺序。
图-5 设置维护任务
4、设置维护任务的数据库,分别设置每项任务中所要执行的数据库及相关任务参数,单击【数据库】 右侧的下拉列表,单击选择“ 以下数据库”,然后在列表中勾选具体的数据库实体,分别如图-6至图-8 所示。
图-6 为“收缩数据库”任务指定数据库
图-7 为“重新组织索引任务”指定数据库
图-8 为“更新统计信息”任务指定数据库
5、完成计划创建向导。如图-9 图-10所示。
图-9 完成计划创建向导
图-10 计划向导创建成功
维护计划创建完成后, SQL Server Agent 服务运行正常的情况下,系统会在设置的执行时间自动该调用计划执行。
1.2 维护计划建立方法(手动执行)
创建手动维护计划方法基本与自动执行维护计划方法一致,唯一不同点,自动执行计划,需要设置自动运行间隔时间,而手动计划则不需要设置,为默认“未计划(按需)”即可。如图-11所示。
图-11 设置计划属性
在手动计划创建完成时,计划向导内显示“未安排执行任何SQL server代理”,如图-12所示。
图-12 创建手动维护计划完成
手动维护计划创建完成后,需要手动执行对应维护计划,如图-13、图-14所示。
图-13 手动执行维护计划
图-14 手动执行维护计划成功
2. 注意事项及总结
在创建自动维护计划时,维护计划执行时间最好设置为工作日非工作时间或非工作日,正常工作时间服务器负荷通常较大,此时若执行维护计划则会影响正常使用。在计划创建成功后,建议不要立即手动执行,容易导致服务器负荷过大,影响客户端正常使用。
在维护计划创建成功后,可以通过SQL Server 代理下的作业活动监视器来观看当前的计划的执行情况,如图-15所示。
图-15 作业活动监视器
如果当前计划在执行中,这时候请不要修改正在执行中的计划定义,否则很可能会导致
执行中的计划出现莫名的错误。倘若必须要修改,可以手动停止正在执行中的计划,然后再
修改定义。另外,右键单击自定义的维护计划,可以查看到“查看历史记录”功能菜单,在该功能中也可查看执行计划的执行状况,同时右键功能中也有“执行”菜单,此功能可手工执行计划。
自动执行与手动执行维护计划,在创建方法上基本相同。在执行方法上,前者只需设置间隔时间,到期则会自动运行,后者则需要手动执行。在维护效果上两者相同。
推荐阅读