你目前正处于脱机状态,正在等待 Internet 重新连接

FIX: 一种具有多个外部联接的查询需要较长的时间,以 SQL Server 2005 编译

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 943060
错误 #: 50001887 (SQL 修补程序)
Microsoft 将 Microsoft SQL Server 2005 修补程序分发作为一个可下载的文件。因为该修补程序是累积性的因此每个新版本包含的所有修补程序和所有安全修补程序附带以前 SQL Server 2005 修补都程序版本。
症状
在 Microsoft SQL Server 2005,您要运行具有许多外部联接的查询。执行此操作时查询采用较长时间才能编译。此外,SQL Server 错误日志中记录与以下类似的错误消息:
Date Time 服务器 *** 无法获取线程上下文-没有 pss
Date Time Server * *******************************************************************************
Date Time 服务器 *
Date Time 服务器 * BEGIN 堆栈转储:
Date Time 服务器 * Date Time spid 0
Date Time 服务器 *
Date Time 服务器 * 非并生成计划
Date Time 服务器 *
Date Time Server * *******************************************************************************
Date Time 服务器用于转储的堆栈签名是 0x00000000000000DB
Date Time 服务器外部的转储过程返回代码 0x20002001。 该错误的信息已经提交到 Watson 错误报告。
Date Time 服务器进程 63:0:0 (0x175c) 工人 0x000000008A35A1C0 显示并进行无-生成上调度程序 0。线程创建时间: 12834554418123。约线程 CPU 使用: 内核 62 的毫秒用户 68000 ms.进程利用率 48%。系统空闲 45%。间隔: 70013 毫秒。
……
发生此问题时, 生成一个小型转储文件。

注意如果在 Microsoft SQL Server 2000 中运行相同的查询不会发生此问题。
原因
出现此问题的原因是 SQL Server 2005 以递归方式检查计划节点的并行操作时 SQL Server 2005 生成一个执行计划的查询需要花很长时间。
解决方案
在累积更新 4 第一次释放此问题的修复程序。有关如何获取 SQL Server 2005 Service Pack 2 的此累积更新包的详细信息单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
941450对于 SQL Server 2005 Service Pack 2 的累积更新包 4
注意因为这些版本是累积性的因此每个新的修补程序版本包含的所有修补程序和所有安全修补程序附带以前 SQL Server 2005 修补都程序版本。Microsoft 建议您考虑应用最新的修补程序版本包含此修补程序。有关详细的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
937137SQL Server 2005 生成发布 SQL Server 2005 Service Pack 2 之后发布的
为特定 SQL Server 服务包创建 Microsoft SQL Server 2005 修补程序。必须将 SQL Server 2005 Service Pack 2 修补程序应用到 SQL Server 2005 Service Pack 2 的安装。默认状态下,SQL Server service pack 中提供的任何修补程序包含在下一个 SQL Server 服务包中。
替代方法
要变通解决此问题,将设置为 1,为查询的 MAXDOP 查询提示。
状态
Microsoft 已经确认这是在"适用于"一节中列出的 Microsoft 产品中的问题。
更多信息
在应用此累积更新包后,您必须启用跟踪标记 4123 若要解决此问题。如果启用了跟踪标志 4123,SQL Server 2005 禁用查询优化器转换通过使用循环联接实现完整外部联接必需的。因此,您可能会收到以下错误消息在极少数情况下:
服务器: 消息 8622,级别 16,1,状态行 1
由于此查询中定义该提示,查询处理器未能生成查询计划。不指定任何提示的情况下,不使用 SET FORCEPLAN 的情况下,请重新提交查询。
如果在查询中完整的外部联接为显式使用 LOOP 联接查询提示,则会收到此错误消息。

有关哪些文件发生更改的详细信息,并应用累积更新包包含此 Microsoft 知识库文章中描述的修补程序的任何系统必备项有关的信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
941450对于 SQL Server 2005 Service Pack 2 的累积更新包 4
参考
有关列表后 SQL Server Service Pack 2 的可用版本的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
937137SQL Server 2005 生成发布 SQL Server 2005 Service Pack 2 之后发布的
对于 SQL Server 增量的服务模型的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
935897一个增量的服务模型是可从 SQL Server 团队提供报告的问题的修补程序
有关如何获取 SQL Server 2005 Service Pack 2 的详细信息单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
913089如何获取最新的 service pack,SQL Server 2005 年
有关新功能和 SQL Server 2005 Service Pack 2 中的改进的详细信息请访问下面的 Microsoft 网站:有关命名 SQL Server 更新架构的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
822499Microsoft SQL Server 软件更新程序包的新命名架构
有关软件更新术语的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
824684用于描述 Microsoft 软件更新的标准术语的说明

警告:本文已自动翻译

属性

文章 ID:943060 - 上次审阅时间:11/20/2007 17:46:28 - 修订版本: 1.3

Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL 2005 Server Enterprise, Microsoft SQL Server 2005 Enterprise X64 Edition, Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems, Microsoft SQL Server 2005 Standard X64 Edition, Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems

  • kbmt kbsql2005engine kbhotfixrollup kbfix kbpubtypekc kbqfe kbexpertiseadvanced KB943060 KbMtzh
反馈