修复: 您可能会注意到在启用跟踪标志 2389和 2390时 SQL Server 2005 Service Pack 1的编译时间会大幅增加

错误 #: 984 (SQL 修补程序)
错误 #: 441938 (SQLBUDT)

Microsoft 为一个可下载文件分发 Microsoft SQL Server 2005年的修补程序。因为修补程序是累积性的,所以每个新版本包含所有修补程序以及所有安全修补程序被包含在附带上一个 SQL Server 2005 修补程序版本中。

本文有关此热修复程序版本的介绍如下 ︰

  • 此修复程序包修复的问题

  • 安装此修复程序包的先决条件

  • 有关安装此修补程序包后是否必须重新启动计算机的信息

  • 关于是否有修补程序包替换任何其他修补程序软件包的信息

  • 有关是否必须更改注册表信息

  • 此修复程序包中包含的文件。

症状

请考虑以下情形。您运行的 SQL 2005 Service Pack 1 (SP1)。启用跟踪标志 2389年和 2390 来启用自动生成快速统计为升序排序键。在这种情况下,您可能会遇到以下行为︰

  • 您注意到编译时大量增加。

  • 因为无法确定正确的最大值的列,SQL Server 不会生成高效的查询计划。

原因

发生此问题是因为 SQL Server 执行扫描的相应列。这种扫描花费额外的编译时间。

解决方案

可以从 Microsoft 获得受支持的修复程序。然而,此修补程序仅用于解决本文中描述的问题。仅对出现这一特定问题的系统应用此修补程序。此修补程序可能会接受进一步的测试。因此,如果这个问题没有对您造成严重的影响,我们建议您等待包含此修复程序的下一个软件更新。

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

注意:如果出现其他问题或需要任何故障诊断时,您可能需要创建单独的服务请求。对于不符合此特定的修补程序的其他支持问题和事项将照常收取费用。有关 Microsoft 客户服务和支持电话号码或创建单独的服务请求的完整列表,请访问下面的 Microsoft 网站︰

http://support.microsoft.com/contactus/?ws=support注意:"提供修补程序下载"窗体显示获取此修复程序的语言。如果看不到您的语言,则修补程序没有那种语言的版本。

系统必备组件

您必须具有要应用此修补程序的安装的 SQL 服务器 2005 Service Pack 1 (SP1)。

有关如何获取 SQL Server 2005 SP1 的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章︰

913089如何获取最新的 service pack,SQL Server 2005

重新启动信息

应用此修补程序后,不需要重新启动计算机。

注册表信息

您不需要更改注册表。

修补程序文件信息

此修补程序仅包含解决本文列出的问题所需的那些文件。此修复程序可能不包含的所有文件,您必须将产品完全更新到最新版本。

此修复程序的英文版具有的文件属性 (或更新的文件属性)在下表中列出。日期和为这些文件的时间以协调世界时 (UTC) 列出。当您查看文件信息时,它将转换为本地时间。要了解 UTC 与本地时间之间的时差,请使用控制面板中的日期和时间项中的时区选项卡。

SQL Server 2005 32年位版本

文件名称

文件版本

文件大小

日期

时间

平台

Msgprox.dll

2005.90.2174.0

197,920

17-Jul-2006

20:03

x86

Msmdlocal.dll

9.0.2174.0

15,701,792

17-Jul-2006

20:04

x86

Msmdredir.dll

9.0.2174.0

3,967,776

17-Jul-2006

20:03

x86

Replprov.dll

2005.90.2174.0

547,616

17-Jul-2006

20:05

x86

Replrec.dll

2005.90.2174.0

782,112

17-Jul-2006

20:02

x86

Sqlaccess.dll

2005.90.2174.0

347,936

17-Jul-2006

20:03

x86

Sqlservr.exe

2005.90.2174.0

28,951,896

17-Jul-2006

20:04

x86

Xpstar90.dll

2005.90.2174.0

292,128

17-Jul-2006

20:03

x86

SQL Server 2005 基于 x64 版本

文件名称

文件版本

文件大小

日期

时间

平台

Msgprox.dll

2005.90.2174.0

259,360

18-Jul-2006

08:05

x64

