FIX: Incorrect Results May Occur with Index Spool and Parallel Plan (322871)



The information in this article applies to:

  • Microsoft SQL Server 2000 (all editions)

This article was previously published under Q322871
BUG #: 357397 (SHILOH_BUGS)

SYMPTOMS

A parallel query plan that contains an Index Spool operator, with an OUTER REFERENCES for a column under the spool, may produce incorrect results. An example of such a query plan is:

|--Nested Loops(Left Semi Join, [...] OUTER REFERENCES:([IssuesAre].[TreeID]))
    |--Index Spool(SEEK:([TreeNodesShadow].[L] >= [TreeNodes].[L] AND [TreeNodesShadow].[L] <= [TreeNodes].[R]))         
    |   |--Clustered Index Seek(OBJECT:([reprobug].[dbo].[TreeNodesShadow].[PK__TreeNodesShadow__571DF1D5]), SEEK:([TreeNodesShadow].[ID]=[IssuesAre].[TreeID]), ...
    |--Index Seek ...
				

Note that the IssuesAre.TreeID shown in the OUTER REFERENCES is a column that is used in the clustered index SEEK inside the index spool operator.

RESOLUTION

To resolve this problem, obtain the latest service pack for Microsoft SQL Server 2000. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

290211 INF: How To Obtain the Latest SQL Server 2000 Service Pack

NOTE: The following hotfix was created before the release of Microsoft SQL Server 2000 Service Pack 3.

The English version of this fix should have the following file attributes or later:
   Version       File name
   --------------------------

   8.00.0629     Sqlservr.exe
				
NOTE: Because of file dependencies, the most recent hotfix or feature that contains the files may also contain additional files.


WORKAROUND

Because the problem only occurs with a parallel plan, you can temporarily avoid the problem by forcing a serial plan by using the query hint OPTION (MAXDOP 1), or by changing the max degree of parallelism configuration option.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.
This problem was first corrected in Microsoft SQL Server 2000 Service Pack 3.

Modification Type:MinorLast Reviewed:9/27/2005
Keywords:kbHotfixServer kbQFE kbSQLServ2000sp3fix kbbug kbfix kbSQLServ2000preSP3fix KB322871