Auto DOP:让并行执行实现智能调优 | OceanBase 实践

随着数据量的迅速增长,企业数据库往往面临着一个困局:复杂的分析查询需要充分的资源来保证性能,但过多增加并行执行又会造成资源竞争,影响系统稳定性。传统基于DBA人工干预的并行度调节机制,既低效又难以适应动态变化的负载需求。

再此背景下,Auto DOP(Automatic Degree of Parallelism,自动并行度)技术已成为新一代数据库的必备能力之一。该技术通过实时分析查询特征、数据量和系统资源状况,实现智能资源调度能力——如同一位高效的"交通指挥官",动态调配最佳执行资源。无论是实时分析、AI模型训练,还是混合负载管理和云资源优化,Auto DOP都能通过智能化并行处理,显著提升企业数据处理效能。

本文将重点介绍在 OceanBase 数据库中,Auto DOP 的核心参数、状态监测及在 AP 场景、AP+TP 混布场景下的实践,帮助数据库破解资源争用难题,实现复杂查询毫秒级响应,保障系统稳定高效运行。

Auto DOP 核心参数解析

Auto DOP 在很大程度上解决了以往 DBA 需要手动设置并行度带来的不便。在实际生产环境中,运用这一技术仅需两步操作:

👉 首先,需要根据服务器的硬件性能,综合考量可接受的复杂查询对系统资源的占用比例,据此设置并行度上限,例如:set parallel_degree_limit = 32;

👉 然后,打开 Auto DOP:set parallel_degree_policy = AUTO。

在设置 Auto DOP 的过程中,有几个关键参数,分别是资源管控参数 parallel_servers_target、parallel_degree_limit 以及执行优化层参数 parallel_min_scan_time_threshold。

1、parallel_servers_target

parallel_servers_target 属于租户级别的系统变量,它明确规定了租户在每个节点上可申请的并行执行线程数量。其默认值是 MIN CPU * px_workers_per_cpu_quota。当这个参数指定的线程资源耗尽时,后续发起的并行执行请求需要进入排队等待的状态,直至有可用资源释放。

图片

2、parallel_degree_limit

parallel_degree_limit 主要用于约束 Auto DOP 开启时,单条 SQL 语句所能达到的最大并行度,默认值为 0。当这个参数为 0 时,系统会自动借助 CPU 资源状况和 parallel_servers_target 的设定,共同限制最大 DOP 值。

例如,当 parallel_degree_limit = 0 时,若 parallel_servers_target = 10,且通过 OceanBase.V$OB_UNITS 查询得知 min_cpu = 2,同时单条 SQL 查询所读取的两个分区分布在 2 台 OBServer 上,那么经过计算,该场景下最大可用 DOP 为 min(10, 2 * 2) = 4。

图片

3、parallel_min_scan_time_threshold

parallel_min_scan_time_threshold 以毫秒(为单位ms),默认值设置为 1000 ms,该参数对并行度的调整有着直接影响。具体来说,当基表的扫描代价高于该参数设定的值时,系统就会自动开启并行处理模式。

假如适当调小 parallel_min_scan_time_threshold 的值,可以降低基表开启并行处理的门槛,使得评估执行时间更短的基表扫描也能被纳入并行处理范畴。对于已经处于并行处理状态且数据量固定的表,也会相应地提升并行度,采用更大规模的并行扫描策略,以进一步优化处理效率。例如:

图片

图片

Auto DOP 执行状态监测

在实际应用过程中,准确监测 Auto DOP 的执行状态对于开发者优化数据库性能、精准定位问题至关重要。OceanBase 提供了系统视图特征码解析以及内置 XPlan 工具包这两大工具,助力开发者快速锁定并行策略的执行轨迹,实现对资源调度的精准验证。

方法一:通过查询 $OB_PLAN_CACHE_PLAN_STAT 中的 OUTLINE_DATA 字段,判断其中是否包含 PARALLEL(AUTO) ,以此来确定相关执行策略是否启用了 Auto DOP。

图片

方法二:通过 explain extended 指令或使用 dbms_xplan.display_cursor(强烈推荐开发者体验,该函数在分析性能问题方面效果显著),同样能够获取关于 Auto DOP 执行状态的详细信息。

图片

Auto DOP 最佳场景实践

1、AP 场景

在纯 AP 场景下,业务需求主要聚焦于运行少量极为复杂的大查询,几乎不存在急需优先处理的 DML 操作以及小查询任务。此时,运用 Auto DOP 的方法极为简便:

