Buscar en el Blog

viernes, 17 de junio de 2011

Consulta SQL para conocer el espacio que ocupa una tabla de Oracle

A continuación comparto una consulta SQL para conocer el tamaño en Bytes, Kilobytes, Megabytes y Gigabytes que ocupa una tabla de Oracle 10g o superior.

SELECT segment_name AS "TABLE_NAME",
SUM (BYTES) AS "[Bytes]",
SUM (BYTES) / 1024 AS "[Kb]",
SUM (BYTES) / (1024*1024) AS "[Mb]",
SUM (BYTES) / (1024*1024*1024) AS "[Gb]"
FROM dba_segments
WHERE segment_name = 'NOMBRE_TABLA' and segment_type = 'TABLE'
GROUP BY segment_name;

En dónde en segment_name se especifica el nombre de la tabla que se desea consultar.

5 comentarios:

  1. Cual sería la consulta para saber el espacio que ocupa una tabla en un datafile especifico? Gracias

    ResponderEliminar
    Respuestas
    1. A menos que la tabla la tengas particionada, el peso u ocupacion de la tabla hace referencia a lo que ocupa en el datafile.

      Eliminar
  2. Veo consultas similares a esta por Internet pero no consigo que me de la ocupación de los datos de una tabla, pues me dice que son 16MB cuando por los cálculos que realizo en realidad debería rondar los 2GB. ¿Alguna sugerencia? Gracias.

    ResponderEliminar
  3. Anónimo8/09/2014 06:58:00 a. m. <-- SI NECESITAS TODAVIA

    set lines 200 pages 3000
    col FILE_NAME format a60
    SELECT segment_name AS "TABLE_NAME",
    SUM (BYTES) AS "[Bytes]",
    SUM (BYTES) / 1024 AS "[Kb]",
    SUM (BYTES) / (1024*1024) AS "[Mb]",
    SUM (BYTES) / (1024*1024*1024) AS "[Gb]"
    FROM dba_segments
    WHERE segment_name = ('&TABLA_NAME') and segment_type = 'TABLE'
    GROUP BY segment_name;

    ResponderEliminar
  4. como puedo obtener el volumen de una cantidad especifica de datos? es decir por ejemplo. Tengo una columa 'type' y saber el volumen todos los type=2?

    ResponderEliminar