目的:計算oracle數據庫總的空間大小
1. 計算數據文件的大小
SQL> select sum(bytes)/(1024*1024) "Size In MB" from dba_data_files;
Size In MB
----------
960
2. 計算臨時文件的大小
SQL> select sum(bytes)/(1024*1024) "Size In MB" from dba_temp_files;
Size In MB
----------
20
3. 計算日誌文件的大小即 redo 的大小
SQL> select sum(bytes)/(1024*1024) "Size In MB" from v$log;
Size In MB
----------
200
4. 計算數據文件中已經被使用的空間的大小即數據庫中已經使用的空間
SQL> select sum(bytes)/(1024*1024) "Size In MB" from dba_segments;
Size In MB
----------
796.875
5. 計算數據庫的總的空間大小即數據文件、臨時文件、日誌文件、控制文件大小的總和
/***********************************************************************/
selecta.data_size+b.temp_size+c.redo_size+d.cont_size "total_size"
from ( select sum(bytes)data_size
from dba_data_files ) a,
( select nvl(sum(bytes),0)temp_size
from dba_temp_files ) b,
( select sum(bytes) redo_size
from sys.v_$logfile lf,sys.v_$log l
where lf.group# = l.group#)c,
( selectsum(block_size*file_size_blks) cont_size
from v$controlfile ) d;
/***********************************************************************/
SQL DEVELOPER 中返回的結果如下:
SQL*PLUS 中返回的結果如下:
SQL> selecta.data_size+b.temp_size+c.redo_size+d.cont_size "Total_Size" from(select sum(bytes) data_size from dba_data_files) a,(select nvl(sum(bytes),0) temp_sizefrom dba_temp_files) b,(select sum(bytes) redo_size from sys.v$logfilelf,sys.v$log l where lf.group#=l.group#) c,(selectsum(block_size*file_size_blks) cont_size from v$controlfile) d;
Total_Size
----------
1468170240
--END--