我在 SQL 2014 Standard 上做离线 DBCC CHECKDBs(等等在生产以外的盒子上)。在大多数情况下,我的过程进展得很快,但由于某种原因,我有这个小数据库(6gbs),而且它需要几个小时来完成 DBCC。上次运行它花了 9 个小时。检查 sys.dm_exec_requests 时,它似乎在不同的 % 完成时冻结。在同一台服务器上,我在 TB 范围内的数据库上执行 CHECKDB 没有问题。我现在在 CHECKDB 中使用以下提示(是的,最终我会做完整的而不是只做物理)
WITH NO_INFOMSGS, ALL_ERRORMSGS, PHYSICAL_ONLY, TABLOCK
这个数据库可能会导致它永远花费什么?
如果您的 CHECKDB 操作被 阻止
FT CRAWL
,一个合理的解决方案是在数据库恢复后关闭数据库的全文搜索。毕竟,您并不是在使用 DBCC CHECKDB 来验证全文搜索是否在做正确的事情,或者您正在恢复该数据库副本以促进 FT 查询。禁用对名为 的数据库的全文搜索
foo
:您可能不需要条件,因为我们已经知道 FT 已安装,但最好随身携带,以防此服务器发生更改或您将恢复移动到其他位置。