Ver Mensaje Individual
  #4 (permalink)  
Antiguo 18/08/2010, 12:16
quest_mx
 
Fecha de Ingreso: agosto-2010
Mensajes: 14
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Conocer el tamaño de una Tabla...

Dale un describe a la tabla tables del esquema syscat.

$ db2 describe table syscat.tables

hay un campo que se llama NPAGES (recuerda que en db2 el tamaño va a estár en paginas), pero antes deberás conocer en que tablespace está almacenada esa tabla y posteriormente ver de que tamaño de página esta creado ese tablespace:

para ver en que tablespace se enuentra tu tabla puedes hacerlo con el siguiente Query:

select
substr(OWNER,1,8) as owner,
substr(TABNAME,1,10) as tabla,
NPAGES,
substr(TBSPACE,1,20) as table_space
from SYSCAT.TABLES
where TABNAME = 'NOM_TABLA'
;

Si no sabes el tamaño de de la página de tu tablespace:

select
substr(TBSPACE,1,20) as Table_space,
PAGESIZE
from syscat.tablespaces
where TBSPACE = 'NOMBRE_TABLESP'
;

También lo puedes sacar de un db2 list tablespaces show detail.

ya que tienes el tamaño de la página ejecuta el siguiente query:

SELECT
substr(TABNAME,1,20) AS NOMBRE_TABLA,
NPAGES * 4096 / 1024 / 1024 TAMANIO_MB
from SYSCAT.TABLES
where TABNAME = 'NOM_TABLA'
;

Suponiendo que el tamaño de la página fue de 4096

este último query te va a dar el tamaño de la Tabla en MB.

ya si lo quieres todo en un query... Entendiendo esta lógica, creo que podrías relacionar las tablas.

espero que te sirva de algo.

Saludos.