这个给你,保罗! 🙂
我有一个客户,他的两个办公地点有两个数据库。 两者大致相同(大约10 GB),两者都在同一个专业主机托pipe站点托pipe – 所以采取相同的措施。
然而,数据库A在不到30分钟的时间内完成了维护计划中的“ Check database integrity步骤,而数据库B从未完成 – 数据库pipe理员在运行超过3小时后终止了该过程。
这些步骤正在“下class后”运行 – 所以服务器上不应该有任何重要的活动。
任何解释? 任何想法什么检查或在哪里寻找一个原因(和解决办法)? 没有错误报告或任何东西…..
DBCC CHECKDB不运行数据库检查。 它实际上是一组validation数据库不同方面的命令。 BOL相关部分 :
在数据库上运行DBCC CHECKALLOC。 在每个表上运行DBCC CHECKTABLE并在数据库中查看。 在数据库上运行DBCC CHECKCATALOG。
如果一个DB需要30分钟,而另一个需要3个小时以上,那么很可能是CHECKTABLE命令。 ESP。 如果数据库的大小是显着不同的。
对不起,在缓慢的数据库上运行检查数据库完整性,并让我们完成。 它很可能发现了问题,并开始深入细节,而且花费了比运行好的数据库更多的时间。
可能执行序列从命令行检查数据库;)DBCC CHECKDB有一些输出可能会帮助你;)维护计划有点难以debugging。