什么是最佳数据库维护的最佳实践?
正在更新统计信息吗? (我认为统计更新是在默认情况下)如何重新组织索引或只是重build它们? 收缩数据库? 完整性检查?
你多久运行一次?
正在更新统计信息吗?
在大多数情况下,默认的更新统计信息选项已经足够,但取决于您的系统,工作负载和性能问题,您可能需要运行显式更新统计信息。
如何重新组织索引或重build它们?
对于这个行业的正常的最佳做法是运行重组,如果平均。 碎片水平在10-30%之间,碎片> 30%时重build。 我在这里列出的数字不是绝对的切断,而只是最佳做法。
收缩数据库?
你不想打开这个选项。 花时间closures此选项,因为这可能会导致长期性能问题。
完整性检查?
这是一个绝对必须定期运行。 周期性意味着什么,即每周至less一次。 如果数据库是在SQL Server 2005之前的版本中创build的,请确保将page_verify选项撕掉,如下所示。
ALTER DATABASE DBNAME设置PAGE_VERIFY CHECKSUM
我不喜欢使用这些任务的维护计划,并且最好使用SQL脚本。 我使用Ola Hallengren的脚本,他们的工作很好,并推荐给那里的任何人。 您可以从中获取这些脚本
这个technet杂志的文章有效的数据库维护的重要提示 (和跟随从runas收音机播客 )回答所有这些和更多
以下是文章的总结:
正如你所看到的,为了确保你的数据库保持健康和可用,有一些“必做”任务。 以下是我的一个非自愿DBA接pipe数据库的最终清单:
删除过多的事务日志文件碎片。
•正确设置自动增长。
•closures任何计划收缩操作。
•打开即时文件初始化。
•定期制定stream程,检测并清除索引碎片。
•打开AUTO_CREATE_STATISTICS和AUTO_UPDATE_STATISTICS,并定期更新统计数据。
•打开页面校验和(或SQL Server 2000上最less破损的页面检测)。
•定期运行DBCC CHECKDB。
•定期进行stream程以进行完整的数据库备份,以及针对时间点恢复的差异备份和日志备份。