我运行了一个DBCC CHECKDB
,它发现了分配错误。当我运行它时REPAIR_ALLOW_DATA_LOSS
- 它是否需要花费相同的时间来扫描错误,或者它会尝试使用我最后一次CHECKDB
运行并运行得更快?
(SQL Server 2000。是的,它很古老,不,我无法升级。)
我运行了一个DBCC CHECKDB
,它发现了分配错误。当我运行它时REPAIR_ALLOW_DATA_LOSS
- 它是否需要花费相同的时间来扫描错误,或者它会尝试使用我最后一次CHECKDB
运行并运行得更快?
(SQL Server 2000。是的,它很古老,不,我无法升级。)
要补充上面的答案,如果您使用的是企业版,普通的 DBCC CHECKDB 将并行运行,当您使用修复选项运行时,它必须运行单线程,因此它也会花费更多时间。
任何 DBCC CHECK* 命令都必须扫描所有数据,因为任何先前 DBCC CHECK* 命令的结果都是
没有在任何地方坚持
绝不能相信它仍然是准确的。
还要警惕 SQL Server 2000 上的 REPAIR_ALLOW_DATA_LOSS - 有许多无法正常工作的修复,我在对 SQL Server 2005 进行修复时将其作为我对代码库的一般重写的一部分。
谢谢
是的,它必须再做一次.. 扫描并修复可能导致数据丢失的错误。小心,将其用作最后的手段 - 修复并允许数据丢失!
参考:腐败 .. 人们首先尝试的最后手段……来自 Paul Randal。
请记住:SQL Server 2000 不受支持.. 所以除非您升级到受支持的版本,否则 Microsoft 不会提供帮助!