首批通过分布式安全可靠测评,为关键业务系统打造
数据倾斜导致存储层估行不准
更新时间:2026-07-07 12:56
问题现象
在所有分区均非空的情况下,执行计划的预估行数(估行)仍为 1。
关键信息
- 执行计划对分区表的预估行数为 1。
- 通过优化器追踪(opt trace)分析估算逻辑,发现对抽取的分区范围进行采样后,满足查询条件的行数均为 0。
问题原因
存储层在进行行数估算时,有时会结合查询条件进行估算。因此,不能仅通过计算分区的 COUNT(*) 来判断分区是否为空分区。
问题的风险及影响
计划预估行数不准确,可能导致执行计划非最优,进而影响查询效率。
适用版本
OceanBase 数据库 OBServer V4.x 版本。
解决方法
调大存储层估行参数 partition_index_dive_limit,以增加命中分区的概率。
规避方式
调大存储层估行参数 partition_index_dive_limit,以增加命中分区的概率。