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