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

相关文章:

  • 2022-12-23
  • 2021-12-30
  • 2021-12-05
  • 2022-12-23
  • 2021-12-12
  • 2021-12-12
  • 2021-08-30
猜你喜欢
  • 2022-12-23
  • 2021-08-31
  • 2022-01-02
  • 2021-10-27
  • 2022-02-18
  • 2021-11-05
  • 2022-12-23
相关资源
相似解决方案