---
title: AUTO DOP 并发选择不佳-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 AUTO DOP 并发选择不佳相关的常见问题和使用技巧，帮助您快速解决 AUTO DOP 并发选择不佳的难题。
---
切换语言

- 简体中文
- English

划线反馈

# AUTO DOP 并发选择不佳

更新时间：2026-05-15 09:06

适用版本： V4.2.x 内容类型：TechNote  

## 问题现象

为了加速查询并满足业务需求，通常以并行执行来优化查询时间。在优化器中，并行资源量可以使用并行度（DOP：Degree of Parallel）来描述，在实际业务场景中，并行是否开启及并行度大小，根据查询的执行实际情况和业务需求以经验为基础来决定，并行资源为多少才合适呢？大部分数据库提及能够自动调整并行度，并通过一些配置限制查询最大并行度满足业务需求，OceanBase 数据库在 V4.2.x 版本支持的 Auto DOP 自动调整并行度的特性，本文描述了方法和案例帮助用户排查 Auto DOP 并发选择不佳的问题。

**问题一：** 客户开启自动并行功能对慢 SQL 加速阈值设置 3s，但 10s SQL 耗时不变发现并行度为 1 将阈值改到 100ms 并行度依然为 1。

**问题二：** Auto DOP 并发选择度不够，导致执行较慢。

## 关键信息

1. 确定是否开启。

   ```shell
   -- 在全局级别启用 Auto DOP
   set global parallel_degree_policy = AUTO;
   -- 在 session 级别启用 Auto DOP
   set session parallel_degree_policy = AUTO;
   set parallel_degree_policy = AUTO;

   -- 在全局级别关闭 Auto DOP
   set global parallel_degree_policy = MANUAL;
   -- 在 session 级别关闭 Auto DOP
   set session parallel_degree_policy = MANUAL;
   set parallel_degree_policy = MANUAL;

   ```
 2. 观察 explain extended 中的 Optimization Info: 关键字 dop_method:Auto DOP 观察表的大小，还有分析两个相关的变量会影响获取的 DOP 大小 `parallel_degree_limit` 和 `parallel_min_scan_time_threshold` 的值。

   ```shell
   Optimization Info:
   -------------------------------------
   hj_unpay_bill:
      table_rows:2052731
      physical_range_rows:1465752
      logical_range_rows:1437633
      index_back_rows:0
      output_rows:1437633
      table_dop:3
      dop_method:Auto DOP

   ```

通常遇到 `parallel_degree_limit` 设置太小导致并行度低的问题可以查询 sql audit 观察 `EXPECTED_WORKER_COUNT` 和 `USED_WORKER_COUNT` 来确定。

## 问题原因

**问题一：** 客户开启自动并行功能对慢 SQL 加速阈值设置 3s，但 10s SQL 耗时不变发现并行度为 1 将阈值改到 100ms 并行度依然为 1。

Auto DOP 仅基于查询执行成本进行评估，以减小响应时间（RT）为目标来决定是否启用并行处理及计算 DOP。若业务负载中包含对用户不关心的慢查询，这种问题首先检查 explain extended 中的 Optimization Info: 信息。

```shell
Optimization Info:  

a00:
table_rows:43
physical_range_rows:44
logical_range_rows:44
table_dop:1
dop_method:Auto DOP

```

![image01](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/knowledge-base/database/performance/20250317poor-auto-dop-concurrency-selection01.png)

系统变量 `parallel_min_scan_time_threshold` 设置了对于基表扫描开启并行执行的参考基表扫描执行时间。使用 Auto DOP 策略计算基表并行度时，基表扫描估计执行时间超过 `parallel_min_scan_time_threshold` 设定值时，增加并行度开启并行，默认值 1000 单位 ms。客户sql中的的这张表 a00 太小了 table_rows:43，`parallel_min_scan_time_threshold` 阈值改到 100ms 也达不到没法触发并行。

对于客户遇到的问题，需要分析两个相关的变量会影响获取的 DOP 大小。

- 变量 `parallel_degree_limit` 限制 Auto DOP 策略时允许使用的最大 DOP。
 - 变量 `parallel_min_scan_time_threshold` 是在 Auto DOP 策略中用于计算并行度的参数，表示对基表扫描开启并行的参考执行时间。当基表扫描评估执行时间超过这个设定值时，会对基表扫描开启并行，并利用这个设定值计算一个合适的并行度。

  ![image02](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/knowledge-base/database/performance/20250317poor-auto-dop-concurrency-selection02.png)

  ```

变量默认值设置为 1000 单位毫秒。通过调小 `parallel_min_scan_time_threshold` 的值，可以降低对基表开启并行的门限制，允许对评估执行时间更小基表扫描开启并行，对已经开启并行且数据量固定的表，也会使用更大的并行度进行扫描。如果客户需要获得更大的并行度，可以调小 `parallel_min_scan_time_threshold` 的值，调整到 10ms 并行度符合客户的预期。

## 问题的风险及影响

开启 Auto DOP 功能，必须评估系统业务负载类型，并合理的配置几个相关系统变量。否则，功能开启后可能不仅对系统没有优化效果，还会造成极大系统风险。TP 系统强烈不建议打开 Auto DOP 功能，打开后，能够利用上 Auto DOP 并行的负载有可能霸占系统线程资源导致其他负载受到影响。AP也强烈建议经过测试后，可控在决定是否打开（例如对负载情况和 `parallel_degree_limit` 配置都有管控）。

## 影响租户

影响 OceanBase 数据库中的 SYS 租户和 Oracle 租户以及 MySQL 租户。

## 适用版本

OceanBase 数据库 V4.2.x 版本。

Previous

[OceanBase 数据库 V4.2.1 集群在执行不带绑定变量的 SQL 语句时出现卡顿问题](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000003137888)

Next

[同结构分区表 join 时 merge group by 算子导致的正确性问题](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000006085512) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
