【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】OB
【 使用版本 】V3.1.5
【问题描述】OB中查看库表记录数和占用空间(估值)需要__all_virtual_meta_table,但是该表需要root权限,生产环境下往往没有root权限,是否这个表可以修改为__all_tenant_meta_table呢?我看他们的表结构也差不多的样子呢@论坛小助手
3 个赞
在 OceanBase V3.1.5 版本中,使用 __all_tenant_meta_table
来查询库表的记录数和占用空间(估值)理论上是可以的,但需要注意的是,这个表主要用于内部元数据管理和维护,可能不会直接提供最准确或最新的统计信息。对于获取表的记录数和空间占用情况,通常推荐使用系统提供的视图或函数,如 information_schema.tables
和 oceanbase.sys.V$OB_TABLES
等,因为这些视图或函数经过了优化,更适合用于外部查询。
不过,如果您确实想要使用 __all_tenant_meta_table
,可以尝试以下查询:
SELECT
table_id,
table_name,
row_count,
data_size
FROM
oceanbase.__all_tenant_meta_table
WHERE
table_type = 'USER TABLE';
这个查询会返回每个用户表的表ID、表名、记录数和数据大小。但是请注意:
-
记录数 (
row_count
) 可能不是实时的,而是基于最近一次统计信息更新的结果。 -
数据大小 (
data_size
) 也可能是估算值,不一定非常精确。 -
表类型 (
table_type
) 过滤为'USER TABLE'
,确保只查询用户表,排除系统表等。
建议
-
使用官方推荐的视图:如果您的目的是获取准确的表记录数和空间占用情况,建议使用
information_schema.tables
或oceanbase.sys.V$OB_TABLES
等官方推荐的视图。 -
定期统计信息更新:确保定期运行
ANALYZE TABLE
语句来更新表的统计信息,这将提高查询的准确性。
如果您有任何其他问题或需要进一步的帮助,请告诉我!
附上敏捷诊断工具 obdiag 使用帮助链接
5 个赞
thanks
1 个赞
厉害,向大佬学习
2 个赞
厉害
2 个赞
细看看字典结构介绍
1 个赞
刚好遇到
太强了
1 个赞