¿Cómo calcular el tamaño de una base de datos Oracle?

Oracle-logo

Ya que en muchas ocasiones es necesario saber el tamaño real que ocupa nuestra base de datos.

En este articulo, les quiero mostrar cómo calcular el tamaño de una base de datos Oracle.

Con la siguiente secuencia de querys, podemos obtener los valores de cada uno de los archivos que componen una base de datos

-- Tamaño de los data files
SELECT SUM(BYTES) / 1024 / 1024 / 1024 DATA_SIZE FROM DBA_DATA_FILES;

-- Tamaño de los data files temporales
SELECT NVL(SUM(BYTES), 0) / 1024 / 1024 / 1024 TEMP_SIZE FROM DBA_TEMP_FILES;

-- Tamaño de los redo logs
SELECT SUM(BYTES) / 1024 / 1024 / 1024 REDO_SIZE FROM V$LOG;

-- Tamaño de los control files
SELECT SUM(BLOCK_SIZE * FILE_SIZE_BLKS) / 1024 / 1024 / 1024 CONTROLFILE_SIZE FROM V$CONTROLFILE;

Luego, para calcular el tamaño total de la base de datos, debemos unir todos los querys

-- Tamaño de la base de datos
SELECT D.DATA_SIZE + T.TEMP_SIZE + R.REDO_SIZE + C.CONTROLFILE_SIZE "DATABASE SIZE IN GB"
FROM (SELECT SUM(BYTES) / 1024 / 1024 / 1024 DATA_SIZE FROM DBA_DATA_FILES) D,
  (SELECT NVL(SUM(BYTES), 0) / 1024 / 1024 / 1024 TEMP_SIZE FROM DBA_TEMP_FILES) T,
  (SELECT SUM(BYTES) / 1024 / 1024 / 1024 REDO_SIZE FROM V$LOG) R,
  (SELECT SUM(BLOCK_SIZE * FILE_SIZE_BLKS) / 1024 / 1024 / 1024 CONTROLFILE_SIZE FROM V$CONTROLFILE) C

Quisiera agregar otro query, con el cual también se puede calcular el tamaño de la base de datos, adicional del tamaño libre y usado

-- Tamaño de la base de datos, espacio usado y espacio libre 
SELECT ROUND(SUM(USED.BYTES) / 1024 / 1024 / 1024 ) "DATABASE SIZE IN GB",
        ROUND(SUM(USED.BYTES) / 1024 / 1024 / 1024 ) - ROUND(FREE.P / 1024 / 1024 / 1024) "USED SPACE IN GB",
        ROUND(FREE.P / 1024 / 1024 / 1024) "FREE SPACE IN GB"
FROM (SELECT BYTES FROM V$DATAFILE
      UNION ALL
      SELECT BYTES
      FROM V$TEMPFILE
      UNION ALL
      SELECT BYTES
      FROM V$LOG) USED, (SELECT SUM(BYTES) AS P
      FROM DBA_FREE_SPACE) FREE GROUP BY FREE.P;

 

Acerca de JulianOrtiz0506

Soy administrador de bases de datos y desarrollador web, desde mis inicios en el mundo de la informática, he implementando proyectos personales y empresariales. Por consiguiente esto me ha permitido contar con una amplia calificación y destreza sobre mis áreas de conocimiento. Sobre todo suelo estar en constante aprendizaje, diariamente me estoy informando sobre nuevas tecnologías. Ya queme gusta estar actualizado en la tecnología de punta para todas las plataformas que me apasionan y con las cuales trabajo día a día.

Ver todas las entradas de JulianOrtiz0506 →

Deja una respuesta

Tu dirección de correo electrónico no será publicada.