目的:计算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--