首批通过分布式安全可靠测评,为关键业务系统打造
统计信息时间查询
更新时间:2026-05-14 09:21
本文列举 OceanBase 数据库 V3.x 版本下各种统计信息的时间查询。
适用版本
OceanBase 数据库 V3.x 版本。
查询合并的统计信息时间
select * from
oceanbase.__all_virtual_column_statistic a,
oceanbase.__all_virtual_table b
where a.tenant_id = b.tenant_id and a.table_id = b.table_id and b.tenant_id<> 1
查询手动收集统计信息
select * from __all_virtual_table_stat_v2 where tenant_id <>1;
MySQL 业务租户查询 OceanBase 库
合并期间的:
select * from
oceanbase.__all_column_statistic a,
oceanbase.__all_table_v2 b
where a.tenant_id = b.tenant_id and a.table_id = b.table_id
手动触发的:
select * from __all_table_stat_v2;
Oracle 业务租户下
合并期间的统计信息收集,需要 sys 租户下查询。
手动触发的:
select * from DBA_TAB_STATISTICS
关于统计信息的问题总结
Q1. 合并时收集是每张表都会收集吗,还是只收集数据变化量大的表?
结论与总结:合并会收集所有表的统计信息
Q2. 手动收集时,会不会覆盖掉 oceanbase.__all_virtual_column_statistic 这个表里的信息?
结论与总结:不会,__all_virtual_column_statistic 表中的时间是合并期间发生修改的时候记录的,手动触发的统计信息需要在 __all_(virtual_)table_stat_v2 查看。
Q3. __all_virtual_column_statistic 表里的记录比实际对应的表多,数据版本落后的情况是什么原因 ?
结论与总结:__all_virtual_column_statistic 表里的记录只增不删,truncate partition导致 partition ID 改变也不会删除此表的旧记录,会出现实际分区比表里少的情况,并且是合并后才会新增记录。
Q4. 表的这个 column_id 不是从 1 开始的,没问题吗?
结论与总结:OceanBase 数据库的 column_id 设计是从 16 开始的,这个是 OceanBase 数据库设定每个表均如此。