PRB: NOLOCK Optimizer Hint May Cause Transient Corruption Errors in the SQL Server Error Log

Article translations Article translations
Article ID: 308886 - View products that this article applies to.
This article was previously published under Q308886
Expand all | Collapse all

SYMPTOMS

When you use the NOLOCK hint, you may experience transient 8908 errors in the SQL Server error log on tables that experience high volumes of SQL Server activities.

The error message that occurs is:
Table error: Database ID %d, object ID %d, index ID %d. Chain linkage mismatch. %S_PGID->next = %S_PGID, but %S_PGID->prev = %S_PGID.

CAUSE

An error may occur when you use the NOLOCK optimizer hint to query tables in the database. There is a small timing window during page splits in conjunction with parallel nolock scans and concurrent updates that can generate transient 8908 messages.

MORE INFORMATION

To ensure that the database is free of corruption, run a DBCC CHECKDB statement, preferably in single user mode, against the database. If DBCC CHECKDB returns no error, you can be certain that the database is free of corruption.

Properties

Article ID: 308886 - Last Review: October 3, 2003 - Revision: 3.2
APPLIES TO
  • Microsoft SQL Server 2000 Standard Edition
Keywords: 
kbprb KB308886

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com