修复︰ 无产出计划程序出现错误或错误 8623 当您运行的查询包含在 SQL Server 2005,SQL Server 2008 中或 SQL Server 2008 R2 中的子句中大


Microsoft 将分发 Microsoft SQL Server 2005 中,Microsoft SQL Server 2008 中,或作为一个可下载的文件修复 Microsoft SQL Server 2008 R2。修补程序是累积性的因为每个新版本包含的所有修补程序和以前的 Microsoft SQL Server 2005年,Microsoft SQL Server 2008 中或 Microsoft SQL Server 2008 R2 附带的所有安全修补程序的修补都程序版本。

症状


在 Microsoft SQL Server 2005年,Microsoft SQL Server 2008 中或 Microsoft SQL Server 2008 R2 中,必须包含在子句中较大的查询。例如,IN 子句包含成千上万个值。运行此查询时,可能会出现一个无产出的计划程序错误。此外,在 SQL Server 2005,SQL Server 2008 中或 SQL Server 2008 R2 的日志文件夹中生成一个小型转储文件。有时还可能会看到下面的错误消息,在 SQL Server 错误日志文件:
错误︰ 8623,严重性︰ 16,状态︰ 1。

查询处理器内部资源不足,无法生成查询计划。这是一个罕见的事件,只有预期的非常复杂的查询或查询引用的表或分区非常多的。请简化该查询。如果您认为错误地收到此消息,请与客户支持服务的详细信息。


注意:如果错误 8623 发生一起无产出计划程序错误,查询执行失败。

原因


SQL Server 代码库中出现此问题。 包含在子句中大的查询执行,期间基本 SQL Server 代码不产生一个计划程序适当。此行为将导致在相同的计划程序运行其他工作线程的 CPU 不足,导致无产出计划程序错误。

解决方案


累积更新信息

SQL Server 2005

累积更新 10 中首次发布此问题的修补程序。有关如何为 SQL Server 2005 中获取此累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章︰
983329累计更新 SQL 服务器 2005 Service Pack 3 包 10
注意:因为版本具有累积性,所以每个新修补程序版本包含的所有修补程序,并附带上一个 SQL Server 2005 的所有安全修补程序的修补都程序版本。我们建议您考虑将应用包含此修复程序的最新的修补程序版本。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
SQL Server 2005 版本 SQL 服务器 2005 Service Pack 3 发布后发布的960598

SQL Server 2008 Service Pack 1

此问题的修补程序首次发布的累积更新 9 为 SQL Server 2008 Service Pack 1。有关此累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章 ︰
对于 SQL Server 2008 Service Pack 1 的2083921累积更新 9
注意:因为版本具有累计性,所以每个新修补程序版本包含上一个 SQL Server 2008 修补程序版本随附的所有修补程序和所有安全修复程序。Microsoft 建议您考虑应用包含此修复程序的最新的修补程序版本。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
SQL Server 2008年生成 SQL Server 2008 Service Pack 1 发布后发布的970365
为特定的 SQL Server 服务包创建 Microsoft SQL Server 2008年的修补程序。必须将一个 SQL Server 2008 Service Pack 1 的修补程序应用到安装的 SQL Server 2008 Service Pack 1。默认情况下,在下一次 SQL Server service pack 中包含任何 SQL Server service pack 中提供的修补程序。

SQL Server 2008 Service Pack 2

此问题的修补程序首次发布累积更新 1 中的 SQL Server 2008 Service Pack 2。有关此累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章 ︰
2289254累计更新 SQL Server 2008 Service Pack 2 1
注意:因为版本具有累计性,所以每个新修补程序版本包含上一个 SQL Server 2008 修补程序版本随附的所有修补程序和所有安全修复程序。我们建议您考虑将应用包含此修复程序的最新的修补程序版本。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
SQL Server 2008年生成 SQL Server 2008 Service Pack 2 发布后发布的2402659

SQL Server 2008 R2

累积更新 3 中首次发布此问题的修补程序。有关如何为 SQL Server 2008 R2 中获取此累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章︰
2261464累计更新 SQL Server 2008 R2 包 3
注意:由于 Build 是累积性的,因此每个新修补程序版本包含之前的 SQL Server 2008 R2 修补程序版本所包括的所有修订程序和安全修补程序。我们建议您考虑将应用包含此修复程序的最新的修补程序版本。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
SQL Server 2008 R2 生成 SQL Server 2008 R2 发布后发布的981356

修补程序信息

可以从 Microsoft 获得受支持的修复程序。然而,此修补程序仅用于解决本文中描述的问题。仅对出现这一特定问题的系统应用此修补程序。

如果此修复程序可供下载,则在此知识库文章的顶部会出现“修补程序下载可用”部分。如果未显示此部分,将申请提交到 Microsoft 客户服务和支持,以获取此修复程序。

