
作者:胡呈清,爱可生交付团队DBA,OBCE,擅长故障分析、性能优化。个人博客:[简书 | 轻松的鱼],[微信公众号 | 澄清一下],欢迎关注与讨论。
爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。
本文约 600 字,预计阅读需要 3 分钟。
OceanBase V3 版本中保存统计信息的系统表比较混乱,主要原因是 V3 版本合并收集的统计信息和手工收集的统计信息有区别,需要存在不同的系统表中。到了 V4 版本,每日合并不再收集统计信息,保存统计信息的系统表得到了统一。
本文主要目的是厘清 V3 版本查询统计信息的最佳方式,同时介绍一下 V4 版本相比 V3 版本统计信息的主要改变:
每日合并不再收集统计信息; Oracle 和 MySQL 租户都可以使用 DBMS_STATS 系统包收集统计信息,与 analyze 相比参数更多,使用更灵活,更推荐使用 DBMS_STATS 系统包来收集统计信息; 通过 JOB 每天定时收集统计信息(数据修改比例超过 10% 的表/分区才会收集,会收集存在数据倾斜列的直方图)。
1V3 版本的统计信息
为了更好的说明 V3 版本统计信息的特点,本文先从 V3 版本的角度来总结 sys 租户、MySQL 租户、Oracle 租户中系统表的作用。先说结论:
不建议在 sys 租户下查看统计信息,只能查看合并收集的统计信息,无法查看手工收集的统计信息; MySQL租户建议通过 __all_table_stat_v2
、__all_column_stat_v2
、__all_histogram_stat_v2
查看手工收集的统计信息;Oracle 租户通过 ALL_TAB_STATISTICS
、ALL_TAB_COL_STATISTICS
、ALL_TAB_HISTOGRAMS
查看手工收集的统计信息。
sys 租户下统计信息的相关表:

MySQL 租户下统计信息的相关表:

Oracle 租户下统计信息的相关表比较简单,和原生 Oracle 保持一致:

2V4 版本的统计信息
在 V4 版本中,统计信息的保存基本得到统一,同样建议在业务租户下查看收集的统计信息。
表级统计信息:

列级统计信息:

直方图统计信息:

留言活动
留言区分享一个 OceanBase 统计信息使用技巧(注明版本及场景)。
文章发布 24h 内点赞最多的认真留言,获得《大智小技VI》一本。

本文关键字:#OceanBase# #统计信息#

✨ Github:https://github.com/actiontech/sqle
📚 文档:https://actiontech.github.io/sqle-docs/
💻 官网:https://opensource.actionsky.com/sqle/
👥 微信群:请添加小助手加入 ActionOpenSource
🔗 商业支持:https://www.actionsky.com/sqle
微信扫描小程序码,进行在线咨询预约:

商业支持团队联系方式如下:
400-820-6580 13916131869 / 18930110869





