当前位置: 首页 > news >正文

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 开发者大会

相关文章:

  • 达梦、PostgreSQL数据库讲json解析成临时表(json_table函数的使用)
  • 通用外设驱动模型(四步法)
  • 微信小程序地图缩放scale隐性bug
  • [AI Tools] Dify 平台插件开发全解:如何构建 Tools 插件并解析输出逻辑
  • OpenCV中适用华为昇腾(Ascend)后端的逐元素操作(Per-element Operations)
  • 【质量管理】TRIZ因果链分析:解码质量问题的“多米诺效应“
  • 经典计算核心问题在于多项式时间内无法求解
  • 重庆工商职业学院“户卫者”团队为建筑外墙检测技术推广创新赋能
  • PostgreSQL创建只读账号
  • 自适应混合索引创建与管理:一种智能数据库优化机制的研究
  • PH热榜 | 2025-05-09
  • 『Python学习笔记』ubuntu解决matplotlit中文乱码的问题!
  • 鸿蒙电脑:五年铸剑开新篇,国产操作系统新引擎
  • 华为防火墙双机热备(负载分担)
  • 华为欧拉(EulerOS)系统全栈软件部署指南:从 Redis 到 MySQL 实战详解
  • 计算机视觉】OpenCV项目实战:eye_mouse_movement:基于opencv实战眼睛控制鼠标
  • Oracle — 数据管理
  • Faiss 索引深度解析:从基础到实战
  • 文旅田园康养小镇规划设计方案PPT(85页)
  • RabbitMQ-高级特性1
  • 伤员回归新援融入,海港逆转海牛重回争冠集团
  • 第一集|《刑警的日子》很生活,《执法者们》有班味
  • 人民时评:透过上海车展读懂三组密码
  • 法治日报:商品明细是隐私,外卖员快递员不应知晓
  • 美联储主席:关税“远超预期”,美联储实现目标的进程或被推迟至明年
  • 习近平《在庆祝中华全国总工会成立100周年暨全国劳动模范和先进工作者表彰大会上的讲话》单行本出版