注意:如果出现其他问题或需要任何故障诊断时,您可能需要创建单独的服务请求。对于不符合此特定的修补程序的其他支持问题和事项将照常收取费用。有关 Microsoft 客户服务和支持电话号码或创建单独的服务请求的完整列表,请访问下面的 Microsoft 网站︰注意:"提供修补程序下载"窗体显示获取此修复程序的语言。如果看不到您的语言,则修补程序没有那种语言的版本。

注意:IN 子句是否足够大,安装此修补程序后,仍会因资源耗尽而发生错误 8623。如果错误 8623 仍然出现在安装此修补程序后,,使用以下方法之一︰

方法 1

减少的 IN 子句中值的数目。

方法 2

向临时表或表变量,输入的 IN 子句中的值,然后查询联接原始表和临时表 (或表变量) 结果集。

系统必备组件

您必须具有 SQL 服务器 2005 Service Pack 3 (SP3),SQL Server 2008 中,或 SQL Server 2008 R2 要应用此修补程序的安装。

重启要求

如果 SQL Server 服务之一运行在应用此修补程序时,您在应用此修补程序后,必须重新启动计算机。如果不想重新启动计算机,请在您应用此修补程序之前停止所有 SQL Server 服务。

修补程序替换信息

此修补程序不替换任何其他修补程序。

文件信息

