关于 OceanBase 并行执行中 DOP(Degree Of Parallelism)的选择策略,以下说法正确的是?
A. 并行查询的 DOP 由用户指定的 PARALLEL Hint 唯一决定,系统不会自动调整。
B. 当未显式指定 DOP 时,系统默认使用当前查询涉及的所有分区数量作为 DOP 值。
C. 并行执行的 DOP 不能超过租户的 parallel_servers_target 参数值,否则会触发队列等待或降级为串行执行。
D. 增加 DOP 总能提升查询性能,因为更多并行线程可以同时处理数据。
1 个赞
解析 :
OceanBase 通过 parallel_servers_target 参数控制租户内可同时使用的并行线程总数。当查询请求的 DOP × 操作数 超过该阈值时,系统会使其排队等待资源或自动降级为串行执行,避免资源争抢导致整体性能下降。
-
A 错误 :并行 DOP 的选择优先级为:Hint > 系统配置 > 自动推导 。用户可指定,但系统也会根据数据量、分区数等因素自动选择合理 DOP。
-
B 错误 :自动推导规则不是简单取分区数,会综合 数据扫描量、可用 CPU、并行服务器数 等多因素,通常 DOP = min(分区数,可用线程数/2,计划估算的优化值)。
-
C 正确 :
parallel_servers_target 是租户级资源上限,超出时进入排队或降级,这是常见的资源隔离保护机制。
-
D 错误 :DOP 并非越高越好。过高的 DOP 会增加调度开销、数据重分发成本以及内存消耗,可能引起性能回退,尤其在数据量不大的场景下。