Microsoft KB Archive/896980

= FIX: The query plan may take longer than expected to compile, and you may receive error message 701, error message 8623, or error message 8651 in SQL Server 2000 =

Article ID: 896980

Article Last Modified on 11/2/2007

-

APPLIES TO


 * Microsoft SQL Server 2000 Enterprise Edition 64-bit
 * Microsoft SQL Server 2000 Desktop Engine (Windows)
 * Microsoft SQL Server 2000 Developer Edition
 * Microsoft SQL Server 2000 Enterprise Edition
 * Microsoft SQL Server 2000 Personal Edition
 * Microsoft SQL Server 2000 Standard Edition
 * Microsoft SQL Server 2000 Workgroup Edition
 * Microsoft SQL Server 2000 Developer Edition

-



Bug #: 474019 (SQL Server 8.0)



''Microsoft distributes Microsoft SQL Server 2000 fixes as one downloadable file. Because the fixes are cumulative, each new release contains all the hotfixes and all the security fixes that were included with the previous SQL Server 2000 fix release.''



SUMMARY
This article describes the following about this hotfix release:
 * The issues that are fixed by this hotfix package
 * The prerequisites for installing the hotfix package
 * Whether you must restart the computer after you install the hotfix package
 * Whether the hotfix package is replaced by any other hotfix package
 * Whether you must make any registry changes
 * The files that are contained in the hotfix package



SYMPTOMS
When you run a query that contains many MIN aggregates or MAX aggregates in Microsoft SQL Server 2000, the query plan may take longer than expected to compile. You may also receive one or more error messages that are similar to the following:

Error message 1

Server: Msg 701, Level 19, State 1, Line 1 There is insufficient system memory to run this query.

Error message 2

Server: Msg 8623, Level 16, State 1, Line 1 Internal Query Processor Error: The query processor could not produce a query plan. Contact your primary support provider for more information.

Error message 3

Server: Msg 8651, Level 17, State 1, Line 1 Could not perform the requested operation because the minimum query memory is not available. Decrease the configured value for the 'min memory per query' server configuration option.

Typically, this problem occurs when you run a query that contains more than 100 aggregates.

For a list of all publicly released SQL Server 2000 Post-Service Pack 3a hotfixes, click the following article number to view the article in the Microsoft Knowledge Base:

810185 SQL Server 2000 hotfix update for SQL Server 2000 Service Pack 3 and 3a



CAUSE
This problem occurs when the query optimizer search algorithm consumes more computer resources than expected to compile a valid query plan. When the query optimizer generates various query plan alternatives, one alternative that may be generated is an index seek that contains a TOP 1 clause. The results are ordered forward for the MIN aggregate and ordered backward for the MAX aggregate. This ordering of the results may cause the query optimizer search algorithm to take longer than expected to compile the query plan when there are many aggregates.



Hotfix information
A supported hotfix is now available from Microsoft, but it is only intended to correct the problem that is described in this article. Only apply it to systems that are experiencing this specific problem. This hotfix may receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next SQL Server 2000 service pack that contains this hotfix.

To resolve this problem immediately, contact Microsoft Product Support Services to obtain the hotfix. For a complete list of Microsoft Product Support Services telephone numbers and information about support costs, visit the following Microsoft Web site:

http://support.microsoft.com/contactus/?ws=support

Note In special cases, charges that are ordinarily incurred for support calls may be canceled if a Microsoft Support Professional determines that a specific update will resolve your problem. The usual support costs will apply to additional support questions and issues that do not qualify for the specific update in question.

Prerequisites
 Microsoft SQL Server 2000 Service Pack 3 (SP3)

For information about how to obtain SQL Server 2000 SP3, click the following article number to view the article in the Microsoft Knowledge Base:

290211 How to obtain the latest SQL Server 2000 service pack

 Microsoft SQL Server 2000 hotfix build 2000.80.1007

For more information, click the following article numbers to view the articles in the Microsoft Knowledge Base:

842960 Description of the 32-bit SQL Server 7.0 and SQL Server 2000 hotfix installer

872912 Description of the 64-bit SQL Server 2000 hotfix installer



Restart information
You do not have to restart the computer after you apply this hotfix.

Registry information
You do not have to change the registry.

Hotfix file information
This hotfix contains only those files that are required to correct the issues that this article lists. This hotfix may not contain all the files that you must have to fully update a product to the latest build.

The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time tool in Control Panel.

