Oracle Database Total Size / top tables

An oracle database consists of data files, redo log files, control files, temporary files.

The size of the database actually means the total size of all these files.
select
( select sum(bytes)/1024/1024/1024 data_size from dba_data_files ) +
( select nvl(sum(bytes),0)/1024/1024/1024 temp_size from dba_temp_files ) +
( select sum(bytes)/1024/1024/1024 redo_size from sys.v_$log ) +
( select sum(BLOCK_SIZE*FILE_SIZE_BLKS)/1024/1024/1024 controlfile_size from v$controlfile) "Size in GB"
from dual;



-- break down by schema  :

select owner, round(sum(bytes)/1024/1024,2) as size_in_megs from dba_segments group by owner order by 2 desc;

-- top 10 tables

select * from (
select owner, segment_name, bytes/1024/1024/1024 GB from dba_segments
where segment_type = 'TABLE' order by bytes/1024/1024 desc)
where rownum <= 10;


-- top 10 objects

select * from (
select SEGMENT_NAME, SEGMENT_TYPE, BYTES/1024/1024/1024 GB, TABLESPACE_NAME
from dba_segments order by 3 desc)
where rownum <= 10





No comments:

Post a Comment