第一步,结合服务器硬件性能,综合权衡可接受的复杂查询对资源的占用比重,设置合理的并行度上限。例如:set parallel_degree_limit = 32;

第二步,轻松开启 Auto DOP 功能:set parallel_degree_policy = AUTO;

2、AP+TP 混布场景

在 AP+TP 混布的复杂场景中,Auto DOP 旨在优化慢 SQL 的 RT(run time),但这一过程不可避免地会占用更多的线程资源,可能会引发少量 AP 大查询和大量 TP 小查询(小 DML)之间的资源争用。AP 慢查询如果借助 Auto DOP 开启大量线程并行执行,会在一定程度上挤压分配给小查询的系统资源。

Auto DOP 并非万能,它本身无法自动感知用户心中对 SQL 优先级的设定,因此需要人为介入,明确告知数据库不同 SQL 的优先级。具体解决方法是在租户内部,为小查询和大查询分别规划独立的资源组,巧妙借助资源组(resource group)实现资源隔离。

OceanBase 在租户内支持 User 级和 SQL 级两种粒度的资源隔离方式。通过灵活配置各个 Resource Group 的 Max CPU 参数,即可实现让不同 User 或者不同类型的 SQL 按需使用不同资源组的资源,有效缓解资源竞争压力,保障各类业务稳定、高效运行。

Auto DOP 技术构建了一套完整且高效的并行执行优化体系,无论是在纯 AP 场景下对复杂查询效率的极致追求,还是在 AP+TP 混布场景中巧妙化解资源争用难题,Auto DOP 都展现出了卓越的性能优势与强大的适应性。OceanBase 也将不断优化产品技术细节,为企业数字化转型的深入推进提供坚实有力的数据支撑!


5 月 17 日,OceanBase 将在广州召开 2025 开发者大会,本届大会以「当 SQL 遇见 AI」为主题,将重磅发布面向 AI 时代的一体化产品矩阵,并分享 TP、AP、KV 及 AI 能力的最新实践成果。欢迎大家点击下方链接,报名参会!

>>2025 OceanBase 开发者大会

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/82301.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/82301.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【区块链】Uniswap之滑点(Slippage)

一、滑点是什么? 滑点(Slippage)是指你下单预期价格和最终成交价格之间的差距。 在 DEX 中,你的交易会影响池子的价格(AMM机制),所以: 下单越大,滑点越大;…

[前端]Javascript获取元素宽度

元素宽度属性对比示意图 ---------------------------------- | 外边距(margin) | -------------------------------- | | 边框(border) | | | -------------------------- | | | …

数字人驱动/动画方向最新顶会期刊论文收集整理 | AAAI 2025

会议官方论文列表:https://ojs.aaai.org/index.php/AAAI/issue/view/624 以下论文部分会开源代码,若开源,会在论文原文的摘要下方给出链接。 语音驱动头部动画/其他 EchoMimic: Lifelike Audio-Driven Portrait Animations through Editabl…

Windows系统下【Celery任务队列】python使用celery 详解(一)

Celery 是一个基于 Python 的分布式任务队列框架,它允许你在不同的进程甚至不同的服务器上异步执行任务。 特点 简单:易于使用和配置,提供了简洁的 API。高可用:支持任务的可靠交付,即使在出现故障时也能保证任务不丢…

移动设备常用电子屏幕类型对比

概述 LCD 家族 (TN、STN、TFT、IPS、VA)依赖背光,性能差异主要来自液晶排列和驱动方式。OLED 以自发光为核心优势,但成本与寿命限制其普及。E-Paper 专为低功耗静态显示设计,与传统屏幕技术差异显著。 参数LCD&#…

Vue3.5 企业级管理系统实战(十八):用户管理

本篇主要探讨用户管理功能,接口部分依然是使用 Apifox mock 模拟。 1 用户 api 在 src/api/user.ts 中添加用户相关 CRUD 接口,代码如下: //src/api/user.ts import request from "/api/config/request"; // 从 "./type&q…

【C】初阶数据结构14 -- 归并排序

本篇文章主要是讲解经典的排序算法 -- 归并排序 目录 1 递归版本的归并排序 1) 算法思想 2) 代码 3) 时间复杂度与空间复杂度分析 (1) 时间复杂度 (2) 空间复杂度 2 迭代版本的归并…

【相机标定】OpenCV 相机标定中的重投影误差与角点三维坐标计算详解

