表大小查询的方法

查询表大小有什么好方法吗

2 个赞

怎么这么多提问呢?佩服

1 个赞

‌使用 DBA_OB_TABLE_SPACE_USAGE 视图 (推荐用于 V4.2.5 及以上版本)‌:
可以查看表所占用的磁盘空间大小。您需要在普通租户下执行查询:
SELECT * FROM SYS.DBA_OB_TABLE_SPACE_USAGE;

或者查询特定表的大小:
SELECT database_name, table_name, table_id, size FROM SYS.DBA_OB_TABLE_SPACE_USAGE WHERE table_name = ‘your_table_name’;

‌使用 DBA_OB_TABLE_LOCATIONS 和 DBA_OB_TABLET_REPLICAS 视图‌:
通过这两个视图可以获取更详细的表和 tablet 的信息,进而计算表大小:
SELECT /*+ READ_CONSISTENCY(WEAK) */ t1.table_name,
concat(round(sum(t2.data_size/1024/1024/1024), 2), ‘G’) data_size_gb,
concat(round(sum(t2.required_size)/1024/1024/1024, 2), ‘G’) required_size_gb
FROM oceanbase.DBA_OB_TABLE_LOCATIONS t1,
oceanbase.DBA_OB_TABLET_REPLICAS t2
WHERE t1.svr_ip = t2.svr_ip
AND t1.ls_id = t2.ls_id
AND t1.tablet_id = t2.tablet_id
AND t1.database_name = ‘your_database_name’
AND t1.table_name = ‘your_table_name’
GROUP BY t1.table_name;

1 个赞

有疑问才证明在学习进步中啊 ,有疑问才去提问赚积分啊

这个比较靠谱。