这是给你的,保罗!:-)
我有一个客户,他的两个办公地点有两个数据库。两者的大小大致相同(大约 10 GB),都托管在同一个专业托管商的网站上——所以无论给予还是接受,它们都是一样的。
然而,数据库 ACheck database integrity
在不到 30 分钟的时间内完成了维护计划中的步骤,而数据库 B 甚至从未完成 - DBA 在运行 3 个多小时后终止了该进程。
这些步骤正在“下班后”运行——因此服务器上不应有任何重大活动。
有什么解释吗?知道要检查什么或在哪里寻找原因(以及解决方法)吗?没有错误报告或任何东西......
DBCC CHECKDB 不运行数据库检查。它实际上是验证数据库不同方面的命令的集合。BOL 的相关部分:
在数据库上运行 DBCC CHECKALLOC。对数据库中的每个表和视图运行 DBCC CHECKTABLE。在数据库上运行 DBCC CHECKCATALOG。
如果一个数据库花费 30 分钟而另一个数据库花费 > 3 小时,则很可能是 CHECKTABLE 命令。特别是 如果数据库的大小有很大不同。
抱歉,在慢速数据库上运行检查数据库完整性并让它完成。它很可能发现了问题并开始深入研究细节——这比在一个正常的数据库上运行花费了更多的时间。
可能执行序列以从命令行检查数据库;)DBCC CHECKDB 有一些可能对您有帮助的输出;)维护计划更难调试。