Applies ToMicrosoft SQL Server 2005 Developer Edition Microsoft SQL Server 2005 Enterprise Edition Microsoft SQL Server 2005 Enterprise X64 Edition Microsoft SQL Server 2005 Evaluation Edition Microsoft SQL Server 2005 Express Edition Microsoft SQL Server 2005 Express Edition with Advanced Services Microsoft SQL Server 2005 Standard Edition Microsoft SQL Server 2005 Standard X64 Edition Microsoft SQL Server 2005 Workgroup Edition SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Express SQL Server 2008 Express with Advanced Services SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Express SQL Server 2008 R2 Express with Advanced Services SQL Server 2008 R2 Parallel Data Warehouse SQL Server 2008 R2 Standard SQL Server 2008 R2 Standard Edition for Small Business SQL Server 2008 R2 Web SQL Server 2008 R2 Workgroup SQL Server 2008 Standard SQL Server 2008 Standard Edition for Small Business SQL Server 2008 Web SQL Server 2012 Business Intelligence SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Express SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2012 Enterprise Core SQL Server 2014 Business Intelligence - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Web - duplicate (do not use)

目录

简介

本文讨论了一个超线程环境中的 SQL Server 支持。

更多信息

SQL Server 的核心设计在超线程环境中完全正常工作。 但是,如果你使用的是超线程环境,我们建议你执行以下操作:

  • 运行 Microsoft SQL Server 2000 Service Pack 3 (SP3)或更高版本的服务包。

  • 安装最新的安全更新。

Microsoft Windows 操作系统使逻辑超线程 Cpu 显示为物理 Cpu。 由于 SQL Server 已经高度可伸缩,因此其他 Cpu 使 SQL Server 能够使用更多的处理器。有关 Microsoft Windows 支持超线程的其他信息,请访问下面的 Microsoft 网站:

http://www.microsoft.com/whdc/system/sysinternals/ht-windows.mspx在考虑执行超线程部署时,必须注意以下事项:

  • 协议

  • 处理器映射

  • 英特尔的 CPU 盘点实用程序

下面是有关每个项目的详细信息。

协议

启用超线程时,基本输入输出系统(BIOS)使用逻辑到物理 CPU 比率。 当前实现使用的是2:1 比率。 这意味着每个物理 CPU 有两个(2)个逻辑 Cpu。 这些比率在将来可能会更改;但是,Microsoft SQL Server 2000 Service Pack 3 (SP3)和更高版本具有可调整授权限制以处理比率的其他许可代码。 例如,如果你安装的 SQL Server 产品代码允许2:1 比率的 4 CPU 许可证,SQL Server 2000 SP3 内部版本和更高版本的版本将进行调整,并让你使用8个 Cpu。当安装 SQL Server 时,你将使用物理 CPU 计数,并且让 SQL Server 能够处理比率转换。 相比之下,当设置 关联掩码 选项时,将使用逻辑 CPU 值,因为 SQL Server 将所有 cpu 用作物理处理器。有关更多许可和支持的配置详细信息,请访问下面的 Microsoft 网站:

http://www.microsoft.com/sql/howtobuy/default.mspx

处理器映射

默认情况下,SQL Server 根据序号处理器顺序为每个处理器创建逻辑用户模式调度(UMS)计划程序。 在支持超线程的环境中,Microsoft Windows 使所有处理器可用于 SQL Server 进程,就像它们是真正的物理处理器一样。 下表显示逻辑和物理处理器映射的示例。处理器映射表1

合乎

物理

0

0

1

1

2

2

3

3

0

1

6

2

7

3

下面是另一个处理器映射示例。处理器映射表2

合乎

物理

0

0

1

0

2

1

3

1

2

2

6

3

7

3

任何一种映射都可用于 SQL Server。 但是,请注意不要创建当预期使用多个物理 Cpu 时 SQL Server 意外限制为物理 CPU 的情况。可以使用 SQL Server 关联掩码选项更改预期的物理处理器使用率。 若要执行此操作,请参阅处理器映射表1。 如果关联掩码为00010001且使用的是处理器0和处理器4,则使用的逻辑处理器映射到样本物理处理器,#0。 这将导致单个物理处理器使用,同时支持这两个逻辑处理器,而不是两个物理处理器。 这种情况可能会降低性能。你可以使用 "关联掩码" 选项和 "IO 关联掩码" 启动参数的组合来更改默认行为。 有关关联掩码选项或 IO 关联掩码启动参数的详细信息,请参阅 SQL Server 联机丛书。有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

298402 了解如何设置 SQL Server 输入/输出关联选项警告 建立关联掩码时请务必小心。如果你打算使用单独的物理处理器,则可以轻松地使用同一物理处理器支持两个逻辑处理器,从而轻松配置关联掩码。

超线程环境的性能各有不同。 保守测试的 SQL Server 工作负荷提高了10% 到20%,但应用程序模式有重大影响。 你可能会发现,某些应用程序在利用超线程处理时不会提高性能。 如果物理处理器已经饱和,使用逻辑处理器实际上可以减少实现的工作负荷。 例如,导致高争用级别的应用程序可能会导致超线程环境中性能下降。 我们建议你对应用程序进行全面测试,以确保超线程环境为你提供所需的性能提升,而不是对等效的物理 Cpu 的购买。 超线程处理可能非常有用,但超线程不能取代额外物理 CPU 的全部功能。本文中提到的第三方产品由 Microsoft 以外的其他公司提供。 Microsoft 不对这些产品的性能或可靠性提供任何明示或暗示性担保。英特尔网站有一些有用的信息和有关超线程(英特尔 NetBurst 微体系结构)的教程。 有关支持超线程的系统的详细信息,请访问以下 Intel 网站:

http://software.intel.com/en-us/blogs/2009/06/02/intel-hyper-threading-technology-your-questions-answered http://developer.intel.com

最大并行度(MAXDOP)

有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2806535 有关 SQL Server 中 "最大并行度" 配置选项的建议和指南

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。