Hola, no encontre un foro para DB2, espero que alguien me pueda ayudar.
necesito conocer cuanto mide una tabla de una base de datos DB2.
Gracias por su ayuda.
| |||
Conocer el tamaño de una Tabla... Hola, no encontre un foro para DB2, espero que alguien me pueda ayudar. necesito conocer cuanto mide una tabla de una base de datos DB2. Gracias por su ayuda. |
| |||
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. |
| |||
Respuesta: Conocer el tamaño de una Tabla... ya tengo tu Query: SELECT substr(A.TABNAME,1,20) AS TABLA, (B.PAGESIZE * A.NPAGES / 1024 / 1024) AS MB, substr(A.TBSPACE,1,20) AS TABLESPACE FROM SYSCAT.TABLES A JOIN SYSCAT.TABLESPACES B ON A.TBSPACE = B.TBSPACE WHERE TABNAME = 'NOM_TABLA' ; Saludos. |
Etiquetas: |