Msmdlocal.dll

9.0.2174.0

15,701,792

17-Jul-2006

20:04

x86

Msmdredir.dll

9.0.2174.0

3,967,776

17-Jul-2006

20:03

x86

Replprov.dll

2005.90.2174.0

745,248

18-Jul-2006

08:06

x64

Replrec.dll

2005.90.2174.0

1,008,416

18-Jul-2006

08:04

x64

Sqlaccess.dll

2005.90.2174.0

355,104

18-Jul-2006

08:05

x86

Sqlservr.exe

2005.90.2174.0

39,351,072

18-Jul-2006

08:05

x64

Xpstar90.dll

2005.90.2174.0

539,936

18-Jul-2006

08:05

x64

SQL 服务器 2005年安腾体系结构版本

文件名称

文件版本

文件大小

日期

时间

平台

Msgprox.dll

2005.90.2174.0

542,496

17-Jul-2006

22:38

IA-64

Msmdlocal.dll

9.0.2174.0

48,828,704

17-Jul-2006

22:39

IA-64

Msmdredir.dll

9.0.2174.0

6,154,016

17-Jul-2006

22:39

IA-64

Replprov.dll

2005.90.2174.0

1,617,184

17-Jul-2006

22:39

IA-64

Replrec.dll

2005.90.2174.0

2,141,472

17-Jul-2006

22:39

IA-64

Sqlaccess.dll

2005.90.2174.0

349,472

17-Jul-2006

22:38

x86

Sqlservr.exe

2005.90.2174.0

72,235,296

17-Jul-2006

22:40

IA-64

Xpstar90.dll

2005.90.2174.0

950,048

17-Jul-2006

22:36

IA-64

状态

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

详细信息

升序排序键列可能会导致频繁的插入操作的表不准确的统计信息。这些键的列可能是标识列或日期时间列表示实际的时间戳。对于某些 SQL Server 应用程序的一个常见的问题是数据通常 ascends 的情况。例如,您具有一个包含日期时间列,表和列都表示当前日期。SQL Server 生成统计信息的假定,数据也会很类似在将来。但是,如果数据通常 ascends,大多数新插入是以前找到的范围之外。此行为可能导致差计划要创建。即使大量的行所包含筛选器,选择新的数据可能排除的整体关系。

跟踪标志 2389年和 2390年都是 SQL Server 2005 SP1 中的新增功能。这些跟踪标志可帮助您解决此问题。SQL Server 2005 SP1 跟踪由后续统计数据更新的列的性质。当 SQL Server 确定统计增加三倍时,被品牌列的升序排序。统计信息将会自动更新查询编译时如果满足下列条件︰

  • 设置跟踪标志 2389年。

  • 列是按升序品牌的。

  • 覆盖索引存在升序列作为主要密钥。

语句被编译来查找最大值,并最近添加的数据来建立模型的现有直方图的末尾添加一个新步骤。

跟踪标志 2390年使跟踪标志 2389,相同的行为,即使不知道列的升序性质。只要列是索引中的前导列,优化程序将更新查询编译时具有最大值的统计信息。因为只要已知列的升序性质,将禁用此逻辑,永远不会使用跟踪标志只 2390年。

若要启用自动生成快速统计为升序的已知键,运行下面的语句︰

DBCC TRACEON ( 2389, -1 )

若要启用自动生成快速统计信息,包括已知的升序键或未知的升序键的所有列,请运行下面的语句︰

DBCC TRACEON ( 2389, 2390, -1 )

此外可以使用 Sqlservr.exe -T命令行开关启用下列两个跟踪标志整个服务器。有关详细信息,请访问下面的 Microsoft 开发人员网络 (MSDN) Web 站点︰

http://msdn2.microsoft.com/en-us/library/ms190737.aspx有关 Microsoft SQL Server 更新命名架构的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章︰

822499新命名方案为 Microsoft SQL Server 软件更新程序包

有关软件更新术语的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

用于描述 Microsoft 软件更新的标准术语的824684说明

需要更多帮助?

扩展你的技能
了解培训
抢先获得新功能
加入 Microsoft 内部人员

此信息是否有帮助?

谢谢您的反馈意见!

×