ORACLE lookup table size

      When querying, replace TABLENAME with the table name and USERNAME with the username.

      Lookup table size (there is no lob, clob field in the table, and index size is not included)

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

or

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; 

      Lookup table size (no lob and clob fields in the table, including index size)

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; 

      Lookup table size (the table has lob and clob fields, without index size)

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; 

      Lookup table size (the table has lob and clob fields, including index size)

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; 

 

Guess you like

Origin blog.csdn.net/songyundong1993/article/details/103868666
Recommended