ORACLE查表大小

      查询时TABLENAME替换为表名,USERNAME替换为用户名。

      查表大小(表中无lob,clob字段,不包含索引大小)

select segment_name as tablename,bytes/1024/1024/1024 gb from dba_segments where segment_name='TABLENAME' and owner='USERNAME';

select 
 (select nvl(sum(s.bytes/1024/1024/1024),0) gb                                                                                              
  from dba_segments s 
  where s.owner = upper('USERNAME') and 
       (s.segment_name = upper('TABLENAME'))) "total table size" 
from dual; 

      查表大小(表中无lob,clob字段,包含索引大小)

select 
 (select nvl(sum(s.bytes/1024/1024/1024),0) gb                                                                                              
  from dba_segments s 
  where s.owner = upper('USERNAME') and 
       (s.segment_name = upper('TABLENAME'))) +  
 (select nvl(sum(s.bytes/1024/1024/1024),0) gb                                                                                               
  from dba_segments s, dba_indexes i 
  where s.owner = upper('USERNAME') and 
       (i.index_name = s.segment_name and i.table_name = upper('TABLENAME') and index_type = 'lob' and i.owner = upper('USERNAME'))) 
  "total table size" 
from dual; 

      查表大小(表中有lob,clob字段,不含索引大小)

select 
 (select nvl(sum(s.bytes/1024/1024/1024),0) gb                                                                                              
  from dba_segments s 
  where s.owner = upper('USERNAME') and 
       (s.segment_name = upper('TABLENAME'))) + 
 (select nvl(sum(s.bytes/1024/1024/1024),0) gb                                                                                               
  from dba_segments s, dba_lobs l 
  where s.owner = upper('USERNAME') and 
       (l.segment_name = s.segment_name and l.table_name = upper('TABLENAME') and l.owner = upper('USERNAME'))) 
  "gb" 
from dual; 

      查表大小(表中有lob,clob字段,含索引大小)

select 
 (select nvl(sum(s.bytes/1024/1024/1024),0) gb                                                                                              
  from dba_segments s 
  where s.owner = upper('USERNAME') and 
       (s.segment_name = upper('TABLENAME'))) + 
 (select nvl(sum(s.bytes/1024/1024/1024),0) gb                                                                                               
  from dba_segments s, dba_lobs l 
  where s.owner = upper('USERNAME') and 
       (l.segment_name = s.segment_name and l.table_name = upper('TABLENAME') and l.owner = upper('USERNAME'))) + 
 (select nvl(sum(s.bytes/1024/1024/1024),0) gb                                                                                               
  from dba_segments s, dba_indexes i 
  where s.owner = upper('USERNAME') and 
       (i.index_name = s.segment_name and i.table_name = upper('TABLENAME') and index_type = 'lob' and i.owner = upper('USERNAME'))) 
  "total table size" 
from dual; 

猜你喜欢

转载自blog.csdn.net/songyundong1993/article/details/103868666