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

FIX: 参数化 CTE 基于查询的执行需要很长时间才能完成 SQL Server 2008 年

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

点击这里察看该文章的英文版: 976935
Microsoft 分布 Microsoft SQL Server 2008 修复程序作为一个可下载的文件。因为该修补程序是累积性的因此每个新版本包含的所有修补程序和所有安全修复程序以前 SQL Server 2008 中包含的修补都程序版本。
症状
在 Microsoft SQL Server 2008,您运行公用表表达式 (CTE) 基于的参数化查询。但是,执行的查询可能需要长时间才能完成比它不参数化。

例如对于请考虑以下情形:
  • 您有一个已将 参数化功能 选项设置为 FORCED 的数据库。
  • 在此数据库中,您要运行基于 CTE 的查询。
在这种情况下可能速度更慢于如果查询正在运行中已设置为 SIMPLE参数化 选项的数据库运行查询。
原因
因为 CTE 查询的参数化会生成一个次优的执行计划,则会出现此问题。
解决方案
累积更新 5 SQL Server 2008 Service Pack 1 中第一次释放此问题的修复程序。有关此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
975977累积更新包 5 为 SQL Server 2008 Service Pack 1
注意因为这些版本是累积性的因此每个新的修补程序版本包含的所有修补程序和所有安全修复程序以前 SQL Server 2008 中包含的修补都程序版本。Microsoft 建议您考虑应用最新的修补程序版本包含此修补程序。有关详细的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
970365SQL Server 2008 生成之后 SQL Server 2008 Service Pack 1 发布发布
Microsoft SQL Server 2008 修复程序会创建特定 SQL Server 服务包。必须将 SQL Server 2008 Service Pack 1 修补程序应用到 SQL Server 2008 Service Pack 1 的安装。默认状态下,SQL Server service pack 中提供的任何修补程序包含在下一个 SQL Server 服务包中。

您应用此修复程序后,您需要启用跟踪标记 4199 要启用此修复程序。您可以启用跟踪标志,通过运行"DBCC TRACEON(4199,-1)"命令或通过使用将"-T"启动参数。
状态
Microsoft 已经确认这是在"适用于"一节中列出的 Microsoft 产品中的问题。
参考
对于 SQL Server 增量的服务模型的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
935897一个增量的服务模型是可从 SQL Server 团队提供报告的问题的修补程序


有关命名 SQL Server 更新架构的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
822499Microsoft SQL Server 软件更新程序包的新命名架构


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

Warning: This article has been translated automatically

属性

文章 ID:976935 - 上次审阅时间:11/16/2009 09:37:02 - 修订版本: 1.1

Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Workgroup

  • kbmt kbexpertiseadvanced kbsurveynew kbqfe kbfix KB976935 KbMtzh
反馈