SQL Server 2000 32-bit versions
  Date         Time   Version         Size       File name --  13-Apr-2005  06:57  2000.80.1019.0    664,128  Autoplt.dll 13-Apr-2005 06:57  2000.80.1019.0     78,400  Console.exe 13-Apr-2005 06:57  2000.80.1019.0    332,352  Ctasksui.dll 13-Apr-2005 06:57  2000.80.1019.0    315,968  Custtask.dll 13-Apr-2005 06:57  2000.80.1019.0     33,340  Dbmslpcn.dll 31-Dec-2004 19:31                    786,432  Distmdl.ldf 31-Dec-2004 19:31                  2,359,296  Distmdl.mdf 31-Dec-2004 19:31                        180  Drop_repl_hotfix.sql 13-Apr-2005 06:57  2000.80.1019.0  1,905,216  Dtspkg.dll 13-Apr-2005 06:57  2000.80.1019.0    528,960  Dtspump.dll 13-Apr-2005 06:57  2000.80.1019.0  1,557,052  Dtsui.dll 13-Apr-2005 06:57  2000.80.1019.0    639,552  Dtswiz.dll 13-Apr-2005 06:57  2000.80.1019.0    102,992  Impprov.dll 31-Dec-2004 19:31                    747,927  Instdist.sql 31-Dec-2004 19:31                      1,581  Inst_repl_hotfix.sql 13-Apr-2005 06:57  2000.80.1019.0    352,828  Isqlw.exe 13-Apr-2005 06:57  2000.80.1019.0     82,492  Itwiz.exe 13-Apr-2005 06:57  2000.80.1019.0     90,692  Msgprox.dll 31-Dec-2004 19:16  8.11.41022.0      226,304  Mssdi98.dll 13-Apr-2005 06:57  2000.80.1019.0     62,024  Odsole70.dll 13-Apr-2005 06:57  2000.80.1019.0     25,144  Opends60.dll 13-Apr-2005 07:00                     82,944  Opends60.pdb 13-Apr-2005 06:57  2000.80.1019.0     57,904  Osql.exe 13-Apr-2005 06:57  2000.80.1019.0    279,104  Pfutil80.dll 01-Feb-2005 01:46                    551,012  Procsyst.sql 31-Dec-2004 19:31                     12,305  Qfe469315.sql 31-Dec-2004 19:31                     19,195  Qfe469571.sql 31-Dec-2004 19:31                      5,157  Qfe472197.sql 13-Apr-2005 06:57  2000.80.1019.0    143,940  Qrdrsvc.exe 13-Apr-2005 01:04                  1,136,160  Replmerg.sql 13-Apr-2005 06:57  2000.80.1019.0    221,768  Replprov.dll 13-Apr-2005 06:57  2000.80.1019.0    307,784  Replrec.dll 13-Apr-2005 01:40  2000.80.1019.0    159,813  Replres.rll 31-Dec-2004 19:31                  1,088,240  Replsys.sql 14-Jan-2005 01:05                    986,746  Repltran.sql 31-Dec-2004 18:49                         55  Repl_uninstall.sql 13-Apr-2005 06:57  2000.80.1019.0    287,304  Rinitcom.dll 13-Apr-2005 06:57  2000.80.1019.0     78,416  Sdiclnt.dll 13-Apr-2005 06:57  2000.80.1019.0     66,112  Semmap.dll 13-Apr-2005 06:57  2000.80.1019.0     57,916  Semnt.dll 13-Apr-2005 06:57  2000.80.1019.0    492,096  Semobj.dll 13-Apr-2005 02:44  2000.80.1019.0    172,032  Semobj.rll 13-Apr-2005 06:57  2000.80.1019.0     53,832  Snapshot.exe 01-Feb-2005 01:46                    125,540  Sp3_serv_uni.sql 13-Apr-2005 06:56  2000.80.1019.0     28,672  Sqlagent.dll 13-Apr-2005 06:57  2000.80.1019.0    311,872  Sqlagent.exe 13-Apr-2005 06:56  2000.80.1019.0    168,001  Sqlakw32.dll 13-Apr-2005 06:57  2000.80.1019.0     33,344  Sqlctr80.dll 13-Apr-2005 06:57  2000.80.1019.0  4,215,360  Sqldmo.dll 13-Apr-2005 06:57                     25,172  Sqldumper.exe 13-Apr-2005 01:03  2000.80.1019.0     28,672  Sqlevn70.rll 13-Apr-2005 06:57  2000.80.1019.0    156,224  Sqlmaint.exe 13-Apr-2005 06:57  2000.80.1019.0    180,792  Sqlmap70.dll 13-Apr-2005 06:57  2000.80.1019.0    188,992  Sqlmmc.dll 13-Apr-2005 02:50  2000.80.1019.0    479,232  Sqlmmc.rll 13-Apr-2005 06:57  2000.80.1019.0    401,984  Sqlqry.dll 13-Apr-2005 06:57  2000.80.1019.0     57,920  Sqlrepss.dll 13-Apr-2005 06:57  2000.80.1019.0  7,721,041  Sqlservr.exe 13-Apr-2005 07:00                 13,345,792  Sqlservr.pdb 13-Apr-2005 06:57  2000.80.1019.0    590,396  Sqlsort.dll 13-Apr-2005 06:57  2000.80.1019.0     45,644  Sqlvdi.dll 13-Apr-2005 06:57  2000.80.1019.0    106,588  Sqsrvres.dll 13-Apr-2005 06:57  2000.80.1019.0     33,340  Ssmsgnet.dll 13-Apr-2005 06:57  2000.80.1019.0     33,340  Ssmslpcn.dll 13-Apr-2005 06:57  2000.80.1019.0     33,340  Ssmsqlgc.dll 13-Apr-2005 06:57  2000.80.1019.0     82,492  Ssnetlib.dll 13-Apr-2005 06:57  2000.80.1019.0     25,148  Ssnmpn70.dll 13-Apr-2005 06:57  2000.80.1019.0    123,456  Stardds.dll 13-Apr-2005 06:57  2000.80.1019.0    158,240  Svrnetcn.dll 13-Apr-2005 06:57  2000.80.1019.0     76,416  Svrnetcn.exe 13-Apr-2005 06:57  2000.80.1019.0     49,228  Ums.dll 13-Apr-2005 07:00                    132,096  Ums.pdb 13-Apr-2005 06:57  2000.80.1019.0     74,304  Xplog70.dll 13-Apr-2005 06:57  2000.80.1019.0     98,872  Xpweb70.dll

