I've run a DBCC CHECKDB and it found allocation errors. When I run it with REPAIR_ALLOW_DATA_LOSS - will it need to take the same amount of time to scan for errors, or will it attempt to use the last CHECKDB I ran and go faster?

(SQL Server 2000. Yes its ancient, no I can't upgrade.)


2 Answers 2


will it need to take the same amount of time to scan for errors

Yes it has to do it again .. scan and fix the errors with potential data loss. Be cautious, use it as a last resort - repair & allow data loss !

Refer : Corruption .. Last resorts that people try first… from Paul Randal.

Remember : SQL Server 2000 is out of support .. so microsoft is not going to help unless you upgrade to a supported version !


To add to the answer above, if you're on Enterprise Edition, where a normal DBCC CHECKDB will run in parallel, when you run with a repair option it must run single-thread, so it will also take more time.

Any DBCC CHECK* command has to scan all the data as the results from any previous DBCC CHECK* command are

  1. not persisted anywhere

  2. in no way can be trusted to still be accurate.

Also be wary of REPAIR_ALLOW_DATA_LOSS on SQL Server 2000 - there are many repairs that do not work correctly, that I fixed for SQL Server 2005 as part of my general rewrite of the code base.


This site is temporarily in read-only mode and not accepting new answers.

Not the answer you're looking for? Browse other questions tagged .