news 2026/8/29 23:13:32

运维系列数据库系列【仅供参考】:达梦数据库:并行查询--dba手册

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
运维系列数据库系列【仅供参考】:达梦数据库:并行查询--dba手册

达梦数据库:并行查询--dba手册

  • 并行查询--dba手册
    • 22.8 并行查询
      • 22.8.1 并行查询概念
      • 22.8.2 确定并行任务个数
      • 22.8.3 确定并行工作线程数
      • 22.8.4 执行查询
      • 22.8.5 使用场景




并行查询–dba手册

22.8 并行查询

22.8.1 并行查询概念

倘若没有并行查询技术,一个串行执行的查询语句只能利用 CPU 或者磁盘设备中的一
个,而不能利用整个计算机的处理能力。并行查询技术的出现,使得单个 SQL 语句能利用
多个 CPU 和磁盘设备的处理能力。其优势在于可以通过多个线程来处理查询任务,从而提
高查询的效率。
达梦数据库为具有多个 CPU 的数据库服务器提供并行查询的功能,以优化查询任务的
性能。数据库服务器只有具有多个 CPU,才能使用并行执行查询操作,来提高查询任务的速
度。
达梦数据库通过三个步骤来完成并行查询:首先,确定并行任务数;其次,确定并行工
作线程数;最后,执行查询。并行查询相关参数见下表:
表 22.1 并行查询相关参数

参数名缺省值属性说明
MAX_PARALLEL_DEGREE1动态,会话级用来设置默认并行任务个数。取值范围:1~128。缺省值 1,表示无并行任务。当 PARALLEL_POLICY 值为 1 时该参数值才有效。
PARALLEL_POLICY0静态用来设置并行策略。取值范围:0、1 和 2,缺省为 0。其中,0 表示不支持并行;1 表示自动并行模式;2 表示手动并行模式。
PARALLEL_THRD_NUM10静态用来设置并行工作线程个数。取值范围:1~1024。

22.8.2 确定并行任务个数

当开启自动并行(PARALLEL_POLICY=1)时,参数 MAX_PARALLEL_DEGREE 生效,
控制并行查询最多使用的线程数。MAX_PARALLEL_DEGREE 缺省值为 1,表示不并行。此
时若指定参数对应的 HINT “PARALLEL”,则使用 HINT 值;
当开启手动并行(PARALLEL_POLICY=2)时,参数 MAX_PARALLEL_DEGREE 失效,
用户需要在语句中使用此参数对应的 HINT “PARALLEL”指定语句的并行度,否则不并行。
1. 在 INI 参数中设置默认值
INI 参数 MAX_PARALLEL_DEGREE 设置最大并行任务个数。取值范围:1~128。缺省
值 1,表示无并行任务,此参数仅在 PARALLEL_POLICY 值为 1 时才有效。
例如,在 INI 参数中将 MAX_PARALLEL_DEGREE 设置为 3 的格式如下:
MAX_PARALLEL_DEGREE 3
然后,使用一般的 SQL 语句查询即可执行并行查询,不需要使用 HINT。如:
SELECT * FROM SYSOBJECTS;
2. 在 SQL 语句中使用“PARALLEL”关键字特别指定
当 PARALLEL_POLICY=2 时,需要在 SQL 语句中通过“PARALLEL”HINT 指定并行
度,否则不并行。若 PARALLEL_POLICY=1,则 SQL 语句中使用的“PARALLEL”HINT
总是优先于 MAX_PARALLEL_DEGREE 参数设置。
―PARALLEL‖关键字的用法是在数据查询语句的 SELECT 关键字后,增加 HINT 子句
来实现。
HINT 语法格式如下:
/*+ PARALLEL([<表名>] <并行任务个数>) /
例如,下面的例子中,即使已经设置了 MAX_PARALLEL_DEGREE 默认值 3,但实际使
用的为 PARALLEL 指定的任务个数 4:
SELECT /+ PARALLEL(4) / * FROM SYSOBJECTS;
另外,每个语句中仅能设置一次并行任务个数,如果设置了多次,则以最后一次设置为
准,而且任务个数在全语句中生效。
例如,下面的例子中,使用的并行任务个数为 2。
SELECT /+ PARALLEL(1) //+ PARALLEL(2) */ * FROM SYSOBJECTS;
这种方式能够为单条查询语句设置额外的并行任务个数,以此来提高某些特殊查询任务
的性能。

22.8.3 确定并行工作线程数

