-- calculates the sum of the ALLOCATED sizes for the given non partitioned tables -- and their dependend indexes and lob segments column mb format 9G999G999D99 column extents format 999G999D99 column blocks format 999G999G999D99 compute sum label total of mb on report break on report with my_segments as ( select --+ MATERIALIZE tab.owner table_owner, tab.table_name, ind.owner index_owner, ind.index_name, lob.segment_name lob_segment, lob.index_name lob_ind_segment from dba_tables tab left outer join dba_indexes ind on ( tab.owner = ind.table_owner and tab.table_name = ind.table_name ) left outer join dba_lobs lob on ( tab.owner = lob.owner and tab.table_name = lob.table_name ) where tab.owner = '&owner' and tab.table_name = '&table_name' ) select segment_type, sum(extents) extents, sum(blocks) blocks, sum(bytes)/1024/1024 mb from dba_segments dseg where (owner,segment_name) in ( select seg.table_owner, seg.table_name from my_segments seg ) or (owner,segment_name) in ( select seg.index_owner, seg.index_name from my_segments seg ) or (owner, segment_name) in ( select seg.table_owner, seg.lob_segment from my_segments seg ) or (owner, segment_name) in ( select seg.table_owner, seg.lob_ind_segment from my_segments seg ) group by segment_type ; clear computes clear breaks undef owner undef table_name