oracle中如何查看一个表所占空间的大小, 这张表包含blob字段

用下面的sql,无法统计出带有blob字段的表的实际大小:
select segment_name,bytes/1024/1024 Mbytes from user_segments where segment_name=TABLENAME;

写了一个,你试试:
select a.TABLESPACE_NAME "TableSpace Name",
round(a.BYTES / 1024 / 1024) "MB Allocated",
round((a.BYTES-nvl(b.BYTES, 0)) / 1024 / 1024) "MB Used",
nvl(round(b.BYTES / 1024 / 1024), 0) "MB Free",
round(((a.BYTES-nvl(b.BYTES, 0))/a.BYTES)*100,2) "Pct Used"
from (select TABLESPACE_NAME,
sum(BYTES) BYTES
from sys.dba_data_files
group by TABLESPACE_NAME) a,
(select TABLESPACE_NAME,
sum(BYTES) BYTES
from sys.dba_free_space
group by TABLESPACE_NAME) b
where a.TABLESPACE_NAME = b.TABLESPACE_NAME (+)
And a.tablespace_name in ('表空间名','表空间名','表空间名');追问

我是要统计表空间下的一张表的大小,不是统计表空间的大小

追答

不好意思,题没看清。
这个我倒没有试过,呵呵。有机会我也得试试,现在没有环境瞎说也没啥意思。

追问

还是谢谢啦

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-12-09
加上blob的大小在dba_lobs查找对应关系,再加上index大小。
相似回答