具备高性能工作负载的 SQL Server 的建议更新和配置选项
本文包含可用于 SQL Server 2012 及更高版本的性能改进和配置选项的列表。
原始产品版本: SQL Server 2014、SQL Server 2012
原始 KB 数: 2964518
应用建议的更新并提高 SQL Server 2014 和 SQL Server 2012 的性能
本文介绍通过各种产品更新和配置选项可用于 SQL Server 2014 和 SQL Server 2012 版本的性能改进和更改。 可以考虑应用这些更新,以提高 SQL Server 实例的性能。 你看到的改进程度取决于各种因素,包括工作负荷模式、争用点、处理器布局(处理器组数、套接字、NUMA 节点、NUMA 节点中的内核数)以及系统中存在的内存量。 SQL Server 支持团队使用这些更新和配置更改,为使用具有多个 NUMA 节点和大量处理器的硬件系统的客户工作负载实现合理的性能提升。 支持团队将继续在将来使用其他更新更新本文。
高端系统一个高端系统通常具有多个套接字、每个套接字 8 个核心或更多个,以及一半 TB 或更多内存。
注意
在 SQL Server 2016 及更高版本中,本文中提到的许多跟踪标志是默认行为,无需在这些版本中启用它们。
建议分为三个表,如下所示:
表 1. 高端系统的重要更新和跟踪标志
查看下表并在确保 SQL Server 实例满足适用版本和生成范围列中的要求后,在跟踪标志列中启用跟踪标志。
注意
适用的版本和内部版本指示引入更改或跟踪标志的特定更新。 如果未指定 CU,则包括 SP 中的所有 CU。
不适用的版本和内部版本指示更改或跟踪标志成为默认行为的特定更新。 因此,只需应用该更新就足以获得好处。
重要
在 AlwaysOn 环境中启用跟踪标志的修补程序时,请注意,必须在属于可用性组的所有副本上启用修补程序和跟踪标志。
需要考虑的方案和症状 | 跟踪标志 | 适用的版本和生成范围 | 不适用的版本和生成范围 | 提供更多详细信息的知识库文章/博客链接 |
---|---|---|---|---|
|
T8048 |
|
|
|
|
T8079 | SQL Server 2014 SP2 到当前的 SP/CU |
|
|
|
T9024 | SQL Server 2012 Service Pack 1 到 SP2 SQL Server 2014 RTM 的累积更新包 3 |
|
修复:SQL Server 2012 或 SQL Server 2014 实例上的高“日志写入等待”计数器值 |
由于连接池,SQL Server 实例正在处理数千个连接重置。 | T1236 | SQL Server 2012 Service Pack 1 到 SP2 累积更新 1 的累积更新包 9(适用于 SQL Server 2014 ) |
|
|
|
T1118 |
|
|
tempdb 数据库的并发增强功能 注意 :启用跟踪标志并为 tempdb 数据库添加多个数据文件。 |
|
T1117 |
|
|
有关减少 SQL Server tempdb 数据库中的分配争用的建议 |
大量 SOS_CACHESTORE 旋转锁争用或计划经常在即席查询工作负荷上被逐出。 |
T174 |
|
无 |
|
|
T8032 |
|
无 |
|
由于表中大量行,因此不会频繁更新现有统计信息。 | T2371 |
|
无 | |
|
T7471 | SQL Server 2014 SP1 CU6 到当前的 SP/CU | 无 | 使用 SQL 2014 和 SQL 2016 提升更新统计信息性能 |
CHECKDB 命令对于大型数据库需要很长时间。 |
|
|
无 | |
CHECKDB 命令对于大型数据库需要很长时间。 | T2566 |
|
无 |
|
执行需要长时间编译时间的并发数据仓库查询, RESOURCE_SEMAPHORE_QUERY_COMPILE 从而等待。 |
T6498 | SQL Server 2014 到 SP1 的累积更新包 6 |
|
|
默认禁用优化器修复的特定查询性能问题。 | T4199 |
|
无 | |
使用具有空间数据类型的查询操作时性能缓慢。 |
|
|
|
|
|
T8075 |
|
|
修复:SQL Server 进程的虚拟地址空间不足时内存不足错误 |
|
T3449 |
|
|
修复:在具有大量内存的系统上创建 SQL Server 数据库所需的时间比预期长 |
表 2. 提高 SQL Server 实例性能的一般注意事项和最佳做法
查看知识库文章/联机丛书资源列中的内容,并考虑在“建议的操作”列中实施指南。
知识库文章/联机丛书资源 | 建议的操作 |
---|---|
配置 max degree of parallelism 服务器配置选项 | 根据知识库文章,使用sp_configure存储过程对 SQL Server 实例配置最大并行度服务器配置选项 进行配置更改。 |
按 SQL Server 版本划分的计算能力限制 | 使用服务器 + 客户端访问许可证(CAL)许可的企业版限制为每个 SQL Server 实例 20 个核心。 基于内核的服务器许可模型没有限制。 请考虑将 SQL Server 版本升级到适当的 SKU,以利用所有硬件资源。 |
使用“均衡”电源计划时 Windows Server 性能缓慢 | 查看文章,并与 Windows 管理员合作,实现本文的“解决方案”部分中所述的解决方案之一。 |
将 NUMA 节点手动分配给 K 组。 | |
针对临时工作负荷进行优化强制参数化 | 由于其他缓存或内存 clerk 中的增长,计划缓存中的条目将被逐出。 当缓存达到其最大条目数时,还可能会遇到计划缓存逐出。 除了上面讨论的跟踪标志 8032 之外,请考虑针对即席工作负荷服务器选项和 FORCED PARAMETERIZATION 数据库选项进行优化。 |
如何在 SQL Server 2012 及更高版本中减少缓冲池内存的分页和大小调整注意事项 | 将 “启用内存中的锁页”选项(Windows) 用户权限分配给 SQL 服务启动帐户。 请参阅 如何在 SQL Server 2012 中启用“锁定页面”功能。 将最大服务器内存设置为大约 90% 的总物理内存。 确保 服务器内存配置选项 设置仅占配置为使用关联掩码设置的节点的内存。 |
SQL Server 和大型页说明...在高性能工作负荷中运行时针对 SQL Server 的优化选项 | 如果服务器具有大量内存(尤其是分析或数据仓库工作负荷),请考虑启用 TF 834。 请记住, 如果使用列存储索引,则不建议使用 TF 834。 |
sp_configure存储过程中提供的“访问检查缓存存储桶计数”和“访问检查缓存配额”选项的说明 | 使用 访问检查缓存服务器配置选项 根据知识库文章中的建议配置这些值。 高端系统的建议值如下所示: “访问检查缓存存储桶计数”:256 “访问检查缓存配额”:1024 |
ALTER WORKLOAD GROUP Memory grant query hints | 如果有许多查询耗尽了大型内存授予,请将资源调控器配置中默认工作负荷组的默认工作负荷组从默认 25% 减少 request_max_memory_grant_percent 到较低的值。 SQL Server 中提供了新的查询内存授予选项(min_grant_percent 和 max_grant_percent ) |
即时文件初始化 | 与 Windows 管理员合作,根据联机丛书主题中的信息,向 SQL Server 服务帐户授予“执行卷维护任务”用户权限。 |
SQL Server 中“autogrow”和“autoshrink”设置的注意事项 | 检查数据库的当前设置,并确保它们根据知识库文章中的建议进行配置。 |
数据库检查点 (SQL Server) | 请考虑在用户数据库上启用间接检查点以优化 SQL Server 2012 和 2014 中的 I/O 行为。 |
修复:当磁盘在 SQL Server AG 和 Logshipping 环境中主副本和次要副本日志文件具有不同的扇区大小时,同步速度缓慢 | 如果有一个可用性组,其中主副本上的事务日志位于具有 512 字节扇区大小的磁盘上,而辅助副本的事务日志位于具有 4K 扇区大小的驱动器上,则同步速度缓慢的问题。 在这些情况下,启用 TF 1800 应更正此问题。 有关详细信息,请参阅 跟踪标志 1800。 |
如果 SQL Server 尚未绑定 CPU,并且工作负荷的开销为 1.5% 到 2%,建议启用 TF 7412 作为启动跟踪标志。 此标志在 SQL Server 2014 SP2 或更高版本中启用轻型分析,这使你可以在生产环境中执行实时查询故障排除。 |
表 3。 累积更新中包含的性能修复
查看“症状”列中的说明,并在适用环境中的“必需更新”列中应用所需的更新。 可以查看知识库文章,了解有关相应问题的详细信息。 这些建议不需要启用其他跟踪标志作为启动参数。 只需应用包含这些修补程序的最新累积更新或 Service Pack 即可获得好处。
注意
“必需更新”列中的 CU 名称提供解决此问题的 SQL Server 的第一个累积更新。 累积更新包含以前 SQL Server 更新版本中包含的所有修补程序和所有更新。 因此,建议安装 最新的累积更新 以解决问题。
重要事项
如果表 1 中的所有条件都适用于你:
- SQL Server 2014 指南:将 SQL Server 2014 的累积更新 1 应用于 RTM,并将“-T8048 -T9024 -T1236 -T1117 -T1118”添加到 SQL Server 启动参数列表。
- SQL Server 2012 指南:将 SP2 应用于 SQL Server 启动参数列表,并将“-T8048 -T9024 -T1236 -T1117 -T1118”添加到 SQL Server 启动参数列表。
有关如何使用跟踪标志的一般信息,请查看 SQL Server 联机丛书中的 DBCC TRACEON - 跟踪标志 (Transact-SQL) 主题。
可以在 SQL Server Management Studio(SSMS)中查看 SQL Server 错误日志中找到有关处理器数、NUMA 配置等的详细信息。
若要查找 SQL Server 的版本,请检查以下内容:
参考
SQL Server 重要更新上的 SQL Server 社区资源
适用于
- SQL Server 2014 Enterprise
- SQL Server 2014 Enterprise Core
- SQL Server 2014 Business Intelligence
- SQL Server 2014 开发人员
- SQL Server 2014 Standard
- SQL Server 2014 Web
- SQL Server 2014 Express
- SQL Server 2012 商业智能
- SQL Server 2012 开发人员
- SQL Server 2012 企业版
- SQL Server 2012 Standard
- SQL Server 2012 Web
- SQL Server 2012 Enterprise Core