PRB: Running Multiple DBCC Commands Can Raise Spurious Errors

ID: Q150901


The information in this article applies to:
  • Microsoft SQL Server versions 4.2x, 6.0, 6.5


SYMPTOMS

When you run multiple instances of some DBCC commands at the same time, errors may be raised that turn out to be spurious.


CAUSE

There is a pre-allocated buffer workspace that many DBCC commands share rather than each allocating their own space. There are no concurrency checks for the DBCC commands to share this space, so spurious errors can arise as DBCC commands overwrite each other's workspace buffer. This is more likely to occur on SMP computers. Among those DBCC commands known to not be "multi-instance safe" are:

  • NEWALLOC


  • CHECKALLOC


  • CHECKDB


  • CHECKTABLE


  • PGLINKAGE


  • MEMUSAGE


  • TEXTALLOC


  • TEXTALL


Note that simultaneously running any combination of these commands is subject to the same problem, not just multiple instances of the same command.


WORKAROUND

Only run one DBCC command at a time to avoid spurious errors.

Additional query words: sql sql60 sql65 dbcc

Keywords : kbprg kbusage SSrvISQL ssrvtrans_sql
Version : 4.2 6.0 6.5
Platform : WINDOWS
Issue type :


Last Reviewed: March 25, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.