首批通过分布式安全可靠测评,为关键业务系统打造
统计信息概述
更新时间:2026-05-20 15:01:34
数据库中的"统计信息"是指优化器统计信息(Optimizer Statistics),它是一个描述数据库中表和列信息的数据集合。
优化器代价模型(Optimizer Cost Model)依赖于查询中涉及到的表、列、谓词等对象的统计信息来选取计划,优化器可以利用统计信息来优化计划的选择,所以统计信息是代价模型中选取最优执行计划的关键。
在 OceanBase 数据库优化器中,统计信息以普通数据的形式存储在内部表中,并且会在本地维护统计信息的缓存,以提高优化器对统计信息的访问速度。
统计信息包含表统计信息(Table Level Statistics)和列统计信息(Column Level Statistics)两种类型。
表级统计信息
表的统计信息主要存储在内部表 __all_table_stat_v2 中,主要包含以下信息:
表的基本信息(包括
tenant_id、table_id、partition_id等)表的统计信息类型(信息级别分为
GLOBAL、PARTITION和SUBPARTITION)表的行数
表所占用的宏块数
表所占用的微块数
表的平均行长
表的收集统计信息时间
表的统计信息是否锁定
说明
用户需要执行 ALTER SYSTEM CHANGE TENANT tenant_name 切换租户之后,再去查内部表 __all_table_stat_v2。
列级统计信息
列的统计信息存储在内部表 __all_column_stat_v2 中,主要包含以下信息:
列的基本信息(包括
tenant_id、table_id、partition_id、column_id)列的统计信息类型(信息级别分为
GLOBAL、PARTITION和SUBPARTITION)列中不同的值的数量 NDV(Number of Distinct Values)
列中
NULL值的数量列的最大值和最小值
列的采样数据量大小
列的直方图的稠密度
列的直方图桶个数
直方图类型(频率直方图/ TopK 直方图/混合直方图)