Forum
Hallo Gernot,
hier schon mal eine erste (QMF) Query zur Ermittlung von ALTER Statements für Deine Tablespaces und Indexes.
[highlight]Achtung: Zur Abwehr von SQL-Instrusion-Attacken muß SQL leider verfälscht werden: SELECT->SEL_ECT etc![/highlight]
————————————————————————
— QUERY ERZEUGT ALT_ER INDEX STATEMENTS Â Â Â Â Â Â Â Â
— (IN DER QMF FORM WRAP LINE MIT CODE "CT".) Â Â Â Â Â Â Â Â Â Â Â Â Â
————————————————————————
SEL_ECT ‚ALT_ER INDEX ‚ !! IXCREATOR !! ‚.‘ !! IXNAME !! Â Â
   ‚ PRIQTY ‚ !! STRIP(CHAR(SPACE)) !!               Â
   ‚ SECQTY ‚ !! STRIP(CHAR( MAX( ((SPACE/48/10)*48), 48)) )  !!  Â
   ‚; –PQTY=‘!! STRIP(CHAR(PQTY*4)) !!              Â
   ‚ –SQTY=‘!!STRIP(CHAR(SQTY*4))                 Â
FROM Â SYSIBM.SYSINDEXPART Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
WHERE Â IXCREATOR IN (‚creator‘) Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
AND Â Â PARTITION = 0 Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
AND Â Â IXNAME LIKE ‚%‘ Â Â Â Â
AND Â Â ( Â SPACE <> PQTY*4 Â Â Â Â Â Â Â Â Â Â
   —  SQTY*4 <> MAX( ((SPACE/48/10)*48), 48)           Â
   )                                Â
UN_ION ALL Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
SEL_ECT ‚ALT_ER INDEX ‚ !! IXCREATOR !! ‚.‘ !! IXNAME !! Â Â
   ‚ PARTITION ‚ !! STRIP(CHAR(PARTITION)) !!           Â
   ‚ PRIQTY ‚ !! STRIP(CHAR(SPACE)) !!               Â
   ‚ SECQTY ‚ !! STRIP(CHAR( MAX( ((SPACE/48/10)*48), 48)) )  !!  Â
   ‚; –PQTY=‘!! STRIP(CHAR(PQTY*4)) !!              Â
   ‚ –SQTY=‘!!STRIP(CHAR(SQTY*4))                 Â
FROM Â SYSIBM.SYSINDEXPART Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
WHERE Â IXCREATOR IN (‚creator‘) Â Â Â Â Â
AND Â Â PARTITION > 0 Â Â Â Â Â Â Â Â
AND Â Â IXNAME LIKE ‚%‘
AND Â Â ( Â SPACE <> PQTY*4 Â Â
   —  SQTY*4 <> MAX( ((SPACE/48/10)*48), 48) Â
   )                     Â
ORDER Â BY 1 Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
;————————————————————————
— QUERY ERZEUGT ALT_ER TABLESPACE STATEMENTS
— (IN DER QMF FORM WRAP LINE MIT CODE "CT".) Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
————————————————————————
SEL_ECT ‚ALT_ER TABLESPACE ‚ !! TS.DBNAME !! ‚.‘ !! Â Â TS.NAME !!
   ‚ PRIQTY ‚ !! STRIP(CHAR(TS.SPACE)) !!             Â
   ‚ SECQTY ‚ !! STRIP(CHAR( MAX( ((TS.SPACE/48/10)*48), 48)) )  !!
   ‚; –PQTY=‘!! STRIP(CHAR(TP.PQTY*TS.PGSIZE)) !!         Â
   ‚ –SQTY=‘!!STRIP(CHAR(TP.SQTY*TS.PGSIZE))           Â
FROM Â SYSIBM.SYSTABLES TB, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
   SYSIBM.SYSTABLESPACE TS,                    Â
   SYSIBM.SYSTABLEPART  TP                     Â
WHERE Â TB.CREATOR IN (‚creator‘) Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
AND Â Â TS.PARTITIONS = 0 Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
AND Â Â TB.NAME LIKE ‚%‘
AND Â Â TB.TYPE = ‚T‘
AND Â Â TB.DBNAME = TS.DBNAME Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
AND Â Â TB.TSNAME = TS.NAME Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
AND Â Â TS.DBNAME = TP.DBNAME Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
AND Â Â TS.NAME Â = TP.TSNAME Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
AND Â Â ( Â TS.SPACE <> TP.PQTY*TS.PGSIZE Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
   —  TP.SQTY*TS.PGSIZE <> MAX( ((TS.SPACE/48/10)*48), 48)    Â
   )                                Â
UN_ION ALL Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
SEL_ECT ‚ALT_ER TABLESPACE ‚ !! TS.DBNAME !! ‚.‘ !! Â Â TS.NAME !!
   ‚ ALT_ER PARTITION ‚ !! STRIP(CHAR(TP.PARTITION)) !!       Â
   ‚ PRIQTY ‚ !! STRIP(CHAR(TP.SPACE)) !!             Â
   ‚ SECQTY ‚ !! STRIP(CHAR( MAX( ((TP.SPACE/48/10)*48), 48)) )  !!
   ‚; –PQTY=‘!! STRIP(CHAR(TP.PQTY*TS.PGSIZE)) !!         Â
   ‚ –SQTY=‘!!STRIP(CHAR(TP.SQTY*TS.PGSIZE))           Â
FROM Â SYSIBM.SYSTABLES TB, Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
   SYSIBM.SYSTABLESPACE TS,                    Â
   SYSIBM.SYSTABLEPART  TP                     Â
WHERE Â TB.CREATOR IN (‚creator‘) Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
AND Â Â TS.PARTITIONS > 0 Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
AND Â Â TB.NAME LIKE ‚%‘ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
AND Â Â TB.TYPE = ‚T‘
AND Â Â TB.DBNAME = TS.DBNAME Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
AND Â Â TB.TSNAME = TS.NAME Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
AND Â Â TS.DBNAME = TP.DBNAME Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
AND Â Â TS.NAME Â = TP.TSNAME Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
AND Â Â ( Â TP.SPACE <> TP.PQTY*TS.PGSIZE Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
   —  TP.SQTY*TS.PGSIZE <> MAX( ((TP.SPACE/48/10)*48), 48)    Â
   )                                Â
ORDER Â BY 1 Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
; Â Â Â Â
                  Â
Gruß
Gernot