在我的夜间维护计划中,我做了所有事情 - 重新组织和重建索引,更新统计数据等。有一个每小时的维护计划,执行事务日志备份。
我注意到夜间重建之后立即进行的事务日志备份非常庞大 - 经过一番研究我发现这是因为重建索引等都是记录操作。
我不想通过备份索引重建日志来增加备份系统的负担。因此,我计划将 Nightly 计划更改为:
- 重建索引、更新统计数据等
- DUMP TRANSACTION WITH NO_LOG(哦,现在这显然被称为 BACKUP LOG test WITH TRUNCATE_ONLY)
- 收缩日志文件
- 进行完整数据库备份
问题:
- 这个计划是不是有什么问题?
- 将日志截断纳入维护计划的最佳方法是什么?
- 我刚刚读到,同时包含重组和重建索引是多余的。我该如何决定在夜间计划中使用哪一个才是正确的?
答案1
是的,同时执行 Organize 和 Rebuild 是多余的。您应该执行其中一个,但不能同时执行。
对于大型表,我不会进行自动重建。我会运行自定义脚本来确定碎片是否超过阈值,并且只有当碎片超过阈值时才进行重建。有些人使用 40% 作为重建百分比。
适当重建/重组数据库索引的脚本
https://blogs.msdn.com/b/joaol/archive/2008/01/28/script-to-rebuild-and-reorganize-database-indexes-sql-server-2005.aspx
http://www.sql-server-performance.com/2007/rebuilding-indexes
http://www.tekrhythm.com/2012/01/21/sql-script-to-rebuild-indexes-more-intelligently