SQL Server中的“最大并行度”的配置建议

简介:

SQL Server中的最大并行度(max degree of parallelism)如何设置呢? 设置max degree of parallelism有什么好的建议和指导方针呢?在微软官方文档Recommendations and guidelines for the "max degree of parallelism" configuration option in SQL Server有这方面的建议和指导方针

Use the following guidelines when you configure the MAXDOP value.

 

SQL Server 2005 and later versions

Server with single NUMA node

Less than 8 logical processors

Keep MAXDOP at or below # of logical processors

Server with single NUMA node

Greater than 8 logical processors

Keep MAXDOP at 8

Server with multiple NUMA nodes

Less than 8 logical processors per NUMA node

Keep MAXDOP at or below # of logical processors per NUMA node

Server with multiple NUMA nodes

Greater than 8 logical processors per NUMA node

Keep MAXDOP at 8

 

 

个人觉得上面关于(max degree of parallelism)的建议、指导方针有点抽象、不太科学。因为不同的系统的负载可能不一样。这样一个笼统的建议实在让人觉得缺少合理的依据。

 

另外一种关于(max degree of parallelism)的推荐设置是根据系统类型(也可以理解为系统负载)来设置,具体建议如下所示:

OLTP系统: 

  在纯OLTP系统上,它的事务较短,SQL查询时间短,但是非常频繁。设置“Maximum degree of Parallelism”(MAXDOP)为1。这样做可以确保查询永远不必使用并行方式运行,并且不会导致更多的数据库引擎开销。

OLAP系统:

Data-warehousing / Reporting server: 因为查询执行时间一般较长,建议设置“Maximum degree of Parallelism”(MAXDOP)为0。

这样大多数查询将会利用并行处理,执行时间较长的查询也会受益于多处理器而提高性能。

混合系统

Mixed System (OLTP & OLAP):这样环境会是一个挑战,必须找到正确的平衡点。一般采取了非常简单的方法。设置“Maximum degree of

Parallelism”(MAXDOP)为 2,这样意味着查询仍会使用并行操作但是仅利用2颗CPU。并且把“并行查询阀值”(cost threshold for parallelism)设置为较高的值,这样的话,不是所有的查询都有资格使用并行,除了那些查询成本较高的查询………

 

image

cost threshold for parallelism 选项可设置为 0 到 32767 之间的任何值。默认值为 5。

 

个人比较倾向于第二种(max degree of parallelism)设置的指导方针,混合系统设置max degree of parallelism,建议结合第一种推荐设置与第二种,然后结合等待事件CXPACKET的情况,作出适当的调整。不要指望一成不变的推荐设置,这样 是不合理。只能根据比较大众的推荐设置,然后结合自身系统的具体情况,作出适当的调整、优化。

 

对于NUMA与SMP不太清楚的地方,可以参考下面资料。

传统的多核运算是使用 SMP(Symmetric Multi-Processor )模式:将多个处理器与一个集中的存储器和I/O总线相连。所有处理器只能访问同一个物理存储器,因此SMP系统有时也被称为一致存储器访问(UMA)结 构体系,一致性意指无论在什么时候,处理器只能为内存的每个数据保持或共享唯一一个数值。很显然,SMP的缺点是可伸缩性有限,因为在存储器和I/O接口 达到饱和的时候,增加处理器并不能获得更高的性能。

NUMA模式是一种分布式存储器访问方式,处理 器可以同时访问不同的存储器地址,大幅度提高并行性。 NUMA模式下,处理器被划分成多个"节点"(node), 每个节点被分配有的本地存储器空间。 所有节点中的处理器都可以访问全部的系统物理存储器,但是访问本节点内的存储器所需要的时间,比访问某些远程节点内的存储器所花的时间要少得多。

SQL Server 2005开始支持NUMA,可参考SQL Server 2008的NUMA支持 。需要注意的是,硬件、操作系统、应用软件 三者都要支持 NUMA ,才能充分利用这一特性

 

相关文章
|
3月前
|
SQL 监控 关系型数据库
查寻MySQL或SQL Server的连接数,并配置超时时间和最大连接量
以上步骤提供了直观、实用且易于理解且执行的指导方针来监管和优化数据库服务器配置。务必记得,在做任何重要变更前备份相关配置文件,并确保理解每个参数对系统性能可能产生影响后再做出调节。
416 11
|
5月前
|
SQL XML Java
配置Spring框架以连接SQL Server数据库
最后,需要集成Spring配置到应用中,这通常在 `main`方法或者Spring Boot的应用配置类中通过加载XML配置或使用注解来实现。
483 0
|
11月前
|
SQL Oracle 关系型数据库
如何在 Oracle 中配置和使用 SQL Profiles 来优化查询性能?
在 Oracle 数据库中,SQL Profiles 是优化查询性能的工具,通过提供额外统计信息帮助生成更有效的执行计划。配置和使用步骤包括:1. 启用自动 SQL 调优;2. 手动创建 SQL Profile,涉及收集、执行调优任务、查看报告及应用建议;3. 验证效果;4. 使用 `DBA_SQL_PROFILES` 视图管理 Profile。
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
SQL XML Java
mybatis :sqlmapconfig.xml配置 ++++Mapper XML 文件(sql/insert/delete/update/select)(增删改查)用法
当然,这些仅是MyBatis功能的初步介绍。MyBatis还提供了高级特性,如动态SQL、类型处理器、插件等,可以进一步提供对数据库交互的强大支持和灵活性。希望上述内容对您理解MyBatis的基本操作有所帮助。在实际使用中,您可能还需要根据具体的业务要求调整和优化SQL语句和配置。
261 1
|
SQL BI 网络安全
SQL Server2014的安装与配置
SQL Server2014的安装与配置
755 0
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
377 9
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
272 6
|
SQL Java 数据库连接
idea中配置mybatis 映射文件模版及 mybatis plus 自定义sql
idea中配置mybatis 映射文件模版及 mybatis plus 自定义sql
552 3
|
SQL 安全 Java
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
1432 0