摘要: 本文将从以下几个方面展开,结合典型代码深入解析 OpenCV 中的相机标定过程,重点阐述重投影误差的计算方法与实际意义,并通过一个 calcBoardCornerPositions() 函数详细讲解棋盘格角点三维坐标的构建逻辑。 在计算机视觉领域…

RabbitMQ-运维

文章目录 前言运维-集群介绍多机多节点单机多节点 多机多节点下载配置hosts⽂件配置Erlang Cookie启动节点构建集群查看集群状态 单机多节点安装启动两个节点再启动两个节点验证RabbitMQ启动成功搭建集群把rabbit2, rabbit3添加到集群 宕机演示仲裁队列介绍raft算法协议 raft基…

JVM之内存管理(一)

部分内容来源:JavaGuide二哥Java 图解JVM内存结构 内存管理快速复习 栈帧:局部变量表,动态链接(符号引用转为真实引用),操作数栈(存储中间结算结果),方法返回地址 运行时…

无线射频模块如何通过CE RED认证?关键规范与准备策略详解

随着无线通信设备在欧洲市场的广泛应用,CE RED认证已成为模块类产品进入欧盟的强制通行证。作为专注于LoRa模块、对讲模块与FSK射频模块研发的技术企业,我们深知从设计、测试到量产,每一个环节都需紧扣合规底线。本文将围绕CE RED认证核心要求…

Golang中集合相关的库

一切编程语言的底层结构都是数组,其它复杂数据结构如Map, Stack,Heap和Queue都是基于数组建立起来的。 Go语言主流工具库推荐(含常用数据结构实现) 以下是目前Go生态中最主流且活跃的工具库,包含队列、栈、优先级队列…

ABAP 导入Excel形成内表

文章目录 创建导入模板程序实现代码代码解析运行结果 创建导入模板 程序实现 代码 *&---------------------------------------------------------------------* *& Report Z_EXCEL_UPLOAD_LHY *&--------------------------------------------------------------…

特殊配合力(SCA)作为全基因组关联分析(GWAS)的表型,其生物学意义和应用价值

生物学意义 解析非加性遗传效应 特殊配合力(SCA)主要反映特定亲本组合的杂交优势,由非加性遗传效应(如显性、超显性、上位性)驱动。显性效应涉及等位基因间的显性互作,上位性效应则涉及不同位点间的基因互作。通过SCA-GWAS,可以定位调控这些非加性效应的关键基因组区域…

应急响应基础模拟靶机-security1

PS:杰克创建在流量包(result.pcap)在根目录下,请根据已有信息进行分析 1、攻击者使用的端口扫描工具是? 2、通过流量及日志审计,攻击者上传shell的时访问web使用IP地址是多少? 3、审计流量日志,攻击者反弹shell的地址及端口? 4、攻击者…

uniapp-商城-47-后台 分类数据的生成(通过数据)

在第46章节中,我们为后台数据创建了分类的数据表结构schema,使得可以通过后台添加数据并保存,同时使用云函数进行数据库数据的读取。文章详细介绍了如何通过前端代码实现分类管理功能,包括获取数据、添加、更新和删除分类。主要代…

ClickHouse的基本操作说明

说明 文章内容包括数据库管理、表操作及查询等核心功能 创建数据库 -- 默认引擎(Atomic) CREATE DATABASE IF NOT EXISTS test_db; -- MySQL引擎(映射外部MySQL数据库) CREATE DATABASE mysql_db ENGINE MySQL(host:port, m…

Nacos源码—7.Nacos升级gRPC分析四

大纲 5.服务变动时如何通知订阅的客户端 6.微服务实例信息如何同步集群节点 6.微服务实例信息如何同步集群节点 (1)服务端处理服务注册时会发布一个ClientChangedEvent事件 (2)ClientChangedEvent事件的处理源码 (3)集群节点处理数据同步请求的源码 (1)服务端处理服务注册…

《Overlapping Experiment Infrastructure: More, Better, Faster》论文阅读笔记

文章目录 1 背景2 三个核心概念3 Launch层:特性发布的专用机制4 流量分发策略和条件筛选4.1 四种流量分发类型4.2 条件筛选机制 5 工具链与监控体系6 实验设计原则7 培训参考与推荐 1 背景 谷歌(Google)以数据驱动著称,几乎所有可…

国芯思辰| 医疗AED可使用2通道24位模拟前端SC2946(ADS1292)

生物电信号监测技术在医疗健康行业中发展迅速,成为评估人体生理健康状况的关键手段。心电(ECG)、脑电(EEG)和肌电(EMG)等信号,通过精密模拟前端芯片捕捉和处理,对医疗诊断…