SQL 2008 每 10 分钟执行一次 CHECKDB,任何想法为什么或我可以在哪里查找?

Tra*_*PUK 3 sql-server-2008

我有一个每晚运行的完整备份以及一个 2 小时的事务日志。完整备份还会在运行时收缩并检查数据库的完整性。

除了我认为是 SQL 自动创建的 syspolicy_purge_history 作业之外,似乎没有任何其他作业在运行。

谢谢

San*_*ddy 5

几样东西。

1) 关闭自动收缩。它的邪恶并且可能是长期性能问题的根源,因为它可能导致文件级碎片。

2) 如上所述,看起来自动关闭已打开。您需要将其关闭,因为这是另一种不利于良好性能的方法。为什么?每次关闭最后一个连接时,SQL Server 都会尝试自行关闭,这会导致清除过程和数据缓存。这两个是通过减少从磁盘获取数据的需要来支持良好性能的,与从内存读取相比,这是非常昂贵的。生成执行计划是一个 CPU 密集型过程,您的 sql server 必须在从自动关闭返回后生成计划。现在你知道它在做什么,继续并关闭自动关闭。

3) SQL Server 并没有真正执行 DBCC CHECKDB,而是在读取存储上次干净运行的 DBCC CHECKDB 日期的启动文件后显示一条消息。它只是写入日志文件,而不是在这里真正运行 CHECKDB。看起来您运行 CHECKDB 已经超过 2 个月了,并且尽可能定期运行 CHECKDB 是一个很好的做法。

http://technet.microsoft.com/en-us/magazinebeta/2009.10.sqlqa.aspx