Oracle 查看所有表大小的SQL
Oracle 查看所有表大小的SQL
比较坑的是 lob 字段和 表的大小不在一个地方
为了出结果 我这边使用了 union all 慢的一逼...
SELECT sum( tablesize ), tablename FROM ( SELECT sum( C.bytes ) / 1024 / 1024 AS tablesize, C.table_name AS tablename FROM ( SELECT A.table_name, B.bytes FROM user_lobs A, user_extents B WHERE A.segment_name = B.segment_name ) C GROUP BY C.table_name UNION ALL SELECT sum( bytes ) / 1024 / 1024 AS tablesize, segment_name AS tablename FROM user_extents WHERE segment_type = 'TABLE' GROUP BY segment_name ) GROUP BY tablename ORDER BY 1 DESC