Oracle查看表占磁盘大小

select segment_name, bytes/1024/1024
from user_segments S
where S.segment_type = 'TABLE'
AND S.segment_name = ‘XXXX';//表名

但对于有blob字段的不适用,blob内容不会被统计,统计blob大小的方法: 

select SEGMENT_NAME, TABLESPACE_NAME, TO_CHAR(SUM(BYTES) / (1024 * 1024), '999G999D999') CNT_MB 
from dba_extents T 
WHERE T.owner = 'USER1' 
  AND T.segment_name in ('SYS_LOB0000080922C00004$$', 'SYS_IL0000080922C00004$$')

in后面对应的lobid 在 select * from dba_lobs t where t.owner = 'USER1';
在结果中找到logid
 
另外一种方法:
    dbms_lob.getLength函数,参数是blob的字段名   

select sum(dbms_lob.getLength(blob))/(1024*1024) from XXX; //含有blob字段的那个表名

 如果要查询long raw的占用空间大小,dbms_lob.getLength不适用, 
 需要建立临时表,将long raw 另存为blob,然后查看blob大小

 
create table tmp(id int,img blob);
 
insert into tmp select block_id,to_lob(blog) from XXX;;
 
select sum(dbms_lob.getLength(img))/(1024*1024) from tmp

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值