SQL Server 2000 64-bit version
  Date         Time   Version         Size       File name ---  31-Dec-2004  19:31                        180  Drop_repl_hotfix.sql 31-Dec-2004 19:31                      1,581  Inst_repl_hotfix.sql 31-Dec-2004 19:31                     12,305  Qfe469315.sql 31-Dec-2004 19:31                     19,195  Qfe469571.sql 31-Dec-2004 19:31                      5,157  Qfe472197.sql 13-Apr-2005 07:59                  1,136,160  Replmerg.sql 31-Dec-2004 19:31                  1,088,240  Replsys.sql 14-Jan-2005 01:05                    986,746  Repltran.sql 31-Dec-2004 18:49                         55  Repl_uninstall.sql 01-Feb-2005 01:46                    125,540  Sp3_serv_uni.sql 13-Apr-2005 20:43  2000.80.1019.0     56,832  Dbmslpcn.dll 13-Apr-2005 20:43                    786,432  Distmdl.ldf 13-Apr-2005 20:43                  2,359,296  Distmdl.mdf 13-Apr-2005 20:43  2000.80.1019.0    244,736  Impprov.dll 13-Apr-2005 20:43                    747,927  Instdist.sql 13-Apr-2005 20:43  2000.80.1019.0    185,856  Msgprox.dll 13-Apr-2005 20:43  8.11.41022.0      742,912  Mssdi98.dll 13-Apr-2005 20:43  2000.80.1019.0    150,528  Odsole70.dll 13-Apr-2005 20:43  2000.80.1019.0     27,136  Opends60.dll 13-Apr-2005 20:43                     44,032  Opends60.pdb 13-Apr-2005 20:43  2000.80.1019.0    148,992  Osql.exe 13-Apr-2005 20:43                    551,012  Procsyst.sql 13-Apr-2005 20:43                    551,012  Procsyst.sql 13-Apr-2005 20:43  2000.80.1019.0    353,280  Qrdrsvc.exe 13-Apr-2005 20:43                  1,136,160  Replmerg.sql 13-Apr-2005 20:43                  1,136,160  Replmerg.sql 13-Apr-2005 20:43  2000.80.1019.0    534,528  Replprov.dll 13-Apr-2005 20:43  2000.80.1019.0    534,528  Replprov2.dll 13-Apr-2005 20:43  2000.80.1019.0    769,024  Replrec.dll 13-Apr-2005 20:43  2000.80.1019.0    769,024  Replrec2.dll 13-Apr-2005 20:43  2000.80.1019.0    146,432  Replres.rll 13-Apr-2005 20:43  2000.80.1019.0    146,432  Replres2.rll 13-Apr-2005 20:43                  1,088,240  Replsys.sql 13-Apr-2005 20:43                  1,088,240  Replsys.sql 13-Apr-2005 20:43                    986,746  Repltran.sql 13-Apr-2005 20:43                    986,746  Repltran.sql 13-Apr-2005 20:43  2000.80.1019.0    650,240  Rinitcom.dll 13-Apr-2005 20:43  2000.80.1019.0    160,768  Semmap.dll 13-Apr-2005 20:43  2000.80.1019.0     66,112  Semmap.dll 13-Apr-2005 20:43  2000.80.1019.0    160,768  Semmap.dll 13-Apr-2005 20:43  2000.80.1019.0    132,608  Semnt.dll 13-Apr-2005 20:43  2000.80.1019.0    132,608  Semnt.dll 13-Apr-2005 20:43  2000.80.1019.0     88,576  Snapshot.exe 13-Apr-2005 20:43  2000.80.1019.0     10,240  Sqlagent.dll 13-Apr-2005 20:43  2000.80.1019.0  1,055,232  Sqlagent.exe 13-Apr-2005 20:43  2000.80.1019.0     90,112  Sqlboot.dll 13-Apr-2005 20:43  2000.80.1019.0     90,112  Sqlboot.dll 13-Apr-2005 20:43  2000.80.1019.0     32,256  Sqlctr80.dll 13-Apr-2005 20:43  2000.80.1019.0  4,215,360  Sqldmo.dll 13-Apr-2005 20:43  2000.80.1019.0 13,845,504  Sqldmo.dll 13-Apr-2005 20:43                     39,936  Sqldumper.exe 13-Apr-2005 20:43                     39,936  Sqldumper.exe 13-Apr-2005 20:43  2000.80.1019.0     19,968  Sqlevn70.rll 13-Apr-2005 20:43  2000.80.1019.0    493,568  Sqlmaint.exe 13-Apr-2005 20:43  2000.80.1019.0     23,040  Sqlmap70.dll 13-Apr-2005 20:43  2000.80.1019.0    152,064  Sqlrepss.dll 13-Apr-2005 20:43  2000.80.1019.0 25,272,320  Sqlservr.exe 13-Apr-2005 20:43                 21,326,848  Sqlservr.pdb 13-Apr-2005 20:43  2000.80.1019.0    616,960  Sqlsort.dll 13-Apr-2005 20:43  2000.80.1019.0    616,960  Sqlsort.dll 13-Apr-2005 20:43  2000.80.1019.0    616,960  Sqlsort.dll 13-Apr-2005 20:43  2000.80.1019.0    120,320  Sqlvdi.dll 13-Apr-2005 20:43  2000.80.1019.0     45,644  Sqlvdi.dll 13-Apr-2005 20:43  2000.80.1019.0    227,328  Sqsrvres.dll 13-Apr-2005 20:43  2000.80.1019.0     53,760  Ssmslpcn.dll 13-Apr-2005 20:43  2000.80.1019.0     59,904  Ssmsqlgc.dll 13-Apr-2005 20:43  2000.80.1019.0    256,000  Ssnetlib.dll 13-Apr-2005 20:43  2000.80.1019.0     20,992  Ssnmpn70.dll 13-Apr-2005 20:43  2000.80.1019.0    430,080  Svrnetcn.dll 13-Apr-2005 20:43  2000.80.1019.0    185,856  Svrnetcn.exe 13-Apr-2005 20:43  2000.80.1019.0    183,296  Xplog70.dll 13-Apr-2005 20:43  2000.80.1019.0    187,392  Xpweb70.dll

Note Because of file dependencies, the most recent hotfix or feature that contains these files may also contain additional files.



STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the &quot;Applies to&quot; section.



MORE INFORMATION
This hotfix is only enabled under trace flag 9065. When trace flag 9065 is enabled, the query optimizer no longer generates alternatives such as an index seek that contains a TOP 1 clause if the query contains more than the specified number of MIN aggregates or MAX aggregates. The specified number of MIN aggregates or MAX aggregates is currently set at 16.

For more information about the naming schema for SQL Server updates, click the following article number to view the article in the Microsoft Knowledge Base:

822499 New naming schema for Microsoft SQL Server software update packages

For more information about the terminology that is used when Microsoft corrects software after it is released, click the following article number to view the article in the Microsoft Knowledge Base:

824684 Description of the standard terminology that is used to describe Microsoft software updates

Keywords: kbbug kbfix kbqfe kbpubtypekc kbhotfixserver KB896980

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.