PRB: Running Multiple DBCC Commands Can Raise Spurious Errors

Last reviewed: April 8, 1997
Article ID: Q150901

The information in this article applies to:
  • Microsoft SQL Server, versions 4.2, 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 : kberrmsg


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: April 8, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.