FIX: Updates That Use LEFT OUTER JOIN May Not Complete if Parallelism Is Used

This article was previously published under Q266368
This article has been archived. It is offered "as is" and will no longer be updated.
BUG #: 58090 (SQLBUG_70)
An UPDATE query that uses a LEFT OUTER JOIN may not complete until the user manually stops the query's execution. To determine if you are encountering this bug, examine the sysprocesses output for the UPDATE query's process ID (SPID) number. It should indicate a waittype of '0x0200', a lastwaittype of 'Exchange', and a status of 'sleeping'. In addition, the waittime should be increasing over time.

This situation may occur on a multiprocessor computer where parallelism is enabled and a parallel query plan has been chosen for the UPDATE query. The same conditions applied to a server with the original version of SQL Server 7.0 or SQL Server 7.0 SP1 do not encounter this bug.
To turn off parallelism, do one of the following:
  • Run the following code:
    sp_configure 'max degree of parallelism', 1goreconfigure with override					

  • Increase 'cost threshold for parallelism' in sp_configure to reduce the chance of a parallel query plan being chosen for the query. One would have to test and find the minimum value for this setting on your computer to avoid a parallel plan for the query because it is related to both the query and the data in the tables involved in the query.
NOTE: Using the OPTION (MAXDOP 1) query hint does not work for the query reported in this bug. For additional information, click the article number below to view the article in the Microsoft Knowledge Base:
266372 FIX: OPTION (MAXDOP 1) Hint May Not Turn Off Parallel Query
Microsoft has confirmed this to be a problem in SQL Server 7.0. This problem has been corrected in U.S. Service Pack 3 for Microsoft SQL Server 7.0. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
274799 INF: How to Obtain Service Pack 3 for Microsoft SQL Server 7.0 and Microsoft Data Engine (MSDE) 1.0
For more information, contact your primary support provider.
The following is an example of an UPDATE query that is affected by this bug:
UPDATE  tab_x SET   c1 = tab1.a  c2 = tab2.aFROM   tab_y LEFT OUTER JOIN tab1 ON tab_y.b1 = tab1.d   tab_y LEFT OUTER JOIN tab2 ON tab_y.b2 = tab2.d				

Article ID: 266368 - Last Review: 02/28/2014 04:19:27 - Revision: 4.1

Microsoft SQL Server 7.0 Service Pack 2

  • kbnosurvey kbarchive kbbug kbfix KB266368