在执行并行查询任务之前,您需要指定完成该任务的并行工作线程数。值得注意的是,
实际使用的线程数并非总是等于并行工作线程数。并行工作线程数是在 INI 参数中设定的,
实际使用并行工作线程数是根据系统的实际状况确定的。
1. 并行工作线程数,在 INI 参数中设定
首先,使用 PARALLEL_POLICY 参数来设置并行策略。取值范围:0、1 和 2,默认值
0。其中,0 表示不支持并行;1 表示自动并行模式;2 表示手动并行模式。
当开启本地并行(PARALLEL_POLICY>0)时,使用 PARALLEL_THRD_NUM 指定本地
并行查询使用的线程数,取值范围为 1~1024,缺省值为 10。需要注意的是,若
PARALLEL_POLICY=1,如果 PARALLEL_THRD_NUM=1, 则按照 CPU 个数创建并行线程。
例如,设置并行策略 PARALLEL_POLICY 为 2,即手动设置并行工作线程数;同时,
设置并行工作线程数 PARALLEL_THRD_NUM 为 4 个。
PARALLEL_POLICY 2
PARALLEL_THRD_NUM 4
当然,并非所有的查询都适合使用并行查询。大量占用 CPU 周期的查询最适合采用并
行查询的功能。例如,大型表的连接查询、大量数据的聚合和大型结果集的排序等都很适合
采用并行查询。对于简单查询(常用于事务处理应用程序)而言,执行并行查询所需的额外
协调工作会大于潜在的性能提升。所以,数据库管理员在确定是否需要使用并行策略的时候,
需要慎重。
2. 实际使用的线程数,达梦数据库会根据每个并行查询操作自动检测
实际使用线程数是数据库在查询计划执行时初始化的时候确定的。也就是说,这不需要
用户去干预,而是系统根据并行任务数和实际空闲的并行工作线程数来确定的。此操作所依
据的条件如下:首先,检测达梦数据库是否运行在具有多个CPU的计算机上。只有具有多个
CPU 的计算机才能使用并行查询。这是一个硬性的限制条件。其次,检测可用的空闲工作
线程是否足够。并行查询到底采用多少线程数,除了跟操作的复杂程度相关外,还跟当时的
服务器状态相关,如是否有足够的可用的空闲工作线程数量等。每个并行查询操作都要求一
定的工作线程数量才能够执行;而且执行并行计划比执行串行计划需要更多的线程,所需要
的线程数量也会随着任务个数的提高而增加。当无法满足特定并行查询执行的线程要求时,
数据库引擎就会自动减少任务个数,甚至会放弃并行查询而改为串行计划。所以,即使同一
个操作在不同时候可能会采用不同的线程数。
例如,即使设置并行工作线程数为4。而实际使用的线程数可能只有3个,或者更少。

22.8.4 执行查询

当以上内容确定好之后,数据库就会执行具体的查询任务。

22.8.5 使用场景

使用手动并行模式时,只需要在 INI 参数中设置好如下 2 个参数,然后执行并行 SQL
查询语句时,需手动指定当前并行任务个数。若不指定,将不使用并行。设置的 2 个参数
如下:
PARALLEL_POLICY 2
PARALLEL_THRD_NUM 4
使用自动并行模式时,一般指定如下三个参数:
MAX_PARALLEL_DEGREE 3
PARALLEL_POLICY 1
PARALLEL_THRD_NUM 10
另外,当 PARALLEL_POLICY 为 0 时,即使有并行任务,也不支持并行。
然后,执行语法格式类似―SELECT * FROM SYSOBJECTS;‖的并行 SQL 语句即可,
本条语句使用默认并行任务数 3。
当然,如果单条查询语句不想使用默认并行任务数,可以通过在 SQL 语句中增加 HINT,
通过―PARALLEL‖关键字来特别指定。此时,执行的并行 SQL 语句格式为―SELECT /*+
PARALLEL(SYSOBJECTS 4) */ * FROM SYSOBJECTS;‖,本条语句使用的并行任务数
为 4。







yangeoooo

并行查询–dba手册

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/30 4:10:56

想快速入门学黑客,这四个工具一定要会!

想快速入门学黑客&#xff0c;这四个工具一定要会&#xff01; 新手入门第一步&#xff0c;先把这 4 个核心工具摸透 —— 它们是攻防实战的基础装备&#xff0c;不管是挖漏洞、做渗透测试&#xff0c;还是打CTF比赛&#xff0c;都离不开它们。 1. Kali Linux&#xff1a;攻防…

作者头像 李华
网站建设 2026/8/30 3:06:53

告别重复劳动,用Open-AutoGLM实现全天候智能运营,你还在手动操作吗?

第一章&#xff1a;告别手动运营&#xff0c;迎接智能自动化新时代在数字化转型的浪潮中&#xff0c;企业正逐步摆脱依赖人工干预的传统运维模式。智能自动化通过整合人工智能、机器学习与编排工具&#xff0c;实现了系统监控、故障响应和资源调度的自主化运行&#xff0c;极大…

作者头像 李华
网站建设 2026/8/30 1:40:49

19.3 用户痛点挖掘:现有工具的改进空间

19.3 用户痛点挖掘:现有工具的改进空间 课程概述 在前两节课中,我们分析了图像生成市场的现状和主要竞品的特点。本节课我们将深入挖掘用户在使用现有图像生成工具过程中遇到的具体痛点,明确我们可控图像生成平台的改进方向和创新机会。 通过本节课的学习,你将能够: 深…

作者头像 李华
网站建设 2026/8/30 4:55:04

AI写论文哪个软件最好?宏智树AI用一场“毕业前哨战”替你测评了

深夜的屏幕荧光映照着一张张焦虑的脸庞&#xff0c;数百万毕业生在键盘的敲击声中寻找通往学术终点的最短路径&#xff0c;却不知有些捷径会通往死胡同。 根据2025年行业数据&#xff0c;全球高校中使用AI辅助论文写作的比例已从两年前的18%激增至45%。 数字背后是真实困境&am…

作者头像 李华
网站建设 2026/8/30 3:26:33

LangFlow镜像后端逻辑分离:前后端解耦便于维护

LangFlow镜像后端逻辑分离&#xff1a;前后端解耦便于维护 在AI应用开发日益普及的今天&#xff0c;越来越多团队希望快速构建基于大语言模型&#xff08;LLM&#xff09;的智能系统——从客服机器人到自动化文档处理&#xff0c;再到个性化推荐引擎。然而&#xff0c;直接使用…

作者头像 李华
网站建设 2026/8/29 22:32:19

每天减少200小时人工干预:Open-AutoGLM在京东级电商业务中的落地实践

第一章&#xff1a;Open-AutoGLM在电商售后工单中的应用背景随着电商平台订单量的持续增长&#xff0c;售后工单处理成为影响用户体验和运营效率的关键环节。传统的人工审核与响应机制已难以应对海量、多样化的用户请求&#xff0c;亟需智能化解决方案提升处理速度与准确性。Op…

作者头像 李华