SYSREC Space-Berechnung
-------------------------------------------------------------------------------- -- 10.02.2009/GR: Berechnung der UNLOAD File Größe -- Record Length - 8 + Overhead für Date/Time/Timestamp -- Compression und VARCHAR's berücksichtigen (s. Avg Row Len) -- umgerechnet in Cyl (je ca. 840 (750) KB/Cyl) aufgerundet, -- Kann nur Näherungswert ergeben, weil VARCHAR-Anteil nicht exakt ermittelbar! -- Bei NOPAD Minimum-, bei PAD Maximum-Wert verwenden. -------------------------------------------------------------------------------- WITH EO AS (SELECT TBCREATOR,TBNAME, SUM( CASE COLTYPE WHEN 'DATE' THEN 6 WHEN 'TIME' THEN 5 WHEN 'TIMESTMP' THEN 16 ELSE 0 END ) AS EXTERNAL_OVERHEAD FROM SYSIBM.SYSCOLUMNS WHERE TBCREATOR = 'TEST' AND TBNAME LIKE 'T4711%' GROUP BY TBCREATOR,TBNAME ) , PS AS (SELECT DBNAME,TSNAME, AVG(AVGROWLEN) AS AVG_ROWLEN, AVG(PAGESAVE) AS AVG_PAGESAVE, -- PAGESAVE=25 GLEICH 25% GESPART, D.H. AVG ROWLEN = 75% CAST (CASE AVG(PAGESAVE) WHEN 0 THEN AVG(AVGROWLEN) ELSE ROUND(AVG(AVGROWLEN) /(1-AVG(PAGESAVE)/100.00),0) END AS INTEGER) AS AVG_RECLEN_UNCOMPRESSED, COMPRESS FROM SYSIBM.SYSTABLEPART WHERE DBNAME LIKE 'DBS%' GROUP BY DBNAME,TSNAME,COMPRESS) SELECT TB.DBNAME,TB.TSNAME,TB.NAME,TB.CARDF, TB.RECLENGTH, EO.EXTERNAL_OVERHEAD, PS.AVG_ROWLEN,PS.AVG_PAGESAVE, PS.AVG_RECLEN_UNCOMPRESSED, PS.COMPRESS, -- DIES IST DIE RECLEN + OVERHEAD IN CYLS, MEIST ALS OBERWERT ZU SEHEN INTEGER(ROUND(MAX(1,((TB.RECLENGTH-8+EO.EXTERNAL_OVERHEAD)*TB.CARDF/1024)/750),0)) AS SYSREC_CYL_PAD, -- DIES IST DURCHSCHNITT-RECLEN (Z.B. WG. VARCHAR) + OVERHEAD IN CYLS, MEIST ALS UNTERER WERT ZU SEHEN INTEGER(ROUND(MAX(1,((PS.AVG_RECLEN_UNCOMPRESSED+EO.EXTERNAL_OVERHEAD)*TB.CARDF/1024)/750),0)) AS SYREC_CYL_NOPAD FROM SYSIBM.SYSTABLES TB, EO, PS WHERE TB.CREATOR = 'TEST' AND TB.NAME LIKE 'T4711%' AND TB.TYPE = 'T' AND TB.CREATOR = EO.TBCREATOR AND TB.NAME = EO.TBNAME AND TB.DBNAME = PS.DBNAME AND TB.TSNAME = PS.TSNAME
Comments
Comments are closed.