此修复程序的英文版具有的文件属性 (或更新的文件属性)在下表中列出。日期和为这些文件的时间以协调世界时 (UTC) 列出。当您查看文件信息时,它将转换为本地时间。要了解 UTC 与本地时间之间的时差,请使用控制面板中的日期和时间项中的时区选项卡。
SQL Server 2005 的基于 x86 的版本
文件名称文件版本文件大小日期时间哈希值
Batchparser90.dll2005.90.4035.0125,28024-Nov-200816:14
Dbghelp.dll6.6.7.51,037,15224-Nov-200814:51MD5: 288A3127F85C9416E9A3FD07EDAEDCBD
SHA1: FC10D9E27E5C6987B5CB2C5166FBF83252AC41FC
Dumpdatastore.dll2005.90.4035.01,157,47224-Nov-200814:56MD5: 9B010B4FF41DA4AFAFB94C8456D64059
SHA1: 58783B12982DFACF3D9AF4A1CAFE58A95771CE3D
Msvcp80.dll8.0.50727.42548,86413-Oct-200516:26MD5: 2BC650257FB0867ABD54FD460EC2BAFC
SHA1: EC063526AA14BCADEEFFA6D859B39A80680015B7
Msvcr80.dll8.0.50727.42626,68813-Oct-200516:26MD5: 16D7DDF3B659F7CF1CB9F4DCFF4219F0
SHA1: A61454131940799F01C26943F1594EE6E7409D11
Sqlcmd.exe2005.90.4035.0141,66424-Nov-200815:31MD5: 2E1B8DF1802612BDA20378B612D46155
SHA1: B45271F4CA358805D3515ADB9DA8D302FA40D8D0
Sqlcmd.rll2005.90.4035.024,92824-Nov-200815:14不适用
Sqldiscoveryapi.dll2005.90.4035.0530,78424-Nov-200815:31MD5: 8AC29B7DF7AA97CF12E15BF4D026A96D
SHA1: 7DF7C8A0AFFC7EEE19CCA8C321494395DA06CD5C
Sqlsetupvista.dll2005.90.4035.0227,68024-Nov-200815:31MD5: FF9AF51AD873841628C0F5554BD7EB8E
SHA1: B538EFC458163E6D04056B1F191B13EF891BA50E
Finalsql2005information.rtf不适用84414-Jan-201014:37不适用
Sqlhotfix.chm不适用116,10614-Jan-201014:37不适用
Sqlse.rll1.4.1581.060,26407-Apr-201016:40不适用
Sqlrun_as.msp不适用27,555,32808-Apr-201001:26不适用
Sqlrun_dts.msp不适用14,836,73608-Apr-201001:28不适用
Sqlrun_ns.msp不适用3,965,95208-Apr-201001:28不适用
Sqlrun_rs.msp不适用16,354,30408-Apr-201001:31不适用
Sqlrun_sql.msp不适用39,590,40008-Apr-201001:36不适用
Sqlrun_tools.msp不适用48,827,90408-Apr-201001:46不适用
SQL Server 2005 的基于 x64 的版本
文件名称文件版本文件大小日期时间哈希值
Batchparser90.dll2005.90.4035.0179,55225-Nov-200804:38
Dbghelp.dll6.6.7.51,326,94425-Nov-200804:38MD5: 1F5B11622850EBFEA889A8B6F1132F57
SHA1: 68B256D48B40C58FD67DADBC815F443C826BE073
Dumpdatastore.dll2005.90.4035.01,566,56025-Nov-200804:39MD5: D3D83B642E6D906918A4527B04E82CA1
SHA1: FADA34561343B9A1B2313335690B2B881E237678
Msvcp80.dll8.0.50727.421,097,72814-Oct-200504:46MD5: 5AE0F01F02A03558DA0CBD249E4DF263
SHA1: 64735AB4635B587647A11A599E39D2233D9DE6F0
Msvcr80.dll8.0.50727.42822,78414-Oct-200504:46MD5: 465CEBD7DA2CEABA5E552FC9118A1415
SHA1: 995060CABE3DDF199B400AD0D80FF5660626793C
Sqlcmd.exe2005.90.4035.0336,73625-Nov-200804:45MD5: 105FAD078031DF182E32C53D5994C457
SHA1: D8953F00436F38880B4B587391BD0D2309E5297E
Sqlcmd.rll2005.90.4035.025,44025-Nov-200804:40不适用
Sqldiscoveryapi.dll2005.90.4035.0750,43225-Nov-200804:45MD5: 0826CE00BFB5DA7374E4D0E146942471
SHA1: 668553462BD285FBDC241A23E4E259FEF1235DEF
Sqlsetupvista.dll2005.90.4035.0316,25625-Nov-200804:45MD5: 41BBA84E4D204046EF0059E573B98988
SHA1: 557F186F46D09AE59C655B52675D604593E8E611
Finalsql2005information.rtf不适用84414-Jan-201014:37不适用
Sqlhotfix.chm不适用116,10614-Jan-201014:37不适用
Sqlse.rll1.4.1581.060,77607-Apr-201017:33不适用
Sqlrun_as.msp不适用46,118,40008-Apr-201001:15不适用
Sqlrun_dts.msp不适用22,150,65608-Apr-201001:18不适用
Sqlrun_ns.msp不适用5,689,34408-Apr-201001:19不适用
Sqlrun_rs.msp不适用21,256,19208-Apr-201001:22不适用
Sqlrun_sql.msp不适用45,197,31208-Apr-201001:28不适用
Sqlrun_tools.msp不适用65,248,76808-Apr-201001:38不适用
基于 IA-64 的 SQL Server 2005 的版本
文件名称文件版本文件大小日期时间哈希值
Batchparser90.dll2005.90.4035.0293,72824-Nov-200819:52
Dbghelp.dll6.6.7.53,631,45624-Nov-200819:52MD5: BB797393886A04ED2847AC966A23439D
SHA1: B43F7926C0FD268F4496A116B9176753601B5EAD
Dumpdatastore.dll2005.90.4035.04,322,14424-Nov-200819:47MD5: 5677EC5C5DA9AB7C71580996E598433E
SHA1: A98591A4D220C293A6C8E1D2B17E3C4847545721
Msvcp80.dll8.0.50727.421,385,47214-Oct-200504:35MD5: 7F0715E63E08692F39C017A6A2D61E56
SHA1: 24B674285AC11D0496529EBC9E7FADC7B7955AC3
Msvcr80.dll8.0.50727.421,484,80014-Oct-200504:35MD5: 88B3570029DEC94B06199DB8E7EB66D9
SHA1: FC8EE955B19FCE0F4F1C8F17F9AD97ACB4E129A4
Sqlcmd.exe2005.90.4035.0530,78424-Nov-200820:03MD5: 512C6ECF02979B75B5C52D5F3021C379
SHA1: 03A8D2BE83EFF1ACE5B002D5E390670B1EF14D83
Sqlcmd.rll2005.90.4035.024,41624-Nov-200819:58不适用
Sqldiscoveryapi.dll2005.90.4035.01,939,80824-Nov-200820:04MD5: 63834474BB3D9B15958A40B0FF102F93
SHA1: F00BE0A455B134CF17FF6C9FBCF19D93BC6F403B
Sqlsetupvista.dll2005.90.4035.0702,81624-Nov-200820:04MD5: 593F2B3BD7C92AEF28A751D5C4421C84
SHA1: 58D55D1822E697D701F9B45A50A6A5B67B998E77
Finalsql2005information.rtf不适用84414-Jan-201014:37不适用
Sqlhotfix.chm不适用116,10614-Jan-201014:37不适用
Sqlse.rll1.4.1581.059,24007-Apr-201020:04不适用
Sqlrun_as.msp不适用67,258,36808-Apr-201000:57不适用
Sqlrun_dts.msp不适用35,875,32808-Apr-201001:01不适用
Sqlrun_ns.msp不适用12,269,05608-Apr-201001:02不适用
Sqlrun_rs.msp不适用31,128,57608-Apr-201001:06不适用
Sqlrun_sql.msp不适用69,868,03208-Apr-201001:13不适用
Sqlrun_tools.msp不适用65,883,64808-Apr-201001:23不适用

状态


Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。

参考资料


有关软件更新术语的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
用于描述 Microsoft 软件更新的标准术语的824684说明