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

修复: 该查询性能会降低比 SQL Server 2000 中运行查询时在 SQL Server 2005 中运行查询时

Extended support for SQL Server 2005 ends on April 12, 2016

If you are still running SQL Server 2005 after April 12, 2016, you will no longer receive security updates and technical support. We recommend upgrading to SQL Server 2014 and Azure SQL Database to achieve breakthrough performance, maintain security and compliance, and optimize your data platform infrastructure. Learn more about the options for upgrading from SQL Server 2005 to a supported version here.

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

点击这里察看该文章的英文版: 942659
错误 #: 50001716 (SQL 修补程序)
Microsoft 将 Microsoft SQL Server 2005 修补程序分发作为一个可下载的文件。因为该修补程序是累积性的因此每个新版本包含的所有修补程序和所有安全修补程序附带以前 SQL Server 2005 修补都程序版本。
症状
请考虑以下情形。您可以参数化的查询。中的查询在 WHERE 子句中,可以指定以下搜索条件:
  • 您可以使用比较运算符的参数值的列的值进行比较。
  • 您可以使用 LIKE 运算符来与一个不同的参数的值相同的列的值相匹配。
例如对于该查询包含以下语句。
DECLARE @para1 VARCHAR(50)DECLARE @para2 VARCHAR(50)SET @para1 = 'Ad%'SET @para2 = 'A'SELECT * FROM Person.ContactWHERE (LastName LIKE @para1) AND (LastName > @para2)
在这种情况下,查询性能会降低比在 Microsoft SQL Server 2000 中运行查询时在 Microsoft SQL Server 2005 中运行查询时。例如对于时 SQL Server 2000 中运行该查询,查询将采用 1.2 秒完成运行。当您在 SQL Server 2005 年运行该查询时,查询采用 9 秒完成运行。
原因
出现此问题的原因是 SQL Server 2005 用于查询的执行计划并不太理想,比 SQL Server 2000 使用的查询的执行计划。

SQL Server 2005 中的执行计划使用的比较运算符查找表。SQL Server 2000 中执行计划使用 LIKE 运算符来查找表。比较运算符返回更多的行比将 LIKE 运算符将返回。查询性能所以速度较慢。
解决方案
在累积更新 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 服务包中。

您安装累积更新 4 后,您必须启用跟踪标记 4119。启用了跟踪标志 4119 之后,执行计划将使用 LIKE 运算符来查找 SQL Server 2005 中的表。

有关在 SQL Server 2005 中的跟踪标记的详细信息,请访问下面的 Microsoft 开发人员网络 (MSDN) 的网站:
状态
Microsoft 已经确认这是在"适用于"一节中列出的 Microsoft 产品中的问题。
更多信息
有关哪些文件发生更改的详细信息,并应用累积更新包包含此 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:942659 - 上次审阅时间:10/19/2007 19:29:01 - 修订版本: 1.1

Microsoft SQL 2005 Server Enterprise, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL 2005 Server Workgroup

  • kbmt kbhotfixrollup kbfix kbpubtypekc kbqfe kbexpertiseadvanced KB942659 KbMtzh
反馈