zOs/war/sql0
}¢--- A540769.WK.SQL($) cre=2009-12-14 mod=2016-09-08-11.08.17 A540769 ---------
select current timestamp, d.*
from sysibm.sysdummy1 d
where 2 > 1
;
}¢--- A540769.WK.SQL(##SQLCOM) cre=2014-05-06 mod=2014-05-06-13.50.59 A540769 ---
--??? #HCCD (TS) FULL IMAGE COPY > 7 DAYS
select what, count(*)
-- ??? SELECT 'DI,PI,PA,IN' , DBID , PSID , PARTITION , INST
from
( select s.dbName, s.name, p.partition
, c.inst, s.dbid, s.psid
, overlay(case
when c.inst is null
then raise_Error(70001, 'c.inst null '
|| s.dbName || '.' || s.name)
when s.nTables < 1 then 'n noTables ' || s.nTables
when p.spaceF = -1 then 'n defineNo ' || p.spaceF
when f.icType is null then 'f f.icType null'
when f.icType <> 'F' then 'f f.icType ' || f.icType
when f.timestamp < current timestamp-7 days then 'f week'
when r.updateStatsTime is null then 'f noRts'
when r.copyLastTime is null then 'f r.copyLast null'
when i.timestamp < r.copyLastTime - 60 seconds
then 'f i << r.copyLast'
when r.nactive * 0.1 <= r.copyupdatedpages
then 'f updates'
when i.icType is null then 'f i.icType null'
when i.icType not in ('I','F') then 'i i.icType '||i.icType
when r.copyupdatedpages <> 0 then 'i updates'
when r.copyChanges <> 0 then 'i changes'
when r.copyUpdateLRSN is not null then 'i updLRSN'
when r.copyUpdateTime is not null then 'i updTime'
else 'n noUpdates'
end, case when s.clone <> 'Y' then ' '
when s.instance = c.inst then ' base '
else ' clone'
end, 2, 0, octets) what
from sysibm.sysTablespace s
left join -- clone handling: add instances
( select 1 from sysibm.sysDummy1
union all select 2 from sysibm.sysDummy1
) c (inst)
on s.instance = c.inst or s.clone = 'Y'
join sysibm.sysTablePart p
on s.dbName = p.dbName and s.name = p.tsName
left join sysibm.sysTableSpaceStats r
on s.dbName = r.dbName and s.name = r.name
and s.dbid = r.dbid and s.psid = r.psid
and p.partition = r.partition and r.instance = c.inst
left join -- newest incremental or full copy or log discontinuity
( select c.*
, row_number() over(partition by dbName, tsName, dsNum
, instance
order by timestamp desc) rn
from sysibm.sysCopy c
where c.icType not IN ('A', 'B', 'C', 'D', 'M', 'Q')
) i on i.rn = 1
and s.dbName = i.dbName and s.Name = i.tsName
and p.partition = i.dsNum
and i.instance = c.inst
left join -- newest full copy or log discontinuity
( select c.*
, row_number() over(partition by dbName, tsName, dsNum
, instance
order by timestamp desc) rn
from sysibm.sysCopy c
where c.icType not IN ('A', 'B', 'C', 'D', 'I', 'M', 'Q')
) f on f.rn = 1
and s.dbName = f.dbName and s.Name = f.tsName
and p.partition = f.dsNum
and f.instance = c.inst
) q
where NOT (DBNAME ='BE01A1P' AND NAME LIKE 'A00%%') -- BE SAVE
AND NOT (DBNAME ='BE01A1P' AND NAME LIKE 'A01%%') -- BE SAVE
AND NOT (DBNAME ='BE01A1P' AND NAME LIKE 'A02%%') -- BE SAVE
AND NOT (DBNAME ='CD02A1P' AND NAME ='A600A') -- BE SAVE
AND NOT (DBNAME ='CSQDBOF' AND NAME ='TSBLOB1') -- MQ LOB
AND NOT (DBNAME ='CSQDBOF' AND NAME ='TSBLOB2') -- MQ LOB
AND NOT (DBNAME ='CSQDBOF' AND NAME ='TSBLOB3') -- MQ LOB
AND NOT (DBNAME ='CSQDBOF' AND NAME ='TSBLOB4') -- MQ LOB
AND NOT (DBNAME ='CSQDBOF$' AND NAME ='TSBLOB1') -- MQ LOB
AND NOT (DBNAME ='CSQDBOF$' AND NAME ='TSBLOB2') -- MQ LOB
AND NOT (DBNAME ='CSQDBOF$' AND NAME ='TSBLOB3') -- MQ LOB
AND NOT (DBNAME ='CSQDBOF$' AND NAME ='TSBLOB4') -- MQ LOB
AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A00') -- EOS: ARMIN BREYER
AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A01') -- EOS: ARMIN BREYER
AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A02') -- EOS: ARMIN BREYER
AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A03') -- EOS: ARMIN BREYER
AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A04') -- EOS: ARMIN BREYER
AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A05') -- EOS: ARMIN BREYER
AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A06') -- EOS: ARMIN BREYER
AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A07') -- EOS: ARMIN BREYER
AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A08') -- EOS: ARMIN BREYER
AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A09') -- EOS: ARMIN BREYER
AND NOT (DBNAME ='XR01A1P' AND NAME ='A200A') -- ERET: ARMIN BREYER
AND NOT (DBNAME ='XR01A1P' AND NAME ='A201A') -- ERET: ARMIN BREYER
AND NOT TRANSLATE(DBNAME, '999999999AAAAAA', '012345678FISWXY')
= 'DA999999' -- USER DATENBANKEN
AND NOT (DBNAME LIKE 'DACME%%') -- MAIL HEINZ BÜHLER
AND NOT (DBNAME LIKE 'DB2ALA%%') -- MAREC GENERATED
AND NOT (DBNAME LIKE 'DB2MAPP%%') -- REORG MAPPING TABLES
AND NOT (DBNAME LIKE 'DB2PLAN%%') -- EXPLAIN TABLES
AND NOT (DBNAME LIKE 'DSNDB%%') -- DB2 CATALOG
AND NOT (DBNAME = 'DSNTESQ') -- DB2 CATALOG CLONE
AND NOT (DBNAME LIKE 'DSN8%%') -- IBM TEST DB
AND NOT (DBNAME LIKE '%%MAREC%%') -- MAREC GENERATED
AND NOT (DBNAME LIKE 'WKDBD%%') -- DB2 WORK DATABASE
group by what
;
--??? where what like 'f%%'
--??? #HCCD (TS) FULL IMAGE COPY > 7 DAYS
--??? SELECT 'DI,PI,PA,IN' , DBID , PSID , PARTITION , INST
select what, count(*)
from
( select s.dbName, s.name, p.partition
, c.inst, s.dbid, s.psid
, case when c.inst is null
then raise_Error(70001, 'c.inst null '
|| s.dbName || '.' || s.name)
when s.nTables < 1 then 'n noTables ' || s.nTables
when p.space < 0 then 'n defineNo ' || s.space
when f.icType is null then 'f f.icType null'
when f.icType <> 'F' then 'f f.logDiscontinuity'
when f.timestamp < current timestamp-7 days then 'f week'
when i.icType is null then 'f i.icType null'
when i.icType not in ('I','F') then 'f i.logDiscontinuity'
when r.updateStatsTime is null then 'f noRts'
when r.copyLastTime is null then 'f r.copyLast null'
when i.timestamp < r.copyLastTime - 60 seconds
then 'f i << r.copyLast'
when r.nactive * 0.1 <= r.copyupdatedpages
then 'f updates'
when r.copyupdatedpages > 0 then 'i updates'
when r.copyChanges > 0 then 'i changes'
when r.copyUpdateLRSN is not null then 'i openUpdate'
else 'n noUpdates'
end what
from sysibm.sysTablespace s
left join -- clone handling: add instances
( select 1 from sysibm.sysDummy1
union all select 2 from sysibm.sysDummy1
) c (inst)
on s.instance = c.inst or s.clone = 'Y'
join sysibm.sysTablePart p
on s.dbName = p.dbName and s.name = p.tsName
left join sysibm.sysTableSpaceStats r
on s.dbName = r.dbName and s.name = r.name
and s.dbid = r.dbid and s.psid = r.psid
and p.partition = r.partition and r.instance = c.inst
left join -- newest incremental or full copy or log discontinuity
( select c.*
, row_number() over(partition by dbName, tsName, dsNum
, instance
order by timestamp desc) rn
from sysibm.sysCopy c
where c.icType not in ('D', 'M', 'Q', 'R', 'T', 'X', 'Z')
) i on i.rn = 1
and s.dbName = i.dbName and s.Name = i.tsName
and p.partition = i.dsNum
and i.instance = c.inst
left join -- newest full copy or log discontinuity
( select c.*
, row_number() over(partition by dbName, tsName, dsNum
, instance
order by timestamp desc) rn
from sysibm.sysCopy c
where c.icType not in ('D','I','M','Q', 'R', 'T', 'X', 'Z')
) f on f.rn = 1
and s.dbName = f.dbName and s.Name = f.tsName
and p.partition = f.dsNum
and f.instance = c.inst
) q
where NOT (DBNAME ='BE01A1P' AND NAME LIKE 'A00%%') -- BE SAVE
AND NOT (DBNAME ='BE01A1P' AND NAME LIKE 'A01%%') -- BE SAVE
AND NOT (DBNAME ='BE01A1P' AND NAME LIKE 'A02%%') -- BE SAVE
AND NOT (DBNAME ='CD02A1P' AND NAME ='A600A') -- BE SAVE
AND NOT (DBNAME ='CSQDBOF' AND NAME ='TSBLOB1') -- MQ LOB
AND NOT (DBNAME ='CSQDBOF' AND NAME ='TSBLOB2') -- MQ LOB
AND NOT (DBNAME ='CSQDBOF' AND NAME ='TSBLOB3') -- MQ LOB
AND NOT (DBNAME ='CSQDBOF' AND NAME ='TSBLOB4') -- MQ LOB
AND NOT (DBNAME ='CSQDBOF$' AND NAME ='TSBLOB1') -- MQ LOB
AND NOT (DBNAME ='CSQDBOF$' AND NAME ='TSBLOB2') -- MQ LOB
AND NOT (DBNAME ='CSQDBOF$' AND NAME ='TSBLOB3') -- MQ LOB
AND NOT (DBNAME ='CSQDBOF$' AND NAME ='TSBLOB4') -- MQ LOB
AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A00') -- EOS: ARMIN BREYER
AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A01') -- EOS: ARMIN BREYER
AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A02') -- EOS: ARMIN BREYER
AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A03') -- EOS: ARMIN BREYER
AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A04') -- EOS: ARMIN BREYER
AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A05') -- EOS: ARMIN BREYER
AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A06') -- EOS: ARMIN BREYER
AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A07') -- EOS: ARMIN BREYER
AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A08') -- EOS: ARMIN BREYER
AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A09') -- EOS: ARMIN BREYER
AND NOT (DBNAME ='XR01A1P' AND NAME ='A200A') -- ERET: ARMIN BREYER
AND NOT (DBNAME ='XR01A1P' AND NAME ='A201A') -- ERET: ARMIN BREYER
AND NOT TRANSLATE(DBNAME, '999999999AAAAAA', '012345678FISWXY')
= 'DA999999' -- USER DATENBANKEN
AND NOT (DBNAME LIKE 'DACME%%') -- MAIL HEINZ BÜHLER
AND NOT (DBNAME LIKE 'DB2ALA%%') -- MAREC GENERATED
AND NOT (DBNAME LIKE 'DB2MAPP%%') -- REORG MAPPING TABLES
AND NOT (DBNAME LIKE 'DB2PLAN%%') -- EXPLAIN TABLES
AND NOT (DBNAME LIKE 'DSNDB%%') -- DB2 CATALOG
AND NOT (DBNAME = 'DSNTESQ') -- DB2 CATALOG CLONE
AND NOT (DBNAME LIKE 'DSN8%%') -- IBM TEST DB
AND NOT (DBNAME LIKE '%%MAREC%%') -- MAREC GENERATED
AND NOT (DBNAME LIKE 'WKDBD%%') -- DB2 WORK DATABASE
group by what
;x;
where what like 'f%%'
}¢--- A540769.WK.SQL(#GTOTTOP) cre=2013-11-07 mod=2013-11-08-11.33.59 A540769 ---
-- total Verbrauch und groesste Verbraucher pro Periode
-- Anpassungen (f '-->>')
-- g1: erste Gruppierung, typischerweise ZeitPeriode
-- g2: zweite Gruppierung, z.B. Plan
-- table, where ....
-- Output: fuer jede Gruppe g1
-- Total Zeile (group by g1)
-- n Detail Zeilen (group by g1, g2)
-- die 5 groessten von diesem g1
----------------------------------------------------------------------
set current path oa1p;
with a as
( --->>> Periode anpassen
select trunc_timestamp(dateTime, 'hh')
+ ( minute(dateTime) / 10 * 10) minutes g1
--->>> zweite Gruppierung
, cast(left(groupName, 4) || '.' || planName as char(13)) g2
, 600 secs --->>> Normierung pro Sekunde
, g.*
--->>> source table
from pbxx.TACCT_GENERAL_20131107 g
--->>> where
where subsystem = 'DBP6'
and dateTime between '2013-11-07-09.00.00'
and '2013-11-07-12.00.00'
-- fetch first 1000 rows only
)
, g as
(
select g1, g2, min(secs) secs
, row_number() over(partition by g1
order by sum(real(a.ELAPSETCB)) desc) rn
, min(dateTime) tstFrom, max(dateTime) tstTo
-- begin prb insert srn aa e~/secs
-- tacct_general a, all, expr sum(real(~)/secs)
, sum(real(a.ELAPSETOD)/secs) ELAPSETOD
, sum(real(a.ELAPSETCB)/secs) ELAPSETCB
, sum(real(a.EDB2TOD)/secs) EDB2TOD
, sum(real(a.EDB2TCB)/secs) EDB2TCB
, sum(real(a.P2COMMITS)/secs) P2COMMITS
, sum(real(a.ABORTS)/secs) ABORTS
, sum(real(a.SELECTS)/secs) SELECTS
, sum(real(a.INSERTS)/secs) INSERTS
, sum(real(a.UPDATES)/secs) UPDATES
, sum(real(a.DELETES)/secs) DELETES
, sum(real(a.DESCRIBES)/secs) DESCRIBES
, sum(real(a.PREPARES)/secs) PREPARES
, sum(real(a.OPENS)/secs) OPENS
, sum(real(a.FETCHES)/secs) FETCHES
, sum(real(a.CLOSES)/secs) CLOSES
, sum(real(a.LOGWRTELAP)/secs) LOGWRTELAP
, sum(real(a.LOGRECORDS)/secs) LOGRECORDS
, sum(real(a.LOGBYTES)/secs) LOGBYTES
, sum(real(a.BPGETPAGE)/secs) BPGETPAGE
, sum(real(a.BPPGUPDAT)/secs) BPPGUPDAT
, sum(real(a.BPSYNCRD)/secs) BPSYNCRD
, sum(real(a.BPPREFET)/secs) BPPREFET
, sum(real(a.BPSYNCWR)/secs) BPSYNCWR
, sum(real(a.BPLISTPREF)/secs) BPLISTPREF
, sum(real(a.BPDPF)/secs) BPDPF
, sum(real(a.BPNGT)/secs) BPNGT
, sum(real(a.BPSIO)/secs) BPSIO
, sum(real(a.OCCURRENCES)/secs) OCCURRENCES
, sum(real(a.LUWIDCOMIT)/secs) LUWIDCOMIT
, sum(real(a.TRANSCNT)/secs) TRANSCNT
, sum(real(a.CLASS2CNT)/secs) CLASS2CNT
, sum(real(a.CLASS3CNT)/secs) CLASS3CNT
, sum(real(a.IFCIDSEQ#)/secs) IFCIDSEQ#
, sum(real(a.ELAPSESRB)/secs) ELAPSESRB
, sum(real(a.EDB2SRB)/secs) EDB2SRB
, sum(real(a.EWAITIO)/secs) EWAITIO
, sum(real(a.EWAITLAL)/secs) EWAITLAL
, sum(real(a.ENTEXEVNT)/secs) ENTEXEVNT
, sum(real(a.WAITEVNT)/secs) WAITEVNT
, sum(real(a.WAITREADIO)/secs) WAITREADIO
, sum(real(a.WAITWRITEIO)/secs) WAITWRITEIO
, sum(real(a.WAITSYNCEVENT)/secs) WAITSYNCEVENT
, sum(real(a.WAITARCLOG)/secs) WAITARCLOG
, sum(real(a.WEVLOCK)/secs) WEVLOCK
, sum(real(a.WEVREAD)/secs) WEVREAD
, sum(real(a.WEVWRITE)/secs) WEVWRITE
, sum(real(a.WEVSYNCH)/secs) WEVSYNCH
, sum(real(a.CLASS1CPU_ZIIP)/secs) CLASS1CPU_ZIIP
, sum(real(a.CLASS2CPU_ZIIP)/secs) CLASS2CPU_ZIIP
, sum(real(a.TRIGGERCPU_ZIIP)/secs) TRIGGERCPU_ZIIP
, sum(real(a.CPUZIIPELIGIBLE)/secs) CPUZIIPELIGIBLE
, sum(real(a.ARCLOG)/secs) ARCLOG
, sum(real(a.DRAINLKRND)/secs) DRAINLKRND
, sum(real(a.DRAINLKWDR)/secs) DRAINLKWDR
, sum(real(a.CLAIMRLWCL)/secs) CLAIMRLWCL
, sum(real(a.CLAIMRLRNC)/secs) CLAIMRLRNC
, sum(real(a.ARCHREADWAR)/secs) ARCHREADWAR
, sum(real(a.ARCHREADNAR)/secs) ARCHREADNAR
, sum(real(a.OPENCLSELAP)/secs) OPENCLSELAP
, sum(real(a.SYSLGRNGELAP)/secs) SYSLGRNGELAP
, sum(real(a.DATASETELAP)/secs) DATASETELAP
, sum(real(a.OTHERSWELAP)/secs) OTHERSWELAP
, sum(real(a.OPENCLSEVNT)/secs) OPENCLSEVNT
, sum(real(a.SYSLGRNGEVNT)/secs) SYSLGRNGEVNT
, sum(real(a.DATASETEVNT)/secs) DATASETEVNT
, sum(real(a.OTHERSWEVNT)/secs) OTHERSWEVNT
, sum(real(a.LATCHCNTWTP)/secs) LATCHCNTWTP
, sum(real(a.LATCHCNTRNH)/secs) LATCHCNTRNH
, sum(real(a.GBLMSGELAP)/secs) GBLMSGELAP
, sum(real(a.GBLMSGEVNT)/secs) GBLMSGEVNT
, sum(real(a.GBLLOKELAP)/secs) GBLLOKELAP
, sum(real(a.GBLLOKEVNT)/secs) GBLLOKEVNT
, sum(real(a.SPTCB)/secs) SPTCB
, sum(real(a.SPTCBINDB2)/secs) SPTCBINDB2
, sum(real(a.SPEVNT)/secs) SPEVNT
, sum(real(a.SPWAITELAP)/secs) SPWAITELAP
, sum(real(a.SPWAITCNT)/secs) SPWAITCNT
, sum(real(a.PARATASKS)/secs) PARATASKS
, sum(real(a.PARALLTASKS)/secs) PARALLTASKS
, sum(real(a.CPUSUCONV)/secs) CPUSUCONV
, sum(real(a.LOGWRTEVNT)/secs) LOGWRTEVNT
, sum(real(a.FUNCTCB)/secs) FUNCTCB
, sum(real(a.FUNCSQLTCB)/secs) FUNCSQLTCB
, sum(real(a.FUNCSQLEVNT)/secs) FUNCSQLEVNT
, sum(real(a.LOBWAITCNT)/secs) LOBWAITCNT
, sum(real(a.FUNCWAIT)/secs) FUNCWAIT
, sum(real(a.FUNCELAP)/secs) FUNCELAP
, sum(real(a.FUNCSQLELAP)/secs) FUNCSQLELAP
, sum(real(a.TRIGGERTCB)/secs) TRIGGERTCB
, sum(real(a.TRIGGERELAP)/secs) TRIGGERELAP
, sum(real(a.PREENCTCB)/secs) PREENCTCB
, sum(real(a.PREENCSQLTCB)/secs) PREENCSQLTCB
, sum(real(a.SPROCELAP)/secs) SPROCELAP
, sum(real(a.SPROCSQLELAP)/secs) SPROCSQLELAP
, sum(real(a.ENCTRIGGERTCB)/secs) ENCTRIGGERTCB
, sum(real(a.ENCTRIGGERELAP)/secs) ENCTRIGGERELAP
, sum(real(a.LOBWAITELAP)/secs) LOBWAITELAP
, sum(real(a.SPNFCPUZIIP)/secs) SPNFCPUZIIP
, sum(real(a.SPNFCPU)/secs) SPNFCPU
, sum(real(a.SPNFELAP)/secs) SPNFELAP
, sum(real(a.UDFNFCPUZIIP)/secs) UDFNFCPUZIIP
, sum(real(a.UDFNFCPU)/secs) UDFNFCPU
, sum(real(a.UDFNFELAP)/secs) UDFNFELAP
, sum(real(a.SVPOINTREQ)/secs) SVPOINTREQ
, sum(real(a.SVPOINTREL)/secs) SVPOINTREL
, sum(real(a.SVPOROLLBK)/secs) SVPOROLLBK
, sum(real(a.WTELAWTK)/secs) WTELAWTK
, sum(real(a.WTELAWTM)/secs) WTELAWTM
, sum(real(a.WTELAWTN)/secs) WTELAWTN
, sum(real(a.WTELAWTO)/secs) WTELAWTO
, sum(real(a.WTELAWTQ)/secs) WTELAWTQ
, sum(real(a.WTEVARNK)/secs) WTEVARNK
, sum(real(a.WTEVARNM)/secs) WTEVARNM
, sum(real(a.WTEVARNN)/secs) WTEVARNN
, sum(real(a.WTEVARNO)/secs) WTEVARNO
, sum(real(a.WTEVARNQ)/secs) WTEVARNQ
, sum(real(a.WTELAWFC)/secs) WTELAWFC
, sum(real(a.WTEVFCCT)/secs) WTEVFCCT
, sum(real(a.WTELIXLT)/secs) WTELIXLT
, sum(real(a.WTEVIXLE)/secs) WTEVIXLE
, sum(real(a.SETCURPREC)/secs) SETCURPREC
, sum(real(a.DCLGLOBALTT)/secs) DCLGLOBALTT
, sum(real(a.PARAGLOBALTT)/secs) PARAGLOBALTT
, sum(real(a.PARAMAXDEG)/secs) PARAMAXDEG
, sum(real(a.PARAREDGRP)/secs) PARAREDGRP
, sum(real(a.SQLCALLAB)/secs) SQLCALLAB
, sum(real(a.SQLCALLTO)/secs) SQLCALLTO
, sum(real(a.SQLCRGTT)/secs) SQLCRGTT
, sum(real(a.REOPTIMIZE)/secs) REOPTIMIZE
, sum(real(a.DIRECTROWIX)/secs) DIRECTROWIX
, sum(real(a.DIRECTROWTS)/secs) DIRECTROWTS
, sum(real(a.FUNC)/secs) FUNC
, sum(real(a.FUNCAB)/secs) FUNCAB
, sum(real(a.FUNCTO)/secs) FUNCTO
, sum(real(a.FUNCRJ)/secs) FUNCRJ
, sum(real(a.DEADLOCKS)/secs) DEADLOCKS
, sum(real(a.SUSPENDS)/secs) SUSPENDS
, sum(real(a.TIMEOUTS)/secs) TIMEOUTS
, sum(real(a.LOCKESHR)/secs) LOCKESHR
, sum(real(a.LOCKEXCL)/secs) LOCKEXCL
, sum(real(a.MAXPGLOCKS)/secs) MAXPGLOCKS
, sum(real(a.SUSPLATCH)/secs) SUSPLATCH
, sum(real(a.SUSPOTHER)/secs) SUSPOTHER
, sum(real(a.LOCKREQS)/secs) LOCKREQS
, sum(real(a.CLAIMREQ)/secs) CLAIMREQ
, sum(real(a.CLAIMREQUN)/secs) CLAIMREQUN
, sum(real(a.DRAINREQ)/secs) DRAINREQ
, sum(real(a.DRAINREQUN)/secs) DRAINREQUN
, sum(real(a.GBPREADINVBD)/secs) GBPREADINVBD
, sum(real(a.GBPREADINVBR)/secs) GBPREADINVBR
, sum(real(a.GBPREADNOPGD)/secs) GBPREADNOPGD
, sum(real(a.GBPREADNOPGR)/secs) GBPREADNOPGR
, sum(real(a.GBPREADNOPGN)/secs) GBPREADNOPGN
, sum(real(a.GBPWRITCHG)/secs) GBPWRITCHG
, sum(real(a.GBPWRITCLEAN)/secs) GBPWRITCLEAN
, sum(real(a.GBPUNREGPG)/secs) GBPUNREGPG
, sum(real(a.GBPEXPLICITXI)/secs) GBPEXPLICITXI
, sum(real(a.GBPWRITCHK2)/secs) GBPWRITCHK2
, sum(real(a.GBPASYNPRIM)/secs) GBPASYNPRIM
, sum(real(a.GBPASYNSEC)/secs) GBPASYNSEC
, sum(real(a.GBPDEPGETPG)/secs) GBPDEPGETPG
, sum(real(a.GBPPLKSPMAP)/secs) GBPPLKSPMAP
, sum(real(a.GBPPLKDATA)/secs) GBPPLKDATA
, sum(real(a.GBPPLKIDX)/secs) GBPPLKIDX
, sum(real(a.GBPPLKUNLK)/secs) GBPPLKUNLK
, sum(real(a.GBPPSUSSPMAP)/secs) GBPPSUSSPMAP
, sum(real(a.GBPPSUSDATA)/secs) GBPPSUSDATA
, sum(real(a.GBPPSUSIDX)/secs) GBPPSUSIDX
, sum(real(a.GBPWARMULTI)/secs) GBPWARMULTI
, sum(real(a.GBPWAR)/secs) GBPWAR
, sum(real(a.GLPLOCKLK)/secs) GLPLOCKLK
, sum(real(a.GLPLOCKCHG)/secs) GLPLOCKCHG
, sum(real(a.GLPLOCKUNLK)/secs) GLPLOCKUNLK
, sum(real(a.GLXESSYNCLK)/secs) GLXESSYNCLK
, sum(real(a.GLXESSYNCCHG)/secs) GLXESSYNCCHG
, sum(real(a.GLXESSYNCUNLK)/secs) GLXESSYNCUNLK
, sum(real(a.GLSUSPIRLM)/secs) GLSUSPIRLM
, sum(real(a.GLSUSPXES)/secs) GLSUSPXES
, sum(real(a.GLSUSPFALSE)/secs) GLSUSPFALSE
, sum(real(a.GLINCOMPAT)/secs) GLINCOMPAT
, sum(real(a.GLNOTFYSENT)/secs) GLNOTFYSENT
, sum(real(a.GLFALSECONT)/secs) GLFALSECONT
, sum(real(a.RLFCPULIMITU)/secs) RLFCPULIMITU
, sum(real(a.RLFCPUUSEDU)/secs) RLFCPUUSEDU
, sum(real(a.UNLOCKREQS)/secs) UNLOCKREQS
, sum(real(a.QUERYREQS)/secs) QUERYREQS
, sum(real(a.CHNGREQS)/secs) CHNGREQS
, sum(real(a.IFIELAPSED)/secs) IFIELAPSED
, sum(real(a.IFITCBCPU)/secs) IFITCBCPU
, sum(real(a.IFIELAPDTC)/secs) IFIELAPDTC
, sum(real(a.IFIELAPEXT)/secs) IFIELAPEXT
, sum(real(a.PROGRAMS)/secs) PROGRAMS
-- end prb insert srn aa e~/secs
from a
group by g1, g2
)
, t as
(
select g1, ' total' g2, min(secs) secs, 0 rn
, min(tstFrom) tstFrom, max(tstTo) tstTo
-- begin prb insert sn
-- tacct_general g, all, expr sum(~)
, sum(g.ELAPSETOD) ELAPSETOD
, sum(g.ELAPSETCB) ELAPSETCB
, sum(g.EDB2TOD) EDB2TOD
, sum(g.EDB2TCB) EDB2TCB
, sum(g.P2COMMITS) P2COMMITS
, sum(g.ABORTS) ABORTS
, sum(g.SELECTS) SELECTS
, sum(g.INSERTS) INSERTS
, sum(g.UPDATES) UPDATES
, sum(g.DELETES) DELETES
, sum(g.DESCRIBES) DESCRIBES
, sum(g.PREPARES) PREPARES
, sum(g.OPENS) OPENS
, sum(g.FETCHES) FETCHES
, sum(g.CLOSES) CLOSES
, sum(g.LOGWRTELAP) LOGWRTELAP
, sum(g.LOGRECORDS) LOGRECORDS
, sum(g.LOGBYTES) LOGBYTES
, sum(g.BPGETPAGE) BPGETPAGE
, sum(g.BPPGUPDAT) BPPGUPDAT
, sum(g.BPSYNCRD) BPSYNCRD
, sum(g.BPPREFET) BPPREFET
, sum(g.BPSYNCWR) BPSYNCWR
, sum(g.BPLISTPREF) BPLISTPREF
, sum(g.BPDPF) BPDPF
, sum(g.BPNGT) BPNGT
, sum(g.BPSIO) BPSIO
, sum(g.OCCURRENCES) OCCURRENCES
, sum(g.LUWIDCOMIT) LUWIDCOMIT
, sum(g.TRANSCNT) TRANSCNT
, sum(g.CLASS2CNT) CLASS2CNT
, sum(g.CLASS3CNT) CLASS3CNT
, sum(g.IFCIDSEQ#) IFCIDSEQ#
, sum(g.ELAPSESRB) ELAPSESRB
, sum(g.EDB2SRB) EDB2SRB
, sum(g.EWAITIO) EWAITIO
, sum(g.EWAITLAL) EWAITLAL
, sum(g.ENTEXEVNT) ENTEXEVNT
, sum(g.WAITEVNT) WAITEVNT
, sum(g.WAITREADIO) WAITREADIO
, sum(g.WAITWRITEIO) WAITWRITEIO
, sum(g.WAITSYNCEVENT) WAITSYNCEVENT
, sum(g.WAITARCLOG) WAITARCLOG
, sum(g.WEVLOCK) WEVLOCK
, sum(g.WEVREAD) WEVREAD
, sum(g.WEVWRITE) WEVWRITE
, sum(g.WEVSYNCH) WEVSYNCH
, sum(g.CLASS1CPU_ZIIP) CLASS1CPU_ZIIP
, sum(g.CLASS2CPU_ZIIP) CLASS2CPU_ZIIP
, sum(g.TRIGGERCPU_ZIIP) TRIGGERCPU_ZIIP
, sum(g.CPUZIIPELIGIBLE) CPUZIIPELIGIBLE
, sum(g.ARCLOG) ARCLOG
, sum(g.DRAINLKRND) DRAINLKRND
, sum(g.DRAINLKWDR) DRAINLKWDR
, sum(g.CLAIMRLWCL) CLAIMRLWCL
, sum(g.CLAIMRLRNC) CLAIMRLRNC
, sum(g.ARCHREADWAR) ARCHREADWAR
, sum(g.ARCHREADNAR) ARCHREADNAR
, sum(g.OPENCLSELAP) OPENCLSELAP
, sum(g.SYSLGRNGELAP) SYSLGRNGELAP
, sum(g.DATASETELAP) DATASETELAP
, sum(g.OTHERSWELAP) OTHERSWELAP
, sum(g.OPENCLSEVNT) OPENCLSEVNT
, sum(g.SYSLGRNGEVNT) SYSLGRNGEVNT
, sum(g.DATASETEVNT) DATASETEVNT
, sum(g.OTHERSWEVNT) OTHERSWEVNT
, sum(g.LATCHCNTWTP) LATCHCNTWTP
, sum(g.LATCHCNTRNH) LATCHCNTRNH
, sum(g.GBLMSGELAP) GBLMSGELAP
, sum(g.GBLMSGEVNT) GBLMSGEVNT
, sum(g.GBLLOKELAP) GBLLOKELAP
, sum(g.GBLLOKEVNT) GBLLOKEVNT
, sum(g.SPTCB) SPTCB
, sum(g.SPTCBINDB2) SPTCBINDB2
, sum(g.SPEVNT) SPEVNT
, sum(g.SPWAITELAP) SPWAITELAP
, sum(g.SPWAITCNT) SPWAITCNT
, sum(g.PARATASKS) PARATASKS
, sum(g.PARALLTASKS) PARALLTASKS
, sum(g.CPUSUCONV) CPUSUCONV
, sum(g.LOGWRTEVNT) LOGWRTEVNT
, sum(g.FUNCTCB) FUNCTCB
, sum(g.FUNCSQLTCB) FUNCSQLTCB
, sum(g.FUNCSQLEVNT) FUNCSQLEVNT
, sum(g.LOBWAITCNT) LOBWAITCNT
, sum(g.FUNCWAIT) FUNCWAIT
, sum(g.FUNCELAP) FUNCELAP
, sum(g.FUNCSQLELAP) FUNCSQLELAP
, sum(g.TRIGGERTCB) TRIGGERTCB
, sum(g.TRIGGERELAP) TRIGGERELAP
, sum(g.PREENCTCB) PREENCTCB
, sum(g.PREENCSQLTCB) PREENCSQLTCB
, sum(g.SPROCELAP) SPROCELAP
, sum(g.SPROCSQLELAP) SPROCSQLELAP
, sum(g.ENCTRIGGERTCB) ENCTRIGGERTCB
, sum(g.ENCTRIGGERELAP) ENCTRIGGERELAP
, sum(g.LOBWAITELAP) LOBWAITELAP
, sum(g.SPNFCPUZIIP) SPNFCPUZIIP
, sum(g.SPNFCPU) SPNFCPU
, sum(g.SPNFELAP) SPNFELAP
, sum(g.UDFNFCPUZIIP) UDFNFCPUZIIP
, sum(g.UDFNFCPU) UDFNFCPU
, sum(g.UDFNFELAP) UDFNFELAP
, sum(g.SVPOINTREQ) SVPOINTREQ
, sum(g.SVPOINTREL) SVPOINTREL
, sum(g.SVPOROLLBK) SVPOROLLBK
, sum(g.WTELAWTK) WTELAWTK
, sum(g.WTELAWTM) WTELAWTM
, sum(g.WTELAWTN) WTELAWTN
, sum(g.WTELAWTO) WTELAWTO
, sum(g.WTELAWTQ) WTELAWTQ
, sum(g.WTEVARNK) WTEVARNK
, sum(g.WTEVARNM) WTEVARNM
, sum(g.WTEVARNN) WTEVARNN
, sum(g.WTEVARNO) WTEVARNO
, sum(g.WTEVARNQ) WTEVARNQ
, sum(g.WTELAWFC) WTELAWFC
, sum(g.WTEVFCCT) WTEVFCCT
, sum(g.WTELIXLT) WTELIXLT
, sum(g.WTEVIXLE) WTEVIXLE
, sum(g.SETCURPREC) SETCURPREC
, sum(g.DCLGLOBALTT) DCLGLOBALTT
, sum(g.PARAGLOBALTT) PARAGLOBALTT
, sum(g.PARAMAXDEG) PARAMAXDEG
, sum(g.PARAREDGRP) PARAREDGRP
, sum(g.SQLCALLAB) SQLCALLAB
, sum(g.SQLCALLTO) SQLCALLTO
, sum(g.SQLCRGTT) SQLCRGTT
, sum(g.REOPTIMIZE) REOPTIMIZE
, sum(g.DIRECTROWIX) DIRECTROWIX
, sum(g.DIRECTROWTS) DIRECTROWTS
, sum(g.FUNC) FUNC
, sum(g.FUNCAB) FUNCAB
, sum(g.FUNCTO) FUNCTO
, sum(g.FUNCRJ) FUNCRJ
, sum(g.DEADLOCKS) DEADLOCKS
, sum(g.SUSPENDS) SUSPENDS
, sum(g.TIMEOUTS) TIMEOUTS
, sum(g.LOCKESHR) LOCKESHR
, sum(g.LOCKEXCL) LOCKEXCL
, sum(g.MAXPGLOCKS) MAXPGLOCKS
, sum(g.SUSPLATCH) SUSPLATCH
, sum(g.SUSPOTHER) SUSPOTHER
, sum(g.LOCKREQS) LOCKREQS
, sum(g.CLAIMREQ) CLAIMREQ
, sum(g.CLAIMREQUN) CLAIMREQUN
, sum(g.DRAINREQ) DRAINREQ
, sum(g.DRAINREQUN) DRAINREQUN
, sum(g.GBPREADINVBD) GBPREADINVBD
, sum(g.GBPREADINVBR) GBPREADINVBR
, sum(g.GBPREADNOPGD) GBPREADNOPGD
, sum(g.GBPREADNOPGR) GBPREADNOPGR
, sum(g.GBPREADNOPGN) GBPREADNOPGN
, sum(g.GBPWRITCHG) GBPWRITCHG
, sum(g.GBPWRITCLEAN) GBPWRITCLEAN
, sum(g.GBPUNREGPG) GBPUNREGPG
, sum(g.GBPEXPLICITXI) GBPEXPLICITXI
, sum(g.GBPWRITCHK2) GBPWRITCHK2
, sum(g.GBPASYNPRIM) GBPASYNPRIM
, sum(g.GBPASYNSEC) GBPASYNSEC
, sum(g.GBPDEPGETPG) GBPDEPGETPG
, sum(g.GBPPLKSPMAP) GBPPLKSPMAP
, sum(g.GBPPLKDATA) GBPPLKDATA
, sum(g.GBPPLKIDX) GBPPLKIDX
, sum(g.GBPPLKUNLK) GBPPLKUNLK
, sum(g.GBPPSUSSPMAP) GBPPSUSSPMAP
, sum(g.GBPPSUSDATA) GBPPSUSDATA
, sum(g.GBPPSUSIDX) GBPPSUSIDX
, sum(g.GBPWARMULTI) GBPWARMULTI
, sum(g.GBPWAR) GBPWAR
, sum(g.GLPLOCKLK) GLPLOCKLK
, sum(g.GLPLOCKCHG) GLPLOCKCHG
, sum(g.GLPLOCKUNLK) GLPLOCKUNLK
, sum(g.GLXESSYNCLK) GLXESSYNCLK
, sum(g.GLXESSYNCCHG) GLXESSYNCCHG
, sum(g.GLXESSYNCUNLK) GLXESSYNCUNLK
, sum(g.GLSUSPIRLM) GLSUSPIRLM
, sum(g.GLSUSPXES) GLSUSPXES
, sum(g.GLSUSPFALSE) GLSUSPFALSE
, sum(g.GLINCOMPAT) GLINCOMPAT
, sum(g.GLNOTFYSENT) GLNOTFYSENT
, sum(g.GLFALSECONT) GLFALSECONT
, sum(g.RLFCPULIMITU) RLFCPULIMITU
, sum(g.RLFCPUUSEDU) RLFCPUUSEDU
, sum(g.UNLOCKREQS) UNLOCKREQS
, sum(g.QUERYREQS) QUERYREQS
, sum(g.CHNGREQS) CHNGREQS
, sum(g.IFIELAPSED) IFIELAPSED
, sum(g.IFITCBCPU) IFITCBCPU
, sum(g.IFIELAPDTC) IFIELAPDTC
, sum(g.IFIELAPEXT) IFIELAPEXT
, sum(g.PROGRAMS) PROGRAMS
from g
group by g1
)
, u as
(
select * from g
--->>> Anzahl Detail Zeilen
where rn <= 5
union all select * from t
)
--->>> Formattierung g1
select substr(char(g1), 1, 19) "tstGroup"
, smallint(rn) rn
--->>> Formattierung g2
, g2 "dbSy.plan"
-- begin prb insert en au
-- tacct_general u, fsoFmtE7, all, expr ~
, fosFmtE7(u.ELAPSETOD) "totElap"
, fosFmtE7(u.ELAPSETCB) "totCPU"
, fosFmtE7(u.EDB2TOD) "db2Elap"
, fosFmtE7(u.EDB2TCB) "db2CPU"
, fosGeWait(u.eWaitIO, u.waitReadIO, u.waitWriteIO, u.openClsElap
, u.datasetElap, u.eWaitLAL, u.sysLgRngElap, u.logWrtElap
, u.waitArcLog, u.archReadWar, u.drainLkWDR, u.claimRlWcl
, u.gblLokElap, u.wtelawtk, u.wtelawtm, u.wtelawtn, u.wtelawto
, u.wtelawtq, u.gblMsgElap, u.waitSyncEvent, u.otherSWElap
, u.spWaitElap, u.funcWait
, u.lobWaitElap) "wait % 1. % 2. % 3."
, fosFmtE7((u.p2Commits + u.aborts + u.selects + u.inserts
+ u.updates + u.deletes + u.describes + u.prepares + u.opens
+ u.fetches + u.closes + u.setcurprec + u.dclglobaltt
+ u.sqlcrgtt)) "sqls"
, fosFmtE7(u.P2COMMITS) "commit"
, fosFmtE7(u.ABORTS) "abort"
, fosFmtE7(u.SELECTS) SELECTS
, fosFmtE7(u.INSERTS) INSERTS
, fosFmtE7(u.UPDATES) UPDATES
, fosFmtE7(u.DELETES) DELETES
, fosFmtE7(u.DESCRIBES) DESCRIBES
, fosFmtE7(u.PREPARES) PREPARES
, fosFmtE7(u.OPENS) OPENS
, fosFmtE7(u.FETCHES) FETCHES
, fosFmtE7(u.CLOSES) CLOSES
, fosFmtE7(u.LOGWRTELAP) "logEla"
, fosFmtE7(u.LOGRECORDS) "logRecs"
, fosFmtE7(u.LOGBYTES) "logByte"
, fosFmtE7(u.BPGETPAGE) BPGETPAGE
, fosFmtE7(u.BPPGUPDAT) BPPGUPDAT
, fosFmtE7(u.BPSYNCRD) BPSYNCRD
, fosFmtE7(u.BPPREFET) BPPREFET
, fosFmtE7(u.BPSYNCWR) BPSYNCWR
, fosFmtE7(u.BPLISTPREF) BPLISTPREF
, fosFmtE7(u.BPDPF) BPDPF
, fosFmtE7(u.BPNGT) BPNGT
, fosFmtE7(u.BPSIO) BPSIO
, REAL((u.eWaitIO + u.waitReadIO + u.waitWriteIO + u.openClsElap
+ u.datasetElap + u.eWaitLAL + u.sysLgRngElap + u.logWrtElap
+ u.waitArcLog + u.archReadWar + u.drainLkWDR + u.claimRlWcl
+ u.gblLokElap + u.wtelawtk + u.wtelawtm + u.wtelawtn
+ u.wtelawto + u.wtelawtq + u.gblMsgElap + u.waitSyncEvent
+ u.otherSWElap + u.spWaitElap + u.funcWait
+ u.lobWaitElap)) "wait"
, fosFmtE7(u.OCCURRENCES) OCCURRENCES
, fosFmtE7(u.LUWIDCOMIT) LUWIDCOMIT
, fosFmtE7(u.TRANSCNT) TRANSCNT
, fosFmtE7(u.CLASS2CNT) CLASS2CNT
, fosFmtE7(u.CLASS3CNT) CLASS3CNT
, fosFmtE7(u.IFCIDSEQ#) IFCIDSEQ#
, fosFmtE7(u.ELAPSESRB) ELAPSESRB
, fosFmtE7(u.EDB2SRB) EDB2SRB
, fosFmtE7(u.EWAITIO) "synIOWait"
, fosFmtE7(u.EWAITLAL) "locLoLaWai"
, fosFmtE7(u.ENTEXEVNT) ENTEXEVNT
, fosFmtE7(u.WAITEVNT) WAITEVNT
, fosFmtE7(u.WAITREADIO) "othReaWait"
, fosFmtE7(u.WAITWRITEIO) "othWriWait"
, fosFmtE7(u.WAITSYNCEVENT) "uniSwiWait"
, fosFmtE7(u.WAITARCLOG) "arcLogWait"
, fosFmtE7(u.WEVLOCK) WEVLOCK
, fosFmtE7(u.WEVREAD) WEVREAD
, fosFmtE7(u.WEVWRITE) WEVWRITE
, fosFmtE7(u.WEVSYNCH) WEVSYNCH
, fosFmtE7(u.CLASS1CPU_ZIIP) CLASS1CPU_ZIIP
, fosFmtE7(u.CLASS2CPU_ZIIP) CLASS2CPU_ZIIP
, fosFmtE7(u.TRIGGERCPU_ZIIP) TRIGGERCPU_ZIIP
, fosFmtE7(u.CPUZIIPELIGIBLE) CPUZIIPELIGIBLE
, fosFmtE7(u.ARCLOG) ARCLOG
, fosFmtE7(u.DRAINLKRND) DRAINLKRND
, fosFmtE7(u.DRAINLKWDR) "drainWait"
, fosFmtE7(u.CLAIMRLWCL) "claimWait"
, fosFmtE7(u.CLAIMRLRNC) CLAIMRLRNC
, fosFmtE7(u.ARCHREADWAR) "arcReaWait"
, fosFmtE7(u.ARCHREADNAR) ARCHREADNAR
, fosFmtE7(u.OPENCLSELAP) "opeCloWait"
, fosFmtE7(u.SYSLGRNGELAP) "sysLgRaWai"
, fosFmtE7(u.DATASETELAP) "datSetWait"
, fosFmtE7(u.OTHERSWELAP) "othSwiEla"
, fosFmtE7(u.OPENCLSEVNT) OPENCLSEVNT
, fosFmtE7(u.SYSLGRNGEVNT) SYSLGRNGEVNT
, fosFmtE7(u.DATASETEVNT) DATASETEVNT
, fosFmtE7(u.OTHERSWEVNT) OTHERSWEVNT
, fosFmtE7(u.LATCHCNTWTP) LATCHCNTWTP
, fosFmtE7(u.LATCHCNTRNH) LATCHCNTRNH
, fosFmtE7(u.GBLMSGELAP) "gblMsgWait"
, fosFmtE7(u.GBLMSGEVNT) GBLMSGEVNT
, fosFmtE7(u.GBLLOKELAP) "gblConWait"
, fosFmtE7(u.GBLLOKEVNT) GBLLOKEVNT
, fosFmtE7(u.SPTCB) "stoProCpu"
, fosFmtE7(u.SPTCBINDB2) "stoProDb2"
, fosFmtE7(u.SPEVNT) SPEVNT
, fosFmtE7(u.SPWAITELAP) "stoProWait"
, fosFmtE7(u.SPWAITCNT) SPWAITCNT
, fosFmtE7(u.PARATASKS) PARATASKS
, fosFmtE7(u.PARALLTASKS) PARALLTASKS
, fosFmtE7(u.CPUSUCONV) CPUSUCONV
, fosFmtE7(u.LOGWRTEVNT) LOGWRTEVNT
, fosFmtE7(u.FUNCTCB) "funcCpu"
, fosFmtE7(u.FUNCSQLTCB) "funcD2Cpu"
, fosFmtE7(u.FUNCSQLEVNT) FUNCSQLEVNT
, fosFmtE7(u.LOBWAITCNT) LOBWAITCNT
, fosFmtE7(u.FUNCWAIT) "funcWait"
, fosFmtE7(u.FUNCELAP) "funcEla"
, fosFmtE7(u.FUNCSQLELAP) "funcD2Ela"
, fosFmtE7(u.TRIGGERTCB) "triD2Cpu"
, fosFmtE7(u.TRIGGERELAP) "triD2Ela"
, fosFmtE7(u.PREENCTCB) "???"
, fosFmtE7(u.PREENCSQLTCB) "???"
, fosFmtE7(u.SPROCELAP) "stoProToEl"
, fosFmtE7(u.SPROCSQLELAP) "stoProD2El"
, fosFmtE7(u.ENCTRIGGERTCB) "triNesToCp"
, fosFmtE7(u.ENCTRIGGERELAP) "triNesToEl"
, fosFmtE7(u.LOBWAITELAP) LOBWAITELAP
, fosFmtE7(u.SPNFCPUZIIP) "???"
, fosFmtE7(u.SPNFCPU) "???"
, fosFmtE7(u.SPNFELAP) "???"
, fosFmtE7(u.UDFNFCPUZIIP) UDFNFCPUZIIP
, fosFmtE7(u.UDFNFCPU) UDFNFCPU
, fosFmtE7(u.UDFNFELAP) UDFNFELAP
, fosFmtE7(u.SVPOINTREQ) SVPOINTREQ
, fosFmtE7(u.SVPOINTREL) SVPOINTREL
, fosFmtE7(u.SVPOROLLBK) SVPOROLLBK
, fosFmtE7(u.WTELAWTK) "gblChiWait"
, fosFmtE7(u.WTELAWTM) "gblOtLWait"
, fosFmtE7(u.WTELAWTN) "gblPrPWait"
, fosFmtE7(u.WTELAWTO) "gblPgPWait"
, fosFmtE7(u.WTELAWTQ) "gblOtPWait"
, fosFmtE7(u.WTEVARNK) WTEVARNK
, fosFmtE7(u.WTEVARNM) WTEVARNM
, fosFmtE7(u.WTEVARNN) WTEVARNN
, fosFmtE7(u.WTEVARNO) WTEVARNO
, fosFmtE7(u.WTEVARNQ) WTEVARNQ
, fosFmtE7(u.WTELAWFC) "???"
, fosFmtE7(u.WTEVFCCT) WTEVFCCT
, fosFmtE7(u.WTELIXLT) WTELIXLT
, fosFmtE7(u.WTEVIXLE) WTEVIXLE
, fosFmtE7(u.SETCURPREC) SETCURPREC
, fosFmtE7(u.DCLGLOBALTT) DCLGLOBALTT
, fosFmtE7(u.PARAGLOBALTT) PARAGLOBALTT
, fosFmtE7(u.PARAMAXDEG) PARAMAXDEG
, fosFmtE7(u.PARAREDGRP) PARAREDGRP
, fosFmtE7(u.SQLCALLAB) SQLCALLAB
, fosFmtE7(u.SQLCALLTO) SQLCALLTO
, fosFmtE7(u.SQLCRGTT) SQLCRGTT
, fosFmtE7(u.REOPTIMIZE) REOPTIMIZE
, fosFmtE7(u.DIRECTROWIX) DIRECTROWIX
, fosFmtE7(u.DIRECTROWTS) DIRECTROWTS
, fosFmtE7(u.FUNC) FUNC
, fosFmtE7(u.FUNCAB) FUNCAB
, fosFmtE7(u.FUNCTO) FUNCTO
, fosFmtE7(u.FUNCRJ) FUNCRJ
, fosFmtE7(u.DEADLOCKS) DEADLOCKS
, fosFmtE7(u.SUSPENDS) SUSPENDS
, fosFmtE7(u.TIMEOUTS) TIMEOUTS
, fosFmtE7(u.LOCKESHR) LOCKESHR
, fosFmtE7(u.LOCKEXCL) LOCKEXCL
, fosFmtE7(u.MAXPGLOCKS) MAXPGLOCKS
, fosFmtE7(u.SUSPLATCH) SUSPLATCH
, fosFmtE7(u.SUSPOTHER) SUSPOTHER
, fosFmtE7(u.LOCKREQS) LOCKREQS
, fosFmtE7(u.CLAIMREQ) CLAIMREQ
, fosFmtE7(u.CLAIMREQUN) CLAIMREQUN
, fosFmtE7(u.DRAINREQ) DRAINREQ
, fosFmtE7(u.DRAINREQUN) DRAINREQUN
, fosFmtE7(u.GBPREADINVBD) GBPREADINVBD
, fosFmtE7(u.GBPREADINVBR) GBPREADINVBR
, fosFmtE7(u.GBPREADNOPGD) GBPREADNOPGD
, fosFmtE7(u.GBPREADNOPGR) GBPREADNOPGR
, fosFmtE7(u.GBPREADNOPGN) GBPREADNOPGN
, fosFmtE7(u.GBPWRITCHG) GBPWRITCHG
, fosFmtE7(u.GBPWRITCLEAN) GBPWRITCLEAN
, fosFmtE7(u.GBPUNREGPG) GBPUNREGPG
, fosFmtE7(u.GBPEXPLICITXI) GBPEXPLICITXI
, fosFmtE7(u.GBPWRITCHK2) GBPWRITCHK2
, fosFmtE7(u.GBPASYNPRIM) GBPASYNPRIM
, fosFmtE7(u.GBPASYNSEC) GBPASYNSEC
, fosFmtE7(u.GBPDEPGETPG) GBPDEPGETPG
, fosFmtE7(u.GBPPLKSPMAP) GBPPLKSPMAP
, fosFmtE7(u.GBPPLKDATA) GBPPLKDATA
, fosFmtE7(u.GBPPLKIDX) GBPPLKIDX
, fosFmtE7(u.GBPPLKUNLK) GBPPLKUNLK
, fosFmtE7(u.GBPPSUSSPMAP) GBPPSUSSPMAP
, fosFmtE7(u.GBPPSUSDATA) GBPPSUSDATA
, fosFmtE7(u.GBPPSUSIDX) GBPPSUSIDX
, fosFmtE7(u.GBPWARMULTI) GBPWARMULTI
, fosFmtE7(u.GBPWAR) GBPWAR
, fosFmtE7(u.GLPLOCKLK) GLPLOCKLK
, fosFmtE7(u.GLPLOCKCHG) GLPLOCKCHG
, fosFmtE7(u.GLPLOCKUNLK) GLPLOCKUNLK
, fosFmtE7(u.GLXESSYNCLK) GLXESSYNCLK
, fosFmtE7(u.GLXESSYNCCHG) GLXESSYNCCHG
, fosFmtE7(u.GLXESSYNCUNLK) GLXESSYNCUNLK
, fosFmtE7(u.GLSUSPIRLM) GLSUSPIRLM
, fosFmtE7(u.GLSUSPXES) GLSUSPXES
, fosFmtE7(u.GLSUSPFALSE) GLSUSPFALSE
, fosFmtE7(u.GLINCOMPAT) GLINCOMPAT
, fosFmtE7(u.GLNOTFYSENT) GLNOTFYSENT
, fosFmtE7(u.GLFALSECONT) GLFALSECONT
, fosFmtE7(u.RLFCPULIMITU) RLFCPULIMITU
, fosFmtE7(u.RLFCPUUSEDU) RLFCPUUSEDU
, fosFmtE7(u.UNLOCKREQS) UNLOCKREQS
, fosFmtE7(u.QUERYREQS) QUERYREQS
, fosFmtE7(u.CHNGREQS) CHNGREQS
, fosFmtE7(u.IFIELAPSED) IFIELAPSED
, fosFmtE7(u.IFITCBCPU) IFITCBCPU
, fosFmtE7(u.IFIELAPDTC) IFIELAPDTC
, fosFmtE7(u.IFIELAPEXT) IFIELAPEXT
, fosFmtE7(u.PROGRAMS) PROGRAMS
-- end prb insert en au
, secs
, tstFrom
, tstTo
from u
order by g1, rn
with ur
}¢--- A540769.WK.SQL(ABUBDDL) cre=2013-11-20 mod=2014-06-02-08.53.17 A540769 ---
set current sqlid = 'S100447';
xrop tablespace qz01a1p.a045a ;
xrop tablespace qz01a1p.a046a ;
commit;
CREATE TABLESPACE a045a
IN qz01a1p
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLESPACE a046a
IN qz01a1p
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLE oa1p.tQZ045AbUbEvent
( ab CHAR(8) NOT NULL
, rz CHAR(3) NOT NULL
, dbSy char(4) NOT NULL
, tst timestamp(0) not null
, event char(4) NOT NULL
, orTst timestamp(0) not null default '0001-01-01-00.00.00'
, link char(60) NOT NULL default
, cont varchar(500) not null default
)
in qz01a1p.a045a
;
CREATE UNIQUE INDEX oa1p.iQZ045A1
ON oa1p.tQZ045AbUbEvent
(ab, rz, dbSy, tst)
include (event)
USING STOGROUP GSMS
ERASE NO
GBPCACHE CHANGED
not CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G
;
CREATE TABLE oa1p.tQZ046AbUbRule
( rule char(8) not null
, type char(8) not null
, subType char(8) not null
, va1 char(16) not null
, va2 char(16) not null
, va3 char(60) not null with default
, va4 char(200) not null with default
)
in qz01a1p.a046a
;
CREATE INDEX oa1p.iQZ046A1
ON oa1p.tQZ046AbUbRule
(rule, type, subType, va1, va2)
USING STOGROUP GSMS
ERASE NO
GBPCACHE CHANGED
not CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G
;
set current sqlid = 'S100447';
drop view oa1p.vQZ045AbUbLast ;
drop view oa1p.vQZ046AbUbCal ;
create view oa1p.vQZ045AbUbLast as
with r as
(
select rule ab
, type, subType
, char(va1, 3) rz
, char(va2, 4) dbSy
, va3, va4
from oa1p.tQZ046AbUbRule
where type in ('ab', 'abub', 'conn')
)
, s as
(
select r.*
, (select max(e.tst)
from oa1p.tQZ045AbUbEvent e
where r.ab = e.ab and r.rz = e.rz and r.dbSy = e.dbSy
) evTst
from r
)
, l as
(
select s.*, e.event, e.orTst, e.link, e.cont
from s
left join oa1p.tQZ045AbUbEvent e
on s.ab = e.ab and s.rz = e.rz and s.dbSy = e.dbSy
and s.evTst = e.tst
)
select f.*, c.evTst conTst, c.event conEv, c.subType conPri
, ( select evTst from s where s.ab = 'abub') abubTst
from l f
left join l c
on c.ab = 'connect' and c.type = 'conn'
and c.rz = f.rz
;
create view oa1p.vQZ046AbUbCal as
with d (dt, x) as
(
select current date, 0 from sysibm.sysDummy1
union all select dt - 1 days, x+1 from d where x < 8
)
, t as
(
select cast( timestamp(dt, strip(va2)||':00') as timestamp(0)) start
, r.*
from d join oa1p.tQZ046AbUbRule r
on r.type = 'cal' and r.subType not like 'trunc%'
)
, s as
(
select *
from t where 0 <
case when subType = 'wtZe'
then locate(dayOfWeek_iso(start), va1)
else raise_error(77701, 'cal bad subType ' || subType)
end
union all select
case when subType = 'truncHH'
then trunc_timestamp(current timestamp, 'hh')
when subType = 'truncDD'
then trunc_timestamp(current timestamp, 'dd')
else raise_error(77702, 'cal bad subType ' || subType)
end start, r.*
from oa1p.tQZ046AbUbRule r
where r.type = 'cal' and r.subType like 'trunc%'
union all select
case when subType = 'truncHH'
then trunc_timestamp(current timestamp, 'hh') - 1 hour
when subType = 'truncDD'
then trunc_timestamp(current timestamp, 'dd') - 1 day
else raise_error(77702, 'cal bad subType ' || subType)
end start, r.*
from oa1p.tQZ046AbUbRule r
where r.type = 'cal' and r.subType like 'trunc%'
)
, o1 as
(
select s.*
, case when strip(va3) like 'e%' then 'e' else 's' end tiOuTy
from s
)
, o2 as
(
select o1.*
, midnight_seconds(time(
case when tiOuTy = 's' then strip(va3)
else strip(substr(strip(va3), 2)) end ||':00')) tiOuSecs
from o1
)
select rule cal
, cast(start as timestamp(0)) start
, tiOuTy, tiOuSecs
, va4 calVa4
from o2
;
create view oa1p.vQZ046AbUbCur as
with c as
(
select c.*
, row_number() over (partition by cal order by start desc) rn
from oa1p.vQZ046AbUbCal c
where start <= current timestamp
)
select a.cal, a.start, a.tiOuTy, a.tiOuSecs, a.calVa4
, b.start prStart
from c a left join c b on a.cal = b.cal and b.rn = 2
where a.rn = 1
;
create view oa1p.vQZ045AbubState as
with r as
(
select cast( case when tiOuTy = 'e' then evTst else start end
+ tiOuSecs seconds as timestamp(0)) until
, r.*, c.*
from oa1p.vQZ045AbUbLast r
left join oa1p.vQZ046AbUbCur c
on r.type = 'ab' and r.subType = c.cal
)
, s1 as
(
select -- s1 = timout or alarmTimeout (new)
case when event is null or evTst is null then ' t'
when cal is null then ''
when evTst >= start and event not like '>%' then ''
when until < abubTst then ' t'
when until < current timestamp then 'at'
when evTst >= start or tiOuTy = 'e' then ''
when evTst < prStart or event like '>%' then ' t'
else ''
end s1
, r.*
from r
)
, s2 as
(
select
case
when type = 'conn' then -- connection: alarm?
case when conTst is null then ' timeout'
when conTst >= abubTst then 'a' || event
else ' ' || event
end
when s1 = '' then -- event: in progress or alarm?
case when event like '>%' then ' >'
when event = 'ok' or evTst <= abubTst then ' '||event
else 'a'||event
end
else -- timeout: is connection the reason?
case when conEv is null or conEv <> 'ok' then 'cconTimeout'
when conTst + tiOuSecs seconds > current timestamp
then 'cconRestart'
else left(s1, 1) || 'timeout'
end
end s2
, s1.*
from s1
)
, o as
(
select rz, dbSy, ab
, substr(s2, 1, 1) alarm
, substr(s2, 2, 10) state
-- , s1
, event, evTst, orTst, link, cont
, start, until, cal, tiOuTy, tiOuSecs, calVa4, prStart
, conEv, conTst
, abubTst
, type, subType, va3, va4
from s2
order by conPri, dbSy, ab
)
select * from o
;
commit
}¢--- A540769.WK.SQL(ABUBDDL3) cre=2015-06-04 mod=2015-06-11-11.44.15 A540769 ---
-- select * from oa1p.vQZ045AbUbStat3 ; x where rz = 'RZZ' ;x;
set current sqlid = 'S100447';
drop view oa1p.vQZ046AbUbCa3 ;
create view oa1p.vQZ046AbUbCa3 as
with d (dt, x) as
(
select current date + 8 days, 0 from sysibm.sysDummy1
union all select dt - 1 days, x+1 from d where x < 25
)
, t as
(
select cast( timestamp(dt, strip(va2)||':00') as timestamp(0)) start
, r.*
from d join oa1p.tQZ046AbUbRule r
on r.type = 'cal' and r.subType not like 'trunc%'
)
, c1 as
(
select *
from t
where 0 < case when subType = 'wtZe'
then locate(dayOfWeek_iso(start), va1)
else raise_error(77701, 'cal bad subType ' || subType)
end
union all select trunc_timestamp(current timestamp, 'hh') start
, r.*
from oa1p.tQZ046AbUbRule r
where r.type = 'cal' and r.subType = 'truncHH'
union all select trunc_timestamp(current timestamp, 'hh')
+ 1 hour start, r.*
from oa1p.tQZ046AbUbRule r
where r.type = 'cal' and r.subType = 'truncHH'
union all select trunc_timestamp(current timestamp, 'hh')
- 1 hour start, r.*
from oa1p.tQZ046AbUbRule r
where r.type = 'cal' and r.subType = 'truncHH'
union all select trunc_timestamp(current timestamp, 'dd') start
, r.*
from oa1p.tQZ046AbUbRule r
where r.type = 'cal' and r.subType = 'truncDD'
union all select trunc_timestamp(current timestamp, 'dd')
+ 1 day start, r.*
from oa1p.tQZ046AbUbRule r
where r.type = 'cal' and r.subType = 'truncDD'
union all select trunc_timestamp(current timestamp, 'dd')
- 1 day start, r.*
from oa1p.tQZ046AbUbRule r
where r.type = 'cal' and r.subType = 'truncDD'
)
, c2 as
(
select c1.*
, case when strip(va3) like 'e%' then 'e' else 's' end tiOuTy
from c1
)
, c3 as
(
select c2.*
, midnight_seconds(time(
case when tiOuTy = 's' then strip(va3)
else strip(substr(strip(va3), 2)) end ||':00')) tiOuSecs
, case when cast(start as timestamp(0)) <= current timestamp
then 1 else 0 end past
from c2
)
, c as
(
select rule cal
, cast(start as timestamp(0)) start
, smallInt( (row_number() over(partition by rule, past
order by start desc) -1 ) * past
- (row_number() over(partition by rule, past
order by start asc)) * (1 - past)) seq
, tiOuTy, tiOuSecs
, va4 calVa4
from c3
)
select *
from c
where seq between -1 and 1
;
create view oa1p.vQZ045AbUbStat3 as
with a as
(
select rule ab
, type, subType
, char(va1, 3) rz
, char(va2, 4) dbSy
, va3, va4
from oa1p.tQZ046AbUbRule
where type in ('ab', 'abub', 'conn')
)
, c1 as
(
select rz, max(tst) tst
from oa1p.tQZ045AbUbEvent e
where ab = 'connect'
group by rz
)
, con as
(
select a.rz, e.tst conTst, e.event conEv, a.subType conPri
, ( select value(max(e.tst), current timestamp)
from oa1p.tQZ045AbUbEvent e
where ab = 'abub'
) abubTst
from c1
join a
on a.ab = 'connect' and a.type = 'conn' and a.rz = c1.rz
join oa1p.tQZ045AbUbEvent e
on e.ab = 'connect' and e.rz = c1.rz and e.tst = c1.tst
)
, b as
( -- join current next and previous calender
select ab, a.type, subType, rz, dbSy
, nx.start nxStart
, cu.start cuStart
, case when type = 'conn' then 'c'
when cu.tiOuTy is null then 'n'
else cu.tiOuTy end ct
, cu.tiouTy cuTiOuTy
, cu.tiouSecs cuTiOuSecs
, cu.calVa4
, pr.start prStart
, pr.tiouTy prTiOuTy
, pr.tiouSecs prTiOuSecs
, pr.start + pr.tiouSecs seconds prUntil
, va3, va4
from a
left join oa1p.vQZ046AbUbCa3 nx
on a.subType = nx.cal and nx.seq = -1
left join oa1p.vQZ046AbUbCa3 cu
on a.subType = cu.cal and cu.seq = 0
left join oa1p.vQZ046AbUbCa3 pr
on a.subType = pr.cal and pr.seq = 1
)
, tC as
( -- find timestamp of current Event
select b.*
, ( select max(e.tst)
from oa1p.tQZ045AbUbEvent e
where b.ab = e.ab and b.rz = e.rz and b.dbSy = e.dbSy
) cuTst
from b
)
, tP as
( -- find timestamp of previous Event
select tC.*
, ( select max(e.tst)
from oa1p.tQZ045AbUbEvent e
where tC.ab = e.ab and tC.rz = e.rz and tC.dbSy = e.dbSy
and e.tst < value(min(tC.cuStart, tC.cuTst)
, tC.cuTst)
and e.event <> '' and e.event not like '>%'
) prTst
, ( select max(e.tst)
from oa1p.tQZ045AbUbEvent e
where tC.ab = 'tecSv'
and tC.ab=e.ab and tC.rz = e.rz and tC.dbSy = e.dbSy
and strip(e.link) like 'DSN.ABUB.TECSV.%.CONSUM(%)'
) csTst
from tC
)
, e as -- join events
(
select tP.*
, cu.event cuEvent, cu.link cuLink
, pr.event prEvent, pr.link prLink
, cs.event csEvent, cs.link csLink
, conTst, conEv, conPri, abubTst
, cu.cont, cu.orTst
from tP
left join oa1p.tQZ045AbUbEvent cu
on tP.ab = cu.ab and tP.rz = cu.rz and tP.dbSy = cu.dbSy
and tP.cuTst = cu.tst
left join oa1p.tQZ045AbUbEvent pr
on tP.ab = pr.ab and tP.rz = pr.rz and tP.dbSy = pr.dbSy
and tP.prTst = pr.tst
left join oa1p.tQZ045AbUbEvent cs
on tP.ab = cs.ab and tP.rz = cs.rz and tP.dbSy = cs.dbSy
and tP.csTst = cs.tst
left join con on tP.rz = con.rz
)
, e2 as
( -- compute last finished event
select
case when cuEvent not like '>%' then cuEvent
when prEvent not like '>%' then prEvent
end fiEvent
, case when cuEvent not like '>%' then cuTst
when prEvent not like '>%' then prTst
end fiTst
, e.*
from e
)
, f as -- compute toTst: timeout timestamp
( -- compute timeout timestamp toTst
select case
when fiEvent is null then '0001-01-01-00.00.00'
when ct = 's' and fiTst >= cuStart then null
when ct = 's' and current timestamp
>= cuStart + cuTiOuSecs seconds
then cuStart + cuTiOuSecs seconds
when ct = 's' and fiTst >= prStart then null
when ct = 's' then prStart + prTiOuSecs seconds
when ct = 'e' and fiTst + cuTiOuSecs seconds
<= current timestamp then fiTst + cuTiOuSecs seconds
end toTst
, e2.*
from e2
)
/* ??????????????????????????????????
when ct = 's' then case
when cuEvent not like '>%' and cuTst >= cuStart then null
when cuStart + cuTiOuSecs seconds <= current timestamp
then cuStart + cuTiOuSecs seconds
when cuEvent not like '>%' and cuTst >= prStart then null
when prEvent not like '>%' and prTst >= prStart then null
else prStart + prTiOuSecs seconds
end
when ct = 'e' then case
when cuEvent not like '>%'
and cuTst + cuTiOuSecs seconds >= current timestamp
then null
when prEvent not like '>%'
and prTst + prTiOuSecs seconds >= current timestamp
then null
when cuTst + cuTiOuSecs seconds >= current timestamp
when cuStart + cuTiOuSecs seconds <= current timestamp
then cuStart + cuTiOuSecs seconds
when cuEvent not like '>%' and cuTst >= prStart then null
when prEvent not like '>%' and prTst >= prStart then null
else prStart + prTiOuSecs seconds
when cT = 's' and (cuEvent is null or cuEvent like '>%')
then cuStart+cuTiOuSecs seconds
when cT = 'e' and not (cuEvent is null or cuEvent like '>%')
then cuTst+cuTiOuSecs seconds
when cT = 'e'
then value(prTst + cuTiOuSecs seconds
, '0001-01-01-00.00.00')
end toTst
, e.*
from e
) ?????????????????????? */
, g as -- compute timeout: timeout text
( -- compute timeout timestamp toTst
select
case
when toTst is not null and (conEv is null
or conEv <> 'ok') then 'connTimeout'
when toTst is not null and conTst + cuTiOuSecs seconds
> current timestamp then 'connRestart'
when toTst is not null then 'timeout'
when cT = 's' and fiTst > cuStart + cuTiOuSecs seconds
then 'late'
when cT = 's' and fiTst < cuStart
and fiTst > prStart + prTiOuSecs seconds
then 'late'
when cT = 'e' and cuEvent not like '>%'
and prEvent not like '>%'
and cuTst > prTst + prTiOuSecs seconds
then 'late'
else ''
end timeout
, f.*
from f
)
, h as
( -- compute alarm and status
select substr(case
when fiEvent <> 'ok' then fiEvent
when timeout <> '' then timeout
when ab = 'tecSv' and rz = 'RZ2'
and dbSy in ('DBOF', 'DVBP') then 'prod'
else 'ok'
end, 1, 8) status
, case
when fiTst > abubTst then 'new'
when toTst > abubTst then 'new'
when toTst is null and nxStart > cuStart + 3 days
and cuTst < current timestamp - 1 day
then 'old' else ''
end alarm
, g.*
from g
order by conPri, rz, dbSy, ab
)
select rz, dbSy, ab
, alarm, status, timeout, cuEvent, cuTst, cuLink
, csEvent, csTst, csLink
, prEvent, prTst, prLink
, type, va3, va4
, cont, orTst, calVa4
, fiEvent, fiTst
, conTst, conEv, conPri, abubTst
, ct, nxStart
, cuStart, cuTiOuSecs, cuTiOuTy
, prStart, prTiOuSecs, prTiOuTy
from h
;
select * from oa1p.vQZ045AbUbStat3
}¢--- A540769.WK.SQL(ABUBDDX) cre=2014-05-15 mod=2014-05-15-09.09.53 A540769 ---
-- create view oa1p.vQZ045AbubState as
with r as
(
select cast( case when tiOuTy = 'e' then evTst else start end
+ tiOuSecs seconds as timestamp(0)) until
, r.*, c.*
from oa1p.vQZ045AbUbLast r
left join oa1p.vQZ046AbUbCur c
on r.type = 'ab' and r.subType = c.cal
)
, s as
(
select
case when event is null or evTst is null then 'timeout'
when cal is null then event
when evTst >= start and event in ('ok', 'err') then event
when evTst >= start and until > current timestamp then '>'
when (evTst >= prStart or tiOuTy = 'e')
and until > current timestamp
and event in ('ok', 'err') then event
when conEv = 'err' then 'conTimeout'
when conTst + tiOuSecs seconds > current timestamp
then 'conRestart'
else 'timeout'
end state
, r.*
from r
)
, o as
(
select rz, dbSy, ab
, char(case when type = 'conn' and conTst > abubTst then 'a'
when type = 'conn' or state in ('ok', '>') then ''
when state in ('conTimeout', 'conRestart') then 'c'
when state = 'timeout' and (until <= abubTst
or until is null or abubTst is null) then ''
when state <> 'timeout' and (evTst <= abubTst
or evTst is null or abubTst is null) then ''
else 'a'
end, 1) alarm
, char(state, 10) state
, event, evTst, orTst, link, cont
, start, until, cal, tiOuTy, tiOuSecs, calVa4, prStart
, conEv, conTst
, abubTst
, type, subType, va3, va4
from s
order by conPri, dbSy, ab
)
select * from o
;
commit
;
select * from oa1p.vQZ045AbubState ;
sele
}¢--- A540769.WK.SQL(ABUBDD1) cre=2014-05-30 mod=2014-06-02-08.43.33 A540769 ---
with r as
(
select cast( case when tiOuTy = 'e' then evTst else start end
+ tiOuSecs seconds as timestamp(0)) until
, r.*, c.*
from oa1p.vQZ045AbUbLast r
left join oa1p.vQZ046AbUbCur c
on r.type = 'ab' and r.subType = c.cal
)
, s1 as
(
select -- s1 = timout or alarmTimeout (new)
case when event is null or evTst is null then ' t'
when cal is null then ''
when evTst >= start and event not like '>%' then ''
when until < abubTst then ' t'
when until < current timestamp then 'at'
when evTst >= start or tiOuTy = 'e' then ''
when evTst < prStart or event like '>%' then ' t'
else ''
end s1
, r.*
from r
)
, s2 as
(
select
case
when type = 'conn' then -- connection: alarm?
case when conTst is null then ' timeout'
when conTst >= abubTst then 'a' || event
else ' ' || event
end
when s1 = '' then -- event: in progress or alarm?
case when event like '>%' then ' >'
when event = 'ok' or evTst <= abubTst then ' '||event
else 'a'||event
end
else -- timeout: is connection the reason?
case when conEv is null or conEv <> 'ok' then 'cconTimeout'
when conTst + tiOuSecs seconds > current timestamp
then 'cconRestart'
else left(s1, 1) || 'timeout'
end
end s2
, s1.*
from s1
)
, o as
(
select rz, dbSy, ab
, substr(s2, 1, 1) alarm
, substr(s2, 2, 10) state
, s1
, event, evTst, orTst, link, cont
, start, until, cal, tiOuTy, tiOuSecs, calVa4, prStart
, conEv, conTst
, abubTst
, type, subType, va3, va4
from s2
order by conPri, dbSy, ab
)
select o.rz, o.dbSy, o.ab, o.alarm, v.alarm, o.state, v.state, o.s1
, o.*, v.*
from o full outer join oa1p.vQZ045AbubState v
on o.rz = v.rz and o.dbSy = v.dbSy and o.ab = v.ab
;
commit
}¢--- A540769.WK.SQL(ABUBEVNT) cre=2015-06-02 mod=2015-06-02-16.42.52 A540769 ---
select count(*), event
from OA1P.TQZ045ABUBEVENT
group by event
}¢--- A540769.WK.SQL(ABUBRULE) cre=2014-10-06 mod=2014-10-06-17.37.32 A540769 ---
update oa1p.tqz046AbubRule
set va4 = trim(left(va4, 65))
where rule like 'logE2%'
and type = 'code'
;
select length(va4), hex(va4)
, trim(left(va4, 65))
, r.*
from oa1p.tqz046AbubRule r
where rule like 'logE2%'
and type = 'code'
;
commit
;
}¢--- A540769.WK.SQL(ABUBSEHI) cre=2014-09-15 mod=2014-09-15-12.37.20 A540769 ---
select *
from oa1p.tqz046abubRule
where va1 like 'RQ%'
}¢--- A540769.WK.SQL(ABUBSEL) cre=2013-11-20 mod=2016-08-24-08.10.24 A540769 ---
--select * from oa1p.vQZ045AbUbState
--;
select * from oa1p.tQZ045AbUbEvent
where ab = 'mvExt' and rz = 'RZZ' -- and event <> '>'
and tst > current timestamp - 9 days
order by tst desc
fetch first 100 rows only;
; x;
;x;
delete from oa1p.tQZ045AbUbEvent
where ab = 'tstXDoc'
;
commit;
;x;
select * from oa1p.tQZ045AbUbEvent
where ab = 'mvExt'
and tst > current timestamp -16 days
-- and rz = 'RZ2' and dbSy = 'DVBP'
order by rz, tst desc
; x;
xpdate oa1p.tQZ046AbUbRule r
set va4 = strip(left(va4, 46))
where type = 'code' and rule = 'logEx'
;
select *
from oa1p.tQZ046AbUbRule r
where type = 'code' and rule = 'logEx'
;
commit
;x;
select * from oa1p.tQZ045AbUbEvent
where ab = 'logEx'
and tst > current timestamp -16 days
order by tst desc
; x;
select * from oa1p.vQZ045AbUbState
;x;
select * from oa1p.tQZ045AbUbEvent
where rz = 'RQ2' and ab = 'logE2'
and tst > current timestamp - 6 days
order by tst desc
; x;
select * from oa1p.vQZ046AbUbCur;
where (state <> 'ok' and (ab <> 'ddlCon'
or evTst > current timestamp - 40 hours))
or (rz = 'RZ2' and dbSy in ('DBOF', 'DVBP'))
or alarm <> ''
;
select *
from oa1p.tQZ045AbUbEvent e
order by tst desc
fetch first 100 rows only
;x;
, n as
(
select e.*, c.start, c.until
, row_number() over(partition by e.ab, e.rz, e.dbSy
order by start asc) nRn
from e
left join oa1p.vQZ046AbUbCal c
on e.type = 'ab' and e.subType = c.cal
and c.start > value(e.evTst, '2000-01-01-00.00.00')
where eRn = 1
)
, m as
(
select n.*
, case when conEv <> 'err'
then conTst + (until - start) else null end conUntil
from n
where nRn = 1
)
select *
from oa1p.vQZ046AbUbCur c
order by cal, start desc
;x;
with f as
(
select c.*, case when start > current timestamp then 1 else 0 end isFut
from oa1p.vQZ046AbUbCal c
)
select f.*
, case when isFut = 1
then row_number() over(partition by cal, isFut order by start asc)
else 1 - row_number() over(partition by cal, isFut order by start desc)
end rr
from f
order by cal, start desc
;x;
select f.*
, row_number() over(partition by cal, isFut order by start asc) rA
, row_number() over(partition by cal, isFut order by start desc) rD
from f
order by cal, start desc
;x;
select *
from oa1p.vQZ045AbUbstate
where state <> 'ok' or alarm <> '' or state is null
-- where type = 'ab'
;
select *
from oa1p.vQZ045AbUbState
where state <> 'ok' or alarm <> ''
;;;;
where ab <> 'connect' or state is not null
;;,
select *
from oa1p.vQZ045AbUbState
;;,
with l as
(
select *
from oa1p.tQZ045AbUbEvent e
where e.tst
= (select f.tst
from oa1p.tQZ045AbUbEvent f
where e.ab = f.ab and e.rz = f.rz
and e.dbSy = f.dbSy
order by tst desc
fetch first 1 row only
)
)
, r as
(
select r.rule ab, char(r.va2, 3) rz, char(r.va3, 4) dbSy
, l.tst, l.event, l.link, r.va1 cal
from oa1p.TQZ046AbUbRule r left join l
on r.rule = l.ab and r.va2 = l.rz and r.va3 = l.dbSy
where r.typ = 'ab'
)
, n as
(
select r.*, c.start, c.until
, row_number() over(partition by r.ab, r.rz, r.dbSy
order by start asc) rn
from r left join oa1p.vQZ046Cal c
on r.cal = c.cal and c.start > value(r.tst, '2000-01-01-00.00.00')
)
select ab, rz, dbSy
, case when until < current timestamp then 'timeout'
else event end state
, event
, cast(tst as timestamp(0)) tst
, cast(start as timestamp(0)) start
, cast(until as timestamp(0)) until
, link, cal
from n
where rn = 1
;;;
select ab, rz, dbSy, tst, event
c.start, c.until, link, cal
from r left join
;;;
select * FROM L;;;;
from oa1p.vQZ046AbUbEvent
where
select *
from oa1p.vQZ046Cal
order by cal, start desc
;;;
with d (dt, x) as
(
select current date, 0 from sysibm.sysDummy1
union all select dt- 1 day, x+1 from d where x < 5
)
, t as
(
select timestamp(dt, strip(va2) || ':00') start
, timestamp(dt, strip(va2) || ':00')
+ (time(strip(va3) || ':00') - time('00:00:00')) until
, r.*
from d join oa1p.tQZ046AbUbRule r
on r.typ = 'cal'
)
, s as
(
select case when sub = 'wtZe' then locate(dayOfWeek_iso(start), va1)
else raise_error(77701, 'cal bad sub ' || sub)
end sel
, t.*
from t
where start between current timestamp - 5 days
and current timestamp
)
select rule cal, start, until
from s
where sel > 0
order by cal, start desc
;;;
, d2 as
(
select timestamp(dt, tStart) start
, timestamp(dt, tStart) + len stop
, d1.*,r1.*
from d1,join r1
)
select * from d2 order by start desc, ab;;;
, case when sub = 'wtZe' then locate(dayOfWeek_iso(start), va1)
else raise_error(77701, 'cal bad sub ' || sub)
end sel
select dayOfWeek_iso(start)
, locate(dayOfWeek_iso(start), va1)
, start + (hour(len) * 60 + minute(len)) minutes stop
, t.*
from t
where locate(dayOfWeek_iso(start), va1) > 0
order by start desc
}¢--- A540769.WK.SQL(ABUBSELC) cre=2015-06-03 mod=2015-06-04-13.27.26 A540769 ---
/*
select * from oa1p.vQZ045AbUbState
-- order by evTst desc
; x; */
set current sqlid = 'S100447';
create view oa1p.vQZ045AbUbStat3 as
with a as
(
select rule ab
, type, subType
, char(va1, 3) rz
, char(va2, 4) dbSy
, va3, va4
from oa1p.tQZ046AbUbRule
where type in ('ab', 'abub', 'conn')
)
, c1 as
(
select rz, max(tst) tst
from oa1p.tQZ045AbUbEvent e
where ab = 'connect'
group by rz
)
, con as
(
select a.rz, e.tst conTst, e.event conEv, a.subType conPri
, ( select value(max(e.tst), current timestamp)
from oa1p.tQZ045AbUbEvent e
where ab = 'abub'
) - 2 hour abubTst
from c1
join a
on a.ab = 'connect' and a.type = 'conn' and a.rz = c1.rz
join oa1p.tQZ045AbUbEvent e
on e.ab = 'connect' and e.rz = c1.rz and e.tst = c1.tst
)
, b as
( -- join current next and previous calender
select ab, a.type, subType, rz, dbSy
, nx.start nxStart
, cu.start cuStart
, case when type = 'conn' then 'c'
when cu.tiOuTy is null then 'n'
else cu.tiOuTy end ct
, cu.tiouTy cuTiOuTy
, cu.tiouSecs cuTiOuSecs
, pr.start prStart
, pr.tiouTy prTiOuTy
, pr.tiouSecs prTiOuSecs
, pr.start + pr.tiouSecs seconds prUntil
, va3, va4
from a
left join oa1p.vQZ046AbUbCa3 nx
on a.subType = nx.cal and nx.seq = -1
left join oa1p.vQZ046AbUbCa3 cu
on a.subType = cu.cal and cu.seq = 0
left join oa1p.vQZ046AbUbCa3 pr
on a.subType = pr.cal and pr.seq = 1
)
, tC as
( -- find timestamp of current Event
select b.*
, ( select max(e.tst)
from oa1p.tQZ045AbUbEvent e
where b.ab = e.ab and b.rz = e.rz and b.dbSy = e.dbSy
) cuTst
from b
)
, tP as
( -- find timestamp of previous Event
select tC.*
, ( select max(e.tst)
from oa1p.tQZ045AbUbEvent e
where tC.ab = e.ab and tC.rz = e.rz and tC.dbSy = e.dbSy
and e.tst < case tC.ct when 's' then tC.cuStart
else tC.cuTst end
and e.tst >= case tC.ct when 's' then tC.prStart
else '0001-01-01-00.00.00' end
and (tC.ct <> 'e' or e.event not like '<')
) prTst
, ( select max(e.tst)
from oa1p.tQZ045AbUbEvent e
where tC.ab = 'tecSv'
and tC.ab=e.ab and tC.rz = e.rz and tC.dbSy = e.dbSy
and strip(e.link) like 'DSN.ABUB.TECSV.%.CONSUM(%)'
) csTst
from tC
)
, e as
(
select tP.*
, cu.event cuEvent, cu.link cuLink
, pr.event prEvent, pr.link prLink
, cs.event csEvent, cs.link csLink
, conTst, conEv, conPri, abubTst
, case when conEv is null or conEv <> 'ok' then ' connTimeout'
when conTst + cuTiOuSecs seconds > current timestamp
then ' connRestarTO' else ' timeout' end conTO
from tP
left join oa1p.tQZ045AbUbEvent cu
on tP.ab = cu.ab and tP.rz = cu.rz and tP.dbSy = cu.dbSy
and tP.cuTst = cu.tst
left join oa1p.tQZ045AbUbEvent pr
on tP.ab = pr.ab and tP.rz = pr.rz and tP.dbSy = pr.dbSy
and tP.prTst = pr.tst
left join oa1p.tQZ045AbUbEvent cs
on tP.ab = cs.ab and tP.rz = cs.rz and tP.dbSy = cs.dbSy
and tP.csTst = cs.tst
left join con on tP.rz = con.rz
)
, f as
( -- describe current state
select rz, dbSy, ab
, varchar(strip(value (cuEvent, '')
|| case cT
when 's' then
case
when cuEvent is null or cuEvent like '>%' then
case
when abubTst > cuStart+cuTiOuSecs seconds
then conTO
when current timestamp > cuStart+cuTiOuSecs seconds
then conTo || ' new' else ''
end
else case when cuTst > cuStart+cuTiOuSecs seconds
then ' late' else '' end
|| case when cuTst>abubTst then ' new' else '' end
end
when 'e' then
case
when cuEvent is null or cuEvent like '>%' then
case
when abubTst > prTst+prTiOuSecs seconds
then conTo
when current timestamp > prTst+prTiOuSecs seconds
then conTo || ' new' else ''
end
when cuTst + cuTiOuSecs seconds < abubTst
then conTO
when cuTst + cuTiOuSecs seconds < current timestamp
then conTO || ' new'
else case when prtst + prTiOuSecs seconds < cuTst
then ' late' else '' end
|| case when cutst > abubTst then ' new' else '' end
end
else
case when cuTst is null then ' timeout'
when cuTst > abubTst then ' new'
else '' end
end), 20) cuSta
, cuTst, cuLink
, prEvent, prTst, prLink
, csEvent, csTst, csLink
, conTst, conEv, conPri, cT, conTO, abubTst
, cuStart, cuTiOuSecs, cuTiOuTy
, prStart, prTiOuSecs, prTiOuTy
from e
order by conPri, rz, dbSy, ab
)
select * from f
;
select * from oa1p.vQZ045AbUbStat3
; commit
; x;
select * from tP
order by ab, rz, dbSy
;x;
, s3 as
(
select s2.*
, case when prTiOuTy = 'e' then e1Tst
when type = 'conn' then e1Tst
else cuStart
end e2Start
, case when prTiOuTy = 'e' then null
when type = 'conn' then null
else prStart + prTiouSecs seconds
end e2Until
from s2
)
select * from s3;
rollback;
and pr.start <= e.tst
) prTst
, s as
(
select ab, r.type, subType, rz, dbSy
, nx.start nxStart
, cu.start cuStart
, cu.tiouTy cuTiOuTy
, cu.tiouSecs cuTiOuSecs
, cu.start + cu.tiouSecs seconds cuUntil
, (select max(e.tst)
from oa1p.tQZ045AbUbEvent e
where r.ab = e.ab and r.rz = e.rz and r.dbSy = e.dbSy
and e.tst >=
case when cu.tiOuTy = 'e'
then current timestamp - cu.tiOuSecs seconds
when r.type = 'conn'
then current timestamp - 10 years
else cu.start
end
) cuTst
, pr.start prStart
, pr.tiouTy prTiOuTy
, pr.tiouSecs prTiOuSecs
, pr.start + pr.tiouSecs seconds prUntil
, (select max(e.tst)
from oa1p.tQZ045AbUbEvent e
where r.ab = e.ab and r.rz = e.rz and r.dbSy = e.dbSy
and cu.start > e.tst
and pr.start <= e.tst
) prTst
, va3, va4
from r
left join oa1p.vQZ046AbUbCa3 nx
on r.subType = nx.cal and nx.seq = -1
left join oa1p.vQZ046AbUbCa3 cu
on r.subType = cu.cal and cu.seq = 0
left join oa1p.vQZ046AbUbCa3 pr
on r.subType = pr.cal and pr.seq = 1
)
select
value(cu.event, '')
|| case when s.type = 'conn' then ''
when cuTiOuTy = 'e' and cu.event is null then ' timeout'
when current timestamp <= cuUntil then ''
when cu.event is null then ' timeout'
when cu.event like '>%' then ' timeout'
when cu.tst <= cuUntil then ''
else ' prte'
end cuState
, s.*, cu.*, pr.*
from s
left join oa1p.tQZ045AbUbEvent cu
on s.ab = cu.ab and s.rz = cu.rz and s.dbSy = cu.dbSy
and cuTst = cu.tst
left join oa1p.tQZ045AbUbEvent pr
on s.ab = pr.ab and s.rz = pr.rz and s.dbSy = pr.dbSy
and prTst = pr.tst
order by s.rz, s.dbSy, s.ab
;
rollback
;
, s as
(
select r.*
, (select max(e.tst)
from oa1p.tQZ045AbUbEvent e
where r.ab = e.ab and r.rz = e.rz and r.dbSy = e.dbSy
) evTst
)
, l as
rollback;
set current sqlid = 'S100447';
drop view oa1p.vQZ046AbUbCa3 ;
create view oa1p.vQZ046AbUbCa3 as
with d (dt, x) as
(
select current date + 8 days, 0 from sysibm.sysDummy1
union all select dt - 1 days, x+1 from d where x < 18
)
, t as
(
select cast( timestamp(dt, strip(va2)||':00') as timestamp(0)) start
, r.*
from d join oa1p.tQZ046AbUbRule r
on r.type = 'cal' and r.subType not like 'trunc%'
)
, c1 as
(
select *
from t
where 0 < case when subType = 'wtZe'
then locate(dayOfWeek_iso(start), va1)
else raise_error(77701, 'cal bad subType ' || subType)
end
union all select trunc_timestamp(current timestamp, 'hh') start
, r.*
from oa1p.tQZ046AbUbRule r
where r.type = 'cal' and r.subType = 'truncHH'
union all select trunc_timestamp(current timestamp, 'hh')
+ 1 hour start, r.*
from oa1p.tQZ046AbUbRule r
where r.type = 'cal' and r.subType = 'truncHH'
union all select trunc_timestamp(current timestamp, 'hh')
- 1 hour start, r.*
from oa1p.tQZ046AbUbRule r
where r.type = 'cal' and r.subType = 'truncHH'
union all select trunc_timestamp(current timestamp, 'dd') start
, r.*
from oa1p.tQZ046AbUbRule r
where r.type = 'cal' and r.subType = 'truncDD'
union all select trunc_timestamp(current timestamp, 'dd')
+ 1 day start, r.*
from oa1p.tQZ046AbUbRule r
where r.type = 'cal' and r.subType = 'truncDD'
union all select trunc_timestamp(current timestamp, 'dd')
- 1 day start, r.*
from oa1p.tQZ046AbUbRule r
where r.type = 'cal' and r.subType = 'truncDD'
)
, c2 as
(
select c1.*
, case when strip(va3) like 'e%' then 'e' else 's' end tiOuTy
from c1
)
, c3 as
(
select c2.*
, midnight_seconds(time(
case when tiOuTy = 's' then strip(va3)
else strip(substr(strip(va3), 2)) end ||':00')) tiOuSecs
, case when cast(start as timestamp(0)) <= current timestamp
then 1 else 0 end past
from c2
)
, c as
(
select rule cal
, cast(start as timestamp(0)) start
, smallInt( (row_number() over(partition by rule, past
order by start desc) -1 ) * past
- (row_number() over(partition by rule, past
order by start asc)) * (1 - past)) seq
, tiOuTy, tiOuSecs
, va4 calVa4
from c3
)
select *
from c
where seq between -1 and 1
;
select * from oa1p.vQZ046AbUbCa3
order by cal, start desc
;
commit;x;
}¢--- A540769.WK.SQL(ABUBSE2) cre=2014-04-29 mod=2014-04-29-12.11.08 A540769 ---
select * from oa1p.vqz046AbubCal
where cal = 'logEx'
;
select * from oa1p.vqz046AbubCur
where cal = 'logEx'
;
select * from oa1p.vQZ045AbubState -- where rz = 'RR2'
;x;
with r as
-- create view oa1p.vQZ046AbUbCur as
with c as
(
select c.*
, row_number() over (partition by cal order by start desc) rn
from oa1p.vQZ046AbUbCal c
where start <= current timestamp
)
select a.cal, a.start, a.tiOuTy, a.tiOuSecs, a.calVa4
, b.start prStart
from c a left join c b on a.cal = b.cal and b.rn = 2
where a.rn = 1
and a.cal = 'logEx'
;
-- create view oa1p.vQZ045AbubState as
with r as
(
select cast( case when tiOuTy = 'e' then evTst else start end
+ tiOuSecs seconds as timestamp(0)) until
, r.*, c.*
from oa1p.vQZ045AbUbLast r
left join oa1p.vQZ046AbUbCur c
on r.type = 'ab' and r.subType = c.cal
)
, s as
(
select
case when event is null then 'timeout'
when cal is null then event
when evTst >= start and event in ('ok', 'err') then event
when evTst >= start and until > current timestamp then '>'
when evTst >= prStart and until > current timestamp
and event in ('ok', 'err') then event
when conEv = 'err' then 'conTimeout'
when conTst + tiOuSecs seconds > current timestamp
then 'conRestart'
else 'timeout'
end state
, r.*
from r
)
, o as
(
select rz, dbSy, ab
, char(case when type = 'conn' and conTst > abubTst then 'a'
when type = 'conn' or state in ('ok', '>') then ''
when state in ('conTimeout', 'conRestart') then 'c'
when evTst is Null or evTst <= abubTst then ''
else 'a'
end, 1) alarm
, char(state, 10) state
, event, evTst, orTst, link, cont
, start, until, cal, tiOuTy, tiOuSecs, calVa4
, conEv, conTst
, abubTst
, type, subType, va3, va4
from s
order by conPri, dbSy, ab
)
select * from o
where rz = 'RR2' and ab like 'logE%'
;
commit
}¢--- A540769.WK.SQL(ADBCHG) cre=2008-11-04 mod=2008-11-04-11.36.13 F540769 ----
select count(*)
from s100447.adbChg
;
select count(*), status
from s100447.adbChg
group by status
;
select count(*), status, left(char(alteredts), 7)
from s100447.adbChg
group by status, left(char(alteredts), 7)
order by 3 desc, 2 asc
;
}¢--- A540769.WK.SQL(ADBCLEAN) cre=2008-01-11 mod=2008-01-11-13.21.42 F540769 ---
select 'ADBCHK ', count(*) from adb.ADBCHK 00010000
union all select 'ADBCHKPT', count(*) from adb.ADBCHKPT 00020000
union all select 'ADBHOLD ', count(*) from adb.ADBHOLD 00030000
union all select 'ADBPART ', count(*) from adb.ADBPART 00040000
; 00050000
delete from adb.ADBCHKPT where timestmp < current timestamp - 10 days 00060001
; 00061001
select 'ADBCHK ', count(*) from adb.ADBCHK 00070001
union all select 'ADBCHKPT', count(*) from adb.ADBCHKPT 00080001
union all select 'ADBHOLD ', count(*) from adb.ADBHOLD 00090001
union all select 'ADBPART ', count(*) from adb.ADBPART 00100001
; 00110001
commit 00120002
; 00130001
}¢--- A540769.WK.SQL(ADBHOLD) cre=2008-01-11 mod=2008-01-11-13.22.49 F540769 ---
select coalesce(c.userid, h.userid), 00001011
coalesce(c.worklist, h.worklist), 00001111
c.COMITNUM coNu,c.COMMAND com, c.COMMAND_RESTART coRe,c.TIMESTMP,00002009
count(*), h.stATUS, left(h.HOLDVAR, 10) 00003012
from adb.adbchkpt c 00010004
full outer join adb.adbhold h 00010104
on c.userid = h.userid and c.worklist = h.worklist 00010204
group by c.userid, h.userid, c.worklist, h.worklist, 00010312
c.COMITNUM, c.COMMAND, c.COMMAND_RESTART,c.TIMestmp, 00010412
h.status, left(h.HOLDVAR, 10) 00010512
order by 1, 2, 8, 9 00010612
; 00010704
SELECT count(*), c.timestmp, h.userid, h.worklist, h.suffix, 00010815
h.stATUS, left(h.HOLDVAR, 10) 00010915
FROM adb.adbhold h, adb.ADBCHKPT c 00011013
where h.userid = c.userid and h.worklist = c.worklist 00011113
and h.suffix = c.suffix 00011216
group by c.timestmp, h.userid, h.worklist, h.suffix, 00011315
h.stATUS, left(h.HOLDVAR, 10) 00011415
order by 7, 1 desc 00011518
; 00011615
SELECT * FROM ADB.ADBCHKPT; 00011813
SELECT * FROM ADB.ADBHOLD 00012013
-- WHERE WORKLIST = 'DB2BATCH' 00020002
}¢--- A540769.WK.SQL(ADBPRE) cre=2008-11-13 mod=2008-11-13-13.45.41 F540769 ----
select count(*)
from s100447.adbcprereq
;
select count(*), c
from
(
select count(*) c, changeid
from s100447.adbcprereq
group by changeid
) c
group by c
order by c desc
;
x
select count(*), status
from s100447.adbChg
group by status
;
select count(*), status, left(char(alteredts), 7)
from s100447.adbChg
group by status, left(char(alteredts), 7)
order by 3 desc, 2 asc
;
}¢--- A540769.WK.SQL(ADBREF) cre=2008-12-12 mod=2008-12-12-14.21.35 F540769 ----
delete
from S100447.ADBCHGSR
where changeid > 3600
;
SELECT *
from S100447.ADBCHGSR
where name like 'TDG129%'
}¢--- A540769.WK.SQL(ADBVERS) cre=2007-02-23 mod=2007-06-25-11.16.00 F540769 ---
select v.versionId,
char(left(strip(v.owner) || '.' || strip(v.name), 30), 30),
char(left(strip(l.qualifier) || '.' || strip(l.name), 30), 30),
l.qCnt,
v.createdTs
from s100447.adbcVersion v
left join (
select versionId, qualifier, name,
count(*) qCnt
from s100447.adbcVerLines
group by versionId, qualifier, name
) l
on v.versionId = l.versionId
where v.owner = 'A540769' and v.name like 'TWK301.TRG%'
order by v.owner, v.name
;
x
select v.versionId,
char(strip(v.owner) || '.' || strip(v.name), 30),
l.verLinSeq,
l.operation,
char(strip(l.qualifier) || '.' || strip(l.name), 30),
l.rowType,
createdTs
from s100447.adbcVersion v
left join s100447.adbcVerLines l
on v.versionId = l.versionId
where owner = 'A540769'
order by v.versionId, l.verLinSeq
}¢--- A540769.WK.SQL(ALIAS) cre=2012-05-25 mod=2012-05-25-15.24.48 A540769 -----
$#@
$<#¢
TPC014A1
TPC019A1
TPC020A1
TPC021A1
TPC022A1
TPC023A1
TPC024A1
TPC025A1
TPC026A1
TPC027A1
TPC029A1
TPC030A1
TPC031A1
TPC040A1
TPC040H1
TPC041A1
TPC041H1
TPC050A1
TPC051A1
TPC052A1
TPC053A1
TPC060A1
TPC061A1
TPC062A1
TPC070A1
TPC089A1
TPC090A1
TPC099A1
TPC100A1
TPC101A1
TPC103A1
TPC104A1
TPC105A1
TPC106A1
TPC107A1
TPC112A1
TPC113A1
TPC114A1
TPC145A1
TPC145H1
TPC146A1
TPC146H1
TPC147A1
TPC147H1
TPC150A1
TPC151A1
TPC152A1
TPC153A1
TPC154A1
VPC014A1A
VPC019A1A
VPC020A1A
VPC021A1A
VPC022A1A
VPC023A1A
VPC024A1A
VPC025A1A
VPC026A1A
VPC027A1A
VPC029A1A
VPC030A1A
VPC031A1A
VPC040A1A
VPC041A1A
VPC050A1A
VPC051A1A
VPC052A1A
VPC053A1A
VPC060A1A
VPC061A1A
VPC062A1A
VPC070A1A
VPC089A1A
VPC090A1A
VPC099A1A
VPC100A1A
VPC101A1A
VPC103A1A
VPC104A1A
VPC105A1A
VPC106A1A
VPC107A1A
VPC112A1A
VPC113A1A
VPC114A1A
VPC145A1A
VPC146A1A
VPC147A1A
VPC150A1A
VPC151A1A
VPC152A1A
VPC153A1A
VPC154A1A
$! $@for tb $@¢
$$ CREATE create alias OA1P14.$tb for OA1P.$tb ;
$!
$#out 20120525 15:23:20
CREATE create alias OA1P14.TPC014A1 for OA1P.TPC014A1 ;
CREATE create alias OA1P14.TPC019A1 for OA1P.TPC019A1 ;
CREATE create alias OA1P14.TPC020A1 for OA1P.TPC020A1 ;
CREATE create alias OA1P14.TPC021A1 for OA1P.TPC021A1 ;
CREATE create alias OA1P14.TPC022A1 for OA1P.TPC022A1 ;
CREATE create alias OA1P14.TPC023A1 for OA1P.TPC023A1 ;
CREATE create alias OA1P14.TPC024A1 for OA1P.TPC024A1 ;
CREATE create alias OA1P14.TPC025A1 for OA1P.TPC025A1 ;
CREATE create alias OA1P14.TPC026A1 for OA1P.TPC026A1 ;
CREATE create alias OA1P14.TPC027A1 for OA1P.TPC027A1 ;
CREATE create alias OA1P14.TPC029A1 for OA1P.TPC029A1 ;
CREATE create alias OA1P14.TPC030A1 for OA1P.TPC030A1 ;
CREATE create alias OA1P14.TPC031A1 for OA1P.TPC031A1 ;
CREATE create alias OA1P14.TPC040A1 for OA1P.TPC040A1 ;
CREATE create alias OA1P14.TPC040H1 for OA1P.TPC040H1 ;
CREATE create alias OA1P14.TPC041A1 for OA1P.TPC041A1 ;
CREATE create alias OA1P14.TPC041H1 for OA1P.TPC041H1 ;
CREATE create alias OA1P14.TPC050A1 for OA1P.TPC050A1 ;
CREATE create alias OA1P14.TPC051A1 for OA1P.TPC051A1 ;
CREATE create alias OA1P14.TPC052A1 for OA1P.TPC052A1 ;
CREATE create alias OA1P14.TPC053A1 for OA1P.TPC053A1 ;
CREATE create alias OA1P14.TPC060A1 for OA1P.TPC060A1 ;
CREATE create alias OA1P14.TPC061A1 for OA1P.TPC061A1 ;
CREATE create alias OA1P14.TPC062A1 for OA1P.TPC062A1 ;
CREATE create alias OA1P14.TPC070A1 for OA1P.TPC070A1 ;
CREATE create alias OA1P14.TPC089A1 for OA1P.TPC089A1 ;
CREATE create alias OA1P14.TPC090A1 for OA1P.TPC090A1 ;
CREATE create alias OA1P14.TPC099A1 for OA1P.TPC099A1 ;
CREATE create alias OA1P14.TPC100A1 for OA1P.TPC100A1 ;
CREATE create alias OA1P14.TPC101A1 for OA1P.TPC101A1 ;
CREATE create alias OA1P14.TPC103A1 for OA1P.TPC103A1 ;
CREATE create alias OA1P14.TPC104A1 for OA1P.TPC104A1 ;
CREATE create alias OA1P14.TPC105A1 for OA1P.TPC105A1 ;
CREATE create alias OA1P14.TPC106A1 for OA1P.TPC106A1 ;
CREATE create alias OA1P14.TPC107A1 for OA1P.TPC107A1 ;
CREATE create alias OA1P14.TPC112A1 for OA1P.TPC112A1 ;
CREATE create alias OA1P14.TPC113A1 for OA1P.TPC113A1 ;
CREATE create alias OA1P14.TPC114A1 for OA1P.TPC114A1 ;
CREATE create alias OA1P14.TPC145A1 for OA1P.TPC145A1 ;
CREATE create alias OA1P14.TPC145H1 for OA1P.TPC145H1 ;
CREATE create alias OA1P14.TPC146A1 for OA1P.TPC146A1 ;
CREATE create alias OA1P14.TPC146H1 for OA1P.TPC146H1 ;
CREATE create alias OA1P14.TPC147A1 for OA1P.TPC147A1 ;
CREATE create alias OA1P14.TPC147H1 for OA1P.TPC147H1 ;
CREATE create alias OA1P14.TPC150A1 for OA1P.TPC150A1 ;
CREATE create alias OA1P14.TPC151A1 for OA1P.TPC151A1 ;
CREATE create alias OA1P14.TPC152A1 for OA1P.TPC152A1 ;
CREATE create alias OA1P14.TPC153A1 for OA1P.TPC153A1 ;
CREATE create alias OA1P14.TPC154A1 for OA1P.TPC154A1 ;
CREATE create alias OA1P14.VPC014A1A for OA1P.VPC014A1A ;
CREATE create alias OA1P14.VPC019A1A for OA1P.VPC019A1A ;
CREATE create alias OA1P14.VPC020A1A for OA1P.VPC020A1A ;
CREATE create alias OA1P14.VPC021A1A for OA1P.VPC021A1A ;
CREATE create alias OA1P14.VPC022A1A for OA1P.VPC022A1A ;
CREATE create alias OA1P14.VPC023A1A for OA1P.VPC023A1A ;
CREATE create alias OA1P14.VPC024A1A for OA1P.VPC024A1A ;
CREATE create alias OA1P14.VPC025A1A for OA1P.VPC025A1A ;
CREATE create alias OA1P14.VPC026A1A for OA1P.VPC026A1A ;
CREATE create alias OA1P14.VPC027A1A for OA1P.VPC027A1A ;
CREATE create alias OA1P14.VPC029A1A for OA1P.VPC029A1A ;
CREATE create alias OA1P14.VPC030A1A for OA1P.VPC030A1A ;
CREATE create alias OA1P14.VPC031A1A for OA1P.VPC031A1A ;
CREATE create alias OA1P14.VPC040A1A for OA1P.VPC040A1A ;
CREATE create alias OA1P14.VPC041A1A for OA1P.VPC041A1A ;
CREATE create alias OA1P14.VPC050A1A for OA1P.VPC050A1A ;
CREATE create alias OA1P14.VPC051A1A for OA1P.VPC051A1A ;
CREATE create alias OA1P14.VPC052A1A for OA1P.VPC052A1A ;
CREATE create alias OA1P14.VPC053A1A for OA1P.VPC053A1A ;
CREATE create alias OA1P14.VPC060A1A for OA1P.VPC060A1A ;
CREATE create alias OA1P14.VPC061A1A for OA1P.VPC061A1A ;
CREATE create alias OA1P14.VPC062A1A for OA1P.VPC062A1A ;
CREATE create alias OA1P14.VPC070A1A for OA1P.VPC070A1A ;
CREATE create alias OA1P14.VPC089A1A for OA1P.VPC089A1A ;
CREATE create alias OA1P14.VPC090A1A for OA1P.VPC090A1A ;
CREATE create alias OA1P14.VPC099A1A for OA1P.VPC099A1A ;
CREATE create alias OA1P14.VPC100A1A for OA1P.VPC100A1A ;
CREATE create alias OA1P14.VPC101A1A for OA1P.VPC101A1A ;
CREATE create alias OA1P14.VPC103A1A for OA1P.VPC103A1A ;
CREATE create alias OA1P14.VPC104A1A for OA1P.VPC104A1A ;
CREATE create alias OA1P14.VPC105A1A for OA1P.VPC105A1A ;
CREATE create alias OA1P14.VPC106A1A for OA1P.VPC106A1A ;
CREATE create alias OA1P14.VPC107A1A for OA1P.VPC107A1A ;
CREATE create alias OA1P14.VPC112A1A for OA1P.VPC112A1A ;
CREATE create alias OA1P14.VPC113A1A for OA1P.VPC113A1A ;
CREATE create alias OA1P14.VPC114A1A for OA1P.VPC114A1A ;
CREATE create alias OA1P14.VPC145A1A for OA1P.VPC145A1A ;
CREATE create alias OA1P14.VPC146A1A for OA1P.VPC146A1A ;
CREATE create alias OA1P14.VPC147A1A for OA1P.VPC147A1A ;
CREATE create alias OA1P14.VPC150A1A for OA1P.VPC150A1A ;
CREATE create alias OA1P14.VPC151A1A for OA1P.VPC151A1A ;
CREATE create alias OA1P14.VPC152A1A for OA1P.VPC152A1A ;
CREATE create alias OA1P14.VPC153A1A for OA1P.VPC153A1A ;
CREATE create alias OA1P14.VPC154A1A for OA1P.VPC154A1A ;
$#out 20120525 15:23:09
CREATE create alias OA1P14.TPC014A1 for OA1P.TPC014A1 ;
*** run error ***
undefined variable li in envGet(li)
$#out
}¢--- A540769.WK.SQL(ALIASCR) cre=2008-03-04 mod=2008-03-04-13.47.53 F540769 ---
call sqlConnect DBLF
$;
$<<EOF
SET CURRENT SQLID='S100447';
CREATE ALIAS OA1P01.TPC014A1 FOR OA1P.TPC014A1;
CREATE ALIAS OA1P01.TPC020A1 FOR OA1P.TPC020A1;
CREATE ALIAS OA1P01.TPC021A1 FOR OA1P.TPC021A1;
CREATE ALIAS OA1P01.TPC022A1 FOR OA1P.TPC022A1;
CREATE ALIAS OA1P01.TPC023A1 FOR OA1P.TPC023A1;
CREATE ALIAS OA1P01.TPC024A1 FOR OA1P.TPC024A1;
CREATE ALIAS OA1P01.TPC025A1 FOR OA1P.TPC025A1;
CREATE ALIAS OA1P01.TPC026A1 FOR OA1P.TPC026A1;
CREATE ALIAS OA1P01.TPC027A1 FOR OA1P.TPC027A1;
CREATE ALIAS OA1P01.TPC029A1 FOR OA1P.TPC029A1;
CREATE ALIAS OA1P01.TPC030A1 FOR OA1P.TPC030A1;
CREATE ALIAS OA1P01.TPC031A1 FOR OA1P.TPC031A1;
CREATE ALIAS OA1P01.TPC040A1 FOR OA1P.TPC040A1;
CREATE ALIAS OA1P01.TPC040H1 FOR OA1P.TPC040H1;
CREATE ALIAS OA1P01.TPC041A1 FOR OA1P.TPC041A1;
CREATE ALIAS OA1P01.TPC041H1 FOR OA1P.TPC041H1;
CREATE ALIAS OA1P01.TPC050A1 FOR OA1P.TPC050A1;
CREATE ALIAS OA1P01.TPC051A1 FOR OA1P.TPC051A1;
CREATE ALIAS OA1P01.TPC052A1 FOR OA1P.TPC052A1;
CREATE ALIAS OA1P01.TPC053A1 FOR OA1P.TPC053A1;
CREATE ALIAS OA1P01.TPC060A1 FOR OA1P.TPC060A1;
CREATE ALIAS OA1P01.TPC061A1 FOR OA1P.TPC061A1;
CREATE ALIAS OA1P01.TPC062A1 FOR OA1P.TPC062A1;
CREATE ALIAS OA1P01.TPC070A1 FOR OA1P.TPC070A1;
CREATE ALIAS OA1P01.TPC098A1 FOR OA1P.TPC098A1;
CREATE ALIAS OA1P01.TPC099A1 FOR OA1P.TPC099A1;
CREATE ALIAS OA1P01.TPC100A1 FOR OA1P.TPC100A1;
CREATE ALIAS OA1P01.TPC101A1 FOR OA1P.TPC101A1;
CREATE ALIAS OA1P01.TPC102A1 FOR OA1P.TPC102A1;
CREATE ALIAS OA1P01.TPC103A1 FOR OA1P.TPC103A1;
CREATE ALIAS OA1P01.TPC104A1 FOR OA1P.TPC104A1;
CREATE ALIAS OA1P01.TPC105A1 FOR OA1P.TPC105A1;
CREATE ALIAS OA1P01.TPC106A1 FOR OA1P.TPC106A1;
--
CREATE ALIAS OA1P01.VPC014A1A FOR OA1P.VPC014A1A;
CREATE ALIAS OA1P01.VPC020A1A FOR OA1P.VPC020A1A;
CREATE ALIAS OA1P01.VPC021A1A FOR OA1P.VPC021A1A;
CREATE ALIAS OA1P01.VPC022A1A FOR OA1P.VPC022A1A;
CREATE ALIAS OA1P01.VPC023A1A FOR OA1P.VPC023A1A;
CREATE ALIAS OA1P01.VPC024A1A FOR OA1P.VPC024A1A;
CREATE ALIAS OA1P01.VPC025A1A FOR OA1P.VPC025A1A;
CREATE ALIAS OA1P01.VPC026A1A FOR OA1P.VPC026A1A;
CREATE ALIAS OA1P01.VPC027A1A FOR OA1P.VPC027A1A;
CREATE ALIAS OA1P01.VPC029A1A FOR OA1P.VPC029A1A;
CREATE ALIAS OA1P01.VPC030A1A FOR OA1P.VPC030A1A;
CREATE ALIAS OA1P01.VPC031A1A FOR OA1P.VPC031A1A;
CREATE ALIAS OA1P01.VPC040A1A FOR OA1P.VPC040A1A;
CREATE ALIAS OA1P01.VPC041A1A FOR OA1P.VPC041A1A;
CREATE ALIAS OA1P01.VPC050A1A FOR OA1P.VPC050A1A;
CREATE ALIAS OA1P01.VPC051A1A FOR OA1P.VPC051A1A;
CREATE ALIAS OA1P01.VPC052A1A FOR OA1P.VPC052A1A;
CREATE ALIAS OA1P01.VPC053A1A FOR OA1P.VPC053A1A;
CREATE ALIAS OA1P01.VPC060A1A FOR OA1P.VPC060A1A;
CREATE ALIAS OA1P01.VPC061A1A FOR OA1P.VPC061A1A;
CREATE ALIAS OA1P01.VPC062A1A FOR OA1P.VPC062A1A;
CREATE ALIAS OA1P01.VPC070A1A FOR OA1P.VPC070A1A;
CREATE ALIAS OA1P01.VPC098A1A FOR OA1P.VPC098A1A;
CREATE ALIAS OA1P01.VPC099A1A FOR OA1P.VPC099A1A;
CREATE ALIAS OA1P01.VPC100A1A FOR OA1P.VPC100A1A;
CREATE ALIAS OA1P01.VPC101A1A FOR OA1P.VPC101A1A;
CREATE ALIAS OA1P01.VPC102A1A FOR OA1P.VPC102A1A;
CREATE ALIAS OA1P01.VPC103A1A FOR OA1P.VPC103A1A;
CREATE ALIAS OA1P01.VPC104A1A FOR OA1P.VPC104A1A;
CREATE ALIAS OA1P01.VPC105A1A FOR OA1P.VPC105A1A;
CREATE ALIAS OA1P01.VPC106A1A FOR OA1P.VPC106A1A;
COMMIT;
--
CREATE ALIAS OA1P02.TPC014A1 FOR OA1P.TPC014A1;
CREATE ALIAS OA1P02.TPC020A1 FOR OA1P.TPC020A1;
CREATE ALIAS OA1P02.TPC021A1 FOR OA1P.TPC021A1;
CREATE ALIAS OA1P02.TPC022A1 FOR OA1P.TPC022A1;
CREATE ALIAS OA1P02.TPC023A1 FOR OA1P.TPC023A1;
CREATE ALIAS OA1P02.TPC024A1 FOR OA1P.TPC024A1;
CREATE ALIAS OA1P02.TPC025A1 FOR OA1P.TPC025A1;
CREATE ALIAS OA1P02.TPC026A1 FOR OA1P.TPC026A1;
CREATE ALIAS OA1P02.TPC027A1 FOR OA1P.TPC027A1;
CREATE ALIAS OA1P02.TPC029A1 FOR OA1P.TPC029A1;
CREATE ALIAS OA1P02.TPC030A1 FOR OA1P.TPC030A1;
CREATE ALIAS OA1P02.TPC031A1 FOR OA1P.TPC031A1;
CREATE ALIAS OA1P02.TPC040A1 FOR OA1P.TPC040A1;
CREATE ALIAS OA1P02.TPC040H1 FOR OA1P.TPC040H1;
CREATE ALIAS OA1P02.TPC041A1 FOR OA1P.TPC041A1;
CREATE ALIAS OA1P02.TPC041H1 FOR OA1P.TPC041H1;
CREATE ALIAS OA1P02.TPC050A1 FOR OA1P.TPC050A1;
CREATE ALIAS OA1P02.TPC051A1 FOR OA1P.TPC051A1;
CREATE ALIAS OA1P02.TPC052A1 FOR OA1P.TPC052A1;
CREATE ALIAS OA1P02.TPC053A1 FOR OA1P.TPC053A1;
CREATE ALIAS OA1P02.TPC060A1 FOR OA1P.TPC060A1;
CREATE ALIAS OA1P02.TPC061A1 FOR OA1P.TPC061A1;
CREATE ALIAS OA1P02.TPC062A1 FOR OA1P.TPC062A1;
CREATE ALIAS OA1P02.TPC070A1 FOR OA1P.TPC070A1;
CREATE ALIAS OA1P02.TPC098A1 FOR OA1P.TPC098A1;
CREATE ALIAS OA1P02.TPC099A1 FOR OA1P.TPC099A1;
CREATE ALIAS OA1P02.TPC100A1 FOR OA1P.TPC100A1;
CREATE ALIAS OA1P02.TPC101A1 FOR OA1P.TPC101A1;
CREATE ALIAS OA1P02.TPC102A1 FOR OA1P.TPC102A1;
CREATE ALIAS OA1P02.TPC103A1 FOR OA1P.TPC103A1;
CREATE ALIAS OA1P02.TPC104A1 FOR OA1P.TPC104A1;
CREATE ALIAS OA1P02.TPC105A1 FOR OA1P.TPC105A1;
CREATE ALIAS OA1P02.TPC106A1 FOR OA1P.TPC106A1;
--
CREATE ALIAS OA1P02.VPC014A1A FOR OA1P.VPC014A1A;
CREATE ALIAS OA1P02.VPC020A1A FOR OA1P.VPC020A1A;
CREATE ALIAS OA1P02.VPC021A1A FOR OA1P.VPC021A1A;
CREATE ALIAS OA1P02.VPC022A1A FOR OA1P.VPC022A1A;
CREATE ALIAS OA1P02.VPC023A1A FOR OA1P.VPC023A1A;
CREATE ALIAS OA1P02.VPC024A1A FOR OA1P.VPC024A1A;
CREATE ALIAS OA1P02.VPC025A1A FOR OA1P.VPC025A1A;
CREATE ALIAS OA1P02.VPC026A1A FOR OA1P.VPC026A1A;
CREATE ALIAS OA1P02.VPC027A1A FOR OA1P.VPC027A1A;
CREATE ALIAS OA1P02.VPC029A1A FOR OA1P.VPC029A1A;
CREATE ALIAS OA1P02.VPC030A1A FOR OA1P.VPC030A1A;
CREATE ALIAS OA1P02.VPC031A1A FOR OA1P.VPC031A1A;
CREATE ALIAS OA1P02.VPC040A1A FOR OA1P.VPC040A1A;
CREATE ALIAS OA1P02.VPC041A1A FOR OA1P.VPC041A1A;
CREATE ALIAS OA1P02.VPC050A1A FOR OA1P.VPC050A1A;
CREATE ALIAS OA1P02.VPC051A1A FOR OA1P.VPC051A1A;
CREATE ALIAS OA1P02.VPC052A1A FOR OA1P.VPC052A1A;
CREATE ALIAS OA1P02.VPC053A1A FOR OA1P.VPC053A1A;
CREATE ALIAS OA1P02.VPC060A1A FOR OA1P.VPC060A1A;
CREATE ALIAS OA1P02.VPC061A1A FOR OA1P.VPC061A1A;
CREATE ALIAS OA1P02.VPC062A1A FOR OA1P.VPC062A1A;
CREATE ALIAS OA1P02.VPC070A1A FOR OA1P.VPC070A1A;
CREATE ALIAS OA1P02.VPC098A1A FOR OA1P.VPC098A1A;
CREATE ALIAS OA1P02.VPC099A1A FOR OA1P.VPC099A1A;
CREATE ALIAS OA1P02.VPC100A1A FOR OA1P.VPC100A1A;
CREATE ALIAS OA1P02.VPC101A1A FOR OA1P.VPC101A1A;
CREATE ALIAS OA1P02.VPC102A1A FOR OA1P.VPC102A1A;
CREATE ALIAS OA1P02.VPC103A1A FOR OA1P.VPC103A1A;
CREATE ALIAS OA1P02.VPC104A1A FOR OA1P.VPC104A1A;
CREATE ALIAS OA1P02.VPC105A1A FOR OA1P.VPC105A1A;
CREATE ALIAS OA1P02.VPC106A1A FOR OA1P.VPC106A1A;
COMMIT;
--
CREATE ALIAS OA1P03.TPC014A1 FOR OA1P.TPC014A1;
CREATE ALIAS OA1P03.TPC020A1 FOR OA1P.TPC020A1;
CREATE ALIAS OA1P03.TPC021A1 FOR OA1P.TPC021A1;
CREATE ALIAS OA1P03.TPC022A1 FOR OA1P.TPC022A1;
CREATE ALIAS OA1P03.TPC023A1 FOR OA1P.TPC023A1;
CREATE ALIAS OA1P03.TPC024A1 FOR OA1P.TPC024A1;
CREATE ALIAS OA1P03.TPC025A1 FOR OA1P.TPC025A1;
CREATE ALIAS OA1P03.TPC026A1 FOR OA1P.TPC026A1;
CREATE ALIAS OA1P03.TPC027A1 FOR OA1P.TPC027A1;
CREATE ALIAS OA1P03.TPC029A1 FOR OA1P.TPC029A1;
CREATE ALIAS OA1P03.TPC030A1 FOR OA1P.TPC030A1;
CREATE ALIAS OA1P03.TPC031A1 FOR OA1P.TPC031A1;
CREATE ALIAS OA1P03.TPC040A1 FOR OA1P.TPC040A1;
CREATE ALIAS OA1P03.TPC040H1 FOR OA1P.TPC040H1;
CREATE ALIAS OA1P03.TPC041A1 FOR OA1P.TPC041A1;
CREATE ALIAS OA1P03.TPC041H1 FOR OA1P.TPC041H1;
CREATE ALIAS OA1P03.TPC050A1 FOR OA1P.TPC050A1;
CREATE ALIAS OA1P03.TPC051A1 FOR OA1P.TPC051A1;
CREATE ALIAS OA1P03.TPC052A1 FOR OA1P.TPC052A1;
CREATE ALIAS OA1P03.TPC053A1 FOR OA1P.TPC053A1;
CREATE ALIAS OA1P03.TPC060A1 FOR OA1P.TPC060A1;
CREATE ALIAS OA1P03.TPC061A1 FOR OA1P.TPC061A1;
CREATE ALIAS OA1P03.TPC062A1 FOR OA1P.TPC062A1;
CREATE ALIAS OA1P03.TPC070A1 FOR OA1P.TPC070A1;
CREATE ALIAS OA1P03.TPC098A1 FOR OA1P.TPC098A1;
CREATE ALIAS OA1P03.TPC099A1 FOR OA1P.TPC099A1;
CREATE ALIAS OA1P03.TPC100A1 FOR OA1P.TPC100A1;
CREATE ALIAS OA1P03.TPC101A1 FOR OA1P.TPC101A1;
CREATE ALIAS OA1P03.TPC102A1 FOR OA1P.TPC102A1;
CREATE ALIAS OA1P03.TPC103A1 FOR OA1P.TPC103A1;
CREATE ALIAS OA1P03.TPC104A1 FOR OA1P.TPC104A1;
CREATE ALIAS OA1P03.TPC105A1 FOR OA1P.TPC105A1;
CREATE ALIAS OA1P03.TPC106A1 FOR OA1P.TPC106A1;
--
CREATE ALIAS OA1P03.VPC014A1A FOR OA1P.VPC014A1A;
CREATE ALIAS OA1P03.VPC020A1A FOR OA1P.VPC020A1A;
CREATE ALIAS OA1P03.VPC021A1A FOR OA1P.VPC021A1A;
CREATE ALIAS OA1P03.VPC022A1A FOR OA1P.VPC022A1A;
CREATE ALIAS OA1P03.VPC023A1A FOR OA1P.VPC023A1A;
CREATE ALIAS OA1P03.VPC024A1A FOR OA1P.VPC024A1A;
CREATE ALIAS OA1P03.VPC025A1A FOR OA1P.VPC025A1A;
CREATE ALIAS OA1P03.VPC026A1A FOR OA1P.VPC026A1A;
CREATE ALIAS OA1P03.VPC027A1A FOR OA1P.VPC027A1A;
CREATE ALIAS OA1P03.VPC029A1A FOR OA1P.VPC029A1A;
CREATE ALIAS OA1P03.VPC030A1A FOR OA1P.VPC030A1A;
CREATE ALIAS OA1P03.VPC031A1A FOR OA1P.VPC031A1A;
CREATE ALIAS OA1P03.VPC040A1A FOR OA1P.VPC040A1A;
CREATE ALIAS OA1P03.VPC041A1A FOR OA1P.VPC041A1A;
CREATE ALIAS OA1P03.VPC050A1A FOR OA1P.VPC050A1A;
CREATE ALIAS OA1P03.VPC051A1A FOR OA1P.VPC051A1A;
CREATE ALIAS OA1P03.VPC052A1A FOR OA1P.VPC052A1A;
CREATE ALIAS OA1P03.VPC053A1A FOR OA1P.VPC053A1A;
CREATE ALIAS OA1P03.VPC060A1A FOR OA1P.VPC060A1A;
CREATE ALIAS OA1P03.VPC061A1A FOR OA1P.VPC061A1A;
CREATE ALIAS OA1P03.VPC062A1A FOR OA1P.VPC062A1A;
CREATE ALIAS OA1P03.VPC070A1A FOR OA1P.VPC070A1A;
CREATE ALIAS OA1P03.VPC098A1A FOR OA1P.VPC098A1A;
CREATE ALIAS OA1P03.VPC099A1A FOR OA1P.VPC099A1A;
CREATE ALIAS OA1P03.VPC100A1A FOR OA1P.VPC100A1A;
CREATE ALIAS OA1P03.VPC101A1A FOR OA1P.VPC101A1A;
CREATE ALIAS OA1P03.VPC102A1A FOR OA1P.VPC102A1A;
CREATE ALIAS OA1P03.VPC103A1A FOR OA1P.VPC103A1A;
CREATE ALIAS OA1P03.VPC104A1A FOR OA1P.VPC104A1A;
CREATE ALIAS OA1P03.VPC105A1A FOR OA1P.VPC105A1A;
CREATE ALIAS OA1P03.VPC106A1A FOR OA1P.VPC106A1A;
COMMIT;
--
CREATE ALIAS OA1P04.TPC014A1 FOR OA1P.TPC014A1;
CREATE ALIAS OA1P04.TPC020A1 FOR OA1P.TPC020A1;
CREATE ALIAS OA1P04.TPC021A1 FOR OA1P.TPC021A1;
CREATE ALIAS OA1P04.TPC022A1 FOR OA1P.TPC022A1;
CREATE ALIAS OA1P04.TPC023A1 FOR OA1P.TPC023A1;
CREATE ALIAS OA1P04.TPC024A1 FOR OA1P.TPC024A1;
CREATE ALIAS OA1P04.TPC025A1 FOR OA1P.TPC025A1;
CREATE ALIAS OA1P04.TPC026A1 FOR OA1P.TPC026A1;
CREATE ALIAS OA1P04.TPC027A1 FOR OA1P.TPC027A1;
CREATE ALIAS OA1P04.TPC029A1 FOR OA1P.TPC029A1;
CREATE ALIAS OA1P04.TPC030A1 FOR OA1P.TPC030A1;
CREATE ALIAS OA1P04.TPC031A1 FOR OA1P.TPC031A1;
CREATE ALIAS OA1P04.TPC040A1 FOR OA1P.TPC040A1;
CREATE ALIAS OA1P04.TPC040H1 FOR OA1P.TPC040H1;
CREATE ALIAS OA1P04.TPC041A1 FOR OA1P.TPC041A1;
CREATE ALIAS OA1P04.TPC041H1 FOR OA1P.TPC041H1;
CREATE ALIAS OA1P04.TPC050A1 FOR OA1P.TPC050A1;
CREATE ALIAS OA1P04.TPC051A1 FOR OA1P.TPC051A1;
CREATE ALIAS OA1P04.TPC052A1 FOR OA1P.TPC052A1;
CREATE ALIAS OA1P04.TPC053A1 FOR OA1P.TPC053A1;
CREATE ALIAS OA1P04.TPC060A1 FOR OA1P.TPC060A1;
CREATE ALIAS OA1P04.TPC061A1 FOR OA1P.TPC061A1;
CREATE ALIAS OA1P04.TPC062A1 FOR OA1P.TPC062A1;
CREATE ALIAS OA1P04.TPC070A1 FOR OA1P.TPC070A1;
CREATE ALIAS OA1P04.TPC098A1 FOR OA1P.TPC098A1;
CREATE ALIAS OA1P04.TPC099A1 FOR OA1P.TPC099A1;
CREATE ALIAS OA1P04.TPC100A1 FOR OA1P.TPC100A1;
CREATE ALIAS OA1P04.TPC101A1 FOR OA1P.TPC101A1;
CREATE ALIAS OA1P04.TPC102A1 FOR OA1P.TPC102A1;
CREATE ALIAS OA1P04.TPC103A1 FOR OA1P.TPC103A1;
CREATE ALIAS OA1P04.TPC104A1 FOR OA1P.TPC104A1;
CREATE ALIAS OA1P04.TPC105A1 FOR OA1P.TPC105A1;
CREATE ALIAS OA1P04.TPC106A1 FOR OA1P.TPC106A1;
--
CREATE ALIAS OA1P04.VPC014A1A FOR OA1P.VPC014A1A;
CREATE ALIAS OA1P04.VPC020A1A FOR OA1P.VPC020A1A;
CREATE ALIAS OA1P04.VPC021A1A FOR OA1P.VPC021A1A;
CREATE ALIAS OA1P04.VPC022A1A FOR OA1P.VPC022A1A;
CREATE ALIAS OA1P04.VPC023A1A FOR OA1P.VPC023A1A;
CREATE ALIAS OA1P04.VPC024A1A FOR OA1P.VPC024A1A;
CREATE ALIAS OA1P04.VPC025A1A FOR OA1P.VPC025A1A;
CREATE ALIAS OA1P04.VPC026A1A FOR OA1P.VPC026A1A;
CREATE ALIAS OA1P04.VPC027A1A FOR OA1P.VPC027A1A;
CREATE ALIAS OA1P04.VPC029A1A FOR OA1P.VPC029A1A;
CREATE ALIAS OA1P04.VPC030A1A FOR OA1P.VPC030A1A;
CREATE ALIAS OA1P04.VPC031A1A FOR OA1P.VPC031A1A;
CREATE ALIAS OA1P04.VPC040A1A FOR OA1P.VPC040A1A;
CREATE ALIAS OA1P04.VPC041A1A FOR OA1P.VPC041A1A;
CREATE ALIAS OA1P04.VPC050A1A FOR OA1P.VPC050A1A;
CREATE ALIAS OA1P04.VPC051A1A FOR OA1P.VPC051A1A;
CREATE ALIAS OA1P04.VPC052A1A FOR OA1P.VPC052A1A;
CREATE ALIAS OA1P04.VPC053A1A FOR OA1P.VPC053A1A;
CREATE ALIAS OA1P04.VPC060A1A FOR OA1P.VPC060A1A;
CREATE ALIAS OA1P04.VPC061A1A FOR OA1P.VPC061A1A;
CREATE ALIAS OA1P04.VPC062A1A FOR OA1P.VPC062A1A;
CREATE ALIAS OA1P04.VPC070A1A FOR OA1P.VPC070A1A;
CREATE ALIAS OA1P04.VPC098A1A FOR OA1P.VPC098A1A;
CREATE ALIAS OA1P04.VPC099A1A FOR OA1P.VPC099A1A;
CREATE ALIAS OA1P04.VPC100A1A FOR OA1P.VPC100A1A;
CREATE ALIAS OA1P04.VPC101A1A FOR OA1P.VPC101A1A;
CREATE ALIAS OA1P04.VPC102A1A FOR OA1P.VPC102A1A;
CREATE ALIAS OA1P04.VPC103A1A FOR OA1P.VPC103A1A;
CREATE ALIAS OA1P04.VPC104A1A FOR OA1P.VPC104A1A;
CREATE ALIAS OA1P04.VPC105A1A FOR OA1P.VPC105A1A;
CREATE ALIAS OA1P04.VPC106A1A FOR OA1P.VPC106A1A;
COMMIT;
--
CREATE ALIAS OA1P05.TPC014A1 FOR OA1P.TPC014A1;
CREATE ALIAS OA1P05.TPC020A1 FOR OA1P.TPC020A1;
CREATE ALIAS OA1P05.TPC021A1 FOR OA1P.TPC021A1;
CREATE ALIAS OA1P05.TPC022A1 FOR OA1P.TPC022A1;
CREATE ALIAS OA1P05.TPC023A1 FOR OA1P.TPC023A1;
CREATE ALIAS OA1P05.TPC024A1 FOR OA1P.TPC024A1;
CREATE ALIAS OA1P05.TPC025A1 FOR OA1P.TPC025A1;
CREATE ALIAS OA1P05.TPC026A1 FOR OA1P.TPC026A1;
CREATE ALIAS OA1P05.TPC027A1 FOR OA1P.TPC027A1;
CREATE ALIAS OA1P05.TPC029A1 FOR OA1P.TPC029A1;
CREATE ALIAS OA1P05.TPC030A1 FOR OA1P.TPC030A1;
CREATE ALIAS OA1P05.TPC031A1 FOR OA1P.TPC031A1;
CREATE ALIAS OA1P05.TPC040A1 FOR OA1P.TPC040A1;
CREATE ALIAS OA1P05.TPC040H1 FOR OA1P.TPC040H1;
CREATE ALIAS OA1P05.TPC041A1 FOR OA1P.TPC041A1;
CREATE ALIAS OA1P05.TPC041H1 FOR OA1P.TPC041H1;
CREATE ALIAS OA1P05.TPC050A1 FOR OA1P.TPC050A1;
CREATE ALIAS OA1P05.TPC051A1 FOR OA1P.TPC051A1;
CREATE ALIAS OA1P05.TPC052A1 FOR OA1P.TPC052A1;
CREATE ALIAS OA1P05.TPC053A1 FOR OA1P.TPC053A1;
CREATE ALIAS OA1P05.TPC060A1 FOR OA1P.TPC060A1;
CREATE ALIAS OA1P05.TPC061A1 FOR OA1P.TPC061A1;
CREATE ALIAS OA1P05.TPC062A1 FOR OA1P.TPC062A1;
CREATE ALIAS OA1P05.TPC070A1 FOR OA1P.TPC070A1;
CREATE ALIAS OA1P05.TPC098A1 FOR OA1P.TPC098A1;
CREATE ALIAS OA1P05.TPC099A1 FOR OA1P.TPC099A1;
CREATE ALIAS OA1P05.TPC100A1 FOR OA1P.TPC100A1;
CREATE ALIAS OA1P05.TPC101A1 FOR OA1P.TPC101A1;
CREATE ALIAS OA1P05.TPC102A1 FOR OA1P.TPC102A1;
CREATE ALIAS OA1P05.TPC103A1 FOR OA1P.TPC103A1;
CREATE ALIAS OA1P05.TPC104A1 FOR OA1P.TPC104A1;
CREATE ALIAS OA1P05.TPC105A1 FOR OA1P.TPC105A1;
CREATE ALIAS OA1P05.TPC106A1 FOR OA1P.TPC106A1;
--
CREATE ALIAS OA1P05.VPC014A1A FOR OA1P.VPC014A1A;
CREATE ALIAS OA1P05.VPC020A1A FOR OA1P.VPC020A1A;
CREATE ALIAS OA1P05.VPC021A1A FOR OA1P.VPC021A1A;
CREATE ALIAS OA1P05.VPC022A1A FOR OA1P.VPC022A1A;
CREATE ALIAS OA1P05.VPC023A1A FOR OA1P.VPC023A1A;
CREATE ALIAS OA1P05.VPC024A1A FOR OA1P.VPC024A1A;
CREATE ALIAS OA1P05.VPC025A1A FOR OA1P.VPC025A1A;
CREATE ALIAS OA1P05.VPC026A1A FOR OA1P.VPC026A1A;
CREATE ALIAS OA1P05.VPC027A1A FOR OA1P.VPC027A1A;
CREATE ALIAS OA1P05.VPC029A1A FOR OA1P.VPC029A1A;
CREATE ALIAS OA1P05.VPC030A1A FOR OA1P.VPC030A1A;
CREATE ALIAS OA1P05.VPC031A1A FOR OA1P.VPC031A1A;
CREATE ALIAS OA1P05.VPC040A1A FOR OA1P.VPC040A1A;
CREATE ALIAS OA1P05.VPC041A1A FOR OA1P.VPC041A1A;
CREATE ALIAS OA1P05.VPC050A1A FOR OA1P.VPC050A1A;
CREATE ALIAS OA1P05.VPC051A1A FOR OA1P.VPC051A1A;
CREATE ALIAS OA1P05.VPC052A1A FOR OA1P.VPC052A1A;
CREATE ALIAS OA1P05.VPC053A1A FOR OA1P.VPC053A1A;
CREATE ALIAS OA1P05.VPC060A1A FOR OA1P.VPC060A1A;
CREATE ALIAS OA1P05.VPC061A1A FOR OA1P.VPC061A1A;
CREATE ALIAS OA1P05.VPC062A1A FOR OA1P.VPC062A1A;
CREATE ALIAS OA1P05.VPC070A1A FOR OA1P.VPC070A1A;
CREATE ALIAS OA1P05.VPC098A1A FOR OA1P.VPC098A1A;
CREATE ALIAS OA1P05.VPC099A1A FOR OA1P.VPC099A1A;
CREATE ALIAS OA1P05.VPC100A1A FOR OA1P.VPC100A1A;
CREATE ALIAS OA1P05.VPC101A1A FOR OA1P.VPC101A1A;
CREATE ALIAS OA1P05.VPC102A1A FOR OA1P.VPC102A1A;
CREATE ALIAS OA1P05.VPC103A1A FOR OA1P.VPC103A1A;
CREATE ALIAS OA1P05.VPC104A1A FOR OA1P.VPC104A1A;
CREATE ALIAS OA1P05.VPC105A1A FOR OA1P.VPC105A1A;
CREATE ALIAS OA1P05.VPC106A1A FOR OA1P.VPC106A1A;
COMMIT;
--
CREATE ALIAS OA1P06.TPC014A1 FOR OA1P.TPC014A1;
CREATE ALIAS OA1P06.TPC020A1 FOR OA1P.TPC020A1;
CREATE ALIAS OA1P06.TPC021A1 FOR OA1P.TPC021A1;
CREATE ALIAS OA1P06.TPC022A1 FOR OA1P.TPC022A1;
CREATE ALIAS OA1P06.TPC023A1 FOR OA1P.TPC023A1;
CREATE ALIAS OA1P06.TPC024A1 FOR OA1P.TPC024A1;
CREATE ALIAS OA1P06.TPC025A1 FOR OA1P.TPC025A1;
CREATE ALIAS OA1P06.TPC026A1 FOR OA1P.TPC026A1;
CREATE ALIAS OA1P06.TPC027A1 FOR OA1P.TPC027A1;
CREATE ALIAS OA1P06.TPC029A1 FOR OA1P.TPC029A1;
CREATE ALIAS OA1P06.TPC030A1 FOR OA1P.TPC030A1;
CREATE ALIAS OA1P06.TPC031A1 FOR OA1P.TPC031A1;
CREATE ALIAS OA1P06.TPC040A1 FOR OA1P.TPC040A1;
CREATE ALIAS OA1P06.TPC040H1 FOR OA1P.TPC040H1;
CREATE ALIAS OA1P06.TPC041A1 FOR OA1P.TPC041A1;
CREATE ALIAS OA1P06.TPC041H1 FOR OA1P.TPC041H1;
CREATE ALIAS OA1P06.TPC050A1 FOR OA1P.TPC050A1;
CREATE ALIAS OA1P06.TPC051A1 FOR OA1P.TPC051A1;
CREATE ALIAS OA1P06.TPC052A1 FOR OA1P.TPC052A1;
CREATE ALIAS OA1P06.TPC053A1 FOR OA1P.TPC053A1;
CREATE ALIAS OA1P06.TPC060A1 FOR OA1P.TPC060A1;
CREATE ALIAS OA1P06.TPC061A1 FOR OA1P.TPC061A1;
CREATE ALIAS OA1P06.TPC062A1 FOR OA1P.TPC062A1;
CREATE ALIAS OA1P06.TPC070A1 FOR OA1P.TPC070A1;
CREATE ALIAS OA1P06.TPC098A1 FOR OA1P.TPC098A1;
CREATE ALIAS OA1P06.TPC099A1 FOR OA1P.TPC099A1;
CREATE ALIAS OA1P06.TPC100A1 FOR OA1P.TPC100A1;
CREATE ALIAS OA1P06.TPC101A1 FOR OA1P.TPC101A1;
CREATE ALIAS OA1P06.TPC102A1 FOR OA1P.TPC102A1;
CREATE ALIAS OA1P06.TPC103A1 FOR OA1P.TPC103A1;
CREATE ALIAS OA1P06.TPC104A1 FOR OA1P.TPC104A1;
CREATE ALIAS OA1P06.TPC105A1 FOR OA1P.TPC105A1;
CREATE ALIAS OA1P06.TPC106A1 FOR OA1P.TPC106A1;
--
CREATE ALIAS OA1P06.VPC014A1A FOR OA1P.VPC014A1A;
CREATE ALIAS OA1P06.VPC020A1A FOR OA1P.VPC020A1A;
CREATE ALIAS OA1P06.VPC021A1A FOR OA1P.VPC021A1A;
CREATE ALIAS OA1P06.VPC022A1A FOR OA1P.VPC022A1A;
CREATE ALIAS OA1P06.VPC023A1A FOR OA1P.VPC023A1A;
CREATE ALIAS OA1P06.VPC024A1A FOR OA1P.VPC024A1A;
CREATE ALIAS OA1P06.VPC025A1A FOR OA1P.VPC025A1A;
CREATE ALIAS OA1P06.VPC026A1A FOR OA1P.VPC026A1A;
CREATE ALIAS OA1P06.VPC027A1A FOR OA1P.VPC027A1A;
CREATE ALIAS OA1P06.VPC029A1A FOR OA1P.VPC029A1A;
CREATE ALIAS OA1P06.VPC030A1A FOR OA1P.VPC030A1A;
CREATE ALIAS OA1P06.VPC031A1A FOR OA1P.VPC031A1A;
CREATE ALIAS OA1P06.VPC040A1A FOR OA1P.VPC040A1A;
CREATE ALIAS OA1P06.VPC041A1A FOR OA1P.VPC041A1A;
CREATE ALIAS OA1P06.VPC050A1A FOR OA1P.VPC050A1A;
CREATE ALIAS OA1P06.VPC051A1A FOR OA1P.VPC051A1A;
CREATE ALIAS OA1P06.VPC052A1A FOR OA1P.VPC052A1A;
CREATE ALIAS OA1P06.VPC053A1A FOR OA1P.VPC053A1A;
CREATE ALIAS OA1P06.VPC060A1A FOR OA1P.VPC060A1A;
CREATE ALIAS OA1P06.VPC061A1A FOR OA1P.VPC061A1A;
CREATE ALIAS OA1P06.VPC062A1A FOR OA1P.VPC062A1A;
CREATE ALIAS OA1P06.VPC070A1A FOR OA1P.VPC070A1A;
CREATE ALIAS OA1P06.VPC098A1A FOR OA1P.VPC098A1A;
CREATE ALIAS OA1P06.VPC099A1A FOR OA1P.VPC099A1A;
CREATE ALIAS OA1P06.VPC100A1A FOR OA1P.VPC100A1A;
CREATE ALIAS OA1P06.VPC101A1A FOR OA1P.VPC101A1A;
CREATE ALIAS OA1P06.VPC102A1A FOR OA1P.VPC102A1A;
CREATE ALIAS OA1P06.VPC103A1A FOR OA1P.VPC103A1A;
CREATE ALIAS OA1P06.VPC104A1A FOR OA1P.VPC104A1A;
CREATE ALIAS OA1P06.VPC105A1A FOR OA1P.VPC105A1A;
CREATE ALIAS OA1P06.VPC106A1A FOR OA1P.VPC106A1A;
COMMIT;
--
CREATE ALIAS OA1P07.TPC014A1 FOR OA1P.TPC014A1;
CREATE ALIAS OA1P07.TPC020A1 FOR OA1P.TPC020A1;
CREATE ALIAS OA1P07.TPC021A1 FOR OA1P.TPC021A1;
CREATE ALIAS OA1P07.TPC022A1 FOR OA1P.TPC022A1;
CREATE ALIAS OA1P07.TPC023A1 FOR OA1P.TPC023A1;
CREATE ALIAS OA1P07.TPC024A1 FOR OA1P.TPC024A1;
CREATE ALIAS OA1P07.TPC025A1 FOR OA1P.TPC025A1;
CREATE ALIAS OA1P07.TPC026A1 FOR OA1P.TPC026A1;
CREATE ALIAS OA1P07.TPC027A1 FOR OA1P.TPC027A1;
CREATE ALIAS OA1P07.TPC029A1 FOR OA1P.TPC029A1;
CREATE ALIAS OA1P07.TPC030A1 FOR OA1P.TPC030A1;
CREATE ALIAS OA1P07.TPC031A1 FOR OA1P.TPC031A1;
CREATE ALIAS OA1P07.TPC040A1 FOR OA1P.TPC040A1;
CREATE ALIAS OA1P07.TPC040H1 FOR OA1P.TPC040H1;
CREATE ALIAS OA1P07.TPC041A1 FOR OA1P.TPC041A1;
CREATE ALIAS OA1P07.TPC041H1 FOR OA1P.TPC041H1;
CREATE ALIAS OA1P07.TPC050A1 FOR OA1P.TPC050A1;
CREATE ALIAS OA1P07.TPC051A1 FOR OA1P.TPC051A1;
CREATE ALIAS OA1P07.TPC052A1 FOR OA1P.TPC052A1;
CREATE ALIAS OA1P07.TPC053A1 FOR OA1P.TPC053A1;
CREATE ALIAS OA1P07.TPC060A1 FOR OA1P.TPC060A1;
CREATE ALIAS OA1P07.TPC061A1 FOR OA1P.TPC061A1;
CREATE ALIAS OA1P07.TPC062A1 FOR OA1P.TPC062A1;
CREATE ALIAS OA1P07.TPC070A1 FOR OA1P.TPC070A1;
CREATE ALIAS OA1P07.TPC098A1 FOR OA1P.TPC098A1;
CREATE ALIAS OA1P07.TPC099A1 FOR OA1P.TPC099A1;
CREATE ALIAS OA1P07.TPC100A1 FOR OA1P.TPC100A1;
CREATE ALIAS OA1P07.TPC101A1 FOR OA1P.TPC101A1;
CREATE ALIAS OA1P07.TPC102A1 FOR OA1P.TPC102A1;
CREATE ALIAS OA1P07.TPC103A1 FOR OA1P.TPC103A1;
CREATE ALIAS OA1P07.TPC104A1 FOR OA1P.TPC104A1;
CREATE ALIAS OA1P07.TPC105A1 FOR OA1P.TPC105A1;
CREATE ALIAS OA1P07.TPC106A1 FOR OA1P.TPC106A1;
--
CREATE ALIAS OA1P07.VPC014A1A FOR OA1P.VPC014A1A;
CREATE ALIAS OA1P07.VPC020A1A FOR OA1P.VPC020A1A;
CREATE ALIAS OA1P07.VPC021A1A FOR OA1P.VPC021A1A;
CREATE ALIAS OA1P07.VPC022A1A FOR OA1P.VPC022A1A;
CREATE ALIAS OA1P07.VPC023A1A FOR OA1P.VPC023A1A;
CREATE ALIAS OA1P07.VPC024A1A FOR OA1P.VPC024A1A;
CREATE ALIAS OA1P07.VPC025A1A FOR OA1P.VPC025A1A;
CREATE ALIAS OA1P07.VPC026A1A FOR OA1P.VPC026A1A;
CREATE ALIAS OA1P07.VPC027A1A FOR OA1P.VPC027A1A;
CREATE ALIAS OA1P07.VPC029A1A FOR OA1P.VPC029A1A;
CREATE ALIAS OA1P07.VPC030A1A FOR OA1P.VPC030A1A;
CREATE ALIAS OA1P07.VPC031A1A FOR OA1P.VPC031A1A;
CREATE ALIAS OA1P07.VPC040A1A FOR OA1P.VPC040A1A;
CREATE ALIAS OA1P07.VPC041A1A FOR OA1P.VPC041A1A;
CREATE ALIAS OA1P07.VPC050A1A FOR OA1P.VPC050A1A;
CREATE ALIAS OA1P07.VPC051A1A FOR OA1P.VPC051A1A;
CREATE ALIAS OA1P07.VPC052A1A FOR OA1P.VPC052A1A;
CREATE ALIAS OA1P07.VPC053A1A FOR OA1P.VPC053A1A;
CREATE ALIAS OA1P07.VPC060A1A FOR OA1P.VPC060A1A;
CREATE ALIAS OA1P07.VPC061A1A FOR OA1P.VPC061A1A;
CREATE ALIAS OA1P07.VPC062A1A FOR OA1P.VPC062A1A;
CREATE ALIAS OA1P07.VPC070A1A FOR OA1P.VPC070A1A;
CREATE ALIAS OA1P07.VPC098A1A FOR OA1P.VPC098A1A;
CREATE ALIAS OA1P07.VPC099A1A FOR OA1P.VPC099A1A;
CREATE ALIAS OA1P07.VPC100A1A FOR OA1P.VPC100A1A;
CREATE ALIAS OA1P07.VPC101A1A FOR OA1P.VPC101A1A;
CREATE ALIAS OA1P07.VPC102A1A FOR OA1P.VPC102A1A;
CREATE ALIAS OA1P07.VPC103A1A FOR OA1P.VPC103A1A;
CREATE ALIAS OA1P07.VPC104A1A FOR OA1P.VPC104A1A;
CREATE ALIAS OA1P07.VPC105A1A FOR OA1P.VPC105A1A;
CREATE ALIAS OA1P07.VPC106A1A FOR OA1P.VPC106A1A;
COMMIT;
EOF
$@for x $@{
li = $x
parse var li w1 w2 cr'.'tb .
if w1 <> create then do
$$ $x
iterate
end
call sql2St x, "select 1 from sysibm.sysTables" ,
"where type = 'A' and creator = '"cr"'" ,
"and name = '"tb"'"
if m.x.0 = 0 then
$$ $x
$}
$>~wk.sql(aliascrt)
$;
call sqlDisconnect
$***out 20080304 13:47:22
$***out 20080304 13:46:40
$***out 20080304 13:36:55
$***out 20080304 13:35:43
$***out 20080304 13:34:45
$***out 20080304 13:33:40
$***out 20080304 13:22:28
$***out 20080304 13:20:46
}¢--- A540769.WK.SQL(ALIASCRT) cre= mod= ---------------------------------------
SET CURRENT SQLID='S100447';
--
COMMIT;
--
--
COMMIT;
--
--
COMMIT;
--
--
COMMIT;
--
--
COMMIT;
--
--
COMMIT;
--
--
COMMIT;
}¢--- A540769.WK.SQL(ALIASDRO) cre=2008-03-04 mod=2008-03-04-13.45.57 F540769 ---
SET CURRENT SQLID='S100447';
drop ALIAS OA1T07.VPC014A1A ;
drop ALIAS OA1T07.VPC020A1A ;
drop ALIAS OA1T07.VPC021A1A ;
drop ALIAS OA1T07.VPC022A1A ;
drop ALIAS OA1T07.VPC023A1A ;
drop ALIAS OA1T07.VPC024A1A ;
drop ALIAS OA1T07.VPC025A1A ;
drop ALIAS OA1T07.VPC026A1A ;
drop ALIAS OA1T07.VPC027A1A ;
drop ALIAS OA1T07.VPC029A1A ;
drop ALIAS OA1T07.VPC030A1A ;
drop ALIAS OA1T07.VPC031A1A ;
commit; -- OA1T07.VPC040A1A ;
drop ALIAS OA1T07.VPC041A1A ;
drop ALIAS OA1T07.VPC050A1A ;
drop ALIAS OA1T07.VPC051A1A ;
drop ALIAS OA1T07.VPC052A1A ;
drop ALIAS OA1T07.VPC053A1A ;
drop ALIAS OA1T07.VPC060A1A ;
drop ALIAS OA1T07.VPC061A1A ;
drop ALIAS OA1T07.VPC062A1A ;
drop ALIAS OA1T07.VPC070A1A ;
drop ALIAS OA1T07.VPC098A1A ;
drop ALIAS OA1T07.VPC099A1A ;
drop ALIAS OA1T07.VPC100A1A ;
drop ALIAS OA1T07.VPC101A1A ;
drop ALIAS OA1T07.VPC102A1A ;
drop ALIAS OA1T07.VPC103A1A ;
drop ALIAS OA1T07.VPC104A1A ;
drop ALIAS OA1T07.VPC105A1A ;
drop ALIAS OA1T07.VPC106A1A ;
COMMIT;
}¢--- A540769.WK.SQL(ALIASMK) cre=2010-06-15 mod=2016-11-03-09.27.27 A540769 ---
$*(--- wsh script um Alias abzugleichen -------------------------------
1. $=fun=list: eine Liste der Alias erstellen, ins dsn $aliasDsn
==> auf dem quellSystem, connect auf die richtige ssid|
2. $=fun=comp: Alias vergleichen: die fehlenden
oder unterschiedlichen aliase rausschreiben
==> auf dem zielSystem, connect auf die richtige ssid|
3. $=fun=crea: create fehlende Alias (sonst wie comp)
-------------------------------------------------------------------- $*)
call sqlConnect dbtf
$=fun = comp
$=aliasDsn=A540769.WK.TEXW(ALIAS)
eq = 0
nn = 0
if $fun == 'list' then $@¢
$>$aliasDsn
call sqlPreOpen 1, "select strip(creator) || '.' || strip(name),",
"strip(location), createdTs, ",
"strip(tbCreator) || '.' || strip(tbName)",
"from sysibm.sysTables" ,
"where type = 'A'",
"order by 1, 2"
do while sqlFetchInto(1, ":tb, :loc, :cr, :to")
$$- 'tb' tb 'loc' loc 'to' to 'cr' cr
nn = nn + 1
end
say nn 'alias gefunden'
call sqlClose 1
$! else $@¢
call sqlExec "set current sqlId = 'S100447'"
$@proc prep $@¢
call sqlPrepare 1, "select strip(creator) || '.' || strip(name),",
"strip(location), createdTs, type, ",
"strip(tbCreator) || '.' || strip(tbName)",
"from sysibm.sysTables" ,
"where creator = ? and name = ?"
$!
$@prep()
$;
$<$aliasDsn
$@for line $@¢
parse value $line with 'tb' cr '.' tb 'loc' loc 'to' to 'cr' tst .
if sqlOpAllCl(1, st, ":fTb, :fLo, :fTst, :fTy, :fTo",
, strip(cr), strip(tb)) = 1 then do
if strip(loc) = fLo & strip(to) = fTo & fTy == 'A' then do
eq = eq+1 /* say 'equal' strip(fTb) '=' */
end
else do
m = 'notEq' strip(fTb)':' strip(loc)'.'strip(to) ,
'<>' fTy fLo'.'fTo
say m
$$- m
end
end
else if m.st.0 > 0 then do
say tb 'with' m.st.0 'rows'
end
else do
$$- 'missing' strip(cr)'.'strip(tb) 'loc' strip(loc) $*+
'to' strip(to) tst
if loc = '' & $fun == 'crea' then do
call sqlExec 'create alias' strip(cr)'.'strip(tb) ,
'for' strip(to)
nn = nn + 1
if nn // 100 = 1 then do
say 'created' nn strip(cr)'.'strip(tb)
call sqlCommit
$@prep()
end
end
end
$!
call sqlCommit
say 'total equal' eq
$!
call sqlDisconnect
$#out 20100615 16:50:30
$#out 20100615 16:48:52
$#out 20100615 16:47:50
$#out 20100615 16:16:57
notEq OA1P.TTP011A1RZ4: CHSKA000DBOL.OA1P.TTP011A1 <> A .OA1P.TTP011A1
notEq OA1P.TTP012A1RZ4: CHSKA000DBOL.OA1P.TTP012A1 <> A .OA1P.TTP012A1
notEq OA1P17.TAV413A1: .OA1P03.TAV413A1 <> T ..
notEq OA1P17.TAV415A1: .OA1P03.TAV415A1 <> T ..
notEq OA1P18.TAV413A1: .OA1P03.TAV413A1 <> T ..
notEq OA1P18.TAV415A1: .OA1P03.TAV415A1 <> T ..
notEq OA1P19.TAV413A1: .OA1P03.TAV413A1 <> T ..
notEq OA1P19.TAV415A1: .OA1P03.TAV415A1 <> T ..
notEq OA1P20.TAV413A1: .OA1P03.TAV413A1 <> T ..
notEq OA1P20.TAV415A1: .OA1P03.TAV415A1 <> T ..
notEq OA1P21.TAV413A1: .OA1P03.TAV413A1 <> T ..
notEq OA1P21.TAV415A1: .OA1P03.TAV415A1 <> T ..
notEq OA1P22.TAV413A1: .OA1P03.TAV413A1 <> T ..
notEq OA1P22.TAV415A1: .OA1P03.TAV415A1 <> T ..
$#out 20100615 16:16:42
}¢--- A540769.WK.SQL(ALIASYN) cre=2006-05-23 mod=2006-06-07-14.25.32 F540769 ---
SELECT 'CREATE ALIAS '
|| STRIP(A.CREATOR) || '.' || STRIP(A.NAME) || ' FOR '
|| CASE WHEN A.LOCATION <> ''
THEN STRIP(A.LOCATION) || '.' ELSE '' END
|| STRIP(A.TBCREATOR) || '.' || STRIP(A.TBNAME) || ';'
--,A.NAME, A.CREATOR, A.DBNAME, A.TSNAME, 'X' || A.LOCATION || 'Y'
FROM SYSIBM.SYSTABLES A, SYSIBM.SYSTABLES T
WHERE A.TBCREATOR = T.CREATOR
AND A.TBNAME = T.NAME
AND A.TYPE = 'A'
AND T.TYPE <> 'A'
AND T.DBNAME LIKE 'DDI01'
;
SELECT STRIP(S.CREATOR) || ' - CREATE SYNONYM '
|| STRIP(S.NAME) ||' FOR '
|| STRIP(S.TBCREATOR) || '.' || STRIP(S.TBNAME) || ';'
FROM SYSIBM.SYSSYNONYMS S,SYSIBM.SYSTABLES T
WHERE S.TBCREATOR = T.CREATOR
AND S.TBNAME = T.NAME
AND T.DBNAME LIKE 'DDI01'
ORDER BY S.CREATOR
;
}¢--- A540769.WK.SQL(ALTER) cre=2013-03-13 mod=2013-03-13-12.47.43 A540769 -----
set current sqlid = 'S100447';
alter table A540769.twk403p1
alter column name drop not null;
rollback
}¢--- A540769.WK.SQL(ALTERADD) cre=2014-12-23 mod=2014-12-23-12.19.40 A540769 ---
alter table A540769.plan_table 00010000
add "SCAN_DIRECTION" CHAR(1) 00020000
add "EXPANSION_REASON" CHAR(2) NOT NULL WITH DEFAULT 00030000
; 00040000
rollback 00050000
}¢--- A540769.WK.SQL(ALTERGEN) cre=2014-12-12 mod=2014-12-12-11.45.32 A540769 ---
$#@
$*( alter genid to restart at next value
$*)
$= fun = s $** s = show
$** a = alter restart to mx+1
$= tb = TTT609A1
$= cr = OA1P
$= idCol = "INSTANCE_TUID"
call sqlConnect DE0G
mxC = sql2One('select max('$idCol') from' $cr'.'$tb)
say $cr'.'$tb 'max' $idCol '=' mxC
mxS = sql2One('select value(s.restartWith, s.maxAssignedVal)' ,
'from sysibm.sysSequencesDep d' ,
'join sysibm.sysSequences s' ,
'on s.sequenceId = d.bSequenceId' ,
"where dName = '"$tb"' and dCreator = '"$cr"'")
say $cr'.'$tb 'sequece max =' mxS
if $fun == 'a' then $@¢
call sqlUpdate 3, 'alter table' $cr'.'$tb,
'alter' $idCol 'restart with' (mxC + 1)
say 'altered to restart with' (mxC + 1)
$!
$#out 20141212 11:35:05
}¢--- A540769.WK.SQL(ALTERQTJ) cre=2012-06-27 mod=2012-06-28-17.36.21 A540769 ---
//A540769W JOB (CP00,KE50),'DB2 REO', 00010000
// MSGCLASS=T,TIME=1440, 00020000
// NOTIFY=&SYSUID,REGION=0M 00030000
//*MAIN CLASS=LOG0 00040000
//S1 EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99, 00020001
// PARM='%WSH'
//SYSPROC DD DSN=A540769.WK.REXX,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//OUT DD SYSOUT=*
//SYSTSIN DD DUMMY
//WSH DD *
$#@
call sqlConnect dbba
say "set sqlid sqlcode:" sqlUpdate(, "set current sqlid = 'S100447'")
$=dSp=200
$=dPa=1000
$=dTi=10
$=sleep=5
$;
$<#¢
with s as
(
SELECT strip(DBNAME) db, strip(tsName) ts,
sum(case when pqty = -1 then 0 else 1 end) pri,
sum(case when sqty = -1 then 0 else 1 end) sec,
count(*) cnt
from SYSIBM.SYSTABLEPART
where dbname not like 'DSNDB%' and dbName not like 'WKDB%'
group by dbName, tsName
)
select * from s
where pri > 0 or sec > 0
order by db, ts
with ur
$!
call sqlQuery(55)
cPa = 0
lSp = 0
do cSp=1 while sqlFetch(55, d)
cPa = cPa + m.d.cnt
/* say m.d.db m.d.ts m.d.pri m.d.sec m.d.cnt */
s1 = 'alter tablespace' m.d.db'.'m.d.ts
if m.d.pri <> 0 then
call sqlUpdate , s1 'priqty -1', '* say'
if m.d.sec <> 0 then
call sqlUpdate , s1 'secqty -1', '* say'
if cSp >= lSp | cPa >= lPa | time('e') >= lTi then do
say time() 'commit' cSp 'tb,' cPa 'parts,' m.d.db'.'m.d.ts ,
': sqlCode' sqlUpdate(, 'commit')
call sleep $sleep, 0
lSp = cSp + $dSp
lPa = cPa + $dPa
lTi = time('e') + $dTi
end
end
say time() 'end commit' (cSp-1) 'tb,' cPa 'parts,' m.d.db'.'m.d.ts ,
': sqlCode' sqlUpdate(, 'commit')
call sqlClose 55
$;
$<#¢
with s as
(
SELECT strip(ixCreator) cr, strip(ixName) ix,
sum(case when pqty = -1 then 0 else 1 end) pri,
sum(case when sqty = -1 then 0 else 1 end) sec,
count(*) cnt
from SYSIBM.SYSIndexPART ip
join sysibm.sysIndexes ix
on ip.ixcreator = ix.creator and ip.ixName = ix.name
where ix.dbname not like 'DSNDB%' and ix.dbName not like 'WKDB%'
group by ixCreator, ixName
)
select * from s
where pri > 0 or sec > 0
order by cr, ix
with ur
$!
call sqlQuery(66)
cPa = 0
lSp = 0
do cSp=1 while sqlFetch(66, d)
cPa = cPa + m.d.cnt
/* say m.d.cr m.d.ix m.d.pri m.d.sec m.d.cnt */
s1 = 'alter index' m.d.cr'."'m.d.ix'"'
if m.d.pri <> 0 then
call sqlUpdate , s1 'priqty -1', '* say'
if m.d.sec <> 0 then
call sqlUpdate , s1 'secqty -1', '* say'
if cSp >= lSp | cPa >= lPa | time('e') >= lTi then do
say time() 'commit' cSp 'ix,' cPa 'parts,' m.d.cr'.'m.d.ix ,
': sqlCode' sqlUpdate(, 'commit')
call sleep $sleep, 0
lSp = cSp + $dSp
lPa = cPa + $dPa
lTi = time('e') + $dTi
end
end
say time() 'end commit' (cSp-1) 'ix,' cPa 'parts,' m.d.db'.'m.d.ts ,
': sqlCode' sqlUpdate(, 'commit')
call sqlClose 66
$;
$#out 20120628 17:30:19
$#out 20120628 13:47:29
$#out 20120627 17:51:57
}¢--- A540769.WK.SQL(ALTERQTY) cre=2012-06-27 mod=2016-03-29-14.00.57 A540769 ---
$#@
call sqlConnect dp4g
$<>
$<#¢
with s as
(
SELECT strip(DBNAME) db, strip(tsName) ts,
sum(case when pqty = -1 then 0 else 1 end) pri,
sum(case when sqty = -1 then 0 else 1 end) sec,
count(*) cnt
from SYSIBM.SYSTABLEPART
where dbname like 'DB2PDB%'
group by dbName, tsName
)
select 'alter tablespace' || strip(dbName) || '.' || strip(tsName)
|| ' priQty -1 secQty -1;'
where pri > 0 or sec > 0
order by db, ts
with ur
$!
call sqlSel
$| call fTabAuto
$#end
call sqlConnect dp4g
say "set sqlid sqlcode:" sqlUpdate(, "set current sqlid = 'S100447'")
$=dSp=200
$=dPa=1000
$=dTi=10
$=sleep=1
$;
$<#¢
with s as
(
SELECT strip(DBNAME) db, strip(tsName) ts,
sum(case when pqty = -1 then 0 else 1 end) pri,
sum(case when sqty = -1 then 0 else 1 end) sec,
count(*) cnt
from SYSIBM.SYSTABLEPART
where dbname not like 'DSNDB%' and dbName not like 'WKDB%'
group by dbName, tsName
)
select * from s
where pri > 0 or sec > 0
order by db, ts
with ur
$!
call sqlQuery(55)
cPa = 0
lSp = 0
do cSp=1 while sqlFetch(55, d)
cPa = cPa + m.d.cnt
/* say m.d.db m.d.ts m.d.pri m.d.sec m.d.cnt */
s1 = 'alter tablespace' m.d.db'.'m.d.ts
if m.d.pri <> 0 then
call sqlUpdate , s1 'priqty -1', '* say'
if m.d.sec <> 0 then
call sqlUpdate , s1 'secqty -1', '* say'
if cSp >= lSp | cPa >= lPa | time('e') >= lTi then do
say time() 'commit' cSp 'tb,' cPa 'parts,' m.d.db'.'m.d.ts ,
': sqlCode' sqlUpdate(, 'commit')
call sleep $sleep, 0
lSp = cSp + $dSp
lPa = cPa + $dPa
lTi = time('e') + $dTi
end
end
say time() 'end commit' (cSp-1) 'tb,' cPa 'parts,' m.d.db'.'m.d.ts ,
': sqlCode' sqlUpdate(, 'commit')
call sqlClose 55
$;
$<#¢
with s as
(
SELECT strip(ixCreator) cr, strip(ixName) ix,
sum(case when pqty = -1 then 0 else 1 end) pri,
sum(case when sqty = -1 then 0 else 1 end) sec,
count(*) cnt
from SYSIBM.SYSIndexPART ip
join sysibm.sysIndexes ix
on ip.ixcreator = ix.creator and ip.ixName = ix.name
where ix.dbname not like 'DSNDB%' and ix.dbName not like 'WKDB%'
group by ixCreator, ixName
)
select * from s
where pri > 0 or sec > 0
order by cr, ix
with ur
$!
call sqlQuery(66)
cPa = 0
lSp = 0
do cSp=1 while sqlFetch(66, d)
cPa = cPa + m.d.cnt
/* say m.d.cr m.d.ix m.d.pri m.d.sec m.d.cnt */
s1 = 'alter index' m.d.cr'."'m.d.ix'"'
if m.d.pri <> 0 then
call sqlUpdate , s1 'priqty -1', '* say'
if m.d.sec <> 0 then
call sqlUpdate , s1 'secqty -1', '* say'
if cSp >= lSp | cPa >= lPa | time('e') >= lTi then do
say time() 'commit' cSp 'ix,' cPa 'parts,' m.d.cr'.'m.d.ix ,
': sqlCode' sqlUpdate(, 'commit')
call sleep $sleep, 0
lSp = cSp + $dSp
lPa = cPa + $dPa
lTi = time('e') + $dTi
end
end
say time() 'end commit' (cSp-1) 'tb,' cPa 'parts,' m.d.db'.'m.d.ts ,
': sqlCode' sqlUpdate(, 'commit')
call sqlClose 66
$;
$#out 20160329 13:58:22
DB TS P S C
DB2PDB1 DMRPRAAA 1 1 1
DB2PDB1 DMRPRATR 1 1 1
DB2PDB1 DMRPRAUB 1 1 1
DB2PDB1 DMRPRAUC 1 1 1
DB2PDB1 DMRPRAUD 1 1 1
DB2PDB1 DMRPRAUF 1 1 1
DB2PDB1 DMRPRAUG 1 1 1
DB2PDB1 DMRPRAUM 1 1 1
DB2PDB1 DMRPRAUN 1 1 1
DB2PDB1 DMRPRAUS 1 0 1
DB2PDB1 DMRPRAUU 1 1 1
DB2PDB1 DMRPRTA2 1 1 1
DB2PDB1 DMRPRTB2 1 1 1
DB2PDB1 DMRPRTBD 1 1 1
DB2PDB1 DMRPRTBS 1 1 1
DB2PDB1 DMRPRTD2 1 1 1
DB2PDB1 DMRPRTDD 1 1 1
DB2PDB1 DMRPRTDS 1 1 1
DB2PDB1 DMRPRTF2 1 1 1
DB2PDB1 DMRPRTFS 1 1 1
DB2PDB1 DMRPRTP2 1 1 1
DB2PDB1 DMRPRTSF 1 1 1
DB2PDB1 DMRPRTSS 1 0 1
DB2PDB1 DMRPRTT2 1 1 1
DB2PDB1 DMRPRTTS 1 1 1
$#out 20120628 13:47:29
$#out 20120627 17:51:57
}¢--- A540769.WK.SQL(ALTER01) cre=2012-05-25 mod=2012-05-25-10.37.02 A540769 ---
select count(*), ALT05004, year(ALT05006)
from S100447.alter01
where ALT05007 = 'DBOF'
group by ALT05004, year(ALT05006)
order by 3 desc, 2
-- fetch first 1000 rows only
with ur
}¢--- A540769.WK.SQL(ALTREST) cre=2006-03-06 mod=2006-03-06-10.35.16 F540769 ---
alter table dgdb9998.TWK0x1A 00020004
alter column WK001xD restart with 111; 00030003
commit; 00040000
}¢--- A540769.WK.SQL(ALTTB) cre=2006-03-03 mod=2006-03-03-17.26.11 F540769 -----
set current sqlid = 's100447';
alter table A540769.twk001a drop column
}¢--- A540769.WK.SQL(AUTH) cre=2008-06-30 mod=2008-07-07-10.14.54 F540769 ------
set current sqlid = 'Y104639';
select * from A540769a.Twk011A;
x
select current sqlid
from sysibm.sysdummy1;
set current sqlid = 'A345345';
-- create database gibtEsNi;
--drop database gibtEsNi;
rollback;
select *
-- from oa1a.TMF009A1
from A540769A.TWK011A
fetch first 10 rows only
;
update
-- oa1a.TMF009A1
A540769A.TWK011A
set WK011CH2 = 'x'
;
fetch first 10 rows only
}¢--- A540769.WK.SQL(AV115) cre=2015-03-19 mod=2015-03-19-10.12.05 A540769 -----
set current sqlid = 'S100447';
?REATE INDEX OA1P.IAV115A1 ON OA1P.TAV115A1
( AV115264 ASC
, AV115193 ASC
)
PARTITIONED
USING STOGROUP GSMS
ERASE NO
FREEPAGE 0
PCTFREE 10
BUFFERPOOL BP1
CLOSE YES
DEFER YES
;
commit;
}¢--- A540769.WK.SQL(AV15047C) cre=2013-05-29 mod=2013-05-29-09.11.00 A540769 ---
set current sqlid = 'S100447';
set current schema OA1A;
CREATE VIEW OA1A.VAV160B1
( PARTITIONID , REPRTUUID , OBJECTTYPECD , ELEMENTNBR ,
MKTVALINREPRTCCY , ACCRINTINREPRTCCY , TOTALMKTVALINREPRTCCY ,
VALTYPECD , ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS ,
ASSETSUBCLASS , ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD ,
MSCISECTCD , MSCIGROUPCD , MSCIINDSTRYCD , MSCISUBINDSTRYCD ,
OBJUUID , ANALYSISCCYDERIVED , ASSETCLASSDERIVED ,
ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , RATEGRPCD ) AS
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , SECNO ,
MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
, ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , MSCISECTCD ,
MSCIGROUPCD , MSCIINDSTRYCD , MSCISUBINDSTRYCD , OBJUUID ,
ANALYSISCCYDERIVED , ASSETCLASSDERIVED , ASSETCLASS01DERIVED ,
ASSETCLASS02DERIVED , RATEGRPCD
FROM OA1A.VAV111J1
WHERE POSITIONTYPECD = 1 AND ISINCLFUNDUNBUNDLING = 'N' AND
MKTVALINREPRTCCY IS NOT NULL
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , SECNO ,
MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
, ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , MSCISECTCD ,
MSCIGROUPCD , MSCIINDSTRYCD , MSCISUBINDSTRYCD , OBJUUID ,
ANALYSISCCYDERIVED , ASSETCLASSDERIVED , ASSETCLASS01DERIVED ,
ASSETCLASS02DERIVED , RATEGRPCD
FROM OA1A.VAV112J1
WHERE POSITIONTYPECD = 1 AND ISINCLFUNDUNBUNDLING = 'N' AND
MKTVALINREPRTCCY IS NOT NULL
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , 'FuBu-Pos' ,
MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
, ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , MSCISECTCD ,
MSCIGROUPCD , MSCIINDSTRYCD , MSCISUBINDSTRYCD , OBJUUID ,
ANALYSISCCYDERIVED , ASSETCLASSDERIVED , ASSETCLASS01DERIVED ,
ASSETCLASS02DERIVED , ''
FROM OA1A.VAV113A1
WHERE MKTVALINREPRTCCY IS NOT NULL
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , ACCNO ,
MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
, ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , CASE WHEN (
ANALYSISSECTCD = '260' ) THEN '15' ELSE '40' END , '10' , '00' ,
'00' , OBJUUID , ANALYSISCCYDERIVED , ASSETCLASSDERIVED ,
ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
FROM OA1A.VAV121J1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , ACCNO ,
MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
, ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , CASE WHEN (
ANALYSISSECTCD = '260' ) THEN '15' ELSE '40' END , '10' , '00' ,
'00' , OBJUUID , ANALYSISCCYDERIVED , ASSETCLASSDERIVED ,
ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
FROM OA1A.VAV122J1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , ACCNO ,
MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
, ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , CASE WHEN (
ANALYSISSECTCD = '260' ) THEN '15' ELSE '40' END , '10' , '00' ,
'00' , OBJUUID , ANALYSISCCYDERIVED , ASSETCLASSDERIVED ,
ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
FROM OA1A.VAV123J1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , OPICSDEALNO ,
MKTVALINREPRTCCY , 0 , COALESCE ( MKTVALINREPRTCCY , 0 ) , '0' ,
COUNTERCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
, '000' , '05' , BVGCATCD , '00' , '00' , '00' , '00' , OBJUUID
, ANALYSISCCYDERIVED , ASSETCLASSDERIVED , ASSETCLASS01DERIVED ,
ASSETCLASS02DERIVED , ''
FROM OA1A.VAV132A1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , TRADEID ,
MKTVALINREPRTCCY , 0 , COALESCE ( MKTVALINREPRTCCY , 0 ) , '0' ,
CTRNOTIONALCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS ,
ASSETSUBCLASS , '000' , '05' , BVGCATCD , '00' , '00' , '00' ,
'00' , OBJUUID , ANALYSISCCYDERIVED , ASSETCLASSDERIVED ,
ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
FROM OA1A.VAV133A1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , CONCAT ( CONCAT (
TRDCCYCD , '/' ) , CONCAT ( COUNTERCCYCD , CONCAT ( '@' , CHAR (
MTYDT , ISO ) ) ) ) , MKTVALINREPRTCCY , 0 , COALESCE (
MKTVALINREPRTCCY , 0 ) , '0' , COUNTERCCYCD , ANALYSISCNTRYCD ,
ASSETMAINCLASS , ASSETSUBCLASS , '000' , '05' , BVGCATCD , '00'
, '00' , '00' , '00' , OBJUUID , ANALYSISCCYDERIVED ,
ASSETCLASSDERIVED , ASSETCLASS01DERIVED , ASSETCLASS02DERIVED ,
''
FROM OA1A.VAV135A1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL
;
-- OA1A.VAV160E1 WILL BE CREATED VIA THESE NATIVE DB2 COMMANDS.
CREATE VIEW OA1A.VAV160E1
( PARTITIONID , REPRTUUID , OBJECTTYPECD , ELEMENTNBR ,
MKTVALINREPRTCCY , ACCRINTINREPRTCCY , TOTALMKTVALINREPRTCCY ,
VALTYPECD , ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS ,
ASSETSUBCLASS , ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD ,
MSCISECTCD , MSCIGROUPCD , MSCIINDSTRYCD , MSCISUBINDSTRYCD ,
OBJUUID , ANALYSISCCYDERIVED , ASSETCLASSDERIVED ,
ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , RATEGRPCD ) AS
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , SECNO ,
MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
, ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , MSCISECTCD ,
MSCIGROUPCD , MSCIINDSTRYCD , MSCISUBINDSTRYCD , OBJUUID ,
ANALYSISCCYDERIVED , ASSETCLASSDERIVED , ASSETCLASS01DERIVED ,
ASSETCLASS02DERIVED , RATEGRPCD
FROM OA1A.VAV111J1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
REPRTBLOCCD = '10'
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , SECNO ,
MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
, ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , MSCISECTCD ,
MSCIGROUPCD , MSCIINDSTRYCD , MSCISUBINDSTRYCD , OBJUUID ,
ANALYSISCCYDERIVED , ASSETCLASSDERIVED , ASSETCLASS01DERIVED ,
ASSETCLASS02DERIVED , RATEGRPCD
FROM OA1A.VAV112J1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
REPRTBLOCCD = '10'
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , ACCNO ,
MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
, ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , CASE WHEN (
ANALYSISSECTCD = '260' ) THEN '15' ELSE '40' END , '10' , '00' ,
'00' , OBJUUID , ANALYSISCCYDERIVED , ASSETCLASSDERIVED ,
ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
FROM OA1A.VAV121J1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
REPRTBLOCCD = '10'
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , ACCNO ,
MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
, ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , CASE WHEN (
ANALYSISSECTCD = '260' ) THEN '15' ELSE '40' END , '10' , '00' ,
'00' , OBJUUID , ANALYSISCCYDERIVED , ASSETCLASSDERIVED ,
ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
FROM OA1A.VAV122J1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
REPRTBLOCCD = '10'
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , ACCNO ,
MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
, ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , CASE WHEN (
ANALYSISSECTCD = '260' ) THEN '15' ELSE '40' END , '10' , '00' ,
'00' , OBJUUID , ANALYSISCCYDERIVED , ASSETCLASSDERIVED ,
ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
FROM OA1A.VAV123J1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
REPRTBLOCCD = '10'
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , OPICSDEALNO ,
MKTVALINREPRTCCY , 0 , COALESCE ( MKTVALINREPRTCCY , 0 ) , '0' ,
COUNTERCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
, '000' , '05' , BVGCATCD , '00' , '00' , '00' , '00' , OBJUUID
, ANALYSISCCYDERIVED , ASSETCLASSDERIVED , ASSETCLASS01DERIVED ,
ASSETCLASS02DERIVED , ''
FROM OA1A.VAV132A1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
REPRTBLOCCD = '10'
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , TRADEID ,
MKTVALINREPRTCCY , 0 , COALESCE ( MKTVALINREPRTCCY , 0 ) , '0' ,
CTRNOTIONALCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS ,
ASSETSUBCLASS , '000' , '05' , BVGCATCD , '00' , '00' , '00' ,
'00' , OBJUUID , ANALYSISCCYDERIVED , ASSETCLASSDERIVED ,
ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
FROM OA1A.VAV133A1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
REPRTBLOCCD = '10'
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , CONCAT ( CONCAT (
TRDCCYCD , '/' ) , CONCAT ( COUNTERCCYCD , CONCAT ( '@' , CHAR (
MTYDT , ISO ) ) ) ) , MKTVALINREPRTCCY , 0 , COALESCE (
MKTVALINREPRTCCY , 0 ) , '0' , COUNTERCCYCD , ANALYSISCNTRYCD ,
ASSETMAINCLASS , ASSETSUBCLASS , '000' , '05' , BVGCATCD , '00'
, '00' , '00' , '00' , OBJUUID , ANALYSISCCYDERIVED ,
ASSETCLASSDERIVED , ASSETCLASS01DERIVED , ASSETCLASS02DERIVED ,
''
FROM OA1A.VAV135A1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
REPRTBLOCCD = '10'
;
-- OA1A.VAV160G1 WILL BE CREATED VIA THESE NATIVE DB2 COMMANDS.
CREATE VIEW OA1A.VAV160G1
( PARTITIONID , REPRTUUID , OBJECTTYPECD , ELEMENTNBR , MTYDT ,
SUBPERIODMONTH , SUBPERIODYEAR , REDEMPTCCYCD ,
REDEMPTVALINREDEMPTCCY , REDEMPTVALINREPRTCCY , OBJUUID ,
ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , RATEGRPCD ) AS
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , SECNO , CASE WHEN (
MTYDT IS NULL ) THEN '31.12.9999' ELSE MTYDT END , CASE WHEN (
MTYDT IS NULL ) THEN '999999' ELSE SUBSTR ( CHAR ( MTYDT , ISO )
, 1 , 4 ) CONCAT SUBSTR ( CHAR ( MTYDT , ISO ) , 6 , 2 ) END ,
CASE WHEN ( MTYDT IS NULL ) THEN '9999' ELSE SUBSTR ( CHAR (
MTYDT , ISO ) , 1 , 4 ) END , REDEMPTCCYCD ,
REDEMPTVALINREDEMPTCCY , REDEMPTVALINREPRTCCY , OBJUUID ,
ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , RATEGRPCD
FROM OA1A.VAV111J1
WHERE POSITIONTYPECD = 1 AND REDEMPTVALINREDEMPTCCY IS NOT NULL AND
REDEMPTVALINREPRTCCY IS NOT NULL AND VALTYPECD = '0' AND
REPRTBLOCCD = '10'
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , SECNO , CASE WHEN (
MTYDT IS NULL ) THEN '31.12.9999' ELSE MTYDT END , CASE WHEN (
MTYDT IS NULL ) THEN '999999' ELSE SUBSTR ( CHAR ( MTYDT , ISO )
, 1 , 4 ) CONCAT SUBSTR ( CHAR ( MTYDT , ISO ) , 6 , 2 ) END ,
CASE WHEN ( MTYDT IS NULL ) THEN '9999' ELSE SUBSTR ( CHAR (
MTYDT , ISO ) , 1 , 4 ) END , CASE WHEN ( SECPOSCCYCD IN (
' ' , '0000' ) ) THEN SECCCYCD ELSE SECPOSCCYCD END ,
MKTVALINPOSCCY , MKTVALINREPRTCCY , OBJUUID ,
ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , RATEGRPCD
FROM OA1A.VAV112J1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
VALTYPECD = '0' AND REPRTBLOCCD = '10'
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , ACCNO , '01.01.0001' ,
'000000' , '0000' , ACCCCYCD , MKTVALINACCCCY , MKTVALINREPRTCCY
, OBJUUID , ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
FROM OA1A.VAV121J1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
REPRTBLOCCD = '10'
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , ACCNO , CASE WHEN (
MTYDT IS NULL ) THEN '31.12.9999' ELSE MTYDT END , CASE WHEN (
MTYDT IS NULL ) THEN '999999' ELSE SUBSTR ( CHAR ( MTYDT , ISO )
, 1 , 4 ) CONCAT SUBSTR ( CHAR ( MTYDT , ISO ) , 6 , 2 ) END ,
CASE WHEN ( MTYDT IS NULL ) THEN '9999' ELSE SUBSTR ( CHAR (
MTYDT , ISO ) , 1 , 4 ) END , ACCCCYCD , MKTVALINACCCCY ,
MKTVALINREPRTCCY , OBJUUID , ASSETCLASS01DERIVED ,
ASSETCLASS02DERIVED , ''
FROM OA1A.VAV123J1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
REPRTBLOCCD = '10'
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , CONCAT ( CONCAT (
TRDCCYCD , '/' ) , CONCAT ( COUNTERCCYCD , CONCAT ( '@' , CHAR (
MTYDT , ISO ) ) ) ) , MTYDT , SUBSTR ( CHAR ( MTYDT , ISO ) , 1
, 4 ) CONCAT SUBSTR ( CHAR ( MTYDT , ISO ) , 6 , 2 ) , SUBSTR (
CHAR ( MTYDT , ISO ) , 1 , 4 ) , TRDCCYCD ,
BALANCEOFTRDPARTINTRDCCY , BALANCEOFTRDPARTINREPRTCCY , OBJUUID
, ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
FROM OA1A.VAV135A1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
TREASURYTYPECD = 1 AND ASSETSUBCLASS = '01' AND REPRTBLOCCD =
'10'
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , CONCAT ( CONCAT (
TRDCCYCD , '/' ) , CONCAT ( COUNTERCCYCD , CONCAT ( '@' , CHAR (
MTYDT , ISO ) ) ) ) , MTYDT , SUBSTR ( CHAR ( MTYDT , ISO ) , 1
, 4 ) CONCAT SUBSTR ( CHAR ( MTYDT , ISO ) , 6 , 2 ) , SUBSTR (
CHAR ( MTYDT , ISO ) , 1 , 4 ) , COUNTERCCYCD ,
BALANCEOFCTRPARTINCTRCCY , BALANCEOFCTRPARTINREPRTCCY , OBJUUID
, ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
FROM OA1A.VAV135A1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
REPRTBLOCCD = '10'
;
-- OA1A.VAV160C1 WILL BE CREATED VIA THESE NATIVE DB2 COMMANDS.
CREATE VIEW OA1A.VAV160C1
( PARTITIONID , REPRTUUID , OBJECTTYPECD , ELEMENTNBR , MTYDT ,
SUBPERIODMONTH , SUBPERIODYEAR , REDEMPTCCYCD ,
REDEMPTVALINREDEMPTCCY , REDEMPTVALINREPRTCCY , OBJUUID ,
ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , RATEGRPCD ) AS
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , SECNO , CASE WHEN (
MTYDT IS NULL ) THEN '31.12.9999' ELSE MTYDT END , CASE WHEN (
MTYDT IS NULL ) THEN '999999' ELSE SUBSTR ( CHAR ( MTYDT , ISO )
, 1 , 4 ) CONCAT SUBSTR ( CHAR ( MTYDT , ISO ) , 6 , 2 ) END ,
CASE WHEN ( MTYDT IS NULL ) THEN '9999' ELSE SUBSTR ( CHAR (
MTYDT , ISO ) , 1 , 4 ) END , REDEMPTCCYCD ,
REDEMPTVALINREDEMPTCCY , REDEMPTVALINREPRTCCY , OBJUUID ,
ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , RATEGRPCD
FROM OA1A.VAV111J1
WHERE POSITIONTYPECD = 1 AND REDEMPTVALINREDEMPTCCY IS NOT NULL AND
REDEMPTVALINREPRTCCY IS NOT NULL AND VALTYPECD = '0'
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , SECNO , CASE WHEN (
MTYDT IS NULL ) THEN '31.12.9999' ELSE MTYDT END , CASE WHEN (
MTYDT IS NULL ) THEN '999999' ELSE SUBSTR ( CHAR ( MTYDT , ISO )
, 1 , 4 ) CONCAT SUBSTR ( CHAR ( MTYDT , ISO ) , 6 , 2 ) END ,
CASE WHEN ( MTYDT IS NULL ) THEN '9999' ELSE SUBSTR ( CHAR (
MTYDT , ISO ) , 1 , 4 ) END , CASE WHEN ( SECPOSCCYCD IN (
' ' , '0000' ) ) THEN SECCCYCD ELSE SECPOSCCYCD END ,
MKTVALINPOSCCY , MKTVALINREPRTCCY , OBJUUID ,
ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , RATEGRPCD
FROM OA1A.VAV112J1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
VALTYPECD = '0'
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , ACCNO , '01.01.0001' ,
'000000' , '0000' , ACCCCYCD , MKTVALINACCCCY , MKTVALINREPRTCCY
, OBJUUID , ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
FROM OA1A.VAV121J1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , ACCNO , CASE WHEN (
MTYDT IS NULL ) THEN '31.12.9999' ELSE MTYDT END , CASE WHEN (
MTYDT IS NULL ) THEN '999999' ELSE SUBSTR ( CHAR ( MTYDT , ISO )
, 1 , 4 ) CONCAT SUBSTR ( CHAR ( MTYDT , ISO ) , 6 , 2 ) END ,
CASE WHEN ( MTYDT IS NULL ) THEN '9999' ELSE SUBSTR ( CHAR (
MTYDT , ISO ) , 1 , 4 ) END , ACCCCYCD , MKTVALINACCCCY ,
MKTVALINREPRTCCY , OBJUUID , ASSETCLASS01DERIVED ,
ASSETCLASS02DERIVED , ''
FROM OA1A.VAV123J1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , CONCAT ( CONCAT (
TRDCCYCD , '/' ) , CONCAT ( COUNTERCCYCD , CONCAT ( '@' , CHAR (
MTYDT , ISO ) ) ) ) , MTYDT , SUBSTR ( CHAR ( MTYDT , ISO ) , 1
, 4 ) CONCAT SUBSTR ( CHAR ( MTYDT , ISO ) , 6 , 2 ) , SUBSTR (
CHAR ( MTYDT , ISO ) , 1 , 4 ) , TRDCCYCD ,
BALANCEOFTRDPARTINTRDCCY , BALANCEOFTRDPARTINREPRTCCY , OBJUUID
, ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
FROM OA1A.VAV135A1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
TREASURYTYPECD = 1 AND ASSETSUBCLASS = '01'
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , CONCAT ( CONCAT (
TRDCCYCD , '/' ) , CONCAT ( COUNTERCCYCD , CONCAT ( '@' , CHAR (
MTYDT , ISO ) ) ) ) , MTYDT , SUBSTR ( CHAR ( MTYDT , ISO ) , 1
, 4 ) CONCAT SUBSTR ( CHAR ( MTYDT , ISO ) , 6 , 2 ) , SUBSTR (
CHAR ( MTYDT , ISO ) , 1 , 4 ) , COUNTERCCYCD ,
BALANCEOFCTRPARTINCTRCCY , BALANCEOFCTRPARTINREPRTCCY , OBJUUID
, ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
FROM OA1A.VAV135A1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL
;
-- OA1A.VAV160F1 WILL BE CREATED VIA THESE NATIVE DB2 COMMANDS.
CREATE VIEW OA1A.VAV160F1
( PARTITIONID , REPRTUUID , OBJECTTYPECD , ELEMENTNBR ,
MKTVALINREPRTCCY , ACCRINTINREPRTCCY , TOTALMKTVALINREPRTCCY ,
VALTYPECD , ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS ,
ASSETSUBCLASS , ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD ,
MSCISECTCD , MSCIGROUPCD , MSCIINDSTRYCD , MSCISUBINDSTRYCD ,
OBJUUID , ANALYSISCCYDERIVED , ASSETCLASSDERIVED ,
ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , RATEGRPCD ) AS
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , SECNO ,
MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
, ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , MSCISECTCD ,
MSCIGROUPCD , MSCIINDSTRYCD , MSCISUBINDSTRYCD , OBJUUID ,
ANALYSISCCYDERIVED , ASSETCLASSDERIVED , ASSETCLASS01DERIVED ,
ASSETCLASS02DERIVED , RATEGRPCD
FROM OA1A.VAV111J1
WHERE POSITIONTYPECD = 1 AND ISINCLFUNDUNBUNDLING = 'N' AND
MKTVALINREPRTCCY IS NOT NULL AND REPRTBLOCCD = '10'
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , SECNO ,
MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
, ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , MSCISECTCD ,
MSCIGROUPCD , MSCIINDSTRYCD , MSCISUBINDSTRYCD , OBJUUID ,
ANALYSISCCYDERIVED , ASSETCLASSDERIVED , ASSETCLASS01DERIVED ,
ASSETCLASS02DERIVED , RATEGRPCD
FROM OA1A.VAV112J1
WHERE POSITIONTYPECD = 1 AND ISINCLFUNDUNBUNDLING = 'N' AND
MKTVALINREPRTCCY IS NOT NULL AND REPRTBLOCCD = '10'
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , 'FuBu-Pos' ,
MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
, ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , MSCISECTCD ,
MSCIGROUPCD , MSCIINDSTRYCD , MSCISUBINDSTRYCD , OBJUUID ,
ANALYSISCCYDERIVED , ASSETCLASSDERIVED , ASSETCLASS01DERIVED ,
ASSETCLASS02DERIVED , ''
FROM OA1A.VAV113A1
WHERE MKTVALINREPRTCCY IS NOT NULL
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , ACCNO ,
MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
, ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , CASE WHEN (
ANALYSISSECTCD = '260' ) THEN '15' ELSE '40' END , '10' , '00' ,
'00' , OBJUUID , ANALYSISCCYDERIVED , ASSETCLASSDERIVED ,
ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
FROM OA1A.VAV121J1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
REPRTBLOCCD = '10'
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , ACCNO ,
MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
, ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , CASE WHEN (
ANALYSISSECTCD = '260' ) THEN '15' ELSE '40' END , '10' , '00' ,
'00' , OBJUUID , ANALYSISCCYDERIVED , ASSETCLASSDERIVED ,
ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
FROM OA1A.VAV122J1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
REPRTBLOCCD = '10'
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , ACCNO ,
MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
, ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , CASE WHEN (
ANALYSISSECTCD = '260' ) THEN '15' ELSE '40' END , '10' , '00' ,
'00' , OBJUUID , ANALYSISCCYDERIVED , ASSETCLASSDERIVED ,
ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
FROM OA1A.VAV123J1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
REPRTBLOCCD = '10'
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , OPICSDEALNO ,
MKTVALINREPRTCCY , 0 , COALESCE ( MKTVALINREPRTCCY , 0 ) , '0' ,
COUNTERCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
, '000' , '05' , BVGCATCD , '00' , '00' , '00' , '00' , OBJUUID
, ANALYSISCCYDERIVED , ASSETCLASSDERIVED , ASSETCLASS01DERIVED ,
ASSETCLASS02DERIVED , ''
FROM OA1A.VAV132A1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
REPRTBLOCCD = '10'
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , TRADEID ,
MKTVALINREPRTCCY , 0 , COALESCE ( MKTVALINREPRTCCY , 0 ) , '0' ,
CTRNOTIONALCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS ,
ASSETSUBCLASS , '000' , '05' , BVGCATCD , '00' , '00' , '00' ,
'00' , OBJUUID , ANALYSISCCYDERIVED , ASSETCLASSDERIVED ,
ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
FROM OA1A.VAV133A1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
REPRTBLOCCD = '10'
UNION ALL
SELECT PARTITIONID , REPRTUUID , OBJECTTYPECD , CONCAT ( CONCAT (
TRDCCYCD , '/' ) , CONCAT ( COUNTERCCYCD , CONCAT ( '@' , CHAR (
MTYDT , ISO ) ) ) ) , MKTVALINREPRTCCY , 0 , COALESCE (
MKTVALINREPRTCCY , 0 ) , '0' , COUNTERCCYCD , ANALYSISCNTRYCD ,
ASSETMAINCLASS , ASSETSUBCLASS , '000' , '05' , BVGCATCD , '00'
, '00' , '00' , '00' , OBJUUID , ANALYSISCCYDERIVED ,
ASSETCLASSDERIVED , ASSETCLASS01DERIVED , ASSETCLASS02DERIVED ,
''
FROM OA1A.VAV135A1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
REPRTBLOCCD = '10'
;
-- OA1A.VAV160H1 WILL BE CREATED VIA THESE NATIVE DB2 COMMANDS.
CREATE VIEW OA1A.VAV160H1
( PARTITIONID , REPRTUUID , REDEMPTCCYCD , TOTALMKTVALINREPRTCCY
, DURATION , ASSETCLASS01DERIVED , ASSETCLASS02DERIVED ) AS
SELECT PARTITIONID , REPRTUUID , REDEMPTCCYCD , MKTVALINREPRTCCY +
ACCRINTINREPRTCCY , DURATION , ASSETCLASS01DERIVED ,
ASSETCLASS02DERIVED
FROM OA1A.VAV111J1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
VALTYPECD = '0'
UNION ALL
SELECT PARTITIONID , REPRTUUID , CASE WHEN ( SECPOSCCYCD IN ( ' ' ,
'0000' ) ) THEN SECCCYCD ELSE SECPOSCCYCD END , MKTVALINREPRTCCY
+ ACCRINTINREPRTCCY , DURATION , ASSETCLASS01DERIVED ,
ASSETCLASS02DERIVED
FROM OA1A.VAV112J1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
VALTYPECD = '0'
UNION ALL
SELECT PARTITIONID , REPRTUUID , ACCCCYCD , MKTVALINREPRTCCY +
ACCRINTINREPRTCCY , 0 , ASSETCLASS01DERIVED ,
ASSETCLASS02DERIVED
FROM OA1A.VAV121J1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL
UNION ALL
SELECT PARTITIONID , REPRTUUID , ACCCCYCD , MKTVALINREPRTCCY +
ACCRINTINREPRTCCY , 0 , ASSETCLASS01DERIVED ,
ASSETCLASS02DERIVED
FROM OA1A.VAV123J1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL
UNION ALL
SELECT PARTITIONID , REPRTUUID , TRDCCYCD , MKTVALINREPRTCCY , 0 ,
ASSETCLASS01DERIVED , ASSETCLASS02DERIVED
FROM OA1A.VAV135A1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
TREASURYTYPECD = 1 AND ASSETSUBCLASS = '01'
UNION ALL
SELECT PARTITIONID , REPRTUUID , COUNTERCCYCD , MKTVALINREPRTCCY , 0 ,
ASSETCLASS01DERIVED , ASSETCLASS02DERIVED
FROM OA1A.VAV135A1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL
;
-- OA1A.VAV160J1 WILL BE CREATED VIA THESE NATIVE DB2 COMMANDS.
CREATE VIEW OA1A.VAV160J1
( PARTITIONID , REPRTUUID , REDEMPTCCYCD , TOTALMKTVALINREPRTCCY
, DURATION , ASSETCLASS01DERIVED , ASSETCLASS02DERIVED ) AS
SELECT PARTITIONID , REPRTUUID , REDEMPTCCYCD , MKTVALINREPRTCCY +
ACCRINTINREPRTCCY , DURATION , ASSETCLASS01DERIVED ,
ASSETCLASS02DERIVED
FROM OA1A.VAV111J1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
VALTYPECD = '0' AND REPRTBLOCCD = '10'
UNION ALL
SELECT PARTITIONID , REPRTUUID , CASE WHEN ( SECPOSCCYCD IN ( ' ' ,
'0000' ) ) THEN SECCCYCD ELSE SECPOSCCYCD END , MKTVALINREPRTCCY
+ ACCRINTINREPRTCCY , DURATION , ASSETCLASS01DERIVED ,
ASSETCLASS02DERIVED
FROM OA1A.VAV112J1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
VALTYPECD = '0' AND REPRTBLOCCD = '10'
UNION ALL
SELECT PARTITIONID , REPRTUUID , ACCCCYCD , MKTVALINREPRTCCY +
ACCRINTINREPRTCCY , 0 , ASSETCLASS01DERIVED ,
ASSETCLASS02DERIVED
FROM OA1A.VAV121J1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
REPRTBLOCCD = '10'
UNION ALL
SELECT PARTITIONID , REPRTUUID , ACCCCYCD , MKTVALINREPRTCCY +
ACCRINTINREPRTCCY , 0 , ASSETCLASS01DERIVED ,
ASSETCLASS02DERIVED
FROM OA1A.VAV123J1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
REPRTBLOCCD = '10'
UNION ALL
SELECT PARTITIONID , REPRTUUID , TRDCCYCD , MKTVALINREPRTCCY , 0 ,
ASSETCLASS01DERIVED , ASSETCLASS02DERIVED
FROM OA1A.VAV135A1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
TREASURYTYPECD = 1 AND ASSETSUBCLASS = '01' AND REPRTBLOCCD =
'10'
UNION ALL
SELECT PARTITIONID , REPRTUUID , COUNTERCCYCD , MKTVALINREPRTCCY , 0 ,
ASSETCLASS01DERIVED , ASSETCLASS02DERIVED
FROM OA1A.VAV135A1
WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
REPRTBLOCCD = '10'
;
}¢--- A540769.WK.SQL(BEDIST) cre=2011-03-17 mod=2011-03-22-21.58.47 A540769 ----
with s1 as
( select count(*) s1Rows,
PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, VERDTYP, sammel1
from OA1A01.VBE010A1 a
group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, VERDTYP, sammel1
)
, vr as
( select count(*) vrRows,
PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, VERDTYP
from OA1A01.VBE010A1 a
group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, VERDTYP
)
, sv as
( select s1Rows, vrRows,
s1.PROCBASE, s1.TECHBEZ, s1.DAT_BUCH,
s1.DAT_VAL, s1.VERDTYP, s1.sammel1
from s1, vr
where s1.procBase = vr.procBase
and s1.techBez = vr.techBez
and s1.dat_Buch = vr.dat_buch
and s1.dat_Val = vr.dat_val
and s1.verdtyp = vr.verdtyp
)
, va as
( select sum(s1Rows) s1Rows, sum(vrRows) vrRows,
PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, sammel1
from sv
group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, sammel1
)
, bu as
( select count(*) buRows,
sum(case when sammel1 < '1900-01-01-00:00:00'
then 1 else 0 end) buS0Rows,
sum(case when sammel1 > '1900-01-01-00:00:00'
then 1 else 0 end) buS1Rows,
sum(case when sammel2 > '1900-01-01-00:00:00'
then 1 else 0 end) buS2Rows,
PROCBASE, TECHBEZ, DAT_BUCH
from OA1A01.VBE010A1 a
group by PROCBASE, TECHBEZ, DAT_BUCH
)
, s as
( select s1Rows, vrRows, buRows, buS0Rows, buS1Rows, buS2Rows,
va.PROCBASE, va.TECHBEZ, va.DAT_BUCH, va.DAT_VAL, va.sammel1
from va, bu
where va.procBase = bu.procBase
and va.techBez = bu.techBez
and va.dat_Buch = bu.dat_buch
)
select count(*) cnt,
sum(s1Rows) s1Rows, min(s1Rows) s1RowF, max(s1Rows) s1RowT,
sum(vrRows) vrRows, min(vrRows) vrRowF, max(vrRows) vrRowT,
sum(buRows) buRows, min(buRows) buRowF, max(buRows) buRowT
from s
where procBase between 3300 and 3400
group by floor(log(3*max(s1Rows, 0.1)))
, floor(log(3*max(s1Rows, 0.1)))
, floor(log(3*max(vrRows, 0.1)))
order by 7 desc, 4 desc
;;;;;,,
select * from s
where procBase between 3300 and 3400
order by vrRows desc, s1Rows desc
fetch first 100 rows only
;;;;;,,
select s1.*, bu.*
from s1, bu
where s1.procBase = bu.procBase
and s1.techBez = bu.techBez
and s1.dat_Buch = bu.dat_buch
and s1.verdtyp = bu.verdtyp
order by buRows desc, rows desc
fetch first 100 rows only
with ur
;;;
, va as
( select count(*) vaCnt,
max(
sum(rows) vrRows,
sum(case when sammel1 < '1900-01-01-00:00:00'
then rows else 0 end) vrS0Rows,
sum(case when sammel1 > '1900-01-01-00:00:00'
then rows else 0 end) vrS1Rows,
max(case when sammel1 > '1900-01-01-00:00:00'
then rows else -1999999999 end) vrS1RowsMax,
min(case when sammel1 > '1900-01-01-00:00:00'
then rows else +1999999999 end) vrS1RowsMin,
PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, VERDTYP
from s1
group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, VERDTYP
)
with g as
(
select count(*) rows,
sum(case when sammel1 < '1900-01-01-00:00:00'
then 0 else 1 end) sam1,
sum(case when sammel2 < '1900-01-01-00:00:00'
then 0 else 1 end) sam2,
sum(case when sammel1 < '1900-01-01-00:00:00'
or sammel2 < '1900-01-01-00:00:00'
then 0 else 1 end) sam12,
PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, verdTyp
, sammel1
from OA1P01.VBE010A1 a
where procBase between 3300 and 3303
group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, verdTyp
, sammel1
)
, k as
( select count(*) gCnt,
sum(rows) rows, min(rows) rowsMin, max(rows) rowsMax,
sum(sam1) sam1, min(sam1) sam1Min, max(sam1) sam1Max,
sum(sam2) sam2, min(sam2) sam2Min, max(sam2) sam2Max,
sum(sam12) sam12, min(sam12) sam12Min, max(sam12) sam12Max,
verdTyp
from g
group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, verdTyp
)
, s as
( select count(*) kCnt,
sum(gCnt) gCnt, min(gCnt) gCntF, max(gCnt) gCntT,
sum(rows) rows, min(rows) rowsF, max(rows) rowsT,
sum(rowsMin) rowsMin, min(rowsMin) rowsMinF, max(rowsMin) rowsMinT,,
sum(rowsMax) rowsMax, Max(rowsMax) rowsMaxF, max(rowsMax) rowsMaxT,,
sum(sam1) sam1, min(sam1) sam1F, max(sam1) sam1T,
sum(sam1Min) sam1Min, min(sam1Min) sam1MinF, max(sam1Min) sam1MinT,,
sum(sam1Max) sam1Max, Max(sam1Max) sam1MaxF, max(sam1Max) sam1MaxT,,
sum(sam2) sam2, min(sam2Min) sam2MinF, max(sam2Max) sam2MaxT, ,
sum(sam12) sam12, min(sam12Min) sam12MinF, max(sam12Max) sam12MaxT,,
verdTyp
from k
group by verdTyp
, floor(log(3*max(rowsMax, 0.1)))
, floor(log(3*max(sam1Max, 0.1)))
, floor(log(3*max(sam1Min, 0.1)))
)
select *
from s
order by 1, 5 desc, 4 desc
with ur
;;;
with a as
(
select count(*) cnt,
sum(case when sammel1 < '1900-01-01-00:00:00'
then 0 else 1 end) sam1,
sum(case when sammel2 < '1900-01-01-00:00:00'
then 0 else 1 end) sam2,
sum(case when sammel1 < '1900-01-01-00:00:00'
or sammel2 < '1900-01-01-00:00:00'
then 0 else 1 end) sam12,
PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, verdTyp
from OA1P01.VBE010A1 a
where procBase between 3300 and 3309
group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, verdTyp
)
, r1 as
( select count(*) c,
PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, verdTyp
from OA1P01.VBE010A1
where procBase between 3300 and 3309
and sammel1 > '1900-01-01-00:00:00'
group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, verdTyp
, sammel1
)
, s1 as
( select count(*) s1Cnt,
sum(c) s1Sum,
max(c) s1Max,
min(c) s1Min,
PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, verdTyp
from r1
group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, verdTyp
)
, j as
(select a.verdTyp
, cnt, sam1, sam2, sam12
, value(s1Cnt, 0) s1Cnt
, value(s1Sum, 0) s1Sum
, value(s1Max, 0) s1Max
, value(s1Min, 0) s1Min
, a.PROCBASE, a.TECHBEZ, a.DAT_BUCH, a.DAT_VAL
from a
left join s1
on s1.procbase = a.procbase
and s1.techBez = a.techbez
and s1.dat_buch = a.dat_Buch
and s1.dat_val = a.dat_val
and s1.verdTyp = a.verdTyp
)
select verdTyp
, count(*) cnt, sum(cnt) "sumRows"
, max(cnt) "rowsMax", max(s1Max) "s1MaxMax"
, min(cnt) "rows-", max(cnt) "-rows"
, min(sam1) "sam1-", max(sam1) "-sam1"
, min(sam2) "sam2-", max(sam2) "-sam2"
, min(sam12) "sam12-", max(sam12) "-sam12"
, min(s1Cnt) "s1Cnt-", max(s1Cnt) "-s1Cnt"
, min(s1Sum) "s1Sum-", max(s1Sum) "-s1Sum"
, min(s1Max) "s1Max-", max(s1Max) "-s1Max"
, min(s1Min) "s1Min-", max(s1Min) "-s1Min"
from j
group by verdTyp
, floor(log(3*max(cnt, 0.1)))
, floor(log(3*max(s1Max, 0.1)))
, floor(log(3*max(s1Min, 0.1)))
order by 1, 5 desc, 4 desc
with ur
;;;
with a as
(
select count(*) cnt,
sum(case when sammel1 < '1900-01-01-00:00:00'
then 0 else 1 end) sam1,
sum(case when sammel2 < '1900-01-01-00:00:00'
then 0 else 1 end) sam2,
sum(case when sammel1 < '1900-01-01-00:00:00'
or sammel2 < '1900-01-01-00:00:00'
then 0 else 1 end) sam12,
PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL
from OA1P01.VBE010A1 a
where procBase between 3300 and 3309
group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL
)
, r1 as
( select count(*) c,
PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL
from OA1P01.VBE010A1
where procBase between 3300 and 3309
and sammel1 > '1900-01-01-00:00:00'
group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL
, sammel1
)
, s1 as
( select count(*) s1Cnt,
sum(c) s1Sum,
max(c) s1Max,
min(c) s1Min,
PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL
from r1
group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL
)
, j as
(select cnt, sam1, sam2, sam12
, value(s1Cnt, 0) s1Cnt
, value(s1Sum, 0) s1Sum
, value(s1Max, 0) s1Max
, value(s1Min, 0) s1Min
, a.PROCBASE, a.TECHBEZ, a.DAT_BUCH, a.DAT_VAL
from a
left join s1
on s1.procbase = a.procbase
and s1.techBez = a.techbez
and s1.dat_buch = a.dat_Buch
and s1.dat_val = a.dat_val
)
select count(*) cnt, sum(cnt) "sumRows"
, max(cnt) "rowsMax", max(s1Max) "s1MaxMax"
, min(cnt) "rows-", max(cnt) "-rows"
, min(sam1) "sam1-", max(sam1) "-sam1"
, min(sam2) "sam2-", max(sam2) "-sam2"
, min(sam12) "sam12-", max(sam12) "-sam12"
, min(s1Cnt) "s1Cnt-", max(s1Cnt) "-s1Cnt"
, min(s1Sum) "s1Sum-", max(s1Sum) "-s1Sum"
, min(s1Max) "s1Max-", max(s1Max) "-s1Max"
, min(s1Min) "s1Min-", max(s1Min) "-s1Min"
from j
group by floor(log(max(cnt, 0.1)))
, floor(log(max(s1Max, 0.1)))
order by 4 desc, 3 desc
with ur
;;;
with a as
( select
case when sammel1 < '1900-01-01-00:00:00'
then ' ' else '1' end
|| case when sammel2 < '1900-01-01-00:00:00'
then ' ' else '2' end sam,
verdTyp
from OA1P01.VBE010A1
where procBase = 111
)
select count(*), sam, verdTyp
from a
group by sam, verdTyp
order by verdTyp
with ur
;;;
with a as
(
select count(*) cnt,
sum(case when sammel1 < '1900-01-01-00:00:00'
then 0 else 1 end) sam1,
sum(case when sammel2 < '1900-01-01-00:00:00'
then 0 else 1 end) sam2,
sum(case when sammel1 < '1900-01-01-00:00:00'
or sammel2 < '1900-01-01-00:00:00'
then 0 else 1 end) sam12,
PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL
from OA1A01.VBE010A1 a
group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL
)
, r1 as
( select count(*) c,
PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL
from OA1A01.VBE010A1
where procBase = 1
and sammel1 > '1900-01-01-00:00:00'
group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL
, sammel1
)
, s1 as
( select count(*) s1Cnt,
sum(c) s1Sum,
max(c) s1Max,
min(c) s1Min,
PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL
from r1
group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL
)
select cnt, sam1, sam2, sam12
, s1Cnt, s1Sum, s1Max, s1Min
, a.PROCBASE, a.TECHBEZ, a.DAT_BUCH, a.DAT_VAL
from a
left join s1
on s1.procbase = a.procbase
and s1.techBez = a.techbez
and s1.dat_buch = a.dat_Buch
and s1.dat_val = a.dat_val
where a.procBase = 1
order by cnt desc, sam2 desc, sam1 desc
;;;
order by 1 desc
fetch first 100 rows only
where PROCBASE = 1
)
( select from (select count(*) c
left join
select a.*,
from a
with ur
;;;
select *
from OA1A01.VBE010A1 a
where procbase = 1
group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL
)
, b as
(
select count(*) c,
PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, sammel1, sammel2
from OA1A01.VBE010A1
where procbase = 1
and (sammel1 > '1900-01-01-00:00:00'
or sammel2 > '1900-01-01-00:00:00')
group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, sammel1, sammel2
order by 1 desc
fetch first 100 rows only
with ur
;;;
select *
from OA1A01.VBE010A1
where procbase = 1 and sammel1 > '1900-01-01-00:00:00'
order by sammel1 asc
fetch first 100 rows only
with ur
;;;;
select count(*), sammel1, sammel2,
PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, sammel1, sammel2
, sammeltyp, verdtyp, sammelbegriff
from OA1A01.VBE010A1
where procbase = 1 and sammel1 > '1900-01-01-00:00:00'
group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL
, sammel1, sammel2, sammeltyp, verdtyp, sammelbegriff
order by sammel1 asc
fetch first 100 rows only
with ur
}¢--- A540769.WK.SQL(BEIX) cre=2011-05-27 mod=2011-05-27-15.47.05 A540769 ------
SET CURRENT SQLID='S100447';
DROP INDEX S100447.IBE010A3;
COMMIT;
CREATE INDEX OA1A04.IBE010A3
ON OA1A04.TBE010A1
(BE010001 ASC,
BE010002 ASC,
BE010034 ASC,
BE010054 ASC)
PARTITIONED
USING STOGROUP GSMS
FREEPAGE 0 PCTFREE 15
DEFER YES
BUFFERPOOL BP1;
COMMIT;
}¢--- A540769.WK.SQL(BEPRES) cre=2011-04-05 mod=2011-04-06-08.34.43 A540769 ----
SELECT
B.PROCBASE
,B.TECHBEZ
,a.dat_erst_gb a
,b.dat_erst_gb b
FROM OA1t01.VBE010A1 A
JOIN OA1t01.VBE010A1 B ON
B.SAMMEL1 = A.SAMMEL1
AND B.PROCBASE = 423
AND B.TECHBEZ = '0061024442892000'
WHERE
A.PROCBASE = 423
AND A.TECHBEZ = '0061024442892000'
AND A.SAMMEL2 = '2005-06-08-00.07.28.699302'
with ur
;
set current sqlid = 'A540769';
delete from A540769.plan_table;
explain plan set queryno = 0 for
SELECT A.PROCBASE, A.TECHBEZ,
REPLACE (CHAR (A.DAT_BUCH, ISO), '-', ''), REPLACE (CHAR (A.DAT_VAL,
ISO), '-', ''), A.DAT_ERST_GB, A.VERDTYP, A.BUCHSEITE_KWA_VERD,
A.BUCHSEITE_BWA_VERD, A.STORNOFEHLER, A.STATUS_STORNO, A.STORNOSICHT,
A.STORNOTEIL, A.AUFTRAGS#_STORNO, A.GF_LAUF#_STORNO, A.ANZ_BEW_VERD,
A.BETR_KWA_VERD, A.BETR_BWA_VERD, A.SAMMEL2, A.DAT_MUT, A.PID_MUT,
A.PORTO_FREI, A.ZAZ_FREI, A.ZSK_FREI, A.UMSATZKOMM_FREI, A.ZUSATZTEXT,
A.ZUSATZTEXT_VERW, A.TAGSCHNITT, A.LIEFERANT, REPLACE (CHAR
(A.DAT_LIEF, ISO), '-', ''), REPLACE (CHAR (A.DAT_TRADE, ISO), '-',
''), A.AUFTRAGS#_QUAL, A.AUFTRAGS#, REPLACE (CHAR (A.DAT_AUFTRAG, ISO),
'-', ''), A.KUNDREF, REPLACE (CHAR (A.DAT_ERFASS, ISO), '-', ''),
A.ZEIT_ERFASS, REPLACE (CHAR (A.DAT_BELEG, ISO), '-', ''),
A.AUFTRAGGEBER_QUAL, A.BUID_AUFTRAGGEBER, A.AUFTRAGGEBER, A.AKTIONS#,
A.PID_ERFASS, REPLACE (CHAR (A.DAT_KONTROLL1, ISO), '-', ''),
A.ZEIT_KONTROLL1, A.PID_KONTROLL1, REPLACE (CHAR (A.DAT_KONTROLL2,
ISO), '-', ''), A.ZEIT_KONTROLL2, A.PID_KONTROLL2, REPLACE (CHAR
(A.DAT_DISPOFREI, ISO), '-', ''), A.ZEIT_DISPOFREI, A.PID_DISPOFREI,
A.GF_LAUF#, A.MELDETYP, A.BUCHSEITE, A.BEWEGART, A.AUSSERBILANZ,
A.WHRG_KTO, A.BETR_KTOWHRG, A.WHRG_BUCH, A.BETR_BUCHWHRG, A.WHRG_TRANS,
A.BETR_TRANSWHRG, A.KURS, REPLACE (CHAR (A.DAT_KURS, ISO), '-', ''),
A.ZEIT_KURS, A.ZEIT_VAL, A.PRODUKTE_NR, A.PREISKOMP_NR,
A.AUSPRAEGUNGS_ID, A.STORNOART, A.STORNOUMFANG, A.AUFTRAGS#_ORIG,
A.GF_LAUF#_ORIG, A.REFGRUND, A.SAMMELTYP, A.SAMMELBEGRIFF, A.OP_TYP,
A.OPOSTEN, A.BELEG, A.VORMERK#, A.KRIT_VAL, A.KOK_NVZ, A.PROZPFAD,
A.STRUKTUREN, A.SPESENART, A.BETR_BUSP, A.SAMMEL1, A.VERARBEITART,
A.VM_ABL, A.WS_ARTIKEL#, A.WS_PREIS, A.DE_SOUCHEN#, A.DE_ERMITTLUNGART,
A.DE_MELDUNG, A.DE_BUID_KONVERT, A.SA_KARTEN#, A.SA_TRANSORT,
A.SA_NAME, A.SA_ORT, A.ZV_QUAL, A.ZV_ANGABEN
FROM oa1t01.VBE010A1 A JOIN
oa1t01.VBE010A1 D ON D.SAMMEL1 = A.SAMMEL1
AND D.PROCBASE = ?
AND D.TECHBEZ = ?
WHERE A.PROCBASE = ?
AND A.TECHBEZ = ?
AND A.SAMMEL2 = ?
for FETCH ONLY
;
select * from plan_view1
order by applname, progname, queryNo, qblockno, planno, mixOpSeq
;
rollback
;
SELECT A.PROCBASE, A.TECHBEZ,
REPLACE (CHAR (A.DAT_BUCH, ISO), '-', ''), REPLACE (CHAR (A.DAT_VAL,
ISO), '-', ''), A.DAT_ERST_GB, A.VERDTYP, A.BUCHSEITE_KWA_VERD,
A.BUCHSEITE_BWA_VERD, A.STORNOFEHLER, A.STATUS_STORNO, A.STORNOSICHT,
A.STORNOTEIL, A.AUFTRAGS#_STORNO, A.GF_LAUF#_STORNO, A.ANZ_BEW_VERD,
A.BETR_KWA_VERD, A.BETR_BWA_VERD, A.SAMMEL2, A.DAT_MUT, A.PID_MUT,
A.PORTO_FREI, A.ZAZ_FREI, A.ZSK_FREI, A.UMSATZKOMM_FREI, A.ZUSATZTEXT,
A.ZUSATZTEXT_VERW, A.TAGSCHNITT, A.LIEFERANT, REPLACE (CHAR
(A.DAT_LIEF, ISO), '-', ''), REPLACE (CHAR (A.DAT_TRADE, ISO), '-',
''), A.AUFTRAGS#_QUAL, A.AUFTRAGS#, REPLACE (CHAR (A.DAT_AUFTRAG, ISO),
'-', ''), A.KUNDREF, REPLACE (CHAR (A.DAT_ERFASS, ISO), '-', ''),
A.ZEIT_ERFASS, REPLACE (CHAR (A.DAT_BELEG, ISO), '-', ''),
A.AUFTRAGGEBER_QUAL, A.BUID_AUFTRAGGEBER, A.AUFTRAGGEBER, A.AKTIONS#,
A.PID_ERFASS, REPLACE (CHAR (A.DAT_KONTROLL1, ISO), '-', ''),
A.ZEIT_KONTROLL1, A.PID_KONTROLL1, REPLACE (CHAR (A.DAT_KONTROLL2,
ISO), '-', ''), A.ZEIT_KONTROLL2, A.PID_KONTROLL2, REPLACE (CHAR
(A.DAT_DISPOFREI, ISO), '-', ''), A.ZEIT_DISPOFREI, A.PID_DISPOFREI,
A.GF_LAUF#, A.MELDETYP, A.BUCHSEITE, A.BEWEGART, A.AUSSERBILANZ,
A.WHRG_KTO, A.BETR_KTOWHRG, A.WHRG_BUCH, A.BETR_BUCHWHRG, A.WHRG_TRANS,
A.BETR_TRANSWHRG, A.KURS, REPLACE (CHAR (A.DAT_KURS, ISO), '-', ''),
A.ZEIT_KURS, A.ZEIT_VAL, A.PRODUKTE_NR, A.PREISKOMP_NR,
A.AUSPRAEGUNGS_ID, A.STORNOART, A.STORNOUMFANG, A.AUFTRAGS#_ORIG,
A.GF_LAUF#_ORIG, A.REFGRUND, A.SAMMELTYP, A.SAMMELBEGRIFF, A.OP_TYP,
A.OPOSTEN, A.BELEG, A.VORMERK#, A.KRIT_VAL, A.KOK_NVZ, A.PROZPFAD,
A.STRUKTUREN, A.SPESENART, A.BETR_BUSP, A.SAMMEL1, A.VERARBEITART,
A.VM_ABL, A.WS_ARTIKEL#, A.WS_PREIS, A.DE_SOUCHEN#, A.DE_ERMITTLUNGART,
A.DE_MELDUNG, A.DE_BUID_KONVERT, A.SA_KARTEN#, A.SA_TRANSORT,
A.SA_NAME, A.SA_ORT, A.ZV_QUAL, A.ZV_ANGABEN
FROM oa1t01.VBE010A1 A JOIN
oa1t01.VBE010A1 D ON D.SAMMEL1 = A.SAMMEL1
AND D.PROCBASE = 423
AND D.TECHBEZ = '0061024442892000'
WHERE A.PROCBASE = 423
AND A.TECHBEZ = '0061024442892000'
AND A.SAMMEL2 = '2005-06-08-00.07.28.699302'
for FETCH ONLY
;
;;
$#@
call sqlConnect 'DBTF'
$; $<@=¢
SELECT
B.PROCBASE
,B.TECHBEZ
FROM OA1t01.VBE010A1 A
JOIN OA1t01.VBE010A1 B ON
B.SAMMEL1 = A.SAMMEL1
AND B.PROCBASE = 423
AND B.TECHBEZ = '0061024442892000'
WHERE
A.PROCBASE = 423
AND A.TECHBEZ = '0061024442892000'
AND A.SAMMEL2 = '2005-06-08-00.07.28.699302'
with ur
$! call sqlSel
$=s=-=¢
select
D.PROCBASE
,D.TECHBEZ
from oa1t01.VBE010A1 A
join oa1t01.VBE010A1 D
on
D.SAMMEL1 = A.SAMMEL1
and D.PROCBASE = ?
and D.TECHBEZ = ?
$*( where A.PROCBASE = ?
and A.TECHBEZ = ?
and A.SAMMEL2 = ?
$*) with ur
$!
say $s
call sqlPrepare 1, $s
pr = 423
te = '0061024442892000'
s2 = '2005-06-08-00.07.28.699302'
call sqlOpen 1, pr, te, pr, te,s2
do while sqlFetchInto(1, ':fp, :ft')
say fp ft
end
call sqlClose 1
call sqlDisconnect
$#out 20110405 17:50:33
@O.131.1 class=SQL131, PROCBASE=423, TECHBEZ=0061024442892000
@O.131.2 class=SQL131, PROCBASE=423, TECHBEZ=0061024442892000
@O.131.3 class=SQL131, PROCBASE=423, TECHBEZ=0061024442892000
@O.131.4 class=SQL131, PROCBASE=423, TECHBEZ=0061024442892000
@O.131.5 class=SQL131, PROCBASE=423, TECHBEZ=0061024442892000
@O.131.6 class=SQL131, PROCBASE=423, TECHBEZ=0061024442892000
@O.131.7 class=SQL131, PROCBASE=423, TECHBEZ=0061024442892000
@O.131.8 class=SQL131, PROCBASE=423, TECHBEZ=0061024442892000
$#out 20110405 17:46:53
}¢--- A540769.WK.SQL(BERTS) cre=2011-02-24 mod=2011-02-24-15.09.50 A540769 -----
set current path oa1p;
select substr(name,1, 5),
substr(fosFmtE7(sum(totalRows)), 1, 7) "tot",
substr(fosFmtE7(sum(case when substr(name, 6, 2) = '01'
then totalRows else 0 end)), 1, 7) "i01",
substr(fosFmtE7(sum(case when substr(name, 6, 2) = '02'
then totalRows else 0 end)), 1, 7) "i02",
substr(fosFmtE7(sum(case when substr(name, 6, 2) = '03'
then totalRows else 0 end)), 1, 7) "i03",
substr(fosFmtE7(sum(case when substr(name, 6, 2) = '04'
then totalRows else 0 end)), 1, 7) "i04"
from sysibm.sysTableSpaceStats r
where dbName = 'BE01A1P' and name like 'A01%'
group by substr(name,1, 5)
order by 1
;,;
select totalRows, r.*
from sysibm.sysTableSpaceStats r
where dbName = 'BE01A1P' and name like 'A01%'
order by name, partition
}¢--- A540769.WK.SQL(BEY) cre=2006-07-28 mod=2006-07-28-16.45.24 F540769 -------
select * from oa1t.TPO001a1;
select * from oa1t.TPO002a1;
select * from oa1t.TPO003a1;
select * from oa1t.TPO004a1;
select * from oa1t.TPO005a1;
select * from oa1t.TPO006a1;
sdf
set current sqlid = 's100447';
-- drop ALIAS oa1t.TPO001A1 ;
-- drop ALIAS oa1t.TPO001A3 ;
-- drop ALIAS oa1t.TPO001A4 ;
-- drop ALIAS oa1t.TPO001A5 ;
-- drop ALIAS oa1t.TPO001A6 ;
commit;
CREATE ALIAS oa1t.TPO001A1 FOR OA1z.TPO001A1;
CREATE ALIAS oa1t.TPO003A1 FOR OA1z.TPO003A1;
CREATE ALIAS oa1t.TPO004A1 FOR OA1z.TPO004A1;
CREATE ALIAS oa1t.TPO005A1 FOR OA1z.TPO005A1;
CREATE ALIAS oa1t.TPO006A1 FOR OA1z.TPO006A1;
commit;
CREATE ALIAS oa1t.TPO001A1 FOR CHSKA000DBZF.OA1t.TPO001A1;
CREATE ALIAS oa1t.TPO003A1 FOR CHSKA000DBZF.OA1t.TPO003A1;
CREATE ALIAS oa1t.TPO004A1 FOR CHSKA000DBZF.OA1t.TPO004A1;
CREATE ALIAS oa1t.TPO005A1 FOR CHSKA000DBZF.OA1t.TPO005A1;
CREATE ALIAS oa1t.TPO006A1 FOR CHSKA000DBZF.OA1t.TPO006A1;
commit;
CREATE ALIAS oa1t.TPO001A1 FOR OA1z.TPO001A1;
CREATE ALIAS oa1t.TPO001A3 FOR OA1z.TPO003A1;
CREATE ALIAS oa1t.TPO001A4 FOR OA1z.TPO004A1;
CREATE ALIAS oa1t.TPO001A5 FOR OA1z.TPO005A1;
CREATE ALIAS oa1t.TPO001A6 FOR OA1z.TPO006A1;
commit;
select * from oa1t.TPO002A1;
sdf
select * from sysibm.locations;
--DROP ALIAS oa1t.TPO002A1 ;
-- CREATE ALIAS oa1t.TPO002A1 FOR CHSKA000DBZF.OA1t.TPO002A1;
CREATE ALIAS oa1t.TPO002A1 FOR OA1z.TPO002A1;
commit;
-- select * from CHSKA000DBZF.oa1z.TPO002A1;
select * from oa1z.TPO002A1;
commit;
OA1Z. TPO002A1
TPO003A1
TPO004A1
TPO005A1
TPO006A1
TPO001A1
}¢--- A540769.WK.SQL(BE010CR) cre=2011-04-28 mod=2011-04-28-17.19.10 A540769 ---
set current sqlid = 'S100447';
select current timestamp from sysibm.sysDummy1;
CREATE INDEX GDBB290.IBE010A3
ON GDBB290.TBE010A1
(BE010001 ASC,
BE010002 ASC,
BE010034 ASC,
BE010054 ASC)
PARTITIONED
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
FREEPAGE 0 PCTFREE 15
GBPCACHE CHANGED
NOT CLUSTER
COMPRESS NO
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFER NO
DEFINE YES;
select current timestamp from sysibm.sysDummy1;
commit;
}¢--- A540769.WK.SQL(BINDBIND) cre=2012-07-11 mod=2014-09-25-08.26.55 A540769 ---
insert into oa1p.tQZ040BindPgm
values ('KUGE', 'YCDUVGA', '31.12.2014', 7, 'info yQuCorc');
select * from oa1p.vQZ040Bind
order by pgm, appl, install, rdlSeq, cqSeq, ovSeq ;
select * from oa1p.vQZ040BindRz
order by pgm, appl, install, rdlSeq, cqSeq, ovSeq ;
;x;
insert into oa1p.tQZ040BindPgm
values ('AURA', 'YCDSGET', current date, 7, 'info yQuCorc');
insert into oa1p.tQZ040BindPgm -- (appl, pgm, install)
values ('nnn', 'YCDCCFG', '08.08.2014', 9, 'info 9 yavvdps ....');
select * from oa1p.vQZ040BindDBP
order by pgm, appl, install, rdlSeq, cqSeq, ovSeq ;
select * from oa1p.vQZ040ReBind
order by pgm, appl, install, rdlSeq, cqSeq, ovSeq ;
;x;
insert into oa1p.tQZ040BindPgm
values ('AURA', 'YAUCORC', current date, 7, 'info yQuCorc');
insert into oa1p.tQZ040BindPgm -- (appl, pgm, install)
values ('nnn', 'YAVVDPS', '01.04.2014', 9, 'info 9 yavvdps ....');
select * from oa1p.vQZ040Bind
order by pgm, appl, install, rdlSeq, cqSeq, ovSeq ;
select * from oa1p.vQZ040BindRz
order by pgm, appl, install, rdlSeq, cqSeq, ovSeq ;
select * from oa1p.vQZ040BindDBP
order by pgm, appl, install, rdlSeq, cqSeq, ovSeq ;
select * from oa1p.vQZ040ReBind
order by pgm, appl, install, rdlSeq, cqSeq, ovSeq ;
;x;
select * from oa1p.tQZ040BindPgm;
select * from oa1p.vQZ040BindPgm;
select * from oa1p.VQZ040BINDRDL;
select * from oa1p.vQZ040BindDBP;
select * from oa1p.vQZ040reBind
order by pgm, appl, install, rdlSeq, cqSeq, ovSeq ;
-- where rz = 'RZ1'
;
select * from oa1p.vQZ040Bind
-- where rz = 'RZ1'
order by pgm, appl, install, rdlSeq, cqSeq, ovSeq
;x;
select * from oa1p.vQZ040BindPgm
order by appl, pgm, install
;
select * from oa1p.vQZ040BindRDL
order by appl, pgm, install, rdlSeq
;
select * from oa1p.vQZ040BindCQ
order by appl, pgm, install, rdlSeq, cqSeq
;
select * from oa1p.vQZ040BindOV
order by appl, pgm, install, rdlSeq, cqSeq, ovSeq
;x;
insert into oa1p.tQZ040BindPgm values ('MF', 'MF5000', current date);
insert into oa1p.tQZ040BindPgm values ('ELAR', 'ELA1', current date);
insert into oa1p.tQZ040BindPgm values ('AURA', 'YAUCORC', current date);
insert into oa1p.tQZ040BindPgm values ('nnn', 'YCDSGET', current date);
insert into oa1p.tQZ040BindPgm values ('nnn', 'YYWM05E', current date);
insert into oa1p.tQZ040BindPgm values ('nnn', 'YAVVDPS', '01.01.2013');
insert into oa1p.tQZ040BindPgm values ('nnn', 'YNILCTG', '10.02.2014');
select * from oa1p.vQZ040Bind
where rz = 'RZ1'
order by pgm, appl, install, rdlSeq, cqSeq, ovSeq
;x;
}¢--- A540769.WK.SQL(BINDCFGS) cre=2016-09-16 mod=2016-09-16-14.10.45 A540769 ---
select *
from OA1P.TQZ042BINDCNFGhist
where typ = 'wCo' and key like 'C%'
}¢--- A540769.WK.SQL(BINDCMN) cre=2015-01-15 mod=2015-01-15-16.40.58 A540769 ---
select strip(owner) || ' ' || strip(collid) || '.' || strip(name)
,lastUsed, timestamp, version, p.*
from sysibm.sysPackage p
where owner = 'CMNBATCH'
order by lastUsed desc, timestamp desc
;y;
select substr(owner, 1, 8) owner
, substr(version, 1, 4) vers, count(*)
, max(lastUsed) lastUsed, max(timestamp) bind
from sysibm.sysPackage
group by owner, substr(version, 1, 4)
order by 1, 2
}¢--- A540769.WK.SQL(BINDDBP) cre=2014-04-04 mod=2014-09-04-12.44.05 A540769 ---
select length(errMsg), length(strip(errMsg)), g.*
from oa1p.tQZ043BindGen g order by restst desc
;x;
insert into oa1p.tQz040BindPgm values ('AURA', 'YAUCORC', '10.02.2014');
select * from oa1p.vQz040BindDBP
order by pgm, appl, install, rdlSeq, cqSeq, ovSeq
;
select * from oa1p.vQz040BindPgm
order by appl, pgm, install
;
select * from oa1p.vQz040BindRDL
order by appl, pgm, install, rdlSeq
;
select * from oa1p.vQz040BindCQ
order by appl, pgm, install, rdlSeq, cqSeq
;
select * from oa1p.vQz040BindOV
order by appl, pgm, install, rdlSeq, cqSeq, ovSeq
;
select * from oa1p.vQz040BindGrp
order by appl, pgm, install, rdlSeq, cqSeq
;
select * from oa1p.vQz040Bind
order by appl, pgm, install, rdlSeq, cqSeq, ovSeq
;x;
insert into oa1p.tQz040BindPgm values ('MF', 'MF5000', current date);
insert into oa1p.tQz040BindPgm values ('ELAR', 'ELA1', current date);
insert into oa1p.tQz040BindPgm values ('AURA', 'YAUCORC', current date);
insert into oa1p.tQz040BindPgm values ('nnn', 'YCDSGET', current date);
insert into oa1p.tQz040BindPgm values ('nnn', 'YYWM05E', current date);
insert into oa1p.tQz040BindPgm values ('nnn', 'YAVVDPS', '01.01.2013');
insert into oa1p.tQz040BindPgm values ('nnn', 'YNILCTG', '10.02.2014');
select * from oa1p.vQz040BindDBP
where rz = 'RZ1'
order by pgm, appl, install, rdlSeq, cqSeq, ovSeq
;x;
}¢--- A540769.WK.SQL(BINDDBT1) cre=2015-12-14 mod=2015-12-14-20.30.10 A540769 ---
select length(errMsg), left(errMsg, 40), right(errMsg, 40)
, t.*
from oa1p.tQZ043BindGen t
where genid = 482387
}¢--- A540769.WK.SQL(BINDDDL) cre=2014-04-04 mod=2014-09-04-12.37.38 A540769 ---
set current sqlid = 'S100447';
xrop table oa1p.tQZ040BindPgm;
xrop tablespace QZ01A1P.a041a ;
xrop tablespace QZ01A1P.a041h ;
drop tablespace QZ01A1P.a042a ;
drop tablespace QZ01A1P.a042h ;
drop tablespace QZ01A1P.a043a ;
drop tablespace QZ01A1P.a044a ;
commit;
set current sqlid = 'S100447';
drop table oa1p.tQZ040BindPgm;
create global temporary table oa1p.tQZ040BindPgm
( appl char(4) not null
, pgm char(8) not null
, install date
, id integer
, info char(70)
) ccsid unicode;
CREATE TABLESPACE a041a
IN QZ01A1P
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLESPACE a041h
IN QZ01A1P
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLESPACE a042a
IN QZ01A1P
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLESPACE a042h
IN QZ01A1P
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLE oa1p.tQZ041BindParm
( appl CHAR(4) NOT NULL default '%'
, pgm CHAR(8) NOT NULL default '%'
, PRIO smallint NOT NULL
, rdl char(10) NOT NULL default 'default'
, cq char(10) NOT NULL default 'default'
, ov char(10) NOT NULL default 'default'
, installBegin date NOT NULL WITH DEFAULT
, installEnd date NOT NULL WITH DEFAULT '31.12.9999'
, rowBegin not null generated always as row begin
, rowEnd not null generated always as row end
, rowtrans not null generated always as transaction start id
, period business_time (installBegin, installEnd)
, period system_time (rowBegin, rowEnd)
, primary key (appl, pgm, business_time without overlaps)
)
in QZ01A1P.a041a
;
CREATE UNIQUE INDEX oa1p.iQZ041A1
ON oa1p.tQZ041BindParm
(appl, pgm, business_time without overlaps)
include (prio, rdl, cq, ov)
USING STOGROUP GSMS
ERASE NO
GBPCACHE CHANGED
not CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G
;
CREATE TABLE oa1p.tQZ041BindParmHist
like oa1p.tQZ041BindParm
in QZ01A1P.a041H
AUDIT NONE
DATA CAPTURE NONE
CCSID unicode
NOT VOLATILE
;
alter table oa1p.tQZ041BindParm add versioning
use history table oa1p.tQZ041BindParmHist
;
CREATE TABLE oa1p.tQZ042BindCnfg
( typ char(3) not null
, key char(10) not null
, seq smallint not null
, va1 char(16) not null
, va2 char(16) not null
, va3 char(16) not null with default
, va4 char(16) not null with default
, installBegin date NOT NULL WITH DEFAULT
, installEnd date NOT NULL WITH DEFAULT '31.12.9999'
, rowBegin not null generated always as row begin
, rowEnd not null generated always as row end
, rowtrans not null generated always as transaction start id
, period business_time (installBegin, installEnd)
, period system_time (rowBegin, rowEnd)
, primary key (typ, key, seq, business_time without overlaps)
)
in QZ01A1P.a042a
;
CREATE UNIQUE INDEX oa1p.iQZ042A1
ON oa1p.tQZ042BindCnfg
(typ, key, seq, business_time without overlaps)
include (va1, va2, va3, va4)
USING STOGROUP GSMS
ERASE NO
GBPCACHE CHANGED
not CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G
;
CREATE TABLE oa1p.tQZ042BindCnfgHist
like oa1p.tQZ042BindCnfg
in QZ01A1P.a042H
AUDIT NONE
DATA CAPTURE NONE
CCSID unicode
NOT VOLATILE
;
alter table oa1p.tQZ042BindCnfg add versioning
use history table oa1p.tQZ042BindCnfgHist
;
CREATE TABLESPACE a043a
IN QZ01A1P
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
set current sqlid = 'S100447';
alter TABLE oa1p.tQZ043BindGen
add cmRes char(4) not null with default
;
alter TABLE oa1p.tQZ043BindGen
add errMsg varchar(2000) not null with default;
commit;
x;
CREATE TABLE oa1p.tQZ043BindGen
( genId integer NOT NULL
generated by default as identity
, genTst timestamp not null with default
, appl CHAR(4) NOT NULL
, install date NOT NULL
, rz char(3) not null
, dbSys char(4) not null
, pgm char(8) not null
, conTok char(8) for bit data
not null with default x'0000000000000000'
, cmPkg char(10) not null
, cmFun char(1) not null with default '?'
, com char(20) not null
, cmJob char(20) not null with default
, result char(4)
, resTst timestamp
, cmRes char(4) not null with default
, errMsg varchar(2000) not null with default
, primary key (genId)
, unique (genTst, pgm)
)
in QZ01A1P.a043a
;
CREATE UNIQUE INDEX oa1p.iQZ043A1
ON oa1p.tQZ043BindGen
(genId)
USING STOGROUP GSMS
ERASE NO
GBPCACHE CHANGED
not CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G
;
CREATE UNIQUE INDEX oa1p.iQZ043A2
ON oa1p.tQZ043BindGen
(genTst, pgm)
USING STOGROUP GSMS
ERASE NO
GBPCACHE CHANGED
not CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G
;
CREATE unique INDEX oa1p.iQZ043A3
ON oa1p.tQZ043BindGen
(cmPkg, pgm, gentst)
USING STOGROUP GSMS
ERASE NO
GBPCACHE CHANGED
not CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G
;
CREATE TABLESPACE a044a
IN QZ01A1P
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLE oa1p.tQZ044BindLine
( genId integer NOT NULL
, seq smallint not null
, line char(80) not null
, primary key (genId, seq)
)
in QZ01A1P.a044a
;
CREATE UNIQUE INDEX oa1p.iQZ044A1
ON oa1p.tQZ044BindLine
(genId, seq)
USING STOGROUP GSMS
ERASE NO
GBPCACHE CHANGED
not CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G
;
commit;
}¢--- A540769.WK.SQL(BINDDDTS) cre=2014-04-04 mod=2014-07-31-12.43.45 A540769 ---
-- copy von bindDDl für A540769
set current sqlid = 'S100447';
drop table A540769.tQZ040BindPgm;
drop tablespace dA540769.a041a ;
drop tablespace dA540769.a041h ;
drop tablespace dA540769.a042a ;
drop tablespace dA540769.a042h ;
drop tablespace dA540769.a043a ;
drop tablespace dA540769.a044a ;
commit;
set current sqlid = 'S100447';
drop table A540769.tQZ040BindPgm;
create global temporary table A540769.tQZ040BindPgm
( appl char(4) not null
, pgm char(8) not null
, install date
, id integer
, info char(70)
) ccsid unicode;
CREATE TABLESPACE a041a
IN dA540769
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLESPACE a041h
IN dA540769
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLESPACE a042a
IN dA540769
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLESPACE a042h
IN dA540769
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLE A540769.tQZ041BindParm
( appl CHAR(4) NOT NULL default '%'
, pgm CHAR(8) NOT NULL default '%'
, PRIO smallint NOT NULL
, rdl char(10) NOT NULL default 'default'
, cq char(10) NOT NULL default 'default'
, ov char(10) NOT NULL default 'default'
, installBegin date NOT NULL WITH DEFAULT
, installEnd date NOT NULL WITH DEFAULT '31.12.9999'
, rowBegin not null generated always as row begin
, rowEnd not null generated always as row end
, rowtrans not null generated always as transaction start id
, period business_time (installBegin, installEnd)
, period system_time (rowBegin, rowEnd)
, primary key (appl, pgm, business_time without overlaps)
)
in dA540769.a041a
;
CREATE UNIQUE INDEX A540769.iQZ041A1
ON A540769.tQZ041BindParm
(appl, pgm, business_time without overlaps)
include (prio, rdl, cq, ov)
USING STOGROUP GSMS
ERASE NO
GBPCACHE CHANGED
not CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G
;
CREATE TABLE A540769.tQZ041BindParmHist
like A540769.tQZ041BindParm
in dA540769.a041H
AUDIT NONE
DATA CAPTURE NONE
CCSID unicode
NOT VOLATILE
;
alter table A540769.tQZ041BindParm add versioning
use history table A540769.tQZ041BindParmHist
;
CREATE TABLE A540769.tQZ042BindCnfg
( typ char(3) not null
, key char(10) not null
, seq smallint not null
, va1 char(16) not null
, va2 char(16) not null
, va3 char(16) not null with default
, va4 char(16) not null with default
, installBegin date NOT NULL WITH DEFAULT
, installEnd date NOT NULL WITH DEFAULT '31.12.9999'
, rowBegin not null generated always as row begin
, rowEnd not null generated always as row end
, rowtrans not null generated always as transaction start id
, period business_time (installBegin, installEnd)
, period system_time (rowBegin, rowEnd)
, primary key (typ, key, seq, business_time without overlaps)
)
in dA540769.a042a
;
CREATE UNIQUE INDEX A540769.iQZ042A1
ON A540769.tQZ042BindCnfg
(typ, key, seq, business_time without overlaps)
include (va1, va2, va3, va4)
USING STOGROUP GSMS
ERASE NO
GBPCACHE CHANGED
not CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G
;
CREATE TABLE A540769.tQZ042BindCnfgHist
like A540769.tQZ042BindCnfg
in dA540769.a042H
AUDIT NONE
DATA CAPTURE NONE
CCSID unicode
NOT VOLATILE
;
alter table A540769.tQZ042BindCnfg add versioning
use history table A540769.tQZ042BindCnfgHist
;
CREATE TABLESPACE a043a
IN dA540769
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLE A540769.tQZ043BindGen
( genId integer NOT NULL
generated by default as identity
, genTst timestamp not null with default
, appl CHAR(4) NOT NULL
, install date NOT NULL
, rz char(3) not null
, dbSys char(4) not null
, pgm char(8) not null
, conTok char(8) for bit data
not null with default x'0000000000000000'
, cmPkg char(10) not null
, cmFun char(1) not null with default '?'
, com char(20) not null
, cmJob char(20) not null with default
, result char(4)
, resTst timestamp
, primary key (genId)
, unique (genTst, pgm)
)
in dA540769.a043a
;
CREATE UNIQUE INDEX A540769.iQZ043A1
ON A540769.tQZ043BindGen
(genId)
USING STOGROUP GSMS
ERASE NO
GBPCACHE CHANGED
not CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G
;
CREATE UNIQUE INDEX A540769.iQZ043A2
ON A540769.tQZ043BindGen
(genTst, pgm)
USING STOGROUP GSMS
ERASE NO
GBPCACHE CHANGED
not CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G
;
CREATE unique INDEX A540769.iQZ043A3
ON A540769.tQZ043BindGen
(cmPkg, pgm, gentst)
USING STOGROUP GSMS
ERASE NO
GBPCACHE CHANGED
not CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G
;
CREATE TABLESPACE a044a
IN dA540769
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLE A540769.tQZ044BindLine
( genId integer NOT NULL
, seq smallint not null
, line char(80) not null
, primary key (genId, seq)
)
in dA540769.a044a
;
CREATE UNIQUE INDEX A540769.iQZ044A1
ON A540769.tQZ044BindLine
(genId, seq)
USING STOGROUP GSMS
ERASE NO
GBPCACHE CHANGED
not CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G
;
commit;
}¢--- A540769.WK.SQL(BINDDDVI) cre=2013-10-24 mod=2014-09-25-08.26.16 A540769 ---
-- 25. 9.14 location gehoert in package( ....
set current sqlid = 'S100447';
drop view oa1p.vQZ040BindPGM ;
-----------------------------------------------------------------------
create view oa1p.vQZ040BindPGM as --- parameters for each program ------
with a as -- add compareLengths ---------------------------------------
(
select p.*
, case when posstr(appl, '%') = 0 then 4 else posstr(appl, '%')-1
end apLe
, case when posstr(pgm , '%') = 0 then 8 else posstr(pgm , '%')-1
end pgLe
from oa1p.tQZ041BindParm p
)
, j as -- join pgm and parameters -------------------------------------
(
select g.appl, g.pgm, g.install
, a.rdl, a.cq, a.ov
, case when g.pgm like 'YY%' then 'YY'
when g.pgm like 'YX%' then 'YX'
when g.pgm like 'Y%' then substr(g.pgm, 2, 2)
else substr(g.pgm, 1, 2)
end colDef
, row_number() over (partition by g.appl, g.pgm
order by prio desc, pgLe desc, apLe desc
) rn
from oa1p.tQZ040BindPgm g left join a
on left(g.appl, a.apLe) = left(a.appl, a.apLe)
and left(g.pgm, a.pgLe) = left(a.pgm, a.pgLe)
and g.install >= a.installBegin
and g.install < a.installEnd
)
select appl, pgm, install, rdl, cq
, case when ov is null then raise_error(77201
, appl || '.' || strip(pgm) || ' no tQZ041BindParm')
else ov end ov
, colDef
from j
where rn = 1
;
-----------------------------------------------------------------------
create view oa1p.vQZ040BindRDL as --- explode RDL=Rz/dbSys/Location
select p.*
, case when c.seq is null then raise_error(77202
, appl || '.' || strip(pgm) || ' rdl=' || strip(rdl)
|| ' no tQZ042BindCnfg')
else c.seq end rdlSeq
, cast(va1 as char(3)) rz
, cast(va2 as char(4)) dbSys
, cast(va3 as char(12)) location
, cast(va4 as char(4)) quaDef
from oa1p.vQZ040BindPgm p left join oa1p.tQZ042BindCnfg c
on c.typ = 'rdl' and c.key = p.rdl
and p.install >= c.installBegin
and p.install < c.installEnd
;
-----------------------------------------------------------------------
create view oa1p.vQZ040BindCQ as --- explode CQ = Collection/Qualifier
select p.*
, case when c.seq is null then raise_error(77203
, appl || '.' || strip(pgm) || ' cq=' || strip(cq)
|| ' no tQZ042BindCnfg')
else c.seq end cqSeq
, cast(replace(c.va1, '$', strip(p.colDef)) as char(8)) col
, cast(replace(c.va2, '$', strip(p.quaDef)) as char(8)) qua
from oa1p.vQZ040BindRDL p left join oa1p.tQZ042BindCnfg c
on c.typ = 'cq' and c.key = p.cq
and p.install >= c.installBegin
and p.install < c.installEnd
;
-----------------------------------------------------------------------
create view oa1p.vQZ040BindOV as --- explode OV = Option/Value --------
with i (inst) as --- installDates -------------------------------------
(
select install from oa1p.tQZ040BindPgm
group by install
)
, r --- recursive join all options together ---------------------------
(inst, key, seq, opt, val, lev) as
( select i.inst, key, seq, VA1, VA2, 1
from i join oa1p.tQZ042BindCnfg c
on i.inst >= c.installBegin and i.inst < c.installEnd
and c.typ = 'ov'
union all select r.inst, r.key, c.seq, c.va1, c.va2, lev+1
from r join oa1p.tQZ042BindCnfg c
on r.inst >= c.installBegin and r.inst < c.installEnd
and c.typ = 'ov' and c.key = r.val
where r.lev < 99 and r.opt = '-->parent'
)
, c as --- select most relevant value per option ----------------------
(
select r.*, row_number() over(partition by inst, key, opt
order by lev asc) rn
from r
where seq <> -9999 -- eliminate --> parent
)
select p.*
, case when c.seq is null then raise_error(77204
, appl || '.' || strip(pgm) || ' ov=' || strip(ov)
|| ' no tQZ042BindCnfg')
else c.seq end ovSeq
, opt, val
from oa1p.vQZ040BindCQ p left join c
on c.rn = 1 and c.key = p.ov
and p.install = c.inst
;
CREATE view oa1p.vQZ040Bind as --- each bindLine ----------------------
with g as
(
select * from oa1p.vQZ040BindCQ
)
, b --- add special options with bracket syntax ------
(appl, pgm, install, rdl, cq, ov, colDef
, rdlSeq, rz, dbSys, location, quaDef
, cqSeq, col, qua
, ovSeq, opt, val) as
(
select * from oa1p.vQZ040BindOV
union all select g.*, -7, 'member', pgm from g
union all select g.*, -6, 'qualifier', qua from g
union all select g.*, 9901, 'sqlError', 'noPackage' from g
union all select g.*, 9902, 'action', 'replace' from g
)
, u --- add first and last line and non bracket syntax ------
(appl, pgm, install, rdl, cq, ov, colDef
, rdlSeq, rz, dbSys, location, quaDef
, cqSeq, col, qua
, ovSeq, opt, val, s1) as
(
select g.*, -9, 'b', col
, 'bind package('
|| case when location = '' then ''
else strip(location) || '.' end
|| strip(col) || ') -' from g
union all select b.*
, ' ' || strip(opt) || '(' || strip(val) || ') -'
from b
union all select g.*, 9909, 'end', ''
, ' /* end ' || rz || '/' || dbSys
|| ' ' || appl || '@' || char(install)
|| ' ' || strip(location) || '.' || strip(col)
|| '.' || strip(pgm)
from g
)
select cast(s1 as char(72)) stmt
, appl, pgm, install, rdl, cq, ov, colDef
, rdlSeq, rz, dbSys, location, quaDef
, cqSeq, col, qua
, ovSeq, opt, val
from u
;
-----------------------------------------------------------------------
CREATE view oa1p.vQZ040ReBind as --- each RebindLine ------------------
with g as
(
select * from oa1p.vQZ040BindCQ
)
, b --- add special options with bracket syntax ------
(appl, pgm, install, rdl, cq, ov, colDef
, rdlSeq, rz, dbSys, location, quaDef
, cqSeq, col, qua
, ovSeq, opt, val) as
(
select * from oa1p.vQZ040BindOV
union all select g.*, -6, 'qualifier', qua from g
)
, u --- add first and last line and non bracket syntax ------
(appl, pgm, install, rdl, cq, ov, colDef
, rdlSeq, rz, dbSys, location, quaDef
, cqSeq, col, qua
, ovSeq, opt, val, s1) as
(
select g.*, -9, 'r', col
, 'rebind package ('
|| case when location = '' then ''
else strip(location) || '.' end
|| strip(col) || '.' || strip(pgm) || '+'
from g
union all select g.*, -8, 'v', '*', ' .(*)) -' from g
union all select b.*
, ' ' || strip(opt) || '(' || strip(val) || ') -'
from b
union all select g.*, 9909, 'end', ''
, ' /* end ' || rz || '/' || dbSys
|| ' ' || appl || '@' || char(install)
|| ' ' || strip(location) || '.' || strip(col)
|| '.' || strip(pgm)
from g
)
select cast(s1 as char(72)) stmt
, appl, pgm, install, rdl, cq, ov, colDef
, rdlSeq, rz, dbSys, location, quaDef
, cqSeq, col, qua
, ovSeq, opt, val
from u
;
CREATE view oa1p.vQZ040BindRz as --- bind pgm in rz ----------------
with f as
(
select case when min(appl) <> max(appl) then raise_error(77211
, 'appl changes for ' || rz || ' pgm=' || pgm)
when min(install) <> max(install) then raise_error(77212
, 'install changes for ' || rz || ' pgm=' || pgm)
when min(rdl ) <> max(rdl ) then raise_error(77213
, 'rdl changes for ' || rz || ' pgm=' || pgm)
when min(ov ) <> max(ov ) then raise_error(77214
, 'ov changes for ' || rz || ' pgm=' || pgm)
when min(colDef ) <> max(colDef ) then raise_error(77215
, 'coldef changes for ' || rz || ' pgm=' || pgm)
when min(dbSys ) <> max(dbSys ) then raise_error(77216
, 'dbSys changes for ' || rz || ' pgm=' || pgm)
when min(quaDef ) <> max(quaDef ) then raise_error(77216
, 'quaDef changes for ' || rz || ' pgm=' || pgm)
else min(appl) end appl
, pgm
, min(install) install
, min(rdl) rdl
, min(cq) cq
, min(ov) ov
, min(colDef) colDef
, min(rdlSeq) rdlSeqMin
, max(rdlSeq) rdlSeqMax
, rz
, min(dbSys) dbSys
, min(quaDef) quaDef
, min(cqSeq) cqSeqMin
, max(cqSeq) cqSeqMax
, min(ovSeq) ovSeqMin
, max(ovSeq) ovSeqMax
, count(distinct location) cLoc
, count(distinct location || '.' || col) cBi
from oa1p.vQZ040Bind
group by rz, pgm
)
, g as
(
select f.*, p.id, p.info
from f left join oa1p.tQZ040BindPgm p
on f.pgm = p.pgm
)
, u --- add dsn statements and comments ----------------------------
( stmt, appl, pgm, install, rdl, cq, ov, colDef
, rdlSeq, rz, dbSys, location, quaDef
, cqSeq, col, qua
, ovSeq, opt, val) as
(
select ' /* beginRzPgm ' || rz || '/' || dbSys || ' '
|| strip(appl) ||'@'|| char(install) || ' ' ||strip(pgm)
, appl, pgm, install, rdl, cq, ov, colDef
, rdlSeqMin, rz, dbSys, cast(null as char(1)), quaDef
, cqSeqMin-9, cast(null as char(1)), cast(null as char(1))
, 0, 'begin', 'pgm'
from g
union all select ' /* '
|| cBi || ' binds in ' || cLoc || ' locations'
, appl, pgm, install, rdl, cq, ov, colDef
, rdlSeqMin, rz, dbSys, cast(null as char(1)), quaDef
, cqSeqMin-8, cast(null as char(1)), cast(null as char(1))
, 0, 'count', 'binds'
from g
union all select ' /* ' || info
, appl, pgm, install, rdl, cq, ov, colDef
, rdlSeqMin, rz, dbSys, cast(null as char(1)), quaDef
, cqSeqMin-7, 'dsn', dbSys
, 0, 'count', 'binds'
from g where info is not null
union all select 'dsn system(' || dbSys || ')'
, appl, pgm, install, rdl, cq, ov, colDef
, rdlSeqMin, rz, dbSys, cast(null as char(1)), quaDef
, cqSeqMin-6, 'dsn', dbSys
, 0, 'count', 'binds'
from g
union all select * from oa1p.vQz040Bind
union all select 'end'
, appl, pgm, install, rdl, cq, ov, colDef
, rdlSeqMax, rz, dbSys, cast(null as char(1)), quaDef
, cqSeqMax+1, cast(null as char(1)), cast(null as char(1))
, 0, 'dsn', 'end'
from g
)
select * from u
;
-----------------------------------------------------------------------
CREATE view oa1p.vQZ040BindDBP as --- generate dbp member -------------
with p as --- group by pgm --------------------------------------------
(
select pgm
, case when min(appl) <> max(appl) then raise_error(77241
, 'appl changes for pgm=' || strip(pgm))
when min(install) <> max(install) then raise_error(77242
, 'install changes for pgm=' || strip(pgm))
else min(appl) end appl
, min(install) install
, min(rdlSeq) rdlSeqMin
, max(rdlSeq) rdlSeqMax
, count(distinct rz) cRz
, count(distinct rz || '.' || dbSys) cDbSys
, count(distinct rz || '.' || dbSys || '.' || location) cLoc
, count(distinct rz || '.' || dbSys || '.' || location
|| '.' || col ) cBin
, count(*) cLi
from oa1p.vQZ040BindRz
group by pgm
)
, u --- add dbp comments -------------------------------------------
( stmt, appl, pgm, install, rdl, cq, ov, colDef
, rdlSeq, rz, dbSys, location, quaDef
, cqSeq, col, qua
, ovSeq, opt, val) as
(
select ' /* beginPgm ' || strip(appl) ||'@'|| char(install) || ' '
|| strip(pgm)
, appl, pgm, install, '*', '*', '*', '*'
, rdlSeqMin-9, cast(null as char(1)), cast(null as char(1))
, '*', '*'
, 0, cast(null as char(1)), '*'
, 0, 'pgm', 'begin'
from p
union all select ' /* ' || (cLi+2) || ' lines, '
|| cBin || ' binds, '
|| cLoc || ' locations, ' || cDbSys || ' dbSys, '
|| cRz || ' rz'
, appl, pgm, install, '*', '*', '*', '*'
, rdlSeqMin-8, cast(null as char(1)), cast(null as char(1))
, '*', '*'
, 0, cast(null as char(1)), '*'
, 0, 'pgm', 'cnt'
from p
union all select * from oa1p.vQZ040BindRz
)
select * from u
;
commit
}¢--- A540769.WK.SQL(BINDHISG) cre=2014-04-04 mod=2014-04-22-14.24.15 A540769 ---
select genTst, result, rz, dbSys, pgm, line
, g.genId, CMPKG, cOM, cmJob, appl, instALL, result, resTst
from oa1p.tQZ043BindGen g
left join oa1p.tQZ044BindLine l
on g.genId = l.genId and seq = 1
where pgm <> ''
order by genTst desc
}¢--- A540769.WK.SQL(BINDHISL) cre=2014-04-04 mod=2014-04-22-14.00.24 A540769 ---
select pgm, g.genId, seq, line, g.*
from oa1p.tQZ043BindGen g
left join oa1p.tQZ044BindLine l
on g.genId = l.genId
where pgm = 'MF5000'
order by genTst desc, genId, seq
}¢--- A540769.WK.SQL(BINDMIGC) cre=2013-11-03 mod=2014-09-25-10.03.01 A540769 ---
--- create bind config OA1P.tQZ042BindCnfg
--- dies is die config für die Migration
--- von bind_paramters (v21) auf tQz041BindParm (v32)
--- NACH der Migration wird tQZ042BindCnfg direkt editiert
--- und dieses Script dar NICHT mehr gebraucht werden
---
--- history
--- 23. 9.14 AV0102 zugefügt
select count(*) from OA1P.tQZ042bindCnfg;
delete from OA1P.tQZ042BindCnfg;
Insert into OA1P.TQZ042BINDCNFG
( typ, key, seq, installBegin, installEnd, va1, va2, va3 )
with u as
(
select 'wCo' typ, COL key
, 10 * row_number() over (order by col) seq
, INSTALLFR installBegin, INSTALLTO installEnd
from oa1p.TBIPLANCOL
order by col
)
select u.*, '', '', '' from u
;
----- val rdl = rz db2system location ----------------------------------
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2)
values('rdl', 'DBOF', '01.01.2008', 22, 'RZ8', 'DC0G') ;
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2)
values('rdl', 'DBOF', '01.01.2008', 30, 'RZ8', 'DD0G') ;
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2
, installEnd)
values('rdl', 'DBOF', '01.01.2000', 42, 'RZ1','DBTF','31.08.2014');
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2)
values('rdl', 'DBOF', '01.01.2008', 44, 'RZZ', 'DE0G') ;
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2)
values('rdl', 'DBOF', '01.01.2014', 60, 'RQ2', 'DBOF') ;
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2)
values('rdl', 'DBOF', '01.01.2000', 64, 'RR2', 'DBOF') ;
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2)
values('rdl', 'DBOF', '01.01.2000', 80, 'RZ2', 'DBOF') ;
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2)
values('rdl', 'DVBP', '01.01.2012', 22, 'RZ8', 'DCVG') ;
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2)
values('rdl', 'DVBP', '01.01.2008', 30, 'RZ8', 'DDVG') ;
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2
, installEnd)
values('rdl', 'DVBP', '01.01.2000', 42, 'RZ1','DVTB','31.08.2014');
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2)
values('rdl', 'DVBP', '01.01.2008', 44, 'RZZ', 'DEVG') ;
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2)
values('rdl', 'DVBP', '01.01.2014', 60, 'RQ2', 'DVBP') ;
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2)
values('rdl', 'DVBP', '01.01.2000', 64, 'RR2', 'DVBP') ;
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2)
values('rdl', 'DVBP', '01.01.2000', 80, 'RZ2', 'DVBP') ;
insert into OA1P.tQZ042bindCnfg
(typ, key, installBegin, seq, va1, va2)
select typ, 'DBOF>DVBP', installBegin, seq, va1, va2
from OA1P.tQZ042bindCnfg where typ = 'rdl' and key = 'DBOF';
insert into OA1P.tQZ042bindCnfg
(typ, key, installBegin, seq, va1, va2)
select typ, 'DBOF>DVBP', installBegin, seq+1, va1, va2
from OA1P.tQZ042bindCnfg where typ = 'rdl' and key = 'DBOF';
update OA1P.tQZ042bindCnfg set va3 = 'CHROI000DCVG'
where typ = 'rdl' and key = 'DBOF>DVBP' and seq = 23;
update OA1P.tQZ042bindCnfg set va3 = 'CHROI000DDVG'
where typ = 'rdl' and key = 'DBOF>DVBP' and seq = 31;
update OA1P.tQZ042bindCnfg set va3 = 'CHSKA000DVTB'
where typ = 'rdl' and key = 'DBOF>DVBP' and seq = 43;
update OA1P.tQZ042bindCnfg set va3 = 'CHROI00ZDEVG'
where typ = 'rdl' and key = 'DBOF>DVBP' and seq = 45;
update OA1P.tQZ042bindCnfg set va3 = 'CHSKA000DVBP'
where typ = 'rdl' and key = 'DBOF>DVBP' and seq in (61, 65, 81);
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
select typ, 'DBOF>DBOL', seq, va1, va2, installBegin
from OA1P.tQZ042bindCnfg where typ = 'rdl' and key = 'DBOF';
insert into OA1P.tQZ042bindCnfg
(typ, key, seq, va1, va2, va3, installBegin)
values('rdl', 'DBOF>DBOL', 81, 'RZ2', 'DBOF','CHSKA000DBOL'
, '01.01.2000');
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2)
select typ, 'DVBP>DBOF', installBegin, seq, va1, va2
from OA1P.tQZ042bindCnfg where typ = 'rdl' and key = 'DVBP';
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2)
select typ, 'DVBP>DBOF', installBegin, seq+1, va1, va2
from OA1P.tQZ042bindCnfg where typ = 'rdl' and key = 'DVBP';
update OA1P.tQZ042bindCnfg set va3 = 'CHROI000DC0G'
where typ = 'rdl' and key = 'DVBP>DBOF' and seq = 23;
update OA1P.tQZ042bindCnfg set va3 = 'CHROI000DD0G'
where typ = 'rdl' and key = 'DVBP>DBOF' and seq = 31;
update OA1P.tQZ042bindCnfg set va3 = 'CHSKA000DBTF'
where typ = 'rdl' and key = 'DVBP>DBOF' and seq = 43;
update OA1P.tQZ042bindCnfg set va3 = 'CHROI00ZDE0G'
where typ = 'rdl' and key = 'DVBP>DBOF' and seq = 45;
update OA1P.tQZ042bindCnfg set va3 = 'CHSKA000DBOF'
where typ = 'rdl' and key = 'DVBP>DBOF' and seq = 61;
update OA1P.tQZ042bindCnfg set va3 = 'CHSKA000DBOF'
where typ = 'rdl' and key = 'DVBP>DBOF' and seq = 81;
update OA1P.tQZ042bindCnfg set va4 = 'OA1T'
where typ = 'rdl' and key not like 'DVBP%'
and va2 in ('DBTF', 'DVTB');
update OA1P.tQZ042bindCnfg set va4 = 'OA1P'
where typ = 'rdl' and key not like 'DVBP%'
and va4 = ''
;
update OA1P.tQZ042bindCnfg set va4 = 'BUA'
where typ = 'rdl' and key like 'DVBP%'
and va4 = ''
;
--- move rz8 to rzX und rzY
update OA1P.tQZ042bindCnfg set installEnd = '20.10.2013'
where typ = 'rdl' and va1 = 'RZ8'
;
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2
, va3, va4)
select typ, key, '20.10.2013', seq
, case when va2 in ('DC0G', 'DCVG') then 'RZX'
when va2 in ('DD0G', 'DDVG') then 'RZY'
else raise_error(77501, 'bad va2 ' || va2) end
, 'DE' || substr(va2, 3, 2)
, case when va3 = '' then ''
else case right(strip(va3), 4)
WHEN 'DC0G' then 'CHROI00XDE0G'
WHEN 'DCVG' then 'CHROI00XDEVG'
WHEN 'DD0G' then 'CHROI00YDE0G'
WHEN 'DDVG' then 'CHROI00YDEVG'
else raise_error(77502, 'bad va3 ' || va3) end end
, va4
from OA1P.tQZ042bindCnfg
where typ = 'rdl' and va1 = 'RZ8'
;
update OA1P.tQZ042bindCnfg set installEnd = '01.01.2014'
where typ = 'rdl' and va1 = 'RZX' and seq = 23
;
----- val cq: collection qualifier ------------------------------------
declare global temporary table session.i
(i int not null, c2 char(2) not null) ccsid unicode;
insert into session.i
select i, right('0000' || strip(char(i)), 2) c2
from (select row_number() over() -1 i
from sysibm.sysColumns fetch first 100 rows only)s
;
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('cq', 'default', 1, '$', '$', '01.01.2000')
;
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
select 'cq', 'AV0102', i, 'AV' || c2, '$' || c2, '01.01.2000'
from session.i where i > 0 and i <= 2
;
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
select 'cq', 'AV-03', i, 'AV' || c2, '$' || c2, '01.01.2000'
from session.i where i > 0 and i <= 3
;
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
select 'cq', 'AV-03-22', i, 'AV' || c2, '$' || c2, '01.01.2000'
from session.i where i in (1, 2, 3, 21, 22)
;
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
select 'cq', 'AV-10-32', i, 'AV' || c2, '$' || c2, '01.01.2000'
from session.i where i in(1,2,3,5,6,7,8,9,10,28,29,30,31,32)
;
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
select 'cq', 'AVALL', i, 'AV' || c2, '$' || c2, '01.01.2000'
from session.i where i > 0 and i <= 32 and i <> 4
; /*?????????
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('cq', 'AV0101', 1, 'AV01', '$01', '01.01.2000');
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('cq', 'AV0101', 2, 'AV02', '$01', '01.01.2000');
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('cq', 'AV12', 1, 'AV', '$12', '01.01.2000');
??????? */
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
select 'cq', 'BE-04', i, 'BE' || c2, '$' || c2, '01.01.2000'
from session.i where i > 0 and i <= 4
;
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('cq', 'BE+04', 0, 'BE', '$01', '01.01.2000');
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
select 'cq', 'BE+04', i, 'BE' || c2, '$' || c2, '01.01.2000'
from session.i where i > 0 and i <= 4
;
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('cq', 'AU', 1, 'AU', '$', '01.01.2000');
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('cq', 'CTCZ', 1, 'CT', '$', '01.01.2000');
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('cq', 'CTCZ', 2, 'CZ', '$', '01.01.2000');
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('cq', 'KE', 1, 'KE', '$', '01.01.2000');
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('cq', 'NI-02', 2, 'NI01', '$01', '01.01.2000');
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('cq', 'NI-02', 3, 'NI02', '$02', '01.01.2000');
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('cq', 'NI+02', 0, 'NI', '$', '01.01.2000');
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('cq', 'NI+02', 1, 'NI01', '$01', '01.01.2000');
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('cq', 'NI+02', 2, 'NI02', '$02', '01.01.2000');
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
select 'cq', 'PC-02', i, 'PC' || c2, '$' || c2, '01.01.2000'
from session.i where i > 0 and i <= 2
;
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
select 'cq', 'PCALL', i, 'PC' || c2, '$' || c2, '01.01.2000'
from session.i where i > 0 and i <= 16
;
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('cq', 'XB', 1, 'XB', '$', '01.01.2000');
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
select 'cq', 'XCALL', i, 'XC' || c2, '$' || c2, '01.01.2000'
from session.i where i >= 0 and i <= 9
;
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('cq', 'YY+', 1, '$', '$', '01.01.2000');
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('cq', 'YY+', 10, 'YY', '$', '01.01.2000');
----- val ov: bindOptions values --------------------------------------
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('ov', 'default', 110, 'OWNER', 'CMNBATCH','01.01.2000');
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('ov', 'default', 210, 'ISOLATION', 'CS','01.01.2000');
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('ov', 'default', 220, 'DEGREE', '1','01.01.2000');
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('ov', 'default', 310, 'DYNAMICRULES', 'BIND','01.01.2000');
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('ov', 'default', 320, 'VALIDATE', 'BIND','01.01.2000');
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('ov', 'default', 910, 'EXPLAIN', 'YES','01.01.2000');
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('ov', 'default', 920, 'FLAG', 'I','01.01.2000');
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('ov', 'degAny', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('ov', 'degAny', 220, 'DEGREE', 'ANY','01.01.2000');
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('ov', 'valRun', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('ov', 'valRun', 320, 'VALIDATE', 'RUN','01.01.2000');
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('ov', 'optHBD1',-9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('ov', 'optHBD1', 330, 'OPTHINT', '''HBD1''','01.01.2000');
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('ov', 'optOH', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('ov', 'optOH', 330, 'OPTHINT', '''OH''' ,'01.01.2000');
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('ov', 'reoAlw', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('ov', 'reoAlw', 340, 'REOPT', 'ALWAYS','01.01.2000');
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('ov', 'dynRun', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('ov', 'dynRun', 310, 'DYNAMICRULES', 'RUN','01.01.2000');
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('ov', 'dynValRun',-9999,'-->parent','dynRun', '01.01.2000') ;
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('ov', 'dynValRun', 320, 'VALIDATE', 'RUN','01.01.2000');
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('ov', 'relDea', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
values('ov', 'relDea', 230, 'RELEASE', 'DEALLOCATE','01.01.2000');
select count(*) from OA1P.tQZ042bindCnfg;
rollback;
commit;
}¢--- A540769.WK.SQL(BINDMIGP) cre=2014-04-04 mod=2014-09-25-10.07.41 A540769 ---
--- migrate bind_paramters und bind_exceptions (v21)
--- to tQz041BindParm (v32)
--- Achtung das migriert die Daten
--- auf denen ChangeMan live arbeitet
--- falls Migrationsfehler ==> rollback durch spufi
--- wenn ok, rollback am Ende durch commit ersetzen
--- history
--- 24. 9.14 AV0102 eingefügt
select count(*) from OA1P.tQz041BindParm;
delete from OA1P.tQz041BindParm;
insert into OA1P.tQz041BindParm
(appl, pgm, prio, rdl, cq, ov, installBegin)
with e1 as --- old exception table -------------------------------------
(
select appl, pgm, installdate inst
, replace(replace
(strip(ssid) || '>' || strip(location) || '-'||strip(qualifier)
, 'CHSKA000', '?'), 'CHROI00', '%') dlq
, row_number() over (partition by appl, pgm
order by ssid, location, qualifier) rn
from oa1p.bind_exceptions e
where appl not in ('A18Q', 'B18Q', 'A11O', 'A22N', 'RETI')
and pgm not in ('DEFA???', 'DBWK1', 'DB2WK1', 'DB2JAA',
'DBWK411', 'YCDPUT2'
)
and collid not in ('DI_DRDA', 'EK_DRDA', 'RM_DRDA', 'TR_DRDA')
)
, eR --- recusively cat dbSys Locaction qual ---------------------------
( appl, pgm, inst, dlq, r) as
(
select appl, pgm, inst, cast(dlq as varchar(2000)), 1
from e1 where rn = 1
union all select eR.appl, eR.pgm, e1.inst, eR.dlq || ' ' || e1.dlq
, r+1
from eR join e1
on e1.appl = eR.appl and e1.pgm = eR.pgm
and e1.rn = eR.r+1
where eR.r < 100
)
, e2 -- select last one -----------------------------------------------
( appl, pgm, inst, dlq) as
(
select appl, pgm, max(inst), max(dlq)
from eR
group by appl, pgm
)
, rdl as --- find rdl --------------------------------------------------
(
select appl, pgm, inst
, case dlq
when 'DAEG>?DC0G-OA1P DBBA>-OA1A DBBA>?DBAF-OA1A '
|| 'DCVG>- DCVG>%0DC0G- DDVG>- DDVG>%0DD0G- DEVG>- '
|| 'DEVG>%ZDE0G- DVBP>-OA1P DVBP>?DBOF-OA1P DVTB>-OA1T '
|| 'DVTB>?DBTF-OA1T' then 'DBOF>DVBP'
when 'DBAF>-OA1A DBAF>?DBBA-OA1A DBOF>-OA1P DBOF>?DVBP-OA1P '
|| 'DBTF>-OA1T DBTF>?DVTB-OA1T' then 'DBOF>DVBP'
when 'DBAF>-OA1A DBAF>?DBBA-OA1A DBOF>-OA1P DBOF>?DVBP-OA1P '
|| 'DBTF>-OA1T DBTF>?DVTB-OA1T DE0G>-OA1P DE0G>%ZDEVG-OA1P'
then 'DBOF>DVBP'
-- when 'DBAF>-OA1A DBAF>?DBTF-OA1A' then '???oa1a 1'
when 'DBAF>-OA1A DBOF>-OA1P DBOF>?DVBP-OA1P DBTF>-OA1T '
|| 'DBTF>?DVTB-OA1T' then 'DBOF>DVBP'
-- when 'DBAF>?DBBA-OA1A DBBA>?DBAF-OA1A' then '???oa1a 2'
when 'DBBA>-OA1A' then 'DBOF>DVBP'
when 'DBBA>-OA1A DBBA>?DBAF-OA1A DCVG>- DCVG>%0DC0G- '
|| 'DDVG>- DDVG>%0DD0G- DEVG>- DEVG>%ZDE0G- DVBP>-OA1P '
|| 'DVBP>?DBOF-OA1P DVTB>-OA1T DVTB>?DBTF-OA1T'
then 'DBOF>DVBP'
else raise_error(77301, pgm || ' dlq ' || dlq)
end rdl
from e2
)
, p as --- mark outdated entries in bind_parameters ----------------
(
select p.*
, row_number() over (partition by appl, pgm, collid
order by installdate desc) iNr
from oa1p.bind_parameters p
where appl not in ('A18Q', 'B18Q', 'A11O', 'A22N', 'RETI')
and pgm not in ('DEFA???', 'DBWK1', 'DB2WK1', 'DB2JAA',
'DBWK411', 'YCDPUT2'
)
and collid not in ('DI_DRDA', 'EK_DRDA', 'RM_DRDA', 'TR_DRDA')
)
, o1 as --- translate space to null -----------------------------------
( select appl, pgm, collid, installdate
,case when OWNER <> '' then owner else null end owner
,case when QUALIFIER <> '' then QUALIFIER else null end QUALIFIER
,case when ISOLATION <> '' then ISOLATION else null end ISOLATION
,case when EXPLAIN <> '' then EXPLAIN else null end EXPLAIN
,case when CURRENTDATA <> '' then CURRENTDATA else null end CURRENTDATA
,case when RELEASE <> '' then RELEASE else null end RELEASE
,case when DBPROTOCOL <> '' then DBPROTOCOL else null end DBPROTOCOL
,case when DEGREE <> '' then DEGREE else null end DEGREE
,case when DYNAMICRULES <> '' then DYNAMICRULES else null end
DYNAMICRULES
,case when KEEPDYNAMIC <> '' then KEEPDYNAMIC else null end KEEPDYNAMIC
,case when REOPT <> '' then REOPT else null end REOPT
,case when OPTHINT <> '' then OPTHINT else null end OPTHINT
,case when IMMEDWRITE <> '' then IMMEDWRITE else null end IMMEDWRITE
,case when FLAG <> '' then FLAG else null end FLAG
,case when PATH <> '' then PATH else null end PATH
,case when VALIDATE <> '' then VALIDATE else null end VALIDATE
,case when SQLERROR <> '' then SQLERROR else null end SQLERROR
,case when SQLRULES <> '' then SQLRULES else null end SQLRULES
,case when DEFER <> '' then DEFER else null end DEFER
,case when ENCODING <> '' then ENCODING else null end ENCODING
,case when ROUNDING <> '' then ROUNDING else null end ROUNDING
from p
where iNr = 1
)
, o2 as -- left join appl and gen defaults ----------------------------
( select
--alue(s.$ ,a.$ ,d.$ ) $
value(s.APPL ,a.APPL ,d.APPL ) APPL
,value(s.PGM ,a.PGM ,d.PGM ) PGM
,value(s.COLLID ,a.COLLID ,d.COLLID ) COLLID
,value(s.INSTALLDATE ,a.INSTALLDATE ,d.INSTALLDATE ) INSTALLDATE
,value(s.OWNER ,a.OWNER ,d.OWNER ) OWNER
,value(s.QUALIFIER ,a.QUALIFIER ,d.QUALIFIER ) QUALIFIER
,value(s.ISOLATION ,a.ISOLATION ,d.ISOLATION ) ISOLATION
,value(s.EXPLAIN ,a.EXPLAIN ,d.EXPLAIN ) EXPLAIN
,value(s.CURRENTDATA ,a.CURRENTDATA ,d.CURRENTDATA ) CURRENTDATA
,value(s.RELEASE ,a.RELEASE ,d.RELEASE ) RELEASE
,value(s.DBPROTOCOL ,a.DBPROTOCOL ,d.DBPROTOCOL ) DBPROTOCOL
,value(s.DEGREE ,a.DEGREE ,d.DEGREE ) DEGREE
,value(s.DYNAMICRULES,a.DYNAMICRULES,d.DYNAMICRULES) DYNAMICRULES
,value(s.KEEPDYNAMIC ,a.KEEPDYNAMIC ,d.KEEPDYNAMIC ) KEEPDYNAMIC
,value(s.REOPT ,a.REOPT ,d.REOPT ) REOPT
,value(s.OPTHINT ,a.OPTHINT ,d.OPTHINT ) OPTHINT
,value(s.IMMEDWRITE ,a.IMMEDWRITE ,d.IMMEDWRITE ) IMMEDWRITE
,value(s.FLAG ,a.FLAG ,d.FLAG ) FLAG
,value(s.PATH ,a.PATH ,d.PATH ) PATH
,value(s.VALIDATE ,a.VALIDATE ,d.VALIDATE ) VALIDATE
,value(s.SQLERROR ,a.SQLERROR ,d.SQLERROR ) SQLERROR
,value(s.SQLRULES ,a.SQLRULES ,d.SQLRULES ) SQLRULES
,value(s.DEFER ,a.DEFER ,d.DEFER ) DEFER
,value(s.ENCODING ,a.ENCODING ,d.ENCODING ) ENCODING
,value(s.ROUNDING ,a.ROUNDING ,d.ROUNDING ) ROUNDING
from o1 s
left join o1 a
on a.appl = s.appl and a.pgm = 'DEFAULT'
and a.collid = 'DEFAULT'
left join p d
on d.appl = 'DEFAULT' and d.pgm = 'DEFAULT'
and d.collid = 'DEFAULT'
)
, o3 as --- add combination of options/values -----------------------
(
select
left(release, 4) || left(degree, 4) || left(dynamicRules, 4)
|| left(reopt, 4) || left(opthint, 4) || left(validate, 4) comb,
o2.*
from o2
)
, ov as
(
select appl, pgm, installDate, collid
, case when comb is null then raise_error(77311
, pgm || ' comb is null')
else qualifier end qualifier
, case comb
when ' ANY BIND BIND' then 'degAny '
when ' 1 BIND BIND' then 'default '
when ' 1 BIND RUN ' then 'valRun '
when ' 1 BIND HBD1BIND' then 'optHBD1 '
when ' 1 BIND OH BIND' then 'optOH '
when ' 1 BINDALWA BIND' then 'reoAlw '
when ' 1 RUN BIND' then 'dynRun '
when ' 1 RUN RUN ' then 'dynValRun'
when 'DEAL1 BIND BIND' then 'relDea '
else raise_error(77312, pgm || ' bad comb ' || comb)
end ov
from o3
)
, a as --- left join rdl -----------------------------------------------
(
select ov.appl, ov.pgm
, max(ov.installDate, value(rdl.inst, ov.installDate)) inst
, case when rdl.rdl is not null then rdl.rdl
when ov.appl like 'ELA%' then 'DVBP'
else 'DBOF'
end rdl
, ov.ov
, case when rdl.rdl is not null then 'OA1$'
when ov.appl like 'ELA%' then 'BUA'
else 'OA1$'
end quaVar
, ov.collid col, ov.qualifier qua
from ov left join rdl
on ov.appl = rdl.appl
and ov.pgm = rdl.pgm
)
, d as --- add default Qualifier and Collection
(
select a.*
, case when pgm = 'DEFAULT' then '$'
when left(pgm, 2) = 'YX' then 'YX'
when left(pgm, 2) = 'YY' then 'YY'
when left(pgm, 1) = 'Y' then substr(pgm, 2, 2)
else left(pgm, 2) end colDef
, row_number() over(partition by appl, pgm order by col) r
from a
)
, e --- recursive build lists of colls/quals --------------------------
( appl, pgm, col, inst, rdl, ov
, quaVar, colDef, r, qua, quals, colls) as
(
select appl, pgm, col, inst, rdl, ov
, quaVar, colDef, 1, qua
, cast(strip(qua) as varchar(1000))
, cast(strip(col) as varchar(1000))
from d where r = 1
union all select d.appl, d.pgm, d.col, d.inst, d.rdl, d.ov
, d.quaVar, d.colDef, e.r+1, d.qua
, e.quals || ' ' || strip(d.qua)
, e.colls || ' ' || strip(d.col)
from e join d
on e.appl = d.appl and e.pgm = d.pgm
and e.r + 1 = d.r and e.r < 999
)
, f as --- select maximal lists ----------------------------------------
(
select appl, pgm, max(inst) inst
, min(rdl) rdl, max(rdl) rdlMax
, min(ov) ov, max(ov) ovMax
, min(colDef) colDef, max(colDef) colDefMax
, min(quaVar) quaVar, max(quaVar) quaVarMax
, max(quals) quals
, max(colls) colls
from e
group by appl, pgm
)
, g as --- special quals ---------------------------------------------
(
select appl, pgm, inst, rdl, ov, colDef, quaVar, quals
, case when rdl <> rdlMax
then raise_error(77321, pgm
|| ' rdl ' || rdl || ' ==> ' || rdlMax)
when ov is null then raise_error(77312, pgm || ' ov null')
when ov <> ovMax
then raise_error(77323, pgm
|| ' ov ' || ov || ' ==> ' || ovMax)
when colDef <> colDefMax
then raise_error(77324, pgm
|| ' colDef ' || colDef || ' ==> ' || colDefMax)
when quaVar <> quaVarMax
then raise_error(77325, pgm
|| ' quaVar ' || quaVar || ' ==> ' || quaVarMax)
when colls = 'DEFAULT' then colDef
else colls
end colls
from f
)
, h as --- colls und quals komprimieren --------------------------------
(
select g.*
, replace(colls, ' ' || left(colls, 2), '=') collR
, replace(quals, ' ' || left(quals, 4), '=') qualR
from g
)
-- select * from h where 'DEFAULT' in (pgm, appl) ;x;
, i as --- den neuen cq key bestimmen ----------------------------------
(
select h.*
, cast(case --- default
when colls = colDef and quals = quaVar then 'default'
--- single
when quals=quaVar and colls in ('AU', 'BE', 'CD', 'KE', 'XB')
then colls
--- spezial: colls und quals nicht in sync --------
--- av
/*???when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
and qualR='OA1$01=02=03=09=09=09=09=09=10=09=09=09=09=09'
|| '=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09'
then 'AV/Y/X012'
when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
and qualR='OA1$01=02=03=05=06=07=08=09=10=11=12=12=12=12'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
then 'AV/Y/0129'
when collR = 'AV01=02' and qualR = 'OA1$01=01'
then 'AV0101'
when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
and qualR='OA1$02=02=03=05=06=07=08=09=10=11=12=13=14=15'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
then 'AV/Y/CPID'
???? when collR = 'AV' and quals = 'OA1P12' then 'AV12' ????? */
when collR = 'BE=01=02=03=04' and qualR = 'OA1$01=01=02=03=04'
then 'BE+04'
when colls = 'CT CZ' and qualR = 'OA1$=' then 'CTCZ' --- ctcz
when colls = coldef ||' YY' and qualR = 'OA1$=' --- + yy
then 'YY+'
when colls = 'OA1P01 OA1P02' and qualR = 'OA1$01=02' --- oa1p
then 'OA1P-02'
--- error if colls und quals nicht in sync--------
when 'OA1$' || substr(collR, 3) <> qualR --en '???quals/coll'
then raise_error(77331, appl||'.'||pgm || ' colls ' || collR
|| ' mismatches quals ' || qualR)
--- av
when right(collR, 83) = '05=06=07=08=09=10=11=12=13=14=15=16'
|| '=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
and left(collR, 14) in ('AV01=02=03=05='
, 'AV01=02=05=06=', 'AV05=06=07=08=' )
then 'AVALL'
when collR in ( 'AV01=02' ) then 'AV0102'
when collR in ('AV01=02=03', 'AV03') then 'AV-03'
when collR in ('AV01=02=03=05=06=07=08=09=10'
,'AV01=02=03=28=29=30=31=32'
,'AV01=02=09=10=28=29=30=31=32'
,'AV28=29=30=31=32') then 'AV-10-32'
when collR = 'AV01=02=03=21=22' then 'AV-03-22'
when collR = 'BE01=02=03=04' then 'BE-04' --- be
when collR = 'NI01=02' then 'NI-02' --- ni
when collR = 'NI=01=02' then 'NI+02'
when collR in ('PC01=02', 'PC01') then 'PC-02' --- pc
when collR in
('PC01=02=03=04=05=06=07=08=09=10=11=12=13=14=15=16'
,'PC01=02=03=04=05=06=07=08=09=10=11=13=14=15=16')
then 'PCALL'
--- xc
when collR = 'XC00=01=02=03=04=05=06=07=08=09' then 'XCALL'
else raise_error(77332, appl||'.'||pgm || ' collR ' || collR
|| ' quaVar ' || quaVar)
end as char(10)) cq
from h
)
, j as
(
select case when appl = 'DEFAULT' or pgm <> 'DEFAULT' then '%'
else appl end appl
, case when pgm = 'DEFAULT' then '%' else pgm end pgm
, case when pgm <> 'DEFAULT' then 20
when appl <> 'DEFAULT' then 2
else 0 end prio
, case when rdl = 'DBOF' then 'DBOF'
when rdl = 'DVBP' then 'DVBP'
else rdl end rdl
, cq, ov, inst
from i
)
select * from j
where not (rdl = 'DBOF' and cq = 'default' and ov = 'default')
or (pgm = '%' and appl = '%')
;
select count(*) from OA1P.tQz041BindParm;
rollback;
commit;
}¢--- A540769.WK.SQL(BINDMIGQ) cre=2014-09-23 mod=2014-09-23-16.51.07 A540769 ---
--- migrate bind_paramters und bind_exceptions (v21)
--- to tQz041BindParm (v32)
--- Achtung das migriert die Daten
--- auf denen ChangeMan live arbeitet
--- falls Migrationsfehler ==> rollback durch spufi
--- wenn ok, rollback am Ende durch commit ersetzen
---
with e1 as --- old exception table -------------------------------------
(
select appl, pgm, installdate inst
, replace(replace
(strip(ssid) || '>' || strip(location) || '-'||strip(qualifier)
, 'CHSKA000', '?'), 'CHROI00', '%') dlq
, row_number() over (partition by appl, pgm
order by ssid, location, qualifier) rn
from oa1p.bind_exceptions e
where appl not in ('A18Q', 'B18Q', 'A11O', 'A22N', 'RETI')
and pgm not in ('DEFA???', 'DBWK1', 'DB2WK1', 'DB2JAA',
'DBWK411', 'YCDPUT2'
)
and collid not in ('DI_DRDA', 'EK_DRDA', 'RM_DRDA', 'TR_DRDA')
)
, eR --- recusively cat dbSys Locaction qual ---------------------------
( appl, pgm, inst, dlq, r) as
(
select appl, pgm, inst, cast(dlq as varchar(2000)), 1
from e1 where rn = 1
union all select eR.appl, eR.pgm, e1.inst, eR.dlq || ' ' || e1.dlq
, r+1
from eR join e1
on e1.appl = eR.appl and e1.pgm = eR.pgm
and e1.rn = eR.r+1
where eR.r < 100
)
, e2 -- select last one -----------------------------------------------
( appl, pgm, inst, dlq) as
(
select appl, pgm, max(inst), max(dlq)
from eR
group by appl, pgm
)
, rdl as --- find rdl --------------------------------------------------
(
select appl, pgm, inst
, case dlq
when 'DAEG>?DC0G-OA1P DBBA>-OA1A DBBA>?DBAF-OA1A '
|| 'DCVG>- DCVG>%0DC0G- DDVG>- DDVG>%0DD0G- DEVG>- '
|| 'DEVG>%ZDE0G- DVBP>-OA1P DVBP>?DBOF-OA1P DVTB>-OA1T '
|| 'DVTB>?DBTF-OA1T' then 'DBOF>DVBP'
when 'DBAF>-OA1A DBAF>?DBBA-OA1A DBOF>-OA1P DBOF>?DVBP-OA1P '
|| 'DBTF>-OA1T DBTF>?DVTB-OA1T' then 'DBOF>DVBP'
when 'DBAF>-OA1A DBAF>?DBBA-OA1A DBOF>-OA1P DBOF>?DVBP-OA1P '
|| 'DBTF>-OA1T DBTF>?DVTB-OA1T DE0G>-OA1P DE0G>%ZDEVG-OA1P'
then 'DBOF>DVBP'
-- when 'DBAF>-OA1A DBAF>?DBTF-OA1A' then '???oa1a 1'
when 'DBAF>-OA1A DBOF>-OA1P DBOF>?DVBP-OA1P DBTF>-OA1T '
|| 'DBTF>?DVTB-OA1T' then 'DBOF>DVBP'
-- when 'DBAF>?DBBA-OA1A DBBA>?DBAF-OA1A' then '???oa1a 2'
when 'DBBA>-OA1A' then 'DBOF>DVBP'
when 'DBBA>-OA1A DBBA>?DBAF-OA1A DCVG>- DCVG>%0DC0G- '
|| 'DDVG>- DDVG>%0DD0G- DEVG>- DEVG>%ZDE0G- DVBP>-OA1P '
|| 'DVBP>?DBOF-OA1P DVTB>-OA1T DVTB>?DBTF-OA1T'
then 'DBOF>DVBP'
else raise_error(77301, pgm || ' dlq ' || dlq)
end rdl
from e2
)
, p as --- mark outdated entries in bind_parameters ----------------
(
select p.*
, row_number() over (partition by appl, pgm, collid
order by installdate desc) iNr
from oa1p.bind_parameters p
where appl not in ('A18Q', 'B18Q', 'A11O', 'A22N', 'RETI')
and pgm not in ('DEFA???', 'DBWK1', 'DB2WK1', 'DB2JAA',
'DBWK411', 'YCDPUT2'
)
and collid not in ('DI_DRDA', 'EK_DRDA', 'RM_DRDA', 'TR_DRDA')
)
, o1 as --- translate space to null -----------------------------------
( select appl, pgm, collid, installdate
,case when OWNER <> '' then owner else null end owner
,case when QUALIFIER <> '' then QUALIFIER else null end QUALIFIER
,case when ISOLATION <> '' then ISOLATION else null end ISOLATION
,case when EXPLAIN <> '' then EXPLAIN else null end EXPLAIN
,case when CURRENTDATA <> '' then CURRENTDATA else null end CURRENTDATA
,case when RELEASE <> '' then RELEASE else null end RELEASE
,case when DBPROTOCOL <> '' then DBPROTOCOL else null end DBPROTOCOL
,case when DEGREE <> '' then DEGREE else null end DEGREE
,case when DYNAMICRULES <> '' then DYNAMICRULES else null end
DYNAMICRULES
,case when KEEPDYNAMIC <> '' then KEEPDYNAMIC else null end KEEPDYNAMIC
,case when REOPT <> '' then REOPT else null end REOPT
,case when OPTHINT <> '' then OPTHINT else null end OPTHINT
,case when IMMEDWRITE <> '' then IMMEDWRITE else null end IMMEDWRITE
,case when FLAG <> '' then FLAG else null end FLAG
,case when PATH <> '' then PATH else null end PATH
,case when VALIDATE <> '' then VALIDATE else null end VALIDATE
,case when SQLERROR <> '' then SQLERROR else null end SQLERROR
,case when SQLRULES <> '' then SQLRULES else null end SQLRULES
,case when DEFER <> '' then DEFER else null end DEFER
,case when ENCODING <> '' then ENCODING else null end ENCODING
,case when ROUNDING <> '' then ROUNDING else null end ROUNDING
from p
where iNr = 1
)
, o2 as -- left join appl and gen defaults ----------------------------
( select
--alue(s.$ ,a.$ ,d.$ ) $
value(s.APPL ,a.APPL ,d.APPL ) APPL
,value(s.PGM ,a.PGM ,d.PGM ) PGM
,value(s.COLLID ,a.COLLID ,d.COLLID ) COLLID
,value(s.INSTALLDATE ,a.INSTALLDATE ,d.INSTALLDATE ) INSTALLDATE
,value(s.OWNER ,a.OWNER ,d.OWNER ) OWNER
,value(s.QUALIFIER ,a.QUALIFIER ,d.QUALIFIER ) QUALIFIER
,value(s.ISOLATION ,a.ISOLATION ,d.ISOLATION ) ISOLATION
,value(s.EXPLAIN ,a.EXPLAIN ,d.EXPLAIN ) EXPLAIN
,value(s.CURRENTDATA ,a.CURRENTDATA ,d.CURRENTDATA ) CURRENTDATA
,value(s.RELEASE ,a.RELEASE ,d.RELEASE ) RELEASE
,value(s.DBPROTOCOL ,a.DBPROTOCOL ,d.DBPROTOCOL ) DBPROTOCOL
,value(s.DEGREE ,a.DEGREE ,d.DEGREE ) DEGREE
,value(s.DYNAMICRULES,a.DYNAMICRULES,d.DYNAMICRULES) DYNAMICRULES
,value(s.KEEPDYNAMIC ,a.KEEPDYNAMIC ,d.KEEPDYNAMIC ) KEEPDYNAMIC
,value(s.REOPT ,a.REOPT ,d.REOPT ) REOPT
,value(s.OPTHINT ,a.OPTHINT ,d.OPTHINT ) OPTHINT
,value(s.IMMEDWRITE ,a.IMMEDWRITE ,d.IMMEDWRITE ) IMMEDWRITE
,value(s.FLAG ,a.FLAG ,d.FLAG ) FLAG
,value(s.PATH ,a.PATH ,d.PATH ) PATH
,value(s.VALIDATE ,a.VALIDATE ,d.VALIDATE ) VALIDATE
,value(s.SQLERROR ,a.SQLERROR ,d.SQLERROR ) SQLERROR
,value(s.SQLRULES ,a.SQLRULES ,d.SQLRULES ) SQLRULES
,value(s.DEFER ,a.DEFER ,d.DEFER ) DEFER
,value(s.ENCODING ,a.ENCODING ,d.ENCODING ) ENCODING
,value(s.ROUNDING ,a.ROUNDING ,d.ROUNDING ) ROUNDING
from o1 s
left join o1 a
on a.appl = s.appl and a.pgm = 'DEFAULT'
and a.collid = 'DEFAULT'
left join p d
on d.appl = 'DEFAULT' and d.pgm = 'DEFAULT'
and d.collid = 'DEFAULT'
)
, o3 as --- add combination of options/values -----------------------
(
select
left(release, 4) || left(degree, 4) || left(dynamicRules, 4)
|| left(reopt, 4) || left(opthint, 4) || left(validate, 4) comb,
o2.*
from o2
)
, ov as
(
select appl, pgm, installDate, collid
, case when comb is null then raise_error(77311
, pgm || ' comb is null')
else qualifier end qualifier
, case comb
when ' ANY BIND BIND' then 'degAny '
when ' 1 BIND BIND' then 'default '
when ' 1 BIND RUN ' then 'valRun '
when ' 1 BIND HBD1BIND' then 'optHBD1 '
when ' 1 BIND OH BIND' then 'optOH '
when ' 1 BINDALWA BIND' then 'reoAlw '
when ' 1 RUN BIND' then 'dynRun '
when ' 1 RUN RUN ' then 'dynValRun'
when 'DEAL1 BIND BIND' then 'relDea '
else raise_error(77312, pgm || ' bad comb ' || comb)
end ov
from o3
)
, a as --- left join rdl -----------------------------------------------
(
select ov.appl, ov.pgm
, max(ov.installDate, value(rdl.inst, ov.installDate)) inst
, case when rdl.rdl is not null then rdl.rdl
when ov.appl like 'ELA%' then 'DVBP'
else 'DBOF'
end rdl
, ov.ov
, case when rdl.rdl is not null then 'OA1$'
when ov.appl like 'ELA%' then 'BUA'
else 'OA1$'
end quaVar
, ov.collid col, ov.qualifier qua
from ov left join rdl
on ov.appl = rdl.appl
and ov.pgm = rdl.pgm
)
, d as --- add default Qualifier and Collection
(
select a.*
, case when pgm = 'DEFAULT' then '$'
when left(pgm, 2) = 'YX' then 'YX'
when left(pgm, 2) = 'YY' then 'YY'
when left(pgm, 1) = 'Y' then substr(pgm, 2, 2)
else left(pgm, 2) end colDef
, row_number() over(partition by appl, pgm order by col) r
from a
)
, e --- recursive build lists of colls/quals --------------------------
( appl, pgm, col, inst, rdl, ov
, quaVar, colDef, r, qua, quals, colls) as
(
select appl, pgm, col, inst, rdl, ov
, quaVar, colDef, 1, qua
, cast(strip(qua) as varchar(1000))
, cast(strip(col) as varchar(1000))
from d where r = 1
union all select d.appl, d.pgm, d.col, d.inst, d.rdl, d.ov
, d.quaVar, d.colDef, e.r+1, d.qua
, e.quals || ' ' || strip(d.qua)
, e.colls || ' ' || strip(d.col)
from e join d
on e.appl = d.appl and e.pgm = d.pgm
and e.r + 1 = d.r and e.r < 999
)
, f as --- select maximal lists ----------------------------------------
(
select appl, pgm, max(inst) inst
, min(rdl) rdl, max(rdl) rdlMax
, min(ov) ov, max(ov) ovMax
, min(colDef) colDef, max(colDef) colDefMax
, min(quaVar) quaVar, max(quaVar) quaVarMax
, max(quals) quals
, max(colls) colls
from e
group by appl, pgm
)
, g as --- special quals ---------------------------------------------
(
select appl, pgm, inst, rdl, ov, colDef, quaVar, quals
, case when rdl <> rdlMax
then raise_error(77321, pgm
|| ' rdl ' || rdl || ' ==> ' || rdlMax)
when ov is null then raise_error(77312, pgm || ' ov null')
when ov <> ovMax
then raise_error(77323, pgm
|| ' ov ' || ov || ' ==> ' || ovMax)
when colDef <> colDefMax
then raise_error(77324, pgm
|| ' colDef ' || colDef || ' ==> ' || colDefMax)
when quaVar <> quaVarMax
then raise_error(77325, pgm
|| ' quaVar ' || quaVar || ' ==> ' || quaVarMax)
when colls = 'DEFAULT' then colDef
else colls
end colls
from f
)
, h as --- colls und quals komprimieren --------------------------------
(
select g.*
, replace(colls, ' ' || left(colls, 2), '=') collR
, replace(quals, ' ' || left(quals, 4), '=') qualR
from g
)
-- select * from h where 'DEFAULT' in (pgm, appl) ;x;
, i as --- den neuen cq key bestimmen ----------------------------------
(
select h.*
, cast(case --- default
when colls = colDef and quals = quaVar then 'default'
--- single
when quals=quaVar and colls in ('AU', 'BE', 'CD', 'KE', 'XB')
then colls
--- spezial: colls und quals nicht in sync --------
--- av
/*???when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
and qualR='OA1$01=02=03=09=09=09=09=09=10=09=09=09=09=09'
|| '=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09'
then 'AV/Y/X012'
when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
and qualR='OA1$01=02=03=05=06=07=08=09=10=11=12=12=12=12'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
then 'AV/Y/0129'
when collR = 'AV01=02' and qualR = 'OA1$01=01'
then 'AV0101'
when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
and qualR='OA1$02=02=03=05=06=07=08=09=10=11=12=13=14=15'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
then 'AV/Y/CPID'
???? when collR = 'AV' and quals = 'OA1P12' then 'AV12' ????? */
when collR = 'BE=01=02=03=04' and qualR = 'OA1$01=01=02=03=04'
then 'BE+04'
when colls = 'CT CZ' and qualR = 'OA1$=' then 'CTCZ' --- ctcz
when colls = coldef ||' YY' and qualR = 'OA1$=' --- + yy
then 'YY+'
when colls = 'OA1P01 OA1P02' and qualR = 'OA1$01=02' --- oa1p
then 'OA1P-02'
--- error if colls und quals nicht in sync--------
when 'OA1$' || substr(collR, 3) <> qualR --en '???quals/coll'
then raise_error(77331, appl||'.'||pgm || ' colls ' || collR
|| ' mismatches quals ' || qualR)
--- av
when right(collR, 83) = '05=06=07=08=09=10=11=12=13=14=15=16'
|| '=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
and left(collR, 14) in ('AV01=02=03=05='
, 'AV01=02=05=06=', 'AV05=06=07=08=' )
then 'AVALL'
when collR in ( 'AV01=02' ) then 'AV0102'
when collR in ('AV01=02=03', 'AV01=02','AV03') then 'AV-03'
when collR in ('AV01=02=03=05=06=07=08=09=10'
,'AV01=02=03=28=29=30=31=32'
,'AV01=02=09=10=28=29=30=31=32'
,'AV28=29=30=31=32') then 'AV-10-32'
when collR = 'AV01=02=03=21=22' then 'AV-03-22'
when collR = 'BE01=02=03=04' then 'BE-04' --- be
when collR = 'NI01=02' then 'NI-02' --- ni
when collR = 'NI=01=02' then 'NI+02'
when collR in ('PC01=02', 'PC01') then 'PC-02' --- pc
when collR in
('PC01=02=03=04=05=06=07=08=09=10=11=12=13=14=15=16'
,'PC01=02=03=04=05=06=07=08=09=10=11=13=14=15=16')
then 'PCALL'
--- xc
when collR = 'XC00=01=02=03=04=05=06=07=08=09' then 'XCALL'
else raise_error(77332, appl||'.'||pgm || ' collR ' || collR
|| ' quaVar ' || quaVar)
end as char(10)) cq
from h
)
select appl, pgm, cq, colls, quals
from i
where colls like '%AV%'
and not
( cq = 'AV0102' and colls = 'AV01 AV02'
or cq = 'AV-03' and colls = 'AV01 AV02 AV03'
or cq = 'AV-03-22' and colls = 'AV01 AV02 AV03 AV21 AV22'
or cq = 'AV-10-32' and colls
= 'AV01 AV02 AV03 AV05 AV06 AV07 AV08 AV09 AV10'
|| ' AV28 AV29 AV30 AV31'
or cq = 'AVALL' and colls
= 'AV01 AV02 AV03 AV05 AV06 AV07 AV08 AV09'
|| ' AV10 AV11 AV12 AV13 AV14 AV15 AV16 AV17 AV18 AV19'
|| ' AV20 AV21 AV22 AV23 AV24 AV25 AV26 AV27 AV28 AV29'
|| ' AV30 AV31 AV32'
)
order by colls, pgm
;xy;
, j as
(
select case when appl = 'DEFAULT' or pgm <> 'DEFAULT' then '%'
else appl end appl
, case when pgm = 'DEFAULT' then '%' else pgm end pgm
, case when pgm <> 'DEFAULT' then 20
when appl <> 'DEFAULT' then 2
else 0 end prio
, case when rdl = 'DBOF' then 'DBOF'
when rdl = 'DVBP' then 'DVBP'
else rdl end rdl
, cq, ov, inst
from i
)
select * from j
where not (rdl = 'DBOF' and cq = 'default' and ov = 'default')
or (pgm = '%' and appl = '%')
;
commit
;
;x;
rollback
;
select count(*), appl, pgm
from j
group by appl, pgm
order by 1 desc ;x;
-- where 'DEFAULT' in (appl, pgm)
order by 2, 1, 3 ;x;
;
??????????????
--- migrate bind_paramters und bind_exceptions (v21)
--- to tQz041BindParm (v32)
--- Achtung das migriert die Daten
--- auf denen ChangeMan live arbeitet
--- falls Migrationsfehler ==> rollback durch spufi
--- wenn ok, rollback am Ende durch commit ersetzen
---
with e1 as --- old exception table -------------------------------------
(
select appl, pgm, installdate inst
, replace(replace
(strip(ssid) || '>' || strip(location) || '-'||strip(qualifier)
, 'CHSKA000', '?'), 'CHROI00', '%') dlq
, row_number() over (partition by appl, pgm
order by ssid, location, qualifier) rn
from oa1p.bind_exceptions e
where appl not in ('A18Q', 'B18Q', 'A11O', 'A22N', 'RETI')
and pgm not in ('DEFA???', 'DBWK1', 'DB2WK1', 'DB2JAA',
'DBWK411', 'YCDPUT2'
)
and collid not in ('DI_DRDA', 'EK_DRDA', 'RM_DRDA', 'TR_DRDA')
)
, eR --- recusively cat dbSys Locaction qual ---------------------------
( appl, pgm, inst, dlq, r) as
(
select appl, pgm, inst, cast(dlq as varchar(2000)), 1
from e1 where rn = 1
union all select eR.appl, eR.pgm, e1.inst, eR.dlq || ' ' || e1.dlq
, r+1
from eR join e1
on e1.appl = eR.appl and e1.pgm = eR.pgm
and e1.rn = eR.r+1
where eR.r < 100
)
, e2 -- select last one -----------------------------------------------
( appl, pgm, inst, dlq) as
(
select appl, pgm, max(inst), max(dlq)
from eR
group by appl, pgm
)
, rdl as --- find rdl --------------------------------------------------
(
select appl, pgm, inst
, case dlq
when 'DAEG>?DC0G-OA1P DBBA>-OA1A DBBA>?DBAF-OA1A '
|| 'DCVG>- DCVG>%0DC0G- DDVG>- DDVG>%0DD0G- DEVG>- '
|| 'DEVG>%ZDE0G- DVBP>-OA1P DVBP>?DBOF-OA1P DVTB>-OA1T '
|| 'DVTB>?DBTF-OA1T' then 'DBOF>DVBP'
when 'DBAF>-OA1A DBAF>?DBBA-OA1A DBOF>-OA1P DBOF>?DVBP-OA1P '
|| 'DBTF>-OA1T DBTF>?DVTB-OA1T' then 'DBOF>DVBP'
when 'DBAF>-OA1A DBAF>?DBBA-OA1A DBOF>-OA1P DBOF>?DVBP-OA1P '
|| 'DBTF>-OA1T DBTF>?DVTB-OA1T DE0G>-OA1P DE0G>%ZDEVG-OA1P'
then 'DBOF>DVBP'
-- when 'DBAF>-OA1A DBAF>?DBTF-OA1A' then '???oa1a 1'
when 'DBAF>-OA1A DBOF>-OA1P DBOF>?DVBP-OA1P DBTF>-OA1T '
|| 'DBTF>?DVTB-OA1T' then 'DBOF>DVBP'
-- when 'DBAF>?DBBA-OA1A DBBA>?DBAF-OA1A' then '???oa1a 2'
when 'DBBA>-OA1A' then 'DBOF>DVBP'
when 'DBBA>-OA1A DBBA>?DBAF-OA1A DCVG>- DCVG>%0DC0G- '
|| 'DDVG>- DDVG>%0DD0G- DEVG>- DEVG>%ZDE0G- DVBP>-OA1P '
|| 'DVBP>?DBOF-OA1P DVTB>-OA1T DVTB>?DBTF-OA1T'
then 'DBOF>DVBP'
else raise_error(77301, pgm || ' dlq ' || dlq)
end rdl
from e2
)
, p as --- mark outdated entries in bind_parameters ----------------
(
select p.*
, row_number() over (partition by appl, pgm, collid
order by installdate desc) iNr
from oa1p.bind_parameters p
where appl not in ('A18Q', 'B18Q', 'A11O', 'A22N', 'RETI')
and pgm not in ('DEFA???', 'DBWK1', 'DB2WK1', 'DB2JAA',
'DBWK411', 'YCDPUT2'
)
and collid not in ('DI_DRDA', 'EK_DRDA', 'RM_DRDA', 'TR_DRDA')
)
, o1 as --- translate space to null -----------------------------------
( select appl, pgm, collid, installdate
,case when OWNER <> '' then owner else null end owner
,case when QUALIFIER <> '' then QUALIFIER else null end QUALIFIER
,case when ISOLATION <> '' then ISOLATION else null end ISOLATION
,case when EXPLAIN <> '' then EXPLAIN else null end EXPLAIN
,case when CURRENTDATA <> '' then CURRENTDATA else null end CURRENTDATA
,case when RELEASE <> '' then RELEASE else null end RELEASE
,case when DBPROTOCOL <> '' then DBPROTOCOL else null end DBPROTOCOL
,case when DEGREE <> '' then DEGREE else null end DEGREE
,case when DYNAMICRULES <> '' then DYNAMICRULES else null end
DYNAMICRULES
,case when KEEPDYNAMIC <> '' then KEEPDYNAMIC else null end KEEPDYNAMIC
,case when REOPT <> '' then REOPT else null end REOPT
,case when OPTHINT <> '' then OPTHINT else null end OPTHINT
,case when IMMEDWRITE <> '' then IMMEDWRITE else null end IMMEDWRITE
,case when FLAG <> '' then FLAG else null end FLAG
,case when PATH <> '' then PATH else null end PATH
,case when VALIDATE <> '' then VALIDATE else null end VALIDATE
,case when SQLERROR <> '' then SQLERROR else null end SQLERROR
,case when SQLRULES <> '' then SQLRULES else null end SQLRULES
,case when DEFER <> '' then DEFER else null end DEFER
,case when ENCODING <> '' then ENCODING else null end ENCODING
,case when ROUNDING <> '' then ROUNDING else null end ROUNDING
from p
where iNr = 1
)
, o2 as -- left join appl and gen defaults ----------------------------
( select
--alue(s.$ ,a.$ ,d.$ ) $
value(s.APPL ,a.APPL ,d.APPL ) APPL
,value(s.PGM ,a.PGM ,d.PGM ) PGM
,value(s.COLLID ,a.COLLID ,d.COLLID ) COLLID
,value(s.INSTALLDATE ,a.INSTALLDATE ,d.INSTALLDATE ) INSTALLDATE
,value(s.OWNER ,a.OWNER ,d.OWNER ) OWNER
,value(s.QUALIFIER ,a.QUALIFIER ,d.QUALIFIER ) QUALIFIER
,value(s.ISOLATION ,a.ISOLATION ,d.ISOLATION ) ISOLATION
,value(s.EXPLAIN ,a.EXPLAIN ,d.EXPLAIN ) EXPLAIN
,value(s.CURRENTDATA ,a.CURRENTDATA ,d.CURRENTDATA ) CURRENTDATA
,value(s.RELEASE ,a.RELEASE ,d.RELEASE ) RELEASE
,value(s.DBPROTOCOL ,a.DBPROTOCOL ,d.DBPROTOCOL ) DBPROTOCOL
,value(s.DEGREE ,a.DEGREE ,d.DEGREE ) DEGREE
,value(s.DYNAMICRULES,a.DYNAMICRULES,d.DYNAMICRULES) DYNAMICRULES
,value(s.KEEPDYNAMIC ,a.KEEPDYNAMIC ,d.KEEPDYNAMIC ) KEEPDYNAMIC
,value(s.REOPT ,a.REOPT ,d.REOPT ) REOPT
,value(s.OPTHINT ,a.OPTHINT ,d.OPTHINT ) OPTHINT
,value(s.IMMEDWRITE ,a.IMMEDWRITE ,d.IMMEDWRITE ) IMMEDWRITE
,value(s.FLAG ,a.FLAG ,d.FLAG ) FLAG
,value(s.PATH ,a.PATH ,d.PATH ) PATH
,value(s.VALIDATE ,a.VALIDATE ,d.VALIDATE ) VALIDATE
,value(s.SQLERROR ,a.SQLERROR ,d.SQLERROR ) SQLERROR
,value(s.SQLRULES ,a.SQLRULES ,d.SQLRULES ) SQLRULES
,value(s.DEFER ,a.DEFER ,d.DEFER ) DEFER
,value(s.ENCODING ,a.ENCODING ,d.ENCODING ) ENCODING
,value(s.ROUNDING ,a.ROUNDING ,d.ROUNDING ) ROUNDING
from o1 s
left join o1 a
on a.appl = s.appl and a.pgm = 'DEFAULT'
and a.collid = 'DEFAULT'
left join p d
on d.appl = 'DEFAULT' and d.pgm = 'DEFAULT'
and d.collid = 'DEFAULT'
)
, o3 as --- add combination of options/values -----------------------
(
select
left(release, 4) || left(degree, 4) || left(dynamicRules, 4)
|| left(reopt, 4) || left(opthint, 4) || left(validate, 4) comb,
o2.*
from o2
)
, ov as
(
select appl, pgm, installDate, collid
, case when comb is null then raise_error(77311
, pgm || ' comb is null')
else qualifier end qualifier
, case comb
when ' ANY BIND BIND' then 'degAny '
when ' 1 BIND BIND' then 'default '
when ' 1 BIND RUN ' then 'valRun '
when ' 1 BIND HBD1BIND' then 'optHBD1 '
when ' 1 BIND OH BIND' then 'optOH '
when ' 1 BINDALWA BIND' then 'reoAlw '
when ' 1 RUN BIND' then 'dynRun '
when ' 1 RUN RUN ' then 'dynValRun'
when 'DEAL1 BIND BIND' then 'relDea '
else raise_error(77312, pgm || ' bad comb ' || comb)
end ov
from o3
)
, a as --- left join rdl -----------------------------------------------
(
select ov.appl, ov.pgm
, max(ov.installDate, value(rdl.inst, ov.installDate)) inst
, case when rdl.rdl is not null then rdl.rdl
when ov.appl like 'ELA%' then 'DVBP'
else 'DBOF'
end rdl
, ov.ov
, case when rdl.rdl is not null then 'OA1$'
when ov.appl like 'ELA%' then 'BUA'
else 'OA1$'
end quaVar
, ov.collid col, ov.qualifier qua
from ov left join rdl
on ov.appl = rdl.appl
and ov.pgm = rdl.pgm
)
, d as --- add default Qualifier and Collection
(
select a.*
, case when pgm = 'DEFAULT' then '$'
when left(pgm, 2) = 'YX' then 'YX'
when left(pgm, 2) = 'YY' then 'YY'
when left(pgm, 1) = 'Y' then substr(pgm, 2, 2)
else left(pgm, 2) end colDef
, row_number() over(partition by appl, pgm order by col) r
from a
)
, e --- recursive build lists of colls/quals --------------------------
( appl, pgm, col, inst, rdl, ov
, quaVar, colDef, r, qua, quals, colls) as
(
select appl, pgm, col, inst, rdl, ov
, quaVar, colDef, 1, qua
, cast(strip(qua) as varchar(1000))
, cast(strip(col) as varchar(1000))
from d where r = 1
union all select d.appl, d.pgm, d.col, d.inst, d.rdl, d.ov
, d.quaVar, d.colDef, e.r+1, d.qua
, e.quals || ' ' || strip(d.qua)
, e.colls || ' ' || strip(d.col)
from e join d
on e.appl = d.appl and e.pgm = d.pgm
and e.r + 1 = d.r and e.r < 999
)
, f as --- select maximal lists ----------------------------------------
(
select appl, pgm, max(inst) inst
, min(rdl) rdl, max(rdl) rdlMax
, min(ov) ov, max(ov) ovMax
, min(colDef) colDef, max(colDef) colDefMax
, min(quaVar) quaVar, max(quaVar) quaVarMax
, max(quals) quals
, max(colls) colls
from e
group by appl, pgm
)
select appl, pgm, colls, quals
from f
where colls like 'AV%'
order by colls, pgm
;x;
, g as --- special quals ---------------------------------------------
(
select appl, pgm, inst, rdl, ov, colDef, quaVar, quals
, case when rdl <> rdlMax
then raise_error(77321, pgm
|| ' rdl ' || rdl || ' ==> ' || rdlMax)
when ov is null then raise_error(77312, pgm || ' ov null')
when ov <> ovMax
then raise_error(77323, pgm
|| ' ov ' || ov || ' ==> ' || ovMax)
when colDef <> colDefMax
then raise_error(77324, pgm
|| ' colDef ' || colDef || ' ==> ' || colDefMax)
when quaVar <> quaVarMax
then raise_error(77325, pgm
|| ' quaVar ' || quaVar || ' ==> ' || quaVarMax)
when colls = 'DEFAULT' then colDef
else colls
end colls
from f
)
, h as --- colls und quals komprimieren --------------------------------
(
select g.*
, replace(colls, ' ' || left(colls, 2), '=') collR
, replace(quals, ' ' || left(quals, 4), '=') qualR
from g
)
-- select * from h where 'DEFAULT' in (pgm, appl) ;x;
, i as --- den neuen cq key bestimmen ----------------------------------
(
select h.*
, cast(case --- default
when colls = colDef and quals = quaVar then 'default'
--- single
when quals=quaVar and colls in ('AU', 'BE', 'CD', 'KE', 'XB')
then colls
--- spezial: colls und quals nicht in sync --------
--- av
/*???when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
and qualR='OA1$01=02=03=09=09=09=09=09=10=09=09=09=09=09'
|| '=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09'
then 'AV/Y/X012'
when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
and qualR='OA1$01=02=03=05=06=07=08=09=10=11=12=12=12=12'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
then 'AV/Y/0129'
when collR = 'AV01=02' and qualR = 'OA1$01=01'
then 'AV0101'
when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
and qualR='OA1$02=02=03=05=06=07=08=09=10=11=12=13=14=15'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
then 'AV/Y/CPID'
???? when collR = 'AV' and quals = 'OA1P12' then 'AV12' ????? */
when collR = 'BE=01=02=03=04' and qualR = 'OA1$01=01=02=03=04'
then 'BE+04'
when colls = 'CT CZ' and qualR = 'OA1$=' then 'CTCZ' --- ctcz
when colls = coldef ||' YY' and qualR = 'OA1$=' --- + yy
then 'YY+'
when colls = 'OA1P01 OA1P02' and qualR = 'OA1$01=02' --- oa1p
then 'OA1P-02'
--- error if colls und quals nicht in sync--------
when 'OA1$' || substr(collR, 3) <> qualR --en '???quals/coll'
then raise_error(77331, appl||'.'||pgm || ' colls ' || collR
|| ' mismatches quals ' || qualR)
--- av
when right(collR, 83) = '05=06=07=08=09=10=11=12=13=14=15=16'
|| '=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
and left(collR, 14) in ('AV01=02=03=05='
, 'AV01=02=05=06=', 'AV05=06=07=08=' )
then 'AVALL'
when collR in ('AV01=02=03', 'AV01=02','AV03') then 'AV-03'
when collR in ('AV01=02=03=05=06=07=08=09=10'
,'AV01=02=03=28=29=30=31=32'
,'AV01=02=09=10=28=29=30=31=32'
,'AV28=29=30=31=32') then 'AV-10-32'
when collR = 'AV01=02=03=21=22' then 'AV-03-22'
when collR = 'BE01=02=03=04' then 'BE-04' --- be
when collR = 'NI01=02' then 'NI-02' --- ni
when collR = 'NI=01=02' then 'NI+02'
when collR in ('PC01=02', 'PC01') then 'PC-02' --- pc
when collR in
('PC01=02=03=04=05=06=07=08=09=10=11=12=13=14=15=16'
,'PC01=02=03=04=05=06=07=08=09=10=11=13=14=15=16')
then 'PCALL'
--- xc
when collR = 'XC00=01=02=03=04=05=06=07=08=09' then 'XCALL'
else raise_error(77332, appl||'.'||pgm || ' collR ' || collR
|| ' quaVar ' || quaVar)
end as char(10)) cq
from h
)
, j as
(
select case when appl = 'DEFAULT' or pgm <> 'DEFAULT' then '%'
else appl end appl
, case when pgm = 'DEFAULT' then '%' else pgm end pgm
, case when pgm <> 'DEFAULT' then 20
when appl <> 'DEFAULT' then 2
else 0 end prio
, case when rdl = 'DBOF' then 'DBOF'
when rdl = 'DVBP' then 'DVBP'
else rdl end rdl
, cq, ov, inst
from i
)
select * from j
where not (rdl = 'DBOF' and cq = 'default' and ov = 'default')
or (pgm = '%' and appl = '%')
;
rollback
;
commit
;x;
select count(*), appl, pgm
from j
group by appl, pgm
order by 1 desc ;x;
-- where 'DEFAULT' in (appl, pgm)
order by 2, 1, 3 ;x;
;
??????
with e1 as --- old exception table -------------------------------------
(
select appl, pgm, installdate inst
, replace(replace
(strip(ssid) || '>' || strip(location) || '-'||strip(qualifier)
, 'CHSKA000', '?'), 'CHROI00', '%') dlq
, row_number() over (partition by appl, pgm
order by ssid, location, qualifier) rn
from oa1p.bind_exceptions e
where appl not in ('A18Q', 'B18Q', 'A11O', 'A22N', 'RETI')
and pgm not in ('DEFA???', 'DBWK1', 'DB2WK1', 'DB2JAA',
'DBWK411', 'YCDPUT2'
)
and collid not in ('DI_DRDA', 'EK_DRDA', 'RM_DRDA', 'TR_DRDA')
)
, eR --- recusively cat dbSys Locaction qual ---------------------------
( appl, pgm, inst, dlq, r) as
(
select appl, pgm, inst, cast(dlq as varchar(2000)), 1
from e1 where rn = 1
union all select eR.appl, eR.pgm, e1.inst, eR.dlq || ' ' || e1.dlq
, r+1
from eR join e1
on e1.appl = eR.appl and e1.pgm = eR.pgm
and e1.rn = eR.r+1
where eR.r < 100
)
, e2 -- select last one -----------------------------------------------
( appl, pgm, inst, dlq) as
(
select appl, pgm, max(inst), max(dlq)
from eR
group by appl, pgm
)
select appl, pgm, dlq
from e2
where dlq like '%AV%'
order by dlq
}¢--- A540769.WK.SQL(BINDMIGT) cre=2014-07-31 mod=2014-07-31-11.15.33 A540769 ---
-- mig test: vergleich A540769 versus oa1p
with j as
(
select case when a.pgm is null then 'oa1p'
when o.pgm is null then 'a540'
else 'both' end oa
, value(a.APPL , o.APPL ) APPL
, value(a.PGM , o.PGM ) PGM
, value(a.PRIO , o.PRIO ) PRIO
, value(a.RDL , o.RDL ) RDL
, value(a.CQ , o.CQ ) CQ
, value(a.OV , o.OV ) OV
, value(a.INSTALLBEGIN, o.INSTALLBEGIN) INSTALLBEGIN
, value(a.INSTALLEND , o.INSTALLEND ) INSTALLEND
from A540769.TQZ041BINDPARM a
full outer join oa1p.TQZ041BINDPARM o
on a.APPL = o.APPL
and a.PGM = o.PGM
and a.PRIO = o.PRIO
and a.RDL = o.RDL
and a.CQ = o.CQ
and a.OV = o.OV
and a.INSTALLBEGIN = o.INSTALLBEGIN
and a.INSTALLEND = o.INSTALLEND
)
select * from j where oa <> 'both'
;x;
APPL
PGM
PRIO
RDL
CQ
OV
INSTALLBEGIN
INSTALLEND
}¢--- A540769.WK.SQL(BINDMIGX) cre=2014-04-04 mod=2014-04-04-07.59.31 A540769 ---
delete from A540769.txx041BindParm;
insert into A540769.txx041BindParm
(appl, pgm, prio, rdl, cq, ov, installBegin)
with e1 as --- old exception table -------------------------------------
(
select appl, pgm, installdate inst
, replace(replace
(strip(ssid) || '>' || strip(location) || '-'||strip(qualifier)
, 'CHSKA000', '?'), 'CHROI00', '%') dlq
, row_number() over (partition by appl, pgm
order by ssid, location, qualifier) rn
from oa1p.bind_exceptions e
where appl not in ('A18Q', 'B18Q', 'A11O', 'A22N', 'RETI')
and pgm not in ('DEFA???', 'DBWK1', 'DB2WK1', 'DB2JAA',
'DBWK411', 'YCDPUT2'
)
and collid not in ('DI_DRDA', 'EK_DRDA', 'RM_DRDA', 'TR_DRDA')
)
, eR --- recusively cat dbSys Locaction qual ---------------------------
( appl, pgm, inst, dlq, r) as
(
select appl, pgm, inst, cast(dlq as varchar(2000)), 1
from e1 where rn = 1
union all select eR.appl, eR.pgm, e1.inst, eR.dlq || ' ' || e1.dlq
, r+1
from eR join e1
on e1.appl = eR.appl and e1.pgm = eR.pgm
and e1.rn = eR.r+1
where eR.r < 100
)
, e2 -- select last one -----------------------------------------------
( appl, pgm, inst, dlq) as
(
select appl, pgm, max(inst), max(dlq)
from eR
group by appl, pgm
)
, rdl as --- find rdl --------------------------------------------------
(
select appl, pgm, inst
, case dlq
when 'DAEG>?DC0G-OA1P DBBA>-OA1A DBBA>?DBAF-OA1A '
|| 'DCVG>- DCVG>%0DC0G- DDVG>- DDVG>%0DD0G- DEVG>- '
|| 'DEVG>%ZDE0G- DVBP>-OA1P DVBP>?DBOF-OA1P DVTB>-OA1T '
|| 'DVTB>?DBTF-OA1T' then 'DBOF>DVBP'
when 'DBAF>-OA1A DBAF>?DBBA-OA1A DBOF>-OA1P DBOF>?DVBP-OA1P '
|| 'DBTF>-OA1T DBTF>?DVTB-OA1T' then 'DBOF>DVBP'
when 'DBAF>-OA1A DBAF>?DBBA-OA1A DBOF>-OA1P DBOF>?DVBP-OA1P '
|| 'DBTF>-OA1T DBTF>?DVTB-OA1T DE0G>-OA1P DE0G>%ZDEVG-OA1P'
then 'DBOF>DVBP'
-- when 'DBAF>-OA1A DBAF>?DBTF-OA1A' then '???oa1a 1'
when 'DBAF>-OA1A DBOF>-OA1P DBOF>?DVBP-OA1P DBTF>-OA1T '
|| 'DBTF>?DVTB-OA1T' then 'DBOF>DVBP'
-- when 'DBAF>?DBBA-OA1A DBBA>?DBAF-OA1A' then '???oa1a 2'
when 'DBBA>-OA1A' then 'DBOF>DVBP'
when 'DBBA>-OA1A DBBA>?DBAF-OA1A DCVG>- DCVG>%0DC0G- '
|| 'DDVG>- DDVG>%0DD0G- DEVG>- DEVG>%ZDE0G- DVBP>-OA1P '
|| 'DVBP>?DBOF-OA1P DVTB>-OA1T DVTB>?DBTF-OA1T'
then 'DBOF>DVBP'
else raise_error(77301, pgm || ' dlq ' || dlq)
end rdl
from e2
)
, p as --- mark outdated entries in bind_parameters ----------------
(
select p.*
, row_number() over (partition by appl, pgm, collid
order by installdate desc) iNr
from oa1p.bind_parameters p
where appl not in ('A18Q', 'B18Q', 'A11O', 'A22N', 'RETI')
and pgm not in ('DEFA???', 'DBWK1', 'DB2WK1', 'DB2JAA',
'DBWK411', 'YCDPUT2'
)
and collid not in ('DI_DRDA', 'EK_DRDA', 'RM_DRDA', 'TR_DRDA')
)
, o1 as --- translate space to null -----------------------------------
( select appl, pgm, collid, installdate
,case when OWNER <> '' then owner else null end owner
,case when QUALIFIER <> '' then QUALIFIER else null end QUALIFIER
,case when ISOLATION <> '' then ISOLATION else null end ISOLATION
,case when EXPLAIN <> '' then EXPLAIN else null end EXPLAIN
,case when CURRENTDATA <> '' then CURRENTDATA else null end CURRENTDATA
,case when RELEASE <> '' then RELEASE else null end RELEASE
,case when DBPROTOCOL <> '' then DBPROTOCOL else null end DBPROTOCOL
,case when DEGREE <> '' then DEGREE else null end DEGREE
,case when DYNAMICRULES <> '' then DYNAMICRULES else null end
DYNAMICRULES
,case when KEEPDYNAMIC <> '' then KEEPDYNAMIC else null end KEEPDYNAMIC
,case when REOPT <> '' then REOPT else null end REOPT
,case when OPTHINT <> '' then OPTHINT else null end OPTHINT
,case when IMMEDWRITE <> '' then IMMEDWRITE else null end IMMEDWRITE
,case when FLAG <> '' then FLAG else null end FLAG
,case when PATH <> '' then PATH else null end PATH
,case when VALIDATE <> '' then VALIDATE else null end VALIDATE
,case when SQLERROR <> '' then SQLERROR else null end SQLERROR
,case when SQLRULES <> '' then SQLRULES else null end SQLRULES
,case when DEFER <> '' then DEFER else null end DEFER
,case when ENCODING <> '' then ENCODING else null end ENCODING
,case when ROUNDING <> '' then ROUNDING else null end ROUNDING
from p
where iNr = 1
)
, o2 as -- left join appl and gen defaults ----------------------------
( select
--alue(s.$ ,a.$ ,d.$ ) $
value(s.APPL ,a.APPL ,d.APPL ) APPL
,value(s.PGM ,a.PGM ,d.PGM ) PGM
,value(s.COLLID ,a.COLLID ,d.COLLID ) COLLID
,value(s.INSTALLDATE ,a.INSTALLDATE ,d.INSTALLDATE ) INSTALLDATE
,value(s.OWNER ,a.OWNER ,d.OWNER ) OWNER
,value(s.QUALIFIER ,a.QUALIFIER ,d.QUALIFIER ) QUALIFIER
,value(s.ISOLATION ,a.ISOLATION ,d.ISOLATION ) ISOLATION
,value(s.EXPLAIN ,a.EXPLAIN ,d.EXPLAIN ) EXPLAIN
,value(s.CURRENTDATA ,a.CURRENTDATA ,d.CURRENTDATA ) CURRENTDATA
,value(s.RELEASE ,a.RELEASE ,d.RELEASE ) RELEASE
,value(s.DBPROTOCOL ,a.DBPROTOCOL ,d.DBPROTOCOL ) DBPROTOCOL
,value(s.DEGREE ,a.DEGREE ,d.DEGREE ) DEGREE
,value(s.DYNAMICRULES,a.DYNAMICRULES,d.DYNAMICRULES) DYNAMICRULES
,value(s.KEEPDYNAMIC ,a.KEEPDYNAMIC ,d.KEEPDYNAMIC ) KEEPDYNAMIC
,value(s.REOPT ,a.REOPT ,d.REOPT ) REOPT
,value(s.OPTHINT ,a.OPTHINT ,d.OPTHINT ) OPTHINT
,value(s.IMMEDWRITE ,a.IMMEDWRITE ,d.IMMEDWRITE ) IMMEDWRITE
,value(s.FLAG ,a.FLAG ,d.FLAG ) FLAG
,value(s.PATH ,a.PATH ,d.PATH ) PATH
,value(s.VALIDATE ,a.VALIDATE ,d.VALIDATE ) VALIDATE
,value(s.SQLERROR ,a.SQLERROR ,d.SQLERROR ) SQLERROR
,value(s.SQLRULES ,a.SQLRULES ,d.SQLRULES ) SQLRULES
,value(s.DEFER ,a.DEFER ,d.DEFER ) DEFER
,value(s.ENCODING ,a.ENCODING ,d.ENCODING ) ENCODING
,value(s.ROUNDING ,a.ROUNDING ,d.ROUNDING ) ROUNDING
from o1 s
left join o1 a
on a.appl = s.appl and a.pgm = 'DEFAULT'
and a.collid = 'DEFAULT'
left join p d
on d.appl = 'DEFAULT' and d.pgm = 'DEFAULT'
and d.collid = 'DEFAULT'
)
, o3 as --- add combination of options/values -----------------------
(
select
left(release, 4) || left(degree, 4) || left(dynamicRules, 4)
|| left(reopt, 4) || left(opthint, 4) || left(validate, 4) comb,
o2.*
from o2
)
, ov as
(
select appl, pgm, installDate, collid
, case when comb is null then raise_error(77311
, pgm || ' comb is null')
else qualifier end qualifier
, case comb
when ' ANY BIND BIND' then 'degAny '
when ' 1 BIND BIND' then 'default '
when ' 1 BIND RUN ' then 'valRun '
when ' 1 BIND HBD1BIND' then 'optHBD1 '
when ' 1 BIND OH BIND' then 'optOH '
when ' 1 BINDALWA BIND' then 'reoAlw '
when ' 1 RUN BIND' then 'dynRun '
when ' 1 RUN RUN ' then 'dynValRun'
when 'DEAL1 BIND BIND' then 'relDea '
else raise_error(77312, pgm || ' bad comb ' || comb)
end ov
from o3
)
, a as --- left join rdl -----------------------------------------------
(
select ov.appl, ov.pgm
, max(ov.installDate, value(rdl.inst, ov.installDate)) inst
, case when rdl.rdl is not null then rdl.rdl
when ov.appl like 'ELA%' then 'DVBP'
else 'DBOF'
end rdl
, ov.ov
, case when rdl.rdl is not null then 'OA1$'
when ov.appl like 'ELA%' then 'BUA'
else 'OA1$'
end quaVar
, ov.collid col, ov.qualifier qua
from ov left join rdl
on ov.appl = rdl.appl
and ov.pgm = rdl.pgm
)
, d as --- add default Qualifier and Collection
(
select a.*
, case when pgm = 'DEFAULT' then '$'
when left(pgm, 2) = 'YX' then 'YX'
when left(pgm, 2) = 'YY' then 'YY'
when left(pgm, 1) = 'Y' then substr(pgm, 2, 2)
else left(pgm, 2) end colDef
, row_number() over(partition by appl, pgm order by col) r
from a
)
, e --- recursive build lists of colls/quals --------------------------
( appl, pgm, col, inst, rdl, ov
, quaVar, colDef, r, qua, quals, colls) as
(
select appl, pgm, col, inst, rdl, ov
, quaVar, colDef, 1, qua
, cast(strip(qua) as varchar(1000))
, cast(strip(col) as varchar(1000))
from d where r = 1
union all select d.appl, d.pgm, d.col, d.inst, d.rdl, d.ov
, d.quaVar, d.colDef, e.r+1, d.qua
, e.quals || ' ' || strip(d.qua)
, e.colls || ' ' || strip(d.col)
from e join d
on e.appl = d.appl and e.pgm = d.pgm
and e.r + 1 = d.r and e.r < 999
)
, f as --- select maximal lists ----------------------------------------
(
select appl, pgm, max(inst) inst
, min(rdl) rdl, max(rdl) rdlMax
, min(ov) ov, max(ov) ovMax
, min(colDef) colDef, max(colDef) colDefMax
, min(quaVar) quaVar, max(quaVar) quaVarMax
, max(quals) quals
, max(colls) colls
from e
group by appl, pgm
)
, g as --- special quals ---------------------------------------------
(
select appl, pgm, inst, rdl, ov, colDef, quaVar, quals
, case when rdl <> rdlMax
then raise_error(77321, pgm
|| ' rdl ' || rdl || ' ==> ' || rdlMax)
when ov is null then raise_error(77312, pgm || ' ov null')
when ov <> ovMax
then raise_error(77323, pgm
|| ' ov ' || ov || ' ==> ' || ovMax)
when colDef <> colDefMax
then raise_error(77324, pgm
|| ' colDef ' || colDef || ' ==> ' || colDefMax)
when quaVar <> quaVarMax
then raise_error(77325, pgm
|| ' quaVar ' || quaVar || ' ==> ' || quaVarMax)
when colls = 'DEFAULT' then colDef
else colls
end colls
from f
)
, h as --- colls und quals komprimieren --------------------------------
(
select g.*
, replace(colls, ' ' || left(colls, 2), '=') collR
, replace(quals, ' ' || left(quals, 4), '=') qualR
from g
)
-- select * from h where 'DEFAULT' in (pgm, appl) ;x;
, i as --- den neuen cq key bestimmen ----------------------------------
(
select h.*
, cast(case --- default
when colls = colDef and quals = quaVar then 'default'
--- single
when quals=quaVar and colls in ('AU', 'BE', 'CD', 'KE', 'XB')
then colls
--- spezial: colls und quals nicht in sync --------
--- av
/*???when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
and qualR='OA1$01=02=03=09=09=09=09=09=10=09=09=09=09=09'
|| '=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09'
then 'AV/Y/X012'
when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
and qualR='OA1$01=02=03=05=06=07=08=09=10=11=12=12=12=12'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
then 'AV/Y/0129'
when collR = 'AV01=02' and qualR = 'OA1$01=01'
then 'AV0101'
when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
and qualR='OA1$02=02=03=05=06=07=08=09=10=11=12=13=14=15'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
then 'AV/Y/CPID'
???? when collR = 'AV' and quals = 'OA1P12' then 'AV12' ????? */
when collR = 'BE=01=02=03=04' and qualR = 'OA1$01=01=02=03=04'
then 'BE+04'
when colls = 'CT CZ' and qualR = 'OA1$=' then 'CTCZ' --- ctcz
when colls = coldef ||' YY' and qualR = 'OA1$=' --- + yy
then 'YY+'
when colls = 'OA1P01 OA1P02' and qualR = 'OA1$01=02' --- oa1p
then 'OA1P-02'
--- error if colls und quals nicht in sync--------
when 'OA1$' || substr(collR, 3) <> qualR --en '???quals/coll'
then raise_error(77331, appl||'.'||pgm || ' colls ' || collR
|| ' mismatches quals ' || qualR)
--- av
when right(collR, 83) = '05=06=07=08=09=10=11=12=13=14=15=16'
|| '=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
and left(collR, 14) in ('AV01=02=03=05='
, 'AV01=02=05=06=', 'AV05=06=07=08=' )
then 'AVALL'
when collR in ('AV01=02=03', 'AV01=02','AV03') then 'AV-03'
when collR in ('AV01=02=03=05=06=07=08=09=10'
,'AV01=02=03=28=29=30=31=32'
,'AV01=02=09=10=28=29=30=31=32'
,'AV28=29=30=31=32') then 'AV-10-32'
when collR = 'AV01=02=03=21=22' then 'AV-03-22'
when collR = 'BE01=02=03=04' then 'BE-04' --- be
when collR = 'NI01=02' then 'NI-02' --- ni
when collR = 'NI=01=02' then 'NI+02'
when collR in ('PC01=02', 'PC01') then 'PC-02' --- pc
when collR in
('PC01=02=03=04=05=06=07=08=09=10=11=12=13=14=15=16'
,'PC01=02=03=04=05=06=07=08=09=10=11=13=14=15=16')
then 'PCALL'
--- xc
when collR = 'XC00=01=02=03=04=05=06=07=08=09' then 'XCALL'
else raise_error(77332, appl||'.'||pgm || ' collR ' || collR
|| ' quaVar ' || quaVar)
end as char(10)) cq
from h
)
, j as
(
select case when appl = 'DEFAULT' or pgm <> 'DEFAULT' then '%'
else appl end appl
, case when pgm = 'DEFAULT' then '%' else pgm end pgm
, case when pgm <> 'DEFAULT' then 20
when appl <> 'DEFAULT' then 2
else 0 end prio
, case when rdl = 'DBOF' then 'DBOF'
when rdl = 'DVBP' then 'DVBP'
else rdl end rdl
, cq, ov, inst
from i
)
select * from j
where not (rdl = 'DBOF' and cq = 'default' and ov = 'default')
or (pgm = '%' and appl = '%') ;
commit
;x;
select count(*), appl, pgm
from j
group by appl, pgm
order by 1 desc ;x;
-- where 'DEFAULT' in (appl, pgm)
order by 2, 1, 3 ;x;
;
}¢--- A540769.WK.SQL(BINDMIGY) cre=2014-04-04 mod=2014-04-04-08.54.06 A540769 ---
with e as
(
select p.*
from oa1p.tqz042BindCnfg p
join A540769.txx042bindCnfg t
on p.typ = t.typ and p.key = t.key
and p.installBegin = t.installBegin
and p.seq = t.seq and p.va1 = t.va1
and p.va2 = t.va2 and p.va3 = t.va3
and p.va4 = t.va4
-- TYP, key, seq, va1, va2, va3, va4, installBegin
)
, u as
(
select '=' m, e.* from e
union all select 'p' m, p.*
from oa1p.tqz042Bindcnfg p
where (typ, key, seq, installBegin)
not in (select typ, key, seq, installBegin from e)
union all select 't' m, t.*
from A540769.txx042bindcnfg t
where (typ, key, seq, installBegin)
not in (select typ, key, seq, installBegin from e)
)
select * from u
order by typ, key, seq, installBegin, m
;x;
select rdl, count(*)
from oa1p.tqz041BindParm p
group by rdl
;x;
with e as
(
select p.*
from oa1p.tqz041BindParm p
join A540769.txx041bindParm t
on p.appl = t.appl and p.pgm = t.pgm
and p.installBegin = t.installBegin
and p.prio = t.prio and p.rdl = t.rdl
and p.cq = t.cq and p.ov = t.ov
)
, u as
(
select '=' m, e.* from e
union all select 'p' m, p.*
from oa1p.tqz041BindParm p
where (appl, pgm, installBegin)
not in (select appl, pgm, installBegin from e)
union all select 't' m, t.*
from A540769.txx041bindParm t
where (appl, pgm, installBegin)
not in (select appl, pgm, installBegin from e)
)
select * from u
order by appl, pgm, installBegin, m
}¢--- A540769.WK.SQL(BINDPAHI) cre=2015-01-15 mod=2015-01-15-15.15.17 A540769 ---
select *
from oa1p.TQZ041BINDPARMHIST
where pgm like 'YCD%' --YCDCIPR
}¢--- A540769.WK.SQL(BINDRES) cre=2014-09-25 mod=2015-05-20-07.14.59 A540769 ---
-- neueste bind results
-- in spufi Default maxChar=2000 fuer errMsg
-- das not exists zuunterst putzt die alten fehler weg
-- mit oder ohne cmPkg?
--
select rz, dbSys
, char(left(
case when cmRes = '' then ' ' else strip(cmRes) || ' ' end
|| case when result is null then '- ' else strip(result)||' ' end
|| case
when errMsg is null then '--- errMsg null ---'
when errMsg = '' then ''
when posStr(errMsg, 'SQLCODE=') > 0
then substr(errMsg, posStr(errMsg, 'SQLCODE='), 40)
when posStr(errMsg, 'RESOURCE UNAVAILABLE') > 0
then 'unAvail: '
|| case
when posStr(substr(errMsg
, posStr(errMsg, 'RESOURCE UNAVAILABLE') + 20)
, ' NAME ') < 1
then substr(errMsg
, posStr(errMsg, 'RESOURCE UNAVAILABLE') + 22)
else substr(errMsg
, posStr(errMsg, 'RESOURCE UNAVAILABLE')
+ posStr(substr(errMsg
, posStr(errMsg, 'RESOURCE UNAVAILABLE') + 20)
, ' NAME ')+ 25)
end
else '? ' || errMsg
end, 40), 40) "c b error"
, hex(contok)
, g.*
from oa1p.TQZ043BINDGEN g
where rz = 'RZY'
-- where pgm = 'YAU001D'
-- and appl = 'AURA'
-- where (result is null or result <> '0' or cmRes <> '0' )
-- where pgm = 'XBLE81'
-- where result not in('0') --
-- where cmJob like 'CSBI%'
-- where gentst < '2014-09-19-00.17.48.142237'
-- History nicht anzeigen
-- and not exists (select 1 from oa1p.TQZ043BINDGEN n
-- where g.rz = n.rz and g.pgm = n.pgm
-- and g.cmPkg = n.cmPkg
-- and g.genTst < n.genTst
-- )
order by gentst desc
fetch first 500 rows only
;x;
select rz, dbSys, result
, sum(case when genTst >= timestamp(current date)
then 1 else 0 end) heute
, count(*)
from oa1p.TQZ043BINDGEN g
where genTst >= '2015-01-01-00.00.00'
group by rz, dbSys, result
;x;
}¢--- A540769.WK.SQL(BINDSEL1) cre=2007-03-19 mod=2014-09-25-09.44.48 A540769 ---
select rz, dbSys
, char(left(strip(cmRes) || ' ' || strip(result) || ' ' || case
when errMsg is null or errMsg = '' then errMsg
when posStr(errMsg, 'SQLCODE=') > 0
then substr(errMsg, posStr(errMsg, 'SQLCODE='), 40)
when posStr(errMsg, 'RESOURCE UNAVAILABLE') > 0
then 'unAvail: '
|| case
when posStr(substr(errMsg
, posStr(errMsg, 'RESOURCE UNAVAILABLE') + 20)
, ' NAME ') < 1
then substr(errMsg
, posStr(errMsg, 'RESOURCE UNAVAILABLE') + 22)
else substr(errMsg
, posStr(errMsg, 'RESOURCE UNAVAILABLE')
+ posStr(substr(errMsg
, posStr(errMsg, 'RESOURCE UNAVAILABLE') + 20)
, ' NAME ')+ 25)
end
else '? ' || errMsg
end, 40), 40) "c b error"
, g.* --rz, dbSys, errMsg, g.*
from oa1p.TQZ043BINDGEN g
-- where pgm = 'TR011@I'
-- where (result is null or result <> '0' )
where result not in ('0') -- , '8') -- or cmRes > '0'
-- where cmRes <> '0'
-- where rz = 'RZX'
-- where cmJob like 'CSBI%'
-- where gentst < '2014-09-19-00.17.48.142237'
order by gentst desc
fetch first 500 rows only
;;
select (select count(*)
from oa1p.TQZ044BINDLine l where l.genId = g.genid) lines
, g.*
from oa1p.TQZ043BINDGen g
order by gentst desc
;
select *
from oa1p.TQZ044BINDLine
where genid = 1498
order by seq
;x;
select count(*), ssid, location
from oa1p.bind_exceptions
group by ssid, location
;;;;;;;;;;;;
select * from final table
(
insert into oa1p.bind_exceptions (APPL, PGM, COLLID, INSTALLDATE
,ssid, location)
select APPL, PGM, COLLID, INSTALLDATE
, 'DEVG' ssid
, case when location = '' then ''
when location = 'CHSKA000DBOF' then 'CHROI00ZDE0G'
else '??????????' end location
from oa1p.bind_exceptions
where ssid = 'DVBP'
)
;
select count(*), ssid, location
from oa1p.bind_exceptions
group by ssid, location
;
commit
;;;;;;;;;
delete from oa1p.bind_exceptions
where installdate > '31.12.2149'
;
delete from oa1p.bind_parameters
where installdate > '31.12.2149'
;
select *
from oa1p.bind_exceptions
where pgm = 'XBIM03'
;
commit
;;;
select appl, pgm, count(*), count(distinct collid),
min(collid), max(collid)
from OA1P.BIND_PARAMETERS
group by appl, pgm
order by 4 desc
;
x
select * from oa1p.BIND_exceptions
where pgm = 'TP0900'
}¢--- A540769.WK.SQL(BINDSEL2) cre=2014-06-10 mod=2014-06-10-15.03.07 A540769 ---
select *
from oa1p.TQZ043BINDGEN
order by genTst desc
fetch first 100 rows only
}¢--- A540769.WK.SQL(BINDSIM) cre=2015-02-10 mod=2015-02-10-16.41.51 A540769 ---
SELECT *
FROM OA1P.TQZ043BINDGEN G
WHERE G.GENTST > '2015-02-09-11.14.09.613272'
AND G.RZ = 'RZ2'
AND G.COM = 'BASELINE_SIMULATION'
AND NOT EXISTS
(SELECT 1
FROM SSXX28Q0.DB2_CATALOGDATA
WHERE DB2TYPE = 'R'
AND DB2RZ = G.RZ
AND DB2NAME = G.PGM
AND LEFT(DB2VERS,10) = LEFT(G.CMPKG,10)
AND DB2SUBSYS = G.DBSYS
)
;
}¢--- A540769.WK.SQL(BINDSWCO) cre=2014-07-31 mod=2014-09-09-09.16.27 A540769 ---
-- select collection for workbench
select key
from OA1P.TQZ042BINDCNFG for business_time as of '08.08.2014'
where typ = 'wCo'
order by seq
}¢--- A540769.WK.SQL(BINDXMAT) cre=2013-11-15 mod=2013-11-18-09.30.25 A540769 ---
$#@
call sqlConnect dp4g
call sqlExec "delete from oa1p.tAdm40BindPgm"
$;
$<~wk.texv(bindxSel)
if ${>hdr} then
$@%¢hdrIni $hdr$!
kx = 0
pgmX = 1
colX = 2
verX = 4
$for a $@/readLoop/
a=$a
kx=kx+1
do hx=1 to m.hdr.0
hy=hx+1
m.d.kx.hx = strip(substr(a, m.hdr.hx, m.hdr.hy-m.hdr.hx))
if m.d.kx.hx == '-' then
m.d.kx.hx = ''
$** t = t m.hdr.hx.nm'='m.d.kx.hx
end
$** say kx':' t
p1 = m.d.kx.pgmX
if pgm.p1 = 1 then
iterate
pgm.p1 = 1
call sqlExec "insert into oa1p.tAdm40BindPgm values (" ,
"'"left(m.d.kx.verX, 4)"', '"m.d.kx.pgmX"', '11.11.2013')"
$/readLoop/
m.d.0 = kx
$;
$<=/sql/
with a2 as
(
select p.*, strip(stmt) st from
oa1p.vAdm40binddbP p
where rz = 'RZ2' and
case when location = '' then dbSy
else right(location, 4) end = 'DBOF'
and stmt not like '*%'
)
, a3 as
(
select a2.*, posStr(st, '(') lx, posStr(st, ')') rx
from a2
)
, a as
(
select a3.*
, case when lx < 1 or rx <= lx then
raise_error(77701, 'bad stmt ' || st)
else upper(left(st, lx-1)) end o1
, upper(substr(st, lx+1, rx-lx-1)) v1
from a3
)
, b as
( select pgm, col, rz, dbSy, location
from a
where stmt like 'bind%'
)
, d as
(
select b.*
, value(c.v1, '-') co1
, value(l.v1, '') lo1
, value(o.v1, '-') owner
, value(q.v1, '-') qualifier
, case when i.v1 is null then ''
when i.v1 = 'CS' then 'S'
when i.v1 = 'UR' then 'U'
else raise_error(77702, 'isolation ' || i.st) end isolation
, case when r.v1 is null then ''
when r.v1 = 'COMMIT' then 'C'
when r.v1 = 'DEALLOCATE' then 'D'
else raise_error(77703, 'release ' || r.st) end release
, case when e.v1 is null or e.v1 = 'NO' then 'N'
when e.v1 = 'YES' then 'Y'
else raise_error(77704, 'explain ' || e.st) end explain
, value(d.v1, '-') degree
, case d2.v1 when 'BIND' then 'B'
when 'RUN' then 'R'
else raise_error(77705, 'dynamicRules ' || d2.st)
end dynamicrules
, case when k.v1 is null or k.v1 = 'NO' then 'N'
when k.v1 = 'YES' then 'Y'
else raise_error(77706, 'keepDyn ' || k.st) end keepDynamic
, case when ro.v1 is null or ro.v1='' or ro.v1 = 'NONE' then 'N'
when ro.v1 = 'ALWAYS' then 'Y'
else raise_error(77707, 'reopt ' || ro.st) end reoptVar
, value(op.v1, '') optHint
, case when iw.v1 is null or iw.v1 = 'INHERITFROMPLAN' then 'I'
when iw.v1 = 'NO' then 'Y'
when iw.v1 = 'YES' then 'Y'
else raise_error(77708, 'immedWr ' || iw.st) end immedWrite
, value(ps.v1, '') pathSchemas
, case when v.v1 is null or v.v1 = 'BIND' then 'B'
when v.v1 = 'RUN' then 'R'
else raise_error(77709, 'dynamicRules ' || v.st)
end validate
, case when se.v1 is null or se.v1 = 'NOPACKAGE' then 'N'
when se.v1 = 'CONTINUE' then 'C'
else raise_error(77710, 'dynamicRules ' || se.st)
end sqlError
, case when cd.v1 is null or cd.v1 = 'NO' then 'B'
when cd.v1 = 'YES' then 'C'
else raise_error(77711, 'currentData ' || cd.st)
end deferPrep
, case when dp.v1 is null then ''
when dp.v1 = 'NO' then 'N'
when dp.v1 in ('YES', 'ALWAYS') then 'Y'
else raise_error(77712, 'deferPrepare ' || dp.st)
end deferPrepare
from b
left join a c
on b.pgm=c.pgm and b.col=c.col and b.rz=c.rz and b.dbSy=c.dbSy
and c.location = b.location and c.o1 = 'BIND PACKAGE'
left join a l
on b.pgm=l.pgm and b.col=l.col and b.rz=l.rz and b.dbSy=l.dbSy
and l.location = b.location and l.o1 = 'LOCATION'
left join a o
on b.pgm=o.pgm and b.col=o.col and b.rz=o.rz and b.dbSy=o.dbSy
and o.location = b.location and o.o1 = 'OWNER'
left join a q
on b.pgm=q.pgm and b.col=q.col and b.rz=q.rz and b.dbSy=q.dbSy
and q.location = b.location and q.o1 = 'QUALIFIER'
left join a i
on b.pgm=i.pgm and b.col=i.col and b.rz=i.rz and b.dbSy=i.dbSy
and i.location = b.location and i.o1 = 'ISOLATION'
left join a r
on b.pgm=r.pgm and b.col=r.col and b.rz=r.rz and b.dbSy=r.dbSy
and r.location = b.location and r.o1 = 'RELEASE'
left join a e
on b.pgm=e.pgm and b.col=e.col and b.rz=e.rz and b.dbSy=e.dbSy
and e.location = b.location and e.o1 = 'EXPLAIN'
left join a d
on b.pgm=d.pgm and b.col=d.col and b.rz=d.rz and b.dbSy=d.dbSy
and d.location = b.location and d.o1 = 'DEGREE'
left join a d2
on b.pgm=d2.pgm and b.col=d2.col and b.rz=d2.rz and b.dbSy=d2.dbSy
and d2.location = b.location and d2.o1 = 'DYNAMICRULES'
left join a k
on b.pgm=k.pgm and b.col=k.col and b.rz=k.rz and b.dbSy=k.dbSy
and k.location = b.location and k.o1 = 'KEEPDYNAMIC'
left join a ro
on b.pgm=ro.pgm and b.col=ro.col and b.rz=ro.rz and b.dbSy=ro.dbSy
and ro.location = b.location and ro.o1 = 'REOPT'
left join a op
on b.pgm=op.pgm and b.col=op.col and b.rz=op.rz and b.dbSy=op.dbSy
and op.location = b.location and op.o1 = 'OPTHINT'
left join a iw
on b.pgm=iw.pgm and b.col=iw.col and b.rz=iw.rz and b.dbSy=iw.dbSy
and iw.location = b.location and iw.o1 = 'IMMEDWRITE'
left join a ps
on b.pgm=ps.pgm and b.col=ps.col and b.rz=ps.rz and b.dbSy=ps.dbSy
and ps.location = b.location and ps.o1 = 'PATH'
left join a v
on b.pgm=v.pgm and b.col=v.col and b.rz=v.rz and b.dbSy=v.dbSy
and v.location = b.location and v.o1 = 'VALIDATE'
left join a se
on b.pgm=se.pgm and b.col=se.col and b.rz=se.rz and b.dbSy=se.dbSy
and se.location = b.location and se.o1 = 'SQLERROR'
left join a cd
on b.pgm=cd.pgm and b.col=cd.col and b.rz=cd.rz and b.dbSy=cd.dbSy
and cd.location = b.location and cd.o1 = 'CURRENTDATA'
left join a dp
on b.pgm=dp.pgm and b.col=dp.col and b.rz=dp.rz and b.dbSy=dp.dbSy
and dp.location = b.location and dp.o1 = 'REOPT'
)
select * from d
order by pgm, col, location
$/sql/
call sqlSel
$** $| call fmtFTab
$| kx=1
$forWith s $@/mat/
colS = strip($COL)
pgmS = strip($PGM)
do while m.d.kx.pgmx << pgmS & kx <= m.d.0
say 'new not bound but old' m.d.kx.colx'.'m.d.kx.pgmx
kx = kx+1
end
do while m.d.kx.pgmx = pgmS & m.d.kx.colx << colS & kx <= m.d.0
say 'new not bound but old' m.d.kx.colx'.'m.d.kx.pgmx
kx = kx+1
end
if m.d.kx.pgmx <> pgmS | m.d.kx.colx <> colS then do
say 'old not bound but new' colS'.'pgmS '/'$LOCATION
iterate
end
if $PGM <> m.d.kx.pgmX then
call err 'pgm' $COL'.'$PGM '<>' kx m.d.kx.colX'.'m.d.kx.pgmx
if $COL <> m.d.kx.colX then
call err 'col' $COL'.'$PGM '<>' kx m.d.kx.colX'.'m.d.kx.pgmx
if $COL <> $CO1 then
call err 'co1' err 'col' $COL'.'$PGM '<>' $CO1
if $LOCATION <> $LO1 then
call err 'loc' $LOCATION '<> lo1' $LO1
do hx=verX+1 to m.hdr.0
s1 = vGet(m.hdr.hx.nm)
if m.d.kx.hx <> s1 then
say m.d.kx.colX'.'m.d.kx.pgmX':'m.hdr.hx.nm ,
'|||' m.d.kx.hx '==>' s1
end
say m.d.kx.colX'.'m.d.kx.pgmX
kx = kx + 1
$/mat/
$@proc @/hdrIni/
parse arg , h
say 'hdr' h
ns = pgm col pcTimestamp version ,
OWNER ,
QUALIFIER ,
ISOLATION ,
RELEASE ,
EXPLAIN ,
DEGREE ,
DYNAMICRULES ,
KEEPDYNAMIC ,
REOPTVAR ,
OPTHINT ,
IMMEDWRITE ,
PATHSCHEMAS ,
VALIDATE ,
SQLERROR ,
DEFERPREP ,
DEFERPREPARE
ns = translate(space(ns, 1))
say 'ns' ns
do hx=1 to words(ns)
n1 = word(ns, hx)
h1 = word(h , hx)
if \ abbrev(n1, h1, 1) then
if right(n1, length(h1)) \== h1 then
call err 'hx='hx 'n1='n1 'h1='h1
m.hdr.hx = wordIndex(h, hx)
m.hdr.hx.nm = n1
say hx '=>' m.hdr.hx m.hdr.hx.nm
end
m.hdr.hx=length(strip(h, 't'))+10
m.hdr.0 =hx-1
$/hdrIni/
$#out 20131118 09:23:38
SQLCODE = 000, SUCCESSFUL EXECUTION
warnings 4=W no where
sql = delete from oa1p.tAdm40BindPgm
$#out 20131118 08:16:35
SQLCODE = 000, SUCCESSFUL EXECUTION
warnings 4=W no where
sql = delete from oa1p.tAdm40BindPgm
$#out 20131118 08:04:48
SQLCODE = 000, SUCCESSFUL EXECUTION
warnings 4=W no where
sql = delete from oa1p.tAdm40BindPgm
$#out 20131118 07:41:57
SQLCODE = 000, SUCCESSFUL EXECUTION
warnings 4=W no where
sql = delete from oa1p.tAdm40BindPgm
$#out 20131118 07:38:24
SQLCODE = 000, SUCCESSFUL EXECUTION
warnings 4=W no where
sql = delete from oa1p.tAdm40BindPgm
$#out 20131118 07:31:02
SQLCODE = 000, SUCCESSFUL EXECUTION
warnings 4=W no where
sql = delete from oa1p.tAdm40BindPgm
$#out 20131118 07:25:07
SQLCODE = 000, SUCCESSFUL EXECUTION
warnings 4=W no where
sql = delete from oa1p.tAdm40BindPgm
$#out 20131118 07:24:44
}¢--- A540769.WK.SQL(BINDXRI) cre=2013-11-03 mod=2013-11-03-12.33.22 A540769 ---
with j as
(
select p.rdl pRdl, c.key cKey
from OA1P.tAdm41bindParm p
full join (select * from OA1P.tAdm42bindCnfg where typ = 'rdl') c
on c.key = p.rdl
)
select * from j
where pRdl is null or cKey is null
;
with j as
(
select p.cq pcq , c.key cKey
from OA1P.tAdm41bindParm p
full join (select * from OA1P.tAdm42bindCnfg where typ = 'cq') c
on c.key = p.cq
)
select * from j
where pcq is null or cKey is null
;
with j as
(
select p.ov pOv , c.key cKey
from OA1P.tAdm41bindParm p
full join ( select * from OA1P.tAdm42bindCnfg where typ = 'ov') c
on c.key = p.ov
)
select * from j
where pov is null or cKey is null
}¢--- A540769.WK.SQL(BINDXSEL) cre=2013-11-11 mod=2013-11-18-08.15.53 A540769 ---
$#@
$** programme aus bindParms table
call sqlConnect dbof
$;
$>~wk.texv(bindXsel)
$<=¢
with n as
(
select p.*
, row_number() over (partition by collid, name
order by pcTimestamp desc) rv
from sysibm.sysPackage p
where
name in
( 'AN5000'
, 'AU5070'
, 'AV373@I'
, 'AV391@I'
, 'AV403@I'
, 'AV425@I'
, 'AV5300'
, 'AV5560'
, 'AV7210'
, 'AV7220'
, 'AV8460'
, 'AV8476'
, 'AV8550'
, 'BE5010'
, 'BE5020'
, 'BE5040'
, 'BE5050'
, 'BE5070'
, 'BE5090'
, 'BE5900'
, 'BE5910'
, 'BE5930'
, 'BE5931'
, 'BE5940'
, 'BE5950'
, 'BE7110'
, 'BE7160'
, 'BE7210'
, 'BF0010'
, 'BU012@I'
, 'BU013@I'
, 'BU021@I'
, 'BU062@I'
, 'CD9997'
, 'FI5200'
, 'FI7430'
, 'FI8190'
, 'ID6060'
, 'ID6061'
, 'KE5480'
, 'NI5788'
, 'NI8330'
, 'NI8340'
, 'NI8660'
, 'NZ5820'
, 'NZ6500'
, 'OS7110'
, 'OS7111'
, 'PCA64@I'
, 'PCA73@I'
, 'PCB01@I'
, 'PCB12@I'
, 'PCB22@I'
, 'PCB32@I'
, 'PCB41@I'
, 'PCB51@I'
, 'PCB91@I'
, 'PCC03@I'
, 'PCC12@I'
, 'PCC22@I'
, 'PCC31@I'
, 'PCC41@I'
, 'PCC51@I'
, 'PCC62@I'
, 'PCC71@I'
, 'PCC81@I'
, 'PCE45@I'
, 'PCE51@I'
, 'PCG81@I'
, 'PCG91@I'
, 'PC5000'
, 'PC5020'
, 'PC5030'
, 'PC5040'
, 'PC5050'
, 'PC5060'
, 'PC5070'
, 'PC5080'
, 'PC5090'
, 'PC5100'
, 'PC5110'
, 'PC5120'
, 'PC5130'
, 'PC5140'
, 'PC5150'
, 'PC5160'
, 'PC5170'
, 'PC5180'
, 'PC5200'
, 'PC5210'
, 'PC5220'
, 'PC5230'
, 'PC5240'
, 'PC5250'
, 'PC5260'
, 'PC5270'
, 'PC5280'
, 'PC5290'
, 'PC5300'
, 'PC5310'
, 'PC5330'
, 'PC5340'
, 'PC5345'
, 'PC5350'
, 'PC5400'
, 'PC7000'
, 'PC7005'
, 'PC7010'
, 'PC7020'
, 'PC7030'
, 'PC7040'
, 'PC7050'
, 'PC7070'
, 'PC7900'
, 'PC8000'
, 'PC8640'
, 'PW6230'
, 'PW6231'
, 'PW6239'
, 'PW9998'
, 'PW9999'
, 'RI0810'
, 'WI8710'
, 'WP0110'
, 'WP0510'
, 'WP0550'
, 'XBIMN30'
, 'XBIMN4'
, 'XBIM02'
, 'XBIM04'
, 'XBIM041'
, 'XBIM042'
, 'XBMIGT1'
, 'XBMIG04'
, 'XBMQ400'
, 'XB9020'
, 'XB9040'
, 'XCT002'
, 'XC413@I'
, 'XC5008'
, 'XC6006'
, 'YAUADCC'
, 'YAUADCE'
, 'YAUCORC'
, 'YAUCRCE'
, 'YAU016D'
, 'YAU016F'
, 'YAU016I'
, 'YAU016S'
, 'YAU016U'
, 'YAU018D'
, 'YAU018F'
, 'YAU018I'
, 'YAU018S'
, 'YAU018U'
, 'YAU019D'
, 'YAU019F'
, 'YAU019I'
, 'YAU019S'
, 'YAU019U'
, 'YAU030D'
, 'YAU030F'
, 'YAU030I'
, 'YAU030S'
, 'YAU030U'
, 'YAU180D'
, 'YAU180F'
, 'YAU180I'
, 'YAU180S'
, 'YAU180U'
, 'YAU181D'
, 'YAU181F'
, 'YAU181I'
, 'YAU181S'
, 'YAU181U'
, 'YAU190D'
, 'YAU190F'
, 'YAU190I'
, 'YAU190S'
, 'YAU190U'
, 'YAU191D'
, 'YAU191F'
, 'YAU191I'
, 'YAU191S'
, 'YAU191U'
, 'YAVAAAN'
, 'YAVAAVL'
, 'YAVANAN'
, 'YAVA00'
, 'YAVA01'
, 'YAVA02'
, 'YAVA03'
, 'YAVA04'
, 'YAVA05'
, 'YAVA06'
, 'YAVA07'
, 'YAVA08'
, 'YAVBDAN'
, 'YAVBDVL'
, 'YAVBELE'
, 'YAVBVG'
, 'YAVBWST'
, 'YAVCBET'
, 'YAVCBST'
, 'YAVCOAN'
, 'YAVCOBO'
, 'YAVCPID'
, 'YAVCUAN'
, 'YAVDEFA'
, 'YAVDUAN'
, 'YAVERAN'
, 'YAVERBA'
, 'YAVERTR'
, 'YAVERVL'
, 'YAVFNAN'
, 'YAVFSL'
, 'YAVGAT'
, 'YAVGDW'
, 'YAVGMP'
, 'YAVGPD'
, 'YAVGPDD'
, 'YAVGPDE'
, 'YAVGPD2'
, 'YAVGPD3'
, 'YAVGPER'
, 'YAVGPFD'
, 'YAVGVW'
, 'YAVMAT'
, 'YAVMAVL'
, 'YAVMUR'
, 'YAVOVVW'
, 'YAVPFX'
, 'YAVREC1'
, 'YAVREC2'
, 'YAVSTA'
, 'YAVVDPS'
, 'YAVVDP2'
, 'YAVVSRV'
, 'YAVVTXT'
, 'YAVWHGR'
, 'YAVX001'
, 'YAVX012'
, 'YAVX035'
, 'YAVX040'
, 'YAV0065'
, 'YAV0067'
, 'YAV0083'
, 'YAV0101'
, 'YAV0112'
, 'YAV0116'
, 'YAV0123'
, 'YAV0127'
, 'YAV0128'
, 'YAV0129'
, 'YAV0131'
, 'YAV0132'
, 'YAV0133'
, 'YAV0134'
, 'YAV0135'
, 'YAV0136'
, 'YBEMB'
, 'YBEM01'
, 'YBEM02'
, 'YBEM1DR'
, 'YBEM2DR'
, 'YBERR'
, 'YBER02'
, 'YBER02E'
, 'YBER02F'
, 'YBER03'
, 'YBER03E'
, 'YBER03F'
, 'YBE00MB'
, 'YBE00MC'
, 'YBE00RR'
, 'YBE24'
, 'YBE25'
, 'YBE26'
, 'YBE27'
, 'YCDOGEE'
, 'YCDOGEX'
, 'YCDSGET'
, 'YCDUVGE'
, 'YCKSCCA'
, 'YCTM150'
, 'YCTM151'
, 'YCTM152'
, 'YCTM200'
, 'YCTM201'
, 'YCTM202'
, 'YCTM203'
, 'YCTM204'
, 'YCTM205'
, 'YCTM206'
, 'YCTM214'
, 'YCTM215'
, 'YCTM233'
, 'YCTM400'
, 'YCTSVPT'
, 'YCTS100'
, 'YCTS150'
, 'YCTS200'
, 'YCTS400'
, 'YCTTRA'
, 'YITMETA'
, 'YITRFTG'
, 'YITRFTS'
, 'YNILCTG'
, 'YNILOG'
, 'YNI0161'
, 'YNI107G'
, 'YNI107U'
, 'YPCCAHI'
, 'YPCCORI'
, 'YPCDURA'
, 'YPCEVPO'
, 'YPCLOCA'
, 'YPCRUPD'
, 'YPCSWCH'
, 'YPC0500'
, 'YPC0520'
, 'YPC0530'
, 'YPC0540'
, 'YPC0550'
, 'YPC0580'
, 'YPC0590'
, 'YPC0600'
, 'YPC0610'
, 'YPC0620'
, 'YPC0640'
, 'YPC0650'
, 'YPC0660'
, 'YPC0680'
, 'YPC0690'
, 'YPC0700'
, 'YPC0720'
, 'YPC0730'
, 'YPC0740'
, 'YPC0750'
, 'YPC0760'
, 'YPC0770'
, 'YPC0790'
, 'YPC0800'
, 'YPC0820'
, 'YPC0830'
, 'YPC0840'
, 'YPC0850'
, 'YPC0860'
, 'YPC0880'
, 'YPC0890'
, 'YPC1010'
, 'YPC1020'
, 'YPC1030'
, 'YUU1016'
, 'YUU1020'
, 'YUU1021'
, 'YUU1022'
, 'YUU1023'
, 'YWQBERI'
, 'YXAUECE'
, 'YXAUENC'
, 'YXAUEN2'
, 'YXAUGED'
, 'YXAUGOD'
, 'YXB9021'
, 'YXB9022'
, 'YXB9023'
, 'YXB9024'
, 'YXB9025'
, 'YXCE03L'
, 'YXCE08L'
, 'YYAUATR'
, 'YYAUAT0'
, 'YYWM05E'
, 'YYWM51E'
)
-- fetch first 300 rows only
)
select name pgm, collid col, pcTimestamp, version
, OWNER
, QUALIFIER
, ISOLATION
, RELEASE
, EXPLAIN
, DEGREE
, DYNAMICRULES
, KEEPDYNAMIC
, REOPTVAR
, case when OPTHINT='' then '-' else optHint end optHint
, IMMEDWRITE
, case when PATHSCHEMAS='' then '-' else pathSchemas end
pathSchemas
, VALIDATE
, SQLERROR
, DEFERPREP
, DEFERPREPARE
from n
where rv = 1
order by pgm, col
with ur
$!
call sqlSel
$| call fmtFTab
$#out 20131118 08:14:10
}¢--- A540769.WK.SQL(BINDXSEM) cre=2013-11-11 mod=2013-11-18-08.13.44 A540769 ---
$#@
$** neueste Packages
call sqlConnect dbof
$;
$>~wk.texv(bindXsel)
$<=¢
with n as
(
select p.*
, row_number() over (partition by collid, name
order by pcTimestamp desc) rv
from sysibm.sysPackage p
where length(strip(collid)) <= 4
order by pcTimestamp desc
fetch first 1000 rows only
)
select name pgm, collid col, pcTimestamp, version
, OWNER
, QUALIFIER
, ISOLATION
, RELEASE
, EXPLAIN
, DEGREE
, DYNAMICRULES
, KEEPDYNAMIC
, REOPTVAR
, case when OPTHINT='' then '-' else optHint end optHint
, IMMEDWRITE
, case when PATHSCHEMAS='' then '-' else pathSchemas end
pathSchemas
, VALIDATE
, SQLERROR
, DEFERPREP
, DEFERPREPARE
from n
where rv = 1
order by pgm, col
with ur
$!
call sqlSel
$| call fmtFTab
$#out 20131115 13:37:37
*** run error ***
SQLCODE = -924: DB2 CONNECTION INTERNAL ERROR, 00000002,
0000000C, 00F30006
sql = connect DBOF
$#out 20131111 21:07:08
}¢--- A540769.WK.SQL(BINDXSE2) cre=2013-11-15 mod=2013-11-15-14.50.55 A540769 ---
$#@
call sqlConnect dp4g
$;
$@#¢
select ' , ''' || strip(pgm) || ''''
from oa1p.tadm41bindParm
group by pgm
order by cast(pgm as varchar(8) ccsid ebcdic)
$!
$| call sqlSel $| call fmtFTab
$#out 20131115 14:50:40
COL1
, '%'
, 'AN5000'
, 'AU5070'
, 'AV373@I'
, 'AV391@I'
, 'AV403@I'
, 'AV425@I'
, 'AV5300'
, 'AV5560'
, 'AV7210'
, 'AV7220'
, 'AV8460'
, 'AV8476'
, 'AV8550'
, 'BE5010'
, 'BE5020'
, 'BE5040'
, 'BE5050'
, 'BE5070'
, 'BE5090'
, 'BE5900'
, 'BE5910'
, 'BE5930'
, 'BE5931'
, 'BE5940'
, 'BE5950'
, 'BE7110'
, 'BE7160'
, 'BE7210'
, 'BF0010'
, 'BU012@I'
, 'BU013@I'
, 'BU021@I'
, 'BU062@I'
, 'CD9997'
, 'FI5200'
, 'FI7430'
, 'FI8190'
, 'ID6060'
, 'ID6061'
, 'KE5480'
, 'NI5788'
, 'NI8330'
, 'NI8340'
, 'NI8660'
, 'NZ5820'
, 'NZ6500'
, 'OS7110'
, 'OS7111'
, 'PCA64@I'
, 'PCA73@I'
, 'PCB01@I'
, 'PCB12@I'
, 'PCB22@I'
, 'PCB32@I'
, 'PCB41@I'
, 'PCB51@I'
, 'PCB91@I'
, 'PCC03@I'
, 'PCC12@I'
, 'PCC22@I'
, 'PCC31@I'
, 'PCC41@I'
, 'PCC51@I'
, 'PCC62@I'
, 'PCC71@I'
, 'PCC81@I'
, 'PCE45@I'
, 'PCE51@I'
, 'PCG81@I'
, 'PCG91@I'
, 'PC5000'
, 'PC5020'
, 'PC5030'
, 'PC5040'
, 'PC5050'
, 'PC5060'
, 'PC5070'
, 'PC5080'
, 'PC5090'
, 'PC5100'
, 'PC5110'
, 'PC5120'
, 'PC5130'
, 'PC5140'
, 'PC5150'
, 'PC5160'
, 'PC5170'
, 'PC5180'
, 'PC5200'
, 'PC5210'
, 'PC5220'
, 'PC5230'
, 'PC5240'
, 'PC5250'
, 'PC5260'
, 'PC5270'
, 'PC5280'
, 'PC5290'
, 'PC5300'
, 'PC5310'
, 'PC5330'
, 'PC5340'
, 'PC5345'
, 'PC5350'
, 'PC5400'
, 'PC7000'
, 'PC7005'
, 'PC7010'
, 'PC7020'
, 'PC7030'
, 'PC7040'
, 'PC7050'
, 'PC7070'
, 'PC7900'
, 'PC8000'
, 'PC8640'
, 'PW6230'
, 'PW6231'
, 'PW6239'
, 'PW9998'
, 'PW9999'
, 'RI0810'
, 'WI8710'
, 'WP0110'
, 'WP0510'
, 'WP0550'
, 'XBIMN30'
, 'XBIMN4'
, 'XBIM02'
, 'XBIM04'
, 'XBIM041'
, 'XBIM042'
, 'XBMIGT1'
, 'XBMIG04'
, 'XBMQ400'
, 'XB9020'
, 'XB9040'
, 'XCT002'
, 'XC413@I'
, 'XC5008'
, 'XC6006'
, 'YAUADCC'
, 'YAUADCE'
, 'YAUCORC'
, 'YAUCRCE'
, 'YAU016D'
, 'YAU016F'
, 'YAU016I'
, 'YAU016S'
, 'YAU016U'
, 'YAU018D'
, 'YAU018F'
, 'YAU018I'
, 'YAU018S'
, 'YAU018U'
, 'YAU019D'
, 'YAU019F'
, 'YAU019I'
, 'YAU019S'
, 'YAU019U'
, 'YAU030D'
, 'YAU030F'
, 'YAU030I'
, 'YAU030S'
, 'YAU030U'
, 'YAU180D'
, 'YAU180F'
, 'YAU180I'
, 'YAU180S'
, 'YAU180U'
, 'YAU181D'
, 'YAU181F'
, 'YAU181I'
, 'YAU181S'
, 'YAU181U'
, 'YAU190D'
, 'YAU190F'
, 'YAU190I'
, 'YAU190S'
, 'YAU190U'
, 'YAU191D'
, 'YAU191F'
, 'YAU191I'
, 'YAU191S'
, 'YAU191U'
, 'YAVAAAN'
, 'YAVAAVL'
, 'YAVANAN'
, 'YAVA00'
, 'YAVA01'
, 'YAVA02'
, 'YAVA03'
, 'YAVA04'
, 'YAVA05'
, 'YAVA06'
, 'YAVA07'
, 'YAVA08'
, 'YAVBDAN'
, 'YAVBDVL'
, 'YAVBELE'
, 'YAVBVG'
, 'YAVBWST'
, 'YAVCBET'
, 'YAVCBST'
, 'YAVCOAN'
, 'YAVCOBO'
, 'YAVCPID'
, 'YAVCUAN'
, 'YAVDEFA'
, 'YAVDUAN'
, 'YAVERAN'
, 'YAVERBA'
, 'YAVERTR'
, 'YAVERVL'
, 'YAVFNAN'
, 'YAVFSL'
, 'YAVGAT'
, 'YAVGDW'
, 'YAVGMP'
, 'YAVGPD'
, 'YAVGPDD'
, 'YAVGPDE'
, 'YAVGPD2'
, 'YAVGPD3'
, 'YAVGPER'
, 'YAVGPFD'
, 'YAVGVW'
, 'YAVMAT'
, 'YAVMAVL'
, 'YAVMUR'
, 'YAVOVVW'
, 'YAVPFX'
, 'YAVREC1'
, 'YAVREC2'
, 'YAVSTA'
, 'YAVVDPS'
, 'YAVVDP2'
, 'YAVVSRV'
, 'YAVVTXT'
, 'YAVWHGR'
, 'YAVX001'
, 'YAVX012'
, 'YAVX035'
, 'YAVX040'
, 'YAV0065'
, 'YAV0067'
, 'YAV0083'
, 'YAV0101'
, 'YAV0112'
, 'YAV0116'
, 'YAV0123'
, 'YAV0127'
, 'YAV0128'
, 'YAV0129'
, 'YAV0131'
, 'YAV0132'
, 'YAV0133'
, 'YAV0134'
, 'YAV0135'
, 'YAV0136'
, 'YBEMB'
, 'YBEM01'
, 'YBEM02'
, 'YBEM1DR'
, 'YBEM2DR'
, 'YBERR'
, 'YBER02'
, 'YBER02E'
, 'YBER02F'
, 'YBER03'
, 'YBER03E'
, 'YBER03F'
, 'YBE00MB'
, 'YBE00MC'
, 'YBE00RR'
, 'YBE24'
, 'YBE25'
, 'YBE26'
, 'YBE27'
, 'YCDOGEE'
, 'YCDOGEX'
, 'YCDSGET'
, 'YCDUVGE'
, 'YCKSCCA'
, 'YCTM150'
, 'YCTM151'
, 'YCTM152'
, 'YCTM200'
, 'YCTM201'
, 'YCTM202'
, 'YCTM203'
, 'YCTM204'
, 'YCTM205'
, 'YCTM206'
, 'YCTM214'
, 'YCTM215'
, 'YCTM233'
, 'YCTM400'
, 'YCTSVPT'
, 'YCTS100'
, 'YCTS150'
, 'YCTS200'
, 'YCTS400'
, 'YCTTRA'
, 'YITMETA'
, 'YITRFTG'
, 'YITRFTS'
, 'YNILCTG'
, 'YNILOG'
, 'YNI0161'
, 'YNI107G'
, 'YNI107U'
, 'YPCCAHI'
, 'YPCCORI'
, 'YPCDURA'
, 'YPCEVPO'
, 'YPCLOCA'
, 'YPCRUPD'
, 'YPCSWCH'
, 'YPC0500'
, 'YPC0520'
, 'YPC0530'
, 'YPC0540'
, 'YPC0550'
, 'YPC0580'
, 'YPC0590'
, 'YPC0600'
, 'YPC0610'
, 'YPC0620'
, 'YPC0640'
, 'YPC0650'
, 'YPC0660'
, 'YPC0680'
, 'YPC0690'
, 'YPC0700'
, 'YPC0720'
, 'YPC0730'
, 'YPC0740'
, 'YPC0750'
, 'YPC0760'
, 'YPC0770'
, 'YPC0790'
, 'YPC0800'
, 'YPC0820'
, 'YPC0830'
, 'YPC0840'
, 'YPC0850'
, 'YPC0860'
, 'YPC0880'
, 'YPC0890'
, 'YPC1010'
, 'YPC1020'
, 'YPC1030'
, 'YUU1016'
, 'YUU1020'
, 'YUU1021'
, 'YUU1022'
, 'YUU1023'
, 'YWQBERI'
, 'YXAUECE'
, 'YXAUENC'
, 'YXAUEN2'
, 'YXAUGED'
, 'YXAUGOD'
, 'YXB9021'
, 'YXB9022'
, 'YXB9023'
, 'YXB9024'
, 'YXB9025'
, 'YXCE03L'
, 'YXCE08L'
, 'YYAUATR'
, 'YYAUAT0'
, 'YYWM05E'
, 'YYWM51E'
$#out 20131115 14:50:10
}¢--- A540769.WK.SQL(BIPA1DDL) cre=2013-11-03 mod=2013-11-03-08.00.12 A540769 ---
set current sqlid = 'S100447';
drop table oa1p.tBiPaPgm;
drop tablespace db2admin.aBiParm ;
drop tablespace db2admin.aBiPath ;
drop tablespace db2admin.aBiPaCol;
drop tablespace db2admin.aBiPaOpt;
commit;
create global temporary table oa1p.tBiPaPgm
( appl char(4),
pgm char(8),
install date) ccsid unicode;
CREATE TABLESPACE ABiParm
IN db2admin
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLESPACE ABiPath
IN db2admin
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLESPACE ABiPaCol
IN db2admin
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLESPACE ABiPaOpt
IN db2admin
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLE oa1p.tBiParm
( type char(5) not null,
PRIO char(2) NOT NULL,
CONSTRAINT PRIONumeric CHECK
(PRIO between '00' and '99') ,
appl CHAR(4) NOT NULL default '*',
pgm CHAR(8) NOT NULL default '*',
rz char(3) NOT NULL default '*',
dbSy char(4) NOT NULL default '*',
location char(16) NOT NULL default '*',
value char(20) not null,
installFr date NOT NULL WITH DEFAULT,
installTo date NOT NULL WITH DEFAULT '31.12.9999',
rowChg timestamp not null generated always
for each row on update as row change timestamp
)
in db2admin.aBiParm
;
CREATE view oa1p.vBiParm as
select p.*,
case when posstr(appl, '*') = 0 then 4 else posstr(appl, '*')-1
end apLe ,
case when posstr(pgm , '*') = 0 then 8 else posstr(pgm , '*')-1
end pgLe
from oa1p.tBiParm p
;
create view oa1p.vBiPaPgm as
select g.*,
(select substr(max(prio || value), 3, 12)
from oa1p.vBiParm p
where p.type = 'path'
and g.install >= p.installFr and g.install < p.installTo
and left(p.appl, p.apLe) = left(g.appl, p.apLe)
and left(p.pgm , p.pgLe) = left(g.pgm, p.pgLe)
) path,
case when pgm like 'YY%' then 'YY'
when pgm like 'Y%' then substr(pgm, 2, 2)
else substr(pgm, 1, 2)
end colBa
from oa1p.tBiPaPgm g
;
CREATE TABLE oa1p.tBiPath
(
path char(12) not null,
seq smallint not null,
rz char(3) NOT NULL,
dbSy char(4) NOT NULL,
location char(16) NOT NULL default '',
installFr date NOT NULL WITH DEFAULT,
installTo date NOT NULL WITH DEFAULT '31.12.9999' ,
rowChg timestamp not null generated always
for each row on update as row change timestamp
) in db2admin.aBiPath
;
CREATE view oa1p.vBiPath as
select g.*, a.seq pathSeq, a.rz, a.dbSy, a.location,
( select substr(max(prio || value), 3, 12)
from oa1p.vBiParm p
where p.type = 'colls'
and g.install >= p.installFr and g.install < p.installTo
and left(p.appl, p.apLe) = left(g.appl, p.apLe)
and left(p.pgm , p.pgLe) = left(g.pgm, p.pgLe)
and p.rz in ('*', a.rz )
and p.dbSy in ('*', a.dbSy )
and p.location in ('*', a.location )
) colls,
( select substr(max(prio || value), 3, 12)
from oa1p.vBiParm p
where p.type = 'qua'
and g.install >= p.installFr and g.install < p.installTo
and left(p.appl, p.apLe) = left(g.appl, p.apLe)
and left(p.pgm , p.pgLe) = left(g.pgm, p.pgLe)
and p.rz in ('*', a.rz )
and p.dbSy in ('*', a.dbSy )
and p.location in ('*', a.location )
) quaBa
from oa1p.vBiPaPgm g
join oa1p.tBiPath a
on g.path = a.path
and g.install >= a.installFr and g.install < a.installTo
;
CREATE TABLE oa1p.tBiPaCol
(
colls char(12) not null,
seq smallint not null,
col char(8) NOT NULL,
qua char(8) NOT NULL,
installFr date NOT NULL WITH DEFAULT,
installTo date NOT NULL WITH DEFAULT '31.12.9999',
rowChg timestamp not null generated always
for each row on update as row change timestamp
) in db2admin.aBiPaCol
;
CREATE view oa1p.vBiPaCol as
select h.*, c.seq colSeq,
replace(c.col, '$', strip(h.colBa)) col,
replace(c.qua, '$', strip(h.quaBa)) qua,
( select substr(max(prio || value), 3, 12)
from oa1p.vBiParm p
where p.type = 'opt'
and h.install >= p.installFr and h.install < p.installTo
and left(p.appl, p.apLe) = left(h.appl, p.apLe)
and left(p.pgm , p.pgLe) = left(h.pgm, p.pgLe)
and p.rz in ('*', h.rz )
and p.dbSy in ('*', h.dbSy )
and p.location in ('*', h.location )
) opts
from oa1p.vBiPath h
join oa1p.tBiPaCol c
on h.colls = c.colls
and h.install >= c.installFr and h.install < c.installTo
;
CREATE TABLE oa1p.tBiPaOpt
(
opts char(12) not null,
seq smallint not null,
key char(30) not null,
value char(40) NOT NULL,
installFr date NOT NULL WITH DEFAULT,
installTo date NOT NULL WITH DEFAULT '31.12.9999',
rowChg timestamp not null generated always
for each row on update as row change timestamp
) in db2admin.aBiPaOpt
;
CREATE view oa1p.vBiPaOptRel as
with r (opts, parent, prio, lev, install) as
( select opts, opts, '99', 1, install
from ( select opts, install from oa1p.vBiPaCol
group by opts, install) oo
union all select r.opts, p.value,
right('00' || strip(char(99-lev)), 2), lev+1, install
from r join oa1p.tBiPaOpt p
on r.parent = p.opts and p.key = '-->parent'
and r.install >= p.installFr and r.install < p.installTo
and r.lev < 90
)
select * from r
;
CREATE view oa1p.vBiPaOpt as
with o as (
select r.opts, key, substr(max(prio || value), 3) value,
min(seq) seq, r.install
from oa1p.vBiPaOptRel r
join oa1p.tBiPaOpt o
on r.parent = o.opts
and r.install >= o.installFr and r.install < o.installTo
group by r.opts, r.install, o.key
)
select c.*,
' ' || strip(key) || '(' || strip(value) || ')'
|| case when seq = 9999 then '' else ' -' end opt,
o.seq optSeq
from oa1p.vBiPaCol c join o
on o.opts = c.opts and o.install = c.install
and o.key not like '--%' and o.value <> ''
;
CREATE view oa1p.vBiPaBind (opt, appl, pgm, install, path, colba,
pathSeq, rz, dbSy, location, colls, quaBa,
colSeq, col, qua, opts, optSeq) as
select 'bind package('
|| case when location = '' then ''
else strip(c.location) || '.' end
|| strip(col) || ') -' ,
c.*, -90
from oa1p.vBiPaCol c
union all select ' member(' || strip(pgm) || ') -',
c.*, -80
from oa1p.vBiPaCol c
union all select ' qualifier(' || strip(qua) || ') -',
c.*, -70
from oa1p.vBiPaCol c
union all select opt, appl, pgm, install, path, colba,
pathSeq, rz, dbSy, location, colls, quaBa,
colSeq, col, qua, opts, optSeq
from oa1p.vBiPaOpt
union all select '***: Bind for pgm=' || strip(pgm)
|| ', appl=' || appl
|| ', installDate=' || char(install) ,
appl, pgm, install, '', '',
-32761, '' , '', '', '', '',
0, '', '', 'bindBegin1', 0
from oa1p.tBiPaPgm
union all select '***: oa1p.vBiPaBind at '
|| char(current timestamp)
|| ' on ' || current server,
appl, pgm, install, '', '',
-32760, '', '', '', '', '',
0, '', '', 'bindBegin2', 0
from oa1p.tBiPaPgm
union all select '**** Start of Bind Stmts for ' || strip(rz) || '/'
|| strip(dbSy),
appl, pgm, install, path, '',
min(pathSeq), rz, dbSy, '', '', '',
-32760, '', '', 'dbSyBegin', 0
from oa1p.vBiPaCol c
group by appl, pgm, install, path, rz, dbSy
union all select '**** End of Bind Stmts for ' || strip(rz) || '/'
|| strip(dbSy),
appl, pgm, install, path, '',
max(pathSeq), rz, dbSy, '', '', '',
32760, '', '', 'dbSyEnd', 0
from oa1p.vBiPaCol c
group by appl, pgm, install, path, rz, dbSy
;
commit;
}¢--- A540769.WK.SQL(BIPA1MIG) cre=2013-11-03 mod=2013-11-03-08.01.49 A540769 ---
delete from OA1P.tAdm41BindVal;
insert into OA1P.tAdm41BindVal (type, key, installBegin, seq, va1, va2)
values('rdl', 'DBOF', '01.01.2000', 20, 'RZ1', 'DBAF') ;
insert into OA1P.tAdm41BindVal (path, installFr, seq, rz, dbSy)
values('DBOF', '01.01.2008', 22, 'RZ8', 'DC0G') ;
insert into OA1P.tAdm41BindVal (path, installFr, seq, rz, dbSy)
values('DBOF', '01.01.2000', 40, 'RZ1', 'DBTF') ;
insert into OA1P.tAdm41BindVal (path, installFr, seq, rz, dbSy)
values('DBOF', '01.01.2008', 42, 'RZ8', 'DD0G') ;
insert into OA1P.tAdm41BindVal (path, installFr, seq, rz, dbSy)
values('DBOF', '01.01.2008', 44, 'RZZ', 'DE0G') ;
insert into OA1P.tAdm41BindVal (path, installFr, seq, rz, dbSy)
values('DBOF', '01.01.2000', 60, 'RR2', 'DBOF') ;
insert into OA1P.tAdm41BindVal (path, installFr, seq, rz, dbSy)
values('DBOF', '01.01.2000', 80, 'RZ2', 'DBOF') ;
insert into OA1P.tAdm41BindVal (path, installFr, seq, rz, dbSy)
values('DVBP', '01.01.2000', 20, 'RZ1', 'DBBA') ;
insert into OA1P.tAdm41BindVal (path, installFr, seq, rz, dbSy)
values('DVBP', '01.01.2012', 22, 'RZ8', 'DCVG') ;
insert into OA1P.tAdm41BindVal (path, installFr, seq, rz, dbSy)
values('DVBP', '01.01.2000', 40, 'RZ1', 'DVTB') ;
insert into OA1P.tAdm41BindVal (path, installFr, seq, rz, dbSy)
values('DVBP', '01.01.2008', 42, 'RZ8', 'DDVG') ;
insert into OA1P.tAdm41BindVal (path, installFr, seq, rz, dbSy)
values('DVBP', '01.01.2008', 44, 'RZZ', 'DEVG') ;
insert into OA1P.tAdm41BindVal (path, installFr, seq, rz, dbSy)
values('DVBP', '01.01.2000', 60, 'RR2', 'DVBP') ;
insert into OA1P.tAdm41BindVal (path, installFr, seq, rz, dbSy)
values('DVBP', '01.01.2000', 80, 'RZ2', 'DVBP') ;
insert into OA1P.tAdm41BindVal (path, seq, rz, dbSy, location, installFr)
select 'DBOF>DVBP', seq, rz, dbSy, '', installFr
from OA1P.tAdm41BindVal where path = 'DBOF';
insert into OA1P.tAdm41BindVal (path, seq, rz, dbSy, location, installFr)
select 'DBOF>DVBP', seq+1, rz, dbSy, '', installFr
from OA1P.tAdm41BindVal where path = 'DBOF';
update OA1P.tAdm41BindVal set location = 'CHSKA000DBBA'
where path = 'DBOF>DVBP' and seq = 21;
update OA1P.tAdm41BindVal set location = 'CHROI000DCVG'
where path = 'DBOF>DVBP' and seq = 23;
update OA1P.tAdm41BindVal set location = 'CHSKA000DVTB'
where path = 'DBOF>DVBP' and seq = 41;
update OA1P.tAdm41BindVal set location = 'CHROI000DDVG'
where path = 'DBOF>DVBP' and seq = 43;
update OA1P.tAdm41BindVal set location = 'CHROI00ZDEVG'
where path = 'DBOF>DVBP' and seq = 45;
update OA1P.tAdm41BindVal set location = 'CHSKA000DVBP'
where path = 'DBOF>DVBP' and seq = 61;
update OA1P.tAdm41BindVal set location = 'CHSKA000DVBP'
where path = 'DBOF>DVBP' and seq = 81;
insert into OA1P.tAdm41BindVal (path, seq, rz, dbSy, location, installFr)
select 'DBOF>DBOL', seq, rz, dbSy, '', installFr
from OA1P.tAdm41BindVal where path = 'DBOF';
insert into OA1P.tAdm41BindVal (path, installFr, seq, rz, dbSy, location)
values('DBOF>DBOL', '01.01.2000', 81, 'RZ2', 'DBOF','CHSKA000DBOL');
insert into OA1P.tAdm41BindVal (path, seq, rz, dbSy, location, installFr)
select 'DVBP>DBOF', seq, rz, dbSy, '', installFr
from OA1P.tAdm41BindVal where path = 'DVBP';
insert into OA1P.tAdm41BindVal (path, seq, rz, dbSy, location, installFr)
select 'DVBP>DBOF', seq+1, rz, dbSy, '', installFr
from OA1P.tAdm41BindVal where path = 'DVBP';
update OA1P.tAdm41BindVal set location = 'CHSKA000DBAF'
where path = 'DVBP>DBOF' and seq = 21;
update OA1P.tAdm41BindVal set location = 'CHROI000DC0G'
where path = 'DVBP>DBOF' and seq = 23;
update OA1P.tAdm41BindVal set location = 'CHSKA000DBTF'
where path = 'DVBP>DBOF' and seq = 41;
update OA1P.tAdm41BindVal set location = 'CHROI000DD0G'
where path = 'DVBP>DBOF' and seq = 43;
update OA1P.tAdm41BindVal set location = 'CHROI00ZDE0G'
where path = 'DVBP>DBOF' and seq = 45;
update OA1P.tAdm41BindVal set location = 'CHSKA000DBOF'
where path = 'DVBP>DBOF' and seq = 61;
update OA1P.tAdm41BindVal set location = 'CHSKA000DBOF'
where path = 'DVBP>DBOF' and seq = 81;
delete from OA1P.tBiPaCol;
declare global temporary table session.i
(i int not null, c2 char(2) not null) ccsid unicode;
insert into session.i
select i, right('0000' || strip(char(i)), 2) c2
from (select row_number() over() -1 i
from sysibm.sysColumns fetch first 100 rows only)s
;
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
values ( '$', 1, '$', '$', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
values ('$+02', 0, '$','$', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
values ('$+02', 1, '$01','$01', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
values ('$+02', 2,'$02', '$02', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
values ('$01', 1, '$01','$01', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
values ('$-02', 1, '$01','$01', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
values ('$-02', 2,'$02', '$02', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
select '$-03', i, '$' || c2, '$' || c2, '01.01.2000'
from session.i where i > 0 and i <= 3
;
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
select '$-04', i, '$' || c2, '$' || c2, '01.01.2000'
from session.i where i > 0 and i <= 4
;
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
select '$-05', i, '$' || c2, '$' || c2, '01.01.2000'
from session.i where i > 0 and i <= 5
;
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
values ('AU', 1, 'AU', '$', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
select 'AVALL', i, 'AV' || c2, '$' || c2, '01.01.2000'
from session.i where i > 0 and i <= 30 and i <> 4
;
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
values ('AV-02', 1, 'AV01','$01', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
values ('AV-02', 1, 'AV02','$01', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
select 'AV-10', i, 'AV' || c2, '$' || c2, '01.01.2000'
from session.i where i > 0 and i <= 10 and i <> 4
;
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
select 'AV/30', i, 'AV' || c2, '$' || c2, '01.01.2000'
from session.i where i in (1,2,3,9,10,21,22,28,29,30)
;
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
values ('BE', 1, 'BE', '$', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
values ('CZ+', 1, '$', '$', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
values ('CZ+', 10, 'CZ', '$', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
values ('KE', 1, 'KE', '$', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
values ('OA1P-02', 10, 'OA1P01', '$01', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
values ('OA1P-02', 20, 'OA1P02', '$02', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
select 'PCALL', i, 'PC' || c2, '$' || c2, '01.01.2000'
from session.i where i > 0 and i <= 16
;
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
select 'XCALL', i, 'XC' || c2, '$' || c2, '01.01.2000'
from session.i where i <= 9
;
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
values ('YY+', 1, '$', '$', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
values ('YY+', 10, 'YY', '$', '01.01.2000');
delete from OA1P.tBiPaOpt;
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
values ('default', 110, 'OWNER', 'CMNBATCH','01.01.2000');
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
values ('default', 210, 'ISOLATION', 'CS','01.01.2000');
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
values ('default', 220, 'DEGREE', '1','01.01.2000');
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
values ('default', 310, 'DYNAMICRULES', 'BIND','01.01.2000');
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
values ('default', 320, 'VALIDATE', 'BIND','01.01.2000');
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
values ('default', 910, 'EXPLAIN', 'YES','01.01.2000');
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
values ('default', 920, 'FLAG', 'I','01.01.2000');
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
values ('default', 930, 'SQLERROR', 'NOPACKAGE','01.01.2000');
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
values ('default', 9999, 'ACTION', 'REPLACE','01.01.2000');
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
values ('degAny', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
values ('degAny', 220, 'DEGREE', 'ANY','01.01.2000');
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
values ('valRun', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
values ('valRun', 320, 'VALIDATE', 'RUN' ,'01.01.2000');
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
values ('optHBD1',-9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
values ('optHBD1', 330, 'OPTHINT', 'HBD1','01.01.2000');
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
values ('optOH', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
values ('optOH', 330, 'OPTHINT', 'OH' ,'01.01.2000');
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
values ('reoAlw', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
values ('reoAlw', 340, 'REOPT', 'ALWAYS','01.01.2000');
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
values ('dynRun', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
values ('dynRun', 310, 'DYNAMICRULES', 'RUN','01.01.2000');
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
values ('dynValRun',-9999,'-->parent','dynRun', '01.01.2000') ;
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
values ('dynValRun',-9999,'-->parent','valRun', '01.01.2000') ;
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
values ('relDea', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
values ('relDea', 230, 'RELEASE', 'DEALLOCATE','01.01.2000');
delete from OA1P.tBiParm;
insert into OA1P.tbiParm (type, prio, appl, pgm, rz, dbSy, location,
value, installfr)
values('opt', '00', '*', '*', '*', '*', '*', 'default',
'01.01.2000')
;
insert into OA1P.tbiParm (type, prio, appl, pgm, rz, dbSy, location,
value, installfr)
with n as
( select APPL
, PGM
, COLLID
, INSTALLDATE
,case when OWNER <> '' then owner else null end owner
,case when QUALIFIER <> '' then QUALIFIER else null end QUALIFIER
,case when ISOLATION <> '' then ISOLATION else null end ISOLATION
,case when EXPLAIN <> '' then EXPLAIN else null end EXPLAIN
,case when CURRENTDATA <> '' then CURRENTDATA else null end CURRENTDATA
,case when RELEASE <> '' then RELEASE else null end RELEASE
,case when DBPROTOCOL <> '' then DBPROTOCOL else null end DBPROTOCOL
,case when DEGREE <> '' then DEGREE else null end DEGREE
,case when DYNAMICRULES <> '' then DYNAMICRULES else null end
DYNAMICRULES
,case when KEEPDYNAMIC <> '' then KEEPDYNAMIC else null end KEEPDYNAMIC
,case when REOPT <> '' then REOPT else null end REOPT
,case when OPTHINT <> '' then OPTHINT else null end OPTHINT
,case when IMMEDWRITE <> '' then IMMEDWRITE else null end IMMEDWRITE
,case when FLAG <> '' then FLAG else null end FLAG
,case when PATH <> '' then PATH else null end PATH
,case when VALIDATE <> '' then VALIDATE else null end VALIDATE
,case when SQLERROR <> '' then SQLERROR else null end SQLERROR
,case when SQLRULES <> '' then SQLRULES else null end SQLRULES
,case when DEFER <> '' then DEFER else null end DEFER
,case when ENCODING <> '' then ENCODING else null end ENCODING
,case when ROUNDING <> '' then ROUNDING else null end ROUNDING
from oa1p.bind_parameters
)
, d as
( select
case when s.pgm <> 'DEFAULT' then 's' else ' ' end
|| case when a.appl <> 'DEFAULT' then 'a' else ' ' end
|| case when d.appl is null then ' ' else 'd' end sad
--alue(s.$ ,a.$ ,d.$ ) $
,value(s.APPL ,a.APPL ,d.APPL ) APPL
,value(s.PGM ,a.PGM ,d.PGM ) PGM
,value(s.COLLID ,a.COLLID ,d.COLLID ) COLLID
,value(s.INSTALLDATE ,a.INSTALLDATE ,d.INSTALLDATE ) INSTALLDATE
,value(s.OWNER ,a.OWNER ,d.OWNER ) OWNER
,value(s.QUALIFIER ,a.QUALIFIER ,d.QUALIFIER ) QUALIFIER
,value(s.ISOLATION ,a.ISOLATION ,d.ISOLATION ) ISOLATION
,value(s.EXPLAIN ,a.EXPLAIN ,d.EXPLAIN ) EXPLAIN
,value(s.CURRENTDATA ,a.CURRENTDATA ,d.CURRENTDATA ) CURRENTDATA
,value(s.RELEASE ,a.RELEASE ,d.RELEASE ) RELEASE
,value(s.DBPROTOCOL ,a.DBPROTOCOL ,d.DBPROTOCOL ) DBPROTOCOL
,value(s.DEGREE ,a.DEGREE ,d.DEGREE ) DEGREE
,value(s.DYNAMICRULES,a.DYNAMICRULES,d.DYNAMICRULES) DYNAMICRULES
,value(s.KEEPDYNAMIC ,a.KEEPDYNAMIC ,d.KEEPDYNAMIC ) KEEPDYNAMIC
,value(s.REOPT ,a.REOPT ,d.REOPT ) REOPT
,value(s.OPTHINT ,a.OPTHINT ,d.OPTHINT ) OPTHINT
,value(s.IMMEDWRITE ,a.IMMEDWRITE ,d.IMMEDWRITE ) IMMEDWRITE
,value(s.FLAG ,a.FLAG ,d.FLAG ) FLAG
,value(s.PATH ,a.PATH ,d.PATH ) PATH
,value(s.VALIDATE ,a.VALIDATE ,d.VALIDATE ) VALIDATE
,value(s.SQLERROR ,a.SQLERROR ,d.SQLERROR ) SQLERROR
,value(s.SQLRULES ,a.SQLRULES ,d.SQLRULES ) SQLRULES
,value(s.DEFER ,a.DEFER ,d.DEFER ) DEFER
,value(s.ENCODING ,a.ENCODING ,d.ENCODING ) ENCODING
,value(s.ROUNDING ,a.ROUNDING ,d.ROUNDING ) ROUNDING
from n s
left join n a
on a.appl = s.appl and a.pgm = 'DEFAULT'
and a.collid = 'DEFAULT'
left join oa1p.bind_parameters d
on d.appl = 'DEFAULT' and d.pgm = 'DEFAULT'
and d.collid = 'DEFAULT'
)
, e as
(
select
left(release, 4) || left(degree, 4) || left(dynamicRules, 4)
|| left(reopt, 4) || left(opthint, 4) || left(validate, 4) comb,
d.*
from d
)
, f as
( select case
when comb = ' ANY BIND BIND' then 'degAny '
when comb = ' 1 BIND BIND' then 'default '
when comb = ' 1 BIND RUN ' then 'valRun '
when comb = ' 1 BIND HBD1BIND' then 'optHBD1 '
when comb = ' 1 BIND OH BIND' then 'optOH '
when comb = ' 1 BINDALWA BIND' then 'reoAlw '
when comb = ' 1 RUN BIND' then 'dynRun '
when comb = ' 1 RUN RUN ' then 'dynValRun'
when comb = 'DEAL1 BIND BIND' then 'relDea '
else '$$$' end neu,
e.*
from e
)
select 'opt' type
, case when pgm <> 'DEFAULT' then '20'
else '10' end prio
, left(case when appl = 'DEFAULT' or pgm <> 'DEFAULT'
then '*' else appl end, 4) appl
, case when pgm = 'DEFAULT' then '*' else pgm end pgm
, '*' rz
, '*' dbSy
, '*' location
, neu value
, installDate installFr
-- , f.*
from f
where appl not like 'A18Q%'
and neu <> 'default'
;
insert into OA1P.tBiParm (type, prio, value, installFr)
values ('path', '00', 'DBOF', '01.01.2000');
insert into OA1P.tBiParm (type, prio, appl, value, installFr)
values ('path', '00', 'ELA*', 'DVBP', '01.01.2000');
insert into OA1P.tbiParm (type, prio, pgm, value, installfr)
with a as
(
select appl a, pgm p , collid c, date(createdTS) r,
strip(ssid) || '>' || strip(location) || '-' || strip(qualifier) t
from oa1p.bind_exceptions
where ssid <> 'DAEG'
)
, b as
( select a, p, c, r,
row_number() over(partition by a, p, c
order by t) l,
t
from a
)
, c (a, p, c, r, l, t, u) as
( select a, p, c, r, 1, t, varchar(t, 2000) from b where l = 1
union all select c.a, c.p, c.c, min(c.r, b.r),
c.l+1, b.t, c.u || ' ' || b.t
from b, c
where b.a = c.a and b.p = c.p and b.c = c.c and b.l = c.l+1
and c.l < 100
)
, d as
(
select a, p, c, min(r) r, max(l) l, min(t) tFr, max(t) tTo, max(u) t
from c
group by a, p, c
)
, e as
( select
case when a in ('A18Q', 'DBTST', 'DB2J') then '-'
when p = 'AU5070' or p like 'YAU03%' then 'DBOF>DVBP'
when p = 'YCDPUT2' then '-'
when l = 12 and tFr = 'DBBA>-OA1A'
and left(tTo, 17) = 'DVTB>CHSKA000DBTF' then 'DVBP>DBOF'
when l > 4 and tFr = 'DBAF>-OA1A'
and tTo = 'DBTF>CHSKA000DVTB-OA1T' then 'DBOF>DVBP'
when t = 'DBOF>-OA1P DBOF>CHSKA000DBOL-OA1P' then 'DBOF>DBOL'
else '???'
end n,
d.* from d
)
select 'path', '20', p, n, r
from e where n <> '-'
;
insert into OA1P.tBiParm (type, prio, value, installFr)
values ('qua', '00', 'OA1P', '01.01.2000');
insert into OA1P.tBiParm (type, prio, appl, value, installFr)
values ('qua', '10', 'ELA*', 'BUA', '01.01.2000');
insert into OA1P.tBiParm (type, prio, dbSy, value, installFr)
values ('qua', '10', 'DBAF', 'OA1A', '01.01.2000');
insert into OA1P.tBiParm (type, prio, dbSy, value, installFr)
values ('qua', '10', 'DBTF', 'OA1T', '01.01.2000');
insert into OA1P.tBiParm (type, prio, value, installFr)
values ('colls', '00', '$', '01.01.2000');
insert into OA1P.tBiParm (type, pgm, prio, value, installFr)
with a as
(
select case when left(pgm, 2) = 'YX' then 'YX'
when left(pgm, 2) = 'YY' then 'YY'
when left(pgm, 1) = 'Y' then substr(pgm, 2, 2)
else left(pgm, 2) end q1,
p.*
from (
select appl, pgm, collid from oa1p.bind_parameters
union all select appl, pgm, collid from oa1p.bind_exceptions
) p
where appl <> 'A18Q' and appl <> 'B18Q' and pgm <> 'DEFAULT'
), b as
(
select appl, pgm, count(*) cnt,
sum(case when q1 <> left(collid, 2) then 1 else 0 end) diff,
count(distinct left(collid, 2)) dCol,
q1, min(collid) colFr, max(collid) colTo
from a
group by q1, appl, pgm
having 0 <> sum(case when q1 <> left(collid, 2) then 1 else 0 end)
)
, n as
(
select case
when cnt = 2 and colFr = 'OA1P01'
and colTo ='OA1P02' then 'OA1P-02'
when dCol = 1 and colFr = 'AV01' and cnt = 2 then 'AV-02'
when dCol = 1 and colFr = 'AV01' and cnt > 27 then 'AVALL'
when dCol = 1 and colFr = 'XC00' and cnt = 10 then 'XCALL'
when dCol = 1 then left(colFr, 2)
when dCol = 2 and (('YY' = colFr and left(colTo, 2) = q1)
or ('YY' = colTo and left(colFr, 2) = q1))
then 'YY+'
when dCol = 2 and 'CT' = colFr and left(colTo, 2) = 'CZ'
and q1 = 'CT' then 'CZ+'
else '---'
end new,
b.*
from b
)
select 'colls', pgm, '20', new, '01.01.2000'
from n
;
insert into OA1P.tBiParm (type, prio, pgm, value, installFr)
with b as (
select appl a, pgm p, qualifier q, cF, cT,
row_number() over(partition by appl, pgm
order by appl, pgm, qualifier) r
from (select appl, pgm, qualifier, min(collid) cF, max(collid) cT
from oa1p.bind_parameters
group by appl, pgm, qualifier ) q
)
, r (a, p, q1, q, r, cF, cT) as
(
select a, p, q, varchar(strip(q), 500), 1, cF, cT
from b where r = 1
union all select r.a, r.p, b.q,
r.q || ' ' || strip(b.q), r.r+1,
min(r.cF, b.cF), max(r.cT, b.cT)
from r, b
where r.a = b.a and r.p = b.p and r.r+1 = b.r and r.r < 10000
)
, s as
(
select a, p, max(r) r, min(q1) qF, max(q1) qT,
min(cF) cF, max(cT) cT, max(q) q
from r
group by a, p
-- order by max(r) desc
)
, n as
( select
case when q = 'BUA' then '---'
when p in ('CH0007', 'DB2WK1', 'DBWK1', 'DSNTEP2'
,'YAVFSLN') then '---'
when q = 'OA1$' then '$'
when q = 'OA1$ OA1$01 OA1$02' then '$+02'
when q = 'OA1$01' then '$01'
when cf = 'AV01' and ct = 'AV02' then 'AV-02'
when q = 'OA1$01 OA1$02' then '$-02'
when q = 'OA1$01 OA1$02 OA1$03' then '$-03'
when q = 'OA1$01 OA1$02 OA1$03 OA1$04' then '$-04'
when q = 'OA1$01 OA1$02 OA1$03 OA1$04 OA1$05' then '$-05'
when cF >= 'AV01' and cT <= 'AV10' then 'AV-10'
when cF >= 'AV01' and cT <= 'AV30' and q in
('OA1$01 OA1$02 OA1$03 OA1$21 OA1$22'
,'OA1$01 OA1$02 OA1$03 OA1$28 OA1$29 OA1$30'
,'OA1$01 OA1$02 OA1$09 OA1$10 OA1$28 OA1$29 OA1$30'
,'OA1$28 OA1$29 OA1$30') then 'AV/30'
when cF >= 'AV01' and cT <= 'AV30' and r > 24 then 'AVALL'
when cF >= 'PC01' and cT <= 'PC16' and r > 12 then 'PCALL'
when cF >= 'XC00' and cT <= 'XC09' and r = 10 then 'XCALL'
else '???'
end neu,
s.*
from s
)
select 'colls', '20', p, neu, '01.01.2000'
from n where neu not in ('---', '$')
;
delete from OA1P.tBiPaPgm;
commit;
}¢--- A540769.WK.SQL(BIPA2DDL) cre=2012-06-06 mod=2013-10-24-10.30.11 A540769 ---
set current sqlid = 'S100447';
drop table oa1p.tadm40Pgm;
drop tablespace db2admin.a041a ;
drop tablespace db2admin.a042a ;
drop tablespace db2admin.aBiPaCol;
drop tablespace db2admin.aBiPaOpt;
commit;
create global temporary table oa1p.tadm40Pgm
( appl char(4),
pgm char(8),
install date) ccsid unicode;
CREATE TABLESPACE a041a
IN db2admin
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLESPACE a042a
IN db2admin
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLE oa1p.tAdm41BindKey
( type char(3) not null
, PRIO char(2) NOT NULL
, CONSTRAINT PRIONumeric CHECK
(PRIO between '00' and '99')
, appl CHAR(4) NOT NULL default '%'
, pgm CHAR(8) NOT NULL default '%'
, rz char(3) NOT NULL default '%'
, dbSy char(4) NOT NULL default '%'
, location char(16) NOT NULL default '%'
, key char(10) not null
, installBegin date NOT NULL WITH DEFAULT
, installEnd date NOT NULL WITH DEFAULT '31.12.9999'
, rowBegin not null generated always as row begin implicitly hidden
, rowEnd not null generated always as row end implicitly hidden
, rowtrans not null generated always as transaction start id
implicitly hidden
, period business_time (installBegin, installEnd)
, period system_time (rowBegin, rowEnd)
)
in db2admin.a041a
;
CREATE TABLE oa1p.tadm42BindVal
( type char(3) not null
, key char(10) not null
, seq smallint not null
, va1 char(16) not null
, va2 char(16) not null
, va3 char(16) not null with default
, installBegin date NOT NULL WITH DEFAULT
, installEnd date NOT NULL WITH DEFAULT '31.12.9999'
, rowBegin not null generated always as row begin implicitly hidden
, rowEnd not null generated always as row end implicitly hidden
, rowtrans not null generated always as transaction start id
implicitly hidden
, period business_time (installBegin, installEnd)
, period system_time (rowBegin, rowEnd)
)
in db2admin.a042a
;
CREATE view oa1p.vAdmBindKey as
select k.*,
case when posstr(appl, '%') = 0 then 4 else posstr(appl, '%')-1
end apLe ,
case when posstr(pgm , '%') = 0 then 8 else posstr(pgm , '%')-1
end pgLe
from oa1p.tAdm41BindKey k
;
create view oa1p.vAdmBindKrdl as
select g.*
, case when pgm like 'YY%' then 'YY'
when pgm like 'Y%' then substr(pgm, 2, 2)
else substr(pgm, 1, 2)
end colBa
, (select substr(max(prio || value), 3, 12)
from oa1p.vBiParm p
where p.type = 'path'
and g.install >= p.installFr and g.install < p.installTo
and left(p.appl, p.apLe) = left(g.appl, p.apLe)
and left(p.pgm , p.pgLe) = left(g.pgm, p.pgLe)
) rdl,
from oa1p.tadm40Pgm p
;
commit
;x;
CREATE TABLE oa1p.tBiPath
(
path char(12) not null,
seq smallint not null,
rz char(3) NOT NULL,
dbSy char(4) NOT NULL,
location char(16) NOT NULL default '',
installFr date NOT NULL WITH DEFAULT,
installTo date NOT NULL WITH DEFAULT '31.12.9999' ,
rowChg timestamp not null generated always
for each row on update as row change timestamp
) in db2admin.a042a
;
CREATE view oa1p.vBiPath as
select g.*, a.seq pathSeq, a.rz, a.dbSy, a.location,
( select substr(max(prio || value), 3, 12)
from oa1p.vBiParm p
where p.type = 'colls'
and g.install >= p.installFr and g.install < p.installTo
and left(p.appl, p.apLe) = left(g.appl, p.apLe)
and left(p.pgm , p.pgLe) = left(g.pgm, p.pgLe)
and p.rz in ('*', a.rz )
and p.dbSy in ('*', a.dbSy )
and p.location in ('*', a.location )
) colls,
( select substr(max(prio || value), 3, 12)
from oa1p.vBiParm p
where p.type = 'qua'
and g.install >= p.installFr and g.install < p.installTo
and left(p.appl, p.apLe) = left(g.appl, p.apLe)
and left(p.pgm , p.pgLe) = left(g.pgm, p.pgLe)
and p.rz in ('*', a.rz )
and p.dbSy in ('*', a.dbSy )
and p.location in ('*', a.location )
) quaBa
from oa1p.vBiPaPgm g
join oa1p.tBiPath a
on g.path = a.path
and g.install >= a.installFr and g.install < a.installTo
;
CREATE TABLE oa1p.tBiPaCol
(
colls char(12) not null,
seq smallint not null,
col char(8) NOT NULL,
qua char(8) NOT NULL,
installFr date NOT NULL WITH DEFAULT,
installTo date NOT NULL WITH DEFAULT '31.12.9999',
rowChg timestamp not null generated always
for each row on update as row change timestamp
) in db2admin.aBiPaCol
;
CREATE view oa1p.vBiPaCol as
select h.*, c.seq colSeq,
replace(c.col, $"'$'", strip(h.colBa)) col,
replace(c.qua, $"'$'", strip(h.quaBa)) qua,
( select substr(max(prio || value), 3, 12)
from oa1p.vBiParm p
where p.type = 'opt'
and h.install >= p.installFr and h.install < p.installTo
and left(p.appl, p.apLe) = left(h.appl, p.apLe)
and left(p.pgm , p.pgLe) = left(h.pgm, p.pgLe)
and p.rz in ('*', h.rz )
and p.dbSy in ('*', h.dbSy )
and p.location in ('*', h.location )
) opts
from oa1p.vBiPath h
join oa1p.tBiPaCol c
on h.colls = c.colls
and h.install >= c.installFr and h.install < c.installTo
;
CREATE view oa1p.vBiPaOptRel as
with r (opts, parent, prio, lev, install) as
( select opts, opts, '99', 1, install
from ( select opts, install from oa1p.vBiPaCol
group by opts, install) oo
union all select r.opts, p.value,
right('00' || strip(char(99-lev)), 2), lev+1, install
from r join oa1p.tBiPaOpt p
on r.parent = p.opts and p.key = '-->parent'
and r.install >= p.installFr and r.install < p.installTo
and r.lev < 90
)
select * from r
;
CREATE view oa1p.vBiPaOpt as
with o as (
select r.opts, key, substr(max(prio || value), 3) value,
min(seq) seq, r.install
from oa1p.vBiPaOptRel r
join oa1p.tBiPaOpt o
on r.parent = o.opts
and r.install >= o.installFr and r.install < o.installTo
group by r.opts, r.install, o.key
)
select c.*,
' ' || strip(key) || '(' || strip(value) || ')'
|| case when seq = 9999 then '' else ' -' end opt,
o.seq optSeq
from oa1p.vBiPaCol c join o
on o.opts = c.opts and o.install = c.install
and o.key not like '--%' and o.value <> ''
;
CREATE view oa1p.vBiPaBind (opt, appl, pgm, install, path, colba,
pathSeq, rz, dbSy, location, colls, quaBa,
colSeq, col, qua, opts, optSeq) as
select 'bind package('
|| case when location = '' then ''
else strip(c.location) || '.' end
|| strip(col) || ') -' ,
c.*, -90
from oa1p.vBiPaCol c
union all select ' member(' || strip(pgm) || ') -',
c.*, -80
from oa1p.vBiPaCol c
union all select ' qualifier(' || strip(qua) || ') -',
c.*, -70
from oa1p.vBiPaCol c
union all select opt, appl, pgm, install, path, colba,
pathSeq, rz, dbSy, location, colls, quaBa,
colSeq, col, qua, opts, optSeq
from oa1p.vBiPaOpt
union all select '***: Bind for pgm=' || strip(pgm)
|| ', appl=' || appl
|| ', installDate=' || char(install) ,
appl, pgm, install, '', '',
-32761, '' , '', '', '', '',
0, '', '', 'bindBegin1', 0
from oa1p.tadm40Pgm
union all select '***: oa1p.vBiPaBind at '
|| char(current timestamp)
|| ' on ' || current server,
appl, pgm, install, '', '',
-32760, '', '', '', '', '',
0, '', '', 'bindBegin2', 0
from oa1p.tadm40Pgm
union all select '**** Start of Bind Stmts for ' || strip(rz) || '/'
|| strip(dbSy),
appl, pgm, install, path, '',
min(pathSeq), rz, dbSy, '', '', '',
-32760, '', '', 'dbSyBegin', 0
from oa1p.vBiPaCol c
group by appl, pgm, install, path, rz, dbSy
union all select '**** End of Bind Stmts for ' || strip(rz) || '/'
|| strip(dbSy),
appl, pgm, install, path, '',
max(pathSeq), rz, dbSy, '', '', '',
32760, '', '', 'dbSyEnd', 0
from oa1p.vBiPaCol c
group by appl, pgm, install, path, rz, dbSy
;
commit;
}¢--- A540769.WK.SQL(BIPA2DDV) cre=2013-11-03 mod=2014-07-31-10.29.14 A540769 ---
set current sqlid = 'S100447';
drop view A540769.vAdmBindKey ;
CREATE view A540769.vAdmBindKey as
select k.*,
case when posstr(appl, '%') = 0 then 4 else posstr(appl, '%')-1
end apLe ,
case when posstr(pgm , '%') = 0 then 8 else posstr(pgm , '%')-1
end pgLe
from A540769.tAdm41BindKey k
;
create view A540769.vAdmBindRDL as --- rz dbSys location
with k as
(
select p.*
, case when pgm like 'YY%' then 'YY'
when pgm like 'YX%' then 'YX'
when pgm like 'Y%' then substr(pgm, 2, 2)
else substr(pgm, 1, 2)
end colBa
, ( select substr(max(prio || key), 3)
from A540769.vAdmBindKey k
where k.type = 'rdl'
and p.install >= k.installBegin
and p.install < k.installEnd
and left(p.appl, k.apLe) = left(k.appl, k.apLe)
and left(p.pgm , k.pgLe) = left(k.pgm, k.pgLe)
) rdl
from A540769.tadm40Pgm p
)
select k.*
, case when v.seq is not null then v.seq
else raise_error(77071, 'no bindVal type=rdl key=' || k.rdl
|| ' install=' || char(k.install) || ' pgm=' || k.pgm)
end rdlSeq
, cast(v.va1 as char(3)) rz
, cast(v.va2 as char(4)) dbSy
, v.va3 location
from k left join A540769.tAdm42BindVal v
on v.type = 'rdl' and v.key = k.rdl
and k.install >= v.installBegin and k.install < v.installEnd
;
CREATE view A540769.vAdmBindCQ as --- collection qualifier
with k as
(
select p.*
, ( select substr(max(prio || key), 3, 8)
from A540769.vAdmBindKey q
where q.type = 'q'
and q.installBegin <= p.install
and q.installEnd > p.install
and left(q.appl, q.apLe) = left(p.appl, q.apLe)
and left(q.pgm, q.pgLe) = left(p.pgm , q.pgLe)
and q.rz in ('%', p.rz )
and q.dbSy in ('%', p.dbSy )
and q.location in ('%', p.location )
) quaBa
, ( select substr(max(c.prio || c.key), 3)
from A540769.vAdmBindKey c
where c.type = 'cq'
and c.installBegin <= p.install
and c.installEnd > p.install
and left(c.appl, c.apLe) = left(p.appl, c.apLe)
and left(c.pgm, c.pgLe) = left(p.pgm , c.pgLe)
and c.rz in ('%', p.rz )
and c.dbSy in ('%', p.dbSy )
and c.location in ('%', p.location )
) cq
from A540769.vAdmBindRdl p
)
select k.*
, case when v.seq is not null then v.seq
else raise_error(77071, 'no bindVal type=cq key=' || k.cq
|| ' install=' || char(k.install) || ' pgm=' || k.pgm)
end cqSeq
, cast(replace(v.va1, '$', strip(k.colBa)) as char(8)) col
, cast(replace(v.va2, '$', strip(k.quaBa)) as char(8)) qua
from k left join A540769.tAdm42BindVal v
on v.type = 'cq' and v.key = k.cq
and k.install >= v.installBegin and k.install < v.installEnd
;
CREATE view A540769.vAdmBindOV as --- option and value
with i (inst) as
(
select install from A540769.tAdm40Pgm
group by install
)
, r (inst, key, seq, opt, val, lev) as
( select i.inst, key, seq, VA1, VA2, 1
from i join A540769.tAdm42BindVal v
on i.inst >= v.installBegin and i.inst < v.installEnd
and v.type = 'ov'
union all select r.inst, r.key, v.seq, v.va1, v.va2, lev+1
from r join A540769.tAdm42BindVal v
on r.inst >= v.installBegin and r.inst < v.installEnd
and v.type = 'ov' and v.key = r.val
where r.lev < 99 and r.opt = '-->parent'
)
, v as
(
select r.*, row_number() over(partition by inst, key, opt
order by lev desc) rn
from r
)
, k as
(
select p.*
, ( select substr(max(prio || key), 3, 8)
from A540769.vAdmBindKey q
where q.type = 'ov'
and q.installBegin <= p.install
and q.installEnd > p.install
and left(q.appl, q.apLe) = left(p.appl, q.apLe)
and left(q.pgm, q.pgLe) = left(p.pgm , q.pgLe)
and q.rz in ('%', p.rz )
and q.dbSy in ('%', p.dbSy )
and q.location in ('%', p.location )
) ov
from A540769.vAdmBindCQ p
)
select k.*
, case when v.seq is not null then v.seq
else raise_error(77071, 'no bindVal type=ov key=' || k.cq
|| ' install=' || char(k.install) || ' pgm=' || k.pgm)
end ovSeq
, v.opt, v.val
from k left join v
on k.install = v.inst and k.ov = v.key and v.rn = 1
and v.opt <> '-->parent'
;
CREATE view A540769.vAdmBind as --- bind stmts
with g (appl, pgm, install, colBa
, rdl, rdlSeq, rz, dbSy, location, quaBa
, cq, cqSeq, col, qua) as
(
select appl, pgm, install, min(colBa)
, min(rdl), min(rdlSeq), rz, dbSy, location, min(quaBa)
, min(cq), min(cqSeq), col, min(qua)
from A540769.vAdmBindOV
group by appl, pgm, install, rz, dbSy, location, col
)
, u (appl, pgm, install, colBa
, rdl, rdlSeq, rz, dbSy, location, quaBa
, cq, cqSeq, col, qua
, ov, ovSeq, opt, val) as
(
select * from A540769.vAdmBindOV
union all select g.*, 'b1', -9, 'bind package'
, case when location = '' then col
else strip(col) || ') location(' || location end from g
union all select g.*, 'b1', -6, 'member', pgm from g
union all select g.*, 'b1', -6, 'qualifier', qua from g
)
select cast(case when ovSeq = -9 then '' else ' ' end
|| strip(opt) || '(' || strip(val) || ') '
|| case when ovSeq = 9999 then '' else '-' end
as char(72)) stmt
, u.*
from u
;
CREATE view A540769.vAdmBindDBP as --- bind stmts
with d (appl, pgm, install, colBa
, rdl, rdlSeq, rdlMax, rz, dbSy) as
(
select appl, pgm, install, min(colBa)
, min(rdl), min(rdlSeq), max(rdlSeq), rz, dbSy
from A540769.vAdmBind
group by appl, pgm, install, rz, dbSy
)
, p (appl, pgm, install) as
(
select appl, pgm, install
from d
group by appl, pgm, install
)
, u (stmt, appl, pgm, install, colBa
, rdl, rdlSeq, rz, dbSy, location, quaBa
, cq, cqSeq, col, qua
, ov, ovSeq, opt, val) as
(
select * from A540769.vAdmBind
union all select char('**** appl=' || appl || ' pgm=' || pgm
|| ' install=' || char(install), 80)
, p.*, '', '', -9, '', '', '', '', '', 0, '', ''
, '', 0, '', '' from p
union all select char('**** generated '||char(current timestamp),80)
, p.*, '', '', -8, '', '', '', '', '', 0, '', ''
, '', 0, '', '' from p
union all select char('**** Start of Bind Stmts for '
|| rz || '/' || dbSy, 80)
,appl, pgm, install, colBa, rdl, rdlSeq, rz, dbSy, '', ''
, '', -9, '', '', '', 0, '', '' from d
union all select char('**** End of Bind Stmts for '
|| rz || '/' || dbSy, 80)
, appl, pgm, install, colBa, rdl, rdlMax, rz, dbSy, '', ''
, '', 999999, '', '', '', 0, '', '' from d
)
select * from u
;x;
with i (inst) as
join A540769.tBiPath a
on g.path = a.path
and g.install >= a.installFr and g.install < a.installTo
;
( select substr(max(prio || value), 3, 12)
from A540769.vBiParm p
where p.type = 'colls'
and g.install >= p.installFr and g.install < p.installTo
and left(p.appl, p.apLe) = left(g.appl, p.apLe)
and left(p.pgm , p.pgLe) = left(g.pgm, p.pgLe)
and p.rz in ('*', a.rz )
and p.dbSy in ('*', a.dbSy )
and p.location in ('*', a.location )
) colls,
( select substr(max(prio || value), 3, 12)
from A540769.vBiParm p
where p.type = 'qua'
and g.install >= p.installFr and g.install < p.installTo
and left(p.appl, p.apLe) = left(g.appl, p.apLe)
and left(p.pgm , p.pgLe) = left(g.pgm, p.pgLe)
and p.rz in ('*', a.rz )
and p.dbSy in ('*', a.dbSy )
and p.location in ('*', a.location )
) quaBa
CREATE TABLE A540769.tBiPaCol
(
colls char(12) not null,
seq smallint not null,
col char(8) NOT NULL,
qua char(8) NOT NULL,
installFr date NOT NULL WITH DEFAULT,
installTo date NOT NULL WITH DEFAULT '31.12.9999',
rowChg timestamp not null generated always
for each row on update as row change timestamp
) in db2admin.aBiPaCol
;
CREATE view A540769.vBiPaCol as
select h.*, c.seq colSeq,
replace(c.col, $"'$'", strip(h.colBa)) col,
replace(c.qua, $"'$'", strip(h.quaBa)) qua,
( select substr(max(prio || value), 3, 12)
from A540769.vBiParm p
where p.type = 'opt'
and h.install >= p.installFr and h.install < p.installTo
and left(p.appl, p.apLe) = left(h.appl, p.apLe)
and left(p.pgm , p.pgLe) = left(h.pgm, p.pgLe)
and p.rz in ('*', h.rz )
and p.dbSy in ('*', h.dbSy )
and p.location in ('*', h.location )
) opts
from A540769.vBiPath h
join A540769.tBiPaCol c
on h.colls = c.colls
and h.install >= c.installFr and h.install < c.installTo
;
CREATE view A540769.vBiPaOptRel as
with r (opts, parent, prio, lev, install) as
( select opts, opts, '99', 1, install
from ( select opts, install from A540769.vBiPaCol
group by opts, install) oo
union all select r.opts, p.value,
right('00' || strip(char(99-lev)), 2), lev+1, install
from r join A540769.tBiPaOpt p
on r.parent = p.opts and p.key = '-->parent'
and r.install >= p.installFr and r.install < p.installTo
and r.lev < 90
)
select * from r
;
CREATE view A540769.vBiPaOpt as
with o as (
select r.opts, key, substr(max(prio || value), 3) value,
min(seq) seq, r.install
from A540769.vBiPaOptRel r
join A540769.tBiPaOpt o
on r.parent = o.opts
and r.install >= o.installFr and r.install < o.installTo
group by r.opts, r.install, o.key
)
select c.*,
' ' || strip(key) || '(' || strip(value) || ')'
|| case when seq = 9999 then '' else ' -' end opt,
o.seq optSeq
from A540769.vBiPaCol c join o
on o.opts = c.opts and o.install = c.install
and o.key not like '--%' and o.value <> ''
;
CREATE view A540769.vBiPaBind (opt, appl, pgm, install, path, colba,
pathSeq, rz, dbSy, location, colls, quaBa,
colSeq, col, qua, opts, optSeq) as
select 'bind package('
|| case when location = '' then ''
else strip(c.location) || '.' end
|| strip(col) || ') -' ,
c.*, -90
from A540769.vBiPaCol c
union all select ' member(' || strip(pgm) || ') -',
c.*, -80
from A540769.vBiPaCol c
union all select ' qualifier(' || strip(qua) || ') -',
c.*, -70
from A540769.vBiPaCol c
union all select opt, appl, pgm, install, path, colba,
pathSeq, rz, dbSy, location, colls, quaBa,
colSeq, col, qua, opts, optSeq
from A540769.vBiPaOpt
union all select '***: Bind for pgm=' || strip(pgm)
|| ', appl=' || appl
|| ', installDate=' || char(install) ,
appl, pgm, install, '', '',
-32761, '' , '', '', '', '',
0, '', '', 'bindBegin1', 0
from A540769.tadm40Pgm
union all select '***: A540769.vBiPaBind at '
|| char(current timestamp)
|| ' on ' || current server,
appl, pgm, install, '', '',
-32760, '', '', '', '', '',
0, '', '', 'bindBegin2', 0
from A540769.tadm40Pgm
union all select '**** Start of Bind Stmts for ' || strip(rz) || '/'
|| strip(dbSy),
appl, pgm, install, path, '',
min(pathSeq), rz, dbSy, '', '', '',
-32760, '', '', 'dbSyBegin', 0
from A540769.vBiPaCol c
group by appl, pgm, install, path, rz, dbSy
union all select '**** End of Bind Stmts for ' || strip(rz) || '/'
|| strip(dbSy),
appl, pgm, install, path, '',
max(pathSeq), rz, dbSy, '', '', '',
32760, '', '', 'dbSyEnd', 0
from A540769.vBiPaCol c
group by appl, pgm, install, path, rz, dbSy
;
commit;
}¢--- A540769.WK.SQL(BIPA2MIG) cre=2013-11-03 mod=2013-11-03-08.11.49 A540769 ---
-- insert into OA1P.tAdm41BindKey (type, pgm, prio, key, installBegin)
with p as --- mark outdated entries in bind_parameters ----------------
(
select p.*
, row_number() over (partition by appl, pgm, collid
order by installdate desc) iNr
from oa1p.bind_parameters p
where appl <> 'A18Q' and appl <> 'B18Q'
and pgm not in ('DEFAULT', 'DBWK1', 'DB2WK1', 'DB2JAA'
)
and collid not in ('DI_DRDA', 'EK_DRDA', 'RM_DRDA', 'TR_DRDA')
)
, a as --- left join old tables ----------------------------------------
(
select value(p.appl , e.appl) appl
, value(p.pgm , e.pgm ) pgm
, value(p.collid, e.collid) col
, value(p.installdate, e.installdate) installDate
, value(p.qualifier, '') pQua
, value(e.qualifier, '') eQua
, value(e.ssid, '') eDbSy
, value(e.location, '') eLoc
from p left join oa1p.bind_exceptions e
on p.appl = e.appl
and p.pgm = e.pgm
and p.collid = e.collid
and p.installdate = e.installdate
where p.iNr = 1
)
, b as --- add default Qualifier and Collection
(
select a.*
, case when appl like 'ELA%' then 'BUA' else 'OA1$' end quaVar
, case when appl like 'ELA%' then 'BUA'
when eDbSy = 'DBAF' then 'OA1A'
when eDbSy = 'DBTF' then 'OA1T'
else 'OA1P' end quaDef
, case when left(pgm, 2) = 'YX' then 'YX'
when left(pgm, 2) = 'YY' then 'YY'
when left(pgm, 1) = 'Y' then substr(pgm, 2, 2)
else left(pgm, 2) end colDef
, row_number() over(partition by appl, pgm, eDbSy, eLoc
order by col) r
from a
)
, d as --- add qualifier ----------------------------------------------
(
select b.*
, case when eQua is not null and eQua <> '' then eQua
when pQua is not null and pQua <> '' then pQua
else raise_error(77001, pgm || ': no qua')
end qua
from b
)
, e --- recursive build lists of colls/quals --------------------------
( appl, pgm, col, installdate, eDbSy, eLoc
, quaVar, quaDef, colDef, r, qua, quals, colls) as
(
select appl, pgm, col, installdate, eDbSy, eLoc
, quaVar, quaDef, colDef, r, qua
, cast(strip(qua) as varchar(1000))
, cast(strip(col) as varchar(1000))
from d where r = 1
union all select e.appl, e.pgm, d.col, e.installdate
, e.eDbSy, e.eLoc, d.quaVar, d.quaDef, d.colDef, e.r+1, d.qua
, e.quals || ' ' || strip(d.qua)
, e.colls || ' ' || strip(d.col)
from e join d
on e.appl = d.appl and e.pgm = d.pgm
and e.eDbSy = d.edbSy
and e.eLoc = d.eLoc and e.r + 1 = d.r and e.r < 999
)
, f as --- select maximal lists ----------------------------------------
(
select appl, pgm, max(installdate) installDate, eDbSy, eLoc
, min(col) colFr, max(col) colTo
, min(colDef) colDef
, min(qua) quaFr, max(qua) quaTo
, min(quaVar) quaVar, max(quaVar) quaVarMax
, min(quaDef) quaDef, max(quaDef) quaDefMax
, max(r) r
, max(quals) quals
, max(colls) colls
from e
group by appl, pgm, eDbSy, eLoc
)
, g1 as --- special quals ---------------------------------------------
(
select f.*
, case when quaDef <> quaDefMax
then raise_error(77031, pgm || '@' || eDbSy
|| ' quaDef ' || quaDef || ' ==> ' || quaDefMax)
when quaDef in ('OA1A', 'OA1T', 'OA1P')
then replace(quals, quaDef, 'OA1$') else quals end qualD
, case when eDbSy = 'DBBA'
then replace(quals, 'OA1A', 'OA1&')
when eDbSy = 'DVTB'
then replace(quals, 'OA1T', 'OA1&')
else replace(replace(quals, quaDef, 'OA1&')
, 'OA1$', 'OA1&') end qualV
from f
)
, g as --- group over all dbSys/Location -----------------------------
(
select appl, pgm, max(installdate) installDate
, min(colFr) colFr
, max(colTo) colTo
, min(colDef) colDef, max(colDef) colDefMax
, min(colls) colls, max(colls) collMax
, min(quaFr) quaFr
, max(quaTo) quaTo
, min(quaVar) quaVar, max(quaVarMax) quaVarMax
, min(quals) quals, max(quals) qualMax
, min(qualD) qualD, max(qualD) quaDMax
, min(qualV) qualV, max(qualV) quaVMax
, count(*) gR
from g1
group by appl, pgm
)
, h2 as --- check wether no bad change within dbSys/Location ----------
(
select appl, pgm, installDate, colFr, colTo, colDef
, quaVar, quaFr, quaTo, colls
, case when colDef <> colDefMax
then raise_error(77011, pgm || ' colDef '
|| colDef || ' ==> ' || colDefMax)
when colls <> collMax
then raise_error(77013, pgm || ' colls '
|| colls || ' ==> ' || collMax)
when quaVar <> quaVarMax
then raise_error(77032, pgm
|| ' quaVar ' || quaVar || ' ==> ' || quaVarMax)
when quals = qualMax then quals
when qualD = quaDMax then qualD
when qualV = quaVMax then qualV
else raise_error(77022, pgm
|| ' quals ' || quals || ' ==> ' || qualMax
|| ' qualD ' || qualD || ' ==> ' || quaDMax
|| ' qualV ' || qualV || ' ==> ' || quavMax)
end quals
from g
)
, h as --- colls und quals komprimieren --------------------------------
(
select h2.*
, replace(colls, ' ' || left(colls, 2), '=') collR
, replace(quals, ' ' || left(quals, 4), '=') qualR
from h2
)
, i as --- den neuen cq key bestimmen ----------------------------------
(
select h.*
, cast(case --- default
when colls = colDef and quals = quaVar then '-'
--- spezial: colls und quals nicht in sync --------
--- au
when quals = 'OA1&' and colls = 'AU' then 'AU&'
--- av
when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
and qualR='OA1$01=02=03=09=09=09=09=09=10=09=09=09=09=09'
|| '=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09'
then 'AV/Y/X012'
when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
and qualR='OA1$01=02=03=05=06=07=08=09=10=11=12=12=12=12'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
then 'AV/Y/0129'
when collR = 'AV01=02' and qualR = 'OA1$01=01'
then 'AV0101'
when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
and qualR='OA1$02=02=03=05=06=07=08=09=10=11=12=13=14=15'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
then 'AV/Y/CPID'
when collR = 'AV' and quals = 'OA1P12' then 'AV12'
--- be
when collR = 'BE=01=02=03=04' and qualR = 'OA1$01=01=02=03=04'
then 'BE+04'
when colls = 'CT CZ' and qualR = 'OA1$=' then 'CTCZ' --- ctcz
when colls = coldef ||' YY' and qualR = 'OA1$=' --- + yy
then 'YY+'
when colls = 'OA1P01 OA1P02' and qualR = 'OA1$01=02' --- oa1p
then 'OA1P-02'
--- allgemei
when quals = 'OA1&' and colls = colDef then 'DVTB&'
when quals = 'OA1A' and colls = colDef then 'OA1A'
--- error if colls und quals nicht in sync--------
when 'OA1$' || substr(collR, 3) <> qualR --en '???quals/coll'
then raise_error(77021, pgm || ' colls ' || collR
|| ' mismatches quals ' || qualR)
--- av
when right(collR, 83) = '05=06=07=08=09=10=11=12=13=14=15=16'
|| '=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
and left(collR, 14) in ('AV01=02=03=05='
, 'AV01=02=05=06=', 'AV05=06=07=08=' )
then 'AVALL'
when collR in ('AV01=02=03', 'AV01=02','AV03') then 'AV-03'
when collR in ('AV01=02=03=05=06=07=08=09=10'
,'AV01=02=03=28=29=30=31=32'
,'AV01=02=09=10=28=29=30=31=32'
,'AV28=29=30=31=32') then 'AV-10-32'
when collR = 'AV01=02=03=21=22' then 'AV-03-22'
when collR = 'BE01=02=03=04' then 'BE-04' --- be
when collR = 'NI01=02' then 'NI-02' --- ni
when collR = 'NI=01=02' then 'NI+02'
when collR in ('PC01=02', 'PC01') then 'PC-02' --- pc
when collR in
('PC01=02=03=04=05=06=07=08=09=10=11=12=13=14=15=16'
,'PC01=02=03=04=05=06=07=08=09=10=11=13=14=15=16')
then 'PCALL'
--- xc
when collR = 'XC00=01=02=03=04=05=06=07=08=09' then 'XCALL'
--- allgemei
when colls in ('BE', 'CD', 'KE') then colls
else '???'
end as char(10)) cq
from h
)
select count(*), cq, collr, qualr
from i -- where cq like 'OA1P-0%' ;
group by cq, collr, qualr
order by cq, collr, qualr
;x;
select 'cq', pgm, '20', cq, installDate
from i
where cq <> '-'
order by cq
;x;
----- val ov: bindOptions values --------------------------------------
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 110, 'OWNER', 'CMNBATCH','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 210, 'ISOLATION', 'CS','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 220, 'DEGREE', '1','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 310, 'DYNAMICRULES', 'BIND','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 320, 'VALIDATE', 'BIND','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 910, 'EXPLAIN', 'YES','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 920, 'FLAG', 'I','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 930, 'SQLERROR', 'NOPACKAGE','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 9999, 'ACTION', 'REPLACE','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'degAny', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'degAny', 220, 'DEGREE', 'ANY','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'valRun', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'valRun', 320, 'VALIDATE', 'RUN' ,'01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'optHBD1',-9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'optHBD1', 330, 'OPTHINT', 'HBD1','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'optOH', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'optOH', 330, 'OPTHINT', 'OH' ,'01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'reoAlw', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'reoAlw', 340, 'REOPT', 'ALWAYS','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'dynRun', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'dynRun', 310, 'DYNAMICRULES', 'RUN','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'dynValRun',-9999,'-->parent','dynRun', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'dynValRun',-9999,'-->parent','valRun', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'relDea', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'relDea', 230, 'RELEASE', 'DEALLOCATE','01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, appl, pgm, rz, dbSy,
key, installBegin)
values('ov', '00', '%', '%', '%', '%', '%', 'default',
'01.01.2000')
;
insert into OA1P.tAdm41BindKey (type, prio, appl, pgm, rz, dbSy,
key, installBegin)
with n as
( select APPL
, PGM
, COLLID
, INSTALLDATE
,case when OWNER <> '' then owner else null end owner
,case when QUALIFIER <> '' then QUALIFIER else null end QUALIFIER
,case when ISOLATION <> '' then ISOLATION else null end ISOLATION
,case when EXPLAIN <> '' then EXPLAIN else null end EXPLAIN
,case when CURRENTDATA <> '' then CURRENTDATA else null end CURRENTDATA
,case when RELEASE <> '' then RELEASE else null end RELEASE
,case when DBPROTOCOL <> '' then DBPROTOCOL else null end DBPROTOCOL
,case when DEGREE <> '' then DEGREE else null end DEGREE
,case when DYNAMICRULES <> '' then DYNAMICRULES else null end
DYNAMICRULES
,case when KEEPDYNAMIC <> '' then KEEPDYNAMIC else null end KEEPDYNAMIC
,case when REOPT <> '' then REOPT else null end REOPT
,case when OPTHINT <> '' then OPTHINT else null end OPTHINT
,case when IMMEDWRITE <> '' then IMMEDWRITE else null end IMMEDWRITE
,case when FLAG <> '' then FLAG else null end FLAG
,case when PATH <> '' then PATH else null end PATH
,case when VALIDATE <> '' then VALIDATE else null end VALIDATE
,case when SQLERROR <> '' then SQLERROR else null end SQLERROR
,case when SQLRULES <> '' then SQLRULES else null end SQLRULES
,case when DEFER <> '' then DEFER else null end DEFER
,case when ENCODING <> '' then ENCODING else null end ENCODING
,case when ROUNDING <> '' then ROUNDING else null end ROUNDING
from oa1p.bind_parameters
)
, d as
( select
case when s.pgm <> 'DEFAULT' then 's' else ' ' end
|| case when a.appl <> 'DEFAULT' then 'a' else ' ' end
|| case when d.appl is null then ' ' else 'd' end sad
--alue(s.$ ,a.$ ,d.$ ) $
,value(s.APPL ,a.APPL ,d.APPL ) APPL
,value(s.PGM ,a.PGM ,d.PGM ) PGM
,value(s.COLLID ,a.COLLID ,d.COLLID ) COLLID
,value(s.INSTALLDATE ,a.INSTALLDATE ,d.INSTALLDATE ) INSTALLDATE
,value(s.OWNER ,a.OWNER ,d.OWNER ) OWNER
,value(s.QUALIFIER ,a.QUALIFIER ,d.QUALIFIER ) QUALIFIER
,value(s.ISOLATION ,a.ISOLATION ,d.ISOLATION ) ISOLATION
,value(s.EXPLAIN ,a.EXPLAIN ,d.EXPLAIN ) EXPLAIN
,value(s.CURRENTDATA ,a.CURRENTDATA ,d.CURRENTDATA ) CURRENTDATA
,value(s.RELEASE ,a.RELEASE ,d.RELEASE ) RELEASE
,value(s.DBPROTOCOL ,a.DBPROTOCOL ,d.DBPROTOCOL ) DBPROTOCOL
,value(s.DEGREE ,a.DEGREE ,d.DEGREE ) DEGREE
,value(s.DYNAMICRULES,a.DYNAMICRULES,d.DYNAMICRULES) DYNAMICRULES
,value(s.KEEPDYNAMIC ,a.KEEPDYNAMIC ,d.KEEPDYNAMIC ) KEEPDYNAMIC
,value(s.REOPT ,a.REOPT ,d.REOPT ) REOPT
,value(s.OPTHINT ,a.OPTHINT ,d.OPTHINT ) OPTHINT
,value(s.IMMEDWRITE ,a.IMMEDWRITE ,d.IMMEDWRITE ) IMMEDWRITE
,value(s.FLAG ,a.FLAG ,d.FLAG ) FLAG
,value(s.PATH ,a.PATH ,d.PATH ) PATH
,value(s.VALIDATE ,a.VALIDATE ,d.VALIDATE ) VALIDATE
,value(s.SQLERROR ,a.SQLERROR ,d.SQLERROR ) SQLERROR
,value(s.SQLRULES ,a.SQLRULES ,d.SQLRULES ) SQLRULES
,value(s.DEFER ,a.DEFER ,d.DEFER ) DEFER
,value(s.ENCODING ,a.ENCODING ,d.ENCODING ) ENCODING
,value(s.ROUNDING ,a.ROUNDING ,d.ROUNDING ) ROUNDING
from n s
left join n a
on a.appl = s.appl and a.pgm = 'DEFAULT'
and a.collid = 'DEFAULT'
left join oa1p.bind_parameters d
on d.appl = 'DEFAULT' and d.pgm = 'DEFAULT'
and d.collid = 'DEFAULT'
)
, e as
(
select
left(release, 4) || left(degree, 4) || left(dynamicRules, 4)
|| left(reopt, 4) || left(opthint, 4) || left(validate, 4) comb,
d.*
from d
)
, f as
( select case
when comb = ' ANY BIND BIND' then 'degAny '
when comb = ' 1 BIND BIND' then 'default '
when comb = ' 1 BIND RUN ' then 'valRun '
when comb = ' 1 BIND HBD1BIND' then 'optHBD1 '
when comb = ' 1 BIND OH BIND' then 'optOH '
when comb = ' 1 BINDALWA BIND' then 'reoAlw '
when comb = ' 1 RUN BIND' then 'dynRun '
when comb = ' 1 RUN RUN ' then 'dynValRun'
when comb = 'DEAL1 BIND BIND' then 'relDea '
else '$$$' end neu,
e.*
from e
)
select 'opt' type
, case when pgm <> 'DEFAULT' then '20'
else '10' end prio
, left(case when appl = 'DEFAULT' or pgm <> 'DEFAULT'
then '%' else appl end, 4) appl
, case when pgm = 'DEFAULT' then '%' else pgm end pgm
, '%' rz
, '%' dbSy
, '%' location
, neu key
, installDate installBegin
-- , f.*
from f
where appl not like 'A18Q%'
and neu <> 'default'
;
insert into OA1P.tAdm41BindKey (type, prio, key, installBegin)
values ('path', '00', 'DBOF', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, appl, key, installBegin)
values ('path', '00', 'ELA%', 'DVBP', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, pgm, key, installBegin)
with a as
(
select appl a, pgm p , collid c, date(createdTS) r,
strip(ssid) || '>' || strip(location) || '-' || strip(qualifier) t
from oa1p.bind_exceptions
where ssid <> 'DAEG'
)
, b as
( select a, p, c, r,
row_number() over(partition by a, p, c
order by t) l,
t
from a
)
, c (a, p, c, r, l, t, u) as
( select a, p, c, r, 1, t, varchar(t, 2000) from b where l = 1
union all select c.a, c.p, c.c, min(c.r, b.r),
c.l+1, b.t, c.u || ' ' || b.t
from b, c
where b.a = c.a and b.p = c.p and b.c = c.c and b.l = c.l+1
and c.l < 100
)
, d as
(
select a, p, c, min(r) r, max(l) l, min(t) tFr, max(t) tTo, max(u) t
from c
group by a, p, c
)
, e as
( select
case when a in ('A18Q', 'DBTST', 'DB2J') then '-'
when p = 'AU5070' or p like 'YAU03%' then 'DBOF>DVBP'
when p = 'YCDPUT2' then '-'
when l = 12 and tFr = 'DBBA>-OA1A'
and left(tTo, 17) = 'DVTB>CHSKA000DBTF' then 'DVBP>DBOF'
when l > 4 and tFr = 'DBAF>-OA1A'
and tTo = 'DBTF>CHSKA000DVTB-OA1T' then 'DBOF>DVBP'
when t = 'DBOF>-OA1P DBOF>CHSKA000DBOL-OA1P' then 'DBOF>DBOL'
else '???'
end n,
d.* from d
)
select 'path', '20', p, n, r
from e where n <> '-'
;
delete from OA1P.tBiPaPgm;
commit;
select appl, pgm, collid, ssid, min(qualifier), max(qualifier)
, count(*), sum(case when location = '' then 1 else 0 end) loc
from oa1p.bind_exceptions e
group by appl, pgm, collid, ssid
having min(qualifier) <> max(qualifier)
;x;
}¢--- A540769.WK.SQL(BIPA2MI2) cre=2013-11-03 mod=2013-11-03-11.29.38 A540769 ---
delete from OA1P.tAdm42BindVal;
delete from OA1P.tAdm41BindKey ;
----- val rdl = rz db2system location ----------------------------------
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
values('rdl', 'DBOF', '01.01.2000', 20, 'RZ1', 'DBAF') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
values('rdl', 'DBOF', '01.01.2008', 22, 'RZ8', 'DC0G') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
values('rdl', 'DBOF', '01.01.2000', 40, 'RZ1', 'DBTF') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
values('rdl', 'DBOF', '01.01.2008', 42, 'RZ8', 'DD0G') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
values('rdl', 'DBOF', '01.01.2008', 44, 'RZZ', 'DE0G') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
values('rdl', 'DBOF', '01.01.2000', 60, 'RR2', 'DBOF') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
values('rdl', 'DBOF', '01.01.2000', 80, 'RZ2', 'DBOF') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
values('rdl', 'DVBP', '01.01.2012', 22, 'RZ8', 'DCVG') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
values('rdl', 'DVBP', '01.01.2000', 40, 'RZ1', 'DVTB') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
values('rdl', 'DVBP', '01.01.2008', 42, 'RZ8', 'DDVG') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
values('rdl', 'DVBP', '01.01.2008', 44, 'RZZ', 'DEVG') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
values('rdl', 'DVBP', '01.01.2000', 60, 'RR2', 'DVBP') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
values('rdl', 'DVBP', '01.01.2000', 80, 'RZ2', 'DVBP') ;
insert into OA1P.tAdm42BindVal
(type, key, installBegin, seq, va1, va2)
select type, 'DBOF>DVBP', installBegin, seq, va1, va2
from OA1P.tAdm42BindVal where type = 'rdl' and key = 'DBOF';
insert into OA1P.tAdm42BindVal
(type, key, installBegin, seq, va1, va2)
select type, 'DBOF>DVBP', installBegin, seq+1, va1, va2
from OA1P.tAdm42BindVal where type = 'rdl' and key = 'DBOF';
update OA1P.tAdm42BindVal set va3 = 'CHROI000DCVG'
where type = 'rdl' and key = 'DBOF>DVBP' and seq = 23;
update OA1P.tAdm42BindVal set va3 = 'CHSKA000DVTB'
where type = 'rdl' and key = 'DBOF>DVBP' and seq = 41;
update OA1P.tAdm42BindVal set va3 = 'CHROI000DDVG'
where type = 'rdl' and key = 'DBOF>DVBP' and seq = 43;
update OA1P.tAdm42BindVal set va3 = 'CHROI00ZDEVG'
where type = 'rdl' and key = 'DBOF>DVBP' and seq = 45;
update OA1P.tAdm42BindVal set va3 = 'CHSKA000DVBP'
where type = 'rdl' and key = 'DBOF>DVBP' and seq = 61;
update OA1P.tAdm42BindVal set va3 = 'CHSKA000DVBP'
where type = 'rdl' and key = 'DBOF>DVBP' and seq = 81;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
select type, 'DBOF>DBOL', seq, va1, va2, installBegin
from OA1P.tAdm42BindVal where type = 'rdl' and key = 'DBOF';
insert into OA1P.tAdm42BindVal
(type, key, seq, va1, va2, va3, installBegin)
values('rdl', 'DBOF>DBOL', 81, 'RZ2', 'DBOF','CHSKA000DBOL'
, '01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
select type, 'DVBP>DBOF', installBegin, seq, va1, va2
from OA1P.tAdm42BindVal where type = 'rdl' and key = 'DVBP';
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
select type, 'DVBP>DBOF', installBegin, seq+1, va1, va2
from OA1P.tAdm42BindVal where type = 'rdl' and key = 'DVBP';
update OA1P.tAdm42BindVal set va3 = 'CHROI000DC0G'
where type = 'rdl' and key = 'DVBP>DBOF' and seq = 23;
update OA1P.tAdm42BindVal set va3 = 'CHSKA000DBTF'
where type = 'rdl' and key = 'DVBP>DBOF' and seq = 41;
update OA1P.tAdm42BindVal set va3 = 'CHROI000DD0G'
where type = 'rdl' and key = 'DVBP>DBOF' and seq = 43;
update OA1P.tAdm42BindVal set va3 = 'CHROI00ZDE0G'
where type = 'rdl' and key = 'DVBP>DBOF' and seq = 45;
update OA1P.tAdm42BindVal set va3 = 'CHSKA000DBOF'
where type = 'rdl' and key = 'DVBP>DBOF' and seq = 61;
update OA1P.tAdm42BindVal set va3 = 'CHSKA000DBOF'
where type = 'rdl' and key = 'DVBP>DBOF' and seq = 81;
----- key rdl = rz db2system location ----------------------------------
insert into OA1P.tAdm41BindKey (type, prio, key, installBegin)
values ('rdl', '00', 'DBOF', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, appl, key, installBegin)
values ('rdl', '00', 'ELA%', 'DVBP', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, pgm, key, installBegin)
with a as
(
select appl a, pgm p , collid c, date(createdTS) r,
strip(ssid) || '>' || strip(location) || '-' || strip(qualifier) t
from oa1p.bind_exceptions
where ssid <> 'DAEG'
)
, b as
( select a, p, c, r,
row_number() over(partition by a, p, c
order by t) l,
t
from a
)
, c (a, p, c, r, l, t, u) as
( select a, p, c, r, 1, t, varchar(t, 2000) from b where l = 1
union all select c.a, c.p, c.c, min(c.r, b.r),
c.l+1, b.t, c.u || ' ' || b.t
from b, c
where b.a = c.a and b.p = c.p and b.c = c.c and b.l = c.l+1
and c.l < 100
)
, d as
(
select a, p, c, min(r) r, max(l) l, min(t) tFr, max(t) tTo, max(u) t
from c
group by a, p, c
)
, e as
( select
case when a in ('A18Q', 'DBTST', 'DB2J') then '-'
when p = 'AU5070' or p like 'YAU03%' then 'DBOF>DVBP'
when p = 'YCDPUT2' then '-'
when l = 12 and tFr = 'DBBA>-OA1A'
and left(tTo, 17) = 'DVTB>CHSKA000DBTF' then 'DVBP>DBOF'
when l > 4 and tFr = 'DBAF>-OA1A'
and (tTo = 'DBTF>CHSKA000DVTB-OA1T'
or tTo like 'DE0G>CH%DEVG-OA1P') then 'DBOF>DVBP'
when t = 'DBOF>-OA1P DBOF>CHSKA000DBOL-OA1P' then 'DBOF>DBOL'
else '???'
end n,
d.* from d
)
select 'rdl', '20', p, n, r --- , l, tFr, tTo, t
from e where n <> '-'
;
----- key q: base qualifier ----(no val|) ------------------------------
insert into OA1P.tAdm41BindKey (type, prio, key, installBegin)
values ('q', '00', 'OA1P', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, appl, key, installBegin)
values ('q', '02', 'ELA%', 'BUA', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, dbSy, key, installBegin)
values ('q', '05', 'DBAF', 'OA1A', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, dbSy, key, installBegin)
values ('q', '05', 'DBTF', 'OA1T', '01.01.2000');
----- val cq: collection qualifier ------------------------------------
declare global temporary table session.i
(i int not null, c2 char(2) not null) ccsid unicode;
insert into session.i
select i, right('0000' || strip(char(i)), 2) c2
from (select row_number() over() -1 i
from sysibm.sysColumns fetch first 100 rows only)s
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('cq', '$', 1, '$', '$', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
select 'cq', 'AV-03', i, 'AV' || c2, '$' || c2, '01.01.2000'
from session.i where i > 0 and i <= 3
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
select 'cq', 'AV-03-22', i, 'AV' || c2, '$' || c2, '01.01.2000'
from session.i where i in (1, 2, 3, 21, 22)
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
select 'cq', 'AV-10-32', i, 'AV' || c2, '$' || c2, '01.01.2000'
from session.i where i in(1,2,3,5,6,7,8,9,10,28,29,30,31,32)
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
select 'cq', 'AVALL', i, 'AV' || c2, '$' || c2, '01.01.2000'
from session.i where i > 0 and i <= 32 and i <> 4
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('cq', 'AV0101', 1, 'AV01', '$01', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('cq', 'AV0101', 1, 'AV02', '$01', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('cq', 'AV12', 1, 'AV', '$12', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
select 'cq', 'BE-04', i, 'BE' || c2, '$' || c2, '01.01.2000'
from session.i where i > 0 and i <= 4
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('cq', 'BE+04', 0, 'BE', '$', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
select 'cq', 'BE+04', i, 'BE' || c2, '$' || c2, '01.01.2000'
from session.i where i > 0 and i <= 4
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('cq', 'CD', 1, 'CD', '$', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('cq', 'CTCZ', 1, 'CT', '$', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('cq', 'CTCZ', 2, 'CZ', '$', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('cq', 'KE', 1, 'KE', '$', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('cq', 'NI-02', 2, 'NI01', '$01', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('cq', 'NI-02', 3, 'NI02', '$02', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('cq', 'NI+02', 0, 'NI', '$', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('cq', 'NI+02', 1, 'NI01', '$01', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('cq', 'NI+02', 2, 'NI02', '$02', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
select 'cq', 'PC-02', i, 'PC' || c2, '$' || c2, '01.01.2000'
from session.i where i > 0 and i <= 2
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
select 'cq', 'PCALL', i, 'PC' || c2, '$' || c2, '01.01.2000'
from session.i where i > 0 and i <= 16
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
select 'cq', 'XCALL', i, 'XC' || c2, '$' || c2, '01.01.2000'
from session.i where i >= 0 and i <= 9
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('cq', 'YY+', 1, '$', '$', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('cq', 'YY+', 10, 'YY', '$', '01.01.2000');
----- key cq: collection qualifier ------------------------------------
insert into OA1P.tAdm41BindKey (type, pgm, prio, key, installBegin)
values('cq', '%', '00', '$', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, pgm, prio, key, installBegin)
with a as --- left join old tables -------------------------------------
(
select value(p.appl , e.appl) appl
, value(p.pgm , e.pgm ) pgm
, value(p.collid, e.collid) col
, value(p.installdate, e.installdate) installDate
, value(p.qualifier, '') pQua
, value(e.qualifier, '') eQua
, value(e.ssid, '') eDbSy
, value(e.location, '') eLoc
from oa1p.bind_parameters p left join oa1p.bind_exceptions e
on p.appl = e.appl
and p.pgm = e.pgm
and p.collid = e.collid
and p.installdate = e.installdate
)
, b as --- add default Qualifier and Collection
(
select a.*
, case when appl like 'ELA%' then 'BUA' else 'OA1$' end quaVar
, case when appl like 'ELA%' then 'BUA'
when eDbSy = 'DBAF' then 'OA1A'
when eDbSy = 'DBTF' then 'OA1T'
else 'OA1P' end quaDef
, case when left(pgm, 2) = 'YX' then 'YX'
when left(pgm, 2) = 'YY' then 'YY'
when left(pgm, 1) = 'Y' then substr(pgm, 2, 2)
else left(pgm, 2) end colDef
, row_number() over(partition by appl, pgm, eDbSy, eLoc
order by col) r
from a
where appl <> 'A18Q' and appl <> 'B18Q'
and pgm not in ('DEFAULT', 'DBWK1', 'DB2WK1'
-- ,'YAVCPID', 'YAVX012', 'YAV0129', 'NI8340'
-- ,'NI8660', 'NI6880')
)
and col not in ('DI_DRDA', 'EK_DRDA', 'RM_DRDA', 'TR_DRDA')
)
, d as --- add qualifier ----------------------------------------------
(
select b.*
, case when eQua is not null and eQua <> '' then eQua
when pQua is not null and pQua <> '' then pQua
else raise_error(77001, pgm || ': no qua')
end qua
from b
)
, e --- recursive build lists of colls/quals --------------------------
( appl, pgm, col, installdate, eDbSy, eLoc
, quaVar, quaDef, colDef, r, qua, quals, colls) as
(
select appl, pgm, col, installdate, eDbSy, eLoc
, quaVar, quaDef, colDef, r, qua
, cast(strip(qua) as varchar(1000))
, cast(strip(col) as varchar(1000))
from d where r = 1
union all select e.appl, e.pgm, d.col, e.installdate
, e.eDbSy, e.eLoc, d.quaVar, d.quaDef, d.colDef, e.r+1, d.qua
, e.quals || ' ' || strip(d.qua)
, e.colls || ' ' || strip(d.col)
from e join d
on e.appl = d.appl and e.pgm = d.pgm
and e.eDbSy = d.edbSy
and e.eLoc = d.eLoc and e.r + 1 = d.r and e.r < 999
)
, f as --- select maximal lists ----------------------------------------
(
select appl, pgm, max(installdate) installDate, eDbSy, eLoc
, min(col) colFr, max(col) colTo
, min(colDef) colDef
, min(qua) quaFr, max(qua) quaTo
, min(quaVar) quaVar, max(quaVar) quaVarMax
, min(quaDef) quaDef, max(quaDef) quaDefMax
, max(r) r
, max(quals) quals
, max(colls) colls
from e
group by appl, pgm, eDbSy, eLoc
)
, g1 as --- special quals ---------------------------------------------
(
select f.*
, case when quaDef <> quaDefMax
then raise_error(77031, pgm || '@' || eDbSy
|| ' quaDef ' || quaDef || ' ==> ' || quaDefMax)
when quaDef in ('OA1A', 'OA1T', 'OA1P')
then replace(quals, quaDef, 'OA1$') else quals end qualD
, case when eDbSy = 'DBBA'
then replace(quals, 'OA1A', 'OA1&')
when eDbSy = 'DVTB'
then replace(quals, 'OA1T', 'OA1&')
else replace(replace(quals, quaDef, 'OA1&')
, 'OA1$', 'OA1&') end qualV
from f
)
, g as --- group over all dbSys/Location -----------------------------
(
select appl, pgm, max(installdate) installDate
, min(colFr) colFr
, max(colTo) colTo
, min(colDef) colDef, max(colDef) colDefMax
, min(colls) colls, max(colls) collMax
, min(quaFr) quaFr
, max(quaTo) quaTo
, min(quaVar) quaVar, max(quaVarMax) quaVarMax
, min(quals) quals, max(quals) qualMax
, min(qualD) qualD, max(qualD) quaDMax
, min(qualV) qualV, max(qualV) quaVMax
, count(*) gR
from g1
group by appl, pgm
)
, h2 as --- check wether no bad change within dbSys/Location ----------
(
select appl, pgm, installDate, colFr, colTo, colDef
, quaVar, quaFr, quaTo, colls
, case when colDef <> colDefMax
then raise_error(77011, pgm || ' colDef '
|| colDef || ' ==> ' || colDefMax)
when colls <> collMax
then raise_error(77013, pgm || ' colls '
|| colls || ' ==> ' || collMax)
when quaVar <> quaVarMax
then raise_error(77032, pgm
|| ' quaVar ' || quaVar || ' ==> ' || quaVarMax)
when quals = qualMax then quals
when qualD = quaDMax then qualD
when qualV = quaVMax then qualV
else raise_error(77022, pgm
|| ' quals ' || quals || ' ==> ' || qualMax
|| ' qualD ' || qualD || ' ==> ' || quaDMax
|| ' qualV ' || qualV || ' ==> ' || quavMax)
end quals
from g
)
, h as --- colls und quals komprimieren --------------------------------
(
select h2.*
, replace(colls, ' ' || left(colls, 2), '=') collR
, replace(quals, ' ' || left(quals, 4), '=') qualR
from h2
)
, i as --- den neuen cq key bestimmen ----------------------------------
(
select h.*
, cast(case --- default
when colls = colDef and quals = quaVar then '-'
--- spezial: colls und quals nicht in sync --------
--- au
when quals = 'OA1&' and colls = 'AU' then 'AU&'
--- av
when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
and qualR='OA1$01=02=03=09=09=09=09=09=10=09=09=09=09=09'
|| '=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09'
then 'AV/Y/X012'
when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
and qualR='OA1$01=02=03=05=06=07=08=09=10=11=12=12=12=12'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
then 'AV/Y/0129'
when collR = 'AV01=02' and qualR = 'OA1$01=01'
then 'AV0101'
when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
and qualR='OA1$02=02=03=05=06=07=08=09=10=11=12=13=14=15'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
then 'AV/Y/CPID'
when collR = 'AV' and quals = 'OA1P12' then 'AV12'
--- be
when collR = 'BE=01=02=03=04' and qualR = 'OA1$01=01=02=03=04'
then 'BE+04'
when colls = 'CT CZ' and qualR = 'OA1$=' then 'CTCZ' --- ctcz
when colls = coldef ||' YY' and qualR = 'OA1$=' --- + yy
then 'YY+'
when colls = 'OA1P01 OA1P02' and qualR = 'OA1$01=02' --- oa1p
then 'OA1P-02'
--- allgemei
when quals = 'OA1&' and colls = colDef then 'DVTB&'
when quals = 'OA1A' and colls = colDef then 'OA1A'
--- error if colls und quals nicht in sync--------
when 'OA1$' || substr(collR, 3) <> qualR --en '???quals/coll'
then raise_error(77021, pgm || ' colls ' || collR
|| ' mismatches quals ' || qualR)
--- av
when right(collR, 83) = '05=06=07=08=09=10=11=12=13=14=15=16'
|| '=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
and left(collR, 14) in ('AV01=02=03=05='
, 'AV01=02=05=06=', 'AV05=06=07=08=' )
then 'AVALL'
when collR in ('AV01=02=03', 'AV01=02','AV03') then 'AV-03'
when collR in ('AV01=02=03=05=06=07=08=09=10'
,'AV01=02=03=28=29=30=31=32'
,'AV01=02=09=10=28=29=30=31=32'
,'AV28=29=30=31=32') then 'AV-10-32'
when collR = 'AV01=02=03=21=22' then 'AV-03-22'
when collR = 'BE01=02=03=04' then 'BE-04' --- be
when collR = 'NI01=02' then 'NI-02' --- ni
when collR = 'NI=01=02' then 'NI+02'
when collR in ('PC01=02', 'PC01') then 'PC-02' --- pc
when collR in
('PC01=02=03=04=05=06=07=08=09=10=11=12=13=14=15=16'
,'PC01=02=03=04=05=06=07=08=09=10=11=13=14=15=16')
then 'PCALL'
--- xc
when collR = 'XC00=01=02=03=04=05=06=07=08=09' then 'XCALL'
--- allgemei
when colls in ('BE', 'CD', 'KE') then colls
else '???'
end as char(10)) cq
from h
)
select 'cq', pgm, '20', cq, installDate
from i
where cq <> '-'
;
update OA1P.tAdm41BindKey set type = 'q'
, dbSy = 'DVTB'
, key = 'OA1T'
where type = 'cq' and key = 'AU&'
;
----- val ov: bindOptions values --------------------------------------
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 110, 'OWNER', 'CMNBATCH','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 210, 'ISOLATION', 'CS','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 220, 'DEGREE', '1','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 310, 'DYNAMICRULES', 'BIND','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 320, 'VALIDATE', 'BIND','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 910, 'EXPLAIN', 'YES','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 920, 'FLAG', 'I','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 930, 'SQLERROR', 'NOPACKAGE','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 9999, 'ACTION', 'REPLACE','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'degAny', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'degAny', 220, 'DEGREE', 'ANY','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'valRun', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'valRun', 320, 'VALIDATE', 'RUN','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'optHBD1',-9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'optHBD1', 330, 'OPTHINT', 'HBD1','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'optOH', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'optOH', 330, 'OPTHINT', 'OH' ,'01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'reoAlw', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'reoAlw', 340, 'REOPT', 'ALWAYS','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'dynRun', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'dynRun', 310, 'DYNAMICRULES', 'RUN','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'dynValRun',-9999,'-->parent','dynRun', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'dynValRun', 320, 'VALIDATE', 'RUN','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'relDea', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'relDea', 230, 'RELEASE', 'DEALLOCATE','01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, appl, pgm, rz, dbSy,
key, installBegin)
values('ov', '00', '%', '%', '%', '%', 'default',
'01.01.2000')
;
insert into OA1P.tAdm41BindKey (type, prio, appl, pgm, rz, dbSy,
key, installBegin)
with n as
( select APPL
, PGM
, COLLID
, INSTALLDATE
,case when OWNER <> '' then owner else null end owner
,case when QUALIFIER <> '' then QUALIFIER else null end QUALIFIER
,case when ISOLATION <> '' then ISOLATION else null end ISOLATION
,case when EXPLAIN <> '' then EXPLAIN else null end EXPLAIN
,case when CURRENTDATA <> '' then CURRENTDATA else null end CURRENTDATA
,case when RELEASE <> '' then RELEASE else null end RELEASE
,case when DBPROTOCOL <> '' then DBPROTOCOL else null end DBPROTOCOL
,case when DEGREE <> '' then DEGREE else null end DEGREE
,case when DYNAMICRULES <> '' then DYNAMICRULES else null end
DYNAMICRULES
,case when KEEPDYNAMIC <> '' then KEEPDYNAMIC else null end KEEPDYNAMIC
,case when REOPT <> '' then REOPT else null end REOPT
,case when OPTHINT <> '' then OPTHINT else null end OPTHINT
,case when IMMEDWRITE <> '' then IMMEDWRITE else null end IMMEDWRITE
,case when FLAG <> '' then FLAG else null end FLAG
,case when PATH <> '' then PATH else null end PATH
,case when VALIDATE <> '' then VALIDATE else null end VALIDATE
,case when SQLERROR <> '' then SQLERROR else null end SQLERROR
,case when SQLRULES <> '' then SQLRULES else null end SQLRULES
,case when DEFER <> '' then DEFER else null end DEFER
,case when ENCODING <> '' then ENCODING else null end ENCODING
,case when ROUNDING <> '' then ROUNDING else null end ROUNDING
from oa1p.bind_parameters
)
, d as
( select
case when s.pgm <> 'DEFAULT' then 's' else ' ' end
|| case when a.appl <> 'DEFAULT' then 'a' else ' ' end
|| case when d.appl is null then ' ' else 'd' end sad
--alue(s.$ ,a.$ ,d.$ ) $
,value(s.APPL ,a.APPL ,d.APPL ) APPL
,value(s.PGM ,a.PGM ,d.PGM ) PGM
,value(s.COLLID ,a.COLLID ,d.COLLID ) COLLID
,value(s.INSTALLDATE ,a.INSTALLDATE ,d.INSTALLDATE ) INSTALLDATE
,value(s.OWNER ,a.OWNER ,d.OWNER ) OWNER
,value(s.QUALIFIER ,a.QUALIFIER ,d.QUALIFIER ) QUALIFIER
,value(s.ISOLATION ,a.ISOLATION ,d.ISOLATION ) ISOLATION
,value(s.EXPLAIN ,a.EXPLAIN ,d.EXPLAIN ) EXPLAIN
,value(s.CURRENTDATA ,a.CURRENTDATA ,d.CURRENTDATA ) CURRENTDATA
,value(s.RELEASE ,a.RELEASE ,d.RELEASE ) RELEASE
,value(s.DBPROTOCOL ,a.DBPROTOCOL ,d.DBPROTOCOL ) DBPROTOCOL
,value(s.DEGREE ,a.DEGREE ,d.DEGREE ) DEGREE
,value(s.DYNAMICRULES,a.DYNAMICRULES,d.DYNAMICRULES) DYNAMICRULES
,value(s.KEEPDYNAMIC ,a.KEEPDYNAMIC ,d.KEEPDYNAMIC ) KEEPDYNAMIC
,value(s.REOPT ,a.REOPT ,d.REOPT ) REOPT
,value(s.OPTHINT ,a.OPTHINT ,d.OPTHINT ) OPTHINT
,value(s.IMMEDWRITE ,a.IMMEDWRITE ,d.IMMEDWRITE ) IMMEDWRITE
,value(s.FLAG ,a.FLAG ,d.FLAG ) FLAG
,value(s.PATH ,a.PATH ,d.PATH ) PATH
,value(s.VALIDATE ,a.VALIDATE ,d.VALIDATE ) VALIDATE
,value(s.SQLERROR ,a.SQLERROR ,d.SQLERROR ) SQLERROR
,value(s.SQLRULES ,a.SQLRULES ,d.SQLRULES ) SQLRULES
,value(s.DEFER ,a.DEFER ,d.DEFER ) DEFER
,value(s.ENCODING ,a.ENCODING ,d.ENCODING ) ENCODING
,value(s.ROUNDING ,a.ROUNDING ,d.ROUNDING ) ROUNDING
from n s
left join n a
on a.appl = s.appl and a.pgm = 'DEFAULT'
and a.collid = 'DEFAULT'
left join oa1p.bind_parameters d
on d.appl = 'DEFAULT' and d.pgm = 'DEFAULT'
and d.collid = 'DEFAULT'
)
, e as
(
select
left(release, 4) || left(degree, 4) || left(dynamicRules, 4)
|| left(reopt, 4) || left(opthint, 4) || left(validate, 4) comb,
d.*
from d
)
, f as
( select case
when comb = ' ANY BIND BIND' then 'degAny '
when comb = ' 1 BIND BIND' then 'default '
when comb = ' 1 BIND RUN ' then 'valRun '
when comb = ' 1 BIND HBD1BIND' then 'optHBD1 '
when comb = ' 1 BIND OH BIND' then 'optOH '
when comb = ' 1 BINDALWA BIND' then 'reoAlw '
when comb = ' 1 RUN BIND' then 'dynRun '
when comb = ' 1 RUN RUN ' then 'dynValRun'
when comb = 'DEAL1 BIND BIND' then 'relDea '
else '$$$' end neu,
e.*
from e
)
select 'ov' type
, case when pgm <> 'DEFAULT' then '20'
else '10' end prio
, left(case when appl = 'DEFAULT' or pgm <> 'DEFAULT'
then '%' else appl end, 4) appl
, case when pgm = 'DEFAULT' then '%' else pgm end pgm
, '%' rz
, '%' dbSy
-- , '%' location
, neu key
, installDate installBegin
-- , f.*
from f
where appl not like 'A18Q%'
and neu <> 'default'
;x;
insert into OA1P.tAdm41BindKey (type, prio, key, installBegin)
values ('path', '00', 'DBOF', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, appl, key, installBegin)
values ('path', '00', 'ELA%', 'DVBP', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, pgm, key, installBegin)
with a as
(
select appl a, pgm p , collid c, date(createdTS) r,
strip(ssid) || '>' || strip(location) || '-' || strip(qualifier) t
from oa1p.bind_exceptions
where ssid <> 'DAEG'
)
, b as
( select a, p, c, r,
row_number() over(partition by a, p, c
order by t) l,
t
from a
)
, c (a, p, c, r, l, t, u) as
( select a, p, c, r, 1, t, varchar(t, 2000) from b where l = 1
union all select c.a, c.p, c.c, min(c.r, b.r),
c.l+1, b.t, c.u || ' ' || b.t
from b, c
where b.a = c.a and b.p = c.p and b.c = c.c and b.l = c.l+1
and c.l < 100
)
, d as
(
select a, p, c, min(r) r, max(l) l, min(t) tFr, max(t) tTo, max(u) t
from c
group by a, p, c
)
, e as
( select
case when a in ('A18Q', 'DBTST', 'DB2J') then '-'
when p = 'AU5070' or p like 'YAU03%' then 'DBOF>DVBP'
when p = 'YCDPUT2' then '-'
when l = 12 and tFr = 'DBBA>-OA1A'
and left(tTo, 17) = 'DVTB>CHSKA000DBTF' then 'DVBP>DBOF'
when l > 4 and tFr = 'DBAF>-OA1A'
and tTo = 'DBTF>CHSKA000DVTB-OA1T' then 'DBOF>DVBP'
when t = 'DBOF>-OA1P DBOF>CHSKA000DBOL-OA1P' then 'DBOF>DBOL'
else '???'
end n,
d.* from d
)
select 'path', '20', p, n, r
from e where n <> '-'
;
delete from OA1P.tBiPaPgm;
commit;
}¢--- A540769.WK.SQL(BIPA9DD1) cre=2012-07-20 mod=2012-07-20-10.02.11 A540769 ---
set current sqlid = 'S100447';
drop table OA1P.tBiPaPgm;
drop tablespace db2Admin.aBiPa ;
commit;
create global temporary table OA1P.tBiPaPgm
( appl char(4),
pgm char(8),
install date) ccsid unicode;
CREATE TABLESPACE ABiPa
IN Db2Admin
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLE OA1P.tBiParm
( type char(5) not null,
PRIO char(2) NOT NULL,
CONSTRAINT PRIONumeric CHECK
(PRIO between '00' and '99') ,
appl CHAR(4) NOT NULL default '*',
pgm CHAR(8) NOT NULL default '*',
rz char(3) NOT NULL default '*',
ssid char(4) NOT NULL default '*',
location char(16) NOT NULL default '*',
value char(20) not null,
installFr date NOT NULL WITH DEFAULT,
installTo date NOT NULL WITH DEFAULT '31.12.9999'
)
in db2Admin.aBiPa
;
CREATE view OA1P.vBiParm as
select p.*,
case when posstr(appl, '*') = 0 then 4 else posstr(appl, '*')-1
end apLe ,
case when posstr(pgm , '*') = 0 then 8 else posstr(pgm , '*')-1
end pkLe
from oa1p.tBiParm p
;
CREATE TABLE OA1P.tBiPaEnv
(
env char(12) not null,
installFr date NOT NULL WITH DEFAULT,
installTo date NOT NULL WITH DEFAULT '31.12.9999' ,
seq smallint not null,
rz char(3) NOT NULL,
ssid char(4) NOT NULL,
location char(16) NOT NULL default ''
) in db2Admin.aBiPa
;
CREATE view OA1P.vBiPaEnv as
with k as
(
select k.*, (select substr(max(prio || value), 3, 12)
from oa1p.vBiParm p
where p.type = 'env'
and k.install between p.installFr and p.installTo
and left(p.appl, p.apLe) = left(k.appl, p.apLe)
and left(p.pgm , p.pkLe) = left(k.pgm, p.pkLe)
) env
from oa1p.tBiPaPgm k
)
select k.*, e.seq envSeq, e.rz, e.ssid, e.location,
(select substr(max(prio || value), 3, 12)
from oa1p.vBiParm p
where p.type = 'col'
and k.install between p.installFr and p.installTo
and left(p.appl, p.apLe) = left(k.appl, p.apLe)
and left(p.pgm , p.pkLe) = left(k.pgm, p.pkLe)
and p.rz in ('*', e.rz )
and p.ssid in ('*', e.ssid )
and p.location in ('*', e.location )
) colls,
case when pgm like 'YY%' then 'YY'
when pgm like 'Y%' then substr(pgm, 2, 2)
else substr(pgm, 1, 2)
end colBa,
(select substr(max(prio || value), 3, 12)
from oa1p.vBiParm p
where p.type = 'qua'
and k.install between p.installFr and p.installTo
and left(p.appl, p.apLe) = left(k.appl, p.apLe)
and left(p.pgm , p.pkLe) = left(k.pgm, p.pkLe)
and p.rz in ('*', e.rz )
and p.ssid in ('*', e.ssid )
and p.location in ('*', e.location )
) quaBa
from k left join oa1p.tBiPaEnv e
on k.env = e.env
and k.install between e.installFr and e.installTo
;
CREATE TABLE OA1P.tBiPaCol
(
colls char(12) not null,
seq smallint not null,
col char(8) NOT NULL,
qua char(8) NOT NULL,
installFr date NOT NULL WITH DEFAULT,
installTo date NOT NULL WITH DEFAULT '31.12.9999'
) in db2Admin.aBiPa
;
CREATE view OA1P.vBiPaCol as
select e.*,
replace(c.col, '$', strip(e.colBa)) col,
replace(c.qua, '$', strip(e.quaBa)) qua,
(select substr(max(prio || value), 3, 12)
from oa1p.vBiParm p
where p.type = 'opt'
and e.install between p.installFr and p.installTo
and left(p.appl, p.apLe) = left(e.appl, p.apLe)
and left(p.pgm , p.pkLe) = left(e.pgm, p.pkLe)
and p.rz in ('*', e.rz )
and p.ssid in ('*', e.ssid )
and p.location in ('*', e.location )
) opts,
c.seq colSeq
from oa1p.vBiPaEnv e
join oa1p.tBiPaCol c
on e.colls = c.colls
and e.install between c.installFr and c.installTo
;
CREATE TABLE OA1P.tBiPaOpt
(
opts char(12) not null,
seq smallint not null,
key char(30) not null,
val char(40) NOT NULL,
installFr date NOT NULL WITH DEFAULT,
installTo date NOT NULL WITH DEFAULT '31.12.9999'
) in db2Admin.aBiPa
;
CREATE TABLE OA1P.tBiPaOptRel
(
opts char(12) not null,
parent char(12) not null,
installFr date NOT NULL WITH DEFAULT,
installTo date NOT NULL WITH DEFAULT '31.12.9999'
) in db2Admin.aBiPa
;
CREATE view OA1P.vBiPaOptRel as
with r (opts, parent, prio, lev, install) as
( select opts, opts, '99', 1, install
from ( select opts, install from oa1p.vBiPaCol
group by opts, install) oo
union all select r.opts, p.parent,
right('00' || strip(char(99-lev)), 2), lev+1, install
from r join oa1p.tBiPaOptRel p
on r.parent = p.opts
and r.install between p.installFr and p.installTo
and r.lev < 90
)
select * from r
;
CREATE view OA1P.vBiPaOpt as
with o as (
select r.opts, key, substr(max(prio || val), 3) val,
min(seq) seq, r.install
from oa1p.vBiPaOptRel r
join oa1p.tBiPaOpt o
on r.parent = o.opts
and r.install between o.installFr and o.installTo
group by r.opts, r.install, o.key
)
select c.*,
' ' || strip(key) || '(' || strip(val) || ')'
|| case when seq = 9999 then '' else ' -' end opt,
o.seq optSeq
from oa1p.vBiPaCol c join o
on o.opts = c.opts and o.install = c.install
;
CREATE view OA1P.vBiPaBind (opt, appl, pgm, install,
env, envseq, rz, ssid, location, colls, colba, quaba,
col, qua, opts, colSeq, optSeq) as
select 'bind package('
|| case when location = '' then ''
else strip(c.location) || '.' end
|| strip(col) || ') -' ,
c.*, -90
from oa1p.vBiPaCol c
union all select ' member(' || strip(pgm) || ') -',
c.*, -80
from oa1p.vBiPaCol c
union all select ' qualifier(' || strip(qua) || ') -',
c.*, -70
from oa1p.vBiPaCol c
union all select opt, appl, pgm, install,
env, envseq, rz, ssid, location, colls, colba, quaba,
col, qua, opts, colSeq, optSeq
from oa1p.vBiPaOpt
union all select '***: Bind for pgm=' || strip(pgm)
|| ', appl=' || appl
|| ', installDate=' || char(install) ,
appl, pgm, install, '', -9999, '', '', '', '', '', '',
'', '', 'bindBegin1', 0, 0
from oa1p.tBiPaPgm
union all select '***: OA1P.vBiPaBind at '
|| char(current timestamp)
|| ' on ' || current server,
appl, pgm, install, '', -9998, '', '', '', '', '', '',
'', '', 'bindBegin2', 0, 0
from oa1p.tBiPaPgm
union all select '**** Start of Bind Stmts for ' || strip(rz) || '/'
|| strip(ssid),
appl, pgm, install, env, min(envseq), rz, ssid, '', '', '', '',
'', '', 'ssidBegin', -32760, 0
from oa1p.vBiPaCol c
group by appl, pgm, install, env, rz, ssid
union all select '**** End of Bind Stmts for ' || strip(rz) || '/'
|| strip(ssid),
appl, pgm, install, env, max(envseq), rz, ssid, '', '', '', '',
'', '', 'ssidEnd', 32760, 0
from oa1p.vBiPaCol c
group by appl, pgm, install, env, rz, ssid
;
commit;
}¢--- A540769.WK.SQL(BIPA9DD2) cre=2013-10-23 mod=2013-10-23-13.38.55 A540769 ---
set current sqlid = 'S100447';
drop table oa1p.tBiPaPgm;
drop tablespace db2admin.aBiParm ;
drop tablespace db2admin.aBiPath ;
drop tablespace db2admin.aBiPaCol;
drop tablespace db2admin.aBiPaOpt;
commit;
create global temporary table oa1p.tBiPaPgm
( appl char(4),
pgm char(8),
install date) ccsid unicode;
CREATE TABLESPACE ABiParm
IN db2admin
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLESPACE ABiPath
IN db2admin
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLESPACE ABiPaCol
IN db2admin
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLESPACE ABiPaOpt
IN db2admin
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLE oa1p.tBiParm
( type char(5) not null,
PRIO char(2) NOT NULL,
CONSTRAINT PRIONumeric CHECK
(PRIO between '00' and '99') ,
appl CHAR(4) NOT NULL default '*',
pgm CHAR(8) NOT NULL default '*',
rz char(3) NOT NULL default '*',
dbSy char(4) NOT NULL default '*',
location char(16) NOT NULL default '*',
value char(20) not null,
installFr date NOT NULL WITH DEFAULT,
installTo date NOT NULL WITH DEFAULT '31.12.9999',
rowChg timestamp not null generated always
for each row on update as row change timestamp
)
in db2admin.aBiParm
;
CREATE view oa1p.vBiParm as
select p.*,
case when posstr(appl, '*') = 0 then 4 else posstr(appl, '*')-1
end apLe ,
case when posstr(pgm , '*') = 0 then 8 else posstr(pgm , '*')-1
end pgLe
from oa1p.tBiParm p
;
create view oa1p.vBiPaPgm as
select g.*,
(select substr(max(prio || value), 3, 12)
from oa1p.vBiParm p
where p.type = 'path'
and g.install >= p.installFr and g.install < p.installTo
and left(p.appl, p.apLe) = left(g.appl, p.apLe)
and left(p.pgm , p.pgLe) = left(g.pgm, p.pgLe)
) path,
case when pgm like 'YY%' then 'YY'
when pgm like 'Y%' then substr(pgm, 2, 2)
else substr(pgm, 1, 2)
end colBa
from oa1p.tBiPaPgm g
;
CREATE TABLE oa1p.tBiPath
(
path char(12) not null,
seq smallint not null,
rz char(3) NOT NULL,
dbSy char(4) NOT NULL,
location char(16) NOT NULL default '',
installFr date NOT NULL WITH DEFAULT,
installTo date NOT NULL WITH DEFAULT '31.12.9999' ,
rowChg timestamp not null generated always
for each row on update as row change timestamp
) in db2admin.aBiPath
;
CREATE view oa1p.vBiPath as
select g.*, a.seq pathSeq, a.rz, a.dbSy, a.location,
( select substr(max(prio || value), 3, 12)
from oa1p.vBiParm p
where p.type = 'colls'
and g.install >= p.installFr and g.install < p.installTo
and left(p.appl, p.apLe) = left(g.appl, p.apLe)
and left(p.pgm , p.pgLe) = left(g.pgm, p.pgLe)
and p.rz in ('*', a.rz )
and p.dbSy in ('*', a.dbSy )
and p.location in ('*', a.location )
) colls,
( select substr(max(prio || value), 3, 12)
from oa1p.vBiParm p
where p.type = 'qua'
and g.install >= p.installFr and g.install < p.installTo
and left(p.appl, p.apLe) = left(g.appl, p.apLe)
and left(p.pgm , p.pgLe) = left(g.pgm, p.pgLe)
and p.rz in ('*', a.rz )
and p.dbSy in ('*', a.dbSy )
and p.location in ('*', a.location )
) quaBa
from oa1p.vBiPaPgm g
join oa1p.tBiPath a
on g.path = a.path
and g.install >= a.installFr and g.install < a.installTo
;
CREATE TABLE oa1p.tBiPaCol
(
colls char(12) not null,
seq smallint not null,
col char(8) NOT NULL,
qua char(8) NOT NULL,
installFr date NOT NULL WITH DEFAULT,
installTo date NOT NULL WITH DEFAULT '31.12.9999',
rowChg timestamp not null generated always
for each row on update as row change timestamp
) in db2admin.aBiPaCol
;
CREATE view oa1p.vBiPaCol as
select h.*, c.seq colSeq,
replace(c.col, '$', strip(h.colBa)) col,
replace(c.qua, '$', strip(h.quaBa)) qua,
( select substr(max(prio || value), 3, 12)
from oa1p.vBiParm p
where p.type = 'opt'
and h.install >= p.installFr and h.install < p.installTo
and left(p.appl, p.apLe) = left(h.appl, p.apLe)
and left(p.pgm , p.pgLe) = left(h.pgm, p.pgLe)
and p.rz in ('*', h.rz )
and p.dbSy in ('*', h.dbSy )
and p.location in ('*', h.location )
) opts
from oa1p.vBiPath h
join oa1p.tBiPaCol c
on h.colls = c.colls
and h.install >= c.installFr and h.install < c.installTo
;
CREATE TABLE oa1p.tBiPaOpt
(
opts char(12) not null,
seq smallint not null,
key char(30) not null,
value char(40) NOT NULL,
installFr date NOT NULL WITH DEFAULT,
installTo date NOT NULL WITH DEFAULT '31.12.9999',
rowChg timestamp not null generated always
for each row on update as row change timestamp
) in db2admin.aBiPaOpt
;
CREATE view oa1p.vBiPaOptRel as
with r (opts, parent, prio, lev, install) as
( select opts, opts, '99', 1, install
from ( select opts, install from oa1p.vBiPaCol
group by opts, install) oo
union all select r.opts, p.value,
right('00' || strip(char(99-lev)), 2), lev+1, install
from r join oa1p.tBiPaOpt p
on r.parent = p.opts and p.key = '-->parent'
and r.install >= p.installFr and r.install < p.installTo
and r.lev < 90
)
select * from r
;
CREATE view oa1p.vBiPaOpt as
with o as (
select r.opts, key, substr(max(prio || value), 3) value,
min(seq) seq, r.install
from oa1p.vBiPaOptRel r
join oa1p.tBiPaOpt o
on r.parent = o.opts
and r.install >= o.installFr and r.install < o.installTo
group by r.opts, r.install, o.key
)
select c.*,
' ' || strip(key) || '(' || strip(value) || ')'
|| case when seq = 9999 then '' else ' -' end opt,
o.seq optSeq
from oa1p.vBiPaCol c join o
on o.opts = c.opts and o.install = c.install
and o.key not like '--%' and o.value <> ''
;
CREATE view oa1p.vBiPaBind (opt, appl, pgm, install, path, colba,
pathSeq, rz, dbSy, location, colls, quaBa,
colSeq, col, qua, opts, optSeq) as
select 'bind package('
|| case when location = '' then ''
else strip(c.location) || '.' end
|| strip(col) || ') -' ,
c.*, -90
from oa1p.vBiPaCol c
union all select ' member(' || strip(pgm) || ') -',
c.*, -80
from oa1p.vBiPaCol c
union all select ' qualifier(' || strip(qua) || ') -',
c.*, -70
from oa1p.vBiPaCol c
union all select opt, appl, pgm, install, path, colba,
pathSeq, rz, dbSy, location, colls, quaBa,
colSeq, col, qua, opts, optSeq
from oa1p.vBiPaOpt
union all select '***: Bind for pgm=' || strip(pgm)
|| ', appl=' || appl
|| ', installDate=' || char(install) ,
appl, pgm, install, '', '',
-32761, '' , '', '', '', '',
0, '', '', 'bindBegin1', 0
from oa1p.tBiPaPgm
union all select '***: oa1p.vBiPaBind at '
|| char(current timestamp)
|| ' on ' || current server,
appl, pgm, install, '', '',
-32760, '', '', '', '', '',
0, '', '', 'bindBegin2', 0
from oa1p.tBiPaPgm
union all select '**** Start of Bind Stmts for ' || strip(rz) || '/'
|| strip(dbSy),
appl, pgm, install, path, '',
min(pathSeq), rz, dbSy, '', '', '',
-32760, '', '', 'dbSyBegin', 0
from oa1p.vBiPaCol c
group by appl, pgm, install, path, rz, dbSy
union all select '**** End of Bind Stmts for ' || strip(rz) || '/'
|| strip(dbSy),
appl, pgm, install, path, '',
max(pathSeq), rz, dbSy, '', '', '',
32760, '', '', 'dbSyEnd', 0
from oa1p.vBiPaCol c
group by appl, pgm, install, path, rz, dbSy
;
commit;
}¢--- A540769.WK.SQL(BIPA9DD3) cre=2013-05-30 mod=2013-05-30-16.06.20 A540769 ---
set current sqlid = 'S100447';
$*(
drop TABLESPACE db2admin.ABiPaCo2;
drop TABLESPACE db2admin.ABiPaCoH;
commit;
CREATE TABLESPACE ABiPaCo2
IN db2admin
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLESPACE ABiPaCoH
IN db2admin
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
commit;
$*)
drop TABLE oa1p.tBiPaCo2;
drop TABLE oa1p.tBiPaCoH;
commit;
CREATE TABLE oa1p.tBiPaCo2
(
colls char(12) not null,
seq smallint not null,
col char(8) NOT NULL,
qua char(8) NOT NULL,
installFr date NOT NULL WITH DEFAULT,
installTo date NOT NULL WITH DEFAULT '31.12.9999',
period business_time (installFr, installTo) ,
rowBegin not null generated always as row begin ,
rowEnd not null generated always as row end ,
rowtrans not null generated always as transaction start id,
period system_time (rowBegin, rowEnd) ,
unique (colls, seq, qua, business_time without overlaps) ,
rowChg timestamp not null generated always
for each row on update as row change timestamp
) in db2admin.aBiPaCo2
;
CREATE UNIQUE INDEX OA1P.iBiPaCo2A1
ON oa1p.tBiPaCo2
(colls, seq, qua, business_time without overlaps)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 10 PCTFREE 10
GBPCACHE CHANGED
NOT CLUSTER
COMPRESS NO
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFER NO
DEFINE YES
PIECESIZE 2 G;
CREATE TABLE oa1p.tBiPaCoH like oa1p.tBiPaCo2 in db2Admin.abiPaCoH;
commit;
alter table oa1p.tBiPaCo2 add versioning
use history table oa1p.tBiPaCoH;
commit;
insert into OA1P.tBiPaCo2 (colls, seq, col, qua, installFr)
values ('defIns', 1, 'AV','', '01.01.2000');
insert into OA1P.tBiPaCo2 (colls, seq, col, qua, installFr)
values ('defIns', 1, 'AV','', '01.02.2011');
update OA1P.tBiPaCo2 set installTo = '01.02.2011';
insert into OA1P.tBiPaCo2 (colls, seq, col, qua, installFr)
values ('defIns', 1, 'AV','', '01.02.2011');
select * from OA1P.tBiPaCo2;
select * from OA1P.tBiPaCoH;
select * from OA1P.tBiPaCo2
for business_time as of '30.05.1997' ;
select * from OA1P.tBiPaCo2
for business_time as of '31.12.1999' ;
select * from OA1P.tBiPaCo2
for business_time as of '01.01.2000' ;
select * from OA1P.tBiPaCo2
for business_time as of '31.01.2011' ;
select * from OA1P.tBiPaCo2
for business_time as of '01.02.2011' ;
select * from OA1P.tBiPaCo2
for business_time as of '02.02.2011' ;
}¢--- A540769.WK.SQL(BIPA9LT1) cre=2012-07-16 mod=2012-07-19-17.01.25 A540769 ---
select *
from oa1p.bind_parameters
where opthint <> ''
;
select *
from oa1p.bind_exceptions_log
--where qualifier <> 'BUA' and qualifier not like 'OA1$%'
--where pgm = 'AU5070' or pgm like 'YAU030%'
where pgm = 'YCDPUT2'
order by pgm, mod_ts
;x;
select qualifier, count(*)
from oa1p.bind_parameters p
group by qualifier
;x;
select
e.ssid,e.location,e.collid,e.qualifier,
p.appl,p.pgm,p.collid,p.installdate
from oa1p.bind_parameters p
left outer join oa1p.bind_exceptions e
on e.appl = p.appl
and e.pgm = p.pgm
and e.collid = p.collid
and e.installdate = p.installdate
where p.pgm = 'YAU019U'
and (e.ssid= 'DBAF' or e.ssid is NULL)
;
select
e.ssid,e.location,e.collid,e.qualifier,
p.appl,p.pgm,p.collid,p.installdate
from oa1p.bind_parameters p
left outer join oa1p.bind_exceptions e
on e.appl = p.appl
and e.pgm = p.pgm
and e.collid = p.collid
and e.installdate = p.installdate
and e.ssid= 'DBAF'
where p.pgm = 'YAU019U'
}¢--- A540769.WK.SQL(BIPA9LT2) cre=2012-07-16 mod=2012-07-16-16.48.13 A540769 ---
select *
from oa1p.bind_parameters
-- where pgm= 'DEFAULT'
where path <> ''
;x;
with n as
( select APPL
, PGM
, COLLID
, INSTALLDATE
,case when OWNER <> '' then owner else null end owner
,case when QUALIFIER <> '' then QUALIFIER else null end QUALIFIER
,case when ISOLATION <> '' then ISOLATION else null end ISOLATION
,case when EXPLAIN <> '' then EXPLAIN else null end EXPLAIN
,case when CURRENTDATA <> '' then CURRENTDATA else null end CURRENTDATA
,case when RELEASE <> '' then RELEASE else null end RELEASE
,case when DBPROTOCOL <> '' then DBPROTOCOL else null end DBPROTOCOL
,case when DEGREE <> '' then DEGREE else null end DEGREE
,case when DYNAMICRULES <> '' then DYNAMICRULES else null end
DYNAMICRULES
,case when KEEPDYNAMIC <> '' then KEEPDYNAMIC else null end KEEPDYNAMIC
,case when REOPT <> '' then REOPT else null end REOPT
,case when OPTHINT <> '' then OPTHINT else null end OPTHINT
,case when IMMEDWRITE <> '' then IMMEDWRITE else null end IMMEDWRITE
,case when FLAG <> '' then FLAG else null end FLAG
,case when PATH <> '' then PATH else null end PATH
,case when VALIDATE <> '' then VALIDATE else null end VALIDATE
,case when SQLERROR <> '' then SQLERROR else null end SQLERROR
,case when SQLRULES <> '' then SQLRULES else null end SQLRULES
,case when DEFER <> '' then DEFER else null end DEFER
,case when ENCODING <> '' then ENCODING else null end ENCODING
,case when ROUNDING <> '' then ROUNDING else null end ROUNDING
from oa1p.bind_parameters
)
, d as
( select
case when s.pgm <> 'DEFAULT' then 's' else ' ' end
|| case when a.appl <> 'DEFAULT' then 'a' else ' ' end
|| case when d.appl is null then ' ' else 'd' end sad
--alue(s.? ,a.? ,d.? ) ?
,value(s.APPL ,a.APPL ,d.APPL ) APPL
,value(s.PGM ,a.PGM ,d.PGM ) PGM
,value(s.COLLID ,a.COLLID ,d.COLLID ) COLLID
,value(s.INSTALLDATE ,a.INSTALLDATE ,d.INSTALLDATE ) INSTALLDATE
,value(s.OWNER ,a.OWNER ,d.OWNER ) OWNER
,value(s.QUALIFIER ,a.QUALIFIER ,d.QUALIFIER ) QUALIFIER
,value(s.ISOLATION ,a.ISOLATION ,d.ISOLATION ) ISOLATION
,value(s.EXPLAIN ,a.EXPLAIN ,d.EXPLAIN ) EXPLAIN
,value(s.CURRENTDATA ,a.CURRENTDATA ,d.CURRENTDATA ) CURRENTDATA
,value(s.RELEASE ,a.RELEASE ,d.RELEASE ) RELEASE
,value(s.DBPROTOCOL ,a.DBPROTOCOL ,d.DBPROTOCOL ) DBPROTOCOL
,value(s.DEGREE ,a.DEGREE ,d.DEGREE ) DEGREE
,value(s.DYNAMICRULES,a.DYNAMICRULES,d.DYNAMICRULES) DYNAMICRULES
,value(s.KEEPDYNAMIC ,a.KEEPDYNAMIC ,d.KEEPDYNAMIC ) KEEPDYNAMIC
,value(s.REOPT ,a.REOPT ,d.REOPT ) REOPT
,value(s.OPTHINT ,a.OPTHINT ,d.OPTHINT ) OPTHINT
,value(s.IMMEDWRITE ,a.IMMEDWRITE ,d.IMMEDWRITE ) IMMEDWRITE
,value(s.FLAG ,a.FLAG ,d.FLAG ) FLAG
,value(s.PATH ,a.PATH ,d.PATH ) PATH
,value(s.VALIDATE ,a.VALIDATE ,d.VALIDATE ) VALIDATE
,value(s.SQLERROR ,a.SQLERROR ,d.SQLERROR ) SQLERROR
,value(s.SQLRULES ,a.SQLRULES ,d.SQLRULES ) SQLRULES
,value(s.DEFER ,a.DEFER ,d.DEFER ) DEFER
,value(s.ENCODING ,a.ENCODING ,d.ENCODING ) ENCODING
,value(s.ROUNDING ,a.ROUNDING ,d.ROUNDING ) ROUNDING
from oa1p.bind_parameters s
left join oa1p.bind_parameters a
on a.appl = s.appl and a.pgm = 'DEFAULT'
and a.collid = 'DEFAULT'
left join oa1p.bind_parameters d
on d.appl = 'DEFAULT' and d.pgm = 'DEFAULT'
and d.collid = 'DEFAULT'
)
select * from d
-- where pgm = 'DEFAULT'
where appl not like 'A18Q%'
;
}¢--- A540769.WK.SQL(BIPA9LT3) cre=2012-07-16 mod=2012-07-16-17.29.03 A540769 ---
with n as
( select APPL
, PGM
, COLLID
, INSTALLDATE
,case when OWNER <> '' then owner else null end owner
,case when QUALIFIER <> '' then QUALIFIER else null end QUALIFIER
,case when ISOLATION <> '' then ISOLATION else null end ISOLATION
,case when EXPLAIN <> '' then EXPLAIN else null end EXPLAIN
,case when CURRENTDATA <> '' then CURRENTDATA else null end CURRENTDATA
,case when RELEASE <> '' then RELEASE else null end RELEASE
,case when DBPROTOCOL <> '' then DBPROTOCOL else null end DBPROTOCOL
,case when DEGREE <> '' then DEGREE else null end DEGREE
,case when DYNAMICRULES <> '' then DYNAMICRULES else null end
DYNAMICRULES
,case when KEEPDYNAMIC <> '' then KEEPDYNAMIC else null end KEEPDYNAMIC
,case when REOPT <> '' then REOPT else null end REOPT
,case when OPTHINT <> '' then OPTHINT else null end OPTHINT
,case when IMMEDWRITE <> '' then IMMEDWRITE else null end IMMEDWRITE
,case when FLAG <> '' then FLAG else null end FLAG
,case when PATH <> '' then PATH else null end PATH
,case when VALIDATE <> '' then VALIDATE else null end VALIDATE
,case when SQLERROR <> '' then SQLERROR else null end SQLERROR
,case when SQLRULES <> '' then SQLRULES else null end SQLRULES
,case when DEFER <> '' then DEFER else null end DEFER
,case when ENCODING <> '' then ENCODING else null end ENCODING
,case when ROUNDING <> '' then ROUNDING else null end ROUNDING
from oa1p.bind_parameters
)
, d as
( select
case when s.pgm <> 'DEFAULT' then 's' else ' ' end
|| case when a.appl <> 'DEFAULT' then 'a' else ' ' end
|| case when d.appl is null then ' ' else 'd' end sad
--alue(s.? ,a.? ,d.? ) ?
,value(s.APPL ,a.APPL ,d.APPL ) APPL
,value(s.PGM ,a.PGM ,d.PGM ) PGM
,value(s.COLLID ,a.COLLID ,d.COLLID ) COLLID
,value(s.INSTALLDATE ,a.INSTALLDATE ,d.INSTALLDATE ) INSTALLDATE
,value(s.OWNER ,a.OWNER ,d.OWNER ) OWNER
,value(s.QUALIFIER ,a.QUALIFIER ,d.QUALIFIER ) QUALIFIER
,value(s.ISOLATION ,a.ISOLATION ,d.ISOLATION ) ISOLATION
,value(s.EXPLAIN ,a.EXPLAIN ,d.EXPLAIN ) EXPLAIN
,value(s.CURRENTDATA ,a.CURRENTDATA ,d.CURRENTDATA ) CURRENTDATA
,value(s.RELEASE ,a.RELEASE ,d.RELEASE ) RELEASE
,value(s.DBPROTOCOL ,a.DBPROTOCOL ,d.DBPROTOCOL ) DBPROTOCOL
,value(s.DEGREE ,a.DEGREE ,d.DEGREE ) DEGREE
,value(s.DYNAMICRULES,a.DYNAMICRULES,d.DYNAMICRULES) DYNAMICRULES
,value(s.KEEPDYNAMIC ,a.KEEPDYNAMIC ,d.KEEPDYNAMIC ) KEEPDYNAMIC
,value(s.REOPT ,a.REOPT ,d.REOPT ) REOPT
,value(s.OPTHINT ,a.OPTHINT ,d.OPTHINT ) OPTHINT
,value(s.IMMEDWRITE ,a.IMMEDWRITE ,d.IMMEDWRITE ) IMMEDWRITE
,value(s.FLAG ,a.FLAG ,d.FLAG ) FLAG
,value(s.PATH ,a.PATH ,d.PATH ) PATH
,value(s.VALIDATE ,a.VALIDATE ,d.VALIDATE ) VALIDATE
,value(s.SQLERROR ,a.SQLERROR ,d.SQLERROR ) SQLERROR
,value(s.SQLRULES ,a.SQLRULES ,d.SQLRULES ) SQLRULES
,value(s.DEFER ,a.DEFER ,d.DEFER ) DEFER
,value(s.ENCODING ,a.ENCODING ,d.ENCODING ) ENCODING
,value(s.ROUNDING ,a.ROUNDING ,d.ROUNDING ) ROUNDING
from n s
left join n a
on a.appl = s.appl and a.pgm = 'DEFAULT'
and a.collid = 'DEFAULT'
left join oa1p.bind_parameters d
on d.appl = 'DEFAULT' and d.pgm = 'DEFAULT'
and d.collid = 'DEFAULT'
)
, e as
(
select
left(release, 4) || left(degree, 4) || left(dynamicRules, 4)
|| left(reopt, 4) || left(opthint, 4) || left(validate, 4) comb,
d.*
from d
)
, f as
( select case
when comb = ' ' then ' '
when comb = ' ANY BIND BIND' then 'degAny '
when comb = ' 1 BIND BIND' then 'default '
when comb = ' 1 BIND RUN ' then 'valRun '
when comb = ' 1 BIND HBD1BIND' then 'optHBD1 '
when comb = ' 1 BIND OH BIND' then 'optOH '
when comb = ' 1 BINDALWA BIND' then 'reoAlw '
when comb = ' 1 RUN BIND' then 'dynRun '
when comb = ' 1 RUN RUN ' then 'dynValRun'
when comb = 'DEAL1 BIND BIND' then 'RelDea '
else '???' end neu,
e.*
from e
)
select count(*), min(sad), max(sad)
, comb "RelaDegrDynaReopOpthVali"
, neu
from f
where appl not like 'A18Q%'
group by comb, neu
order by comb
;x;
select count(*), min(sad), max(sad)
, min(comb) "RelaDegrDynaReopOpthVali"
, max(comb) "RelaDegrDynaReopOpthVali"
, OWNER
-- , QUALIFIER
, ISOLATION
, EXPLAIN
, CURRENTDATA
, RELEASE
, DBPROTOCOL
, DEGREE
, DYNAMICRULES
, KEEPDYNAMIC
, REOPT
, OPTHINT
, IMMEDWRITE
, FLAG
, PATH
, VALIDATE
, SQLERROR
, SQLRULES
, DEFER
, ENCODING
, ROUNDING
from e
where appl not like 'A18Q%'
group by OWNER
-- , QUALIFIER
, ISOLATION
, EXPLAIN
, CURRENTDATA
, RELEASE
, DBPROTOCOL
, DEGREE
, DYNAMICRULES
, KEEPDYNAMIC
, REOPT
, OPTHINT
, IMMEDWRITE
, FLAG
, PATH
, VALIDATE
, SQLERROR
, SQLRULES
, DEFER
, ENCODING
, ROUNDING
order by OWNER
-- , QUALIFIER
, ISOLATION
, EXPLAIN
, CURRENTDATA
, RELEASE
, DBPROTOCOL
, DEGREE
, DYNAMICRULES
, KEEPDYNAMIC
, REOPT
, OPTHINT
, IMMEDWRITE
, FLAG
, PATH
, VALIDATE
, SQLERROR
, SQLRULES
, DEFER
, ENCODING
, ROUNDING
}¢--- A540769.WK.SQL(BIPA9LT4) cre=2012-07-17 mod=2012-07-17-12.18.17 A540769 ---
insert into oa1p.tbiParm (type, prio, appl, pkg, rz, ssid, location,
value, installfr)
with n as
( select APPL
, PGM
, COLLID
, INSTALLDATE
,case when OWNER <> '' then owner else null end owner
,case when QUALIFIER <> '' then QUALIFIER else null end QUALIFIER
,case when ISOLATION <> '' then ISOLATION else null end ISOLATION
,case when EXPLAIN <> '' then EXPLAIN else null end EXPLAIN
,case when CURRENTDATA <> '' then CURRENTDATA else null end CURRENTDATA
,case when RELEASE <> '' then RELEASE else null end RELEASE
,case when DBPROTOCOL <> '' then DBPROTOCOL else null end DBPROTOCOL
,case when DEGREE <> '' then DEGREE else null end DEGREE
,case when DYNAMICRULES <> '' then DYNAMICRULES else null end
DYNAMICRULES
,case when KEEPDYNAMIC <> '' then KEEPDYNAMIC else null end KEEPDYNAMIC
,case when REOPT <> '' then REOPT else null end REOPT
,case when OPTHINT <> '' then OPTHINT else null end OPTHINT
,case when IMMEDWRITE <> '' then IMMEDWRITE else null end IMMEDWRITE
,case when FLAG <> '' then FLAG else null end FLAG
,case when PATH <> '' then PATH else null end PATH
,case when VALIDATE <> '' then VALIDATE else null end VALIDATE
,case when SQLERROR <> '' then SQLERROR else null end SQLERROR
,case when SQLRULES <> '' then SQLRULES else null end SQLRULES
,case when DEFER <> '' then DEFER else null end DEFER
,case when ENCODING <> '' then ENCODING else null end ENCODING
,case when ROUNDING <> '' then ROUNDING else null end ROUNDING
from oa1p.bind_parameters
)
, d as
( select
case when s.pgm <> 'DEFAULT' then 's' else ' ' end
|| case when a.appl <> 'DEFAULT' then 'a' else ' ' end
|| case when d.appl is null then ' ' else 'd' end sad
--alue(s.? ,a.? ,d.? ) ?
,value(s.APPL ,a.APPL ,d.APPL ) APPL
,value(s.PGM ,a.PGM ,d.PGM ) PGM
,value(s.COLLID ,a.COLLID ,d.COLLID ) COLLID
,value(s.INSTALLDATE ,a.INSTALLDATE ,d.INSTALLDATE ) INSTALLDATE
,value(s.OWNER ,a.OWNER ,d.OWNER ) OWNER
,value(s.QUALIFIER ,a.QUALIFIER ,d.QUALIFIER ) QUALIFIER
,value(s.ISOLATION ,a.ISOLATION ,d.ISOLATION ) ISOLATION
,value(s.EXPLAIN ,a.EXPLAIN ,d.EXPLAIN ) EXPLAIN
,value(s.CURRENTDATA ,a.CURRENTDATA ,d.CURRENTDATA ) CURRENTDATA
,value(s.RELEASE ,a.RELEASE ,d.RELEASE ) RELEASE
,value(s.DBPROTOCOL ,a.DBPROTOCOL ,d.DBPROTOCOL ) DBPROTOCOL
,value(s.DEGREE ,a.DEGREE ,d.DEGREE ) DEGREE
,value(s.DYNAMICRULES,a.DYNAMICRULES,d.DYNAMICRULES) DYNAMICRULES
,value(s.KEEPDYNAMIC ,a.KEEPDYNAMIC ,d.KEEPDYNAMIC ) KEEPDYNAMIC
,value(s.REOPT ,a.REOPT ,d.REOPT ) REOPT
,value(s.OPTHINT ,a.OPTHINT ,d.OPTHINT ) OPTHINT
,value(s.IMMEDWRITE ,a.IMMEDWRITE ,d.IMMEDWRITE ) IMMEDWRITE
,value(s.FLAG ,a.FLAG ,d.FLAG ) FLAG
,value(s.PATH ,a.PATH ,d.PATH ) PATH
,value(s.VALIDATE ,a.VALIDATE ,d.VALIDATE ) VALIDATE
,value(s.SQLERROR ,a.SQLERROR ,d.SQLERROR ) SQLERROR
,value(s.SQLRULES ,a.SQLRULES ,d.SQLRULES ) SQLRULES
,value(s.DEFER ,a.DEFER ,d.DEFER ) DEFER
,value(s.ENCODING ,a.ENCODING ,d.ENCODING ) ENCODING
,value(s.ROUNDING ,a.ROUNDING ,d.ROUNDING ) ROUNDING
from n s
left join n a
on a.appl = s.appl and a.pgm = 'DEFAULT'
and a.collid = 'DEFAULT'
left join oa1p.bind_parameters d
on d.appl = 'DEFAULT' and d.pgm = 'DEFAULT'
and d.collid = 'DEFAULT'
)
, e as
(
select
left(release, 4) || left(degree, 4) || left(dynamicRules, 4)
|| left(reopt, 4) || left(opthint, 4) || left(validate, 4) comb,
d.*
from d
)
, f as
( select case
when comb = ' ANY BIND BIND' then 'degAny '
when comb = ' 1 BIND BIND' then 'default '
when comb = ' 1 BIND RUN ' then 'valRun '
when comb = ' 1 BIND HBD1BIND' then 'optHBD1 '
when comb = ' 1 BIND OH BIND' then 'optOH '
when comb = ' 1 BINDALWA BIND' then 'reoAlw '
when comb = ' 1 RUN BIND' then 'dynRun '
when comb = ' 1 RUN RUN ' then 'dynValRun'
when comb = 'DEAL1 BIND BIND' then 'RelDea '
else '???' end neu,
e.*
from e
)
select 'opt' type
, case when pgm <> 'DEFAULT' then '20'
else '10' end prio
, left(case when appl = 'DEFAULT' then '*' else appl end, 4) appl
, case when pgm = 'DEFAULT' then '*' else pgm end pkg
, '*' rz
, '*' ssid
, '*' location
, neu value
, installDate installFr
-- , f.*
from f
where appl not like 'A18Q%'
and neu <> 'default'
;
commit;
}¢--- A540769.WK.SQL(BIPA9LT5) cre=2012-07-17 mod=2012-07-18-13.36.20 A540769 ---
with b as (
select appl a, pgm p, qualifier q, cF, cT,
row_number() over(partition by appl, pgm
order by appl, pgm, qualifier) r
from (select appl, pgm, qualifier, min(collid) cF, max(collid) cT
from oa1p.bind_parameters
group by appl, pgm, qualifier ) q
)
, r (a, p, q1, q, r, cF, cT) as
(
select a, p, q, varchar(strip(q), 500), 1, cF, cT
from b where r = 1
union all select r.a, r.p, b.q,
r.q || ' ' || strip(b.q), r.r+1,
min(r.cF, b.cF), max(r.cT, b.cT)
from r, b
where r.a = b.a and r.p = b.p and r.r+1 = b.r and r.r < 10000
)
, s as
(
select a, p, max(r) r, min(q1) qF, max(q1) qT,
min(cF) cF, max(cT) cT, max(q) q
from r
group by a, p
-- order by max(r) desc
)
, n as
( select
case when q = 'BUA' then '---'
when p in ('CH0007', 'DB2WK1', 'DBWK1', 'DSNTEP2'
,'YAVFSLN') then '---'
when q = 'OA1$' then '$'
when q = 'OA1$ OA1$01 OA1$02' then '$+02'
when q = 'OA1$01' then '$01'
when cf = 'AV01' and ct = 'AV02' then 'AV-02'
when q = 'OA1$01 OA1$02' then '$-02'
when q = 'OA1$01 OA1$02 OA1$03' then '$-03'
when q = 'OA1$01 OA1$02 OA1$03 OA1$04' then '$-04'
when q = 'OA1$01 OA1$02 OA1$03 OA1$04 OA1$05' then '$-05'
when cF >= 'AV01' and cT <= 'AV10' then 'AV-10'
when cF >= 'AV01' and cT <= 'AV30' and q in
('OA1$01 OA1$02 OA1$03 OA1$21 OA1$22'
,'OA1$01 OA1$02 OA1$03 OA1$28 OA1$29 OA1$30'
,'OA1$01 OA1$02 OA1$09 OA1$10 OA1$28 OA1$29 OA1$30'
,'OA1$28 OA1$29 OA1$30') then 'AV%30'
when cF >= 'AV01' and cT <= 'AV30' and r > 24 then 'AVALL'
when cF >= 'PC01' and cT <= 'PC16' and r > 12 then 'PCALL'
when cF >= 'XC00' and cT <= 'XC09' and r = 10 then 'XCALL'
else '???'
end neu,
s.*
from s
)
select min(neu), max(neu), count(*), min(p), max(p),
min(cF), max(cT),
r, qF, qT, q
from n
group by r, q, qF, qT
order by 6,7,8
;x;
}¢--- A540769.WK.SQL(BIPA9LT6) cre=2012-07-17 mod=2012-07-17-16.18.58 A540769 ---
with a as
(
select case when left(pgm, 2) = 'YX' then 'YX'
when left(pgm, 2) = 'YY' then 'YY'
when left(pgm, 1) = 'Y' then substr(pgm, 2, 2)
else left(pgm, 2) end q1,
p.*
from (
select appl, pgm, collid from oa1p.bind_parameters
union all select appl, pgm, collid from oa1p.bind_exceptions
) p
where appl <> 'A18Q' and appl <> 'B18Q' and pgm <> 'DEFAULT'
), b as
(
select appl, pgm, count(*) cnt,
sum(case when q1 <> left(collid, 2) then 1 else 0 end) diff,
count(distinct left(collid, 2)) dCol,
q1, min(collid) colFr, max(collid) colTo
from a
group by q1, appl, pgm
having 0 <> sum(case when q1 <> left(collid, 2) then 1 else 0 end)
)
, n as
(
select case
when cnt = 2 and colFr = 'OA1P01'
and colTo ='OA1P02' then 'OA1P-02'
when dCol = 1 and colFr = 'AV01' and cnt = 2 then 'AV-02'
when dCol = 1 and colFr = 'AV01' and cnt > 27 then 'AVALL'
when dCol = 1 and colFr = 'XC00' and cnt = 10 then 'XCALL'
when dCol = 1 then left(colFr, 2)
when dCol = 2 and (('YY' = colFr and left(colTo, 2) = q1)
or ('YY' = colTo and left(colFr, 2) = q1))
then 'YY+'
when dCol = 2 and 'CT' = colFr and left(colTo, 2) = 'CZ'
and q1 = 'CT' then 'CZ+'
else '???'
end new,
b.*
from b
)
select * from n order by new, 7, 8
;x;
select new, count(*)
from n
group by new
;x;
select *
from oa1p.bind_exceptions p
where pgm = 'YXAUGOD'
;x;
;;;
select q1, left(collid, 2) c2, appl, pgm, count(*)
from a
where q1 <> left(collid, 2)
group by q1, left(collid, 2) , appl, pgm
;;;
select q1, left(collid, 2) c2, appl, pgm, count(*)
from a
where q1 <> left(collid, 2)
group by q1, left(collid, 2) , appl, pgm
;;;
select *
from oa1p.bind_exceptions p
where length(strip(collid)) <> 2
;x;
--where qualifier <> 'BUA' and qualifier not like 'OA1$%'
where pgm = 'YPCEVPO'
;x;
select qualifier, count(*)
from oa1p.bind_parameters p
group by qualifier
;x;
select *
from oa1p.bind_exceptions e
where e.pgm = 'YAU019U'
;
select
e.ssid,e.location,e.collid,e.qualifier,
p.appl,p.pgm,p.collid,p.installdate
from oa1p.bind_parameters p
left outer join oa1p.bind_exceptions e
on e.appl = p.appl
and e.pgm = p.pgm
and e.collid = p.collid
and e.installdate = p.installdate
where p.pgm = 'YAU019U'
and (e.ssid= 'DBAF' or e.ssid is NULL)
;
select
e.ssid,e.location,e.collid,e.qualifier,
p.appl,p.pgm,p.collid,p.installdate
from oa1p.bind_parameters p
left outer join oa1p.bind_exceptions e
on e.appl = p.appl
and e.pgm = p.pgm
and e.collid = p.collid
and e.installdate = p.installdate
and e.ssid= 'DBAF'
where p.pgm = 'YAU019U'
}¢--- A540769.WK.SQL(BIPA9LT7) cre=2012-07-19 mod=2012-07-19-13.38.59 A540769 ---
with a as
(
select appl a, pgm p , collid c,
strip(ssid) || '>' || strip(location) || '-' || strip(qualifier) t
from oa1p.bind_exceptions
where ssid <> 'DAEG'
)
, b as
( select a, p, c,
row_number() over(partition by a, p, c
order by t) l,
t
from a
)
, c (a, p, c, l, t, u) as
( select a, p, c, 1, t, varchar(t, 2000) from b where l = 1
union all select c.a, c.p, c.c, c.l+1, b.t, c.u || ' ' || b.t
from b, c
where b.a = c.a and b.p = c.p and b.c = c.c and b.l = c.l+1
and c.l < 100
)
, d as
(
select a, p, c, max(l) l, min(t) tFr, max(t) tTo, max(u) t
from c
group by a, p, c
)
, e as
( select
case when a in ('A18Q', 'DBTST', 'DB2J') then '-'
when p = 'AU5070' or p like 'YAU03%' then 'DBOF>DVBP'
when p = 'YCDPUT2' then '-'
when l = 12 and tFr = 'DBBA>-OA1A'
and left(tTo, 17) = 'DVTB>CHSKA000DBTF' then 'DVBP>DBOF'
when l > 4 and tFr = 'DBAF>-OA1A'
and tTo = 'DBTF>CHSKA000DVTB-OA1T' then 'DBOF>DVBP'
when t = 'DBOF>-OA1P DBOF>CHSKA000DBOL-OA1P' then 'DBOF>DBOL'
else '???'
end n,
d.* from d
)
select * from e ;x;
select min(n), max(n), count(*), l, tFr, tTo, t
from e
group by l, tFr, tTo, t
order by tFr, tTo, l
;x;
}¢--- A540769.WK.SQL(BIPA9MIG) cre=2012-07-17 mod=2013-10-29-14.39.04 A540769 ---
delete from OA1P.tAdm42BindVal;
delete from OA1P.tAdm41BindKey ;
----- val rdl = rz db2system location ----------------------------------
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
values('rdl', 'DBOF', '01.01.2000', 20, 'RZ1', 'DBAF') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
values('rdl', 'DBOF', '01.01.2008', 22, 'RZ8', 'DC0G') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
values('rdl', 'DBOF', '01.01.2000', 40, 'RZ1', 'DBTF') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
values('rdl', 'DBOF', '01.01.2008', 42, 'RZ8', 'DD0G') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
values('rdl', 'DBOF', '01.01.2008', 44, 'RZZ', 'DE0G') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
values('rdl', 'DBOF', '01.01.2000', 60, 'RR2', 'DBOF') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
values('rdl', 'DBOF', '01.01.2000', 80, 'RZ2', 'DBOF') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
values('rdl', 'DVBP', '01.01.2012', 22, 'RZ8', 'DCVG') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
values('rdl', 'DVBP', '01.01.2000', 40, 'RZ1', 'DVTB') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
values('rdl', 'DVBP', '01.01.2008', 42, 'RZ8', 'DDVG') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
values('rdl', 'DVBP', '01.01.2008', 44, 'RZZ', 'DEVG') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
values('rdl', 'DVBP', '01.01.2000', 60, 'RR2', 'DVBP') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
values('rdl', 'DVBP', '01.01.2000', 80, 'RZ2', 'DVBP') ;
insert into OA1P.tAdm42BindVal
(type, key, installBegin, seq, va1, va2)
select type, 'DBOF>DVBP', installBegin, seq, va1, va2
from OA1P.tAdm42BindVal where type = 'rdl' and key = 'DBOF';
insert into OA1P.tAdm42BindVal
(type, key, installBegin, seq, va1, va2)
select type, 'DBOF>DVBP', installBegin, seq+1, va1, va2
from OA1P.tAdm42BindVal where type = 'rdl' and key = 'DBOF';
update OA1P.tAdm42BindVal set va3 = 'CHROI000DCVG'
where type = 'rdl' and key = 'DBOF>DVBP' and seq = 23;
update OA1P.tAdm42BindVal set va3 = 'CHSKA000DVTB'
where type = 'rdl' and key = 'DBOF>DVBP' and seq = 41;
update OA1P.tAdm42BindVal set va3 = 'CHROI000DDVG'
where type = 'rdl' and key = 'DBOF>DVBP' and seq = 43;
update OA1P.tAdm42BindVal set va3 = 'CHROI00ZDEVG'
where type = 'rdl' and key = 'DBOF>DVBP' and seq = 45;
update OA1P.tAdm42BindVal set va3 = 'CHSKA000DVBP'
where type = 'rdl' and key = 'DBOF>DVBP' and seq = 61;
update OA1P.tAdm42BindVal set va3 = 'CHSKA000DVBP'
where type = 'rdl' and key = 'DBOF>DVBP' and seq = 81;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
select type, 'DBOF>DBOL', seq, va1, va2, installBegin
from OA1P.tAdm42BindVal where type = 'rdl' and key = 'DBOF';
insert into OA1P.tAdm42BindVal
(type, key, seq, va1, va2, va3, installBegin)
values('rdl', 'DBOF>DBOL', 81, 'RZ2', 'DBOF','CHSKA000DBOL'
, '01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
select type, 'DVBP>DBOF', installBegin, seq, va1, va2
from OA1P.tAdm42BindVal where type = 'rdl' and key = 'DVBP';
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
select type, 'DVBP>DBOF', installBegin, seq+1, va1, va2
from OA1P.tAdm42BindVal where type = 'rdl' and key = 'DVBP';
update OA1P.tAdm42BindVal set va3 = 'CHROI000DC0G'
where type = 'rdl' and key = 'DVBP>DBOF' and seq = 23;
update OA1P.tAdm42BindVal set va3 = 'CHSKA000DBTF'
where type = 'rdl' and key = 'DVBP>DBOF' and seq = 41;
update OA1P.tAdm42BindVal set va3 = 'CHROI000DD0G'
where type = 'rdl' and key = 'DVBP>DBOF' and seq = 43;
update OA1P.tAdm42BindVal set va3 = 'CHROI00ZDE0G'
where type = 'rdl' and key = 'DVBP>DBOF' and seq = 45;
update OA1P.tAdm42BindVal set va3 = 'CHSKA000DBOF'
where type = 'rdl' and key = 'DVBP>DBOF' and seq = 61;
update OA1P.tAdm42BindVal set va3 = 'CHSKA000DBOF'
where type = 'rdl' and key = 'DVBP>DBOF' and seq = 81;
----- key rdl = rz db2system location ----------------------------------
insert into OA1P.tAdm41BindKey (type, prio, key, installBegin)
values ('rdl', '00', 'DBOF', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, appl, key, installBegin)
values ('rdl', '00', 'ELA%', 'DVBP', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, pgm, key, installBegin)
with a as
(
select appl a, pgm p , collid c, date(createdTS) r,
strip(ssid) || '>' || strip(location) || '-' || strip(qualifier) t
from oa1p.bind_exceptions
where ssid <> 'DAEG'
)
, b as
( select a, p, c, r,
row_number() over(partition by a, p, c
order by t) l,
t
from a
)
, c (a, p, c, r, l, t, u) as
( select a, p, c, r, 1, t, varchar(t, 2000) from b where l = 1
union all select c.a, c.p, c.c, min(c.r, b.r),
c.l+1, b.t, c.u || ' ' || b.t
from b, c
where b.a = c.a and b.p = c.p and b.c = c.c and b.l = c.l+1
and c.l < 100
)
, d as
(
select a, p, c, min(r) r, max(l) l, min(t) tFr, max(t) tTo, max(u) t
from c
group by a, p, c
)
, e as
( select
case when a in ('A18Q', 'DBTST', 'DB2J') then '-'
when p = 'AU5070' or p like 'YAU03%' then 'DBOF>DVBP'
when p = 'YCDPUT2' then '-'
when l = 12 and tFr = 'DBBA>-OA1A'
and left(tTo, 17) = 'DVTB>CHSKA000DBTF' then 'DVBP>DBOF'
when l > 4 and tFr = 'DBAF>-OA1A'
and (tTo = 'DBTF>CHSKA000DVTB-OA1T'
or tTo like 'DE0G>CH%DEVG-OA1P') then 'DBOF>DVBP'
when t = 'DBOF>-OA1P DBOF>CHSKA000DBOL-OA1P' then 'DBOF>DBOL'
else '???'
end n,
d.* from d
)
select 'rdl', '20', p, n, r --- , l, tFr, tTo, t
from e where n <> '-'
;
----- key q: base qualifier ----(no val|) ------------------------------
insert into OA1P.tAdm41BindKey (type, prio, key, installBegin)
values ('q', '00', 'OA1P', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, appl, key, installBegin)
values ('q', '02', 'ELA%', 'BUA', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, dbSy, key, installBegin)
values ('q', '05', 'DBAF', 'OA1A', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, dbSy, key, installBegin)
values ('q', '05', 'DBTF', 'OA1T', '01.01.2000');
----- val cq: collection qualifier ------------------------------------
declare global temporary table session.i
(i int not null, c2 char(2) not null) ccsid unicode;
insert into session.i
select i, right('0000' || strip(char(i)), 2) c2
from (select row_number() over() -1 i
from sysibm.sysColumns fetch first 100 rows only)s
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('cq', '$', 1, '$', '$', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
select 'cq', 'AV-03', i, 'AV' || c2, '$' || c2, '01.01.2000'
from session.i where i > 0 and i <= 3
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
select 'cq', 'AV-03-22', i, 'AV' || c2, '$' || c2, '01.01.2000'
from session.i where i in (1, 2, 3, 21, 22)
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
select 'cq', 'AV-10-32', i, 'AV' || c2, '$' || c2, '01.01.2000'
from session.i where i in(1,2,3,5,6,7,8,9,10,28,29,30,31,32)
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
select 'cq', 'AVALL', i, 'AV' || c2, '$' || c2, '01.01.2000'
from session.i where i > 0 and i <= 32 and i <> 4
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('cq', 'AV0101', 1, 'AV01', '$01', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('cq', 'AV0101', 1, 'AV02', '$01', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('cq', 'AV12', 1, 'AV', '$12', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
select 'cq', 'BE-04', i, 'BE' || c2, '$' || c2, '01.01.2000'
from session.i where i > 0 and i <= 4
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('cq', 'BE+04', 0, 'BE', '$', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
select 'cq', 'BE+04', i, 'BE' || c2, '$' || c2, '01.01.2000'
from session.i where i > 0 and i <= 4
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('cq', 'CD', 1, 'CD', '$', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('cq', 'CTCZ', 1, 'CT', '$', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('cq', 'CTCZ', 2, 'CZ', '$', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('cq', 'KE', 1, 'KE', '$', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('cq', 'NI-02', 2, 'NI01', '$01', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('cq', 'NI-02', 3, 'NI02', '$02', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('cq', 'NI+02', 0, 'NI', '$', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('cq', 'NI+02', 1, 'NI01', '$01', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('cq', 'NI+02', 2, 'NI02', '$02', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
select 'cq', 'PC-02', i, 'PC' || c2, '$' || c2, '01.01.2000'
from session.i where i > 0 and i <= 2
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
select 'cq', 'PCALL', i, 'PC' || c2, '$' || c2, '01.01.2000'
from session.i where i > 0 and i <= 16
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
select 'cq', 'XCALL', i, 'XC' || c2, '$' || c2, '01.01.2000'
from session.i where i >= 0 and i <= 9
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('cq', 'YY+', 1, '$', '$', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('cq', 'YY+', 10, 'YY', '$', '01.01.2000');
----- key cq: collection qualifier ------------------------------------
insert into OA1P.tAdm41BindKey (type, pgm, prio, key, installBegin)
values('cq', '%', '00', '$', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, pgm, prio, key, installBegin)
with a as --- left join old tables -------------------------------------
(
select value(p.appl , e.appl) appl
, value(p.pgm , e.pgm ) pgm
, value(p.collid, e.collid) col
, value(p.installdate, e.installdate) installDate
, value(p.qualifier, '') pQua
, value(e.qualifier, '') eQua
, value(e.ssid, '') eDbSy
, value(e.location, '') eLoc
from oa1p.bind_parameters p left join oa1p.bind_exceptions e
on p.appl = e.appl
and p.pgm = e.pgm
and p.collid = e.collid
and p.installdate = e.installdate
)
, b as --- add default Qualifier and Collection
(
select a.*
, case when appl like 'ELA%' then 'BUA' else 'OA1$' end quaVar
, case when appl like 'ELA%' then 'BUA'
when eDbSy = 'DBAF' then 'OA1A'
when eDbSy = 'DBTF' then 'OA1T'
else 'OA1P' end quaDef
, case when left(pgm, 2) = 'YX' then 'YX'
when left(pgm, 2) = 'YY' then 'YY'
when left(pgm, 1) = 'Y' then substr(pgm, 2, 2)
else left(pgm, 2) end colDef
, row_number() over(partition by appl, pgm, eDbSy, eLoc
order by col) r
from a
where appl <> 'A18Q' and appl <> 'B18Q'
and pgm not in ('DEFAULT', 'DBWK1', 'DB2WK1'
-- ,'YAVCPID', 'YAVX012', 'YAV0129', 'NI8340'
-- ,'NI8660', 'NI6880')
)
and col not in ('DI_DRDA', 'EK_DRDA', 'RM_DRDA', 'TR_DRDA')
)
, d as --- add qualifier ----------------------------------------------
(
select b.*
, case when eQua is not null and eQua <> '' then eQua
when pQua is not null and pQua <> '' then pQua
else raise_error(77001, pgm || ': no qua')
end qua
from b
)
, e --- recursive build lists of colls/quals --------------------------
( appl, pgm, col, installdate, eDbSy, eLoc
, quaVar, quaDef, colDef, r, qua, quals, colls) as
(
select appl, pgm, col, installdate, eDbSy, eLoc
, quaVar, quaDef, colDef, r, qua
, cast(strip(qua) as varchar(1000))
, cast(strip(col) as varchar(1000))
from d where r = 1
union all select e.appl, e.pgm, d.col, e.installdate
, e.eDbSy, e.eLoc, d.quaVar, d.quaDef, d.colDef, e.r+1, d.qua
, e.quals || ' ' || strip(d.qua)
, e.colls || ' ' || strip(d.col)
from e join d
on e.appl = d.appl and e.pgm = d.pgm
and e.eDbSy = d.edbSy
and e.eLoc = d.eLoc and e.r + 1 = d.r and e.r < 999
)
, f as --- select maximal lists ----------------------------------------
(
select appl, pgm, max(installdate) installDate, eDbSy, eLoc
, min(col) colFr, max(col) colTo
, min(colDef) colDef
, min(qua) quaFr, max(qua) quaTo
, min(quaVar) quaVar, max(quaVar) quaVarMax
, min(quaDef) quaDef, max(quaDef) quaDefMax
, max(r) r
, max(quals) quals
, max(colls) colls
from e
group by appl, pgm, eDbSy, eLoc
)
, g1 as --- special quals ---------------------------------------------
(
select f.*
, case when quaDef <> quaDefMax
then raise_error(77031, pgm || '@' || eDbSy
|| ' quaDef ' || quaDef || ' ==> ' || quaDefMax)
when quaDef in ('OA1A', 'OA1T', 'OA1P')
then replace(quals, quaDef, 'OA1$') else quals end qualD
, case when eDbSy = 'DBBA'
then replace(quals, 'OA1A', 'OA1&')
when eDbSy = 'DVTB'
then replace(quals, 'OA1T', 'OA1&')
else replace(replace(quals, quaDef, 'OA1&')
, 'OA1$', 'OA1&') end qualV
from f
)
, g as --- group over all dbSys/Location -----------------------------
(
select appl, pgm, max(installdate) installDate
, min(colFr) colFr
, max(colTo) colTo
, min(colDef) colDef, max(colDef) colDefMax
, min(colls) colls, max(colls) collMax
, min(quaFr) quaFr
, max(quaTo) quaTo
, min(quaVar) quaVar, max(quaVarMax) quaVarMax
, min(quals) quals, max(quals) qualMax
, min(qualD) qualD, max(qualD) quaDMax
, min(qualV) qualV, max(qualV) quaVMax
, count(*) gR
from g1
group by appl, pgm
)
, h2 as --- check wether no bad change within dbSys/Location ----------
(
select appl, pgm, installDate, colFr, colTo, colDef
, quaVar, quaFr, quaTo, colls
, case when colDef <> colDefMax
then raise_error(77011, pgm || ' colDef '
|| colDef || ' ==> ' || colDefMax)
when colls <> collMax
then raise_error(77013, pgm || ' colls '
|| colls || ' ==> ' || collMax)
when quaVar <> quaVarMax
then raise_error(77032, pgm
|| ' quaVar ' || quaVar || ' ==> ' || quaVarMax)
when quals = qualMax then quals
when qualD = quaDMax then qualD
when qualV = quaVMax then qualV
else raise_error(77022, pgm
|| ' quals ' || quals || ' ==> ' || qualMax
|| ' qualD ' || qualD || ' ==> ' || quaDMax
|| ' qualV ' || qualV || ' ==> ' || quavMax)
end quals
from g
)
, h as --- colls und quals komprimieren --------------------------------
(
select h2.*
, replace(colls, ' ' || left(colls, 2), '=') collR
, replace(quals, ' ' || left(quals, 4), '=') qualR
from h2
)
, i as --- den neuen cq key bestimmen ----------------------------------
(
select h.*
, cast(case --- default
when colls = colDef and quals = quaVar then '-'
--- spezial: colls und quals nicht in sync --------
--- au
when quals = 'OA1&' and colls = 'AU' then 'AU&'
--- av
when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
and qualR='OA1$01=02=03=09=09=09=09=09=10=09=09=09=09=09'
|| '=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09'
then 'AV/Y/X012'
when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
and qualR='OA1$01=02=03=05=06=07=08=09=10=11=12=12=12=12'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
then 'AV/Y/0129'
when collR = 'AV01=02' and qualR = 'OA1$01=01'
then 'AV0101'
when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
and qualR='OA1$02=02=03=05=06=07=08=09=10=11=12=13=14=15'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
then 'AV/Y/CPID'
when collR = 'AV' and quals = 'OA1P12' then 'AV12'
--- be
when collR = 'BE=01=02=03=04' and qualR = 'OA1$01=01=02=03=04'
then 'BE+04'
when colls = 'CT CZ' and qualR = 'OA1$=' then 'CTCZ' --- ctcz
when colls = coldef ||' YY' and qualR = 'OA1$=' --- + yy
then 'YY+'
when colls = 'OA1P01 OA1P02' and qualR = 'OA1$01=02' --- oa1p
then 'OA1P-02'
--- allgemei
when quals = 'OA1&' and colls = colDef then 'DVTB&'
when quals = 'OA1A' and colls = colDef then 'OA1A'
--- error if colls und quals nicht in sync--------
when 'OA1$' || substr(collR, 3) <> qualR --en '???quals/coll'
then raise_error(77021, pgm || ' colls ' || collR
|| ' mismatches quals ' || qualR)
--- av
when right(collR, 83) = '05=06=07=08=09=10=11=12=13=14=15=16'
|| '=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
and left(collR, 14) in ('AV01=02=03=05='
, 'AV01=02=05=06=', 'AV05=06=07=08=' )
then 'AVALL'
when collR in ('AV01=02=03', 'AV01=02','AV03') then 'AV-03'
when collR in ('AV01=02=03=05=06=07=08=09=10'
,'AV01=02=03=28=29=30=31=32'
,'AV01=02=09=10=28=29=30=31=32'
,'AV28=29=30=31=32') then 'AV-10-32'
when collR = 'AV01=02=03=21=22' then 'AV-03-22'
when collR = 'BE01=02=03=04' then 'BE-04' --- be
when collR = 'NI01=02' then 'NI-02' --- ni
when collR = 'NI=01=02' then 'NI+02'
when collR in ('PC01=02', 'PC01') then 'PC-02' --- pc
when collR in
('PC01=02=03=04=05=06=07=08=09=10=11=12=13=14=15=16'
,'PC01=02=03=04=05=06=07=08=09=10=11=13=14=15=16')
then 'PCALL'
--- xc
when collR = 'XC00=01=02=03=04=05=06=07=08=09' then 'XCALL'
--- allgemei
when colls in ('BE', 'CD', 'KE') then colls
else '???'
end as char(10)) cq
from h
)
select 'cq', pgm, '20', cq, installDate
from i
where cq <> '-'
;
update OA1P.tAdm41BindKey set type = 'q'
, dbSy = 'DVTB'
, key = 'OA1T'
where type = 'cq' and key = 'AU&'
;
----- val ov: bindOptions values --------------------------------------
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 110, 'OWNER', 'CMNBATCH','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 210, 'ISOLATION', 'CS','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 220, 'DEGREE', '1','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 310, 'DYNAMICRULES', 'BIND','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 320, 'VALIDATE', 'BIND','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 910, 'EXPLAIN', 'YES','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 920, 'FLAG', 'I','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 930, 'SQLERROR', 'NOPACKAGE','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 9999, 'ACTION', 'REPLACE','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'degAny', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'degAny', 220, 'DEGREE', 'ANY','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'valRun', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'valRun', 320, 'VALIDATE', 'RUN','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'optHBD1',-9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'optHBD1', 330, 'OPTHINT', 'HBD1','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'optOH', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'optOH', 330, 'OPTHINT', 'OH' ,'01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'reoAlw', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'reoAlw', 340, 'REOPT', 'ALWAYS','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'dynRun', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'dynRun', 310, 'DYNAMICRULES', 'RUN','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'dynValRun',-9999,'-->parent','dynRun', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'dynValRun', 320, 'VALIDATE', 'RUN','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'relDea', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'relDea', 230, 'RELEASE', 'DEALLOCATE','01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, appl, pgm, rz, dbSy,
key, installBegin)
values('ov', '00', '%', '%', '%', '%', 'default',
'01.01.2000')
;
insert into OA1P.tAdm41BindKey (type, prio, appl, pgm, rz, dbSy,
key, installBegin)
with n as
( select APPL
, PGM
, COLLID
, INSTALLDATE
,case when OWNER <> '' then owner else null end owner
,case when QUALIFIER <> '' then QUALIFIER else null end QUALIFIER
,case when ISOLATION <> '' then ISOLATION else null end ISOLATION
,case when EXPLAIN <> '' then EXPLAIN else null end EXPLAIN
,case when CURRENTDATA <> '' then CURRENTDATA else null end CURRENTDATA
,case when RELEASE <> '' then RELEASE else null end RELEASE
,case when DBPROTOCOL <> '' then DBPROTOCOL else null end DBPROTOCOL
,case when DEGREE <> '' then DEGREE else null end DEGREE
,case when DYNAMICRULES <> '' then DYNAMICRULES else null end
DYNAMICRULES
,case when KEEPDYNAMIC <> '' then KEEPDYNAMIC else null end KEEPDYNAMIC
,case when REOPT <> '' then REOPT else null end REOPT
,case when OPTHINT <> '' then OPTHINT else null end OPTHINT
,case when IMMEDWRITE <> '' then IMMEDWRITE else null end IMMEDWRITE
,case when FLAG <> '' then FLAG else null end FLAG
,case when PATH <> '' then PATH else null end PATH
,case when VALIDATE <> '' then VALIDATE else null end VALIDATE
,case when SQLERROR <> '' then SQLERROR else null end SQLERROR
,case when SQLRULES <> '' then SQLRULES else null end SQLRULES
,case when DEFER <> '' then DEFER else null end DEFER
,case when ENCODING <> '' then ENCODING else null end ENCODING
,case when ROUNDING <> '' then ROUNDING else null end ROUNDING
from oa1p.bind_parameters
)
, d as
( select
case when s.pgm <> 'DEFAULT' then 's' else ' ' end
|| case when a.appl <> 'DEFAULT' then 'a' else ' ' end
|| case when d.appl is null then ' ' else 'd' end sad
--alue(s.$ ,a.$ ,d.$ ) $
,value(s.APPL ,a.APPL ,d.APPL ) APPL
,value(s.PGM ,a.PGM ,d.PGM ) PGM
,value(s.COLLID ,a.COLLID ,d.COLLID ) COLLID
,value(s.INSTALLDATE ,a.INSTALLDATE ,d.INSTALLDATE ) INSTALLDATE
,value(s.OWNER ,a.OWNER ,d.OWNER ) OWNER
,value(s.QUALIFIER ,a.QUALIFIER ,d.QUALIFIER ) QUALIFIER
,value(s.ISOLATION ,a.ISOLATION ,d.ISOLATION ) ISOLATION
,value(s.EXPLAIN ,a.EXPLAIN ,d.EXPLAIN ) EXPLAIN
,value(s.CURRENTDATA ,a.CURRENTDATA ,d.CURRENTDATA ) CURRENTDATA
,value(s.RELEASE ,a.RELEASE ,d.RELEASE ) RELEASE
,value(s.DBPROTOCOL ,a.DBPROTOCOL ,d.DBPROTOCOL ) DBPROTOCOL
,value(s.DEGREE ,a.DEGREE ,d.DEGREE ) DEGREE
,value(s.DYNAMICRULES,a.DYNAMICRULES,d.DYNAMICRULES) DYNAMICRULES
,value(s.KEEPDYNAMIC ,a.KEEPDYNAMIC ,d.KEEPDYNAMIC ) KEEPDYNAMIC
,value(s.REOPT ,a.REOPT ,d.REOPT ) REOPT
,value(s.OPTHINT ,a.OPTHINT ,d.OPTHINT ) OPTHINT
,value(s.IMMEDWRITE ,a.IMMEDWRITE ,d.IMMEDWRITE ) IMMEDWRITE
,value(s.FLAG ,a.FLAG ,d.FLAG ) FLAG
,value(s.PATH ,a.PATH ,d.PATH ) PATH
,value(s.VALIDATE ,a.VALIDATE ,d.VALIDATE ) VALIDATE
,value(s.SQLERROR ,a.SQLERROR ,d.SQLERROR ) SQLERROR
,value(s.SQLRULES ,a.SQLRULES ,d.SQLRULES ) SQLRULES
,value(s.DEFER ,a.DEFER ,d.DEFER ) DEFER
,value(s.ENCODING ,a.ENCODING ,d.ENCODING ) ENCODING
,value(s.ROUNDING ,a.ROUNDING ,d.ROUNDING ) ROUNDING
from n s
left join n a
on a.appl = s.appl and a.pgm = 'DEFAULT'
and a.collid = 'DEFAULT'
left join oa1p.bind_parameters d
on d.appl = 'DEFAULT' and d.pgm = 'DEFAULT'
and d.collid = 'DEFAULT'
)
, e as
(
select
left(release, 4) || left(degree, 4) || left(dynamicRules, 4)
|| left(reopt, 4) || left(opthint, 4) || left(validate, 4) comb,
d.*
from d
)
, f as
( select case
when comb = ' ANY BIND BIND' then 'degAny '
when comb = ' 1 BIND BIND' then 'default '
when comb = ' 1 BIND RUN ' then 'valRun '
when comb = ' 1 BIND HBD1BIND' then 'optHBD1 '
when comb = ' 1 BIND OH BIND' then 'optOH '
when comb = ' 1 BINDALWA BIND' then 'reoAlw '
when comb = ' 1 RUN BIND' then 'dynRun '
when comb = ' 1 RUN RUN ' then 'dynValRun'
when comb = 'DEAL1 BIND BIND' then 'relDea '
else '$$$' end neu,
e.*
from e
)
select 'ov' type
, case when pgm <> 'DEFAULT' then '20'
else '10' end prio
, left(case when appl = 'DEFAULT' or pgm <> 'DEFAULT'
then '%' else appl end, 4) appl
, case when pgm = 'DEFAULT' then '%' else pgm end pgm
, '%' rz
, '%' dbSy
-- , '%' location
, neu key
, installDate installBegin
-- , f.*
from f
where appl not like 'A18Q%'
and neu <> 'default'
;x;
insert into OA1P.tAdm41BindKey (type, prio, key, installBegin)
values ('path', '00', 'DBOF', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, appl, key, installBegin)
values ('path', '00', 'ELA%', 'DVBP', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, pgm, key, installBegin)
with a as
(
select appl a, pgm p , collid c, date(createdTS) r,
strip(ssid) || '>' || strip(location) || '-' || strip(qualifier) t
from oa1p.bind_exceptions
where ssid <> 'DAEG'
)
, b as
( select a, p, c, r,
row_number() over(partition by a, p, c
order by t) l,
t
from a
)
, c (a, p, c, r, l, t, u) as
( select a, p, c, r, 1, t, varchar(t, 2000) from b where l = 1
union all select c.a, c.p, c.c, min(c.r, b.r),
c.l+1, b.t, c.u || ' ' || b.t
from b, c
where b.a = c.a and b.p = c.p and b.c = c.c and b.l = c.l+1
and c.l < 100
)
, d as
(
select a, p, c, min(r) r, max(l) l, min(t) tFr, max(t) tTo, max(u) t
from c
group by a, p, c
)
, e as
( select
case when a in ('A18Q', 'DBTST', 'DB2J') then '-'
when p = 'AU5070' or p like 'YAU03%' then 'DBOF>DVBP'
when p = 'YCDPUT2' then '-'
when l = 12 and tFr = 'DBBA>-OA1A'
and left(tTo, 17) = 'DVTB>CHSKA000DBTF' then 'DVBP>DBOF'
when l > 4 and tFr = 'DBAF>-OA1A'
and tTo = 'DBTF>CHSKA000DVTB-OA1T' then 'DBOF>DVBP'
when t = 'DBOF>-OA1P DBOF>CHSKA000DBOL-OA1P' then 'DBOF>DBOL'
else '???'
end n,
d.* from d
)
select 'path', '20', p, n, r
from e where n <> '-'
;
delete from OA1P.tBiPaPgm;
commit;
}¢--- A540769.WK.SQL(BIPA9MI2) cre=2013-10-24 mod=2013-10-30-17.15.46 A540769 ---
-- insert into OA1P.tAdm41BindKey (type, pgm, prio, key, installBegin)
with p as --- mark outdated entries in bind_parameters ----------------
(
select p.*
, row_number() over (partition by appl, pgm, collid
order by installdate desc) iNr
from oa1p.bind_parameters p
where appl <> 'A18Q' and appl <> 'B18Q'
and pgm not in ('DEFAULT', 'DBWK1', 'DB2WK1', 'DB2JAA'
)
and collid not in ('DI_DRDA', 'EK_DRDA', 'RM_DRDA', 'TR_DRDA')
)
, a as --- left join old tables ----------------------------------------
(
select value(p.appl , e.appl) appl
, value(p.pgm , e.pgm ) pgm
, value(p.collid, e.collid) col
, value(p.installdate, e.installdate) installDate
, value(p.qualifier, '') pQua
, value(e.qualifier, '') eQua
, value(e.ssid, '') eDbSy
, value(e.location, '') eLoc
from p left join oa1p.bind_exceptions e
on p.appl = e.appl
and p.pgm = e.pgm
and p.collid = e.collid
and p.installdate = e.installdate
where p.iNr = 1
)
, b as --- add default Qualifier and Collection
(
select a.*
, case when appl like 'ELA%' then 'BUA' else 'OA1$' end quaVar
, case when appl like 'ELA%' then 'BUA'
when eDbSy = 'DBAF' then 'OA1A'
when eDbSy = 'DBTF' then 'OA1T'
else 'OA1P' end quaDef
, case when left(pgm, 2) = 'YX' then 'YX'
when left(pgm, 2) = 'YY' then 'YY'
when left(pgm, 1) = 'Y' then substr(pgm, 2, 2)
else left(pgm, 2) end colDef
, row_number() over(partition by appl, pgm, eDbSy, eLoc
order by col) r
from a
)
, d as --- add qualifier ----------------------------------------------
(
select b.*
, case when eQua is not null and eQua <> '' then eQua
when pQua is not null and pQua <> '' then pQua
else raise_error(77001, pgm || ': no qua')
end qua
from b
)
, e --- recursive build lists of colls/quals --------------------------
( appl, pgm, col, installdate, eDbSy, eLoc
, quaVar, quaDef, colDef, r, qua, quals, colls) as
(
select appl, pgm, col, installdate, eDbSy, eLoc
, quaVar, quaDef, colDef, r, qua
, cast(strip(qua) as varchar(1000))
, cast(strip(col) as varchar(1000))
from d where r = 1
union all select e.appl, e.pgm, d.col, e.installdate
, e.eDbSy, e.eLoc, d.quaVar, d.quaDef, d.colDef, e.r+1, d.qua
, e.quals || ' ' || strip(d.qua)
, e.colls || ' ' || strip(d.col)
from e join d
on e.appl = d.appl and e.pgm = d.pgm
and e.eDbSy = d.edbSy
and e.eLoc = d.eLoc and e.r + 1 = d.r and e.r < 999
)
, f as --- select maximal lists ----------------------------------------
(
select appl, pgm, max(installdate) installDate, eDbSy, eLoc
, min(col) colFr, max(col) colTo
, min(colDef) colDef
, min(qua) quaFr, max(qua) quaTo
, min(quaVar) quaVar, max(quaVar) quaVarMax
, min(quaDef) quaDef, max(quaDef) quaDefMax
, max(r) r
, max(quals) quals
, max(colls) colls
from e
group by appl, pgm, eDbSy, eLoc
)
, g1 as --- special quals ---------------------------------------------
(
select f.*
, case when quaDef <> quaDefMax
then raise_error(77031, pgm || '@' || eDbSy
|| ' quaDef ' || quaDef || ' ==> ' || quaDefMax)
when quaDef in ('OA1A', 'OA1T', 'OA1P')
then replace(quals, quaDef, 'OA1$') else quals end qualD
, case when eDbSy = 'DBBA'
then replace(quals, 'OA1A', 'OA1&')
when eDbSy = 'DVTB'
then replace(quals, 'OA1T', 'OA1&')
else replace(replace(quals, quaDef, 'OA1&')
, 'OA1$', 'OA1&') end qualV
from f
)
, g as --- group over all dbSys/Location -----------------------------
(
select appl, pgm, max(installdate) installDate
, min(colFr) colFr
, max(colTo) colTo
, min(colDef) colDef, max(colDef) colDefMax
, min(colls) colls, max(colls) collMax
, min(quaFr) quaFr
, max(quaTo) quaTo
, min(quaVar) quaVar, max(quaVarMax) quaVarMax
, min(quals) quals, max(quals) qualMax
, min(qualD) qualD, max(qualD) quaDMax
, min(qualV) qualV, max(qualV) quaVMax
, count(*) gR
from g1
group by appl, pgm
)
, h2 as --- check wether no bad change within dbSys/Location ----------
(
select appl, pgm, installDate, colFr, colTo, colDef
, quaVar, quaFr, quaTo, colls
, case when colDef <> colDefMax
then raise_error(77011, pgm || ' colDef '
|| colDef || ' ==> ' || colDefMax)
when colls <> collMax
then raise_error(77013, pgm || ' colls '
|| colls || ' ==> ' || collMax)
when quaVar <> quaVarMax
then raise_error(77032, pgm
|| ' quaVar ' || quaVar || ' ==> ' || quaVarMax)
when quals = qualMax then quals
when qualD = quaDMax then qualD
when qualV = quaVMax then qualV
else raise_error(77022, pgm
|| ' quals ' || quals || ' ==> ' || qualMax
|| ' qualD ' || qualD || ' ==> ' || quaDMax
|| ' qualV ' || qualV || ' ==> ' || quavMax)
end quals
from g
)
, h as --- colls und quals komprimieren --------------------------------
(
select h2.*
, replace(colls, ' ' || left(colls, 2), '=') collR
, replace(quals, ' ' || left(quals, 4), '=') qualR
from h2
)
, i as --- den neuen cq key bestimmen ----------------------------------
(
select h.*
, cast(case --- default
when colls = colDef and quals = quaVar then '-'
--- spezial: colls und quals nicht in sync --------
--- au
when quals = 'OA1&' and colls = 'AU' then 'AU&'
--- av
when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
and qualR='OA1$01=02=03=09=09=09=09=09=10=09=09=09=09=09'
|| '=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09'
then 'AV/Y/X012'
when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
and qualR='OA1$01=02=03=05=06=07=08=09=10=11=12=12=12=12'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
then 'AV/Y/0129'
when collR = 'AV01=02' and qualR = 'OA1$01=01'
then 'AV0101'
when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
and qualR='OA1$02=02=03=05=06=07=08=09=10=11=12=13=14=15'
|| '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
then 'AV/Y/CPID'
when collR = 'AV' and quals = 'OA1P12' then 'AV12'
--- be
when collR = 'BE=01=02=03=04' and qualR = 'OA1$01=01=02=03=04'
then 'BE+04'
when colls = 'CT CZ' and qualR = 'OA1$=' then 'CTCZ' --- ctcz
when colls = coldef ||' YY' and qualR = 'OA1$=' --- + yy
then 'YY+'
when colls = 'OA1P01 OA1P02' and qualR = 'OA1$01=02' --- oa1p
then 'OA1P-02'
--- allgemei
when quals = 'OA1&' and colls = colDef then 'DVTB&'
when quals = 'OA1A' and colls = colDef then 'OA1A'
--- error if colls und quals nicht in sync--------
when 'OA1$' || substr(collR, 3) <> qualR --en '???quals/coll'
then raise_error(77021, pgm || ' colls ' || collR
|| ' mismatches quals ' || qualR)
--- av
when right(collR, 83) = '05=06=07=08=09=10=11=12=13=14=15=16'
|| '=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
and left(collR, 14) in ('AV01=02=03=05='
, 'AV01=02=05=06=', 'AV05=06=07=08=' )
then 'AVALL'
when collR in ('AV01=02=03', 'AV01=02','AV03') then 'AV-03'
when collR in ('AV01=02=03=05=06=07=08=09=10'
,'AV01=02=03=28=29=30=31=32'
,'AV01=02=09=10=28=29=30=31=32'
,'AV28=29=30=31=32') then 'AV-10-32'
when collR = 'AV01=02=03=21=22' then 'AV-03-22'
when collR = 'BE01=02=03=04' then 'BE-04' --- be
when collR = 'NI01=02' then 'NI-02' --- ni
when collR = 'NI=01=02' then 'NI+02'
when collR in ('PC01=02', 'PC01') then 'PC-02' --- pc
when collR in
('PC01=02=03=04=05=06=07=08=09=10=11=12=13=14=15=16'
,'PC01=02=03=04=05=06=07=08=09=10=11=13=14=15=16')
then 'PCALL'
--- xc
when collR = 'XC00=01=02=03=04=05=06=07=08=09' then 'XCALL'
--- allgemei
when colls in ('BE', 'CD', 'KE') then colls
else '???'
end as char(10)) cq
from h
)
select count(*), cq, collr, qualr
from i -- where cq like 'OA1P-0%' ;
group by cq, collr, qualr
order by cq, collr, qualr
;x;
select 'cq', pgm, '20', cq, installDate
from i
where cq <> '-'
order by cq
;x;
----- val ov: bindOptions values --------------------------------------
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 110, 'OWNER', 'CMNBATCH','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 210, 'ISOLATION', 'CS','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 220, 'DEGREE', '1','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 310, 'DYNAMICRULES', 'BIND','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 320, 'VALIDATE', 'BIND','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 910, 'EXPLAIN', 'YES','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 920, 'FLAG', 'I','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 930, 'SQLERROR', 'NOPACKAGE','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'default', 9999, 'ACTION', 'REPLACE','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'degAny', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'degAny', 220, 'DEGREE', 'ANY','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'valRun', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'valRun', 320, 'VALIDATE', 'RUN' ,'01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'optHBD1',-9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'optHBD1', 330, 'OPTHINT', 'HBD1','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'optOH', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'optOH', 330, 'OPTHINT', 'OH' ,'01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'reoAlw', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'reoAlw', 340, 'REOPT', 'ALWAYS','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'dynRun', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'dynRun', 310, 'DYNAMICRULES', 'RUN','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'dynValRun',-9999,'-->parent','dynRun', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'dynValRun',-9999,'-->parent','valRun', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'relDea', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
values('ov', 'relDea', 230, 'RELEASE', 'DEALLOCATE','01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, appl, pgm, rz, dbSy,
key, installBegin)
values('ov', '00', '%', '%', '%', '%', '%', 'default',
'01.01.2000')
;
insert into OA1P.tAdm41BindKey (type, prio, appl, pgm, rz, dbSy,
key, installBegin)
with n as
( select APPL
, PGM
, COLLID
, INSTALLDATE
,case when OWNER <> '' then owner else null end owner
,case when QUALIFIER <> '' then QUALIFIER else null end QUALIFIER
,case when ISOLATION <> '' then ISOLATION else null end ISOLATION
,case when EXPLAIN <> '' then EXPLAIN else null end EXPLAIN
,case when CURRENTDATA <> '' then CURRENTDATA else null end CURRENTDATA
,case when RELEASE <> '' then RELEASE else null end RELEASE
,case when DBPROTOCOL <> '' then DBPROTOCOL else null end DBPROTOCOL
,case when DEGREE <> '' then DEGREE else null end DEGREE
,case when DYNAMICRULES <> '' then DYNAMICRULES else null end
DYNAMICRULES
,case when KEEPDYNAMIC <> '' then KEEPDYNAMIC else null end KEEPDYNAMIC
,case when REOPT <> '' then REOPT else null end REOPT
,case when OPTHINT <> '' then OPTHINT else null end OPTHINT
,case when IMMEDWRITE <> '' then IMMEDWRITE else null end IMMEDWRITE
,case when FLAG <> '' then FLAG else null end FLAG
,case when PATH <> '' then PATH else null end PATH
,case when VALIDATE <> '' then VALIDATE else null end VALIDATE
,case when SQLERROR <> '' then SQLERROR else null end SQLERROR
,case when SQLRULES <> '' then SQLRULES else null end SQLRULES
,case when DEFER <> '' then DEFER else null end DEFER
,case when ENCODING <> '' then ENCODING else null end ENCODING
,case when ROUNDING <> '' then ROUNDING else null end ROUNDING
from oa1p.bind_parameters
)
, d as
( select
case when s.pgm <> 'DEFAULT' then 's' else ' ' end
|| case when a.appl <> 'DEFAULT' then 'a' else ' ' end
|| case when d.appl is null then ' ' else 'd' end sad
--alue(s.$ ,a.$ ,d.$ ) $
,value(s.APPL ,a.APPL ,d.APPL ) APPL
,value(s.PGM ,a.PGM ,d.PGM ) PGM
,value(s.COLLID ,a.COLLID ,d.COLLID ) COLLID
,value(s.INSTALLDATE ,a.INSTALLDATE ,d.INSTALLDATE ) INSTALLDATE
,value(s.OWNER ,a.OWNER ,d.OWNER ) OWNER
,value(s.QUALIFIER ,a.QUALIFIER ,d.QUALIFIER ) QUALIFIER
,value(s.ISOLATION ,a.ISOLATION ,d.ISOLATION ) ISOLATION
,value(s.EXPLAIN ,a.EXPLAIN ,d.EXPLAIN ) EXPLAIN
,value(s.CURRENTDATA ,a.CURRENTDATA ,d.CURRENTDATA ) CURRENTDATA
,value(s.RELEASE ,a.RELEASE ,d.RELEASE ) RELEASE
,value(s.DBPROTOCOL ,a.DBPROTOCOL ,d.DBPROTOCOL ) DBPROTOCOL
,value(s.DEGREE ,a.DEGREE ,d.DEGREE ) DEGREE
,value(s.DYNAMICRULES,a.DYNAMICRULES,d.DYNAMICRULES) DYNAMICRULES
,value(s.KEEPDYNAMIC ,a.KEEPDYNAMIC ,d.KEEPDYNAMIC ) KEEPDYNAMIC
,value(s.REOPT ,a.REOPT ,d.REOPT ) REOPT
,value(s.OPTHINT ,a.OPTHINT ,d.OPTHINT ) OPTHINT
,value(s.IMMEDWRITE ,a.IMMEDWRITE ,d.IMMEDWRITE ) IMMEDWRITE
,value(s.FLAG ,a.FLAG ,d.FLAG ) FLAG
,value(s.PATH ,a.PATH ,d.PATH ) PATH
,value(s.VALIDATE ,a.VALIDATE ,d.VALIDATE ) VALIDATE
,value(s.SQLERROR ,a.SQLERROR ,d.SQLERROR ) SQLERROR
,value(s.SQLRULES ,a.SQLRULES ,d.SQLRULES ) SQLRULES
,value(s.DEFER ,a.DEFER ,d.DEFER ) DEFER
,value(s.ENCODING ,a.ENCODING ,d.ENCODING ) ENCODING
,value(s.ROUNDING ,a.ROUNDING ,d.ROUNDING ) ROUNDING
from n s
left join n a
on a.appl = s.appl and a.pgm = 'DEFAULT'
and a.collid = 'DEFAULT'
left join oa1p.bind_parameters d
on d.appl = 'DEFAULT' and d.pgm = 'DEFAULT'
and d.collid = 'DEFAULT'
)
, e as
(
select
left(release, 4) || left(degree, 4) || left(dynamicRules, 4)
|| left(reopt, 4) || left(opthint, 4) || left(validate, 4) comb,
d.*
from d
)
, f as
( select case
when comb = ' ANY BIND BIND' then 'degAny '
when comb = ' 1 BIND BIND' then 'default '
when comb = ' 1 BIND RUN ' then 'valRun '
when comb = ' 1 BIND HBD1BIND' then 'optHBD1 '
when comb = ' 1 BIND OH BIND' then 'optOH '
when comb = ' 1 BINDALWA BIND' then 'reoAlw '
when comb = ' 1 RUN BIND' then 'dynRun '
when comb = ' 1 RUN RUN ' then 'dynValRun'
when comb = 'DEAL1 BIND BIND' then 'relDea '
else '$$$' end neu,
e.*
from e
)
select 'opt' type
, case when pgm <> 'DEFAULT' then '20'
else '10' end prio
, left(case when appl = 'DEFAULT' or pgm <> 'DEFAULT'
then '%' else appl end, 4) appl
, case when pgm = 'DEFAULT' then '%' else pgm end pgm
, '%' rz
, '%' dbSy
, '%' location
, neu key
, installDate installBegin
-- , f.*
from f
where appl not like 'A18Q%'
and neu <> 'default'
;
insert into OA1P.tAdm41BindKey (type, prio, key, installBegin)
values ('path', '00', 'DBOF', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, appl, key, installBegin)
values ('path', '00', 'ELA%', 'DVBP', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, pgm, key, installBegin)
with a as
(
select appl a, pgm p , collid c, date(createdTS) r,
strip(ssid) || '>' || strip(location) || '-' || strip(qualifier) t
from oa1p.bind_exceptions
where ssid <> 'DAEG'
)
, b as
( select a, p, c, r,
row_number() over(partition by a, p, c
order by t) l,
t
from a
)
, c (a, p, c, r, l, t, u) as
( select a, p, c, r, 1, t, varchar(t, 2000) from b where l = 1
union all select c.a, c.p, c.c, min(c.r, b.r),
c.l+1, b.t, c.u || ' ' || b.t
from b, c
where b.a = c.a and b.p = c.p and b.c = c.c and b.l = c.l+1
and c.l < 100
)
, d as
(
select a, p, c, min(r) r, max(l) l, min(t) tFr, max(t) tTo, max(u) t
from c
group by a, p, c
)
, e as
( select
case when a in ('A18Q', 'DBTST', 'DB2J') then '-'
when p = 'AU5070' or p like 'YAU03%' then 'DBOF>DVBP'
when p = 'YCDPUT2' then '-'
when l = 12 and tFr = 'DBBA>-OA1A'
and left(tTo, 17) = 'DVTB>CHSKA000DBTF' then 'DVBP>DBOF'
when l > 4 and tFr = 'DBAF>-OA1A'
and tTo = 'DBTF>CHSKA000DVTB-OA1T' then 'DBOF>DVBP'
when t = 'DBOF>-OA1P DBOF>CHSKA000DBOL-OA1P' then 'DBOF>DBOL'
else '???'
end n,
d.* from d
)
select 'path', '20', p, n, r
from e where n <> '-'
;
delete from OA1P.tBiPaPgm;
commit;
select appl, pgm, collid, ssid, min(qualifier), max(qualifier)
, count(*), sum(case when location = '' then 1 else 0 end) loc
from oa1p.bind_exceptions e
group by appl, pgm, collid, ssid
having min(qualifier) <> max(qualifier)
;x;
}¢--- A540769.WK.SQL(BIPA9MI4) cre=2013-11-01 mod=2013-11-01-15.09.24 A540769 ---
--sert into OA1P.tAdm41BindKey (type, prio, appl, pgm, rz, dbSy,
-- key, installBegin)
with n as
( select APPL
, PGM
, COLLID
, INSTALLDATE
,case when OWNER <> '' then owner else null end owner
,case when QUALIFIER <> '' then QUALIFIER else null end QUALIFIER
,case when ISOLATION <> '' then ISOLATION else null end ISOLATION
,case when EXPLAIN <> '' then EXPLAIN else null end EXPLAIN
,case when CURRENTDATA <> '' then CURRENTDATA else null end CURRENTDATA
,case when RELEASE <> '' then RELEASE else null end RELEASE
,case when DBPROTOCOL <> '' then DBPROTOCOL else null end DBPROTOCOL
,case when DEGREE <> '' then DEGREE else null end DEGREE
,case when DYNAMICRULES <> '' then DYNAMICRULES else null end
DYNAMICRULES
,case when KEEPDYNAMIC <> '' then KEEPDYNAMIC else null end KEEPDYNAMIC
,case when REOPT <> '' then REOPT else null end REOPT
,case when OPTHINT <> '' then OPTHINT else null end OPTHINT
,case when IMMEDWRITE <> '' then IMMEDWRITE else null end IMMEDWRITE
,case when FLAG <> '' then FLAG else null end FLAG
,case when PATH <> '' then PATH else null end PATH
,case when VALIDATE <> '' then VALIDATE else null end VALIDATE
,case when SQLERROR <> '' then SQLERROR else null end SQLERROR
,case when SQLRULES <> '' then SQLRULES else null end SQLRULES
,case when DEFER <> '' then DEFER else null end DEFER
,case when ENCODING <> '' then ENCODING else null end ENCODING
,case when ROUNDING <> '' then ROUNDING else null end ROUNDING
from oa1p.bind_parameters
)
, d as
( select
case when s.pgm <> 'DEFAULT' then 's' else ' ' end
|| case when a.appl <> 'DEFAULT' then 'a' else ' ' end
|| case when d.appl is null then ' ' else 'd' end sad
--alue(s.$ ,a.$ ,d.$ ) $
,value(s.APPL ,a.APPL ,d.APPL ) APPL
,value(s.PGM ,a.PGM ,d.PGM ) PGM
,value(s.COLLID ,a.COLLID ,d.COLLID ) COLLID
,value(s.INSTALLDATE ,a.INSTALLDATE ,d.INSTALLDATE ) INSTALLDATE
,value(s.OWNER ,a.OWNER ,d.OWNER ) OWNER
,value(s.QUALIFIER ,a.QUALIFIER ,d.QUALIFIER ) QUALIFIER
,value(s.ISOLATION ,a.ISOLATION ,d.ISOLATION ) ISOLATION
,value(s.EXPLAIN ,a.EXPLAIN ,d.EXPLAIN ) EXPLAIN
,value(s.CURRENTDATA ,a.CURRENTDATA ,d.CURRENTDATA ) CURRENTDATA
,value(s.RELEASE ,a.RELEASE ,d.RELEASE ) RELEASE
,value(s.DBPROTOCOL ,a.DBPROTOCOL ,d.DBPROTOCOL ) DBPROTOCOL
,value(s.DEGREE ,a.DEGREE ,d.DEGREE ) DEGREE
,value(s.DYNAMICRULES,a.DYNAMICRULES,d.DYNAMICRULES) DYNAMICRULES
,value(s.KEEPDYNAMIC ,a.KEEPDYNAMIC ,d.KEEPDYNAMIC ) KEEPDYNAMIC
,value(s.REOPT ,a.REOPT ,d.REOPT ) REOPT
,value(s.OPTHINT ,a.OPTHINT ,d.OPTHINT ) OPTHINT
,value(s.IMMEDWRITE ,a.IMMEDWRITE ,d.IMMEDWRITE ) IMMEDWRITE
,value(s.FLAG ,a.FLAG ,d.FLAG ) FLAG
,value(s.PATH ,a.PATH ,d.PATH ) PATH
,value(s.VALIDATE ,a.VALIDATE ,d.VALIDATE ) VALIDATE
,value(s.SQLERROR ,a.SQLERROR ,d.SQLERROR ) SQLERROR
,value(s.SQLRULES ,a.SQLRULES ,d.SQLRULES ) SQLRULES
,value(s.DEFER ,a.DEFER ,d.DEFER ) DEFER
,value(s.ENCODING ,a.ENCODING ,d.ENCODING ) ENCODING
,value(s.ROUNDING ,a.ROUNDING ,d.ROUNDING ) ROUNDING
from n s
left join n a
on a.appl = s.appl and a.pgm = 'DEFAULT'
and a.collid = 'DEFAULT'
left join oa1p.bind_parameters d
on d.appl = 'DEFAULT' and d.pgm = 'DEFAULT'
and d.collid = 'DEFAULT'
)
, e as
(
select
left(release, 4) || left(degree, 4) || left(dynamicRules, 4)
|| left(reopt, 4) || left(opthint, 4) || left(validate, 4) comb,
d.*
from d
)
, f as
( select case
when comb = ' ANY BIND BIND' then 'degAny '
when comb = ' 1 BIND BIND' then 'default '
when comb = ' 1 BIND RUN ' then 'valRun '
when comb = ' 1 BIND HBD1BIND' then 'optHBD1 '
when comb = ' 1 BIND OH BIND' then 'optOH '
when comb = ' 1 BINDALWA BIND' then 'reoAlw '
when comb = ' 1 RUN BIND' then 'dynRun '
when comb = ' 1 RUN RUN ' then 'dynValRun'
when comb = 'DEAL1 BIND BIND' then 'relDea '
else '$$$' end neu,
e.*
from e
)
select 'ov' type
, case when pgm <> 'DEFAULT' then '20'
else '10' end prio
, left(case when appl = 'DEFAULT' or pgm <> 'DEFAULT'
then '%' else appl end, 4) appl
, case when pgm = 'DEFAULT' then '%' else pgm end pgm
, neu key
, installDate installBegin
-- , f.*
from f
where pgm like 'DEF%' or appl like 'DEF%'
-- and neu <> 'default'
}¢--- A540769.WK.SQL(BIPLADDL) cre=2013-05-30 mod=2013-05-30-16.15.01 A540769 ---
set current sqlid = 'S100447';
drop TABLESPACE db2admin.ABiPlCo;
drop TABLESPACE db2admin.ABiPlCoH;
commit;
CREATE TABLESPACE ABiPlCo
IN db2admin
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLESPACE ABiPlCoH
IN db2admin
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
commit;
drop TABLE oa1p.tBiPlanCol;
drop TABLE oa1p.tBiPlanColHist;
commit;
CREATE TABLE oa1p.tBiPlanCol
(
col char(8) NOT NULL,
installFr date NOT NULL WITH DEFAULT,
installTo date NOT NULL WITH DEFAULT '31.12.9999',
rowBegin not null generated always as row begin ,
rowEnd not null generated always as row end ,
rowtrans not null generated always as transaction start id,
period business_time (installFr, installTo) ,
period system_time (rowBegin, rowEnd) ,
unique (col, business_time without overlaps)
) in db2admin.aBiPlCo
;
CREATE UNIQUE INDEX OA1P.iBiPlanCol1
ON oa1p.tBiPlanCol
(col, business_time without overlaps)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
NOT CLUSTER
COMPRESS NO
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFER NO
DEFINE YES;
CREATE TABLE oa1p.tbiPlanColHist like oa1p.tbiPlanCol
in db2Admin.abiPlCoH;
commit;
alter table oa1p.tBiPlanCol add versioning
use history table oa1p.tbiPlanColHist;
commit;
xnsert into OA1P.tBiPaCo2 (colls, seq, col, qua, installFr)
values ('defIns', 1, 'AV','', '01.01.2000');
xnsert into OA1P.tBiPaCo2 (colls, seq, col, qua, installFr)
values ('defIns', 1, 'AV','', '01.02.2011');
update OA1P.tBiPaCo2 set installTo = '01.02.2011';
insert into OA1P.tBiPaCo2 (colls, seq, col, qua, installFr)
values ('defIns', 1, 'AV','', '01.02.2011');
select * from OA1P.tBiPaCo2;
select * from OA1P.tBiPaCoH;
select * from OA1P.tBiPaCo2
for business_time as of '30.05.1997' ;
select * from OA1P.tBiPaCo2
for business_time as of '31.12.1999' ;
select * from OA1P.tBiPaCo2
for business_time as of '01.01.2000' ;
select * from OA1P.tBiPaCo2
for business_time as of '31.01.2011' ;
select * from OA1P.tBiPaCo2
for business_time as of '01.02.2011' ;
select * from OA1P.tBiPaCo2
for business_time as of '02.02.2011' ;
}¢--- A540769.WK.SQL(BIPLALST) cre=2013-05-31 mod=2013-05-31-07.52.14 A540769 ---
---------+---------+---------+---------+---------+---------+---------+---------+
with j as
(
select strip(value(p.collid, l.collid, db.db)) collid,
p.cnt pkgCnt, l.cnt lstCnt, dbCnt, dbMin, dbMax
from (select collid, count(*) cnt, left(collid, 2) c2
from sysibm.sysPackage group by collid) p
full join (select collid, count(*) cnt
from sysibm.sysPackList group by collid) l
on p.collid = l.collid
full join (select left(name, 2) db, count(*) dbCnt,
min(name) dbMin, max(name) dbMax
from sysibm.sysDatabase
group by left(name, 2) ) db
on p.c2 = db.db
)
select substr(collid, 1, 30) collid, pkgCnt, lstCnt
, dbCnt, dbMin, dbMax from j
where pkgCnt is not null
and lstCnt is not null
and -- not
( (dbCnt is not null or collid in ('YX', 'YY'))
and collid not like 'A1%'
and collid not like 'A2%'
and collid not like 'AUSAM%'
and collid not like '%?_%' escape '?'
and collid not like 'CBR%'
and collid not like 'COLXX%'
and collid not like 'CSQ%'
and collid not like '%DB2%'
and collid not like 'DSN%'
and collid not like 'FRN%'
and collid not like 'FAR%'
and collid not like 'HP%'
and collid not like 'M2%'
and collid not like 'PHP%'
and collid not like 'SAM%'
and collid not like 'STR%'
and collid not in('#D', 'ANLCHECK', 'BMIINSTL', 'BPO110'
, 'CFDB2COL', 'HBDTEST', 'JOSKA', 'LSNR', 'NTA1P'
, 'PTTAPLAN', 'PUPG53', 'Q', 'XP','XQ', 'YB' ,'YC', 'YD'
, 'YNK', 'YP', 'YW', 'ZK', 'ZP', 'ZS'
)
)
-- and collid > 'Q'
order by 1
with ur
---------+---------+---------+---------+---------+---------+---------+---------+
COLLID PKGCNT LSTCNT DBCNT DBMIN
---------+---------+---------+---------+---------+---------+---------+---------+
AC 2 4 1 AC01A1P
AM 33 4 1 AM01A1P
AN 11 33 1 AN01A1P
AT 92 92 1 AT01A1P
AU 519 7809 4 AU01A1P
AV 1771 1555 20 AV01A1P
AV01 493 558 20 AV01A1P
AV02 493 555 20 AV01A1P
AV03 455 108 20 AV01A1P
AV05 308 108 20 AV01A1P
COLLID PKGCNT LSTCNT DBCNT DBMIN
---------+---------+---------+---------+---------+---------+---------+---------+
AV06 308 108 20 AV01A1P
AV07 311 108 20 AV01A1P
AV08 311 108 20 AV01A1P
AV09 325 108 20 AV01A1P
AV10 325 107 20 AV01A1P
AV11 307 107 20 AV01A1P
AV12 307 107 20 AV01A1P
AV13 306 96 20 AV01A1P
AV14 306 96 20 AV01A1P
AV15 306 96 20 AV01A1P
AV16 306 96 20 AV01A1P
AV17 306 93 20 AV01A1P
AV18 306 93 20 AV01A1P
AV19 306 93 20 AV01A1P
AV20 306 93 20 AV01A1P
AV21 308 93 20 AV01A1P
AV22 308 93 20 AV01A1P
AV23 298 79 20 AV01A1P
AV24 298 79 20 AV01A1P
AV25 295 83 20 AV01A1P
AV26 295 83 20 AV01A1P
AV27 292 88 20 AV01A1P
AV28 318 88 20 AV01A1P
AV29 115 81 20 AV01A1P
AV30 115 81 20 AV01A1P
AV31 52 70 20 AV01A1P
AV32 52 70 20 AV01A1P
AX 39 236 1 AX01A1P
BE 384 2025 2 BE01A1P
BE01 240 1724 2 BE01A1P
BE02 240 1731 2 BE01A1P
BE03 240 1698 2 BE01A1P
BE04 240 1713 2 BE01A1P
BF 88 661 1 BF03A1P
BG 514 141 1 BG01A1P
BJ 7 2 10 BJ01A1P
BP 357 4948 2 BP01A1P
BQ 38 12 1 BQ01A1P
BS 35 118 1 BS01A1P
BU 35 3265 1 BU01A1P
BV 66 361 1 BV01A1P
BX 814 488 1 BX01A1P
CD 3099 8816 3 CD01A1P
CE 3424 721 4 CE01A1P
CJ 22 258 1 CJ01A1P
CK 1094 1442 1 CK01A1P
CT 379 645 2 CT01G1P
CW 475 404 4 CW01A1P
CY 231 23 1 CY02A1P
CZ 4249 1828 23 CZ01A1P
DA 14 840 8 DA351153
DB 49 18 19 DB01A1P
DE 1555 1289 6 DE01A1P
DG 2243 1431 2 DG01A1P
DI 528 4216 6 DI01A1P
DM 402 1259 1 DM40A1P
DO 26 5 2 DOTGDB2
DP 988 469 7 DP02A1P
COLLID PKGCNT LSTCNT DBCNT DBMIN
---------+---------+---------+---------+---------+---------+---------+---------+
DT 260 20 5 DT01A1P
DU 1 5 2 DUMMY
DW 477 114 2 DW10A1P
ED 924 267 3 ED02A1P
EF 214 560 5 EF01A1P
EG 75 113 2 EG01A1P
EK 881 142 2 EK01A1P
EQ 410 399 3 EQ01A1P
ER 839 87 1 ER01A1P
EU 176 343 7 EU01A1P
EX 790 2656 1 EX01A1P
FC 52 27 1 FC01A1P
FF 496 21 1 FF01A1P
FI 1369 1831 2 FI02A1P
FK 132 410 1 FK01A1P
FZ 291 19 2 FZ01A1P
GA 255 33 1 GA01A1P
GE 425 87 5 GE01A1P
GM 699 441 1 GM01A1P
GT 80 194 1 GT01A1P
HB 514 109 1 HB01A1P
HY 1381 487 2 HY01A1P
ID 248 423 6 ID01A1P
IT 161 1433 4 IT01A1P
JM 217 53 1 JM01A1P
JR 44 108 1 JR01A1P
KB 145 472 1 KB01A1P
KC 661 1968 1 KC01A1P
KD 218 435 3 KD01A1P
KE 2159 1054 1 KE01A1P
KS 772 534 8 KS01A1P
KT 24 279 1 KT01A1P
KX 32 797 1 KX01A1P
LC 392 78 1 LC02A1P
LG 20 48 1 LG01A1P
LO 6 30 1 LO01A1P
LW 143 245 2 LW01A1P
LX 105 332 1 LX01A1P
MB 121 53 1 MB01A1P
MC 773 45 3 MC01A1P
MF 1910 209 5 MF01A1P
MI 510 272 1 MI01A1P
NF 1015 758 4 NF01A1P
NG 1391 1320 6 NG01A1P
NH 3 12 1 NH01A1P
NI 6808 1374 6 NI02A1P
NI01 50 69 6 NI02A1P
NI02 50 69 6 NI02A1P
NJ 118 13 1 NJ01A1P
NK 131 186 1 NK01A1P
NL 671 946 1 NL01A1P
NO 233 51 1 NO01A1P
NP 334 318 1 NP01A1P
NR 15 392 2 NR01A1P
NT 8 269 1 NT21A1P
NZ 1969 572 8 NZ01A1P
OE 559 6072 1 OE02A1P
OO 649 4896 1 OO01A1P
COLLID PKGCNT LSTCNT DBCNT DBMIN
---------+---------+---------+---------+---------+---------+---------+---------+
OZ 103 305 1 OZ01A1P
PC 378 146 18 PC01A1P
PC01 1104 105 18 PC01A1P
PC02 1096 104 18 PC01A1P
PC03 1027 93 18 PC01A1P
PC04 1027 93 18 PC01A1P
PC05 1027 93 18 PC01A1P
PC06 1027 93 18 PC01A1P
PC07 965 93 18 PC01A1P
PC08 837 93 18 PC01A1P
PC09 837 93 18 PC01A1P
PC10 837 93 18 PC01A1P
PC11 689 90 18 PC01A1P
PC12 597 91 18 PC01A1P
PC13 410 91 18 PC01A1P
PC14 191 88 18 PC01A1P
PC15 191 88 18 PC01A1P
PC16 191 88 18 PC01A1P
PI 19 23 1 PI01A1P
PO 8 132 1 PO01A1P
PR 1078 104 2 PR01A1P
PT 107 41 1 PTDB
PV 117 3 3 PV01A1P
PW 488 329 1 PW01A1P
PX 335 72 3 PX01A1P
RA 134 285 1 RA01A1P
RB 135 14 1 RB01A1P
RE 205 379 1 RE01A1P
RF 353 49 1 RF01A1P
RG 5 299 1 RG01A1P
RI 187 75 1 RI01A1P
RM 1479 2170 1 RM01A1P
RP 1017 679 4 RP01A1P
RV 859 314 1 RV01A1P
SA 1178 500 8 SA02A1P
SB 133 74 1 SB01A1P
SE 47 120 1 SE02A1P
SF 212 34 1 SF01A1P
SM 20 25 2 SM01A1P
SN 1783 382 1 SN01A1P
SU 41 357 3 SU01A1C
SV 4638 1099 18 SV01A1P
SW 265 41 1 SW01A1P
SX 660 496 1 SX01A1P
SY 2 24 3 SY20A1P
TG 584 338 1 TG01A1P
TN 2033 186 1 TN01A1P
TP 286 48 1 TP01A1P
TR 409 854 3 TR01A1P
TT 235 66 1 TT01A1P
TV 14 25 1 TV01A1P
UI 195 16 1 UI01A1P
UU 1374 330 3 UU02A1P
VD 227 362 1 VD01A1P
VK 355 583 2 VK01A1P
VP 403 430 4 VP01A1P
VR 5 344 1 VR01A1P
VT 385 96 3 VT01A1P
COLLID PKGCNT LSTCNT DBCNT DBMIN
---------+---------+---------+---------+---------+---------+---------+---------+
VV 1116 2048 12 VV01A1P
WA 963 521 1 WA01A1P
WB 6765 1230 3 WB11A1P
WD 9 327 1 WD01A1P
WF 1411 411 1 WF01A1P
WG 141 38 1 WG01A1P
WI 5140 1579 3 WI01A1P
WK 143 287 10 WKDBDOF0
WL 615 145 9 WL01A1P
WM 157 687 1 WM01A1P
WN 1837 228 2 WN01A1P
WP 1458 2121 6 WP01A1P
WQ 1266 87 1 WQ01A1P
WR 40 18 1 WR01A1P
WU 1583 931 10 WU10A1P
WV 175 367 3 WV01A1P
WW 226 78 1 WW20A1P
WY 808 286 4 WY10A1P
XC 54 87 2 XC01A1P
XC00 44 9 2 XC01A1P
XC01 44 9 2 XC01A1P
XC02 44 9 2 XC01A1P
XC03 44 9 2 XC01A1P
XC04 44 9 2 XC01A1P
XC05 44 9 2 XC01A1P
XC06 44 9 2 XC01A1P
XC07 44 9 2 XC01A1P
XC08 44 9 2 XC01A1P
XC09 44 9 2 XC01A1P
XR 320 60 1 XR01A1P
YX 614 15893 ----------- ---------
YY 2505 16090 ----------- ---------
ZV 248 221 2 ZV01A1P
DSNE610I NUMBER OF ROWS DISPLAYED IS 217
DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 100
---------+---------+---------+---------+---------+---------+---------+---------+
DSNE617I COMMIT PERFORMED, SQLCODE IS 0
DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 0
---------+---------+---------+---------+---------+---------+---------+---------+
DSNE601I SQL STATEMENTS ASSUMED TO BE BETWEEN COLUMNS 1 AND 72
DSNE620I NUMBER OF SQL STATEMENTS PROCESSED IS 1
DSNE621I NUMBER OF INPUT RECORDS READ IS 46
DSNE622I NUMBER OF OUTPUT RECORDS WRITTEN IS 285
}¢--- A540769.WK.SQL(BIPLALS2) cre=2013-05-31 mod=2013-05-31-07.53.32 A540769 ---
AC 2 4 1 AC01A1P
AM 33 4 1 AM01A1P
AN 11 33 1 AN01A1P
AT 92 92 1 AT01A1P
AU 519 7809 4 AU01A1P
AV 1771 1555 20 AV01A1P
AV01 493 558 20 AV01A1P
AV02 493 555 20 AV01A1P
AV03 455 108 20 AV01A1P
AV05 308 108 20 AV01A1P
AV06 308 108 20 AV01A1P
AV07 311 108 20 AV01A1P
AV08 311 108 20 AV01A1P
AV09 325 108 20 AV01A1P
AV10 325 107 20 AV01A1P
AV11 307 107 20 AV01A1P
AV12 307 107 20 AV01A1P
AV13 306 96 20 AV01A1P
AV14 306 96 20 AV01A1P
AV15 306 96 20 AV01A1P
AV16 306 96 20 AV01A1P
AV17 306 93 20 AV01A1P
AV18 306 93 20 AV01A1P
AV19 306 93 20 AV01A1P
AV20 306 93 20 AV01A1P
AV21 308 93 20 AV01A1P
AV22 308 93 20 AV01A1P
AV23 298 79 20 AV01A1P
AV24 298 79 20 AV01A1P
AV25 295 83 20 AV01A1P
AV26 295 83 20 AV01A1P
AV27 292 88 20 AV01A1P
AV28 318 88 20 AV01A1P
AV29 115 81 20 AV01A1P
AV30 115 81 20 AV01A1P
AV31 52 70 20 AV01A1P
AV32 52 70 20 AV01A1P
AX 39 236 1 AX01A1P
BE 384 2025 2 BE01A1P
BE01 240 1724 2 BE01A1P
BE02 240 1731 2 BE01A1P
BE03 240 1698 2 BE01A1P
BE04 240 1713 2 BE01A1P
BF 88 661 1 BF03A1P
BG 514 141 1 BG01A1P
BJ 7 2 10 BJ01A1P
BP 357 4948 2 BP01A1P
BQ 38 12 1 BQ01A1P
BS 35 118 1 BS01A1P
BU 35 3265 1 BU01A1P
BV 66 361 1 BV01A1P
BX 814 488 1 BX01A1P
CD 3099 8816 3 CD01A1P
CE 3424 721 4 CE01A1P
CJ 22 258 1 CJ01A1P
CK 1094 1442 1 CK01A1P
CT 379 645 2 CT01G1P
CW 475 404 4 CW01A1P
CY 231 23 1 CY02A1P
CZ 4249 1828 23 CZ01A1P
DA 14 840 8 DA351153
DB 49 18 19 DB01A1P
DE 1555 1289 6 DE01A1P
DG 2243 1431 2 DG01A1P
DI 528 4216 6 DI01A1P
DM 402 1259 1 DM40A1P
DO 26 5 2 DOTGDB2
DP 988 469 7 DP02A1P
DT 260 20 5 DT01A1P
DU 1 5 2 DUMMY
DW 477 114 2 DW10A1P
ED 924 267 3 ED02A1P
EF 214 560 5 EF01A1P
EG 75 113 2 EG01A1P
EK 881 142 2 EK01A1P
EQ 410 399 3 EQ01A1P
ER 839 87 1 ER01A1P
EU 176 343 7 EU01A1P
EX 790 2656 1 EX01A1P
FC 52 27 1 FC01A1P
FF 496 21 1 FF01A1P
FI 1369 1831 2 FI02A1P
FK 132 410 1 FK01A1P
FZ 291 19 2 FZ01A1P
GA 255 33 1 GA01A1P
GE 425 87 5 GE01A1P
GM 699 441 1 GM01A1P
GT 80 194 1 GT01A1P
HB 514 109 1 HB01A1P
HY 1381 487 2 HY01A1P
ID 248 423 6 ID01A1P
IT 161 1433 4 IT01A1P
JM 217 53 1 JM01A1P
JR 44 108 1 JR01A1P
KB 145 472 1 KB01A1P
KC 661 1968 1 KC01A1P
KD 218 435 3 KD01A1P
KE 2159 1054 1 KE01A1P
KS 772 534 8 KS01A1P
KT 24 279 1 KT01A1P
KX 32 797 1 KX01A1P
LC 392 78 1 LC02A1P
LG 20 48 1 LG01A1P
LO 6 30 1 LO01A1P
LW 143 245 2 LW01A1P
LX 105 332 1 LX01A1P
MB 121 53 1 MB01A1P
MC 773 45 3 MC01A1P
MF 1910 209 5 MF01A1P
MI 510 272 1 MI01A1P
NF 1015 758 4 NF01A1P
NG 1391 1320 6 NG01A1P
NH 3 12 1 NH01A1P
NI 6808 1374 6 NI02A1P
NI01 50 69 6 NI02A1P
NI02 50 69 6 NI02A1P
NJ 118 13 1 NJ01A1P
NK 131 186 1 NK01A1P
NL 671 946 1 NL01A1P
NO 233 51 1 NO01A1P
NP 334 318 1 NP01A1P
NR 15 392 2 NR01A1P
NT 8 269 1 NT21A1P
NZ 1969 572 8 NZ01A1P
OE 559 6072 1 OE02A1P
OO 649 4896 1 OO01A1P
OZ 103 305 1 OZ01A1P
PC 378 146 18 PC01A1P
PC01 1104 105 18 PC01A1P
PC02 1096 104 18 PC01A1P
PC03 1027 93 18 PC01A1P
PC04 1027 93 18 PC01A1P
PC05 1027 93 18 PC01A1P
PC06 1027 93 18 PC01A1P
PC07 965 93 18 PC01A1P
PC08 837 93 18 PC01A1P
PC09 837 93 18 PC01A1P
PC10 837 93 18 PC01A1P
PC11 689 90 18 PC01A1P
PC12 597 91 18 PC01A1P
PC13 410 91 18 PC01A1P
PC14 191 88 18 PC01A1P
PC15 191 88 18 PC01A1P
PC16 191 88 18 PC01A1P
PI 19 23 1 PI01A1P
PO 8 132 1 PO01A1P
PR 1078 104 2 PR01A1P
PT 107 41 1 PTDB
PV 117 3 3 PV01A1P
PW 488 329 1 PW01A1P
PX 335 72 3 PX01A1P
RA 134 285 1 RA01A1P
RB 135 14 1 RB01A1P
RE 205 379 1 RE01A1P
RF 353 49 1 RF01A1P
RG 5 299 1 RG01A1P
RI 187 75 1 RI01A1P
RM 1479 2170 1 RM01A1P
RP 1017 679 4 RP01A1P
RV 859 314 1 RV01A1P
SA 1178 500 8 SA02A1P
SB 133 74 1 SB01A1P
SE 47 120 1 SE02A1P
SF 212 34 1 SF01A1P
SM 20 25 2 SM01A1P
SN 1783 382 1 SN01A1P
SU 41 357 3 SU01A1C
SV 4638 1099 18 SV01A1P
SW 265 41 1 SW01A1P
SX 660 496 1 SX01A1P
SY 2 24 3 SY20A1P
TG 584 338 1 TG01A1P
TN 2033 186 1 TN01A1P
TP 286 48 1 TP01A1P
TR 409 854 3 TR01A1P
TT 235 66 1 TT01A1P
TV 14 25 1 TV01A1P
UI 195 16 1 UI01A1P
UU 1374 330 3 UU02A1P
VD 227 362 1 VD01A1P
VK 355 583 2 VK01A1P
VP 403 430 4 VP01A1P
VR 5 344 1 VR01A1P
VT 385 96 3 VT01A1P
VV 1116 2048 12 VV01A1P
WA 963 521 1 WA01A1P
WB 6765 1230 3 WB11A1P
WD 9 327 1 WD01A1P
WF 1411 411 1 WF01A1P
WG 141 38 1 WG01A1P
WI 5140 1579 3 WI01A1P
WK 143 287 10 WKDBDOF0
WL 615 145 9 WL01A1P
WM 157 687 1 WM01A1P
WN 1837 228 2 WN01A1P
WP 1458 2121 6 WP01A1P
WQ 1266 87 1 WQ01A1P
WR 40 18 1 WR01A1P
WU 1583 931 10 WU10A1P
WV 175 367 3 WV01A1P
WW 226 78 1 WW20A1P
WY 808 286 4 WY10A1P
XC 54 87 2 XC01A1P
XC00 44 9 2 XC01A1P
XC01 44 9 2 XC01A1P
XC02 44 9 2 XC01A1P
XC03 44 9 2 XC01A1P
XC04 44 9 2 XC01A1P
XC05 44 9 2 XC01A1P
XC06 44 9 2 XC01A1P
XC07 44 9 2 XC01A1P
XC08 44 9 2 XC01A1P
XC09 44 9 2 XC01A1P
XR 320 60 1 XR01A1P
YX 614 15893 ----------- ---------
YY 2505 16090 ----------- ---------
ZV 248 221 2 ZV01A1P
}¢--- A540769.WK.SQL(BIPLALS3) cre=2013-05-31 mod=2013-05-31-08.39.37 A540769 ---
$#@
$=dbSys=dbaf
call sqlConnect $dbSys
$;
$<A540769.WK.SQL(BIPLALS2)
$@for li $@¢
col = word($li, 1)
call sqlExecute 1, 'insert into oa1p.tBiPlanCol' ,
"(col, installFr) values ('"col"', '01.01.2000')"
$!
call sqlCommit
call sqlDisconnect
$#out 20130531 08:11:27
$#out 20130531 08:10:35
*** run error ***
SQLCODE = -803: AN INSERTED OR UPDATED VALUE IS INVALID
BECAUSE INDEX IN INDEX SPACE IBIPLANC CONSTRAINS COLUMNS OF THE
TABLE SO NO TWO ROWS CAN CONTAIN DUPLICATE VALUES IN THOSE COLUMNS.
RID OF EXISTING ROW IS X'0000000201'.
stmt = insert into oa1p.tBiPlanCol (col, installFr) values ('COL', '01.01.2000')
$#out 20130531 08:09:34
*** run error ***
SQLCODE = -517: CURSOR C1 CANNOT BE USED BECAUSE ITS
STATEMENT NAME DOES NOT IDENTIFY A PREPARED SELECT STATEMENT
stmt = open c1
$#out 20130531 08:08:42
*** run error ***
SQLCODE = -204: OA1P.TBIPLACOL IS AN UNDEFINED NAME
stmt = prepare s1 into :M.SQL.1.D from :src
with into :M.SQL.1.D = M.SQL.1.D
from :src = insert into oa1p.tBiPlaCol (col, installFr) values ('COL', '01.
$#out 20130531 08:08:26
*** run error ***
SQLCODE = -204: OA1P.TBIPLACOL IS AN UNDEFINED NAME
stmt = prepare s1 into :M.SQL.1.D from :src
with into :M.SQL.1.D = M.SQL.1.D
from :src = insert into oa1p.tBiPlaCol (col, installFr) values ('COL', '01.
$#out 20130531 08:08:05
*** run error ***
SQLCODE = -104: ILLEGAL SYMBOL "'COL'". SOME SYMBOLS THAT
MIGHT BE LEGAL ARE: SELECT (
src insert into oa1p.tBiPlaCol (col, installFr) ('COL', '01.01.2000')
> >>>pos 46 of 65>>>
stmt = prepare s1 into :M.SQL.1.D from :src
with into :M.SQL.1.D = M.SQL.1.D
from :src = insert into oa1p.tBiPlaCol (col, installFr) ('COL', '01.01.2000
$#out 20130531 08:06:59
*** run error ***
no class found for object insert into oa1p.tBiPlaCol (col, installFr) ('COL', '0
$#out 20130531 07:55:59
}¢--- A540769.WK.SQL(BIT) cre=2012-07-18 mod=2012-07-18-12.08.23 A540769 -------
select bitand(129,255)
from sysibm.sysdummy1
}¢--- A540769.WK.SQL(BMCBLIPR) cre=2011-12-14 mod=2011-12-14-16.45.18 A540769 ---
select *
from bmcacma1.CM_SCOPE
where scName = 'DB2REO'
;
delete from bmcacma1.CM_SCOPE where scOwner = 'TST01'
;
insert into bmcacma1.CM_SCOPE
(SCOWNER, SCName, Type, ACTION,OBJECT,NAME_PART1,NAME_PART2
,MIGDT, MIGTS, MIGTB, MIGCK, MIGFK, MIGIX, MIGVW, MIGAU
,MIGSY, MIGAL, MIGRO, MIGTR, MIGUC, MIGAX
)
values('TST01', 'DB2REO', 'B', 'I' , 'DB', 'DB2REO', ''
,'N' , 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'N'
,'Y' , 'Y', '', 'Y', 'Y', 'Y'
)
;
insert into bmcacma1.CM_SCOPE
(SCOWNER, SCName, Type, ACTION,OBJECT,NAME_PART1,NAME_PART2
,MIGDT, MIGTS, MIGTB, MIGCK, MIGFK, MIGIX, MIGVW, MIGAU
,MIGSY, MIGAL, MIGRO, MIGTR, MIGUC, MIGAX
)
values('TST01', 'DB2REO', 'B', 'E' , 'IX', 'S100447', '*'
,'N' , 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'N'
,'Y' , 'Y', '', 'Y', 'Y', 'Y'
)
;
select *
from bmcacma1.CM_SCOPE
where scName = 'DB2REO'
;
delete from bmcacma1.CM_BLPROFILE where blpOwner = 'TST01'
;
select *
from bmcacma1.CM_BLPROFILE
where blpName = 'DB2REO'
;
insert into bmcacma1.CM_BLPROFILE
(BLPOWNER, blpName, type, template)
values('TST01', 'DB2REO', 'C', 'DB2REO_####')
;
select *
from bmcacma1.CM_BLPROFILE
where blpName = 'DB2REO'
;
commit
}¢--- A540769.WK.SQL(BQ01) cre=2016-08-03 mod=2016-08-03-14.25.08 A540769 ------
SET CURRENT SQLID = 'S100447';
CREATE DATABASE BQ01A1P
BUFFERPOOL BP2
INDEXBP BP1
STOGROUP "GSMS "
CCSID EBCDIC;
CREATE TABLESPACE A100A
IN BQ01A1P
USING STOGROUP "GSMS "
PRIQTY -1
SECQTY -1
ERASE NO
BUFFERPOOL BP2
CLOSE YES
LOCKMAX SYSTEM
SEGSIZE 64
MAXPARTITIONS 10
DSSIZE 4 G
FREEPAGE 0
PCTFREE 5
GBPCACHE CHANGED
DEFINE YES
LOGGED
TRACKMOD YES
COMPRESS YES
LOCKSIZE ANY
MAXROWS 255
CCSID EBCDIC;
CREATE TABLE OA1P.TBQ100A1
(BQ100001 CHARACTER(3) FOR SBCS DATA
NOT NULL
,BQ100002 CHARACTER(2) FOR SBCS DATA
NOT NULL
,BQ100003 CHARACTER(2) FOR SBCS DATA
NOT NULL
,BQ100004 CHARACTER(2) FOR SBCS DATA
NOT NULL
,BQ100005 DATE
NOT NULL
,BQ100006 DATE
NOT NULL
,CONSTRAINT BQ100002 PRIMARY KEY
(BQ100002
)
)
IN BQ01A1P.A100A
APPEND NO
NOT VOLATILE CARDINALITY
DATA CAPTURE CHANGES
WITH RESTRICT ON DROP
AUDIT NONE
CCSID EBCDIC;
LABEL ON TABLE OA1P.TBQ100A1
IS 'DATASOURCE ABLAGE';
LABEL ON COLUMN OA1P.TBQ100A1.BQ100001
IS 'TYP';
LABEL ON COLUMN OA1P.TBQ100A1.BQ100002
IS 'KÜRZEL';
LABEL ON COLUMN OA1P.TBQ100A1.BQ100003
IS 'DATASOURCE';
LABEL ON COLUMN OA1P.TBQ100A1.BQ100004
IS 'ACCOUNT QUALI';
LABEL ON COLUMN OA1P.TBQ100A1.BQ100005
IS 'GÜLTIG AB';
LABEL ON COLUMN OA1P.TBQ100A1.BQ100006
IS 'GÜLTIG BIS';
CREATE UNIQUE INDEX OA1P.IBQ100A1
ON OA1P.TBQ100A1
(BQ100002 ASC
)
INCLUDE NULL KEYS
CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE YES
DEFER NO
COPY NO
USING STOGROUP "GSMS "
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
PIECESIZE 2097152K;
SET CURRENT SQLID = 'S100447';
DROP TABLESPACE BQ01A1P.A700A; COMMIT;
CREATE TABLESPACE A700A
IN BQ01A1P
USING STOGROUP "GSMS "
PRIQTY -1
SECQTY -1
ERASE NO
BUFFERPOOL BP2
CLOSE YES
LOCKMAX SYSTEM
SEGSIZE 64
MAXPARTITIONS 10
DSSIZE 4G
FREEPAGE 0
PCTFREE 5
GBPCACHE CHANGED
DEFINE YES
LOGGED
TRACKMOD YES
COMPRESS YES
LOCKSIZE ANY
MAXROWS 255
CCSID EBCDIC;
CREATE TABLE OA1P.TBQ700A1
(BQ700001 CHARACTER(6) FOR SBCS DATA
NOT NULL
,BQ700002 CHARACTER(2) FOR SBCS DATA
NOT NULL
,BQ700003 CHARACTER(2) FOR SBCS DATA
NOT NULL
,BQ700004 CHARACTER(2) FOR SBCS DATA
NOT NULL
,BQ700005 DATE
NOT NULL
,BQ700006 DATE
NOT NULL
,CONSTRAINT BQ700001 PRIMARY KEY
(BQ700001
,BQ700002
)
)
IN BQ01A1P.A700A
WITH RESTRICT ON DROP
APPEND NO
NOT VOLATILE CARDINALITY
DATA CAPTURE CHANGES
AUDIT NONE
CCSID EBCDIC;
LABEL ON TABLE OA1P.TBQ700A1
IS 'DATASOURCE ABLAGE';
LABEL ON COLUMN OA1P.TBQ700A1.BQ700001
IS 'PGM';
LABEL ON COLUMN OA1P.TBQ700A1.BQ700002
IS 'KÜRZEL';
LABEL ON COLUMN OA1P.TBQ700A1.BQ700003
IS 'DATASOURCE';
LABEL ON COLUMN OA1P.TBQ700A1.BQ700004
IS 'ACCOUNT QUALI';
LABEL ON COLUMN OA1P.TBQ700A1.BQ700005
IS 'GÜLTIG AB';
LABEL ON COLUMN OA1P.TBQ700A1.BQ700006
IS 'GÜLTIG BIS';
CREATE UNIQUE INDEX OA1P.IBQ700A1
ON OA1P.TBQ700A1
(BQ700001 ASC
,BQ700002 ASC
)
INCLUDE NULL KEYS
CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE YES
DEFER NO
COPY NO
USING STOGROUP "GSMS "
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED;
}¢--- A540769.WK.SQL(CALL) cre=2008-01-07 mod=2008-01-07-10.37.36 F540769 ------
call sysproc.command('abcdef', 'qr')
}¢--- A540769.WK.SQL(CANTDOM) cre=2010-12-09 mod=2010-12-09-09.41.33 A540769 ---
-- leere / nichtLeere Tables pro domain
--
WITH D (DOM, GB) AS
(
SELECT 'AOC', 'BQ' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'AOC', 'DF' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'AOC', 'EV' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'AOC', 'HB' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'AOC', 'NF' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'AOC', 'NL' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'AOC', 'UB' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'AT' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'AU' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'BP' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'BU' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'BW' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'DB' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'EL' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'EW' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'IT' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'KD' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'KE' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'KS' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'LO' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'ME' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'MT' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'NG' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'NJ' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'OE' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'OR' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'OX' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'PL' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'SC' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'SE' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'TA' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'YP' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'YY' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CDY', 'BF' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CDY', 'BG' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CDY', 'DA' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CDY', 'DG' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CDY', 'DM' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CDY', 'ER' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CDY', 'KO' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CDY', 'LS' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CDY', 'RB' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CDY', 'RF' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CDY', 'WM' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CDY', 'WP' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CHA', 'BT' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CHA', 'CO' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CHA', 'SA' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CHA', 'SX' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CHA', 'VT' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'COA', 'CE' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'COA', 'CW' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'COA', 'DW' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'COA', 'WA' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'COA', 'WG' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'COA', 'WK' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'COA', 'WU' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'COA', 'WV' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'COA', 'WW' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'COA', 'WX' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'COA', 'WY' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRE', 'LC' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRM', 'VP' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRM', 'WR' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'AP' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'CJ' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'CR' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'CT' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'CY' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'CZ' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'EB' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'EC' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'EM' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'EQ' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'EX' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'GA' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'HY' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'JA' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'JM' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'KB' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'KR' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'KX' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'MI' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'RA' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'RV' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'TM' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'UI' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'UU' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'XP' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CUS', 'AF' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CUS', 'AN' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CUS', 'CA' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CUS', 'CD' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CUS', 'CI' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CUS', 'CU' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CUS', 'HI' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CUS', 'OO' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CUS', 'RM' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'ECM', 'DO' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'ECM', 'ID' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'ECM', 'OM' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'ECM', 'OS' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'ECM', 'PO' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'ECM', 'SY' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'ECM', 'TS' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'ECM', 'VI' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'ECM', 'XB' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'ECM', 'XC' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'ECM', 'XI' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'ECM', 'XR' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'ECM', 'YS' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'FAC', 'FD' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'FAC', 'RP' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'FAC', 'RQ' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'FIN', 'AV' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'FIN', 'DI' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'FIN', 'FI' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'FIN', 'RE' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'FIN', 'VK' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'FIN', 'VV' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'IMA', 'NI' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'LOG', 'A1' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'LOG', 'CH' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'LOG', 'NP' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'LOG', 'PA' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'LOG', 'PH' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'LOG', 'PI' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'LOG', 'PM' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'LOG', 'PX' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'OTM', 'TN' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'OTM', 'TZ' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'OTM', 'WB' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'OTM', 'WC' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'OTM', 'WN' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'PAY', 'AS' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'PAY', 'AZ' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'PAY', 'CK' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'PAY', 'CV' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'PAY', 'FF' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'PAY', 'GE' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'PAY', 'MC' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'PAY', 'NZ' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'PAY', 'SF' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'PAY', 'VD' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'PAY', 'ZD' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'PAY', 'ZE' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'PAY', 'ZV' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'PRC', 'EF' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'PRC', 'EI' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'PRC', 'SN' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'RRL', 'EK' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'RRL', 'EU' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'RRL', 'HK' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'RRL', 'HR' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'RRL', 'JR' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'RRL', 'LG' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'RRL', 'MF' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'RRL', 'RX' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'RRL', 'TG' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'RRL', 'US' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SAC', 'BE' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SAC', 'BK' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SAC', 'BS' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SAC', 'BX' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SAC', 'CM' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SAC', 'KA' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SAC', 'KC' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SAC', 'KK' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SAC', 'KM' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SAC', 'SB' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SAC', 'VR' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'AM' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'DE' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'DN' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'DP' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'DT' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'ED' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'FO' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'FZ' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'GM' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'LW' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'NO' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'RI' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'ST' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'SU' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'SV' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'TP' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'TR' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'WD' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'WF' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'WI' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'WL' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'WQ' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'WS' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SEC', 'PW' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SSI', 'SW' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SSI', 'TL' FROM SYSIBM.SYSDUMMY1
)
, T (GB, TBSLe, szLe, tbsVo, szVo, rowVo) AS
(
SELECT LEFT(T.DBNAME,2),
sum(case when cardf <= 0 then 1 else 0 end),
SUM(case when cardf <= 0 then max(t.SPACEF, 0) else 0 end),
sum(case when cardf > 0 then 1 else 0 end),
SUM(case when cardf > 0 then t.SPACEF else 0 end),
SUM(case when cardf > 0 then cardf else 0 end)
FROM SYSIBM.SYSTABLES T
JOIN SYSIBM.SYSTABLESPACE S
ON T.DBNAME = S.DBNAME AND T.TSNAME = S.NAME
GROUP BY LEFT(T.DBNAME,2)
)
SELECT D.DOM, SUM(TBSLe) "le #TB",
dec(SUM(szLe) / 1024/1024, 8,3) "le GB",
SUM(TBSVo) "vo #Tb",
dec(SUM(szVo) / 1024/1024, 8,3) "vo GB",
bigInt(SUM(rowVo)) "vo #rows"
from t
left join d
on t.gb = d.gb
group by dom
order by dom
WITH UR
}¢--- A540769.WK.SQL(CASE) cre=2011-07-18 mod=2011-07-18-15.06.27 A540769 ------
with w (f) as
( select 'a' from sysibm.sysDummy1
union all select 'b' from sysibm.sysDummy1
)
select f,
case when f = 'a' then 'aaah' end case
from w
}¢--- A540769.WK.SQL(CASQLID) cre=2013-02-13 mod=2013-02-13-16.53.21 A540769 ---
set current sqlid = 'S100447';
create view oa1p.VDGTTT1
as select * from sysibm.sysdummy1;
create view oa1p.VDGTTT2
as select * FROM oa1p.VDGTTT1;
set current sqlid = 'oa1p';
create view oa1p.VDGTTT3 -- ok in DBOF, -551 in rz8
as select * FROM oa1p.VDGTTT1;
create view oa1p.VDGTTT4 -- -551 in DBOF and RZ8
as select * FROM sysibm.sysDummy1;
rollback;
}¢--- A540769.WK.SQL(CASTUNI) cre=2010-09-30 mod=2010-11-04-17.36.06 A540769 ---
with v1(v) as
( select 'abc123' from sysibm.sysDummyE
union all select 'abc@123' from sysibm.sysDummyE
union all select '@abc@123' from sysibm.sysDummyE
)
, v as
(
select cast(v as varchar(12) ccsid ebcdic) v from v1
)
select v "ebcdic",
cast(v as varchar(12) ccsid unicode) unicode,
hex(cast(v as varchar(12) ccsid unicode)) "unicodeHex"
from v
;;
select
cast('@abc@123' as varchar(10) ccsid ebcdic) ebcdic,
hex(cast('@abc@123' as varchar(10) ccsid ebcdic))ebcHex,
cast(
cast('@abc@123' as varchar(10) ccsid ebcdic)
as varchar(10) ccsid unicode) unicode,
hex( cast(
cast('@abc@123' as varchar(10) ccsid ebcdic)
as varchar(10) ccsid unicode) ) unicoHex,
cast(
cast('@abc@123' as varchar(10) ccsid ebcdic)
as varchar(10) ccsid unicode for bit data)
uniBit
from sysibm.sysDummy1
;
cast(
cast(
cast('@abc@123' as varchar(10) ccsid ebcdic)
as varchar(10) ccsid unicode)
as varBinary(10) )
uniBinary,
cast(
cast(
cast(
cast('@abc@123' as varchar(10) ccsid ebcdic)
as varchar(10) ccsid unicode)
as varBinary(10) )
as varchar(10) ccsid ebcdic )
uniBinary
}¢--- A540769.WK.SQL(CAT) cre=2006-05-23 mod=2007-04-02-17.17.54 F540769 -------
select distinct min(char(dbname, 9) || char(creator, 8)),
max(char(dbname, 9) || char(creator, 8))
from sysibm.systables
where name like 'TWL%' and type = 'T'
and left(creator, 1) in ('O', 'G')
group by name
-- order by name
;
select char(creator, 8), char(name, 16), char(dbname, 8)
from sysibm.systables
where name like 'TWL%' and type = 'T'
order by 2, 1
;
x
select * from sysibm.sysviews where name like 'VPV0%';
xelect c.name, c.creator ,
c.dbname , c.tsname ,
c.p_part, c.p_limit,
count(all tid150tst) tst_all,
count(distinct tid150tst) tst_dist,
min(tid150md) md_min,
max(tid150md) md_max,
min(tid150tst) tst_min, max(tid150tst) tst_max
from
( select
t.name, t.creator, t.dbname, t.tsname,
p.partition p_part, int(p.limitKey) p_limit,
q.partition q_part, int(q.limitKey) q_limNu,
case when q.limitKey is null then -9999 else int(q.limitKey)
end q_limit
from sysibm.systables t
join sysibm.systablePart p
on t.tsname = p.tsname and t.dbname = p.dbname
left join sysibm.systablePart q
on p.tsname = q.tsname and p.dbname = q.dbname
and p.partition - 1 = q.partition
where t.name = 'TID150A1' and t.creator = 'OA1A' ) c
left join oa1a.tid150a1 d
on d.tid150md > c.q_limit and d.tid150md <= c.p_limit
group by c.name, c.creator, c.dbname, c.tsname, p_part, p_limit
;
}¢--- A540769.WK.SQL(CATALIAS) cre=2007-08-03 mod=2007-09-20-17.34.11 F540769 ---
with alias as
(
select a.*,
case when a.location <> '' then 'remote'
when t.name is null then 'missing' else 'existing' end sta
from sysibm.systables a
left join sysibm.systables t
on a.tbCreator = t.creator and a.tbName = t.name
where a.type = 'A'
and a.name like '_PT%'
)
select 'create alias '
|| strip(a.creator) || '.' || strip(a.name)
|| ' for ' || case when a.location = '' then ''
else strip(a.location) || '.' end
|| strip(a.tbCreator) || '.' ||strip(a.tbname) || ';'
|| ' -- ' || sta
from alias a
union select 'drop alias '
|| strip(a.creator) || '.' || strip(a.name) || ';'
|| ' -- ' || sta
from alias a
;
}¢--- A540769.WK.SQL(CATALISE) cre=2008-07-08 mod=2008-07-08-14.08.56 F540769 ---
WITH N (N) AS
( SELect 'XPS_VPTOD000' FROM SYSIBM.SYSDUMMY1
UNION ALL SELect 'IDS_VINDE134' FROM SYSIBM.SYSDUMMY1
UNION ALL SELect 'XPS_VISCO001' FROM SYSIBM.SYSDUMMY1
UNION ALL SELect 'IDS_VINSP135' FROM SYSIBM.SYSDUMMY1
UNION ALL SELect 'IDS_VINIR136' FROM SYSIBM.SYSDUMMY1
UNION ALL SELect 'IDS_VISCO137' FROM SYSIBM.SYSDUMMY1
UNION ALL SELect 'IDS_VINBS138' FROM SYSIBM.SYSDUMMY1
UNION ALL SELect 'IDS_VINOP140' FROM SYSIBM.SYSDUMMY1
UNION ALL SELect 'IDS_VUNFX139' FROM SYSIBM.SYSDUMMY1
UNION ALL SELect 'XPS_VINFS000' FROM SYSIBM.SYSDUMMY1
UNION ALL SELect 'IDS_VINOP141' FROM SYSIBM.SYSDUMMY1
UNION ALL SELect 'XPS_VTRAM000_V03' FROM SYSIBM.SYSDUMMY1
UNION ALL SELect 'XPS_VRUNRETA_V03' FROM SYSIBM.SYSDUMMY1
UNION ALL SELect 'XPS_VCAFO001_V03' FROM SYSIBM.SYSDUMMY1
UNION ALL SELect 'XPS_VCAFO002_V03' FROM SYSIBM.SYSDUMMY1
UNION ALL SELect 'XPS_VCFAM001_V03' FROM SYSIBM.SYSDUMMY1
UNION ALL SELect 'XPS_VCFAM002_V05' FROM SYSIBM.SYSDUMMY1
UNION ALL SELect 'XPS_VOPPA002_V03' FROM SYSIBM.SYSDUMMY1
UNION ALL SELect 'XPS_VOPPA003_V03' FROM SYSIBM.SYSDUMMY1
UNION ALL SELect 'XPS_VCFAM006' FROM SYSIBM.SYSDUMMY1
UNION ALL SELect 'XPS_VTRAM001' FROM SYSIBM.SYSDUMMY1
UNION ALL SELect 'XPS_VTXAM504' FROM SYSIBM.SYSDUMMY1
UNION ALL SELect 'XPS_VCFAM503' FROM SYSIBM.SYSDUMMY1
UNION ALL SELect 'IDS_VTRAM142' FROM SYSIBM.SYSDUMMY1
UNION ALL SELect 'XPS_VUNFI006_V03' FROM SYSIBM.SYSDUMMY1
UNION ALL SELect 'XPS_VUNFI007_V02' FROM SYSIBM.SYSDUMMY1
UNION ALL SELect 'XPS_VNTP0014' FROM SYSIBM.SYSDUMMY1
UNION ALL SELect 'VTEVENTCONDITION' FROM SYSIBM.SYSDUMMY1
UNION ALL SELect 'VTEVENTCOMPONENTPROP' FROM SYSIBM.SYSDUMMY1
UNION ALL SELect 'VTCASHFLOW' FROM SYSIBM.SYSDUMMY1
UNION ALL SELect 'VTINSTREVENTEXDATE' FROM SYSIBM.SYSDUMMY1
UNION ALL SELect 'VTINSTREVNTEXDTLIQAMT' FROM SYSIBM.SYSDUMMY1
)
select n.n, t.type, t.creator
from n
left join sysibm.systables t
on n.n = t.name
order by n.n asc, t.type asc
}¢--- A540769.WK.SQL(CATALL) cre=2010-07-30 mod=2010-07-30-17.26.36 A540769 ----
select 'rz1.dbaf', 'd', name, '', '', ''
from sysibm.sysDatabase where name like 'NI%'
union all select 'rz1.dbaf', 't', dbname, tsName, creator, name
from sysibm.sysTables where dbName like 'NI%' and type = 'T'
union all select 'rz1.dbaf', 'x', tbCreator, tbName, creator, name
from sysibm.sysIndexes where dbName like 'NI%'
union all select 'rz1.dbaf', 'v', dbname, tsName, creator, name
from sysibm.sysTables
where type = 'V' and (dbName like 'NI%' and name like 'VNI%')
union all select 'rz1.dbaf', 'a', tbCreator, tbName, creator, name
from sysibm.sysTables
where type = 'A' and (dbName like 'NI%' and name like '_NI%')
}¢--- A540769.WK.SQL(CATALOG) cre= mod= ----------------------------------------
select
name, creator
from sysibm.systables
where name like 'TID%';
}¢--- A540769.WK.SQL(CATALT) cre=2013-06-13 mod=2013-06-13-11.35.28 A540769 ----
with g as
(
select ts.dbName, ts.name
, min(ts.createdTs) tCre, min(ts.alteredts) tAlt
, min(partitions) tsparts
, count(*) parts, min(p.createdTs) pCre, min(p.alteredts) pAlt
from sysibm.sysTablespace ts
join sysibm.sysTablePart p
on p.dbName = ts.dbName and p.tsname = ts.Name
-- where t.name like 'TMF1%'
group by ts.dbName, ts.name
)
select substr(name, 1, 16), tCre, tAlt, tsParts
, parts, pCre, pAlt, dbName
from g
where (tsParts <> parts and not (tsParts=0 and parts = 1))
or tCre is null or tAlt is null
or pCre is null or pAlt is null
or max(tCre, tAlt) < max(pCre, pAlt)
-- order by 2 desc
fetch first 100 rows only
;x;
select copyLasttime, r.*
from sysibm.sysTableSpaceStats r
where ( copyUpdateTime is null and copyLasttime is not null )
order by 1 desc
fetch first 100 rows only
with ur
;x;
select hex(copyUpdateLrsn), timestamp(copyUpdateLrsn || x'0000'),
copyUpdateTime, r.*
from sysibm.sysTableSpaceStats r
where ( copyUpdateTime is not null )
fetch first 100 rows only
;x;
with c as
(
select t.creator, t.name
, min(t.createdTs) tCre, min(t.alteredts) tAlt
, min(colCount) tCol
, count(*) cols, min(c.createdTs) cCre, min(c.alteredts) cAlt
from sysibm.sysTables t
join sysibm.sysColumns c
on t.creator = c.tbCreator and t.name = c.tbName
-- where t.name like 'TMF1%'
group by t.creator, t.name
)
select substr(name, 1, 16), tCre, tAlt, tCol, cols, cCre, cAlt, creator
from c
where tCol <> cols or cCre is null or cAlt is null
or max(tCre, tAlt) < max(cCre, cAlt)
-- order by 2 desc
fetch first 100 rows only
;x;
select *
from sysibm.sysTables t
where createdTs is null or t.alteredts is null
or createdTs > alteredTs
;x;
}¢--- A540769.WK.SQL(CATBIND) cre=2008-09-11 mod=2008-09-11-12.30.14 F540769 ---
select count(*), owner
from sysibm.syspackage
where timestamp > current timestamp - 9 month
group by owner
}¢--- A540769.WK.SQL(CATBP) cre=2011-05-13 mod=2012-10-01-08.53.25 A540769 -----
select s.bPool, t.name
from sysibm.sysTablespace s
join sysibm.sysTables t
on t.dbName = s.dbName and t.tsName = s.name
where t.creator = 'VDPS2' and
t.name in ('VTINSTRIDENT'
,'VTINSTRUMENT'
,'VTINSTIROLE'
,'VTINSTIIDENT'
)
;x;
select bPool, count(*)
from sysibm.sysTablespace
group by bPool
order by bPool
with ur
}¢--- A540769.WK.SQL(CATBPOOL) cre=2010-11-18 mod=2010-11-18-10.46.25 A540769 ---
select coalesce(t.bPool, i.bPool), t.cnt "#ts", i.cnt "#ix" 00010000
from 00020000
( select bPool, count(*) cnt 00030000
from sysibm.sysTableSpace 00040000
group by bPool 00050000
) t 00060000
full outer join 00070000
( select bPool, count(*) cnt 00080000
from sysibm.sysIndexes 00090000
group by bPool 00100000
) i 00110000
on t.bPool = i.bPool 00120000
order by 1 00130000
with ur 00140000
}¢--- A540769.WK.SQL(CATCHA) cre=2009-11-06 mod=2009-11-06-13.38.14 A540769 ----
select d.Name, d.createdTs, d.alteredTs,
s.ts, s.cre, s.alt,
t.tb, t.cre, t.alt
from sysibm.sysDatabase d
left join (
select dbName db, count(*) ts,
max(createdTs) cre, max(alteredTs) alt
from sysIbm.sysTableSpace
group by dbName
) s
on d.name = s.db
left join (
select dbName db, count(*) tb,
max(createdTs) cre, max(alteredTs) alt
from sysIbm.sysTables
group by dbName
) t
on d.name = t.db
where d.name like 'MF%'
order by 1
fetch first 100 rows only
}¢--- A540769.WK.SQL(CATCLONE) cre=2015-09-11 mod=2015-09-11-10.34.21 A540769 ---
select count(*), instance, ictype
from sysibm.sysCopy
group by instance, icType
with ur ;x;
select count(*), instance, clone
from sysibm.sysTableSpace
group by instance, clone
with ur
}¢--- A540769.WK.SQL(CATCOL) cre=2009-09-04 mod=2014-02-05-11.19.08 A540769 ----
delete from A540769.plan_table;
delete from A540769.dsn_statement_cache_table;
commit;
set current explain mode yes
;
select strip(tbcreator) || '.' || strip(tbName), c.*
from sysibm.sysColumns c
where name like '%CLUST%' and tbCreator = 'SYSIBM'
order by 1
;
set current explain mode no
;
select * from A540769.plan_view1
;
select * from A540769.dsn_queryInfo_table
;
select * from A540769.dsn_query_table
;
select * from A540769.dsn_statement_cache_table
;
rollback
}¢--- A540769.WK.SQL(CATCOLCO) cre=2015-02-11 mod=2015-02-11-15.15.38 A540769 ---
$#@
call sqlConnect DP4G
$*( generate sql to compare the columns of two tables
--cr1 = CMNBATCH
--cr2 = A540769 $*)
$<>
$<=¢
with t (tb, crL, crR) as
(
select 'PLAN_TABLE', 'CMNBATCH', 'A540769' from sysibm.sysDummy1
)
, c as
(
select c.name col, colType ct, tb, crL, crR, c.*
from t
join sysibm.sysColumns c
on c.tbCreator = crL and c.tbName = t.tb
)
select * from c order by tb, colNo
$! call sqlSel
$|
tb = ''
$forWith i $@=¢
$@ if tb <> $TB & tb \== '' then $@tbEnd
$@ if tb <> $TB then $@¢tb = $TB; $@tbBegin $!
$@ call mAdd col, $COL
|| case when l.$COL is null
and r.$COL is null then ' '
when l.$COL is null then 'r'
when r.$COL is null then 'l'
when l.$COL <> r.$COL then '|'
else ' '
end
$!
$@tbEnd
$proc $@/tbBegin/
$$ select ''
m.col.0 = 0
$/tbBegin/
$proc $@/tbEnd/
$do cx=1 to m.col.0 $@=¢
$=col =- m.col.cx
, value(l.$col
,r.$col
) $col
$!
$/tbEnd/
$#out 20150211 15:10:54
select ''
|| case when l.QUERYNO is null
and r.QUERYNO is null then ' '
when l.QUERYNO is null then 'r'
when r.QUERYNO is null then 'l'
when l.QUERYNO <> r.QUERYNO then '|'
else ' '
end
|| case when l.QBLOCKNO is null
and r.QBLOCKNO is null then ' '
when l.QBLOCKNO is null then 'r'
when r.QBLOCKNO is null then 'l'
when l.QBLOCKNO <> r.QBLOCKNO then '|'
else ' '
end
|| case when l.APPLNAME is null
and r.APPLNAME is null then ' '
when l.APPLNAME is null then 'r'
when r.APPLNAME is null then 'l'
when l.APPLNAME <> r.APPLNAME then '|'
else ' '
end
|| case when l.PROGNAME is null
and r.PROGNAME is null then ' '
when l.PROGNAME is null then 'r'
when r.PROGNAME is null then 'l'
when l.PROGNAME <> r.PROGNAME then '|'
else ' '
end
|| case when l.PLANNO is null
and r.PLANNO is null then ' '
when l.PLANNO is null then 'r'
when r.PLANNO is null then 'l'
when l.PLANNO <> r.PLANNO then '|'
else ' '
end
|| case when l.METHOD is null
and r.METHOD is null then ' '
when l.METHOD is null then 'r'
when r.METHOD is null then 'l'
when l.METHOD <> r.METHOD then '|'
else ' '
end
|| case when l.CREATOR is null
and r.CREATOR is null then ' '
when l.CREATOR is null then 'r'
when r.CREATOR is null then 'l'
when l.CREATOR <> r.CREATOR then '|'
else ' '
end
|| case when l.TNAME is null
and r.TNAME is null then ' '
when l.TNAME is null then 'r'
when r.TNAME is null then 'l'
when l.TNAME <> r.TNAME then '|'
else ' '
end
|| case when l.TABNO is null
and r.TABNO is null then ' '
when l.TABNO is null then 'r'
when r.TABNO is null then 'l'
when l.TABNO <> r.TABNO then '|'
else ' '
end
|| case when l.ACCESSTYPE is null
and r.ACCESSTYPE is null then ' '
when l.ACCESSTYPE is null then 'r'
when r.ACCESSTYPE is null then 'l'
when l.ACCESSTYPE <> r.ACCESSTYPE then '|'
else ' '
end
|| case when l.MATCHCOLS is null
and r.MATCHCOLS is null then ' '
when l.MATCHCOLS is null then 'r'
when r.MATCHCOLS is null then 'l'
when l.MATCHCOLS <> r.MATCHCOLS then '|'
else ' '
end
|| case when l.ACCESSCREATOR is null
and r.ACCESSCREATOR is null then ' '
when l.ACCESSCREATOR is null then 'r'
when r.ACCESSCREATOR is null then 'l'
when l.ACCESSCREATOR <> r.ACCESSCREATOR then '|'
else ' '
end
|| case when l.ACCESSNAME is null
and r.ACCESSNAME is null then ' '
when l.ACCESSNAME is null then 'r'
when r.ACCESSNAME is null then 'l'
when l.ACCESSNAME <> r.ACCESSNAME then '|'
else ' '
end
|| case when l.INDEXONLY is null
and r.INDEXONLY is null then ' '
when l.INDEXONLY is null then 'r'
when r.INDEXONLY is null then 'l'
when l.INDEXONLY <> r.INDEXONLY then '|'
else ' '
end
|| case when l.SORTN_UNIQ is null
and r.SORTN_UNIQ is null then ' '
when l.SORTN_UNIQ is null then 'r'
when r.SORTN_UNIQ is null then 'l'
when l.SORTN_UNIQ <> r.SORTN_UNIQ then '|'
else ' '
end
|| case when l.SORTN_JOIN is null
and r.SORTN_JOIN is null then ' '
when l.SORTN_JOIN is null then 'r'
when r.SORTN_JOIN is null then 'l'
when l.SORTN_JOIN <> r.SORTN_JOIN then '|'
else ' '
end
|| case when l.SORTN_ORDERBY is null
and r.SORTN_ORDERBY is null then ' '
when l.SORTN_ORDERBY is null then 'r'
when r.SORTN_ORDERBY is null then 'l'
when l.SORTN_ORDERBY <> r.SORTN_ORDERBY then '|'
else ' '
end
|| case when l.SORTN_GROUPBY is null
and r.SORTN_GROUPBY is null then ' '
when l.SORTN_GROUPBY is null then 'r'
when r.SORTN_GROUPBY is null then 'l'
when l.SORTN_GROUPBY <> r.SORTN_GROUPBY then '|'
else ' '
end
|| case when l.SORTC_UNIQ is null
and r.SORTC_UNIQ is null then ' '
when l.SORTC_UNIQ is null then 'r'
when r.SORTC_UNIQ is null then 'l'
when l.SORTC_UNIQ <> r.SORTC_UNIQ then '|'
else ' '
end
|| case when l.SORTC_JOIN is null
and r.SORTC_JOIN is null then ' '
when l.SORTC_JOIN is null then 'r'
when r.SORTC_JOIN is null then 'l'
when l.SORTC_JOIN <> r.SORTC_JOIN then '|'
else ' '
end
|| case when l.SORTC_ORDERBY is null
and r.SORTC_ORDERBY is null then ' '
when l.SORTC_ORDERBY is null then 'r'
when r.SORTC_ORDERBY is null then 'l'
when l.SORTC_ORDERBY <> r.SORTC_ORDERBY then '|'
else ' '
end
|| case when l.SORTC_GROUPBY is null
and r.SORTC_GROUPBY is null then ' '
when l.SORTC_GROUPBY is null then 'r'
when r.SORTC_GROUPBY is null then 'l'
when l.SORTC_GROUPBY <> r.SORTC_GROUPBY then '|'
else ' '
end
|| case when l.TSLOCKMODE is null
and r.TSLOCKMODE is null then ' '
when l.TSLOCKMODE is null then 'r'
when r.TSLOCKMODE is null then 'l'
when l.TSLOCKMODE <> r.TSLOCKMODE then '|'
else ' '
end
|| case when l.TIMESTAMP is null
and r.TIMESTAMP is null then ' '
when l.TIMESTAMP is null then 'r'
when r.TIMESTAMP is null then 'l'
when l.TIMESTAMP <> r.TIMESTAMP then '|'
else ' '
end
|| case when l.REMARKS is null
and r.REMARKS is null then ' '
when l.REMARKS is null then 'r'
when r.REMARKS is null then 'l'
when l.REMARKS <> r.REMARKS then '|'
else ' '
end
|| case when l.PREFETCH is null
and r.PREFETCH is null then ' '
when l.PREFETCH is null then 'r'
when r.PREFETCH is null then 'l'
when l.PREFETCH <> r.PREFETCH then '|'
else ' '
end
|| case when l.COLUMN_FN_EVAL is null
and r.COLUMN_FN_EVAL is null then ' '
when l.COLUMN_FN_EVAL is null then 'r'
when r.COLUMN_FN_EVAL is null then 'l'
when l.COLUMN_FN_EVAL <> r.COLUMN_FN_EVAL then '|'
else ' '
end
|| case when l.MIXOPSEQ is null
and r.MIXOPSEQ is null then ' '
when l.MIXOPSEQ is null then 'r'
when r.MIXOPSEQ is null then 'l'
when l.MIXOPSEQ <> r.MIXOPSEQ then '|'
else ' '
end
|| case when l.VERSION is null
and r.VERSION is null then ' '
when l.VERSION is null then 'r'
when r.VERSION is null then 'l'
when l.VERSION <> r.VERSION then '|'
else ' '
end
|| case when l.COLLID is null
and r.COLLID is null then ' '
when l.COLLID is null then 'r'
when r.COLLID is null then 'l'
when l.COLLID <> r.COLLID then '|'
else ' '
end
|| case when l.ACCESS_DEGREE is null
and r.ACCESS_DEGREE is null then ' '
when l.ACCESS_DEGREE is null then 'r'
when r.ACCESS_DEGREE is null then 'l'
when l.ACCESS_DEGREE <> r.ACCESS_DEGREE then '|'
else ' '
end
|| case when l.ACCESS_PGROUP_ID is null
and r.ACCESS_PGROUP_ID is null then ' '
when l.ACCESS_PGROUP_ID is null then 'r'
when r.ACCESS_PGROUP_ID is null then 'l'
when l.ACCESS_PGROUP_ID <> r.ACCESS_PGROUP_ID then '|'
else ' '
end
|| case when l.JOIN_DEGREE is null
and r.JOIN_DEGREE is null then ' '
when l.JOIN_DEGREE is null then 'r'
when r.JOIN_DEGREE is null then 'l'
when l.JOIN_DEGREE <> r.JOIN_DEGREE then '|'
else ' '
end
|| case when l.JOIN_PGROUP_ID is null
and r.JOIN_PGROUP_ID is null then ' '
when l.JOIN_PGROUP_ID is null then 'r'
when r.JOIN_PGROUP_ID is null then 'l'
when l.JOIN_PGROUP_ID <> r.JOIN_PGROUP_ID then '|'
else ' '
end
|| case when l.SORTC_PGROUP_ID is null
and r.SORTC_PGROUP_ID is null then ' '
when l.SORTC_PGROUP_ID is null then 'r'
when r.SORTC_PGROUP_ID is null then 'l'
when l.SORTC_PGROUP_ID <> r.SORTC_PGROUP_ID then '|'
else ' '
end
|| case when l.SORTN_PGROUP_ID is null
and r.SORTN_PGROUP_ID is null then ' '
when l.SORTN_PGROUP_ID is null then 'r'
when r.SORTN_PGROUP_ID is null then 'l'
when l.SORTN_PGROUP_ID <> r.SORTN_PGROUP_ID then '|'
else ' '
end
|| case when l.PARALLELISM_MODE is null
and r.PARALLELISM_MODE is null then ' '
when l.PARALLELISM_MODE is null then 'r'
when r.PARALLELISM_MODE is null then 'l'
when l.PARALLELISM_MODE <> r.PARALLELISM_MODE then '|'
else ' '
end
|| case when l.MERGE_JOIN_COLS is null
and r.MERGE_JOIN_COLS is null then ' '
when l.MERGE_JOIN_COLS is null then 'r'
when r.MERGE_JOIN_COLS is null then 'l'
when l.MERGE_JOIN_COLS <> r.MERGE_JOIN_COLS then '|'
else ' '
end
|| case when l.CORRELATION_NAME is null
and r.CORRELATION_NAME is null then ' '
when l.CORRELATION_NAME is null then 'r'
when r.CORRELATION_NAME is null then 'l'
when l.CORRELATION_NAME <> r.CORRELATION_NAME then '|'
else ' '
end
|| case when l.PAGE_RANGE is null
and r.PAGE_RANGE is null then ' '
when l.PAGE_RANGE is null then 'r'
when r.PAGE_RANGE is null then 'l'
when l.PAGE_RANGE <> r.PAGE_RANGE then '|'
else ' '
end
|| case when l.JOIN_TYPE is null
and r.JOIN_TYPE is null then ' '
when l.JOIN_TYPE is null then 'r'
when r.JOIN_TYPE is null then 'l'
when l.JOIN_TYPE <> r.JOIN_TYPE then '|'
else ' '
end
|| case when l.GROUP_MEMBER is null
and r.GROUP_MEMBER is null then ' '
when l.GROUP_MEMBER is null then 'r'
when r.GROUP_MEMBER is null then 'l'
when l.GROUP_MEMBER <> r.GROUP_MEMBER then '|'
else ' '
end
|| case when l.IBM_SERVICE_DATA is null
and r.IBM_SERVICE_DATA is null then ' '
when l.IBM_SERVICE_DATA is null then 'r'
when r.IBM_SERVICE_DATA is null then 'l'
when l.IBM_SERVICE_DATA <> r.IBM_SERVICE_DATA then '|'
else ' '
end
|| case when l.WHEN_OPTIMIZE is null
and r.WHEN_OPTIMIZE is null then ' '
when l.WHEN_OPTIMIZE is null then 'r'
when r.WHEN_OPTIMIZE is null then 'l'
when l.WHEN_OPTIMIZE <> r.WHEN_OPTIMIZE then '|'
else ' '
end
|| case when l.QBLOCK_TYPE is null
and r.QBLOCK_TYPE is null then ' '
when l.QBLOCK_TYPE is null then 'r'
when r.QBLOCK_TYPE is null then 'l'
when l.QBLOCK_TYPE <> r.QBLOCK_TYPE then '|'
else ' '
end
|| case when l.BIND_TIME is null
and r.BIND_TIME is null then ' '
when l.BIND_TIME is null then 'r'
when r.BIND_TIME is null then 'l'
when l.BIND_TIME <> r.BIND_TIME then '|'
else ' '
end
|| case when l.OPTHINT is null
and r.OPTHINT is null then ' '
when l.OPTHINT is null then 'r'
when r.OPTHINT is null then 'l'
when l.OPTHINT <> r.OPTHINT then '|'
else ' '
end
|| case when l.HINT_USED is null
and r.HINT_USED is null then ' '
when l.HINT_USED is null then 'r'
when r.HINT_USED is null then 'l'
when l.HINT_USED <> r.HINT_USED then '|'
else ' '
end
|| case when l.PRIMARY_ACCESSTYPE is null
and r.PRIMARY_ACCESSTYPE is null then ' '
when l.PRIMARY_ACCESSTYPE is null then 'r'
when r.PRIMARY_ACCESSTYPE is null then 'l'
when l.PRIMARY_ACCESSTYPE <> r.PRIMARY_ACCESSTYPE then '|'
else ' '
end
|| case when l.PARENT_QBLOCKNO is null
and r.PARENT_QBLOCKNO is null then ' '
when l.PARENT_QBLOCKNO is null then 'r'
when r.PARENT_QBLOCKNO is null then 'l'
when l.PARENT_QBLOCKNO <> r.PARENT_QBLOCKNO then '|'
else ' '
end
|| case when l.TABLE_TYPE is null
and r.TABLE_TYPE is null then ' '
when l.TABLE_TYPE is null then 'r'
when r.TABLE_TYPE is null then 'l'
when l.TABLE_TYPE <> r.TABLE_TYPE then '|'
else ' '
end
|| case when l.TABLE_ENCODE is null
and r.TABLE_ENCODE is null then ' '
when l.TABLE_ENCODE is null then 'r'
when r.TABLE_ENCODE is null then 'l'
when l.TABLE_ENCODE <> r.TABLE_ENCODE then '|'
else ' '
end
|| case when l.TABLE_SCCSID is null
and r.TABLE_SCCSID is null then ' '
when l.TABLE_SCCSID is null then 'r'
when r.TABLE_SCCSID is null then 'l'
when l.TABLE_SCCSID <> r.TABLE_SCCSID then '|'
else ' '
end
|| case when l.TABLE_MCCSID is null
and r.TABLE_MCCSID is null then ' '
when l.TABLE_MCCSID is null then 'r'
when r.TABLE_MCCSID is null then 'l'
when l.TABLE_MCCSID <> r.TABLE_MCCSID then '|'
else ' '
end
|| case when l.TABLE_DCCSID is null
and r.TABLE_DCCSID is null then ' '
when l.TABLE_DCCSID is null then 'r'
when r.TABLE_DCCSID is null then 'l'
when l.TABLE_DCCSID <> r.TABLE_DCCSID then '|'
else ' '
end
|| case when l.ROUTINE_ID is null
and r.ROUTINE_ID is null then ' '
when l.ROUTINE_ID is null then 'r'
when r.ROUTINE_ID is null then 'l'
when l.ROUTINE_ID <> r.ROUTINE_ID then '|'
else ' '
end
|| case when l.CTEREF is null
and r.CTEREF is null then ' '
when l.CTEREF is null then 'r'
when r.CTEREF is null then 'l'
when l.CTEREF <> r.CTEREF then '|'
else ' '
end
|| case when l.STMTTOKEN is null
and r.STMTTOKEN is null then ' '
when l.STMTTOKEN is null then 'r'
when r.STMTTOKEN is null then 'l'
when l.STMTTOKEN <> r.STMTTOKEN then '|'
else ' '
end
|| case when l.PARENT_PLANNO is null
and r.PARENT_PLANNO is null then ' '
when l.PARENT_PLANNO is null then 'r'
when r.PARENT_PLANNO is null then 'l'
when l.PARENT_PLANNO <> r.PARENT_PLANNO then '|'
else ' '
end
|| case when l.BIND_EXPLAIN_ONLY is null
and r.BIND_EXPLAIN_ONLY is null then ' '
when l.BIND_EXPLAIN_ONLY is null then 'r'
when r.BIND_EXPLAIN_ONLY is null then 'l'
when l.BIND_EXPLAIN_ONLY <> r.BIND_EXPLAIN_ONLY then '|'
else ' '
end
|| case when l.SECTNOI is null
and r.SECTNOI is null then ' '
when l.SECTNOI is null then 'r'
when r.SECTNOI is null then 'l'
when l.SECTNOI <> r.SECTNOI then '|'
else ' '
end
|| case when l.EXPLAIN_TIME is null
and r.EXPLAIN_TIME is null then ' '
when l.EXPLAIN_TIME is null then 'r'
when r.EXPLAIN_TIME is null then 'l'
when l.EXPLAIN_TIME <> r.EXPLAIN_TIME then '|'
else ' '
end
|| case when l.MERGC is null
and r.MERGC is null then ' '
when l.MERGC is null then 'r'
when r.MERGC is null then 'l'
when l.MERGC <> r.MERGC then '|'
else ' '
end
|| case when l.MERGN is null
and r.MERGN is null then ' '
when l.MERGN is null then 'r'
when r.MERGN is null then 'l'
when l.MERGN <> r.MERGN then '|'
else ' '
end
, value(l.QUERYNO
,r.QUERYNO
) QUERYNO
, value(l.QBLOCKNO
,r.QBLOCKNO
) QBLOCKNO
, value(l.APPLNAME
,r.APPLNAME
) APPLNAME
, value(l.PROGNAME
,r.PROGNAME
) PROGNAME
, value(l.PLANNO
,r.PLANNO
) PLANNO
, value(l.METHOD
,r.METHOD
) METHOD
, value(l.CREATOR
,r.CREATOR
) CREATOR
, value(l.TNAME
,r.TNAME
) TNAME
, value(l.TABNO
,r.TABNO
) TABNO
, value(l.ACCESSTYPE
,r.ACCESSTYPE
) ACCESSTYPE
, value(l.MATCHCOLS
,r.MATCHCOLS
) MATCHCOLS
, value(l.ACCESSCREATOR
,r.ACCESSCREATOR
) ACCESSCREATOR
, value(l.ACCESSNAME
,r.ACCESSNAME
) ACCESSNAME
, value(l.INDEXONLY
,r.INDEXONLY
) INDEXONLY
, value(l.SORTN_UNIQ
,r.SORTN_UNIQ
) SORTN_UNIQ
, value(l.SORTN_JOIN
,r.SORTN_JOIN
) SORTN_JOIN
, value(l.SORTN_ORDERBY
,r.SORTN_ORDERBY
) SORTN_ORDERBY
, value(l.SORTN_GROUPBY
,r.SORTN_GROUPBY
) SORTN_GROUPBY
, value(l.SORTC_UNIQ
,r.SORTC_UNIQ
) SORTC_UNIQ
, value(l.SORTC_JOIN
,r.SORTC_JOIN
) SORTC_JOIN
, value(l.SORTC_ORDERBY
,r.SORTC_ORDERBY
) SORTC_ORDERBY
, value(l.SORTC_GROUPBY
,r.SORTC_GROUPBY
) SORTC_GROUPBY
, value(l.TSLOCKMODE
,r.TSLOCKMODE
) TSLOCKMODE
, value(l.TIMESTAMP
,r.TIMESTAMP
) TIMESTAMP
, value(l.REMARKS
,r.REMARKS
) REMARKS
, value(l.PREFETCH
,r.PREFETCH
) PREFETCH
, value(l.COLUMN_FN_EVAL
,r.COLUMN_FN_EVAL
) COLUMN_FN_EVAL
, value(l.MIXOPSEQ
,r.MIXOPSEQ
) MIXOPSEQ
, value(l.VERSION
,r.VERSION
) VERSION
, value(l.COLLID
,r.COLLID
) COLLID
, value(l.ACCESS_DEGREE
,r.ACCESS_DEGREE
) ACCESS_DEGREE
, value(l.ACCESS_PGROUP_ID
,r.ACCESS_PGROUP_ID
) ACCESS_PGROUP_ID
, value(l.JOIN_DEGREE
,r.JOIN_DEGREE
) JOIN_DEGREE
, value(l.JOIN_PGROUP_ID
,r.JOIN_PGROUP_ID
) JOIN_PGROUP_ID
, value(l.SORTC_PGROUP_ID
,r.SORTC_PGROUP_ID
) SORTC_PGROUP_ID
, value(l.SORTN_PGROUP_ID
,r.SORTN_PGROUP_ID
) SORTN_PGROUP_ID
, value(l.PARALLELISM_MODE
,r.PARALLELISM_MODE
) PARALLELISM_MODE
, value(l.MERGE_JOIN_COLS
,r.MERGE_JOIN_COLS
) MERGE_JOIN_COLS
, value(l.CORRELATION_NAME
,r.CORRELATION_NAME
) CORRELATION_NAME
, value(l.PAGE_RANGE
,r.PAGE_RANGE
) PAGE_RANGE
, value(l.JOIN_TYPE
,r.JOIN_TYPE
) JOIN_TYPE
, value(l.GROUP_MEMBER
,r.GROUP_MEMBER
) GROUP_MEMBER
, value(l.IBM_SERVICE_DATA
,r.IBM_SERVICE_DATA
) IBM_SERVICE_DATA
, value(l.WHEN_OPTIMIZE
,r.WHEN_OPTIMIZE
) WHEN_OPTIMIZE
, value(l.QBLOCK_TYPE
,r.QBLOCK_TYPE
) QBLOCK_TYPE
, value(l.BIND_TIME
,r.BIND_TIME
) BIND_TIME
, value(l.OPTHINT
,r.OPTHINT
) OPTHINT
, value(l.HINT_USED
,r.HINT_USED
) HINT_USED
, value(l.PRIMARY_ACCESSTYPE
,r.PRIMARY_ACCESSTYPE
) PRIMARY_ACCESSTYPE
, value(l.PARENT_QBLOCKNO
,r.PARENT_QBLOCKNO
) PARENT_QBLOCKNO
, value(l.TABLE_TYPE
,r.TABLE_TYPE
) TABLE_TYPE
, value(l.TABLE_ENCODE
,r.TABLE_ENCODE
) TABLE_ENCODE
, value(l.TABLE_SCCSID
,r.TABLE_SCCSID
) TABLE_SCCSID
, value(l.TABLE_MCCSID
,r.TABLE_MCCSID
) TABLE_MCCSID
, value(l.TABLE_DCCSID
,r.TABLE_DCCSID
) TABLE_DCCSID
, value(l.ROUTINE_ID
,r.ROUTINE_ID
) ROUTINE_ID
, value(l.CTEREF
,r.CTEREF
) CTEREF
, value(l.STMTTOKEN
,r.STMTTOKEN
) STMTTOKEN
, value(l.PARENT_PLANNO
,r.PARENT_PLANNO
) PARENT_PLANNO
, value(l.BIND_EXPLAIN_ONLY
,r.BIND_EXPLAIN_ONLY
) BIND_EXPLAIN_ONLY
, value(l.SECTNOI
,r.SECTNOI
) SECTNOI
, value(l.EXPLAIN_TIME
,r.EXPLAIN_TIME
) EXPLAIN_TIME
, value(l.MERGC
,r.MERGC
) MERGC
, value(l.MERGN
,r.MERGN
) MERGN
$#out 20150211 15:09:47
}¢--- A540769.WK.SQL(CATCOLC2) cre=2015-02-11 mod=2015-02-11-20.28.48 A540769 ---
$#@
call sqlConnect DP4G
$*( generate sql to compare the columns of two tables
--cr1 = CMNBATCH
--cr2 = A540769 $*)
$<>
$>. fEdit('~tmp.sql(catcolco)')
$<=¢
with t (tb, crL, crR) as
(
select l.name, l.creator, r.creator
from sysibm.sysTables l
join sysibm.sysTables r
on l.name = r.name
where l.creator = 'CMNBATCH'
and r.creator = 'A540769'
and r.dbName = 'DB2PLAN'
and r.type = 'T'
)
, c as
(
select c.name col, colType ct, tb, crL, crR, c.*
from t
join sysibm.sysColumns c
on c.tbCreator = crL and c.tbName = t.tb
)
select * from c order by tb, colNo
$! call sqlSel
$|
tb = ''
$forWith i $@¢
if tb <> $TB & tb \== '' then
$@tbEnd
if tb <> $TB then $@¢
tb = $TB
$@tbBegin
$!
if pos('LOB', $COLTYPE) > 0 then
t1 = 'l'
else if $NULLS = 'Y' then
t1 = 'n'
else
t1 = '='
call mAdd col, t1 $COL
if t1 \== '=' then $@=¢
|| case when l.$COL is null
and r.$COL is null then ' '
when l.$COL is null then 'r'
when r.$COL is null then 'l'
$@ if t1 \== 'l' then $@=¢
when l.$COL
<> r.$COL then '|'
$!
$@ if t1 == 'l' then $@=¢
when length(l.$COL)
<> length(r.$COL) then '|'
$!
else ' '
end
$!
$!
$@tbEnd
$proc $@=/tbBegin/
$@ m.col.0 = 0
$= crL = $CRL
$= crR = $CRR
$= tb = $TB
with j as
(
select case when l.$COL is null
and r.$COL is null then 'null'
when l.$COL is null then 'righ'
when r.$COL is null then 'left'
else 'both' end lr
, ''
$/tbBegin/
$proc $@=/tbEnd/
cmp
$do cx=1 to m.col.0 $@=¢
$@ parse var m.col.cx n1 c1
$=col =- c1
, value(l.$col
,r.$col
) $col
$!
from $crL.$tb l
full outer join $crR.$tb r
$= op = on
$do cx=1 to m.col.0 $@¢
parse var m.col.cx t1 c1
$=col =- c1
if t1 == '=' then $@=¢
$op l.$col
= r.$col
$=op=and
$!
$!
)
, lu as
(
select count(*) cnt
$do cx=1 to m.col.0 $@¢
parse var m.col.cx n1 c1
if n1 == '=' then
$$- ' ,' c1
$!
from $crL.$tb
group by 0
$do cx=1 to m.col.0 $@¢
parse var m.col.cx n1 c1
if n1 == '=' then
$$- ' ,' c1
$!
)
, ru as
(
select count(*) cnt
$do cx=1 to m.col.0 $@¢
parse var m.col.cx n1 c1
if n1 == '=' then
$$- ' ,' c1
$!
from $crR.$tb
group by 0
$do cx=1 to m.col.0 $@¢
parse var m.col.cx n1 c1
if n1 == '=' then
$$- ' ,' c1
$!
)
select 'left', '$crL.$tb'
, sum(cnt), count(*)
from lu
union all select 'right', '$crR.$tb'
, sum(cnt), count(*)
from ru
union all select lr, cmp, count(*), cast(null as int)
from j
group by lr, cmp
;
-- select *
-- from j
-- where not (lr = 'both' and cmp = '')
-- order by 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 ;
$/tbEnd/
$#out 20150211 19:00:15
$#out 20150211 18:56:22
$#out 20150211 18:53:14
$#out 20150211 18:49:23
$#out 20150211 18:47:02
$#out 20150211 17:14:03
$#out 20150211 17:12:56
$#out 20150211 17:09:18
}¢--- A540769.WK.SQL(CATCOLDI) cre=2008-02-04 mod=2016-06-23-08.35.47 A540769 ---
set current path oa1p;
with t0 as
(
select *
from sysibm.sysTables
where creator = 'QZ91CRS' and name = 'TQZ91WK911K1'
)
, t (cr, tb, tbCard ) as
(
select creator, name, cardF
from t0
)
, ti (cols, col, colGroup, type, cardF, freqF, val, tb, cr, tbCard) as
(
select 0, '*table runSta', '', 'tRun', tbCard, -1, '', t.* from t
union select 0, '*table RTS', '', 'tRTS'
, sum(real(totalRows)), -1, '', t.creator, t.name
, min(s.partitions)
from t0 t
join sysibm.sysTableSpace s
on t.dbName = s.dbName and t.tsName = s.name
left join sysibm.sysTableSpaceStats r
on t.dbName = r.dbName and t.tsName = r.name
and t.dbid = r.dbid and s.psid =r.psid
group by t.creator, t.name, t.cardf
)
, c (cols, col, colGroup, type, cardF, freqF, val, tb, cr, tbCard) as
(
select 1, name, hex(colNo), 'Col'
, colCardF, -1, '', t.*
from t join sysibm.sysColumns c
on c.tbCreator = t.cr and c.tbName = t.tb
)
, d (cols, col, colGroup, type, cardF, freqF, val, tb, cr, tbCard) as
(
select numColumns, name, hex(colGroupColNo), type, cardF, frequencyF
, case when type = 'H'
then quantileNo || ':'
|| hex(case when length(strip(lowValue, t))<50
then strip(lowValue, t)
else left(lowValue, 50) end)
|| ' - '
|| hex(case when length(strip(highValue, t))<50
then strip(highValue, t)
else left(highValue, 50) end)
when type = 'F'
then hex(case when length(strip(colValue, t))<100
then strip(colValue, t)
else left(colValue, 100) end)
else ''
end
, t.*
from sysibm.sysColDist d join t
on d.tbOwner = t.cr and d.tbName = t.tb
)
, e as
(
select cols
, case when d.cols = 1 then d.col
else (select c.col from c
where c.cr = d.cr and c.tb = d.tb
and c.colGroup = right(d.colGroup, 4))
end col
, case when d.cols <> 1 then d.colGroup
else (select c.colGroup from c
where c.cr = d.cr and c.tb = d.tb
and c.col = d.col)
end colGroup
, type, cardf, freqF, val
, tb, cr, tbCard
from d
)
, o1 as
(
select * from c
union all select e.* from e
union all select * from ti
)
, o2 (cols, col, colGroup, type, cardF, freqF, val, tb, cr, tbCard) as
(
select cols, col, colGroup,type
, case when cardf <= 0 then null else cardf end
, case when freqf < 0 then null else freqf end
, val, tb, cr
, case when tbCard < 0 then null else tbCard end
from o1
)
, o3 (cols, col, colGroup, type, cardF, freqF, val, tb, cr, avgRows) as
(
select cols, col, colGroup, type, cardF, freqF, val, tb, cr
, case when type in ('C', 'COL') then tbCard / cardF
when type in ('F', 'N') then tbCard * freqF
when type in ('tRTS') then tbCard end
from o2
)
select smallint(cols) cols
, substr(col, 1, 12)
, type
, substr(fosFmte7(cardf), 1, 7) cardinF
, substr(fosFmte7(freqf), 1, 7) frequeF
, substr(fosFmte7(avgRows), 1, 7) avgRows
, 'x' || colGroup colGroup, val, cr, tb
from o3
order by cr, tb, colGroup || x'0000', type, cardf Desc, freqF desc
; x;
select smallint(cols) cols
, substr(col, 1, 12)
, type
, substr(fosFmte7(cardf), 1, 7) cardinF
, substr(fosFmte7(freqf), 1, 7) frequeF
, substr(fosFmte7(case when tbCard < 0 then null
when type in ('C', 'Col') and cardF > 0 then tbCard / cardF
when type in ('F', 'N') and freqF >= 0 then tbCard * freqF
else null end), 1, 7) avgRows
, colGroup, val, cr, tb
from o
order by cr, tb, colGroup || x'0000', type, cardf Desc, freqF desc
; x;
;x;
union all select 1, name, '', 'Col'
, colCardF, tbName, tbCreator
from sysibm.sysColumns
where (tbCreator, tbName) in (select * from t)
)
select * from d
;
set current path oa1p;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
with t (cr, tb) as
(
select creator, name
from sysibm.sysTables
where creator = 'OA1P' and name = 'TBP205A1'
)
, d (cols, nam1, colGroup, type, cardF, tb, cr) as
( select numColumns, name, colGroupColNo, type, cardF
, tbName, tbOwner
from sysibm.sysColDist
where (tbOwner, tbName) in (select * from t)
union all select 1, name, '', 'Col'
, colCardF, tbName, tbCreator
from sysibm.sysColumns
where (tbCreator, tbName) in (select * from t)
)
select * from d
;
explain plan set queryno = 7 for
with d (cols, nam1, colGroup, type, cardF, tb, cr) as
( select numColumns, name, colGroupColNo, type, cardF
, tbName, tbOwner
from sysibm.sysColDist
union all select 1, name, '', 'Col'
, colCardF, tbName, tbCreator
from sysibm.sysColumns
)
select * from d
where cr = 'OA1P' and tb = 'TBP205A1'
;
select * from plan_view1
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by --collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
rollback
;;;;
with t (cr, tb) as
(
select 'OA1P', 'TBP205A1' from sysibm.sysDummy1
)
, d (cols, nam1, colGroup, type, cardF, tb, cr) as
( select numColumns, name, colGroupColNo, type, cardF
, tbName, tbOwner
from sysibm.sysColDist
where (tbOwner, tbName) in (select * from t)
union all select 1, name, '', 'Col'
, colCardF, tbName, tbCreator
from sysibm.sysColumns
where (tbCreator, tbName) in (select * from t)
)
select * from d
;x;
,
case when numColumns = 1 then name
else ( select name || '>' || hex(colNo) || ':' || varchar(colNo)
from sysibm.sysColumns c
where c.tbCreator = cd.tbOwner
and c.tbName = cd.tbName
and hex(c.colNo) = right('FFFF'||hex(cd.colGroupColNo),4)
)
end lastCol
, type, cardF, hex(colgroupcolno) colGroup
, tbOwner cr, tbName tb
from sysibm.sysColDist cd
-- where type = 'C'
union all select 1 cols
, name || '>' || hex(colNo) || ':' || varchar(colNo) lastCol
, 'col' type
, colCardF cardF, hex(colNo) colGroup
, tbCreator cr, tbName tb
from sysibm.sysColumns
)
,ith c1 as
( select numColumns cols,
case when numColumns = 1 then name
else ( select name || '>' || hex(colNo) || ':' || varchar(colNo)
from sysibm.sysColumns c
where c.tbCreator = cd.tbOwner
and c.tbName = cd.tbName
and hex(c.colNo) = right('FFFF'||hex(cd.colGroupColNo),4)
)
end lastCol
, type, cardF, hex(colgroupcolno) colGroup
, tbOwner cr, tbName tb
from sysibm.sysColDist cd
-- where type = 'C'
union all select 1 cols
, name || '>' || hex(colNo) || ':' || varchar(colNo) lastCol
, 'col' type
, colCardF cardF, hex(colNo) colGroup
, tbCreator cr, tbName tb
from sysibm.sysColumns
)
select smallint(cols) cols
, substr(lastCol, 1, 24)
, type
, fosFmte7(cardf), colGroup, cr, tb
from c1
where cr = 'OA1P' and tb = 'TBP205A1'
order by cr, tb, type, colGroup || x'0000'
; x;
???????
select
( select substr(name || '>' || hex(colNo) || ':' || varchar(colNo)
, 1, 24)
from sysibm.sysColumns c
where c.tbCreator = cd.tbOwner
and c.tbName = cd.tbName
and hex(c.colNo) = right('FFFF'||hex(cd.colGroupColNo),4)
) "lastCol"
, cardF, hex(colgroupcolno)
, name
, cd.*
from sysibm.sysColDist cd
where tbowner = 'OA1T' and tbName = 'TRP303A2'
and type = 'C'
-- and colValue like x'000000' || '%'
order by tbOwner, tbName,
colGroupColNo || x'0000'
;x;
select hex(colValue), hex(colgroupcolno), hex(lowvalue), c.*
from sysibm.sysColDist c
where tbowner = 'OA1T' and tbName = 'TRP303A2'
and type = 'C'
-- and colValue like x'000000' || '%'
;x;
select count(*), tbOwner, tbName, name, type, COLGROUPCOLNO,QUANTILENO
-- ,colvalue -- , lowvalue, hex(colValue)
from sysibm.sysColDist c
-- where tbowner = 'OA1T' and tbName = 'TCK051A1'
group by tbOwner, tbName, name, type, COLGROUPCOLNO,QUANTILENO
-- ,colvalue -- , lowvalue
order by 1 desc
fetch first 100 rows only
with ur
;;;
select char(strip(tbOwner)||'.'||strip(tbName)||'.'||strip(name), 40),
frequency, frequencyf, cardf,
numColumns, hex(COLGROUPCOLNO), c.*
where tbOwner = 'A540769' and tbName = 'TTR009A1'
;
select colNo, name
from sysibm.sysColumns
where tbCreator = 'A540769' and tbName = 'TTR009A1'
}¢--- A540769.WK.SQL(CATCOLIN) cre=2013-02-01 mod=2013-02-01-09.51.57 A540769 ---
$#@
call sqlConnect
$;
$@=¢
select tbCreator cr, tbName tb, name col, colNo,colType type, length len
from sysibm.syscolumns
where tbCreator = 'SYSIBM' and tbName like 'SYSCOLUM%'
order by tbCreator, tbName, colNo
$!
$| call sqlSel
$| curTb = ''
$@forWith o $@¢
if curTb \= strip($CR)'.'strip($TB) then do
curTb = strip($CR)'.'strip($TB)
call out '***' curTb
end
call out f('@COLNO%4i @COL%-30C @TYPE%-8C @LEN%5i', $.$o)
$!
$#out 20130201 09:50:18
*** SYSIBM.SYSCOLUMNS
1 NAME VARCHAR 128
2 TBNAME VARCHAR 128
3 TBCREATOR VARCHAR 128
4 COLNO SMALLINT 2
5 COLTYPE CHAR 8
6 LENGTH SMALLINT 2
7 SCALE SMALLINT 2
8 NULLS CHAR 1
9 COLCARD INTEGER 4
10 HIGH2KEY VARCHAR 2000
11 LOW2KEY VARCHAR 2000
12 UPDATES CHAR 1
13 IBMREQD CHAR 1
14 REMARKS VARCHAR 762
15 DEFAULT CHAR 1
16 KEYSEQ SMALLINT 2
17 FOREIGNKEY CHAR 1
18 FLDPROC CHAR 1
19 LABEL VARCHAR 90
20 STATSTIME TIMESTMP 10
21 DEFAULTVALUE VARCHAR 1536
22 COLCARDF FLOAT 8
23 COLSTATUS CHAR 1
24 LENGTH2 INTEGER 4
25 DATATYPEID INTEGER 4
26 SOURCETYPEID INTEGER 4
27 TYPESCHEMA VARCHAR 128
28 TYPENAME VARCHAR 128
29 CREATEDTS TIMESTMP 10
30 STATS_FORMAT CHAR 1
31 PARTKEY_COLSEQ SMALLINT 2
32 PARTKEY_ORDERING CHAR 1
33 ALTEREDTS TIMESTMP 10
34 CCSID INTEGER 4
35 HIDDEN CHAR 1
36 RELCREATED CHAR 1
37 CONTROL_ID INTEGER 4
38 XML_TYPEMOD_ID INTEGER 4
39 PERIOD CHAR 1
40 GENERATED_ATTR CHAR 1
41 HASHKEY_COLSEQ SMALLINT 2
*** SYSIBM.SYSCOLUMNS_HIST
1 NAME VARCHAR 128
2 TBNAME VARCHAR 128
3 TBCREATOR VARCHAR 128
4 COLNO SMALLINT 2
5 COLTYPE CHAR 8
6 LENGTH SMALLINT 2
7 LENGTH2 INTEGER 4
8 NULLS CHAR 1
9 HIGH2KEY VARCHAR 2000
10 LOW2KEY VARCHAR 2000
11 STATSTIME TIMESTMP 10
12 COLCARDF FLOAT 8
13 IBMREQD CHAR 1
14 STATS_FORMAT CHAR 1
*** SYSIBM.SYSCOLUMNS_SHORT_VIEW
1 NAME CHAR 18
2 TBNAME CHAR 18
3 TBCREATOR CHAR 18
4 COLNO SMALLINT 2
5 COLTYPE CHAR 8
6 LENGTH SMALLINT 2
7 SCALE SMALLINT 2
8 NULLS CHAR 1
9 COLCARD INTEGER 4
10 HIGH2KEY CHAR 18
11 LOW2KEY CHAR 18
12 UPDATES CHAR 1
13 IBMREQD CHAR 1
14 REMARKS CHAR 18
15 DEFAULT CHAR 1
16 KEYSEQ SMALLINT 2
17 FOREIGNKEY CHAR 1
18 FLDPROC CHAR 1
19 LABEL CHAR 18
20 STATSTIME TIMESTMP 10
21 DEFAULTVALUE CHAR 18
22 COLCARDF FLOAT 8
23 COLSTATUS CHAR 1
24 LENGTH2 INTEGER 4
25 DATATYPEID INTEGER 4
26 SOURCETYPEID INTEGER 4
27 TYPESCHEMA CHAR 18
28 TYPENAME CHAR 18
29 CREATEDTS TIMESTMP 10
30 STATS_FORMAT CHAR 1
31 PARTKEY_COLSEQ SMALLINT 2
32 PARTKEY_ORDERING CHAR 1
33 ALTEREDTS TIMESTMP 10
34 CCSID INTEGER 4
35 HIDDEN CHAR 1
$#out 20130201 09:49:34
*** SYSIBM.SYSCOLUMNS
1 NAME VARCHAR 128
2 TBNAME VARCHAR 128
3 TBCREATOR VARCHAR 128
4 COLNO SMALLINT 2
5 COLTYPE CHAR 8
6 LENGTH SMALLINT 2
7 SCALE SMALLINT 2
8 NULLS CHAR 1
9 COLCARD INTEGER 4
10 HIGH2KEY VARCHAR 2000
11 LOW2KEY VARCHAR 2000
12 UPDATES CHAR 1
13 IBMREQD CHAR 1
14 REMARKS VARCHAR 762
15 DEFAULT CHAR 1
16 KEYSEQ SMALLINT 2
17 FOREIGNKEY CHAR 1
18 FLDPROC CHAR 1
19 LABEL VARCHAR 90
20 STATSTIME TIMESTMP 10
21 DEFAULTVALUE VARCHAR 1536
22 COLCARDF FLOAT 8
23 COLSTATUS CHAR 1
24 LENGTH2 INTEGER 4
25 DATATYPEID INTEGER 4
26 SOURCETYPEID INTEGER 4
27 TYPESCHEMA VARCHAR 128
28 TYPENAME VARCHAR 128
29 CREATEDTS TIMESTMP 10
30 STATS_FORMAT CHAR 1
31 PARTKEY_COLSEQ SMALLINT 2
32 PARTKEY_ORDERING CHAR 1
33 ALTEREDTS TIMESTMP 10
34 CCSID INTEGER 4
35 HIDDEN CHAR 1
36 RELCREATED CHAR 1
37 CONTROL_ID INTEGER 4
38 XML_TYPEMOD_ID INTEGER 4
39 PERIOD CHAR 1
40 GENERATED_ATTR CHAR 1
41 HASHKEY_COLSEQ SMALLINT 2
*** SYSIBM.SYSCOLUMNS_HIST
1 NAME VARCHAR 128
2 TBNAME VARCHAR 128
3 TBCREATOR VARCHAR 128
4 COLNO SMALLINT 2
5 COLTYPE CHAR 8
6 LENGTH SMALLINT 2
7 LENGTH2 INTEGER 4
8 NULLS CHAR 1
9 HIGH2KEY VARCHAR 2000
10 LOW2KEY VARCHAR 2000
11 STATSTIME TIMESTMP 10
12 COLCARDF FLOAT 8
13 IBMREQD CHAR 1
14 STATS_FORMAT CHAR 1
*** SYSIBM.SYSCOLUMNS_SHORT_VIEW
1 NAME CHAR 18
2 TBNAME CHAR 18
3 TBCREATOR CHAR 18
4 COLNO SMALLINT 2
5 COLTYPE CHAR 8
6 LENGTH SMALLINT 2
7 SCALE SMALLINT 2
8 NULLS CHAR 1
9 COLCARD INTEGER 4
10 HIGH2KEY CHAR 18
11 LOW2KEY CHAR 18
12 UPDATES CHAR 1
13 IBMREQD CHAR 1
14 REMARKS CHAR 18
15 DEFAULT CHAR 1
16 KEYSEQ SMALLINT 2
17 FOREIGNKEY CHAR 1
18 FLDPROC CHAR 1
19 LABEL CHAR 18
20 STATSTIME TIMESTMP 10
21 DEFAULTVALUE CHAR 18
22 COLCARDF FLOAT 8
23 COLSTATUS CHAR 1
24 LENGTH2 INTEGER 4
25 DATATYPEID INTEGER 4
26 SOURCETYPEID INTEGER 4
27 TYPESCHEMA CHAR 18
28 TYPENAME CHAR 18
29 CREATEDTS TIMESTMP 10
30 STATS_FORMAT CHAR 1
31 PARTKEY_COLSEQ SMALLINT 2
32 PARTKEY_ORDERING CHAR 1
33 ALTEREDTS TIMESTMP 10
34 CCSID INTEGER 4
35 HIDDEN CHAR 1
$#out 20130201 09:48:28
*** SYSIBM.SYSCOLUMNS
1 NAME VARCHAR 128
2 TBNAME VARCHAR 128
3 TBCREATOR VARCHAR 128
4 COLNO SMALLINT 2
5 COLTYPE CHAR 8
6 LENGTH SMALLINT 2
7 SCALE SMALLINT 2
8 NULLS CHAR 1
9 COLCARD INTEGER 4
10 HIGH2KEY VARCHAR 2000
11 LOW2KEY VARCHAR 2000
12 UPDATES CHAR 1
13 IBMREQD CHAR 1
14 REMARKS VARCHAR 762
15 DEFAULT CHAR 1
16 KEYSEQ SMALLINT 2
17 FOREIGNKEY CHAR 1
18 FLDPROC CHAR 1
19 LABEL VARCHAR 90
20 STATSTIME TIMESTMP 10
21 DEFAULTVALUE VARCHAR 1536
22 COLCARDF FLOAT 8
23 COLSTATUS CHAR 1
24 LENGTH2 INTEGER 4
25 DATATYPEID INTEGER 4
26 SOURCETYPEID INTEGER 4
27 TYPESCHEMA VARCHAR 128
28 TYPENAME VARCHAR 128
29 CREATEDTS TIMESTMP 10
30 STATS_FORMAT CHAR 1
31 PARTKEY_COLSEQ SMALLINT 2
32 PARTKEY_ORDERING CHAR 1
33 ALTEREDTS TIMESTMP 10
34 CCSID INTEGER 4
35 HIDDEN CHAR 1
36 RELCREATED CHAR 1
37 CONTROL_ID INTEGER 4
38 XML_TYPEMOD_ID INTEGER 4
39 PERIOD CHAR 1
40 GENERATED_ATTR CHAR 1
41 HASHKEY_COLSEQ SMALLINT 2
*** SYSIBM.SYSCOLUMNS_HIST
1 NAME VARCHAR 128
2 TBNAME VARCHAR 128
3 TBCREATOR VARCHAR 128
4 COLNO SMALLINT 2
5 COLTYPE CHAR 8
6 LENGTH SMALLINT 2
7 LENGTH2 INTEGER 4
8 NULLS CHAR 1
9 HIGH2KEY VARCHAR 2000
10 LOW2KEY VARCHAR 2000
11 STATSTIME TIMESTMP 10
12 COLCARDF FLOAT 8
13 IBMREQD CHAR 1
14 STATS_FORMAT CHAR 1
*** SYSIBM.SYSCOLUMNS_SHORT_VIEW
1 NAME CHAR 18
2 TBNAME CHAR 18
3 TBCREATOR CHAR 18
4 COLNO SMALLINT 2
5 COLTYPE CHAR 8
6 LENGTH SMALLINT 2
7 SCALE SMALLINT 2
8 NULLS CHAR 1
9 COLCARD INTEGER 4
10 HIGH2KEY CHAR 18
11 LOW2KEY CHAR 18
12 UPDATES CHAR 1
13 IBMREQD CHAR 1
14 REMARKS CHAR 18
15 DEFAULT CHAR 1
16 KEYSEQ SMALLINT 2
17 FOREIGNKEY CHAR 1
18 FLDPROC CHAR 1
19 LABEL CHAR 18
20 STATSTIME TIMESTMP 10
21 DEFAULTVALUE CHAR 18
22 COLCARDF FLOAT 8
23 COLSTATUS CHAR 1
24 LENGTH2 INTEGER 4
25 DATATYPEID INTEGER 4
26 SOURCETYPEID INTEGER 4
27 TYPESCHEMA CHAR 18
28 TYPENAME CHAR 18
29 CREATEDTS TIMESTMP 10
30 STATS_FORMAT CHAR 1
31 PARTKEY_COLSEQ SMALLINT 2
32 PARTKEY_ORDERING CHAR 1
33 ALTEREDTS TIMESTMP 10
34 CCSID INTEGER 4
35 HIDDEN CHAR 1
$#out 20130201 09:42:35
}¢--- A540769.WK.SQL(CATCOLLE) cre=2013-10-22 mod=2013-10-22-16.29.22 A540769 ---
with c as
(
select recLength
, sum(length) leSum
, sum(case when nulls = 'Y' and colType not like '%LOB%'
and colType <> 'XML' then 1 else 0 end) leNul
, sum(case when colType like '%VAR%' or colType = 'ROWID' then 0
when colType = 'DECIMAL' then int(floor(real(length)/2)+1)
when colType like '%LOB%' or colType = 'XML' then 2 + length
else length end) leFix
, sum(case when colType like '%VAR%' or coltype = 'ROWID'
then 2+length else 0 end) leVa
, case when edProc = '' then 0 else 10 end edProc
, t.creator, t.name, t.type
from sysibm.sysTables t join sysibm.sysColumns c
on t.creator = c.tbCreator and t.name = c.tbName
where t.name like '%' and type not in ('V', 'A', 'P', 'X')
group by t.creator, t.name, t.recLength, t.type, t.edProc
)
select leFix+leVa+leNul+edProc+8, c.*
from c
where leFix+leVa+leNul+edProc+8 <> recLength
with ur
;x;
, s as
(
select sum(recLength) recLength
, sum(leSum ) leSum
, sum(leNul ) leNul
, sum(leFix ) leFix
, sum(leVa ) leVa
, sum(edProc ) edProc
from c
)
select leFix+leVa+leNul+edProc+8, s.*
from s
}¢--- A540769.WK.SQL(CATCOLS) cre=2010-07-28 mod=2010-07-28-16.14.34 A540769 ---
select name
from sysibm.syscolumns
where tbCreator = 'RZ2XX' and tbName = 'TACCT_GENERAL'
order by name
}¢--- A540769.WK.SQL(CATCOLST) cre=2010-04-29 mod=2013-05-28-10.55.18 A540769 ---
select *
from sysibm.sysColDist cs
WHERE cs.tbOwner = 'OA1A' and cs.tbName like 'TPV407%'
;
DELETE FROM SYSIBM.SYSCOLDIST
WHERE TBOWNER = 'OA1A'
AND TBNAME = 'TPV407A1'
AND NAME = 'ABRUFID'
;
commit
;x;
set current path = oa1a;
select SUBSTR(d.name, 1, 8), substr(c1.name, 1, 8),
substr(c2.name, 1, 8), substr(c3.name, 1, 8),
fosFmte7(cardf) "cardf",
hex(colValue),
numColumns, length(colGroupColNo), hex(colGroupColNo), d.*
from sysibm.syscolDiststats d
left join sysibm.syscolumns c1
on hex(substr(d.colGroupColNo, 1, 2))
= hex(c1.colno)
and c1.tbCreator = d.tbOwner
and c1.tbName = d.tbName
left join sysibm.syscolumns c2
on hex(substr(d.colGroupColNo, 3, 2))
= hex(c2.colno)
and c2.tbCreator = d.tbOwner
and c2.tbName = d.tbName
left join sysibm.syscolumns c3
on hex(substr(d.colGroupColNo, 5, 2))
= hex(c3.colno)
and c3.tbCreator = d.tbOwner
and c3.tbName = d.tbName
where tbOwner = 'A540769' and d.tbName = 'TWKEW05A1'
order by statstime desc
; x;
x;
set current sqlid = 'S100447';
update sysibm.sysColumns set
statstime = '0001-01-01-00.00.00.00000'
, colCardf = -1
where tbCreator = 'OA1P' and tbName like 'TWM005A1'
;
commit;
--delete
-- from sysibm.syscoldist
-- where tbOwner like 'OA1P%' and tbName like 'TWM005%'
--;
select *
from sysibm.syscolstats
where tbOwner like 'OA1P%' and tbName like 'TWM005%'
;
select *
from sysibm.syscoldist
where tbOwner like 'OA1P%' and tbName like 'TWM005%'
;
select *
from sysibm.syscoldiststats
where tbOwner like 'OA1P%' and tbName like 'TWM005%'
;
select *
from sysibm.syscolstats
where tbOwner like 'BUA%' and tbName like 'XBEHL001%'
}¢--- A540769.WK.SQL(CATCOLTS) cre=2012-08-31 mod=2012-08-31-13.00.13 A540769 ---
select *
from sysibm.syscolumns
where colType = 'TIMESTMP' and scale <> 6
order by tbCreator, tbName, name
with ur
}¢--- A540769.WK.SQL(CATCOLTY) cre=2011-05-11 mod=2011-05-11-14.28.17 A540769 ---
select coltype, substr(typeName,1,12) "typeName", nulls, dataTypeId,
min(relCreated) "ri", max(relCreated) "ra", count(*)
-- , c.*
from sysibm.syscolumns c
group by coltype, typeName, nulls, dataTypeId
order by 1, datatypeId, colType, nulls, typeName
fetch first 1000 rows only
}¢--- A540769.WK.SQL(CATCOLUM) cre=2012-05-09 mod=2012-05-09-15.31.34 A540769 ---
select length(name), count(*), max(name)
from sysibm.syscolumns
group by length(name)
order by length(name) desc
with ur
}¢--- A540769.WK.SQL(CATCOLUP) cre=2012-07-10 mod=2012-07-10-10.45.21 A540769 ---
select (select partitions from sysibm.sysTableSpace s
where s.dbName = t.dbName and s.name = t.tsName) parts,
t.*
from sysibm.sysTables t
where t.type = 'T'
and exists (select 1
from sysibm.sysColumns c
where t.creator = c.tbCreator and t.name = c.tbName
and c.updates = 'N'
and c.colType <> 'ROWID'
and c.default <> 'K'
and t.creator <> 'SYSIBM'
)
;X;
group by t.creator, t.name
with c as
(
select count(*) cols,
sum(case when c.updates = 'N' then 1 else 0 end) updN
from sysibm.sysTables t
join sysibm.sysColumns c
on t.creator = c.tbCreator and t.name = c.tbName
where t.type = 'T'
group by t.creator, t.name
)
select count(*) tbs,
sum(case when updN = 0 then 0 else 1 end) tbsUpdN,
sum(cols) cols,
sum(updN) updN
from c
}¢--- A540769.WK.SQL(CATCOLX) cre=2012-09-12 mod=2012-09-12-13.33.17 A540769 ---
select count(*)
from sysibm.sysColumns where upper(name) like 'WK23%'
;
}¢--- A540769.WK.SQL(CATCOMLT) cre=2013-09-30 mod=2013-09-30-09.37.59 A540769 ---
with c as
(
select s.partitions parts, c.*
from sysibm.sysCopy c join sysibm.sysTablespace s
on c.dbName = s.dbName and c.tsName = s.name
where c.dbName like 'DB%'
and icType in ('F', 'I')
)
, d as
(
select icType
, case when parts > 0 then 'partd'
else strip(char(parts)) end prt
, case when dsNum = 0 and parts = 0 then 'p0dsNum0'
when dsNum > 0 and parts > 0 then 'p>dsNum>'
when dsNum = 0 and parts > 0 then 'p>dsNum0'
else 'p' || parts || 'dsNum' || dsNum
end partDsn
, case when lowDsNum = dsNum and highDsNum = dsnum then 'single'
when dsNum=0 and lowDsNum = 1 and highDsNum = parts then 'all'
else 'dsNum' || dsNum || 'low' || lowDsNum
|| 'high' || highDsNum
end dsNums
from c
)
, e as
(
select icType, copyPagesF
, case when parts = 0 then 'p0' else 'p>' end p
, case when dsNum = 0 then 'ds0' else 'ds>' end ds
from c
)
select count(*), sum(copyPagesF), icType, p, ds
from e
group by icType, p, ds
}¢--- A540769.WK.SQL(CATCOOLD) cre=2008-08-05 mod=2008-08-05-11.58.29 F540769 ---
select -- p.dbName, p.tsName, p.partition, max(c.timestamp)
' INCLUDE TABLESPACE ' || strip(p.dbName)
|| '.' || strip(p.tsName)
|| ' PARTLEVEL ' || strip(char(p.partition))
|| ' -- ' || strip(coalesce(char(max(c.timestamp)), '<<null>>'))
from sysibm.systablepart p
left join sysibm.syscopy c
on p.dbName = c.dbName and p.tsName = c.tsName
and c.dsNum in (0, p.partition) and c.ictype in ('F')
-- where p.dbName like 'NI%'
group by p.dbName, p.tsName, p.partition
having max(c.timestamp) is null
or max(c.timestamp) < current timestamp - 7 days
-- fetch first 100 rows only
;
x
select left(c.jobName, 2), count(distinct c.jobName),
min(c.jobName), max(c.jobName),
count(*) cnt,
sum(c.copyPagesF * 1024 * s.pgSize) bytes
from sysibm.sysCopy c , sysibm.systableSpace s
where c.timestamp between '2008-06-27-19.00.00'
and '2008-06-30-06.00.00'
and s.dbName = c.dbName and s.name = c.tsName
and c.icType in ('F', 'I')
group by left(c.jobName, 2)
order by 6 desc
;
x
select date(timestamp),
count(*) cnt,
sum(c.copyPagesF * 1024 * s.pgSize) bytes
from sysibm.sysCopy c , sysibm.systableSpace s
where --c.timestamp between '2008-06-27-19.00.00'
-- and '2008-06-30-06.00.00'
s.dbName = c.dbName and s.name = c.tsName
and c.icType in ('F', 'I')
group by date(timestamp)
order by 1 asc
;
x
select c.jobName, count(*) cnt,
sum(c.copyPagesF * 1024 * s.pgSize) bytes
from sysibm.sysCopy c , sysibm.systableSpace s
where s.partitions > 0 and c.timestamp > current timestamp - 20 days
and s.dbName = c.dbName and s.name = c.tsName
and c.dsNum = 0
and c.icType in ('F', 'I')
group by c.jobName
order by 3 desc
;
having sum(case when c.dsNum = 0 then 1 else 0 end) >0
) x
select sum(cnt), sum(total) total, sum(totBy) totBy, sum(maxBy) maxBy,
sum(part), sum(paBy)
from (
-- where dbName like 'MF%'
;
xelect ictype, timestamp, hex(timestamp), dsName
from sysibm.sysCopy c
where dbName = 'XR01A1P' AND TSNAME = 'A200A'
AND DSNUM = 69
order by 2 desc
fetch first 100 rows only
;
select ictype, timestamp, hex(timestamp), dsName
from sysibm.sysCopy c
where dbName = 'XR01A1P' AND TSNAME = 'A200A'
AND DSNUM = 69
order by 2 desc
fetch first 100 rows only
;
Xselect dsName , copyPagesF * 1024 * pgSize
from sysibm.sysCopy c , sysibm.systableSpace s
where copyPagesF > 10 * 1024 * 1024
and s.dbName = c.dbName and s.name = c.tsName
order by 2 desc
fetch first 100 rows only
;
x
select current timestamp from sysibm.sysdummy1
;
select count(*) from
(
select dbName, tsName, dsNum, max(timestamp) new,
max(case when timestamp <= '2008-03-07-11.11.11'
then timestamp else null end) last
from sysibm.sysCopy
where icType = 'F' -- and dbName = 'MF01A1P'
group by dbName, tsName, dsNum
) x ,
sysibm.sysCopy c
where c.icType in ('F', 'I')
and c.dbName = x.dbName
and c.tsName = x.tsName
and c.dsNum = x.dsNum
and c.timestamp <= x.new
and c.timestamp >= x.last
with ur
;
select current timestamp from sysibm.sysdummy1
;
select count(*), icType, date(timestamp)
from sysibm.syscopy
group by icType, date(timestamp)
order by 2, 3
;
x
select da, icType,
sum(copied) copied, sum(coSize) coSize,
sum(coChgd) coChgd, sum(catSpc) catSpc,
sum(coCnt) coCntz, sum(paCnt) paCnt
from
( select date(timestamp) da, icType,
sum(copyPagesF * pgSize * 1024) copied,
sum(nPagesF * pgSize * 1024) coSize,
sum(cPagesF * pgSize * 1024) coChgd,
max(p.spacef * s.pgSize * 1024) catSpc,
count(*) coCnt,
1 paCnt
from sysibm.syscopy c, sysibm.systablespace s,
sysIbm.sysTablePart p
where icType in ('F', 'I') and c.dbName like 'MF01%'
and p.dbName = s.dbName and p.tsName = s.name
and c.dbName = p.dbName and c.tsName = p.tsName
and c.dsNum = p.partition
group by date(timestamp), icType,
s.dbName, s.name, p.partition
) pa
group by da, icType
order by 1 desc, 2
with ur
;
x
with tsDet as
( select s.dbname db, s.name ts,
sum(real(s.nActive) * s.pgSize* 1024) cAct,
sum(s.spaceF * 1024) cSpa,
sum(real(r.space) * 1024) rSpa,
sum(real(r.nActive) * s.pgSize * 1024) rAct
from sysibm.sysTablespace s,
join sysibm.sysTablePart p
on s.dbName = p.dbName and s.name = p.tsName
left Join sysibm.tablespacestats r
on r.dbid = s.dbid and r.psid = s.psid
and r.dbName= s.dbName and r.name = s.name
and r.partition = s.partition
left join sysibm.sysCopy c
on c.dbName = s.dbName and c.tsName = s.name
and c.partition = p.partition
icType, sum(pgSize * copypagesf), sum(pgSize* nPagesF)
, sum(pgSize * cPagesF)
from sysibm.syscopy c, sysibm.systablespace s, m
where icType in ('F', 'I') -- and c.dbName = 'MF01A1P'
and s.dbName = c.dbName and s.name = c.tsName
and c.dbName = m.dbName and c.tsName = m. tsName
and c.dsNum = m.dsNum and c.timestamp >= m.maxTst
from sysibm.tablespacestats r, sysibm.sysTablespace s
where r.dbid = s.dbid and r.psid = s.psid
and r.dbName= s.dbName and r.name = s.name
group by s.dbid, s.psid, s.dbname, s.name
)
select * from tsDet where db like 'MF01%'
;
select current timestamp from sysibm.sysdummy1;
with a as
(
select current timestamp from sysibm.sysdummy1;
x
with m as
( select max(timestamp) maxTst, dbName, tsName, dsNum
from sysibm.syscopy
where icType = 'F'
group by dbName, tsName, dsNum
)
select
icType, sum(pgSize * copypagesf), sum(pgSize* nPagesF)
, sum(pgSize * cPagesF)
from sysibm.syscopy c, sysibm.systablespace s, m
where icType in ('F', 'I') -- and c.dbName = 'MF01A1P'
and s.dbName = c.dbName and s.name = c.tsName
and c.dbName = m.dbName and c.tsName = m. tsName
and c.dsNum = m.dsNum and c.timestamp >= m.maxTst
group by icType
with ur
;
select current timestamp from sysibm.sysdummy1;
}¢--- A540769.WK.SQL(CATCOPDA) cre=2008-01-10 mod=2008-03-07-09.44.16 F540769 ---
-- sysCopies pro Tag und icType
-- copied = bytes kopiert
-- cnt = Anzahl copies
select date(timestamp) da, icType,
sum(copyPagesF * pgSize * 1024) copied,
sum(case when copyPagesF * pgSize >= 20 * 1024 * 1024
then copyPagesF * pgSize * 1024 else 0 end) coTape,
sum(nPagesF * pgSize * 1024) coSize,
sum(cPagesF * pgSize * 1024) coChgd,
count(*) cnt
from sysibm.syscopy c, sysibm.systablespace s
where icType in ('F', 'I') -- and c.dbName like 'MF01%'
and c.dbName = s.dbName and c.tsName = s.name
group by date(timestamp), icType
order by 1 desc, 2
with ur
;
}¢--- A540769.WK.SQL(CATCOPEN) cre=2007-12-14 mod=2007-12-18-11.57.49 F540769 ---
select d.name, t.*
from sysibm.sysDatabase d
left join
(
select count(*) cnt, dbname, min(jobNAME) minJob, MAX(JOBNAME) maxJob
from sysibm.syscopy
where jobName like 'QCS%'
group by dbName
) t
on d.Name = t.dbName
order by d.Name
;
x
select count(*), dbname, min(jobNAME), MAX(JOBNAME)
from sysibm.syscopy
where jobName like 'QCS%'
group by dbName
order by dbName
;
x
select count(*), jobname, left(dbName, 2)
from sysibm.syscopy
where left(dbName, 2) in ('DG', 'DA', 'DF')
group by jobName, left(dbName, 2)
order by 3 asc, 1 desc
;
achtung, Sau langsam|
select count(*), jobname, max(partition), min(partition)
from sysibm.syscopy c, sysibm.systablepart p
where c.dbName = p.dbName and c.tsName = p.tsname
and c.dsNum in (0, p.partition)
group by jobName
order by 1 desc
;
x
with coPa as
( select c.*, p.partition
from sysibm.syscopy c, sysibm.systablepart p
where c.dbName = p.dbName and c.tsName = p.tsname
and c.dsNum in (0, p.partition)
)
select dbName, tsName, partition, dsNUm,
( select max(timestamp) from coPa s
where s.dbName = c.dbName and s.tsName = c.tsname
and s.partition = c.partition
and s.icType in ('F') ) copy,
( select max(timestamp) from coPa s
where s.dbName = c.dbName and s.tsName = c.tsname
and s.partition = c.partition
and s.icType in ('S', 'W', 'Y') ) noLog
from coPa c
where dbName = 'DA540769'
order by dbName, tsName, partition, timestamp desc
;
x-- very slow
with coPa as
( select c.*, p.partition
from sysibm.syscopy c, sysibm.systablepart p
where c.dbName = p.dbName and c.tsName = p.tsname
and c.dsNum in (0, p.partition)
)
select dbName, tsName, partition, dsNUm, timestamp, icType, sType
from coPa c
where dbName = 'DA139274'
and c.timestamp = (select max(timestamp) from coPa s
where s.dbName = c.dbName and s.tsName = c.tsname
and s.partition = c.partition)
order by dbName, tsName, partition, timestamp desc
}¢--- A540769.WK.SQL(CATCOPEW) cre=2007-12-14 mod=2008-03-07-13.42.10 F540769 ---
call SqlConnect dbaf
$= dbLike = 'MF01%'
$£ timing() 'dbLike' $dbLike
$;
$<<¢eof
select c.dbName, c.tsName, partition,
c.dsNum, timestamp, icType, sType
from sysibm.syscopy c, sysibm.systablepart p
where c.dbName = p.dbName and c.tsName = p.tsname
and c.dsNum in (0, p.partition)
and p.dbName like $dbLike
order by 1, 2, 3, 5 desc
eof call sql 4
$¨ old='';state='F';cCo=0;cPa=0
$@for v
$@{ act = ${v.DBNAME}'.'${v.TSNAME}'.'${v.PARTITION}
cCo = cCo+1
$** $$ read $(act$) ${v.ICTYPE} ${v.TIMESTAMP}
if act ^== old then do
if pos(state, 'FTZ') < 1 then
$£ cCo cPa old state 'chain' chain
chain = ${v.ICTYPE}
state = ${v.ICTYPE}
old = act
cPa = cPa + 1
end
else do
chain = chain ${v.ICTYPE}
if pos(state, 'FSWY') < 1 then
state = ${v.ICTYPE}
end
$}
if pos(state, 'FTZ') < 1 then
$£ cCo cPa old state chain
$£ 'total' cCo 'sysCopies,' cPa 'partitions'
$£ timing() 'dbLike' $dbLike
$;
call SqlDisconnect
$***out************20080307 13:35:21************************************
13:35:21 0 101.62 dbLike 'MF01%'
total 1715 sysCopies, 568 partitions
13:35:26 0 104.91 dbLike 'MF01%'
$***out************20080307 13:34:58************************************
13:34:58 0 101.47 dbLike 'DF5%'
22 6 DA540769.A418A.0 S chain S S S
total 60 sysCopies, 18 partitions
13:34:59 0 101.53 dbLike 'DF5%'
$***out************20080307 13:34:05************************************
13:34:05 0 101.27 dbLike 'DF5%'
$***out************20080307 13:33:17************************************
13:33:17 0 101.01 dbLike 'DF5%'
$***out************20080307 13:30:44************************************
13:30:45 0 100.66 dbLike 'DF5%'
$***out************20080307 13:29:50************************************
13:29:51 0 100.53 dbLike 'DF5%'
$***out************20071228 13:28:06************************************
13:28:06 0 17.11 dbLike 'DF5%'
24 2 DA540769.A418A.0 S chain S S S
total 62 sysCopies, 14 partitions
13:28:06 0 17.17 dbLike 'DF5%'
$***out************20071228 13:27:04************************************
$***out************20071228 13:26:27************************************
$***out************20071228 13:22:09************************************
$***out************20071228 13:20:17************************************
$***out************20071228 13:19:06************************************
$***out************20071228 13:15:09************************************
$***out************20071228 13:14:49************************************
$***out************20071228 12:37:15************************************
$***out************20071228 12:23:39************************************
$***out************20071228 12:22:17************************************
$***out************20071228 12:21:40************************************
12:21:40 0 14.52 dbLike 'DF5%'
24 2 DA540769.A418A.0 S chain S S S
total 62 sysCopies, 14 partitions
12:21:40 0 14.57 dbLike 'DF5%'
}¢--- A540769.WK.SQL(CATCOPFF) cre=2008-03-13 mod=2008-03-13-15.38.26 F540769 ---
$£ timing() 'be'
$;
$<~wk.texv(syscopy)
$@{
x = 0
$@for v $@{
x = x + 1
v = $v
if x // 10000 = 0 then
say x 'db' substr(v, 1, 8) 'ts' substr(v, 9, 8) ,
'pa' c2d(substr(v, 17, 4))
$}
$}
$;
$£ timing() 'en' x
$***out 20080313 15:34:41
$***out 20080313 15:32:27
$***out
}¢--- A540769.WK.SQL(CATCOPFG) cre=2008-03-13 mod=2008-03-13-17.31.00 F540769 ---
$£ timing() 'be'
$;
ddal = dsnAlloc('~wk.texv(syscopy)')
say ddAl
dd = word(ddAl, 1)
call readDDBegin dd
x = 0
z = 0
cDb = 0
cTs = 0
cPa = 0
old = ''
curr = '2008-03-13-11.11'
last = '2008-03-12-11.11'
keys = 'B N C L O'
do kx=1 to words(keys)
ky = word(keys, kx)
c.ky.f.By = 0
c.ky.f.cn = 0
c.ky.i.By = 0
c.ky.i.cn = 0
end
do while readDD(dd, i., 1000)
x = x + i.0
do y=1 to i.0
z = z + 1
if z // 10000 = 0 then
say 'en' x 'z' z 'db' cDb 'ts' cTs 'pa' cPa ,
db'.'ts'.'pa'|'
if old ^== left(i.y, 20) then do
if left(old, 8) ^== left(i.y, 8) then do
cDb = cDb+1
db = strip(left(i.y, 8))
end
if left(old, 16) ^== left(i.y, 16) then do
cTs = cTs+1
ts = strip(substr(i.y, 9, 8))
end
cPa = cPa + 1
pa = c2d(substr(i.y, 17, 4))
old = left(i.y, 20)
sta = 'B'
end
parse var i.y 21 tst 47 tp 48 dsn . 92 bytes .
if sta == 'B' then
if tst <= curr then
sta = 'N'
if sta == 'C' then do
say 'changing' dsn
if tp = 'F' then
if tst < last then
sta = 'L'
end
say sta tp dsn
c.sta.tp.cn = c.sta.tp.cn + 1
c.sta.tp.by = c.sta.tp.by + bytes
if sta == 'N' then
if tp = 'F' then
sta = 'C'
if sta == 'L' then
sta = 'O'
end
call sf 'before' curr
call sf 'new' , n
end
call readDDEnd dd
interpret subWord(ddAl, 2)
$£ timing() 'en' x 'z' z 'db' cDb 'ts' cTs 'pa' cPa
$***out 20080313 17:10:53
$***out 20080313 17:09:47
$***out 20080313 17:08:27
$***out 20080313 17:07:29
$***out 20080313 17:06:39
$***out 20080313 17:06:11
$***out 20080313 17:05:56
$***out 20080313 16:16:53
$***out
}¢--- A540769.WK.SQL(CATCOPFR) cre=2008-03-06 mod=2008-03-07-09.51.59 F540769 ---
-- copies gruppiert nach Anzahl Copies in den letzten 7 Tagen
-- paSpc = runStats Space der kopierten Partitionen
-- copied = bytes kopiert
-- coCnt = Anzahl copies
-- paCnt = Anzahl Partitionen
-- taLim = 't' > 20Giga --> Tape
-- taLim = 'd' <= 20Giga --> Disk
select coalesce(icType, 'n') icType,
case when p.spaceF > 20*1024*1024 THEN 't' else 'd' end taLim,
coalesce(coCnt, 0) coCnt,
count(*) paCnt,
7 tage,
sum(p.spaceF * 1024) paSpc,
sum(copied * pgSize * 1024) copied,
sum(coSize * pgSize * 1024) coSize,
sum(coChgd * pgSize * 1024) coChgd
from sysibm.systablespace s
join sysibm.sysTablePart p
on s.dbName = p.dbName and s.name = p.tsName
left join (
select icType, dbName, tsName, dsNum,
count(*) coCnt,
sum(copyPagesF) copied,
sum(nPagesF) coSize,
sum(cPagesF) coChgd
from sysibm.sysCopy
where date(timestamp) < current date
and date(timestamp) >= current date - 7 days
and icType in ( 'F')
group by icType, dbName, tsName, dsNum
) c
on p.dbName = c.dbName and p.tsName = c.tsName
and p.partition = c.dsNum
-- where s.dbName like 'MF01%'
group by icType, coCnt,
case when p.spaceF > 20*1024*1024 THEN 't' else 'd' end
order by 1, 3
with ur
;
select coalesce(icType, 'n') icType,
case when p.spaceF > 20*1024*1024 THEN 't' else 'd' end taLim,
coalesce(coCnt, 0) coCnt,
count(*) paCnt,
14 tage,
sum(p.spaceF * 1024) paSpc,
sum(copied * pgSize * 1024) copied,
sum(coSize * pgSize * 1024) coSize,
sum(coChgd * pgSize * 1024) coChgd
from sysibm.systablespace s
join sysibm.sysTablePart p
on s.dbName = p.dbName and s.name = p.tsName
left join (
select icType, dbName, tsName, dsNum,
count(*) coCnt,
sum(copyPagesF) copied,
sum(nPagesF) coSize,
sum(cPagesF) coChgd
from sysibm.sysCopy
where date(timestamp) < current date
and date(timestamp) >= current date - 14 days
and icType in ( 'F')
group by icType, dbName, tsName, dsNum
) c
on p.dbName = c.dbName and p.tsName = c.tsName
and p.partition = c.dsNum
-- where s.dbName like 'MF01%'
group by icType, coCnt,
case when p.spaceF > 20*1024*1024 THEN 't' else 'd' end
order by 1, 3
with ur
;
select coalesce(icType, 'n') icType,
case when p.spaceF > 20*1024*1024 THEN 't' else 'd' end taLim,
coalesce(coCnt, 0) coCnt,
count(*) paCnt,
21 tage,
sum(p.spaceF * 1024) paSpc,
sum(copied * pgSize * 1024) copied,
sum(coSize * pgSize * 1024) coSize,
sum(coChgd * pgSize * 1024) coChgd
from sysibm.systablespace s
join sysibm.sysTablePart p
on s.dbName = p.dbName and s.name = p.tsName
left join (
select icType, dbName, tsName, dsNum,
count(*) coCnt,
sum(copyPagesF) copied,
sum(nPagesF) coSize,
sum(cPagesF) coChgd
from sysibm.sysCopy
where date(timestamp) < current date
and date(timestamp) >= current date - 21 days
and icType in ( 'F')
group by icType, dbName, tsName, dsNum
) c
on p.dbName = c.dbName and p.tsName = c.tsName
and p.partition = c.dsNum
-- where s.dbName like 'MF01%'
group by icType, coCnt,
case when p.spaceF > 20*1024*1024 THEN 't' else 'd' end
order by 1, 3
with ur
;
}¢--- A540769.WK.SQL(CATCOPF0) cre=2008-03-07 mod=2008-03-07-12.39.29 F540769 ---
-- copies gruppiert nach Anzahl Copies in den letzten 7 Tagen
-- paSpc = runStats Space der kopierten Partitionen
-- copied = bytes kopiert
-- coCnt = Anzahl copies
-- paCnt = Anzahl Partitionen
-- taLim = 't' > 20Giga --> Tape
-- taLim = 'd' <= 20Giga --> Disk
select s.dbName,
case when p.spaceF > 20*1024*1024 THEN 't' else 'd' end taLim,
coalesce(coCnt, 0) coCnt,
count(*) paCnt,
7 tage,
sum(p.spaceF * 1024) paSpc,
sum(copied * pgSize * 1024) copied,
sum(coSize * pgSize * 1024) coSize,
sum(coChgd * pgSize * 1024) coChgd
from sysibm.systablespace s
join sysibm.sysTablePart p
on s.dbName = p.dbName and s.name = p.tsName
left join (
select icType, dbName, tsName, dsNum,
count(*) coCnt,
sum(copyPagesF) copied,
sum(nPagesF) coSize,
sum(cPagesF) coChgd
from sysibm.sysCopy
where date(timestamp) < current date
and date(timestamp) >= current date - 21 days
and icType in ( 'F')
group by icType, dbName, tsName, dsNum
) c
on p.dbName = c.dbName and p.tsName = c.tsName
and p.partition = c.dsNum
-- where s.dbName like 'MF01%'
group by s.dbName, coCnt,
case when p.spaceF > 20*1024*1024 THEN 't' else 'd' end
having coCnt is null
order by paSpc desc
with ur
}¢--- A540769.WK.SQL(CATCOPIN) cre=2012-05-10 mod=2012-10-29-12.02.44 A540769 ---
with ci(c, i) as
( select 'N', 1 from sysibm.sysDummy1
union all select 'Y', 1 from sysibm.sysDummy1
union all select 'Y', 2 from sysibm.sysDummy1
)
, s as
(
select s.dbname, s.name, s.clone, s.instance, i,
case when s.instance = i then 'base' else 'clone' end baCl,
c.cInMin, cInMax,
r.rInMin, rInMax
from sysibm.sysTablespace s
full join ci on c=clone
full join (select dbName, tsname, min(instance) cInMin,
max(instance) cInMax
from sysibm.sysCopy c
group by dbName, tsname
) c
on c.dbName = s.dbName and c.tsname = s.name
full join (select dbName, name, min(instance) rInMin,
max(instance) rInMax
from sysibm.sysTableSpaceStats r
group by dbName, name
) r
on r.dbName = s.dbName and r.name = s.name
)
select count(*),clone, instance, i, baCl, cInMin, cInMax, rInMin, rInMax
from s
group by clone, instance, i, baCl, cInMin, cInMax, rInMin, rInMax
;x;
with q as
(
select s.dbname, s.name, s.clone, s.instance,
c.cInMin, cInMax,
r.rInMin, rInMax
from sysibm.sysTablespace s
full join (select dbName, tsname, min(instance) cInMin,
max(instance) cInMax
from sysibm.sysCopy c
group by dbName, tsname
) c
on c.dbName = s.dbName and c.tsname = s.name
full join (select dbName, name, min(instance) rInMin,
max(instance) rInMax
from sysibm.sysTableSpaceStats r
group by dbName, name
) r
on r.dbName = s.dbName and r.name = s.name
)
select count(*), clone, instance, cInMin, cInMax, rInMin, rInMax
from q
group by clone, instance, cInMin, cInMax, rInMin, rInMax
;x;
with p as (
select dbName db, tsname ts, dsnum part, instance inst,
count(*) cnt,
min(case when icType = 'F' then timestamp else null end) fullMin,
max(case when icType = 'F' then timestamp else null end) fullMax
from sysibm.sysCopy
group by dbName, tsName, dsNum, instance
)
select s.dbname, s.name, s.clone, s.instance,
case when inst = instance then 'base' else 'clone' end baCl,
part, inst, cnt, fullMin, fullMax
from sysibm.sysTablespace s
left join p on s.dbName = db and s.name = ts
where s.dbName like 'DCMN010%'
order by s.dbName, s.name, part, inst
}¢--- A540769.WK.SQL(CATCOPLA) cre=2012-11-04 mod=2012-11-04-11.54.00 A540769 ---
-- syscopy last icType pro Partition / Instance
with cx as
(
select dbName db, tsName ts, dsNum part, instance, icType, sType
, count(*) cnt
, max(char(timestamp) || ' p' || char(smallint(dsNum))
|| ' j' || jobName || ' d' || dsName) la
from sysibm.sysCopy
group by dbName, tsName, dsNum, instance, icType, sType
)
, c0 as
( select * from cx where part = 0
)
, c1 as
( select * from cx where part <> 0
)
, co as
(
select
value(c0.db, c1.db) db,
value(c0.ts, c1.ts) ts,
value(c0.part, c1.part) part,
value(c0.instance, c1.instance) instance,
value(c0.icType, c1.icType) icType,
value(c0.sType, c1.sType) sType,
smallint(c1.cnt) c1Cnt,
smallint(c0.cnt) c0Cnt,
value(max(c1.la, c0.la) , c1.la, c0.la, '') la
from c1 full join c0
on c1.db = c0.db and c1.ts=c0.ts and c1.part = c0.part
and c1.instance = c0.instance
and c1.icType = c0.icType and c1.sType = c0.sType
)
, ci(c, i) as
( select 'N', 1 from sysibm.sysDummy1
union all select 'Y', 1 from sysibm.sysDummy1
union all select 'Y', 2 from sysibm.sysDummy1
)
, p as
(
SELECT substr(PT.DBNAME, 1, 8) db, substr(pt.tsName, 1, 8) ts,
smallint(pt.partition) part,
icType, sType, c1Cnt, c0Cnt, la,
smallInt(ci.i) inst, ts.clone, ts.instance,
case when ts.instance = i then 'base' else 'clone' end baCl,
r.nActive,
COPYLASTTIME,
COPYUPDATEDPAGES,
COPYCHANGES,
COPYUPDATETIME
---- end @proc selIncrCopy: select fullcopy etc. --------------------
from SYSIBM.SYSTABLESPACE TS
join SYSIBM.SYSTABLEPART PT
on pt.dbNAME = TS.DBNAME
AND pt.tsNAME = ts.NAME
join ci on ci.c=ts.clone
left join co on co.db = pt.dbName and co.ts = pt.tsName
and co.part = pt.partition and co.instance = ci.i
left join SYSIBM.SYSTABLESpaceStats r
on r.dbid = ts.dbid
and r.psid = ts.psid
and r.partition = pt.partition
and r.instance = ci.i
)
select * from p
WHERE db = 'XBDJJ001' and ts = 'SIT03001'
order by db, ts, inst, part desc, la desc
with ur
}¢--- A540769.WK.SQL(CATCOPLH) cre=2015-12-16 mod=2015-12-16-08.04.38 A540769 ---
select count(*), icType, dsNum, lowDsNum, highDsNum
from sysibm.sysCopy
where -- icType <> 'M'
( lowDsNum <> 0 or highdsNum <> 0)
group by icType, dsNum, lowDsNum, highDsNum
;
}¢--- A540769.WK.SQL(CATCOPPA) cre=2010-11-30 mod=2010-11-30-14.07.48 A540769 ---
select min(jobName), max(jobName), dsName,
count(distinct dsNum), min(dsNum), max(dsNum),
min(timestamp), max(timestamp)
from sysibm.syscopy
where icType in ('F', 'I')
and timestamp > current timestamp - 5 days
and jobName like 'QR%'
group by dsName
order by 4 desc
fetch first 100 rows only
with ur
}¢--- A540769.WK.SQL(CATCOPRC) cre=2009-10-01 mod=2009-10-06-14.08.31 A540769 ---
-- find the startpoint for a recovery or logDiscontinuity
-- and all subsequent incremental image copies
-- assumption: only part level copies for partitioned TS
declare global temporary table session.copy
( db char(8) not null
, ts char(8) not null
, pa integer not null
, typ char(1) not null
, tst timestamp not null
, dsName char(44) not null
) ;
-- as (select * from sysibm.syscopy) with no data;
create index session.iCopy on session.copy
(db, ts, pa, tst, typ)
;
select current timestamp from sysibm.sysDummy1
;
insert into session.copy
select * from
(
select dbName db, tsName ts, dsNum pa, icType typ, timestamp
, dsName
from sysibm.sysCopy
where icType in ('I', 'F', 'R', 'S', 'W', 'Y')
union select dbName db, tsName ts, partition pa, 'c' typ,
createdTS, ''
from sysibm.sysTablePart
) x
where db like 'DGDB9%'
;
select current timestamp from sysibm.sysDummy1
;
with recSta as
( select c.*
from session.copy c
where c.tst >=
( select max(a.tst)
from session.copy a
where c.db = a.db and c.ts = a.ts
and c.pa = a.pa
and typ in ('c', 'F', 'R', 'S', 'W', 'Y')
)
)
select * from recSta
order by db, pa, ts
;
select current timestamp from sysibm.sysDummy1
;
rollback
;
sdf
select count(*), min(icType), max(icType),
dbName, tsName, dsNum, timeStamp
from sysibm.syscopy
group by dbName, tsName, dsNum, timeStamp
order by 1 desc
;
sdf
( select timestamp c.tsName, c.partition, max(timestamp)
where
from sysibm.syscopy c, sysibm.systablepart p
where c.dbName = p.dbName and c.tsName = p.tsname
and c.dsNum in (0, p.partition)
)
select dbName, tsName, partition, dsNUm,
( select max(timestamp) from coPa s
where s.dbName = c.dbName and s.tsName = c.tsname
and s.partition = c.partition
and s.icType in ('F') ) copy,
( select max(timestamp) from coPa s
where s.dbName = c.dbName and s.tsName = c.tsname
and s.partition = c.partition
and s.icType in ('S', 'W', 'Y') ) noLog
from coPa c
where dbName = 'DA540769'
order by dbName, tsName, partition, timestamp desc
}¢--- A540769.WK.SQL(CATCOPRE) cre=2012-09-25 mod=2012-09-25-17.32.37 A540769 ---
with p as
(
select dbName, tsName, partition,
( select max(f.timestamp) from sysibm.sysCopy f
where p.dbName = f.dbName and p.tsName = f.tsName
and f.dsNum in (p.partition, 0)
and f.icType in ('F', 'R','X')
) laFu
from sysibm.sysTablePart p
where dbName like 'MF01%'
)
select substr(strip(p.dbName) || '.' || strip(p.tsName)
|| ':' || right(' ' || strip(char(partition)), 4), 1, 22),
laFu, c.icType, c.dsNum, c.Timestamp,
c.dsName, c.*
from p left join sysibm.sysCopy c
on p.dbName = c.dbName and p.tsName = c.tsName
and c.dsNum in (p.partition, 0)
and c.icType in ('F', 'I', 'R','X')
and c.timestamp >= laFu
order by p.dbName, p.tsName, p.partition, c.timestamp desc
;;;;
AND (( CP.ICTYPE IN ('F','R','X') -- fullcopy or fullLog
AND CP.TIMESTAMP > CURRENT TIMESTAMP - $-{days} DAYS
) or ((CP.ICTYPE = 'C' -- created today
-- part added today
or (CP.ICTYPE = 'A' and CP.sType = 'A')
) and date(cp.timestamp) >= current date
) )
(
select case when strip(min(dbName)) like '_*' and min(dbName) > 'A*'
then left(min(dbName), 1) else ''
end fr,
case when strip(max(dbName)) like '_*'
then left(max(dbName), 1) else ''
end || x'FFFF' to
FROM DLC.OBJECTS_V13
WHERE EXCLUDE='I' AND NAME='QDDBOF INCL EXCLUDES'
)
, p as
$! else $@=¢
with p as
$!
$@=¢
(
SELECT PT.DBNAME, pt.tsName, pt.partition,
( SELECT char(timestamp) || icType
FROM SYSIBM.SYSCOPY CP
WHERE PT.DBNAME = CP.DBNAME
AND PT.TSNAME = CP.TSNAME
AND cp.dsNum in (PT.PARTITION, 0)
AND CP.ICTYPE IN ('F','R','X')
order by timestamp desc
fetch first 1 row only
) laFull,
r.nActive,
COPYLASTTIME,
COPYUPDATEDPAGES,
COPYCHANGES,
COPYUPDATETIME
---- end @proc selIncrCopy: select fullcopy etc. --------------------
FROM SYSIBM.SYSDATABASE DB
$!
if $ptaInc then $@=¢
join frTo
on db.name >= frTo.fr and db.name <= frTo.to
$!
$@=¢
join SYSIBM.SYSTABLESPACE TS
on DB.NAME = PT.DBNAME
join SYSIBM.SYSTABLEPART PT
on DB.NAME = TS.DBNAME
AND TS.NAME = PT.TSNAME
left join SYSIBM.SYSTABLESpaceStats r
on r.dbid = db.dbid
and r.psid = ts.psid
and r.partition = pt.partition
WHERE 0 = 0
---- end @proc missFUllcopies1: fehlende Fullcopies -----------------
---- begin @proc exclude ----------------------------------------------
----- begin @proc exclGen: gemeinsame excludes -------------------------
AND NOT (PT.DBNAME like 'DSNDB%') -- DB2 CATALOG
AND NOT (PT.DBNAME LIKE 'DSN8%') -- IBM TEST DB
AND NOT (PT.DBNAME LIKE 'WKDBD%') -- DB2 WORK DATABASE
AND NOT (PT.DBNAME = 'DSNTESQ') -- DB2 CATALOG CLONE
AND NOT (PT.DBNAME LIKE 'DB2MAPP%') -- REORG MAPPING TABLES
AND NOT (PT.DBNAME LIKE 'DB2PLAN%') -- explain tables
and not translate(PT.dbName, '999999999AAAAAA', '012345678FISWXY')
= 'DA999999' -- user datenbanken
AND NOT (PT.DBNAME LIKE 'DB2ALA%') -- marec generated
AND NOT (PT.DBNAME LIKE '%MAREC%') -- marec generated
AND NOT (PT.DBNAME LIKE 'DACME%') -- Mail Heinz Bühler
AND NOT (PT.DBNAME LIKE 'DGDB%') -- PROTOTYPEN
AND NOT (PT.DBNAME LIKE 'DGO%') -- PROTOTYPEN
AND NOT (PT.DBNAME LIKE '%A1X%') -- Neue Prototypen
AND NOT (PT.DBNAME LIKE 'DAU%') -- Schulung Gerrit
AND NOT (PT.DBNAME LIKE 'IDT%') -- ibm tools
---- end @proc exclGen: gemeinsame excludes ------------------------
AND NOT (PT.DBNAME LIKE 'OE02%') -- Mail Ivo Eichmann
AND NOT (PT.DBNAME LIKE 'CSQ%') -- M-QUEUE DATENBANK
---- end @proc exclude ---------------------------------------------
---- end @proc exclGen: gemeinsame excludes -------------------------
AND NOT (PT.DBNAME = 'XC01A1P' AND PT.TSNAME LIKE 'A2%' )
-- EOS: Armin Breyer
AND NOT (PT.DBNAME = 'XR01A1P' AND PT.TSNAME LIKE 'A2%' )
-- ERET: Armin Breyer
AND NOT (PT.DBNAME = 'CSQDBOF' AND PT.TSNAME like 'TSBLOB%' )
---- end @proc exclude ----------------------------------------------
AND DB.TYPE NOT IN ('T','W')
---- begin @proc missFUllcopies2: fehlende Fullcopies -----------------
AND TS.NTABLES <> 0
AND PT.SPACEF <> -1 -- attention space is sometimes wrong|
$** and db.Name like 'WI02%' --- ????
)
, q as
(
select case when laFull < char(current timestamp - $-¢168+$hh$! hours)
then 'full old'
when copyUpdateTime > current timestamp - $hh hours
then 'no newUpd'
when nActive * 0.1 <= COPYUPDATEDPAGES then 'full upda'
when COPYUPDATEDPAGES <> 0 or copyChanges <> 0 then 'inc'
else 'no changes'
end copy,
p.*
from p
)
select *
from q
where left(copy, 2) <> 'no'
ORDER BY DBNAME, TSNAME, PARTITION
WITH UR
$!
$/sql/
call sqlSel
m.inc.0 = 0
m.ful.0 = 0
cAll = 0
pAll = 0
$| $@forWith c $@¢
cAll = cAll + 1
if datatype($NACTIVE, 'n') then
pAll = pAll + $NACTIVE
say left($COPY, 10) left($DBNAME, 8) left($TSNAME, 8) ,
right($PARTITION, 5) left($LAFULL, 30)
say right($COPYCHANGES , 12),
|| right('>'$COPYUPDATEDPAGES, 10),
|| right('%'$NACTIVE, 10) ,
left($COPYLASTTIME, 19),
left($COPYUPDATETIME, 19)
if cAll <= $partLim then
call mAdd if(abbrev($COPY, 'inc'), inc, ful),
, ' INCLUDE TABLESPACE' strip($DBNAME)'.'strip($TSNAME),
'PARTLEVEL' if($PARTITION <> 0, $PARTITION)
$!
$;
say 'total' cAll 'parts and' pAll 'pages'
say ' ' m.inc.0 'incremental and' m.ful.0 'full part copies'
$;
$>DSN.BESENWAG.$dbSy(GENINC)
$@makeList-{INC, FULL NO, 'incremental', cAll, pAll}
$;
$>DSN.BESENWAG.$dbSy(GENFUL)
$@makeList-{FUL, FULL YES, 'full' , cAll, pAll}
$;
$@proc makeList $@/makeList/
parse arg ,lst, full, tit, cAll, pAll
$** say 'lst' lst 'full' full 'tit' tit 'cAll' cAll 'pAll' pAll
$$- '--' sysvar('sysnode') $dbSy date('s') time()
$$- '-- total : ' cAll 'parts' pAll 'pages'
$$- '--' left(tit, 11) 'copy: ' m.lst.0 'parts'
if $previewOnly then
$$ OPTIONS(PREVIEW)
else
$$ OPTIONS EVENT(ITEMERROR,SKIP)
if m.lst.0 > 0 then $@=¢
$$- ' LISTDEF LST'lst ' -- ' m.lst.0 'parts'
$@do ix=1 to m.lst.0 $$- m.lst.ix
COPY LIST LST$-{lst} COPYDDN(TCOPYD)
PARALLEL $-{full}
SHRLEVEL CHANGE
$!
$/makeList/
//************************************* copy ***************************
// IF (ABEND OR NOT ABEND) THEN
//COPYINC EXEC PGM=DSNUTILB,REGION=0000M,COND=(8,LT),
// DYNAMNBR=99,PARM=(DBTF,'QCSBESTP.COPYINC')
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//UTPRINT DD SYSOUT=*
//SYSTEMPL DD DISP=SHR,DSN=DBTF.DBAA.LISTDEF(TEMPL)
//SYSIN DD DISP=SHR,DSN=DSN.BESENWAG.DBTF(GENINC)
// ENDIF
//************************************* copy ***************************
// IF (ABEND OR NOT ABEND) THEN
//COPYFUL EXEC PGM=DSNUTILB,REGION=0000M,COND=(8,LT),
// DYNAMNBR=99,PARM=(DBTF,'QCSBESTP.COPYFUL')
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//UTPRINT DD SYSOUT=*
//SYSTEMPL DD DISP=SHR,DSN=DBTF.DBAA.LISTDEF(TEMPL)
//SYSIN DD DISP=SHR,DSN=DSN.BESENWAG.DBTF(GENFUL)
// ENDIF
//*
//************************************* send mail if error *************
// IF (ABEND OR RC GT 7 OR RC LT 0) THEN
//EMAIL EXEC PGM=OS3550
//STEPLIB DD DISP=SHR,DSN=MQM.QP00
//SYSPRINT DD SYSOUT=*
//IEMLOG DD SYSOUT=*
//IEMAPI DD *
SUBJECT RZ1.DBTF job qcsBesTp
AUTHOR GGDB2
RECPLIST GGDB2
DOCTEXT
meldung vom technischen saveablauf - BesenWagen
Im Job qcsBesTp konnte mindestens 1 Objekt nicht kopiert werden.
Zur Analyse im sysprint einen find auf "skip" oder "dsnu1027i" absetzen
DOCTEXTEND
// ENDIF
//*
//************************************* create member to mark finish ***
// IF (ABEND OR NOT ABEND) THEN
//FINISH EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD *
job qcsBesTp finished
//SYSUT2 DD DISP=SHR,DSN=DSN.BESENWAG.DBTF(FINISH)
// ENDIF
}¢--- A540769.WK.SQL(CATCOPW) cre=2008-01-14 mod=2008-01-14-17.06.34 F540769 ---
call adrSqlConnect dbaf
$£ timing() 'elapsed' time(e)
$;
$<<eof
select
c.dbname, c.tsName, c.dsNum, s.pgSize, s.partitions,
icType, copyPagesf, nPagesF, cPagesF, dsName, timestamp
from sysibm.syscopy c, sysibm.systablespace s
where icType in ('F', 'I') and c.dbName like 'MF01%'
and s.dbName = c.dbName and s.name = c.tsName
order by 1, 2,3, timestamp desc
with ur
eof call sql 1 $¨ $@{
lst = ''
parts = 0
copys = 0
allKeys = 'DDF DDI DAF DAI ADF ADI AAF AAI' ,
'NDF NDI NAF NAI TDF TDI TAF TTI UDF UDI UAF UAI'
do kx=1 to words(allKeys)
k = word(allKeys, kx)
v.k = 0
v.k.kb = 0
end
first = 1
$@for c $@{
copys = copys + 1
dsn = ${c.DSNAME}
crn = ${c.DBNAME}'.'${c.TSNAME}'.'${c.DSNUM}
if crn <> lst then do
if lst <> '' then do
$** $£ lst 'with' f 'full and' i 'incremental'
end
f = 0
i = 0
parts = parts + 1
lst = crn
if first then do
first = 0
$£ 'first' crn dsn
end
if time('e') > 4 then do
$£ 'elapsed time guillotine' time('e') crn dsn
leave
end
end
if f < 1 then
key = 'D'
else
key = 'A'
if ${c.ICTYPE} = 'F' then
f = f + 1
else if ${c.ICTYPE} = 'I' then
i = i + 1
else
say 'bad type' ${c.ICTYPE}
rc = listdsi("'"dsn"'" smsInfo)
if sysReason = 0 then do
key = 'D'key
if sysUnits = 'CYLINDER' then
cy = sysUsed
else if sysUnits = 'TRACK' then
cy = sysUsed / sysTrksCyl
else if sysUnits = 'BLOCK' then
cy = sysUsed / sysTrksCyl / sysBlksTrk
else
cy = '?'
if cy <> '?' then do
sz = cy * 720
ct = ${c.COPYPAGESF} * ${c.PGSIZE}
if sz < 0.8 * ct | sz > max(ct + 720, 1.2 * ct) then
say 'sizeMismatch' sz '<> cat' ct 'dsn' dsn
end
end
else if sysReason = 5 then do
key = 'N'key $** not catalogued
end
else if sysReason = 8 then do
key = 'T'key $** not direct access
end
else if sysReason = 19 then do
key = 'U'key $** multiple volumes ---> unknown
end
else if sysReason = 25 then do
key = 'A'key $** archived
end
else do
$£ 'reason:' sysReason 'l1:' sysMsgLvl1 'l2:' sysMsgLvl2 $*+
'for' dsn
key = 'U'key
end
key = key || ${c.ICTYPE}
if ^ (sysUnit = '' | sysUnit = '3390') then
$£ key 'unit' sysUnit dsn
v.key = v.key + 1
v.key.kb = v.key.kb + ${c.COPYPAGESF} * ${c.PGSIZE}
$}
$*( if lst <> '' then do
$£ 'last' lst 'with' f 'full and' i 'incremental'
end
$*)
$£ copys 'copies in' parts 'partitions'
do kx=1 to words(allKeys)
k = word(allKeys, kx)
$£ k right(v.k, 10) format(v.k.kb, 1,3,1,0)
end
$} $;
$£ timing() 'end elapsed' time(e)
call adrSqlDisconnect
$***out 20080114 17:06:10
17:06:11 0 60.34 elapsed 0
first MF01A1A.A101A.0 DBAF.MF01A1A.A101A.P0000.D08010.T031218
elapsed time guillotine 4.010811 MF01A1A.A150H.21 DBAF.MF01A1A.A150H.P0021.D0801
868 copies in 290 partitions
DDF 0 0.000
DDI 0 0.000
DAF 0 0.000
DAI 0 0.000
ADF 289 4.383E+7
ADI 0 0.000
AAF 578 8.765E+7
AAI 0 0.000
NDF 0 0.000
NDI 0 0.000
NAF 0 0.000
NAI 0 0.000
TDF 0 0.000
TDI 0 0.000
TAF 0 0.000
TTI 0 0.000
UDF 0 0.000
UDI 0 0.000
UAF 0 0.000
UAI 0 0.000
17:06:15 4.013969 61.68 end elapsed 4.013982
$***out 20080114 17:05:48
17:05:48 0 58.84 elapsed 0
first MF01A1A.A101A.0 DBAF.MF01A1A.A101A.P0000.D08010.T031218
elapsed time guillotine 4.004996 MF01A1A.A150H.19 DBAF.MF01A1A.A150H.P0019.D0801
862 copies in 288 partitions
DDF 0 0.000
DDI 0 0.000
DAF 0 0.000
DAI 0 0.000
ADF 287 4.383E+7
ADI 0 0.000
AAF 574 8.765E+7
AAI 0 0.000
17:05:52 4.006937 60.16 end elapsed 4.006952
$***out 20080114 16:40:11
16:40:11 0 55.71 elapsed 0
first MF01A1A.A101A.0 DBAF.MF01A1A.A101A.P0000.D08010.T031218
elapsed time guillotine 4.004951 MF01A1A.A150H.189 DBAF.MF01A1A.A150H.P0189.D080
1372 copies in 458 partitions
UDF 0 0.000
UDI 0 0.000
UTF 0 0.000
UTI 0 0.000
MDF 0 0.000
MDI 0 0.000
MTF 0 0.000
MTI 0 0.000
DDF 0 0.000
DDI 0 0.000
DTF 0 0.000
DTI 0 0.000
TDF 457 6.477E+7
TDI 0 0.000
TTF 914 1.295E+8
TTI 0 0.000
16:40:15 4.007936 57.71 end elapsed 4.007950
$***out 20080114 16:36:29
16:36:29 0 53.58 elapsed 0
first MF01A1A.A101A.0 DBAF.MF01A1A.A101A.P0000.D08010.T031218
elapsed time guillotine 4.006499 MF01A1A.A150H.166 DBAF.MF01A1A.A150H.P0166.D080
1303 copies in 435 partitions
UDF 0 0.000
UDI 0 0.000
UTF 0 0.000
UTI 0 0.000
MDF 0 0.000
MDI 0 0.000
MTF 0 0.000
MTI 0 0.000
DDF 0 0.000
DDI 0 0.000
DTF 0 0.000
DTI 0 0.000
TDF 434 5.875E+7
TDI 0 0.000
TTF 868 1.175E+8
TTI 0 0.000
16:36:33 4.009540 55.44 end elapsed 4.009553
$***out 20080114 16:35:32
16:35:32 0 53.35 elapsed 0
first MF01A1A.A101A.0 DBAF.MF01A1A.A101A.P0000.D08010.T031218
elapsed time guillotine 0.102144 MF01A1A.A137A.0 DBAF.MF01A1A.A137A.P0000.D08010
28 copies in 10 partitions
UDF 0 0.000
UDI 0 0.000
UTF 0 0.000
UTI 0 0.000
MDF 0 0.000
MDI 0 0.000
MTF 0 0.000
MTI 0 0.000
DDF 0 0.000
DDI 0 0.000
DTF 0 0.000
DTI 0 0.000
TDF 9 1.410E+7
TDI 0 0.000
TTF 18 2.820E+7
TTI 0 0.000
16:35:32 0.105071 53.40 end elapsed 0.105084
$***out 20080114 16:35:08
16:35:08 0 53.06 elapsed 0
first MF01A1A.A101A.0 DBAF.MF01A1A.A101A.P0000.D08010.T031218
elapsed time guillotine 0.105246 MF01A1A.A138A.0 DBAF.MF01A1A.A138A.P0000.D08010
31 copies in 11 partitions
UDF 0 0.000
UDI 0 0.000
UTF 0 0.000
UTI 0 0.000
MDF 0 0.000
MDI 0 0.000
MTF 0 0.000
MTI 0 0.000
DDF 0 0.000
DDI 0 0.000
DTF 0 0.000
DTI 0 0.000
TDF 10 1.410E+7
TDI 0 0.000
TTF 20 2.820E+7
TTI 0 0.000
16:35:08 0.108192 53.12 end elapsed 0.108204
$***out 20080114 16:34:44
16:34:44 0 52.84 elapsed 0
first MF01A1A.A101A.0 DBAF.MF01A1A.A101A.P0000.D08010.T031218
elapsed time guillotine 0.102147 MF01A1A.A138A.0 DBAF.MF01A1A.A138A.P0000.D08010
31 copies in 11 partitions
UDF 0 0.000
UDI 0 0.000
UTF 0 0.000
UTI 0 0.000
MDF 0 0.000
MDI 0 0.000
MTF 0 0.000
MTI 0 0.000
DDF 0 0.000
DDI 0 0.000
DTF 0 0.000
DTI 0 0.000
TDF 10 1.410E+7
TDI 0 0.000
TTF 20 2.820E+7
TTI 0 0.000
16:34:44 0.105212 52.90 end elapsed 0.105227
$***out 20080114 16:34:07
}¢--- A540769.WK.SQL(CATCOPWT) cre=2008-03-11 mod=2008-03-11-18.31.59 F540769 ---
//A5407698 JOB (CP00,KE50),
// 'CATALOG',MSGCLASS=T,TIME=1440,
// NOTIFY=&SYSUID,REGION=0M
//*MAIN CLASS=LOG,SYSTEM=S12
//P01 EXEC PGM=IKJEFT01,
// DYNAMNBR=200,
// TIME=99
//SYSTSIN DD *
DSN SYSTEM(DBTF)
RUN PROGRAM(DSNTIAUL) PARMS('SQL')
END
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSTERM DD DUMMY
//*YSPUNCH DD DUMMY
//SYSPUNCH DD DSN=A540769.TMPUL.CATCOPWT.PU,
// DISP=(NEW,CATLG,CATLG),
// SPACE=(CYL,(1,1)),
// DATACLAS=NULL30,MGMTCLAS=S005Y000,
// RECFM=FB,LRECL=80
//SYSREC00 DD DSN=A540769.TMPUL.CATCOPWT.UN,
// DISP=(NEW,CATLG,CATLG),
// SPACE=(CYL,(1000,500)),
// DATACLAS=NULL30,MGMTCLAS=S005Y000,
// RECFM=FB,LRECL=80
//* DCB=(LRECL=5000,RECFM=VB,BLKSIZE=32760)
//SYSREC01 DD SYSOUT=*,
// RECFM=VB,LRECL=200
//SYSIN DD *
SELECT
C.DBNAME, C.TSNAME, C.DSNUM, C.ICTYPE, C.DSNAME, C.TIMESTAMP,
C.COPYPAGESF * 1024 * S.PGSIZE COPIED,
CASE WHEN C.ICTYPE <> 'F' THEN 'IN'
WHEN C.TIMESTAMP = X.NEW THEN 'NW'
WHEN C.TIMESTAMP = X.LAST THEN 'LA'
ELSE 'FU' END MYTYPE
FROM
(
SELECT DBNAME, TSNAME, DSNUM, MAX(TIMESTAMP) NEW,
MAX(CASE WHEN TIMESTAMP <= '2008-03-07-11.11.11'
THEN TIMESTAMP ELSE NULL END) LAST
FROM A540769.SYSCOPY
WHERE ICTYPE = 'F'
GROUP BY DBNAME, TSNAME, DSNUM
) X ,
A540769.SYSCOPY C,
SYSIBM.SYSTABLESPACE S
WHERE C.ICTYPE IN ('F', 'I')
AND C.DBNAME = X.DBNAME
AND C.TSNAME = X.TSNAME
AND C.DSNUM = X.DSNUM
AND C.TIMESTAMP <= X.NEW
AND C.TIMESTAMP >= X.LAST
AND S.DBNAME = X.DBNAME
AND S.NAME = X.TSNAME
WITH UR
;
}¢--- A540769.WK.SQL(CATCOPWX) cre=2008-03-11 mod=2008-03-13-13.00.48 F540769 ---
call errReset 'h'
$=subsys = DBOF
$=creator = A540769
$=creator = sysibm
$=curr = '2008-03-13-11.11.11'
$=last = '2008-03-05-11.11.11'
$=mgmtClas = A000Yneu
call sqlConnect $subsys
$=out £ catDsn("~catCopy.out2 ::F")
call jOpen $out, 'w'
$£ timing() 'be' $subsys $creator $curr $last
say timing() 'be' $subsys $creator $curr $last
$;
$<<¢eof
select
c.dbname, c.tsName, c.dsNum, c.icType, c.dsName, c.timestamp,
c.copyPagesf * 1024 * s.pgSize copied,
case when c.icType <> 'F' then 'IN'
when c.timestamp = x.new then 'NW'
when c.timestamp = x.last then 'LA'
else 'FU' end myType
from
(
select dbName, tsName, dsNum, max(timestamp) new,
max(case when timestamp <= $last
then timestamp else '1900-01-01-00.00.00' end) last
from $creator.sysCopy
where icType = 'F' $** and dbName = 'MF01A1P'
and timestamp <= $curr
group by dbName, tsName, dsNum
) x ,
$creator.sysCopy c,
sysibm.sysTablespace s
where c.icType in ('F', 'I')
and c.dbName = x.dbName
and c.tsName = x.tsName
and c.dsNum = x.dsNum
and c.timestamp < x.new
and c.timestamp >= x.last
and s.dbName = x.dbName
and s.name = x.tsName
$** order by c.dbName, c.tsName, c.dsNum, c.timestamp desc
with ur
eof call sql 1 $¨ pref = '' $@{
lst = ''
cDb = 0
cTs = 0
cPa = 0
cCo = 0
c.nw.c = 0
c.nw.b = 0
c.la.c = 0
c.la.b = 0
c.fu.c = 0
c.fu.b = 0
c.in.c = 0
c.in.b = 0
$@for c $@{
if cCo // 10000 = 0 then do
say timing() cDb 'dbs,' cTs 'TS,' cPa 'parts,' cCo 'copies'
$£ timing() cDb 'dbs,' cTs 'TS,' cPa 'parts,' cCo 'copies'
if cCo >=200000 then leave
end
dsn = ${c.DSNAME}
crn = ${c.DBNAME}'.'${c.TSNAME}'.'${c.DSNUM}
if crn <> lst then do
if ^ abbrev(lst, ${c.DBNAME}'.') then do
cDb = cDb + 1
end
if ^ abbrev(lst, ${c.DBNAME}'.'${c.TSNAME}'.') then
cTs = cTs + 1
cPa = cPa + 1
sta = 'NW'
lst = crn
end
tp = ${c.MYTYPE}
if tp ^== 'NW' then
call jWrite $out,'ALTER' ${c.DSNAME} 'MGMTCLAS('$mgmtClas')'
cCo = cCo + 1
c.tp.c = c.tp.c + 1
c.tp.b = c.tp.b + ${c.COPIED}
$}
$£ cDb 'dbs,' cTs 'TS,' cPa 'parts,' cCo 'copies'
$£ 'neu ' right(c.nw.c, 10) c.nw.b
$£ 'last' right(c.la.c, 10) c.la.b
$£ 'full' right(c.fu.c, 10) c.fu.b
$£ 'inc ' right(c.in.c, 10) c.in.b
$} $;
$£ timing() 'end' $subsys $creator $curr $last
say timing() 'end' $subsys $creator $curr $last
call jCLose $out
call SqlDisconnect
$***out 20080313 12:03:03
12:03:03 0 658.11 be DBOF sysibm '2008-03-13-11.11.11' '2008-03-12-11.11.11'
12:11:38 0 985.50 0 dbs, 0 TS, 0 parts, 0 copies
12:11:51 0 997.17 19 dbs, 788 TS, 2229 parts, 10000 copies
12:12:04 0 1008.90 19 dbs, 800 TS, 3835 parts, 20000 copies
12:12:19 0 1020.45 3149 dbs, 4293 TS, 10874 parts, 30000 copies
12:12:33 0 1031.92 3267 dbs, 6766 TS, 17228 parts, 40000 copies
12:12:48 0 1043.42 3384 dbs, 8381 TS, 24431 parts, 50000 copies
12:13:03 0 1055.01 3530 dbs, 11515 TS, 30566 parts, 60000 copies
3571 dbs, 12065 TS, 36973 parts, 68692 copies
neu 36975 5.58642407E+12
last 11808 1.98522453E+12
full 2600 4.95282462E+11
inc 17309 2.47778851E+10
12:13:16 0 1065.06 end DBOF sysibm '2008-03-13-11.11.11' '2008-03-12-11.11.11'
$***out 20080313 11:40:19
}¢--- A540769.WK.SQL(CATCOPY) cre=2008-01-10 mod=2014-05-08-09.22.43 A540769 ---
select *
from sysibm.sysCopy c
where icType in ('F', 'I')
-- and dsName like 'CH.S00%'
and dsName like 'A470264%'
order by timestamp desc
with ur
;x;
select count(*), substr(dsName, 1, 5), min(dsName), max(dsName)
from sysibm.sysCopy c
where icType in ('F', 'I')
group by substr(dsName, 1, 5)
with ur
;x;
select count(*), date(timestamp)
from sysibm.sysCopy c
where dbName = 'DCMN050' and tsname = 'CMN$AAPR'
and ictype = 'A'
group by date(timestamp)
order by 2 desc
; x;
select timestamp, icType, instance
from sysibm.sysCopy c
where dbName = 'DCMN050' and tsname = 'CMN$AAPR'
and ictype = 'A'
order by 1 desc
; x;
select timestamp, icType, hex(start_rba), hex(pit_rba)
from sysibm.sysCopy c
where dbName = 'DA540769' and tsname = 'A924A'
order by 1
;
x
select left(c.jobName, 2), count(distinct c.jobName),
min(c.jobName), max(c.jobName),
count(*) cnt,
sum(c.copyPagesF * 1024 * s.pgSize) bytes
from sysibm.sysCopy c , sysibm.systableSpace s
where c.timestamp between '2008-06-27-19.00.00'
and '2008-06-30-06.00.00'
and s.dbName = c.dbName and s.name = c.tsName
and c.icType in ('F', 'I')
group by left(c.jobName, 2)
order by 6 desc
;
x
select date(timestamp),
count(*) cnt,
sum(c.copyPagesF * 1024 * s.pgSize) bytes
from sysibm.sysCopy c , sysibm.systableSpace s
where --c.timestamp between '2008-06-27-19.00.00'
-- and '2008-06-30-06.00.00'
s.dbName = c.dbName and s.name = c.tsName
and c.icType in ('F', 'I')
group by date(timestamp)
order by 1 asc
;
x
select c.jobName, count(*) cnt,
sum(c.copyPagesF * 1024 * s.pgSize) bytes
from sysibm.sysCopy c , sysibm.systableSpace s
where s.partitions > 0 and c.timestamp > current timestamp - 20 days
and s.dbName = c.dbName and s.name = c.tsName
and c.dsNum = 0
and c.icType in ('F', 'I')
group by c.jobName
order by 3 desc
;
having sum(case when c.dsNum = 0 then 1 else 0 end) >0
) x
select sum(cnt), sum(total) total, sum(totBy) totBy, sum(maxBy) maxBy,
sum(part), sum(paBy)
from (
-- where dbName like 'MF%'
;
xelect ictype, timestamp, hex(timestamp), dsName
from sysibm.sysCopy c
where dbName = 'XR01A1P' AND TSNAME = 'A200A'
AND DSNUM = 69
order by 2 desc
fetch first 100 rows only
;
select ictype, timestamp, hex(timestamp), dsName
from sysibm.sysCopy c
where dbName = 'XR01A1P' AND TSNAME = 'A200A'
AND DSNUM = 69
order by 2 desc
fetch first 100 rows only
;
Xselect dsName , copyPagesF * 1024 * pgSize
from sysibm.sysCopy c , sysibm.systableSpace s
where copyPagesF > 10 * 1024 * 1024
and s.dbName = c.dbName and s.name = c.tsName
order by 2 desc
fetch first 100 rows only
;
x
select current timestamp from sysibm.sysdummy1
;
select count(*) from
(
select dbName, tsName, dsNum, max(timestamp) new,
max(case when timestamp <= '2008-03-07-11.11.11'
then timestamp else null end) last
from sysibm.sysCopy
where icType = 'F' -- and dbName = 'MF01A1P'
group by dbName, tsName, dsNum
) x ,
sysibm.sysCopy c
where c.icType in ('F', 'I')
and c.dbName = x.dbName
and c.tsName = x.tsName
and c.dsNum = x.dsNum
and c.timestamp <= x.new
and c.timestamp >= x.last
with ur
;
select current timestamp from sysibm.sysdummy1
;
select count(*), icType, date(timestamp)
from sysibm.syscopy
group by icType, date(timestamp)
order by 2, 3
;
x
select da, icType,
sum(copied) copied, sum(coSize) coSize,
sum(coChgd) coChgd, sum(catSpc) catSpc,
sum(coCnt) coCntz, sum(paCnt) paCnt
from
( select date(timestamp) da, icType,
sum(copyPagesF * pgSize * 1024) copied,
sum(nPagesF * pgSize * 1024) coSize,
sum(cPagesF * pgSize * 1024) coChgd,
max(p.spacef * s.pgSize * 1024) catSpc,
count(*) coCnt,
1 paCnt
from sysibm.syscopy c, sysibm.systablespace s,
sysIbm.sysTablePart p
where icType in ('F', 'I') and c.dbName like 'MF01%'
and p.dbName = s.dbName and p.tsName = s.name
and c.dbName = p.dbName and c.tsName = p.tsName
and c.dsNum = p.partition
group by date(timestamp), icType,
s.dbName, s.name, p.partition
) pa
group by da, icType
order by 1 desc, 2
with ur
;
x
with tsDet as
( select s.dbname db, s.name ts,
sum(real(s.nActive) * s.pgSize* 1024) cAct,
sum(s.spaceF * 1024) cSpa,
sum(real(r.space) * 1024) rSpa,
sum(real(r.nActive) * s.pgSize * 1024) rAct
from sysibm.sysTablespace s,
join sysibm.sysTablePart p
on s.dbName = p.dbName and s.name = p.tsName
left Join sysibm.tablespacestats r
on r.dbid = s.dbid and r.psid = s.psid
and r.dbName= s.dbName and r.name = s.name
and r.partition = s.partition
left join sysibm.sysCopy c
on c.dbName = s.dbName and c.tsName = s.name
and c.partition = p.partition
icType, sum(pgSize * copypagesf), sum(pgSize* nPagesF)
, sum(pgSize * cPagesF)
from sysibm.syscopy c, sysibm.systablespace s, m
where icType in ('F', 'I') -- and c.dbName = 'MF01A1P'
and s.dbName = c.dbName and s.name = c.tsName
and c.dbName = m.dbName and c.tsName = m. tsName
and c.dsNum = m.dsNum and c.timestamp >= m.maxTst
from sysibm.tablespacestats r, sysibm.sysTablespace s
where r.dbid = s.dbid and r.psid = s.psid
and r.dbName= s.dbName and r.name = s.name
group by s.dbid, s.psid, s.dbname, s.name
)
select * from tsDet where db like 'MF01%'
;
select current timestamp from sysibm.sysdummy1;
with a as
(
select current timestamp from sysibm.sysdummy1;
x
with m as
( select max(timestamp) maxTst, dbName, tsName, dsNum
from sysibm.syscopy
where icType = 'F'
group by dbName, tsName, dsNum
)
select
icType, sum(pgSize * copypagesf), sum(pgSize* nPagesF)
, sum(pgSize * cPagesF)
from sysibm.syscopy c, sysibm.systablespace s, m
where icType in ('F', 'I') -- and c.dbName = 'MF01A1P'
and s.dbName = c.dbName and s.name = c.tsName
and c.dbName = m.dbName and c.tsName = m. tsName
and c.dsNum = m.dsNum and c.timestamp >= m.maxTst
group by icType
with ur
;
select current timestamp from sysibm.sysdummy1;
}¢--- A540769.WK.SQL(CATCOPYC) cre=2008-01-21 mod=2008-03-07-14.46.10 F540769 ---
$*(*****************************************************************
--
-- Hochrechnug disk verbrauch für copy datasets nur aus sysCopy
-- - alt: alles älter als 24 h archiviert
-- - neu: alles älter als Save > 28h wegeputzt
-- ==> gibt SpitzenDiskverbrauch
-- - unmittelbar vor täglichem SMS-Cleanup
-- *****************************************************************
select
c.dbname, c.tsName, c.dsNum,
current timestamp - 24 hours gNeu,
max(case when icType = 'F'
and timestamp < current timestamp - 28 hours
then timestamp else '1900-01-01-00.00.00'
end) gAlt
from sysibm.syscopy c, sysibm.systablespace s
group by c.dbname, c.tsName, c.dsNum
$*)
call sqlConnect DBTF
$;
$<<eof
select
c.dbname, c.tsName, c.dsNum, s.pgSize, s.partitions,
icType, copyPagesf, nPagesF, cPagesF, dsName, timestamp,
case when timestamp > current timestamp - 24 hours then 'u'
when timestamp > current timestamp - 28 hours then 'o'
else 'n' end gest
from sysibm.syscopy c, sysibm.systablespace s
where icType in ('F', 'I') and c.dbName like '%'
and s.dbName = c.dbName and s.name = c.tsName
order by 1, 2,3, timestamp desc
with ur
eof call sql 1 $¨ pref = '' $@{
lst = ''
parts = 0
copys = 0
allKeys = 'DDF DDI DAF DAI ADF ADI AAF AAI' ,
'NDF NDI NAF NAI TDF TDI TAF TTI UDF UDI UAF UAI'
do kx=1 to words(allKeys)
k = word(allKeys, kx)
v.k = 0
v.k.kb = 0
end
first = 1
$@for c $@{
crn = ${c.DBNAME}'.'${c.TSNAME}'.'${c.DSNUM}
copys = copys + 1
if crn <> lst then do
if lst <> '' then do
$** $£ lst 'with' f 'full and' i 'incremental'
end
fiFu = 0
parts = parts + 1
lst = crn
if first then do
first = 0
$£ 'first' crn dsn
end
if time('e') > 300 then do
$£ 'elapsed time guillotine' time('e') crn dsn
leave
end
end
gest = ${c.GEST}
if gest == 'u' then
key = 'DD'
else if gest = 'o' then
key = 'AD'
else if fiFu then
key = 'AA'
else do
key = 'AD'
fiFu = ${c.ICTYPE} = 'F'
end
key = key || ${c.ICTYPE}
if symbol('v.key') == VAR then do
v.key = v.key + 1
v.key.kb = v.key.kb + ${c.COPYPAGESF} * ${c.PGSIZE}
end
else do
$£ 'bad key' key 'for cl' cl 'dsn' dsn
end
$}
$£ copys 'copies in' parts 'partitions'
do kx=1 to words(allKeys)
k = word(allKeys, kx)
$£ k right(v.k, 10) format(v.k.kb, 1,3,1,0)
end
$} $;
$£ timing() 'end elapsed' time(e)
call sqlDisconnect
$***out 20080307 13:51:02
first AC01A1P.A002P.0 DSN
160822 copies in 36368 partitions
DDF 1380 9.799E+7
DDI 896 4.644E+6
DAF 0 0.000
DAI 0 0.000
ADF 36384 2.115E+9
ADI 2465 1.379E+7
AAF 100524 6.567E+9
AAI 19173 7.308E+7
NDF 0 0.000
NDI 0 0.000
NAF 0 0.000
NAI 0 0.000
TDF 0 0.000
TDI 0 0.000
TAF 0 0.000
TTI 0 0.000
UDF 0 0.000
UDI 0 0.000
UAF 0 0.000
UAI 0 0.000
13:55:23 245.452290 296.17 end elapsed 245.452310
$***out 20080307 13:49:23
first MF01A1T.A101A.0 DSN
2326 copies in 698 partitions
DDF 2 6.640E+2
DDI 0 0.000
DAF 0 0.000
DAI 0 0.000
ADF 698 7.569E+7
ADI 2 3.364E+3
AAF 1613 1.687E+8
AAI 11 1.692E+4
NDF 0 0.000
NDI 0 0.000
NAF 0 0.000
NAI 0 0.000
TDF 0 0.000
TDI 0 0.000
TAF 0 0.000
TTI 0 0.000
UDF 0 0.000
UDI 0 0.000
UAF 0 0.000
UAI 0 0.000
13:49:27 2.896786 108.21 end elapsed 2.896804
$***out 20080307 13:49:02
$***out 20080307 13:48:48
$***out 20080121 15:19:51
15:19:51 0 0.41 elapsed 0
first AC01A1P.A002P.0 DSN
elapsed time guillotine 300.327667 BE01A1P.A005A02.67 DSN
108863 copies in 1641 partitions
DDF 525 3.257E+7
DDI 3253 2.119E+6
DAF 0 0.000
DAI 0 0.000
ADF 1780 9.825E+7
ADI 1171 1.132E+7
AAF 22357 2.377E+9
AAI 79776 7.435E+7
NDF 0 0.000
NDI 0 0.000
NAF 0 0.000
NAI 0 0.000
TDF 0 0.000
TDI 0 0.000
TAF 0 0.000
TTI 0 0.000
UDF 0 0.000
UDI 0 0.000
UAF 0 0.000
UAI 0 0.000
15:24:51 300.335001 157.22 end elapsed 300.335036
$***out 20080121 14:44:13
14:44:13 0 813.34 elapsed 0
first MF01A1P.A101A.0 DSN
3007 copies in 569 partitions
DDF 44 1.020E+7
DDI 6 1.620E+3
DAF 0 0.000
DAI 0 0.000
ADF 569 2.922E+8
ADI 101 1.544E+5
AAF 1438 7.588E+8
AAI 849 3.174E+6
NDF 0 0.000
NDI 0 0.000
NAF 0 0.000
NAI 0 0.000
TDF 0 0.000
TDI 0 0.000
TAF 0 0.000
TTI 0 0.000
UDF 0 0.000
UDI 0 0.000
UAF 0 0.000
UAI 0 0.000
14:44:22 8.877636 817.37 end elapsed 8.877658
}¢--- A540769.WK.SQL(CATCOPYH) cre=2010-07-06 mod=2010-07-06-12.05.11 A540769 ---
select count(*), jobName, min(dbName), max(dbName),
min(left(dsName, 12)), max(left(dsName, 12))
from sysibm.sysCopy c
where icType in ('F', 'I') and left(dsName, 5) <> 'DBOF.'
group by jobName
order by jobName
with ur
-- fetch first 100 rows only
;x;
select timestamp, icType, hex(start_rba), hex(pit_rba)
from sysibm.sysCopy c
where dbName = 'DA540769' and tsname = 'A924A'
order by 1
;
x
select left(c.jobName, 2), count(distinct c.jobName),
min(c.jobName), max(c.jobName),
count(*) cnt,
sum(c.copyPagesF * 1024 * s.pgSize) bytes
from sysibm.sysCopy c , sysibm.systableSpace s
where c.timestamp between '2008-06-27-19.00.00'
and '2008-06-30-06.00.00'
and s.dbName = c.dbName and s.name = c.tsName
and c.icType in ('F', 'I')
group by left(c.jobName, 2)
order by 6 desc
;
x
select date(timestamp),
count(*) cnt,
sum(c.copyPagesF * 1024 * s.pgSize) bytes
from sysibm.sysCopy c , sysibm.systableSpace s
where --c.timestamp between '2008-06-27-19.00.00'
-- and '2008-06-30-06.00.00'
s.dbName = c.dbName and s.name = c.tsName
and c.icType in ('F', 'I')
group by date(timestamp)
order by 1 asc
;
x
select c.jobName, count(*) cnt,
sum(c.copyPagesF * 1024 * s.pgSize) bytes
from sysibm.sysCopy c , sysibm.systableSpace s
where s.partitions > 0 and c.timestamp > current timestamp - 20 days
and s.dbName = c.dbName and s.name = c.tsName
and c.dsNum = 0
and c.icType in ('F', 'I')
group by c.jobName
order by 3 desc
;
having sum(case when c.dsNum = 0 then 1 else 0 end) >0
) x
select sum(cnt), sum(total) total, sum(totBy) totBy, sum(maxBy) maxBy,
sum(part), sum(paBy)
from (
-- where dbName like 'MF%'
;
xelect ictype, timestamp, hex(timestamp), dsName
from sysibm.sysCopy c
where dbName = 'XR01A1P' AND TSNAME = 'A200A'
AND DSNUM = 69
order by 2 desc
fetch first 100 rows only
;
select ictype, timestamp, hex(timestamp), dsName
from sysibm.sysCopy c
where dbName = 'XR01A1P' AND TSNAME = 'A200A'
AND DSNUM = 69
order by 2 desc
fetch first 100 rows only
;
Xselect dsName , copyPagesF * 1024 * pgSize
from sysibm.sysCopy c , sysibm.systableSpace s
where copyPagesF > 10 * 1024 * 1024
and s.dbName = c.dbName and s.name = c.tsName
order by 2 desc
fetch first 100 rows only
;
x
select current timestamp from sysibm.sysdummy1
;
select count(*) from
(
select dbName, tsName, dsNum, max(timestamp) new,
max(case when timestamp <= '2008-03-07-11.11.11'
then timestamp else null end) last
from sysibm.sysCopy
where icType = 'F' -- and dbName = 'MF01A1P'
group by dbName, tsName, dsNum
) x ,
sysibm.sysCopy c
where c.icType in ('F', 'I')
and c.dbName = x.dbName
and c.tsName = x.tsName
and c.dsNum = x.dsNum
and c.timestamp <= x.new
and c.timestamp >= x.last
with ur
;
select current timestamp from sysibm.sysdummy1
;
select count(*), icType, date(timestamp)
from sysibm.syscopy
group by icType, date(timestamp)
order by 2, 3
;
x
select da, icType,
sum(copied) copied, sum(coSize) coSize,
sum(coChgd) coChgd, sum(catSpc) catSpc,
sum(coCnt) coCntz, sum(paCnt) paCnt
from
( select date(timestamp) da, icType,
sum(copyPagesF * pgSize * 1024) copied,
sum(nPagesF * pgSize * 1024) coSize,
sum(cPagesF * pgSize * 1024) coChgd,
max(p.spacef * s.pgSize * 1024) catSpc,
count(*) coCnt,
1 paCnt
from sysibm.syscopy c, sysibm.systablespace s,
sysIbm.sysTablePart p
where icType in ('F', 'I') and c.dbName like 'MF01%'
and p.dbName = s.dbName and p.tsName = s.name
and c.dbName = p.dbName and c.tsName = p.tsName
and c.dsNum = p.partition
group by date(timestamp), icType,
s.dbName, s.name, p.partition
) pa
group by da, icType
order by 1 desc, 2
with ur
;
x
with tsDet as
( select s.dbname db, s.name ts,
sum(real(s.nActive) * s.pgSize* 1024) cAct,
sum(s.spaceF * 1024) cSpa,
sum(real(r.space) * 1024) rSpa,
sum(real(r.nActive) * s.pgSize * 1024) rAct
from sysibm.sysTablespace s,
join sysibm.sysTablePart p
on s.dbName = p.dbName and s.name = p.tsName
left Join sysibm.tablespacestats r
on r.dbid = s.dbid and r.psid = s.psid
and r.dbName= s.dbName and r.name = s.name
and r.partition = s.partition
left join sysibm.sysCopy c
on c.dbName = s.dbName and c.tsName = s.name
and c.partition = p.partition
icType, sum(pgSize * copypagesf), sum(pgSize* nPagesF)
, sum(pgSize * cPagesF)
from sysibm.syscopy c, sysibm.systablespace s, m
where icType in ('F', 'I') -- and c.dbName = 'MF01A1P'
and s.dbName = c.dbName and s.name = c.tsName
and c.dbName = m.dbName and c.tsName = m. tsName
and c.dsNum = m.dsNum and c.timestamp >= m.maxTst
from sysibm.tablespacestats r, sysibm.sysTablespace s
where r.dbid = s.dbid and r.psid = s.psid
and r.dbName= s.dbName and r.name = s.name
group by s.dbid, s.psid, s.dbname, s.name
)
select * from tsDet where db like 'MF01%'
;
select current timestamp from sysibm.sysdummy1;
with a as
(
select current timestamp from sysibm.sysdummy1;
x
with m as
( select max(timestamp) maxTst, dbName, tsName, dsNum
from sysibm.syscopy
where icType = 'F'
group by dbName, tsName, dsNum
)
select
icType, sum(pgSize * copypagesf), sum(pgSize* nPagesF)
, sum(pgSize * cPagesF)
from sysibm.syscopy c, sysibm.systablespace s, m
where icType in ('F', 'I') -- and c.dbName = 'MF01A1P'
and s.dbName = c.dbName and s.name = c.tsName
and c.dbName = m.dbName and c.tsName = m. tsName
and c.dsNum = m.dsNum and c.timestamp >= m.maxTst
group by icType
with ur
;
select current timestamp from sysibm.sysdummy1;
}¢--- A540769.WK.SQL(CATCOPY2) cre=2008-01-15 mod=2008-01-21-12.50.09 F540769 ---
call adrSqlConnect dbof
$;
$<<¢eof
select date(timestamp) da, icType,
sum(pgSize * 1024 * copypagesf) cp,
sum(pgSize * 1024 * nPagesF) ts,
sum(pgSize * 1024 * cPagesF) ch
from sysibm.syscopy c, sysibm.systablespace s
where icType in ('F', 'I') $*+ and c.dbName = 'MF01A1P'
and s.dbName = c.dbName and s.name = c.tsName
group by date(timestamp), icType
order by 1 desc, 2
with ur
eof call sql 3
$¨ li = ''
$@¢
date full copy Bytes .......... incremental copy Bytes....
copy TS changed copy TS changed
$!
$@for v $@{
if ${v.DA} ^== left(li, 10) then do
if li ^== '' then
$£ li
li = ${v.DA}
end
tx = format(${v.CP}, 1, 2, 2, 0) ,
format(${v.TS}, 1, 2, 2, 0) ,
format(${v.CH}, 1, 2, 2, 0)
if ${v.ICTYPE} = 'F' then
li = overlay(tx, li, 13)
else
li = overlay(tx, li, 43)
$}
$£ li
$;
call adrSqlDisconnect
$***out 20080121 12:47:45
date full copy Bytes .......... incremental copy Bytes....
copy TS changed copy TS changed
21.01.2008 1.14E+12 4.76E+13 8.28E+10 2.76E+10 2.46E+12 2.67E+10
20.01.2008 1.21E+12 4.35E+13 2.09E+11 3.96E+10 2.75E+12 3.90E+10
19.01.2008 1.53E+12 4.81E+13 2.11E+10 1.54E+10 3.96E+12 1.45E+10
18.01.2008 2.26E+12 4.98E+13 7.74E+10 5.62E+10 5.01E+12 5.44E+10
17.01.2008 2.71E+12 5.04E+13 7.15E+10 4.78E+10 4.91E+12 4.60E+10
16.01.2008 2.25E+12 4.97E+13 7.76E+10 4.55E+10 4.85E+12 4.38E+10
15.01.2008 2.63E+12 4.76E+13 9.65E+10 4.76E+10 4.86E+12 4.58E+10
14.01.2008 2.09E+12 4.71E+13 1.11E+11 4.12E+10 4.56E+12 3.97E+10
13.01.2008 1.41E+12 4.00E+13 3.37E+11 2.88E+09 2.98E+12 2.24E+09
12.01.2008 1.40E+12 4.87E+13 2.42E+10 1.42E+10 3.91E+12 1.33E+10
11.01.2008 2.44E+12 4.91E+13 7.64E+10 5.31E+10 4.91E+12 5.14E+10
10.01.2008 2.36E+12 5.02E+13 7.98E+10 5.08E+10 4.89E+12 4.91E+10
09.01.2008 2.71E+12 5.03E+13 7.85E+10 4.96E+10 4.86E+12 4.79E+10
08.01.2008 2.43E+12 4.90E+13 9.32E+10 5.51E+10 4.90E+12 5.34E+10
07.01.2008 2.16E+12 4.86E+13 1.19E+11 4.25E+10 4.52E+12 4.09E+10
06.01.2008 1.56E+12 3.06E+13 4.90E+11 9.97E+10 2.96E+12 9.90E+10
05.01.2008 1.36E+12 4.81E+13 1.65E+10 1.43E+10 3.79E+12 1.34E+10
04.01.2008 2.51E+12 5.06E+13 1.19E+11 5.65E+10 4.97E+12 5.48E+10
03.01.2008 2.45E+12 4.97E+13 1.04E+11 5.53E+10 5.13E+12 5.36E+10
02.01.2008 2.22E+12 5.04E+13 2.36E+11 2.66E+10 3.69E+12 2.54E+10
01.01.2008 1.32E+12 4.73E+13 1.61E+11 4.37E+10 2.05E+12 4.31E+10
31.12.2007 2.23E+12 4.68E+13 1.23E+11 4.40E+10 4.61E+12 4.25E+10
30.12.2007 1.35E+12 4.15E+13 3.03E+11 3.00E+09 2.98E+12 2.34E+09
29.12.2007 1.29E+12 4.82E+13 1.60E+10 1.86E+10 3.90E+12 1.76E+10
28.12.2007 2.46E+12 4.94E+13 1.07E+11 6.16E+10 4.92E+12 5.99E+10
27.12.2007 2.21E+12 4.92E+13 7.25E+10 4.97E+10 6.66E+12 4.76E+10
26.12.2007 1.62E+12 1.64E+12 9.27E+10 1.80E+10 7.13E+11 1.76E+10
25.12.2007 4.06E+09 3.43E+11 0.00 2.60E+08 4.08E+09 2.55E+08
24.12.2007 1.20E+11 1.22E+11 1.91E+10 3.57E+08 7.60E+09 3.39E+08
23.12.2007 1.84E+09 1.84E+09 1.84E+09
22.12.2007 9.94E+07 9.94E+07 9.94E+07
21.12.2007 4.67E+10 4.80E+10 8.84E+08 1.84E+08 3.15E+09 1.71E+08
17.12.2007 3.35E+09 3.50E+09 2.60E+09
10.12.2007 6.45E+09 6.60E+09 6.45E+09
03.12.2007 8.59E+09 8.67E+09 8.59E+09
26.11.2007 8.60E+09 8.69E+09 8.60E+09
25.11.2007 1.00E+06 1.47E+06 1.47E+06
19.11.2007 1.42E+10 1.43E+10 1.34E+10
12.11.2007 1.00E+09 1.10E+09 1.00E+09
06.11.2007 3.28E+04 1.97E+05 0.00
05.11.2007 8.30E+09 8.43E+09 8.30E+09
29.10.2007 7.32E+09 7.46E+09 7.32E+09
26.10.2007 2.81E+08 2.79E+08 2.79E+08
22.10.2007 1.33E+10 1.35E+10 1.12E+10
21.10.2007 1.58E+08 1.65E+08 1.65E+08
18.10.2007 3.28E+04 1.97E+05 0.00
15.10.2007 2.56E+09 2.70E+09 2.56E+09
08.10.2007 8.30E+09 8.44E+09 8.30E+09
01.10.2007 4.27E+09 4.33E+09 4.27E+09
24.09.2007 7.18E+09 7.30E+09 7.18E+09
17.09.2007 1.07E+10 1.08E+10 8.71E+09
10.09.2007 2.29E+09 2.40E+09 2.29E+09
09.09.2007 5.23E+06 5.13E+06 5.13E+06
03.09.2007 8.07E+09 8.20E+09 8.07E+09
02.09.2007 4.90E+07 4.35E+07 4.35E+07
27.08.2007 1.14E+10 1.15E+10 8.53E+09
20.08.2007 3.23E+09 3.36E+09 3.23E+09
13.08.2007 9.67E+09 9.82E+09 8.45E+09
08.08.2007 7.76E+10 7.76E+10 7.76E+10
07.08.2007 3.53E+10 3.53E+10 3.53E+10
06.08.2007 1.47E+09 1.60E+09 1.47E+09
30.07.2007 4.83E+09 4.97E+09 4.83E+09
23.07.2007 1.16E+10 1.17E+10 1.00E+10
22.07.2007 7.27E+06 7.14E+06 7.14E+06
16.07.2007 1.85E+09 1.98E+09 1.85E+09
15.07.2007 1.26E+06 1.47E+06 1.47E+06
09.07.2007 8.07E+09 8.20E+09 8.07E+09
02.07.2007 1.30E+10 1.31E+10 1.30E+10
01.07.2007 5.31E+07 5.22E+07 5.22E+07
25.06.2007 6.20E+09 6.33E+09 6.20E+09
24.06.2007 3.30E+07 2.93E+07 2.93E+07
18.06.2007 1.28E+10 1.29E+10 9.18E+09
17.06.2007 2.02E+07 1.79E+07 1.79E+07
11.06.2007 4.18E+09 4.28E+09 4.18E+09
04.06.2007 1.20E+10 1.20E+10 0.00
03.06.2007 1.20E+10 1.20E+10 1.20E+10
28.05.2007 1.18E+09 1.18E+09 0.00
27.05.2007 1.67E+10 1.67E+10 1.67E+10
21.05.2007 8.95E+09 8.95E+09 0.00
20.05.2007 8.95E+09 8.95E+09 8.95E+09
14.05.2007 1.30E+09 1.30E+09 0.00
13.05.2007 1.67E+10 1.67E+10 1.67E+10
07.05.2007 9.35E+09 9.35E+09 0.00
06.05.2007 9.35E+09 9.35E+09 9.35E+09
30.04.2007 1.22E+10 1.22E+10 5.24E+05
29.04.2007 1.53E+10 1.53E+10 1.53E+10
23.04.2007 7.48E+09 7.48E+09 0.00
22.04.2007 7.59E+09 7.57E+09 7.57E+09
16.04.2007 3.34E+09 3.34E+09 0.00
15.04.2007 1.58E+10 1.58E+10 1.58E+10
09.04.2007 9.31E+09 9.31E+09 0.00
08.04.2007 9.55E+09 9.55E+09 9.55E+09
02.04.2007 2.76E+09 2.76E+09 0.00
01.04.2007 1.82E+10 1.82E+10 1.82E+10
26.03.2007 4.56E+09 4.56E+09 0.00
25.03.2007 4.56E+09 4.56E+09 4.56E+09
19.03.2007 1.34E+10 1.34E+10 0.00
18.03.2007 1.34E+10 1.34E+10 1.34E+10
12.03.2007 6.10E+09 6.10E+09 0.00
11.03.2007 6.10E+09 6.10E+09 6.10E+09
07.03.2007 1.47E+11 1.50E+11 3.40E+09
05.03.2007 9.27E+08 9.27E+08 0.00
04.03.2007 1.63E+10 1.63E+10 1.63E+10
28.02.2007 3.44E+05 5.90E+06 0.00
26.02.2007 6.10E+09 6.10E+09 0.00
25.02.2007 6.10E+09 6.10E+09 6.10E+09
21.02.2007 3.44E+05 5.90E+06 0.00
19.02.2007 6.27E+09 6.27E+09 0.00
18.02.2007 1.56E+10 1.56E+10 1.56E+10
12.02.2007 1.31E+09 1.46E+09 2.42E+05
28.01.2007 2.38E+07 2.36E+07 2.36E+07
13.12.2006 1.51E+07 1.46E+07 1.46E+07
27.11.2006 9.84E+08 9.84E+08 3.65E+05
14.11.2006 9.70E+07 9.79E+07 9.01E+04
13.11.2006 4.90E+07 4.90E+07 1.64E+04
16.10.2006 1.67E+09 1.68E+09 0.00
15.10.2006 6.55E+04 5.90E+06 5.90E+06
27.09.2006 7.58E+08 7.61E+08 2.95E+05
11.09.2006 2.31E+09 2.32E+09 0.00
07.09.2006 8.35E+08 8.39E+08 0.00
06.09.2006 1.72E+05 1.97E+05 0.00
05.09.2006 1.23E+04 4.92E+04 0.00
04.09.2006 2.31E+09 2.32E+09 0.00
31.08.2006 8.35E+08 8.39E+08 0.00
30.08.2006 1.72E+05 1.97E+05 0.00
29.08.2006 1.23E+04 4.92E+04 0.00
28.08.2006 2.31E+09 2.32E+09 0.00
24.08.2006 8.35E+08 8.39E+08 0.00
23.08.2006 1.72E+05 1.97E+05 0.00
22.08.2006 1.23E+04 4.92E+04 0.00
21.08.2006 2.31E+09 2.32E+09 0.00
17.08.2006 8.35E+08 8.39E+08 0.00
16.08.2006 1.72E+05 1.97E+05 0.00
15.08.2006 3.89E+09 4.29E+09 4.29E+09
14.08.2006 2.31E+09 2.32E+09 2.31E+09
10.08.2006 8.35E+08 8.39E+08 0.00
09.08.2006 1.72E+05 1.97E+05 0.00
08.08.2006 1.23E+04 4.92E+04 0.00
13.06.2006 9.63E+05 2.21E+06 2.21E+06
06.06.2006 8.19E+03 4.92E+04 8.19E+03
15.05.2006 1.72E+07 1.66E+07 1.66E+07
08.05.2006 8.44E+05 5.61E+05 5.61E+05
03.05.2006 1.67E+07 1.82E+07 2.79E+05
05.04.2006 4.69E+07 5.97E+07 5.97E+07
03.04.2006 3.28E+04 4.92E+04 4.92E+04
21.03.2006 3.37E+07 3.39E+07 3.39E+07
03.03.2006 3.34E+09 3.34E+09 3.34E+09
23.01.2006 5.02E+08 5.03E+08 9.83E+04
22.01.2006 2.23E+07 2.20E+07 2.20E+07
24.11.2005 2.95E+07 1.53E+08 1.53E+08
03.11.2005 1.55E+07 1.55E+07 4.61E+06
23.10.2005 4.75E+05 9.01E+05 4.67E+05
11.10.2005 2.75E+07 3.39E+07 2.75E+07
11.08.2005 2.07E+08 1.84E+08 1.84E+08
10.06.2005 5.12E+09 5.12E+09 0.00
09.06.2005 5.15E+09 5.18E+09 0.00
08.06.2005 5.30E+09 5.30E+09 1.15E+05
07.06.2005 5.12E+09 5.13E+09 0.00
06.06.2005 5.12E+09 5.23E+09 0.00
03.06.2005 5.12E+09 5.12E+09 0.00
02.06.2005 5.15E+09 5.18E+09 0.00
01.06.2005 5.30E+09 5.30E+09 1.11E+05
31.05.2005 5.12E+09 5.13E+09 8.19E+03
30.05.2005 5.12E+09 5.23E+09 0.00
27.05.2005 5.12E+09 5.12E+09 0.00
26.05.2005 5.15E+09 5.18E+09 0.00
25.05.2005 5.30E+09 5.30E+09 1.11E+05
24.05.2005 5.12E+09 5.13E+09 0.00
23.05.2005 5.12E+09 5.23E+09 0.00
20.05.2005 5.12E+09 5.12E+09 0.00
19.05.2005 5.15E+09 5.18E+09 0.00
18.05.2005 5.30E+09 5.30E+09 1.52E+05
17.05.2005 5.12E+09 5.12E+09 0.00
16.05.2005 5.12E+09 5.17E+09 8.19E+03
29.03.2004 8.19E+03 7.37E+05 8.19E+03
04.02.2004 2.92E+07 4.75E+07 0.00
03.02.2004 9.42E+04 2.90E+06 0.00
28.01.2004 2.92E+07 4.75E+07 0.00
26.01.2004 9.42E+04 2.90E+06 0.00
20.01.2004 2.92E+07 4.75E+07 0.00
19.01.2004 9.42E+04 2.90E+06 0.00
$***out 20080115 12:17:26
date full copy Bytes .......... incremental copy Bytes....
copy TS changed copy TS changed
15.01.2008 1.85E+12 4.68E+13 7.81E+10 3.15E+10 2.72E+12 3.05E+10
14.01.2008 2.09E+12 4.71E+13 1.11E+11 4.12E+10 4.56E+12 3.97E+10
13.01.2008 1.41E+12 4.00E+13 3.37E+11 2.88E+09 2.98E+12 2.24E+09
12.01.2008 1.40E+12 4.87E+13 2.42E+10 1.42E+10 3.91E+12 1.33E+10
11.01.2008 2.44E+12 4.91E+13 7.64E+10 5.31E+10 4.91E+12 5.14E+10
10.01.2008 2.36E+12 5.02E+13 7.98E+10 5.08E+10 4.89E+12 4.91E+10
09.01.2008 2.71E+12 5.03E+13 7.85E+10 4.96E+10 4.86E+12 4.79E+10
08.01.2008 2.43E+12 4.90E+13 9.32E+10 5.51E+10 4.90E+12 5.34E+10
07.01.2008 2.16E+12 4.86E+13 1.19E+11 4.25E+10 4.52E+12 4.09E+10
06.01.2008 1.56E+12 3.06E+13 4.90E+11 9.97E+10 2.96E+12 9.90E+10
05.01.2008 1.36E+12 4.81E+13 1.65E+10 1.43E+10 3.79E+12 1.34E+10
04.01.2008 2.51E+12 5.06E+13 1.19E+11 5.65E+10 4.97E+12 5.48E+10
03.01.2008 2.45E+12 4.97E+13 1.04E+11 5.53E+10 5.13E+12 5.36E+10
02.01.2008 2.22E+12 5.04E+13 2.36E+11 2.66E+10 3.69E+12 2.54E+10
01.01.2008 1.32E+12 4.73E+13 1.61E+11 4.37E+10 2.05E+12 4.31E+10
31.12.2007 2.23E+12 4.68E+13 1.23E+11 4.40E+10 4.61E+12 4.25E+10
30.12.2007 1.35E+12 4.15E+13 3.03E+11 3.00E+09 2.98E+12 2.34E+09
29.12.2007 1.29E+12 4.82E+13 1.60E+10 1.86E+10 3.90E+12 1.76E+10
28.12.2007 2.46E+12 4.94E+13 1.07E+11 6.16E+10 4.92E+12 5.99E+10
27.12.2007 2.21E+12 4.92E+13 7.25E+10 4.97E+10 6.66E+12 4.76E+10
26.12.2007 1.64E+12 1.65E+12 9.28E+10 1.80E+10 7.13E+11 1.76E+10
25.12.2007 1.24E+12 4.72E+13 1.68E+10 1.31E+10 1.75E+12 1.26E+10
24.12.2007 2.32E+12 4.72E+13 1.31E+11 3.99E+10 4.56E+12 3.84E+10
23.12.2007 1.59E+12 3.56E+13 5.37E+11 2.80E+09 3.01E+12 2.13E+09
22.12.2007 1.25E+12 4.80E+13 2.00E+10 1.50E+10 3.87E+12 1.41E+10
21.12.2007 2.29E+12 4.91E+13 8.01E+10 6.17E+10 4.90E+12 6.00E+10
20.12.2007 2.32E+12 4.78E+13 8.38E+10 5.63E+10 4.85E+12 5.45E+10
19.12.2007 1.56E+11 7.80E+12 3.68E+09 4.93E+09 1.06E+11 4.80E+09
18.12.2007 1.07E+11 3.78E+12 2.74E+09 2.51E+09 6.01E+10 2.45E+09
17.12.2007 1.02E+11 1.03E+11 4.54E+09 2.97E+08 4.29E+09 2.74E+08
16.12.2007 9.79E+09 9.78E+09 9.78E+09
15.12.2007 1.05E+09 1.04E+09 1.04E+09
14.12.2007 4.72E+10 4.84E+10 7.95E+08 1.36E+08 2.20E+09 1.27E+08
10.12.2007 6.45E+09 6.60E+09 6.45E+09
03.12.2007 8.59E+09 8.67E+09 8.59E+09
26.11.2007 8.60E+09 8.69E+09 8.60E+09
25.11.2007 1.00E+06 1.47E+06 1.47E+06
19.11.2007 1.42E+10 1.43E+10 1.34E+10
12.11.2007 1.00E+09 1.10E+09 1.00E+09
06.11.2007 3.28E+04 1.97E+05 0.00
05.11.2007 8.30E+09 8.43E+09 8.30E+09
29.10.2007 7.32E+09 7.46E+09 7.32E+09
26.10.2007 2.81E+08 2.79E+08 2.79E+08
22.10.2007 1.33E+10 1.35E+10 1.12E+10
21.10.2007 1.58E+08 1.65E+08 1.65E+08
18.10.2007 3.28E+04 1.97E+05 0.00
15.10.2007 2.56E+09 2.70E+09 2.56E+09
08.10.2007 8.30E+09 8.44E+09 8.30E+09
01.10.2007 4.27E+09 4.33E+09 4.27E+09
24.09.2007 7.18E+09 7.30E+09 7.18E+09
17.09.2007 1.07E+10 1.08E+10 8.71E+09
10.09.2007 2.29E+09 2.40E+09 2.29E+09
09.09.2007 5.23E+06 5.13E+06 5.13E+06
03.09.2007 8.07E+09 8.20E+09 8.07E+09
02.09.2007 4.90E+07 4.35E+07 4.35E+07
27.08.2007 1.14E+10 1.15E+10 8.53E+09
20.08.2007 3.23E+09 3.36E+09 3.23E+09
13.08.2007 9.67E+09 9.82E+09 8.45E+09
08.08.2007 7.76E+10 7.76E+10 7.76E+10
07.08.2007 3.53E+10 3.53E+10 3.53E+10
06.08.2007 1.47E+09 1.60E+09 1.47E+09
30.07.2007 4.83E+09 4.97E+09 4.83E+09
23.07.2007 1.16E+10 1.17E+10 1.00E+10
22.07.2007 7.27E+06 7.14E+06 7.14E+06
16.07.2007 1.85E+09 1.98E+09 1.85E+09
15.07.2007 1.26E+06 1.47E+06 1.47E+06
09.07.2007 8.07E+09 8.20E+09 8.07E+09
02.07.2007 1.30E+10 1.31E+10 1.30E+10
01.07.2007 5.31E+07 5.22E+07 5.22E+07
25.06.2007 6.20E+09 6.33E+09 6.20E+09
24.06.2007 3.30E+07 2.93E+07 2.93E+07
18.06.2007 1.28E+10 1.29E+10 9.18E+09
17.06.2007 2.02E+07 1.79E+07 1.79E+07
11.06.2007 4.18E+09 4.28E+09 4.18E+09
04.06.2007 1.20E+10 1.20E+10 0.00
03.06.2007 1.20E+10 1.20E+10 1.20E+10
28.05.2007 1.18E+09 1.18E+09 0.00
27.05.2007 1.67E+10 1.67E+10 1.67E+10
21.05.2007 8.95E+09 8.95E+09 0.00
20.05.2007 8.95E+09 8.95E+09 8.95E+09
14.05.2007 1.30E+09 1.30E+09 0.00
13.05.2007 1.67E+10 1.67E+10 1.67E+10
07.05.2007 9.35E+09 9.35E+09 0.00
06.05.2007 9.35E+09 9.35E+09 9.35E+09
30.04.2007 1.22E+10 1.22E+10 5.24E+05
29.04.2007 1.53E+10 1.53E+10 1.53E+10
23.04.2007 7.48E+09 7.48E+09 0.00
22.04.2007 7.59E+09 7.57E+09 7.57E+09
16.04.2007 3.34E+09 3.34E+09 0.00
15.04.2007 1.58E+10 1.58E+10 1.58E+10
09.04.2007 9.31E+09 9.31E+09 0.00
08.04.2007 9.55E+09 9.55E+09 9.55E+09
02.04.2007 2.76E+09 2.76E+09 0.00
01.04.2007 1.82E+10 1.82E+10 1.82E+10
26.03.2007 4.56E+09 4.56E+09 0.00
25.03.2007 4.56E+09 4.56E+09 4.56E+09
19.03.2007 1.34E+10 1.34E+10 0.00
18.03.2007 1.34E+10 1.34E+10 1.34E+10
12.03.2007 6.10E+09 6.10E+09 0.00
11.03.2007 6.10E+09 6.10E+09 6.10E+09
07.03.2007 1.47E+11 1.50E+11 3.40E+09
05.03.2007 9.27E+08 9.27E+08 0.00
04.03.2007 1.63E+10 1.63E+10 1.63E+10
28.02.2007 3.44E+05 5.90E+06 0.00
26.02.2007 6.10E+09 6.10E+09 0.00
25.02.2007 6.10E+09 6.10E+09 6.10E+09
21.02.2007 3.44E+05 5.90E+06 0.00
19.02.2007 6.27E+09 6.27E+09 0.00
18.02.2007 1.56E+10 1.56E+10 1.56E+10
12.02.2007 1.31E+09 1.46E+09 2.42E+05
28.01.2007 2.38E+07 2.36E+07 2.36E+07
13.12.2006 1.51E+07 1.46E+07 1.46E+07
27.11.2006 9.84E+08 9.84E+08 3.65E+05
14.11.2006 9.70E+07 9.79E+07 9.01E+04
13.11.2006 4.90E+07 4.90E+07 1.64E+04
16.10.2006 1.67E+09 1.68E+09 0.00
15.10.2006 6.55E+04 5.90E+06 5.90E+06
27.09.2006 7.58E+08 7.61E+08 2.95E+05
11.09.2006 2.31E+09 2.32E+09 0.00
07.09.2006 8.35E+08 8.39E+08 0.00
06.09.2006 1.72E+05 1.97E+05 0.00
05.09.2006 1.23E+04 4.92E+04 0.00
04.09.2006 2.31E+09 2.32E+09 0.00
31.08.2006 8.35E+08 8.39E+08 0.00
30.08.2006 1.72E+05 1.97E+05 0.00
29.08.2006 1.23E+04 4.92E+04 0.00
28.08.2006 2.31E+09 2.32E+09 0.00
24.08.2006 8.35E+08 8.39E+08 0.00
23.08.2006 1.72E+05 1.97E+05 0.00
22.08.2006 1.23E+04 4.92E+04 0.00
21.08.2006 2.31E+09 2.32E+09 0.00
17.08.2006 8.35E+08 8.39E+08 0.00
16.08.2006 1.72E+05 1.97E+05 0.00
15.08.2006 3.89E+09 4.29E+09 4.29E+09
14.08.2006 2.31E+09 2.32E+09 2.31E+09
10.08.2006 8.35E+08 8.39E+08 0.00
09.08.2006 1.72E+05 1.97E+05 0.00
08.08.2006 1.23E+04 4.92E+04 0.00
13.06.2006 9.63E+05 2.21E+06 2.21E+06
06.06.2006 8.19E+03 4.92E+04 8.19E+03
15.05.2006 1.72E+07 1.66E+07 1.66E+07
08.05.2006 8.44E+05 5.61E+05 5.61E+05
03.05.2006 1.67E+07 1.82E+07 2.79E+05
05.04.2006 4.69E+07 5.97E+07 5.97E+07
03.04.2006 3.28E+04 4.92E+04 4.92E+04
21.03.2006 3.37E+07 3.39E+07 3.39E+07
03.03.2006 3.34E+09 3.34E+09 3.34E+09
23.01.2006 5.02E+08 5.03E+08 9.83E+04
22.01.2006 2.23E+07 2.20E+07 2.20E+07
24.11.2005 2.95E+07 1.53E+08 1.53E+08
03.11.2005 1.55E+07 1.55E+07 4.61E+06
23.10.2005 4.75E+05 9.01E+05 4.67E+05
11.10.2005 2.75E+07 3.39E+07 2.75E+07
11.08.2005 2.07E+08 1.84E+08 1.84E+08
10.06.2005 5.12E+09 5.12E+09 0.00
09.06.2005 5.15E+09 5.18E+09 0.00
08.06.2005 5.30E+09 5.30E+09 1.15E+05
07.06.2005 5.12E+09 5.13E+09 0.00
06.06.2005 5.12E+09 5.23E+09 0.00
03.06.2005 5.12E+09 5.12E+09 0.00
02.06.2005 5.15E+09 5.18E+09 0.00
01.06.2005 5.30E+09 5.30E+09 1.11E+05
31.05.2005 5.12E+09 5.13E+09 8.19E+03
30.05.2005 5.12E+09 5.23E+09 0.00
27.05.2005 5.12E+09 5.12E+09 0.00
26.05.2005 5.15E+09 5.18E+09 0.00
25.05.2005 5.30E+09 5.30E+09 1.11E+05
24.05.2005 5.12E+09 5.13E+09 0.00
23.05.2005 5.12E+09 5.23E+09 0.00
20.05.2005 5.12E+09 5.12E+09 0.00
19.05.2005 5.15E+09 5.18E+09 0.00
18.05.2005 5.30E+09 5.30E+09 1.52E+05
17.05.2005 5.12E+09 5.12E+09 0.00
16.05.2005 5.12E+09 5.17E+09 8.19E+03
29.03.2004 8.19E+03 7.37E+05 8.19E+03
04.02.2004 2.92E+07 4.75E+07 0.00
03.02.2004 9.42E+04 2.90E+06 0.00
28.01.2004 2.92E+07 4.75E+07 0.00
26.01.2004 9.42E+04 2.90E+06 0.00
20.01.2004 2.92E+07 4.75E+07 0.00
19.01.2004 9.42E+04 2.90E+06 0.00
$***out 20080115 12:14:50
date full copy kb ............. incremental copy kb ......
copy TS changed copy TS changed
15.01.2008 1.77E+09 4.57E+10 7.59E+07 3.00E+07 2.63E+09 2.91E+07
14.01.2008 2.04E+09 4.60E+10 1.08E+08 4.03E+07 4.45E+09 3.87E+07
13.01.2008 1.37E+09 3.91E+10 3.29E+08 2.81E+06 2.91E+09 2.19E+06
12.01.2008 1.37E+09 4.75E+10 2.36E+07 1.39E+07 3.82E+09 1.30E+07
11.01.2008 2.39E+09 4.80E+10 7.46E+07 5.19E+07 4.80E+09 5.02E+07
10.01.2008 2.31E+09 4.91E+10 7.79E+07 4.96E+07 4.78E+09 4.79E+07
09.01.2008 2.64E+09 4.91E+10 7.66E+07 4.84E+07 4.74E+09 4.67E+07
08.01.2008 2.37E+09 4.79E+10 9.10E+07 5.38E+07 4.79E+09 5.21E+07
07.01.2008 2.11E+09 4.74E+10 1.17E+08 4.15E+07 4.42E+09 4.00E+07
06.01.2008 1.53E+09 2.99E+10 4.78E+08 9.73E+07 2.89E+09 9.67E+07
05.01.2008 1.33E+09 4.70E+10 1.61E+07 1.40E+07 3.70E+09 1.31E+07
04.01.2008 2.45E+09 4.94E+10 1.16E+08 5.51E+07 4.86E+09 5.35E+07
03.01.2008 2.39E+09 4.86E+10 1.02E+08 5.40E+07 5.01E+09 5.23E+07
02.01.2008 2.17E+09 4.92E+10 2.30E+08 2.60E+07 3.61E+09 2.48E+07
01.01.2008 1.29E+09 4.62E+10 1.57E+08 4.26E+07 2.00E+09 4.21E+07
31.12.2007 2.18E+09 4.57E+10 1.20E+08 4.29E+07 4.50E+09 4.15E+07
30.12.2007 1.32E+09 4.05E+10 2.96E+08 2.93E+06 2.91E+09 2.28E+06
29.12.2007 1.26E+09 4.71E+10 1.56E+07 1.81E+07 3.81E+09 1.72E+07
28.12.2007 2.40E+09 4.82E+10 1.04E+08 6.02E+07 4.80E+09 5.85E+07
27.12.2007 2.16E+09 4.80E+10 7.08E+07 4.85E+07 6.50E+09 4.65E+07
26.12.2007 1.60E+09 1.62E+09 9.06E+07 1.76E+07 6.96E+08 1.72E+07
25.12.2007 1.21E+09 4.61E+10 1.64E+07 1.28E+07 1.71E+09 1.23E+07
24.12.2007 2.27E+09 4.61E+10 1.28E+08 3.89E+07 4.45E+09 3.75E+07
23.12.2007 1.55E+09 3.48E+10 5.24E+08 2.73E+06 2.94E+09 2.08E+06
22.12.2007 1.22E+09 4.69E+10 1.95E+07 1.47E+07 3.78E+09 1.38E+07
21.12.2007 2.24E+09 4.80E+10 7.83E+07 6.03E+07 4.78E+09 5.86E+07
20.12.2007 2.26E+09 4.67E+10 8.18E+07 5.50E+07 4.74E+09 5.33E+07
19.12.2007 1.53E+08 7.62E+09 3.59E+06 4.81E+06 1.03E+08 4.69E+06
18.12.2007 1.04E+08 3.69E+09 2.68E+06 2.45E+06 5.87E+07 2.39E+06
17.12.2007 9.99E+07 1.01E+08 4.43E+06 2.90E+05 4.19E+06 2.68E+05
16.12.2007 9.56E+06 9.55E+06 9.55E+06
15.12.2007 1.02E+06 1.02E+06 1.02E+06
14.12.2007 4.61E+07 4.73E+07 7.77E+05 1.33E+05 2.14E+06 1.24E+05
10.12.2007 6.30E+06 6.45E+06 6.30E+06
03.12.2007 8.39E+06 8.47E+06 8.39E+06
26.11.2007 8.40E+06 8.49E+06 8.40E+06
25.11.2007 9.80E+02 1.44E+03 1.44E+03
19.11.2007 1.39E+07 1.40E+07 1.31E+07
12.11.2007 9.77E+05 1.08E+06 9.77E+05
06.11.2007 3.20E+01 1.92E+02 0.00
05.11.2007 8.11E+06 8.24E+06 8.11E+06
29.10.2007 7.15E+06 7.29E+06 7.15E+06
26.10.2007 2.75E+05 2.72E+05 2.72E+05
22.10.2007 1.30E+07 1.31E+07 1.09E+07
21.10.2007 1.54E+05 1.61E+05 1.61E+05
18.10.2007 3.20E+01 1.92E+02 0.00
15.10.2007 2.50E+06 2.63E+06 2.50E+06
08.10.2007 8.11E+06 8.24E+06 8.11E+06
01.10.2007 4.17E+06 4.23E+06 4.17E+06
24.09.2007 7.01E+06 7.13E+06 7.01E+06
17.09.2007 1.04E+07 1.06E+07 8.51E+06
10.09.2007 2.24E+06 2.34E+06 2.24E+06
09.09.2007 5.11E+03 5.01E+03 5.01E+03
03.09.2007 7.88E+06 8.00E+06 7.88E+06
02.09.2007 4.78E+04 4.24E+04 4.24E+04
27.08.2007 1.11E+07 1.12E+07 8.33E+06
20.08.2007 3.15E+06 3.28E+06 3.15E+06
13.08.2007 9.45E+06 9.59E+06 8.25E+06
08.08.2007 7.58E+07 7.57E+07 7.57E+07
07.08.2007 3.45E+07 3.44E+07 3.44E+07
06.08.2007 1.44E+06 1.57E+06 1.44E+06
30.07.2007 4.72E+06 4.85E+06 4.72E+06
23.07.2007 1.13E+07 1.15E+07 9.80E+06
22.07.2007 7.10E+03 6.97E+03 6.97E+03
16.07.2007 1.81E+06 1.93E+06 1.81E+06
15.07.2007 1.23E+03 1.44E+03 1.44E+03
09.07.2007 7.88E+06 8.01E+06 7.88E+06
02.07.2007 1.27E+07 1.28E+07 1.27E+07
01.07.2007 5.18E+04 5.10E+04 5.10E+04
25.06.2007 6.06E+06 6.18E+06 6.06E+06
24.06.2007 3.22E+04 2.86E+04 2.86E+04
18.06.2007 1.25E+07 1.26E+07 8.96E+06
17.06.2007 1.97E+04 1.75E+04 1.75E+04
11.06.2007 4.08E+06 4.18E+06 4.08E+06
04.06.2007 1.17E+07 1.17E+07 0.00
03.06.2007 1.17E+07 1.17E+07 1.17E+07
28.05.2007 1.15E+06 1.15E+06 0.00
27.05.2007 1.63E+07 1.63E+07 1.63E+07
21.05.2007 8.74E+06 8.74E+06 0.00
20.05.2007 8.74E+06 8.74E+06 8.74E+06
14.05.2007 1.27E+06 1.27E+06 0.00
13.05.2007 1.63E+07 1.63E+07 1.63E+07
07.05.2007 9.13E+06 9.13E+06 0.00
06.05.2007 9.13E+06 9.13E+06 9.13E+06
30.04.2007 1.19E+07 1.19E+07 5.12E+02
29.04.2007 1.49E+07 1.49E+07 1.49E+07
23.04.2007 7.31E+06 7.31E+06 0.00
22.04.2007 7.41E+06 7.40E+06 7.40E+06
16.04.2007 3.26E+06 3.26E+06 0.00
15.04.2007 1.55E+07 1.55E+07 1.55E+07
09.04.2007 9.09E+06 9.09E+06 0.00
08.04.2007 9.33E+06 9.33E+06 9.33E+06
02.04.2007 2.70E+06 2.70E+06 0.00
01.04.2007 1.78E+07 1.78E+07 1.78E+07
26.03.2007 4.45E+06 4.45E+06 0.00
25.03.2007 4.45E+06 4.45E+06 4.45E+06
19.03.2007 1.31E+07 1.31E+07 0.00
18.03.2007 1.31E+07 1.31E+07 1.31E+07
12.03.2007 5.96E+06 5.96E+06 0.00
11.03.2007 5.96E+06 5.96E+06 5.96E+06
07.03.2007 1.43E+08 1.47E+08 3.32E+06
05.03.2007 9.05E+05 9.05E+05 0.00
04.03.2007 1.60E+07 1.60E+07 1.60E+07
28.02.2007 3.36E+02 5.76E+03 0.00
26.02.2007 5.96E+06 5.96E+06 0.00
25.02.2007 5.96E+06 5.96E+06 5.96E+06
21.02.2007 3.36E+02 5.76E+03 0.00
19.02.2007 6.13E+06 6.13E+06 0.00
18.02.2007 1.52E+07 1.52E+07 1.52E+07
12.02.2007 1.28E+06 1.43E+06 2.36E+02
28.01.2007 2.33E+04 2.30E+04 2.30E+04
13.12.2006 1.48E+04 1.43E+04 1.43E+04
27.11.2006 9.61E+05 9.61E+05 3.56E+02
14.11.2006 9.48E+04 9.56E+04 8.80E+01
13.11.2006 4.78E+04 4.78E+04 1.60E+01
16.10.2006 1.63E+06 1.64E+06 0.00
15.10.2006 6.40E+01 5.76E+03 5.76E+03
27.09.2006 7.41E+05 7.44E+05 2.88E+02
11.09.2006 2.25E+06 2.27E+06 0.00
07.09.2006 8.15E+05 8.19E+05 0.00
06.09.2006 1.68E+02 1.92E+02 0.00
05.09.2006 1.20E+01 4.80E+01 0.00
04.09.2006 2.25E+06 2.27E+06 0.00
31.08.2006 8.15E+05 8.19E+05 0.00
30.08.2006 1.68E+02 1.92E+02 0.00
29.08.2006 1.20E+01 4.80E+01 0.00
28.08.2006 2.25E+06 2.27E+06 0.00
24.08.2006 8.15E+05 8.19E+05 0.00
23.08.2006 1.68E+02 1.92E+02 0.00
22.08.2006 1.20E+01 4.80E+01 0.00
21.08.2006 2.25E+06 2.27E+06 0.00
17.08.2006 8.15E+05 8.19E+05 0.00
16.08.2006 1.68E+02 1.92E+02 0.00
15.08.2006 3.80E+06 4.19E+06 4.19E+06
14.08.2006 2.25E+06 2.27E+06 2.25E+06
10.08.2006 8.15E+05 8.19E+05 0.00
09.08.2006 1.68E+02 1.92E+02 0.00
08.08.2006 1.20E+01 4.80E+01 0.00
13.06.2006 9.40E+02 2.16E+03 2.16E+03
06.06.2006 8.00 4.80E+01 8.00
15.05.2006 1.68E+04 1.62E+04 1.62E+04
08.05.2006 8.24E+02 5.48E+02 5.48E+02
03.05.2006 1.63E+04 1.78E+04 2.72E+02
05.04.2006 4.58E+04 5.83E+04 5.83E+04
03.04.2006 3.20E+01 4.80E+01 4.80E+01
21.03.2006 3.29E+04 3.31E+04 3.31E+04
03.03.2006 3.26E+06 3.27E+06 3.26E+06
23.01.2006 4.90E+05 4.91E+05 9.60E+01
22.01.2006 2.18E+04 2.14E+04 2.14E+04
24.11.2005 2.88E+04 1.50E+05 1.50E+05
03.11.2005 1.51E+04 1.51E+04 4.50E+03
23.10.2005 4.64E+02 8.80E+02 4.56E+02
11.10.2005 2.68E+04 3.31E+04 2.68E+04
11.08.2005 2.02E+05 1.80E+05 1.80E+05
10.06.2005 5.00E+06 5.00E+06 0.00
09.06.2005 5.03E+06 5.06E+06 0.00
08.06.2005 5.17E+06 5.18E+06 1.12E+02
07.06.2005 5.00E+06 5.01E+06 0.00
06.06.2005 5.00E+06 5.11E+06 0.00
03.06.2005 5.00E+06 5.00E+06 0.00
02.06.2005 5.03E+06 5.06E+06 0.00
01.06.2005 5.17E+06 5.18E+06 1.08E+02
31.05.2005 5.00E+06 5.01E+06 8.00
30.05.2005 5.00E+06 5.11E+06 0.00
27.05.2005 5.00E+06 5.00E+06 0.00
26.05.2005 5.03E+06 5.06E+06 0.00
25.05.2005 5.17E+06 5.18E+06 1.08E+02
24.05.2005 5.00E+06 5.01E+06 0.00
23.05.2005 5.00E+06 5.11E+06 0.00
20.05.2005 5.00E+06 5.00E+06 0.00
19.05.2005 5.03E+06 5.06E+06 0.00
18.05.2005 5.17E+06 5.18E+06 1.48E+02
17.05.2005 5.00E+06 5.00E+06 0.00
16.05.2005 5.00E+06 5.04E+06 8.00
29.03.2004 8.00 7.20E+02 8.00
04.02.2004 2.85E+04 4.64E+04 0.00
03.02.2004 9.20E+01 2.83E+03 0.00
28.01.2004 2.85E+04 4.64E+04 0.00
26.01.2004 9.20E+01 2.83E+03 0.00
20.01.2004 2.85E+04 4.64E+04 0.00
19.01.2004 9.20E+01 2.83E+03 0.00
$***out 20080114 17:54:08
date full copy kb ............. incremental copy kb ......
copy TS changed copy TS changed
14.01.2008 1.04E+09 4.50E+10 8.70E+07 2.94E+07 3.12E+09 2.83E+07
13.01.2008 1.37E+09 3.91E+10 3.29E+08 2.81E+06 2.91E+09 2.19E+06
12.01.2008 1.37E+09 4.75E+10 2.36E+07 1.39E+07 3.82E+09 1.30E+07
11.01.2008 2.39E+09 4.80E+10 7.46E+07 5.19E+07 4.80E+09 5.02E+07
10.01.2008 2.31E+09 4.91E+10 7.79E+07 4.96E+07 4.78E+09 4.79E+07
09.01.2008 2.64E+09 4.91E+10 7.66E+07 4.84E+07 4.74E+09 4.67E+07
08.01.2008 2.37E+09 4.79E+10 9.10E+07 5.38E+07 4.79E+09 5.21E+07
07.01.2008 2.11E+09 4.74E+10 1.17E+08 4.15E+07 4.42E+09 4.00E+07
06.01.2008 1.53E+09 2.99E+10 4.78E+08 9.73E+07 2.89E+09 9.67E+07
05.01.2008 1.33E+09 4.70E+10 1.61E+07 1.40E+07 3.70E+09 1.31E+07
04.01.2008 2.45E+09 4.94E+10 1.16E+08 5.51E+07 4.86E+09 5.35E+07
03.01.2008 2.39E+09 4.86E+10 1.02E+08 5.40E+07 5.01E+09 5.23E+07
02.01.2008 2.17E+09 4.92E+10 2.30E+08 2.60E+07 3.61E+09 2.48E+07
01.01.2008 1.29E+09 4.62E+10 1.57E+08 4.26E+07 2.00E+09 4.21E+07
31.12.2007 2.18E+09 4.57E+10 1.20E+08 4.29E+07 4.50E+09 4.15E+07
30.12.2007 1.32E+09 4.05E+10 2.96E+08 2.93E+06 2.91E+09 2.28E+06
29.12.2007 1.26E+09 4.71E+10 1.56E+07 1.81E+07 3.81E+09 1.72E+07
28.12.2007 2.40E+09 4.82E+10 1.04E+08 6.02E+07 4.80E+09 5.85E+07
27.12.2007 2.16E+09 4.80E+10 7.08E+07 4.85E+07 6.50E+09 4.65E+07
26.12.2007 1.60E+09 1.62E+09 9.06E+07 1.76E+07 6.96E+08 1.72E+07
25.12.2007 1.21E+09 4.61E+10 1.64E+07 1.28E+07 1.71E+09 1.23E+07
24.12.2007 2.27E+09 4.61E+10 1.28E+08 3.89E+07 4.45E+09 3.75E+07
23.12.2007 1.55E+09 3.48E+10 5.24E+08 2.73E+06 2.94E+09 2.08E+06
22.12.2007 1.22E+09 4.69E+10 1.95E+07 1.47E+07 3.78E+09 1.38E+07
21.12.2007 2.24E+09 4.80E+10 7.83E+07 6.03E+07 4.78E+09 5.86E+07
20.12.2007 2.28E+09 4.67E+10 8.20E+07 5.50E+07 4.74E+09 5.33E+07
19.12.2007 2.25E+09 4.83E+10 7.86E+07 5.16E+07 4.71E+09 5.00E+07
18.12.2007 1.72E+08 3.79E+09 5.13E+07 1.09E+07 2.45E+08 1.08E+07
17.12.2007 1.07E+08 1.08E+08 4.72E+06 8.02E+05 1.70E+07 7.69E+05
16.12.2007 9.83E+06 9.83E+06 9.83E+06
15.12.2007 1.02E+06 1.02E+06 1.02E+06
14.12.2007 4.81E+07 4.93E+07 7.77E+05 1.35E+05 2.19E+06 1.27E+05
10.12.2007 6.30E+06 6.45E+06 6.30E+06
03.12.2007 8.39E+06 8.47E+06 8.39E+06
26.11.2007 8.40E+06 8.49E+06 8.40E+06
25.11.2007 9.80E+02 1.44E+03 1.44E+03
19.11.2007 1.39E+07 1.40E+07 1.31E+07
12.11.2007 9.77E+05 1.08E+06 9.77E+05
06.11.2007 3.20E+01 1.92E+02 0.00
05.11.2007 8.11E+06 8.24E+06 8.11E+06
29.10.2007 7.15E+06 7.29E+06 7.15E+06
26.10.2007 2.75E+05 2.72E+05 2.72E+05
22.10.2007 1.30E+07 1.31E+07 1.09E+07
21.10.2007 1.54E+05 1.61E+05 1.61E+05
18.10.2007 3.20E+01 1.92E+02 0.00
15.10.2007 2.50E+06 2.63E+06 2.50E+06
08.10.2007 8.11E+06 8.24E+06 8.11E+06
01.10.2007 4.17E+06 4.23E+06 4.17E+06
24.09.2007 7.01E+06 7.13E+06 7.01E+06
17.09.2007 1.04E+07 1.06E+07 8.51E+06
10.09.2007 2.24E+06 2.34E+06 2.24E+06
09.09.2007 5.11E+03 5.01E+03 5.01E+03
03.09.2007 7.88E+06 8.00E+06 7.88E+06
02.09.2007 4.78E+04 4.24E+04 4.24E+04
27.08.2007 1.11E+07 1.12E+07 8.33E+06
20.08.2007 3.15E+06 3.28E+06 3.15E+06
13.08.2007 9.45E+06 9.59E+06 8.25E+06
08.08.2007 7.58E+07 7.57E+07 7.57E+07
07.08.2007 3.45E+07 3.44E+07 3.44E+07
06.08.2007 1.44E+06 1.57E+06 1.44E+06
30.07.2007 4.72E+06 4.85E+06 4.72E+06
23.07.2007 1.13E+07 1.15E+07 9.80E+06
22.07.2007 7.10E+03 6.97E+03 6.97E+03
16.07.2007 1.81E+06 1.93E+06 1.81E+06
15.07.2007 1.23E+03 1.44E+03 1.44E+03
09.07.2007 7.88E+06 8.01E+06 7.88E+06
02.07.2007 1.27E+07 1.28E+07 1.27E+07
01.07.2007 5.18E+04 5.10E+04 5.10E+04
25.06.2007 6.06E+06 6.18E+06 6.06E+06
24.06.2007 3.22E+04 2.86E+04 2.86E+04
18.06.2007 1.25E+07 1.26E+07 8.96E+06
17.06.2007 1.97E+04 1.75E+04 1.75E+04
11.06.2007 4.08E+06 4.18E+06 4.08E+06
05.06.2007 5.56E+02 1.44E+03 4.00
04.06.2007 1.17E+07 1.17E+07 0.00
03.06.2007 1.17E+07 1.17E+07 1.17E+07
28.05.2007 1.15E+06 1.15E+06 0.00
27.05.2007 1.63E+07 1.63E+07 1.63E+07
21.05.2007 8.74E+06 8.74E+06 0.00
20.05.2007 8.74E+06 8.74E+06 8.74E+06
14.05.2007 1.27E+06 1.27E+06 0.00
13.05.2007 1.63E+07 1.63E+07 1.63E+07
07.05.2007 9.13E+06 9.13E+06 0.00
06.05.2007 9.13E+06 9.13E+06 9.13E+06
30.04.2007 1.19E+07 1.19E+07 5.12E+02
29.04.2007 1.49E+07 1.49E+07 1.49E+07
23.04.2007 7.31E+06 7.31E+06 0.00
22.04.2007 7.41E+06 7.40E+06 7.40E+06
16.04.2007 3.26E+06 3.26E+06 0.00
15.04.2007 1.55E+07 1.55E+07 1.55E+07
09.04.2007 9.09E+06 9.09E+06 0.00
08.04.2007 9.33E+06 9.33E+06 9.33E+06
02.04.2007 2.70E+06 2.70E+06 0.00
01.04.2007 1.78E+07 1.78E+07 1.78E+07
26.03.2007 4.45E+06 4.45E+06 0.00
25.03.2007 4.45E+06 4.45E+06 4.45E+06
19.03.2007 1.31E+07 1.31E+07 0.00
18.03.2007 1.31E+07 1.31E+07 1.31E+07
12.03.2007 5.96E+06 5.96E+06 0.00
11.03.2007 5.96E+06 5.96E+06 5.96E+06
07.03.2007 1.43E+08 1.47E+08 3.32E+06
05.03.2007 9.05E+05 9.05E+05 0.00
04.03.2007 1.60E+07 1.60E+07 1.60E+07
28.02.2007 3.36E+02 5.76E+03 0.00
26.02.2007 5.96E+06 5.96E+06 0.00
25.02.2007 5.96E+06 5.96E+06 5.96E+06
21.02.2007 3.36E+02 5.76E+03 0.00
19.02.2007 6.13E+06 6.13E+06 0.00
18.02.2007 1.52E+07 1.52E+07 1.52E+07
12.02.2007 1.28E+06 1.43E+06 2.36E+02
28.01.2007 2.33E+04 2.30E+04 2.30E+04
13.12.2006 1.48E+04 1.43E+04 1.43E+04
27.11.2006 9.61E+05 9.61E+05 3.56E+02
14.11.2006 9.48E+04 9.56E+04 8.80E+01
13.11.2006 4.78E+04 4.78E+04 1.60E+01
16.10.2006 1.63E+06 1.64E+06 0.00
15.10.2006 6.40E+01 5.76E+03 5.76E+03
27.09.2006 7.41E+05 7.44E+05 2.88E+02
11.09.2006 2.25E+06 2.27E+06 0.00
07.09.2006 8.15E+05 8.19E+05 0.00
06.09.2006 1.68E+02 1.92E+02 0.00
05.09.2006 1.20E+01 4.80E+01 0.00
04.09.2006 2.25E+06 2.27E+06 0.00
31.08.2006 8.15E+05 8.19E+05 0.00
30.08.2006 1.68E+02 1.92E+02 0.00
29.08.2006 1.20E+01 4.80E+01 0.00
28.08.2006 2.25E+06 2.27E+06 0.00
24.08.2006 8.15E+05 8.19E+05 0.00
23.08.2006 1.68E+02 1.92E+02 0.00
22.08.2006 1.20E+01 4.80E+01 0.00
21.08.2006 2.25E+06 2.27E+06 0.00
17.08.2006 8.15E+05 8.19E+05 0.00
16.08.2006 1.68E+02 1.92E+02 0.00
15.08.2006 3.80E+06 4.19E+06 4.19E+06
14.08.2006 2.25E+06 2.27E+06 2.25E+06
10.08.2006 8.15E+05 8.19E+05 0.00
09.08.2006 1.68E+02 1.92E+02 0.00
08.08.2006 1.20E+01 4.80E+01 0.00
13.06.2006 9.40E+02 2.16E+03 2.16E+03
06.06.2006 8.00 4.80E+01 8.00
15.05.2006 1.68E+04 1.62E+04 1.62E+04
08.05.2006 8.24E+02 5.48E+02 5.48E+02
03.05.2006 1.63E+04 1.78E+04 2.72E+02
05.04.2006 4.58E+04 5.83E+04 5.83E+04
03.04.2006 3.20E+01 4.80E+01 4.80E+01
21.03.2006 3.29E+04 3.31E+04 3.31E+04
03.03.2006 3.26E+06 3.27E+06 3.26E+06
23.01.2006 4.90E+05 4.91E+05 9.60E+01
22.01.2006 2.18E+04 2.14E+04 2.14E+04
24.11.2005 2.88E+04 1.50E+05 1.50E+05
03.11.2005 1.51E+04 1.51E+04 4.50E+03
23.10.2005 4.64E+02 8.80E+02 4.56E+02
11.10.2005 2.68E+04 3.31E+04 2.68E+04
11.08.2005 2.02E+05 1.80E+05 1.80E+05
10.06.2005 5.00E+06 5.00E+06 0.00
09.06.2005 5.03E+06 5.06E+06 0.00
08.06.2005 5.17E+06 5.18E+06 1.12E+02
07.06.2005 5.00E+06 5.01E+06 0.00
06.06.2005 5.00E+06 5.11E+06 0.00
03.06.2005 5.00E+06 5.00E+06 0.00
02.06.2005 5.03E+06 5.06E+06 0.00
01.06.2005 5.17E+06 5.18E+06 1.08E+02
31.05.2005 5.00E+06 5.01E+06 8.00
30.05.2005 5.00E+06 5.11E+06 0.00
27.05.2005 5.00E+06 5.00E+06 0.00
26.05.2005 5.03E+06 5.06E+06 0.00
25.05.2005 5.17E+06 5.18E+06 1.08E+02
24.05.2005 5.00E+06 5.01E+06 0.00
23.05.2005 5.00E+06 5.11E+06 0.00
20.05.2005 5.00E+06 5.00E+06 0.00
19.05.2005 5.03E+06 5.06E+06 0.00
18.05.2005 5.17E+06 5.18E+06 1.48E+02
17.05.2005 5.00E+06 5.00E+06 0.00
16.05.2005 5.00E+06 5.04E+06 8.00
29.03.2004 8.00 7.20E+02 8.00
04.02.2004 2.85E+04 4.64E+04 0.00
03.02.2004 9.20E+01 2.83E+03 0.00
28.01.2004 2.85E+04 4.64E+04 0.00
26.01.2004 9.20E+01 2.83E+03 0.00
20.01.2004 2.85E+04 4.64E+04 0.00
19.01.2004 9.20E+01 2.83E+03 0.00
$***out
col1 ICTYPE CP TS CH
14.01.2008 F 1042746532.0 44959468004.0 87002228.0
14.01.2008 I 29358724.0 3124851392.0 28290128.0
13.01.2008 F 1372347740.0 39078480100.0 329430708.0
13.01.2008 I 2808640.0 2908792240.0 2185056.0
12.01.2008 F 1371710576.0 47535937260.0 23594524.0
12.01.2008 I 13894020.0 3817340292.0 12989164.0
11.01.2008 F 2387243348.0 47994747348.0 74640060.0
11.01.2008 I 51897236.0 4799416332.0 50205932.0
10.01.2008 F 2307644476.0 49058467292.0 77905604.0
10.01.2008 I 49575084.0 4775467984.0 47901212.0
09.01.2008 F 2643405440.0 49149205032.0 76626476.0
09.01.2008 I 48432368.0 4743058820.0 46731632.0
08.01.2008 F 2371899660.0 47876503992.0 91031356.0
08.01.2008 I 53795884.0 4786069028.0 52115212.0
07.01.2008 F 2106863976.0 47448569588.0 116641584.0
07.01.2008 I 41495256.0 4416629160.0 39985504.0
06.01.2008 F 1528193756.0 29901405704.0 478107180.0
06.01.2008 I 97349236.0 2887044720.0 96674596.0
05.01.2008 F 1327980736.0 47007244076.0 16067596.0
05.01.2008 I 13980024.0 3703064932.0 13089988.0
04.01.2008 F 2454549236.0 49381306716.0 115899784.0
04.01.2008 I 55137204.0 4856651132.0 53469896.0
03.01.2008 F 2390913156.0 48566367700.0 101683976.0
03.01.2008 I 53973396.0 5009169264.0 52305432.0
02.01.2008 F 2168703116.0 49247755964.0 230126300.0
02.01.2008 I 26020088.0 3605907060.0 24800516.0
01.01.2008 F 1292543412.0 46170317988.0 156774728.0
01.01.2008 I 42639716.0 2004022356.0 42065836.0
31.12.2007 F 2180091092.0 45662439552.0 120076440.0
31.12.2007 I 42927556.0 4499815608.0 41514844.0
30.12.2007 F 1322510540.0 40528335088.0 295901252.0
30.12.2007 I 2926516.0 2909508684.0 2284296.0
29.12.2007 F 1261447540.0 47088697512.0 15623484.0
29.12.2007 I 18125352.0 3805093076.0 17197632.0
28.12.2007 F 2404094792.0 48207795660.0 104101380.0
28.12.2007 I 60188164.0 4800673608.0 58543268.0
27.12.2007 F 2161831520.0 48015359876.0 70839068.0
27.12.2007 I 48487228.0 6502327208.0 46480628.0
26.12.2007 F 1599133620.0 1616130728.0 90613432.0
26.12.2007 I 17575588.0 695930376.0 17234968.0
25.12.2007 F 1212295924.0 46098955472.0 16367680.0
25.12.2007 I 12823236.0 1705650120.0 12318224.0
24.12.2007 F 2269847900.0 46129645136.0 127985004.0
24.12.2007 I 38949840.0 4448788784.0 37539716.0
23.12.2007 F 1548480348.0 34796978248.0 524218312.0
23.12.2007 I 2730648.0 2941004944.0 2084688.0
22.12.2007 F 1223998320.0 46903132032.0 19501488.0
22.12.2007 I 14680552.0 3777174940.0 13763764.0
21.12.2007 F 2242145436.0 47995130144.0 78250640.0
21.12.2007 I 60300312.0 4783786416.0 58606632.0
20.12.2007 F 2275896328.0 46671827156.0 82017588.0
20.12.2007 I 54967340.0 4740323884.0 53257552.0
19.12.2007 F 2254717268.0 48314222204.0 78599744.0
19.12.2007 I 51608508.0 4712078848.0 49958576.0
18.12.2007 F 171691644.0 3794117708.0 51275292.0
18.12.2007 I 10904812.0 245022260.0 10808540.0
17.12.2007 F 106821848.0 107998808.0 4715016.0
17.12.2007 I 802088.0 16993384.0 769108.0
16.12.2007 F 9832476.0 9826540.0 9826540.0
15.12.2007 F 1024920.0 1018968.0 1018968.0
14.12.2007 F 48113124.0 49291172.0 776648.0
14.12.2007 I 135052.0 2187732.0 126548.0
10.12.2007 F 6303168.0 6445120.0 6302784.0
03.12.2007 F 8385600.0 8470048.0 8385280.0
26.11.2007 F 8396448.0 8490944.0 8396128.0
25.11.2007 F 980.0 1440.0 1440.0
19.11.2007 F 13886080.0 13992704.0 13089056.0
12.11.2007 F 976896.0 1077120.0 976576.0
06.11.2007 F 32.0 192.0 0.0
05.11.2007 F 8108576.0 8236800.0 8108256.0
29.10.2007 F 7152352.0 7286400.0 7152032.0
26.10.2007 F 274884.0 272368.0 272176.0
22.10.2007 F 13003584.0 13139456.0 10910272.0
21.10.2007 F 153816.0 161468.0 161468.0
18.10.2007 F 32.0 192.0 0.0
15.10.2007 F 2504512.0 2632960.0 2504192.0
08.10.2007 F 8108896.0 8243840.0 8108576.0
01.10.2007 F 4172096.0 4232928.0 4171776.0
24.09.2007 F 7010400.0 7132928.0 7010080.0
17.09.2007 F 10444480.0 10568448.0 8510368.0
10.09.2007 F 2239104.0 2341504.0 2238784.0
09.09.2007 F 5112.0 5012.0 5012.0
03.09.2007 F 7882432.0 8003072.0 7882112.0
02.09.2007 F 47808.0 42436.0 42436.0
27.08.2007 F 11091872.0 11222464.0 8325312.0
20.08.2007 F 3151328.0 3282048.0 3151008.0
13.08.2007 F 9447488.0 9588480.0 8247424.0
08.08.2007 F 75757464.0 75740368.0 75736944.0
07.08.2007 F 34450844.0 34439992.0 34439992.0
06.08.2007 F 1435648.0 1565344.0 1435568.0
30.07.2007 F 4719488.0 4849152.0 4719168.0
23.07.2007 F 11315168.0 11462528.0 9796672.0
22.07.2007 F 7104.0 6968.0 6968.0
16.07.2007 F 1809088.0 1934592.0 1808768.0
15.07.2007 F 1232.0 1440.0 1440.0
09.07.2007 F 7884736.0 8007296.0 7884416.0
02.07.2007 F 12709856.0 12817024.0 12709536.0
01.07.2007 F 51848.0 50956.0 50956.0
25.06.2007 F 6057184.0 6178304.0 6056864.0
24.06.2007 F 32224.0 28600.0 28600.0
18.06.2007 F 12509728.0 12632576.0 8962208.0
17.06.2007 F 19728.0 17512.0 17512.0
11.06.2007 F 4080480.0 4181760.0 4080160.0
05.06.2007 F 556.0 1440.0 4.0
04.06.2007 F 11729696.0 11729696.0 0.0
03.06.2007 F 11730336.0 11729696.0 11729696.0
28.05.2007 F 1153152.0 1153152.0 0.0
27.05.2007 F 16303040.0 16303680.0 16303680.0
21.05.2007 F 8740864.0 8740864.0 0.0
20.05.2007 F 8742892.0 8742304.0 8742304.0
14.05.2007 F 1268256.0 1268256.0 0.0
13.05.2007 F 16348832.0 16347552.0 16347552.0
07.05.2007 F 9132320.0 9132320.0 0.0
06.05.2007 F 9132960.0 9132320.0 9132320.0
30.04.2007 F 11907104.0 11908000.0 512.0
29.04.2007 F 14928000.0 14927296.0 14927296.0
23.04.2007 F 7308960.0 7308960.0 0.0
22.04.2007 F 7407564.0 7395956.0 7395956.0
16.04.2007 F 3259360.0 3259360.0 0.0
15.04.2007 F 15453664.0 15452512.0 15452512.0
09.04.2007 F 9087744.0 9087744.0 0.0
08.04.2007 F 9330852.0 9327720.0 9327720.0
02.04.2007 F 2696704.0 2696704.0 0.0
01.04.2007 F 17808480.0 17807392.0 17807392.0
26.03.2007 F 4451616.0 4451616.0 0.0
25.03.2007 F 4452256.0 4451616.0 4451616.0
19.03.2007 F 13069920.0 13069920.0 0.0
18.03.2007 F 13070560.0 13069920.0 13069920.0
12.03.2007 F 5955776.0 5955776.0 0.0
11.03.2007 F 5956416.0 5955776.0 5955776.0
07.03.2007 F 143245424.0 146899968.0 3322240.0
05.03.2007 F 905376.0 905376.0 0.0
04.03.2007 F 15962624.0 15961344.0 15961344.0
28.02.2007 F 336.0 5760.0 0.0
26.02.2007 F 5958912.0 5958912.0 0.0
25.02.2007 F 5959552.0 5958912.0 5958912.0
21.02.2007 F 336.0 5760.0 0.0
19.02.2007 F 6127456.0 6127648.0 0.0
18.02.2007 F 15230400.0 15229568.0 15229568.0
12.02.2007 F 1276436.0 1427244.0 236.0
28.01.2007 F 23256.0 23040.0 23040.0
13.12.2006 F 14760.0 14256.0 14256.0
27.11.2006 F 961184.0 961184.0 356.0
14.11.2006 F 94760.0 95648.0 88.0
13.11.2006 F 47824.0 47824.0 16.0
16.10.2006 F 1631152.0 1638656.0 0.0
15.10.2006 F 64.0 5760.0 5760.0
27.09.2006 F 740704.0 743536.0 288.0
11.09.2006 F 2252204.0 2269968.0 0.0
07.09.2006 F 815396.0 819088.0 0.0
06.09.2006 F 168.0 192.0 0.0
05.09.2006 F 12.0 48.0 0.0
04.09.2006 F 2252204.0 2269968.0 0.0
31.08.2006 F 815396.0 819088.0 0.0
30.08.2006 F 168.0 192.0 0.0
29.08.2006 F 12.0 48.0 0.0
28.08.2006 F 2252204.0 2269968.0 0.0
24.08.2006 F 815396.0 819088.0 0.0
23.08.2006 F 168.0 192.0 0.0
22.08.2006 F 12.0 48.0 0.0
21.08.2006 F 2252204.0 2269968.0 0.0
17.08.2006 F 815396.0 819088.0 0.0
16.08.2006 F 168.0 192.0 0.0
15.08.2006 F 3796608.0 4190448.0 4190400.0
14.08.2006 F 2252204.0 2269968.0 2252204.0
10.08.2006 F 815396.0 819088.0 0.0
09.08.2006 F 168.0 192.0 0.0
08.08.2006 F 12.0 48.0 0.0
13.06.2006 F 940.0 2160.0 2160.0
06.06.2006 F 8.0 48.0 8.0
15.05.2006 F 16772.0 16188.0 16188.0
08.05.2006 F 824.0 548.0 548.0
03.05.2006 F 16328.0 17792.0 272.0
05.04.2006 F 45792.0 58296.0 58296.0
03.04.2006 F 32.0 48.0 48.0
21.03.2006 F 32872.0 33080.0 33080.0
03.03.2006 F 3264004.0 3265680.0 3262832.0
23.01.2006 F 489960.0 490728.0 96.0
22.01.2006 F 21784.0 21436.0 21436.0
24.11.2005 F 28848.0 149728.0 149728.0
03.11.2005 F 15140.0 15112.0 4500.0
23.10.2005 F 464.0 880.0 456.0
11.10.2005 F 26840.0 33120.0 26836.0
11.08.2005 F 202216.0 179676.0 179676.0
10.06.2005 F 4995292.0 4996932.0 0.0
09.06.2005 F 5030792.0 5056508.0 0.0
08.06.2005 F 5172212.0 5176884.0 112.0
07.06.2005 F 4995804.0 5013492.0 0.0
06.06.2005 F 4998356.0 5109492.0 0.0
03.06.2005 F 4995324.0 5002692.0 0.0
02.06.2005 F 5030792.0 5056508.0 0.0
01.06.2005 F 5172212.0 5176884.0 108.0
31.05.2005 F 4995796.0 5013156.0 8.0
30.05.2005 F 4998364.0 5109828.0 0.0
27.05.2005 F 4995324.0 5002692.0 0.0
26.05.2005 F 5030792.0 5056508.0 0.0
25.05.2005 F 5172212.0 5176884.0 108.0
24.05.2005 F 4995788.0 5012820.0 0.0
23.05.2005 F 4998364.0 5109828.0 0.0
20.05.2005 F 4995324.0 5002692.0 0.0
19.05.2005 F 5030792.0 5056508.0 0.0
18.05.2005 F 5172212.0 5176884.0 148.0
17.05.2005 F 4995276.0 4996788.0 0.0
16.05.2005 F 4996620.0 5044644.0 8.0
29.03.2004 F 8.0 720.0 8.0
04.02.2004 F 28548.0 46432.0 0.0
03.02.2004 F 92.0 2832.0 0.0
28.01.2004 F 28548.0 46432.0 0.0
26.01.2004 F 92.0 2832.0 0.0
20.01.2004 F 28548.0 46432.0 0.0
19.01.2004 F 92.0 2832.0 0.0
}¢--- A540769.WK.SQL(CATCORT) cre=2013-09-30 mod=2013-09-30-13.23.24 A540769 ---
/*-- techsave Entscheidungs View --------------------------------------
what 'i%' --> incremental
what 'f%' --> full
what ' %' --> no copy needed
join alias
s: tablespace
p: tablePart
r: table RTS
i: newest full or incremental save, or log discontinity
f: newest full save, or log discontinity
Achtung: besenWagen behandelt clones richtiger|||
----------------------------------------------------------------------*/
select s.dbName, s.name, p.partition
, value(r.instance, 1) inst
, case when f.icType is null then 'f1'
when f.icType <> 'F' then 'f2'
when f.timestamp < current timestamp - 7 days then 'fW'
when i.icType is null then 'f5'
when i.icType not in ('I', 'F') then 'f6'
when i.timestamp < r.copyLastTime - 60 seconds then 'f7'
when r.nactive * 0.1 <= r.copyupdatedpages then 'fU'
when r.copyupdatedpages > 0 then 'iU'
when r.copyChanges > 0 then 'iC'
when r.copyUpdateLRSN is not null then 'iL'
else ' n'
end wh
, r.copyLasttime
, r.*
, i.*
, f.*
from sysibm.sysTablespace s
join sysibm.sysTablePart p
on s.dbName = p.dbName and s.name = p.tsName
left join sysibm.sysTableSpaceStats r
on s.dbName = r.dbName and s.name = r.name
and s.dbid = r.dbid and s.psid = r.psid
and p.partition = r.partition
left join
( select c.*
, row_number() over(partition by dbName, tsName, dsNum
, instance
order by timestamp desc) rn
from sysibm.sysCopy c
where c.icType not in ('D', 'M', 'Q', 'R', 'T', 'X', 'Z')
) i on i.rn = 1
and s.dbName = i.dbName and s.Name = i.tsName
and p.partition = i.dsNum
and i.instance = value(r.instance, 1)
left join
( select c.*
, row_number() over(partition by dbName, tsName, dsNum
, instance
order by timestamp desc) rn
from sysibm.sysCopy c
where c.icType not in ('D','I','M','Q', 'R', 'T', 'X', 'Z')
) f on f.rn = 1
and s.dbName = f.dbName and s.Name = f.tsName
and p.partition = f.dsNum
and f.instance = value(r.instance, 1)
where s.dbName like 'BE%' --and s.name like 'APER%'
order by 5, 1, 2,3,4
;x;
select s.dbName, s.name, p.partition
, value(r.instance, 1) inst
, (select max(timestamp)
from sysibm.sysCopy c
where c.icType in ('F', 'I')
and s.dbName = c.dbName and s.Name = c.tsName
and p.partition = c.dsNum
and c.instance = value(r.instance, 1)
) copyTst
, r.copyLasttime
from sysibm.sysTablespace s
join sysibm.sysTablePart p
on s.dbName = p.dbName and s.name = p.tsName
left join sysibm.sysTableSpaceStats r
on s.dbName = r.dbName and s.name = r.name
and s.dbid = r.dbid and s.psid = r.psid
and p.partition = r.partition
where s.dbName = 'DA540769' and s.name like 'APER%'
;x;
select s.dbName, s.name, p.partition , c.dsNum
from sysibm.sysTablespace s
join sysibm.sysTablePart p
on s.dbName = p.dbName and s.name = p.tsName
left join sysibm.sysTableSpaceStats r
on s.dbName = r.dbName and s.name = r.name
and s.dbid = r.dbid and s.psid = r.psid
and p.partition = r.partition
left join
( select * from sysibm.sysCopy c
where timestamp = (select max(timestamp)
from sysibm.sysCopy a
where a.icType in ('F', 'I')
and a.dbName = c.dbName and a.tsName = c.tsName
and a.dsNum in (0, c.dsNum)
) ) c
on c.icType in ('F', 'I')
and c.dbName = s.dbName and c.tsName = s.name
and c.dsNum in (0, p.partition)
where s.dbName = 'DA540769' and s.name like 'APER%'
;x;
select r.dbName, r.name, r.partition, c.dsNum
, r.copyLastTime, c.timestamp, r.*, c.*
from sysibm.sysCopy c
join sysibm.sysTablespaceStats r
on c.dbName = r.dbName and c.tsName = r.name
and c.dsNum in (0, r.partition)
where c.dbName = 'DA540769' and c.tsName like 'APER24%'
and c.timestamp = (select max(a.timestamp)
from sysibm.sysCopy a
where a.dbName = c.dbName and a.tsName = c.tsName
and a.dsNum in (0, c.dsNum)
)
-- and c.timestamp = r.copyLastTime
;x;
select r.dbName, r.name, r.partition, c.dsNum
, r.copyLastTime, c.timestamp, r.*, c.*
from sysibm.sysCopy c
join sysibm.sysTablespaceStats r
on c.dbName = r.dbName and c.tsName = r.name
and c.dsNum in (0, r.partition)
where c.dbName = 'DA540769' and c.tsName like 'APER24%'
and c.timestamp = (select max(a.timestamp)
from sysibm.sysCopy a
where a.dbName = c.dbName and a.tsName = c.tsName
and a.dsNum in (0, c.dsNum)
)
-- and c.timestamp = r.copyLastTime
;x;
with c as
(
select * from sysibm.sysCopy c
where
select *
from sysibm.sysCopy c
join sysibm.sysTablespaceStats r
on c.dbName = r.dbName and c.tsName = r.name
and c.timestamp = r.copyLastTime
where c.dbName = 'DA540769' and c.tsName like 'APER24%'
with c as
(
select *
from sysibm.sysCopy c
where timestamp = (select max(a.timestamp)
from sysibm.sysCopy a
where a.dbName = c.dbName and a.tsName = c.tsName
and a.dsNum in (0, c.dsNum)
)
)
}¢--- A540769.WK.SQL(CATDB) cre=2006-08-03 mod=2016-10-05-11.27.59 A540769 -----
select dbName, count(*)
from sysibm.sysTables
where dbName like 'QZ%'
group by dbName
order by dbname
;x;
select type, count(*), min(name), max(name)
from sysibm.sysdatabase
group by type
order by type
;
select type, count(*), min(name), max(name)
from sysibm.sysdatabase
where name like 'WK%'
group by type
order by type
;
;X; where (name like 'D%' and length(strip(name)) = 8
and translate(strip(substr(name, 3)), '', '0123456789')=''
)
;;;
select count(*), cat, min(name), max(name)
from
( select
case
when name like 'DSNDB%' then 'dsnDb'
when name like 'BJ%' and LENGTH(STRIP(name)) = 8
then 'bj%'
when name like 'DB2%' then 'db2%'
when name like 'DEMO%' then 'demo%'
when name like 'DGDB%' and LENGTH(STRIP(name)) = 8
then 'dgdb%'
when name like 'DGO%' and LENGTH(STRIP(name)) = 8
then 'dgow%'
when name like 'WKDB%' then 'wkdb%'
when LENGTH(STRIP(name)) = 7 and right(strip(name), 3)
= 'A1A'
then '____a1a'
when length(strip(name)) >= 7 and
translate(right(strip(name), 6),
'0000000000', '0123456789') = '000000'
then 'user'
else name end cat,
name
from sysibm.sysdatabase
) c
group by cat
order by cat
;
x
select count(*), creator
from sysibm.systables
where dbName = 'DGOWA600'
group by creator
order by 1 desc
;
select count(*), dbname
from sysibm.systables
where dbName like 'DG%'
group by dbname
order by 1 desc
;
x
SELECT cTyp,
count(*) tables,
count(distinct creator) creators, MIN(creator), MAX(creator),
MIN(DBNAME) dbName, MAX(DBNAME)
from
( SELECT
CASE
when creator = 'SYSIBM' then 'sysibm'
when dbname like 'DSNDB%'
then left(lower(dbname), 8)
when DBNAME LIKE 'BJ%' AND LENGTH(STRIP(DBNAME)) = 8
then left(dbName, 3) || 'xxxxx'
when length(strip(creator)) = 7 and
translate(substr(creator, 2, 6),
'0000000000', '0123456789') = '000000'
then 'user'
when creator like 'BMC%' then 'bmc'
else creator
end cTyp,
creator, name, dbname
FROM SYSIBM.SYSTABLES
WHERE TYPE = 'T'
) s
GROUP BY cTyp
ORDER BY cTyp
;
XELECT DISTINCT CREATOR, COUNT(*), COUNT(DISTINCT DBNAME),
MIN(DBNAME), MAX(DBNAME)
FROM SYSIBM.SYSTABLES
WHERE TYPE = 'T'
AND NOT (DBNAME LIKE 'BJ%' AND LENGTH(STRIP(DBNAME)) = 8)
GROUP BY CREATOR
ORDER BY CREATOR
;
SELECT DISTINCT CREATOR, COUNT(*), COUNT(DISTINCT DBNAME),
MIN(DBNAME), MAX(DBNAME)
FROM SYSIBM.SYSTABLES
WHERE TYPE = 'T'
AND NOT (DBNAME LIKE 'BJ%' AND LENGTH(STRIP(DBNAME)) = 8)
GROUP BY CREATOR
ORDER BY CREATOR
;
LEFT(CREATOR, 9) || LEFT(DBNAME, 9)
|| CHAR(COUNT(*))
|| MIN(LEFT(NAME, 8)) || ' .. ' || MAX(LEFT(NAME, 8))
FROM SYSIBM.SYSTABLES
WHERE TYPE = 'T'
AND NOT (DBNAME LIKE 'BJ%' AND LENGTH(STRIP(DBNAME)) = 8)
GROUP BY CREATOR, DBNAME
ORDER BY 1 ASC
;
;
X
SELECT DISTINCT
LEFT(CREATOR, 9) || LEFT(DBNAME, 9)
|| CHAR(COUNT(*))
|| MIN(LEFT(NAME, 8)) || ' .. ' || MAX(LEFT(NAME, 8))
FROM SYSIBM.SYSTABLES
WHERE TYPE = 'T'
AND NOT (DBNAME LIKE 'BJ%' AND LENGTH(STRIP(DBNAME)) = 8)
GROUP BY CREATOR, DBNAME
ORDER BY 1 ASC
;
}¢--- A540769.WK.SQL(CATDBALR) cre=2012-04-19 mod=2012-04-19-16.26.59 A540769 ---
$#@ 00010000
$=in1=~.wk.sql(catdbal1) 00020000
$=in2=~.wk.sql(catdbal2) 00030000
$=out=~.wk.sql(catdbal9) 00040002
call readDsn $in1, m.i1. 00050000
say $in1 m.i1.0 00060000
call readDsn $in2, m.i2. 00070000
say $in2 m.i2.0 00080000
x1 = 1 00090001
x2 = 1 00100001
m.o.0 = 0 00110002
do while x1 <= m.i1.0 & x2 <= m.i2.0 00120002
parse var m.i1.x1 pro1 cnt1 alt1 rst1 00130002
parse var m.i2.x2 pro2 db2 rst2 73 . 00140003
if pro1 == pro2 then 00150001
call mAdd o, left(pro2, 8) left(db2, 8) left(alt1, 10) 00160002
else if pro2 << pro1 then 00170002
call mAdd o, left(pro2, 8) left(db2, 8) strip(rst2) 00180002
x1 = x1 + (pro1 <<= pro2) 00190001
x2 = x2 + (pro1 >>= pro2) 00200001
end 00210001
do x2 = x2 to m.i2.0 00220003
parse var m.i2.x2 pro2 db2 rst2 73 . 00230003
call mAdd o, left(pro2, 8) left(db2, 8) strip(rst2) 00240003
end 00250003
call writeDsn $out, m.o., ,1 00260002
$#out 20120419 16:26:54 00270004
$#out 20120419 16:21:30 00280003
$#out 20120419 16:19:02 00290002
}¢--- A540769.WK.SQL(CATDBALT) cre=2012-04-19 mod=2012-04-19-16.25.38 A540769 ---
with d as
(
select name db
from sysibm.sysDatabase
where name like 'DG%' or name like '%A1X%'
)
, v0 (ty, db, cr, vw, at, lv) as
(
select type, dbname, creator, name, alteredTs, 0
from sysibm.sysTables
where dbName in (select db from d) and type = 'T'
union all select dtype, db, dCreator, dName, t.alteredTs, lv+1
from v0, sysibm.sysViewDep q, sysibm.sysTables t
where lv < 99 and q.bcreator = v0.cr and q.bName = v0.vw
and t.creator = dCreator and t.name = dName
)
, v as
( select db, cr, vw, max(ty) ty, max(at) at
from v0
group by db, cr, vw
union all select dbName db , creator cr, name vw, 'ix' ty,
alteredTs at
from sysibm.sysIndexes
where dbName in (select db from d)
)
select db, count(*), max(at)
from v
group by db
order by db
$#out 20120419 16:24:54
DB OL2 COL3
AV01A1X 325 2009-03-06-09.56.13.347096
AV02A1X 29 2009-11-05-15.04.31.233447
AV03A1X 162 2012-02-15-15.56.00.992980
AV04A1X 70 2012-02-15-15.56.20.101081
AV05A1X 30 2011-09-09-16.04.25.659715
AV06A1X 126 2012-02-15-15.56.44.900875
AV07A1X 126 2012-02-15-15.56.56.623324
AV08A1X 126 2012-02-15-15.57.08.237247
AV09A1X 126 2012-02-15-15.57.19.005186
AV10A1X 126 2012-02-15-15.57.29.100327
AV11A1X 126 2012-02-15-15.57.45.244556
AV12A1X 126 2012-02-15-15.57.59.382430
AV13A1X 126 2012-02-15-15.58.18.653586
AV14A1X 126 2012-02-15-15.58.34.142134
AV15A1X 176 2012-03-15-14.59.55.329691
AV16A1X 126 2012-02-15-15.58.50.859737
AV17A1X 126 2012-02-15-15.59.09.054278
AV18A1X 126 2012-02-15-15.59.22.097118
DG01A1A 201 2012-04-02-08.38.16.929850
DG02A1A 122 2012-01-30-12.54.53.534434
DG666308 2 2009-02-18-12.35.14.395438
DGDB0008 153 2008-03-14-13.04.33.490511
DGDB0009 9 2004-10-26-15.13.54.114580
DGDB0015 201 2012-03-29-12.45.42.624562
DGDB0031 60 2007-07-25-07.17.23.210039
DGDB0033 6 2004-10-26-15.13.58.488538
DGDB0035 21 2007-06-22-13.26.09.175553
DGDB0039 36 2006-05-19-14.17.02.071896
DGDB0041 46 2004-10-26-15.14.09.759890
DGDB0042 3 2004-10-26-15.14.09.826515
DGDB0044 4 2004-10-26-15.14.09.914919
DGDB0047 5 2004-10-26-15.14.12.791258
DGDB0049 13 2010-07-29-15.27.33.622954
DGDB0052 378 2006-09-08-10.13.08.350741
DGDB0056 6 2004-10-26-15.14.49.340828
DGDB0057 152 2010-06-25-10.55.07.240600
DGDB0058 77 2009-02-16-16.24.51.053775
DGDB0059 34 2008-12-23-12.47.57.841673
DGDB0060 121 2009-04-21-07.25.35.986757
DGDB0061 8 2004-10-26-15.15.04.437668
DGDB0062 49 2010-04-22-13.19.16.615883
DGDB0065 39 2004-10-26-15.15.20.634315
DGDB0067 75 2011-09-27-15.04.49.189528
DGDB0072 90 2008-01-17-18.27.15.263195
DGDB0074 228 2004-10-26-15.15.43.907806
DGDB0078 74 2008-04-22-11.08.37.492940
DGDB0080 27 2004-10-26-15.15.53.616592
DGDB0082 145 2004-10-26-15.16.16.107311
DGDB0084 571 2008-10-30-17.23.26.248352
DGDB0085 6 2004-10-26-15.16.45.326968
DGDB0086 3 2004-10-26-15.16.45.450493
DGDB0088 26 2011-01-12-14.58.17.403487
DGDB0089 4 2004-10-26-15.16.46.747597
DGDB0090 24 2007-07-10-13.33.01.985987
DGDB0091 57 2009-07-31-16.24.24.282235
DGDB0093 18 2004-10-26-15.17.05.688324
DGDB0094 51 2004-10-26-15.17.07.479274
DGDB0095 18 2004-10-26-15.17.07.906538
DGDB0098 3 2004-10-26-15.17.08.024597
DGDB0103 52 2005-08-23-15.04.51.695020
DGDB0104 89 2011-03-07-11.24.47.409982
DGDB0105 146 2006-05-09-15.29.38.403093
DGDB0106 112 2012-02-06-15.47.39.861403
DGDB0110 25 2011-02-02-13.45.07.510254
DGDB0112 688 2012-02-16-11.41.10.222958
DGDB0113 258 2012-01-12-17.24.32.566470
DGDB0120 338 2011-09-22-08.37.30.692568
DGDB0121 21 2012-03-06-15.01.59.414022
DGDB0125 37 2009-11-18-13.37.33.681197
DGDB0129 12 2004-10-26-15.43.54.433882
DGDB0130 24 2004-11-03-11.12.47.882202
DGDB0131 49 2011-11-01-08.45.13.650123
DGDB0132 9 2006-10-03-18.07.12.156178
DGDB0133 371 2012-04-10-15.19.08.010289
DGDB0135 78 2010-12-15-10.44.14.150780
DGDB0136 192 2011-09-23-12.40.35.137113
DGDB0137 191 2012-04-12-10.51.12.318909
DGDB0139 92 2006-09-08-10.15.11.761270
DGDB0140 120 2010-04-08-11.28.21.175572
DGDB0141 21 2006-09-05-18.21.37.237084
DGDB0142 75 2009-03-06-11.40.05.708110
DGDB0143 49 2004-10-26-15.46.50.593341
DGDB0144 4 2004-10-26-15.46.50.627553
DGDB0145 25 2006-05-09-15.29.38.740267
DGDB0151 40 2010-08-17-10.26.47.966178
DGDB0153 44 2012-04-17-11.42.11.416017
DGDB0154 113 2007-04-26-14.52.26.375676
DGDB0155 96 2011-11-07-10.00.24.371112
DGDB0156 146 2012-02-13-18.17.12.526169
DGDB0159 2 2004-10-26-15.47.54.862251
DGDB0162 37 2010-03-01-13.34.58.807827
DGDB0166 45 2009-06-24-10.11.34.524267
DGDB0167 165 2004-10-26-15.48.12.096602
DGDB0168 65 2011-03-02-13.22.04.943211
DGDB0169 43 2010-06-17-08.44.11.264635
DGDB0171 56 2012-03-26-09.49.28.897080
DGDB0173 350 2010-02-24-13.44.34.529229
DGDB0174 8 2011-11-16-12.03.38.194573
DGDB0175 47 2004-10-26-15.49.17.533858
DGDB0177 38 2004-10-26-15.50.02.498005
DGDB0178 186 2011-08-15-13.52.20.151219
DGDB0179 173 2010-05-28-11.32.55.602101
DGDB0180 15 2004-10-26-15.50.50.978297
DGDB0181 23 2007-02-27-11.06.10.205960
DGDB0182 12 2004-10-26-15.50.51.737228
DGDB0183 367 2012-03-06-14.14.38.800727
DGDB0185 10 2004-10-26-15.50.57.210769
DGDB0186 26 2007-10-01-07.39.03.571013
DGDB0187 172 2008-05-06-22.33.40.942777
DGDB0189 140 2012-04-19-15.10.21.608464
DGDB0192 126 2012-01-30-12.36.00.752766
DGDB0193 141 2008-01-15-16.26.26.452125
DGDB0194 17 2008-12-19-14.13.25.529939
DGDB0195 11 2004-10-26-15.52.05.192138
DGDB0196 76 2012-02-21-16.04.41.114114
DGDB0200 310 2004-10-27-10.25.57.753074
DGDB0201 22 2007-04-13-17.31.09.157936
DGDB0202 241 2012-02-13-18.19.03.741293
DGDB0203 40 2012-02-28-09.52.36.737259
DGDB0205 10 2004-10-27-10.26.32.469902
DGDB0206 22 2004-10-27-10.26.34.590578
DGDB0207 237 2011-04-28-15.56.57.412443
DGDB0209 12 2004-10-27-10.26.39.896668
DGDB0211 105 2011-02-03-16.43.44.123978
DGDB0212 27 2006-09-08-10.35.00.000617
DGDB0213 251 2012-04-11-13.28.46.995190
DGDB0214 5 2004-10-27-10.26.51.819135
DGDB0215 9 2004-10-27-10.26.52.282957
DGDB0217 199 2012-01-11-15.16.53.415090
DGDB0218 65 2009-10-01-15.48.29.999826
DGDB0220 6 2006-11-08-13.03.57.222846
DGDB0222 159 2004-10-27-10.27.15.092403
DGDB0223 107 2011-12-13-12.48.31.089270
DGDB0224 27 2009-06-17-13.09.50.284614
DGDB0226 60 2006-06-08-15.44.50.793406
DGDB0227 15 2008-10-21-10.34.03.396936
DGDB0228 187 2011-12-15-13.29.03.118489
DGDB0231 41 2006-12-13-10.05.01.238523
DGDB0232 17 2009-04-02-14.54.06.617324
DGDB0235 279 2011-08-23-12.15.47.899057
DGDB0236 17 2006-08-17-10.44.37.822719
DGDB0237 330 2012-03-26-15.15.02.794184
DGDB0238 33 2006-09-08-10.40.16.350739
DGDB0239 47 2011-11-29-13.05.21.939649
DGDB0241 78 2012-03-01-07.57.16.326406
DGDB0242 53 2004-10-27-10.29.15.688356
DGDB0243 4 2001-07-04-15.24.14.921785
DGDB0244 102 2011-03-17-13.11.56.616841
DGDB0247 83 2010-09-01-11.15.27.735671
DGDB0248 4 2004-10-27-10.29.23.052453
DGDB0254 149 2006-07-12-16.35.49.369482
DGDB0255 6 2009-06-11-08.44.03.203655
DGDB0256 19 2011-09-06-15.28.09.229664
DGDB0257 59 2011-09-06-15.29.42.960811
DGDB0258 20 2009-09-29-15.19.57.611661
DGDB0260 17 2009-06-25-08.22.17.297017
DGDB0261 5 2009-06-25-08.23.28.423606
DGDB0262 5 2009-06-25-08.25.18.112304
DGDB0263 35 2004-10-27-10.29.41.195829
DGDB0264 9 2004-10-27-10.29.41.877308
DGDB0265 76 2012-03-16-09.46.15.968614
DGDB0266 20 2007-11-26-08.14.38.947415
DGDB0268 51 2007-05-31-10.41.51.640387
DGDB0269 16 2004-10-27-10.29.57.644724
DGDB0272 45 2004-10-27-10.30.13.604279
DGDB0273 37 2011-11-28-10.57.30.181899
DGDB0274 6 2006-09-08-10.40.29.777600
DGDB0275 221 2012-04-13-08.50.28.813048
DGDB0276 30 2011-02-15-07.53.02.085361
DGDB0277 2 2004-10-27-10.30.16.265751
DGDB0278 32 2004-10-27-10.30.17.040738
DGDB0279 25 2005-08-22-10.08.55.624049
DGDB0281 171 2008-07-21-14.31.34.649556
DGDB0282 27 2012-04-14-11.40.20.325701
DGDB0283 71 2010-02-10-14.19.39.422838
DGDB0284 7 2009-06-25-07.31.45.485555
DGDB0285 31 2009-11-18-13.24.14.262770
DGDB0286 44 2012-01-06-06.41.49.700114
DGDB0287 30 2011-01-26-14.51.07.826564
DGDB0288 33 2007-12-21-13.07.55.406211
DGDB0289 11 2007-05-24-15.42.08.563298
DGDB0290 287 2012-01-05-09.39.36.559408
DGDB0291 8 2012-02-14-10.45.10.650668
DGDB0292 44 2011-08-25-15.45.12.998437
DGDB0295 43 2004-10-27-11.06.06.170413
DGDB0296 51 2009-12-02-14.26.17.948619
DGDB0297 4 2004-10-27-11.06.07.558401
DGDB0300 34 2006-04-27-14.26.20.464157
DGDB0308 26 2004-10-27-10.37.34.302559
DGDB0309 5 2004-10-27-10.37.34.405394
DGDB0310 29 2004-10-27-10.37.34.983835
DGDB0311 46 2004-10-27-10.37.35.686834
DGDB0312 44 2004-10-27-10.37.36.700587
DGDB0313 4 2004-10-27-10.37.36.761966
DGDB0315 87 2007-11-21-07.34.14.982034
DGDB0316 42 2004-11-25-15.18.17.018574
DGDB0317 36 2010-03-05-15.50.28.944976
DGDB0319 57 2004-10-27-10.37.46.607315
DGDB0320 42 2004-10-27-10.37.47.417532
DGDB0321 48 2004-10-27-10.37.48.446302
DGDB0322 111 2004-10-27-10.37.49.957114
DGDB0323 48 2007-08-29-15.03.45.341618
DGDB0324 39 2011-06-09-11.12.50.962332
DGDB0325 9 2004-10-27-10.37.51.070278
DGDB0326 46 2007-06-08-12.42.42.737442
DGDB0327 12 2011-01-31-13.38.16.901852
DGDB0328 6 2004-10-27-10.37.51.987275
DGDB0329 36 2011-12-29-15.47.21.565017
DGDB0330 260 2004-10-27-10.38.06.389515
DGDB0331 20 2004-12-29-11.24.35.814504
DGDB0332 145 2004-10-27-10.38.18.950946
DGDB0334 26 2004-10-27-10.38.20.840649
DGDB0336 41 2011-01-31-13.22.20.144663
DGDB0337 23 2010-03-05-15.53.42.060703
DGDB0338 20 2006-11-03-09.17.17.281054
DGDB0339 163 2010-05-11-12.02.39.073483
DGDB0340 48 2006-08-22-15.43.55.718488
DGDB0341 23 2007-10-09-13.06.32.319986
DGDB0342 166 2005-10-18-16.50.49.693781
DGDB0343 51 2004-10-27-10.38.52.739428
DGDB0344 47 2004-10-27-10.38.54.194384
DGDB0346 13 2005-07-12-11.28.55.165917
DGDB0348 27 2004-10-27-10.39.16.348035
DGDB0349 32 2009-04-03-13.41.43.533715
DGDB0351 188 2012-02-23-13.02.25.753177
DGDB0352 9 2005-03-01-09.24.30.322573
DGDB0354 130 2012-04-10-12.24.27.906766
DGDB0358 49 2010-10-18-16.37.47.140905
DGDB0359 176 2012-02-16-15.28.38.250825
DGDB0360 23 2012-02-16-15.39.32.680807
DGDB0361 4 2004-10-27-10.45.55.286884
DGDB0362 183 2007-11-08-10.54.38.483692
DGDB0363 24 2005-03-04-12.58.24.634911
DGDB0364 105 2004-10-27-10.46.06.076344
DGDB0365 62 2010-03-30-10.33.31.788061
DGDB0366 140 2006-08-11-16.05.44.163608
DGDB0368 10 2012-02-24-15.12.26.189389
DGDB0369 59 2004-12-07-14.12.33.241170
DGDB0370 2 2007-01-30-15.24.18.000563
DGDB0371 36 2006-08-03-14.24.35.904079
DGDB0372 15 2005-06-01-17.07.03.460778
DGDB0373 51 2006-05-09-15.29.40.469475
DGDB0374 196 2011-08-31-17.10.49.928103
DGDB0375 2 2004-10-27-10.48.08.689781
DGDB0376 181 2010-09-29-14.05.30.417429
DGDB0378 12 2005-11-10-11.55.59.849415
DGDB0380 24 2010-02-10-11.37.58.389299
DGDB0381 32 2011-09-13-18.12.47.849518
DGDB0383 21 2007-04-03-18.43.48.575619
DGDB0384 110 2011-09-20-12.27.03.548968
DGDB0385 21 2006-05-09-16.03.41.066883
DGDB0386 37 2006-05-18-14.03.34.184573
DGDB0387 8 2006-01-12-12.57.56.183975
DGDB0388 78 2011-04-20-17.29.21.080223
DGDB0389 176 2011-09-20-15.39.51.976393
DGDB0390 29 2005-10-05-08.57.04.766439
DGDB0391 27 2005-08-25-11.23.21.295470
DGDB0392 36 2010-11-30-09.41.05.588493
DGDB0394 12 2005-05-24-17.53.44.644243
DGDB0395 297 2011-06-09-16.32.36.818613
DGDB0396 57 2011-07-05-14.42.35.712514
DGDB0399 22 2012-04-13-14.30.31.758354
DGDB0400 24 2008-09-05-12.41.37.447612
DGDB0401 84 2011-08-18-14.17.50.966395
DGDB0402 62 2011-04-05-07.22.13.038016
DGDB0403 12 2007-08-02-15.01.49.279712
DGDB0404 51 2005-09-19-11.51.05.491506
DGDB0405 14 2011-11-28-16.16.09.744385
DGDB0406 48 2005-06-08-13.53.30.572456
DGDB0412 220 2011-11-07-13.49.18.749770
DGDB0416 11 2005-10-10-13.35.03.891626
DGDB0417 9 2005-08-10-15.21.24.767924
DGDB0418 26 2008-01-07-13.16.34.910529
DGDB0419 4 2011-03-25-12.47.40.552238
DGDB0420 65 2011-10-11-14.19.07.782165
DGDB0421 11 2009-07-03-13.33.38.613923
DGDB0423 8 2008-01-10-14.50.37.984697
DGDB0424 216 2012-04-13-13.40.37.250468
DGDB0426 314 2007-11-19-11.35.16.571883
DGDB0431 206 2011-11-11-11.06.18.557060
DGDB0432 206 2011-11-11-11.06.18.953307
DGDB0433 175 2011-11-11-11.06.19.338967
DGDB0434 175 2011-11-11-11.06.19.811567
DGDB0435 175 2011-11-11-11.06.20.149377
DGDB0436 175 2011-11-11-11.06.20.614490
DGDB0439 125 2011-12-23-10.46.26.050337
DGDB0441 61 2007-04-10-17.01.59.786020
DGDB0442 68 2007-12-05-11.22.07.796985
DGDB0443 23 2006-06-21-12.01.49.732236
DGDB0444 12 2008-06-26-13.56.23.725837
DGDB0446 47 2010-11-25-11.01.16.065087
DGDB0448 3 2006-11-07-13.48.38.391975
DGDB0449 10 2007-02-22-18.21.36.616246
DGDB0450 36 2011-01-06-00.05.31.564479
DGDB0451 45 2006-10-02-13.22.51.890066
DGDB0452 54 2007-07-06-15.35.21.362996
DGDB0454 15 2007-02-27-15.07.23.973506
DGDB0455 14 2007-03-06-12.10.47.308374
DGDB0456 11 2007-03-06-12.12.25.339149
DGDB0457 12 2007-02-06-13.05.57.831276
DGDB0460 175 2011-11-11-11.06.20.951273
DGDB0463 19 2011-05-26-08.14.11.538447
DGDB0466 106 2010-06-17-12.03.20.687745
DGDB0467 99 2011-07-14-08.53.42.802215
DGDB0468 63 2012-01-09-10.38.16.942277
DGDB0470 6 2008-01-14-13.19.17.936519
DGDB0471 1 2007-04-05-08.09.21.530616
DGDB0472 91 2011-12-15-10.33.00.293887
DGDB0473 57 2011-04-04-17.19.32.307455
DGDB0474 36 2012-02-27-13.52.12.774518
DGDB0475 23 2007-06-26-13.46.14.204488
DGDB0476 16 2012-03-29-12.07.04.466512
DGDB0478 277 2010-05-15-09.25.09.288955
DGDB0479 277 2011-11-04-10.16.27.336216
DGDB0480 43 2010-09-17-18.08.08.876526
DGDB0481 9 2007-09-26-15.51.50.914007
DGDB0482 169 2012-03-07-11.27.46.542459
DGDB0483 3 2008-09-01-09.33.39.312408
DGDB0484 36 2008-09-08-10.01.03.725452
DGDB0485 65 2012-02-08-13.58.37.250580
DGDB0486 213 2012-04-03-11.06.33.703349
DGDB0494 24 2009-06-16-14.33.13.522117
DGDB0495 175 2011-11-11-11.06.21.269834
DGDB0496 175 2011-11-11-11.06.21.620887
DGDB0497 175 2011-11-11-11.06.21.993914
DGDB0498 175 2011-11-11-11.06.22.390687
DGDB0499 38 2010-09-24-15.16.39.934793
DGDB0500 152 2011-01-14-15.36.57.314514
DGDB0501 4 2009-02-04-13.13.45.476435
DGDB0502 6 2009-05-04-12.22.26.732774
DGDB0503 46 2010-11-26-14.51.58.901951
DGDB0504 352 2008-09-29-18.11.51.855204
DGDB0505 52 2011-02-21-18.04.00.438971
DGDB0506 192 2011-12-02-11.42.24.425738
DGDB0509 22 2008-10-06-14.23.27.354520
DGDB0510 18 2008-10-17-15.45.38.642431
DGDB0511 3 2008-11-11-19.19.50.921896
DGDB0513 9 2008-10-16-10.34.43.834006
DGDB0514 44 2011-07-01-09.53.45.583816
DGDB0515 59 2009-06-02-09.39.32.305035
DGDB0516 36 2011-10-27-11.02.46.180128
DGDB0517 5 2008-12-17-14.51.44.330750
DGDB0518 10 2011-08-03-09.49.50.966829
DGDB0519 90 2011-09-22-13.28.20.262347
DGDB0520 175 2011-11-11-11.06.22.757670
DGDB0521 175 2011-11-11-11.06.23.329570
DGDB0522 26 2010-02-26-13.33.41.444428
DGDB0523 7 2010-02-25-09.51.34.640754
DGDB0524 102 2010-11-16-12.44.38.747763
DGDB0525 12 2010-02-02-11.30.57.909044
DGDB0526 2 2010-03-09-09.01.29.460049
DGDB0527 5 2010-09-03-12.45.17.717523
DGDB0528 109 2012-04-13-15.22.09.442700
DGDB0530 4 2010-07-02-15.47.56.155215
DGDB0531 3 2010-09-23-13.08.55.621643
DGDB0532 41 2012-03-21-14.27.34.410053
DGDB0535 6 2012-03-05-18.56.40.857804
DGDB0537 9 2011-12-23-11.50.25.850467
DGDB0544 75 2012-04-04-08.14.10.385242
DGDB0545 11 2012-02-10-11.16.01.047999
DGDB0546 35 2012-02-07-07.56.45.853935
DGDB0547 4 2012-03-28-15.36.32.255944
DGDB0549 25 2012-04-19-11.10.51.095930
DGDB0550 222 2012-04-11-10.19.41.648048
DGDB0637 23 2008-05-14-13.57.46.949266
DGDB0638 32 2011-08-23-16.05.12.759488
DGDB0639 52 2012-01-12-17.46.02.351192
DGDB0668 38 2006-07-07-13.57.03.529288
DGDB0669 34 2007-02-16-10.51.37.229471
DGDB0670 4 2007-02-16-10.51.30.970612
DGDB0671 119 2012-03-14-01.44.21.325314
DGDB0672 8 2009-09-30-17.20.42.593724
DGDB0673 417 2011-11-21-07.49.01.349758
DGDB0674 16 2012-01-23-16.19.46.217184
DGDB0675 24 2011-12-23-13.41.31.721097
DGDB0676 24 2011-12-23-13.42.18.336935
DGDB0677 24 2011-12-23-13.45.13.116665
DGDB0678 24 2011-12-23-13.38.40.186996
DGDB0679 20 2012-04-13-11.35.52.553230
DGDB0680 9 2012-02-03-13.34.57.714327
DGDB0681 64 2012-02-07-13.58.45.450658
DGDB0999 3 2006-08-02-17.04.48.795859
DGDB6663 84 2008-12-16-11.00.34.036780
DGDB9991 3 2010-03-10-17.51.18.864416
DGDB9992 3 2010-03-10-17.51.20.104435
DGDB9993 3 2010-03-10-17.51.21.415808
DGDB9996 15 2012-03-14-16.20.29.519115
DGDB9997 24 2009-10-21-16.03.17.745454
DGDB9998 331 2012-04-17-11.18.48.221102
DGDB9999 25 2005-06-02-12.56.05.901310
DGOCB130 195 2008-01-11-13.10.57.152269
DGOCF101 217 2003-10-02-11.52.21.535732
DGOCF102 96 2002-05-27-10.09.04.384760
DGOCK310 61 2003-08-18-19.35.03.473574
DGOKB701 34 2006-03-07-13.10.56.348447
DGOMA24N 2 2004-10-29-11.15.54.055296
DGOMM700 125 2003-08-18-19.35.05.963203
DGOWA200 54 2010-08-18-16.12.20.421306
DGOWB420 25 2011-05-31-15.58.01.748775
DGOWD501 36 2011-09-14-09.35.44.132928
DGOWD502 32 2011-09-13-18.01.39.070889
DGOWD503 10 2010-04-29-10.25.04.876989
DGOWD504 16 2010-04-29-12.19.53.240238
DGOWD600 97 2012-03-27-09.24.03.252276
DGOWD700 35 2004-10-28-10.26.00.904484
DGOWM200 4 2004-10-28-10.26.01.000641
DGOWM301 369 2010-10-25-13.40.35.625293
DSN8DA1X 27 2012-04-03-13.11.17.644146
DXB03A1X 629 2012-04-03-08.55.56.154808
DXB04A1X 50 2009-12-15-18.24.16.145724
DXB05A1X 116 2009-03-04-09.01.13.643837
DXB07A1X 129 2011-03-28-14.58.08.134166
ED06A1X 7 2009-08-28-15.38.57.030399
EL01A1X 89 2011-08-18-09.39.17.820486
EU02A1X 5 2010-07-02-11.08.17.078666
KT01A1X 5 2010-07-02-11.12.19.036057
RG01A1X 6 2009-06-18-14.43.25.871094
SV30A1X 45 2010-11-04-11.13.35.516893
SV31A1X 31 2011-05-18-10.36.35.986528
TG01A1X 61 2012-04-02-14.59.27.053202
VV21A1X 412 2012-04-10-11.37.08.065762
VV22A1X 196 2012-02-06-11.55.49.598181
VV23A1X 414 2012-04-10-11.37.08.065762
VV24A1X 385 2012-04-10-11.37.08.065762
VV25A1X 158 2012-04-10-12.44.58.385957
VV26A1X 190 2011-12-04-11.53.07.423236
VV27A1X 197 2012-04-10-12.40.42.540084
VV28A1X 193 2012-04-10-12.40.42.818874
VV29A1X 105 2012-04-04-14.12.34.285387
WG01A1X 132 2010-12-07-11.45.46.327279
430 rows fetched: with d as ( select name db from sysibm.sysDatabase where...
$#out 20120419 16:24:36
*** run error ***
unclosed ' string: where name like 'DG%' or name like '%A1X%
$#out 20120419 15:41:12
DB OL2 COL3
DGDB0008 153 2008-03-14-13.04.33.490511
DGDB0009 9 2004-10-26-15.13.54.114580
DGDB0015 201 2012-03-29-12.45.42.624562
DGDB0031 60 2007-07-25-07.17.23.210039
DGDB0033 6 2004-10-26-15.13.58.488538
DGDB0035 21 2007-06-22-13.26.09.175553
DGDB0039 36 2006-05-19-14.17.02.071896
DGDB0041 46 2004-10-26-15.14.09.759890
DGDB0042 3 2004-10-26-15.14.09.826515
DGDB0044 4 2004-10-26-15.14.09.914919
DGDB0047 5 2004-10-26-15.14.12.791258
DGDB0049 13 2010-07-29-15.27.33.622954
DGDB0052 378 2006-09-08-10.13.08.350741
DGDB0056 6 2004-10-26-15.14.49.340828
DGDB0057 152 2010-06-25-10.55.07.240600
DGDB0058 77 2009-02-16-16.24.51.053775
DGDB0059 34 2008-12-23-12.47.57.841673
DGDB0060 121 2009-04-21-07.25.35.986757
DGDB0061 8 2004-10-26-15.15.04.437668
DGDB0062 49 2010-04-22-13.19.16.615883
DGDB0065 39 2004-10-26-15.15.20.634315
DGDB0067 75 2011-09-27-15.04.49.189528
DGDB0072 90 2008-01-17-18.27.15.263195
DGDB0074 228 2004-10-26-15.15.43.907806
DGDB0078 74 2008-04-22-11.08.37.492940
DGDB0080 27 2004-10-26-15.15.53.616592
DGDB0082 145 2004-10-26-15.16.16.107311
DGDB0084 571 2008-10-30-17.23.26.248352
DGDB0085 6 2004-10-26-15.16.45.326968
DGDB0086 3 2004-10-26-15.16.45.450493
DGDB0088 26 2011-01-12-14.58.17.403487
DGDB0089 4 2004-10-26-15.16.46.747597
DGDB0090 24 2007-07-10-13.33.01.985987
DGDB0091 57 2009-07-31-16.24.24.282235
DGDB0093 18 2004-10-26-15.17.05.688324
DGDB0094 51 2004-10-26-15.17.07.479274
DGDB0095 18 2004-10-26-15.17.07.906538
DGDB0098 3 2004-10-26-15.17.08.024597
DGDB0103 52 2005-08-23-15.04.51.695020
DGDB0104 89 2011-03-07-11.24.47.409982
DGDB0105 146 2006-05-09-15.29.38.403093
DGDB0106 112 2012-02-06-15.47.39.861403
DGDB0110 25 2011-02-02-13.45.07.510254
DGDB0112 688 2012-02-16-11.41.10.222958
DGDB0113 258 2012-01-12-17.24.32.566470
DGDB0120 338 2011-09-22-08.37.30.692568
DGDB0121 21 2012-03-06-15.01.59.414022
DGDB0125 37 2009-11-18-13.37.33.681197
DGDB0129 12 2004-10-26-15.43.54.433882
DGDB0130 24 2004-11-03-11.12.47.882202
DGDB0131 49 2011-11-01-08.45.13.650123
DGDB0132 9 2006-10-03-18.07.12.156178
DGDB0133 371 2012-04-10-15.19.08.010289
DGDB0135 78 2010-12-15-10.44.14.150780
DGDB0136 192 2011-09-23-12.40.35.137113
DGDB0137 191 2012-04-12-10.51.12.318909
DGDB0139 92 2006-09-08-10.15.11.761270
DGDB0140 120 2010-04-08-11.28.21.175572
DGDB0141 21 2006-09-05-18.21.37.237084
DGDB0142 75 2009-03-06-11.40.05.708110
DGDB0143 49 2004-10-26-15.46.50.593341
DGDB0144 4 2004-10-26-15.46.50.627553
DGDB0145 25 2006-05-09-15.29.38.740267
DGDB0151 40 2010-08-17-10.26.47.966178
DGDB0153 44 2012-04-17-11.42.11.416017
DGDB0154 113 2007-04-26-14.52.26.375676
DGDB0155 96 2011-11-07-10.00.24.371112
DGDB0156 146 2012-02-13-18.17.12.526169
DGDB0159 2 2004-10-26-15.47.54.862251
DGDB0162 37 2010-03-01-13.34.58.807827
DGDB0166 45 2009-06-24-10.11.34.524267
DGDB0167 165 2004-10-26-15.48.12.096602
DGDB0168 65 2011-03-02-13.22.04.943211
DGDB0169 43 2010-06-17-08.44.11.264635
DGDB0171 56 2012-03-26-09.49.28.897080
DGDB0173 350 2010-02-24-13.44.34.529229
DGDB0174 8 2011-11-16-12.03.38.194573
DGDB0175 47 2004-10-26-15.49.17.533858
DGDB0177 38 2004-10-26-15.50.02.498005
DGDB0178 186 2011-08-15-13.52.20.151219
DGDB0179 173 2010-05-28-11.32.55.602101
DGDB0180 15 2004-10-26-15.50.50.978297
DGDB0181 23 2007-02-27-11.06.10.205960
DGDB0182 12 2004-10-26-15.50.51.737228
DGDB0183 367 2012-03-06-14.14.38.800727
DGDB0185 10 2004-10-26-15.50.57.210769
DGDB0186 26 2007-10-01-07.39.03.571013
DGDB0187 172 2008-05-06-22.33.40.942777
DGDB0189 140 2012-04-19-15.10.21.608464
DGDB0192 126 2012-01-30-12.36.00.752766
DGDB0193 141 2008-01-15-16.26.26.452125
DGDB0194 17 2008-12-19-14.13.25.529939
DGDB0195 11 2004-10-26-15.52.05.192138
DGDB0196 76 2012-02-21-16.04.41.114114
DGDB0200 310 2004-10-27-10.25.57.753074
DGDB0201 22 2007-04-13-17.31.09.157936
DGDB0202 241 2012-02-13-18.19.03.741293
DGDB0203 40 2012-02-28-09.52.36.737259
DGDB0205 10 2004-10-27-10.26.32.469902
DGDB0206 22 2004-10-27-10.26.34.590578
DGDB0207 237 2011-04-28-15.56.57.412443
DGDB0209 12 2004-10-27-10.26.39.896668
DGDB0211 105 2011-02-03-16.43.44.123978
DGDB0212 27 2006-09-08-10.35.00.000617
DGDB0213 251 2012-04-11-13.28.46.995190
DGDB0214 5 2004-10-27-10.26.51.819135
DGDB0215 9 2004-10-27-10.26.52.282957
DGDB0217 199 2012-01-11-15.16.53.415090
DGDB0218 65 2009-10-01-15.48.29.999826
DGDB0220 6 2006-11-08-13.03.57.222846
DGDB0222 159 2004-10-27-10.27.15.092403
DGDB0223 107 2011-12-13-12.48.31.089270
DGDB0224 27 2009-06-17-13.09.50.284614
DGDB0226 60 2006-06-08-15.44.50.793406
DGDB0227 15 2008-10-21-10.34.03.396936
DGDB0228 187 2011-12-15-13.29.03.118489
DGDB0231 41 2006-12-13-10.05.01.238523
DGDB0232 17 2009-04-02-14.54.06.617324
DGDB0235 279 2011-08-23-12.15.47.899057
DGDB0236 17 2006-08-17-10.44.37.822719
DGDB0237 330 2012-03-26-15.15.02.794184
DGDB0238 33 2006-09-08-10.40.16.350739
DGDB0239 47 2011-11-29-13.05.21.939649
DGDB0241 78 2012-03-01-07.57.16.326406
DGDB0242 53 2004-10-27-10.29.15.688356
DGDB0243 4 2001-07-04-15.24.14.921785
DGDB0244 102 2011-03-17-13.11.56.616841
DGDB0247 83 2010-09-01-11.15.27.735671
DGDB0248 4 2004-10-27-10.29.23.052453
DGDB0254 149 2006-07-12-16.35.49.369482
DGDB0255 6 2009-06-11-08.44.03.203655
DGDB0256 19 2011-09-06-15.28.09.229664
DGDB0257 59 2011-09-06-15.29.42.960811
DGDB0258 20 2009-09-29-15.19.57.611661
DGDB0260 17 2009-06-25-08.22.17.297017
DGDB0261 5 2009-06-25-08.23.28.423606
DGDB0262 5 2009-06-25-08.25.18.112304
DGDB0263 35 2004-10-27-10.29.41.195829
DGDB0264 9 2004-10-27-10.29.41.877308
DGDB0265 76 2012-03-16-09.46.15.968614
DGDB0266 20 2007-11-26-08.14.38.947415
DGDB0268 51 2007-05-31-10.41.51.640387
DGDB0269 16 2004-10-27-10.29.57.644724
DGDB0272 45 2004-10-27-10.30.13.604279
DGDB0273 37 2011-11-28-10.57.30.181899
DGDB0274 6 2006-09-08-10.40.29.777600
DGDB0275 221 2012-04-13-08.50.28.813048
DGDB0276 30 2011-02-15-07.53.02.085361
DGDB0277 2 2004-10-27-10.30.16.265751
DGDB0278 32 2004-10-27-10.30.17.040738
DGDB0279 25 2005-08-22-10.08.55.624049
DGDB0281 171 2008-07-21-14.31.34.649556
DGDB0282 27 2012-04-14-11.40.20.325701
DGDB0283 71 2010-02-10-14.19.39.422838
DGDB0284 7 2009-06-25-07.31.45.485555
DGDB0285 31 2009-11-18-13.24.14.262770
DGDB0286 44 2012-01-06-06.41.49.700114
DGDB0287 30 2011-01-26-14.51.07.826564
DGDB0288 33 2007-12-21-13.07.55.406211
DGDB0289 11 2007-05-24-15.42.08.563298
DGDB0290 287 2012-01-05-09.39.36.559408
DGDB0291 8 2012-02-14-10.45.10.650668
DGDB0292 44 2011-08-25-15.45.12.998437
DGDB0295 43 2004-10-27-11.06.06.170413
DGDB0296 51 2009-12-02-14.26.17.948619
DGDB0297 4 2004-10-27-11.06.07.558401
DGDB0300 34 2006-04-27-14.26.20.464157
DGDB0308 26 2004-10-27-10.37.34.302559
DGDB0309 5 2004-10-27-10.37.34.405394
DGDB0310 29 2004-10-27-10.37.34.983835
DGDB0311 46 2004-10-27-10.37.35.686834
DGDB0312 44 2004-10-27-10.37.36.700587
DGDB0313 4 2004-10-27-10.37.36.761966
DGDB0315 87 2007-11-21-07.34.14.982034
DGDB0316 42 2004-11-25-15.18.17.018574
DGDB0317 36 2010-03-05-15.50.28.944976
DGDB0319 57 2004-10-27-10.37.46.607315
DGDB0320 42 2004-10-27-10.37.47.417532
DGDB0321 48 2004-10-27-10.37.48.446302
DGDB0322 111 2004-10-27-10.37.49.957114
DGDB0323 48 2007-08-29-15.03.45.341618
DGDB0324 39 2011-06-09-11.12.50.962332
DGDB0325 9 2004-10-27-10.37.51.070278
DGDB0326 46 2007-06-08-12.42.42.737442
DGDB0327 12 2011-01-31-13.38.16.901852
DGDB0328 6 2004-10-27-10.37.51.987275
DGDB0329 36 2011-12-29-15.47.21.565017
DGDB0330 260 2004-10-27-10.38.06.389515
DGDB0331 20 2004-12-29-11.24.35.814504
DGDB0332 145 2004-10-27-10.38.18.950946
DGDB0334 26 2004-10-27-10.38.20.840649
DGDB0336 41 2011-01-31-13.22.20.144663
DGDB0337 23 2010-03-05-15.53.42.060703
DGDB0338 20 2006-11-03-09.17.17.281054
DGDB0339 163 2010-05-11-12.02.39.073483
DGDB0340 48 2006-08-22-15.43.55.718488
DGDB0341 23 2007-10-09-13.06.32.319986
DGDB0342 166 2005-10-18-16.50.49.693781
DGDB0343 51 2004-10-27-10.38.52.739428
DGDB0344 47 2004-10-27-10.38.54.194384
DGDB0346 13 2005-07-12-11.28.55.165917
DGDB0348 27 2004-10-27-10.39.16.348035
DGDB0349 32 2009-04-03-13.41.43.533715
DGDB0351 188 2012-02-23-13.02.25.753177
DGDB0352 9 2005-03-01-09.24.30.322573
DGDB0354 130 2012-04-10-12.24.27.906766
DGDB0358 49 2010-10-18-16.37.47.140905
DGDB0359 176 2012-02-16-15.28.38.250825
DGDB0360 23 2012-02-16-15.39.32.680807
DGDB0361 4 2004-10-27-10.45.55.286884
DGDB0362 183 2007-11-08-10.54.38.483692
DGDB0363 24 2005-03-04-12.58.24.634911
DGDB0364 105 2004-10-27-10.46.06.076344
DGDB0365 62 2010-03-30-10.33.31.788061
DGDB0366 140 2006-08-11-16.05.44.163608
DGDB0368 10 2012-02-24-15.12.26.189389
DGDB0369 59 2004-12-07-14.12.33.241170
DGDB0370 2 2007-01-30-15.24.18.000563
DGDB0371 36 2006-08-03-14.24.35.904079
DGDB0372 15 2005-06-01-17.07.03.460778
DGDB0373 51 2006-05-09-15.29.40.469475
DGDB0374 196 2011-08-31-17.10.49.928103
DGDB0375 2 2004-10-27-10.48.08.689781
DGDB0376 181 2010-09-29-14.05.30.417429
DGDB0378 12 2005-11-10-11.55.59.849415
DGDB0380 24 2010-02-10-11.37.58.389299
DGDB0381 32 2011-09-13-18.12.47.849518
DGDB0383 21 2007-04-03-18.43.48.575619
DGDB0384 110 2011-09-20-12.27.03.548968
DGDB0385 21 2006-05-09-16.03.41.066883
DGDB0386 37 2006-05-18-14.03.34.184573
DGDB0387 8 2006-01-12-12.57.56.183975
DGDB0388 78 2011-04-20-17.29.21.080223
DGDB0389 176 2011-09-20-15.39.51.976393
DGDB0390 29 2005-10-05-08.57.04.766439
DGDB0391 27 2005-08-25-11.23.21.295470
DGDB0392 36 2010-11-30-09.41.05.588493
DGDB0394 12 2005-05-24-17.53.44.644243
DGDB0395 297 2011-06-09-16.32.36.818613
DGDB0396 57 2011-07-05-14.42.35.712514
DGDB0399 22 2012-04-13-14.30.31.758354
DGDB0400 24 2008-09-05-12.41.37.447612
DGDB0401 84 2011-08-18-14.17.50.966395
DGDB0402 62 2011-04-05-07.22.13.038016
DGDB0403 12 2007-08-02-15.01.49.279712
DGDB0404 51 2005-09-19-11.51.05.491506
DGDB0405 14 2011-11-28-16.16.09.744385
DGDB0406 48 2005-06-08-13.53.30.572456
DGDB0412 220 2011-11-07-13.49.18.749770
DGDB0416 11 2005-10-10-13.35.03.891626
DGDB0417 9 2005-08-10-15.21.24.767924
DGDB0418 26 2008-01-07-13.16.34.910529
DGDB0419 4 2011-03-25-12.47.40.552238
DGDB0420 65 2011-10-11-14.19.07.782165
DGDB0421 11 2009-07-03-13.33.38.613923
DGDB0423 8 2008-01-10-14.50.37.984697
DGDB0424 216 2012-04-13-13.40.37.250468
DGDB0426 314 2007-11-19-11.35.16.571883
DGDB0431 206 2011-11-11-11.06.18.557060
DGDB0432 206 2011-11-11-11.06.18.953307
DGDB0433 175 2011-11-11-11.06.19.338967
DGDB0434 175 2011-11-11-11.06.19.811567
DGDB0435 175 2011-11-11-11.06.20.149377
DGDB0436 175 2011-11-11-11.06.20.614490
DGDB0439 125 2011-12-23-10.46.26.050337
DGDB0441 61 2007-04-10-17.01.59.786020
DGDB0442 68 2007-12-05-11.22.07.796985
DGDB0443 23 2006-06-21-12.01.49.732236
DGDB0444 12 2008-06-26-13.56.23.725837
DGDB0446 47 2010-11-25-11.01.16.065087
DGDB0448 3 2006-11-07-13.48.38.391975
DGDB0449 10 2007-02-22-18.21.36.616246
DGDB0450 36 2011-01-06-00.05.31.564479
DGDB0451 45 2006-10-02-13.22.51.890066
DGDB0452 54 2007-07-06-15.35.21.362996
DGDB0454 15 2007-02-27-15.07.23.973506
DGDB0455 14 2007-03-06-12.10.47.308374
DGDB0456 11 2007-03-06-12.12.25.339149
DGDB0457 12 2007-02-06-13.05.57.831276
DGDB0460 175 2011-11-11-11.06.20.951273
DGDB0463 19 2011-05-26-08.14.11.538447
DGDB0466 106 2010-06-17-12.03.20.687745
DGDB0467 99 2011-07-14-08.53.42.802215
DGDB0468 63 2012-01-09-10.38.16.942277
DGDB0470 6 2008-01-14-13.19.17.936519
DGDB0471 1 2007-04-05-08.09.21.530616
DGDB0472 91 2011-12-15-10.33.00.293887
DGDB0473 57 2011-04-04-17.19.32.307455
DGDB0474 36 2012-02-27-13.52.12.774518
DGDB0475 23 2007-06-26-13.46.14.204488
DGDB0476 16 2012-03-29-12.07.04.466512
DGDB0478 277 2010-05-15-09.25.09.288955
DGDB0479 277 2011-11-04-10.16.27.336216
DGDB0480 43 2010-09-17-18.08.08.876526
DGDB0481 9 2007-09-26-15.51.50.914007
DGDB0482 169 2012-03-07-11.27.46.542459
DGDB0483 3 2008-09-01-09.33.39.312408
DGDB0484 36 2008-09-08-10.01.03.725452
DGDB0485 65 2012-02-08-13.58.37.250580
DGDB0486 213 2012-04-03-11.06.33.703349
DGDB0494 24 2009-06-16-14.33.13.522117
DGDB0495 175 2011-11-11-11.06.21.269834
DGDB0496 175 2011-11-11-11.06.21.620887
DGDB0497 175 2011-11-11-11.06.21.993914
DGDB0498 175 2011-11-11-11.06.22.390687
DGDB0499 38 2010-09-24-15.16.39.934793
DGDB0500 152 2011-01-14-15.36.57.314514
DGDB0501 4 2009-02-04-13.13.45.476435
DGDB0502 6 2009-05-04-12.22.26.732774
DGDB0503 46 2010-11-26-14.51.58.901951
DGDB0504 352 2008-09-29-18.11.51.855204
DGDB0505 52 2011-02-21-18.04.00.438971
DGDB0506 192 2011-12-02-11.42.24.425738
DGDB0509 22 2008-10-06-14.23.27.354520
DGDB0510 18 2008-10-17-15.45.38.642431
DGDB0511 3 2008-11-11-19.19.50.921896
DGDB0513 9 2008-10-16-10.34.43.834006
DGDB0514 44 2011-07-01-09.53.45.583816
DGDB0515 59 2009-06-02-09.39.32.305035
DGDB0516 36 2011-10-27-11.02.46.180128
DGDB0517 5 2008-12-17-14.51.44.330750
DGDB0518 10 2011-08-03-09.49.50.966829
DGDB0519 90 2011-09-22-13.28.20.262347
DGDB0520 175 2011-11-11-11.06.22.757670
DGDB0521 175 2011-11-11-11.06.23.329570
DGDB0522 26 2010-02-26-13.33.41.444428
DGDB0523 7 2010-02-25-09.51.34.640754
DGDB0524 102 2010-11-16-12.44.38.747763
DGDB0525 12 2010-02-02-11.30.57.909044
DGDB0526 2 2010-03-09-09.01.29.460049
DGDB0527 5 2010-09-03-12.45.17.717523
DGDB0528 109 2012-04-13-15.22.09.442700
DGDB0530 4 2010-07-02-15.47.56.155215
DGDB0531 3 2010-09-23-13.08.55.621643
DGDB0532 41 2012-03-21-14.27.34.410053
DGDB0535 6 2012-03-05-18.56.40.857804
DGDB0537 9 2011-12-23-11.50.25.850467
DGDB0544 75 2012-04-04-08.14.10.385242
DGDB0545 11 2012-02-10-11.16.01.047999
DGDB0546 35 2012-02-07-07.56.45.853935
DGDB0547 4 2012-03-28-15.36.32.255944
DGDB0549 25 2012-04-19-11.10.51.095930
DGDB0550 222 2012-04-11-10.19.41.648048
DGDB0637 23 2008-05-14-13.57.46.949266
DGDB0638 32 2011-08-23-16.05.12.759488
DGDB0639 52 2012-01-12-17.46.02.351192
DGDB0668 38 2006-07-07-13.57.03.529288
DGDB0669 34 2007-02-16-10.51.37.229471
DGDB0670 4 2007-02-16-10.51.30.970612
DGDB0671 119 2012-03-14-01.44.21.325314
DGDB0672 8 2009-09-30-17.20.42.593724
DGDB0673 417 2011-11-21-07.49.01.349758
DGDB0674 16 2012-01-23-16.19.46.217184
DGDB0675 24 2011-12-23-13.41.31.721097
DGDB0676 24 2011-12-23-13.42.18.336935
DGDB0677 24 2011-12-23-13.45.13.116665
DGDB0678 24 2011-12-23-13.38.40.186996
DGDB0679 20 2012-04-13-11.35.52.553230
DGDB0680 9 2012-02-03-13.34.57.714327
DGDB0681 64 2012-02-07-13.58.45.450658
DGDB0999 3 2006-08-02-17.04.48.795859
DGDB6663 84 2008-12-16-11.00.34.036780
DGDB9991 3 2010-03-10-17.51.18.864416
DGDB9992 3 2010-03-10-17.51.20.104435
DGDB9993 3 2010-03-10-17.51.21.415808
DGDB9996 15 2012-03-14-16.20.29.519115
DGDB9997 24 2009-10-21-16.03.17.745454
DGDB9998 331 2012-04-17-11.18.48.221102
DGDB9999 25 2005-06-02-12.56.05.901310
369 rows fetched: with d as ( select name db from sysibm.sysDatabase where...
$#out 20120419 15:39:58
DB OL2 COL3
DGDB0380 24 2010-02-10-11.37.58.389299
DGDB0381 32 2011-09-13-18.12.47.849518
DGDB0383 21 2007-04-03-18.43.48.575619
DGDB0384 110 2011-09-20-12.27.03.548968
DGDB0385 21 2006-05-09-16.03.41.066883
DGDB0386 37 2006-05-18-14.03.34.184573
DGDB0387 8 2006-01-12-12.57.56.183975
DGDB0388 78 2011-04-20-17.29.21.080223
DGDB0389 176 2011-09-20-15.39.51.976393
9 rows fetched: with d as ( select name db from sysibm.sysDatabase where n...
$#out 20120419 15:38:39
DB TY L3 COL4
DGDB0380 T 8 2010-02-10-11.37.58.130586
DGDB0380 V 8 2010-02-10-11.37.58.389299
DGDB0380 ix 8 2010-02-10-11.37.58.182409
DGDB0381 T 7 2011-09-13-18.12.47.849518
DGDB0381 ix 25 2011-03-11-11.14.40.735444
DGDB0383 T 5 2007-03-27-19.45.43.349765
DGDB0383 V 1 2007-04-03-18.43.48.575619
DGDB0383 ix 15 2007-03-27-19.45.44.239856
DGDB0384 T 30 2011-09-20-12.27.03.548968
DGDB0384 V 30 2011-09-20-12.27.03.509150
DGDB0384 ix 50 2011-09-20-12.27.03.250716
DGDB0385 T 5 2006-01-31-14.41.21.042825
DGDB0385 V 8 2006-05-09-16.03.41.066883
DGDB0385 ix 8 2006-01-31-14.41.21.182119
DGDB0386 T 9 2005-07-12-18.18.49.591562
DGDB0386 V 9 2005-07-12-18.18.49.565084
DGDB0386 ix 19 2006-05-18-14.03.34.184573
DGDB0387 T 2 2005-05-26-17.14.59.864175
DGDB0387 V 2 2005-05-26-17.15.01.494312
DGDB0387 ix 4 2006-01-12-12.57.56.183975
DGDB0388 T 28 2011-04-20-17.29.18.870285
DGDB0388 V 3 2008-04-23-09.00.49.671155
DGDB0388 ix 47 2011-04-20-17.29.21.080223
DGDB0389 T 46 2011-09-20-15.39.51.557962
DGDB0389 V 31 2011-06-17-16.03.25.380888
DGDB0389 ix 99 2011-09-20-15.39.51.976393
26 rows fetched: with d as ( select name db from sysibm.sysDatabase where ...
$#out 20120419 15:38:11
DB TY L3 COL4
DGDB0389 T 46 2011-09-20-15.39.51.557962
DGDB0389 V 31 2011-06-17-16.03.25.380888
DGDB0389 ix 99 2011-09-20-15.39.51.976393
3 rows fetched: with d as ( select name db from sysibm.sysDatabase where n...
$#out 20120419 15:37:51
*** run error ***
SQLCODE = -206: AT IS NOT VALID IN THE CONTEXT WHERE IT IS
USED
stmt = prepare s10 into :M.SQL.10.D from :src
with into :M.SQL.10.D = M.SQL.10.D
from :src = with d as
$#out 20120419 15:37:22
*** run error ***
SQLCODE = -206: DB IS NOT VALID IN THE CONTEXT WHERE IT IS
USED
stmt = prepare s10 into :M.SQL.10.D from :src
with into :M.SQL.10.D = M.SQL.10.D
from :src = with d as
$#out 20120419 15:34:48
*** run error ***
SQLCODE = -421: THE OPERANDS OF A SET OPERATOR DO NOT HAVE
THE SAME NUMBER OF COLUMNS
stmt = prepare s10 into :M.SQL.10.D from :src
with into :M.SQL.10.D = M.SQL.10.D
from :src = with d as
$#out 20120419 15:33:22
*** run error ***
SQLCODE = -122: COLUMN OR EXPRESSION IN THE SELECT LIST IS
NOT VALID
stmt = prepare s10 into :M.SQL.10.D from :src
with into :M.SQL.10.D = M.SQL.10.D
from :src = with d as
$#out 20120419 15:30:21
CO L2 COL3
T 46 2011-09-20-15.39.51.557962
V 31 2011-06-17-16.03.25.380888
ix 99 2011-09-20-15.39.51.976393
3 rows fetched: with d as ( select name db from sysibm.sysDatabase where n...
$#out 20120419 15:30:04
CO 2 COL
ix 0 ---
1 rows fetched: with d as ( select name db from sysibm.sysDatabase where n...
$#out 20120419 15:28:08
}¢--- A540769.WK.SQL(CATDBAL1) cre=2012-04-19 mod=2012-04-19-16.26.46 A540769 ---
AV01A1X 325 2009-03-06-09.56.13.347096
AV02A1X 29 2009-11-05-15.04.31.233447
AV03A1X 162 2012-02-15-15.56.00.992980
AV04A1X 70 2012-02-15-15.56.20.101081
AV05A1X 30 2011-09-09-16.04.25.659715
AV06A1X 126 2012-02-15-15.56.44.900875
AV07A1X 126 2012-02-15-15.56.56.623324
AV08A1X 126 2012-02-15-15.57.08.237247
AV09A1X 126 2012-02-15-15.57.19.005186
AV10A1X 126 2012-02-15-15.57.29.100327
AV11A1X 126 2012-02-15-15.57.45.244556
AV12A1X 126 2012-02-15-15.57.59.382430
AV13A1X 126 2012-02-15-15.58.18.653586
AV14A1X 126 2012-02-15-15.58.34.142134
AV15A1X 176 2012-03-15-14.59.55.329691
AV16A1X 126 2012-02-15-15.58.50.859737
AV17A1X 126 2012-02-15-15.59.09.054278
AV18A1X 126 2012-02-15-15.59.22.097118
DGDB0008 153 2008-03-14-13.04.33.490511
DGDB0009 9 2004-10-26-15.13.54.114580
DGDB0015 201 2012-03-29-12.45.42.624562
DGDB0031 60 2007-07-25-07.17.23.210039
DGDB0033 6 2004-10-26-15.13.58.488538
DGDB0035 21 2007-06-22-13.26.09.175553
DGDB0039 36 2006-05-19-14.17.02.071896
DGDB0041 46 2004-10-26-15.14.09.759890
DGDB0042 3 2004-10-26-15.14.09.826515
DGDB0044 4 2004-10-26-15.14.09.914919
DGDB0047 5 2004-10-26-15.14.12.791258
DGDB0049 13 2010-07-29-15.27.33.622954
DGDB0052 378 2006-09-08-10.13.08.350741
DGDB0056 6 2004-10-26-15.14.49.340828
DGDB0057 152 2010-06-25-10.55.07.240600
DGDB0058 77 2009-02-16-16.24.51.053775
DGDB0059 34 2008-12-23-12.47.57.841673
DGDB0060 121 2009-04-21-07.25.35.986757
DGDB0061 8 2004-10-26-15.15.04.437668
DGDB0062 49 2010-04-22-13.19.16.615883
DGDB0065 39 2004-10-26-15.15.20.634315
DGDB0067 75 2011-09-27-15.04.49.189528
DGDB0072 90 2008-01-17-18.27.15.263195
DGDB0074 228 2004-10-26-15.15.43.907806
DGDB0078 74 2008-04-22-11.08.37.492940
DGDB0080 27 2004-10-26-15.15.53.616592
DGDB0082 145 2004-10-26-15.16.16.107311
DGDB0084 571 2008-10-30-17.23.26.248352
DGDB0085 6 2004-10-26-15.16.45.326968
DGDB0086 3 2004-10-26-15.16.45.450493
DGDB0088 26 2011-01-12-14.58.17.403487
DGDB0089 4 2004-10-26-15.16.46.747597
DGDB0090 24 2007-07-10-13.33.01.985987
DGDB0091 57 2009-07-31-16.24.24.282235
DGDB0093 18 2004-10-26-15.17.05.688324
DGDB0094 51 2004-10-26-15.17.07.479274
DGDB0095 18 2004-10-26-15.17.07.906538
DGDB0098 3 2004-10-26-15.17.08.024597
DGDB0103 52 2005-08-23-15.04.51.695020
DGDB0104 89 2011-03-07-11.24.47.409982
DGDB0105 146 2006-05-09-15.29.38.403093
DGDB0106 112 2012-02-06-15.47.39.861403
DGDB0110 25 2011-02-02-13.45.07.510254
DGDB0112 688 2012-02-16-11.41.10.222958
DGDB0113 258 2012-01-12-17.24.32.566470
DGDB0120 338 2011-09-22-08.37.30.692568
DGDB0121 21 2012-03-06-15.01.59.414022
DGDB0125 37 2009-11-18-13.37.33.681197
DGDB0129 12 2004-10-26-15.43.54.433882
DGDB0130 24 2004-11-03-11.12.47.882202
DGDB0131 49 2011-11-01-08.45.13.650123
DGDB0132 9 2006-10-03-18.07.12.156178
DGDB0133 371 2012-04-10-15.19.08.010289
DGDB0135 78 2010-12-15-10.44.14.150780
DGDB0136 192 2011-09-23-12.40.35.137113
DGDB0137 191 2012-04-12-10.51.12.318909
DGDB0139 92 2006-09-08-10.15.11.761270
DGDB0140 120 2010-04-08-11.28.21.175572
DGDB0141 21 2006-09-05-18.21.37.237084
DGDB0142 75 2009-03-06-11.40.05.708110
DGDB0143 49 2004-10-26-15.46.50.593341
DGDB0144 4 2004-10-26-15.46.50.627553
DGDB0145 25 2006-05-09-15.29.38.740267
DGDB0151 40 2010-08-17-10.26.47.966178
DGDB0153 44 2012-04-17-11.42.11.416017
DGDB0154 113 2007-04-26-14.52.26.375676
DGDB0155 96 2011-11-07-10.00.24.371112
DGDB0156 146 2012-02-13-18.17.12.526169
DGDB0159 2 2004-10-26-15.47.54.862251
DGDB0162 37 2010-03-01-13.34.58.807827
DGDB0166 45 2009-06-24-10.11.34.524267
DGDB0167 165 2004-10-26-15.48.12.096602
DGDB0168 65 2011-03-02-13.22.04.943211
DGDB0169 43 2010-06-17-08.44.11.264635
DGDB0171 56 2012-03-26-09.49.28.897080
DGDB0173 350 2010-02-24-13.44.34.529229
DGDB0174 8 2011-11-16-12.03.38.194573
DGDB0175 47 2004-10-26-15.49.17.533858
DGDB0177 38 2004-10-26-15.50.02.498005
DGDB0178 186 2011-08-15-13.52.20.151219
DGDB0179 173 2010-05-28-11.32.55.602101
DGDB0180 15 2004-10-26-15.50.50.978297
DGDB0181 23 2007-02-27-11.06.10.205960
DGDB0182 12 2004-10-26-15.50.51.737228
DGDB0183 367 2012-03-06-14.14.38.800727
DGDB0185 10 2004-10-26-15.50.57.210769
DGDB0186 26 2007-10-01-07.39.03.571013
DGDB0187 172 2008-05-06-22.33.40.942777
DGDB0189 140 2012-04-19-15.10.21.608464
DGDB0192 126 2012-01-30-12.36.00.752766
DGDB0193 141 2008-01-15-16.26.26.452125
DGDB0194 17 2008-12-19-14.13.25.529939
DGDB0195 11 2004-10-26-15.52.05.192138
DGDB0196 76 2012-02-21-16.04.41.114114
DGDB0200 310 2004-10-27-10.25.57.753074
DGDB0201 22 2007-04-13-17.31.09.157936
DGDB0202 241 2012-02-13-18.19.03.741293
DGDB0203 40 2012-02-28-09.52.36.737259
DGDB0205 10 2004-10-27-10.26.32.469902
DGDB0206 22 2004-10-27-10.26.34.590578
DGDB0207 237 2011-04-28-15.56.57.412443
DGDB0209 12 2004-10-27-10.26.39.896668
DGDB0211 105 2011-02-03-16.43.44.123978
DGDB0212 27 2006-09-08-10.35.00.000617
DGDB0213 251 2012-04-11-13.28.46.995190
DGDB0214 5 2004-10-27-10.26.51.819135
DGDB0215 9 2004-10-27-10.26.52.282957
DGDB0217 199 2012-01-11-15.16.53.415090
DGDB0218 65 2009-10-01-15.48.29.999826
DGDB0220 6 2006-11-08-13.03.57.222846
DGDB0222 159 2004-10-27-10.27.15.092403
DGDB0223 107 2011-12-13-12.48.31.089270
DGDB0224 27 2009-06-17-13.09.50.284614
DGDB0226 60 2006-06-08-15.44.50.793406
DGDB0227 15 2008-10-21-10.34.03.396936
DGDB0228 187 2011-12-15-13.29.03.118489
DGDB0231 41 2006-12-13-10.05.01.238523
DGDB0232 17 2009-04-02-14.54.06.617324
DGDB0235 279 2011-08-23-12.15.47.899057
DGDB0236 17 2006-08-17-10.44.37.822719
DGDB0237 330 2012-03-26-15.15.02.794184
DGDB0238 33 2006-09-08-10.40.16.350739
DGDB0239 47 2011-11-29-13.05.21.939649
DGDB0241 78 2012-03-01-07.57.16.326406
DGDB0242 53 2004-10-27-10.29.15.688356
DGDB0243 4 2001-07-04-15.24.14.921785
DGDB0244 102 2011-03-17-13.11.56.616841
DGDB0247 83 2010-09-01-11.15.27.735671
DGDB0248 4 2004-10-27-10.29.23.052453
DGDB0254 149 2006-07-12-16.35.49.369482
DGDB0255 6 2009-06-11-08.44.03.203655
DGDB0256 19 2011-09-06-15.28.09.229664
DGDB0257 59 2011-09-06-15.29.42.960811
DGDB0258 20 2009-09-29-15.19.57.611661
DGDB0260 17 2009-06-25-08.22.17.297017
DGDB0261 5 2009-06-25-08.23.28.423606
DGDB0262 5 2009-06-25-08.25.18.112304
DGDB0263 35 2004-10-27-10.29.41.195829
DGDB0264 9 2004-10-27-10.29.41.877308
DGDB0265 76 2012-03-16-09.46.15.968614
DGDB0266 20 2007-11-26-08.14.38.947415
DGDB0268 51 2007-05-31-10.41.51.640387
DGDB0269 16 2004-10-27-10.29.57.644724
DGDB0272 45 2004-10-27-10.30.13.604279
DGDB0273 37 2011-11-28-10.57.30.181899
DGDB0274 6 2006-09-08-10.40.29.777600
DGDB0275 221 2012-04-13-08.50.28.813048
DGDB0276 30 2011-02-15-07.53.02.085361
DGDB0277 2 2004-10-27-10.30.16.265751
DGDB0278 32 2004-10-27-10.30.17.040738
DGDB0279 25 2005-08-22-10.08.55.624049
DGDB0281 171 2008-07-21-14.31.34.649556
DGDB0282 27 2012-04-14-11.40.20.325701
DGDB0283 71 2010-02-10-14.19.39.422838
DGDB0284 7 2009-06-25-07.31.45.485555
DGDB0285 31 2009-11-18-13.24.14.262770
DGDB0286 44 2012-01-06-06.41.49.700114
DGDB0287 30 2011-01-26-14.51.07.826564
DGDB0288 33 2007-12-21-13.07.55.406211
DGDB0289 11 2007-05-24-15.42.08.563298
DGDB0290 287 2012-01-05-09.39.36.559408
DGDB0291 8 2012-02-14-10.45.10.650668
DGDB0292 44 2011-08-25-15.45.12.998437
DGDB0295 43 2004-10-27-11.06.06.170413
DGDB0296 51 2009-12-02-14.26.17.948619
DGDB0297 4 2004-10-27-11.06.07.558401
DGDB0300 34 2006-04-27-14.26.20.464157
DGDB0308 26 2004-10-27-10.37.34.302559
DGDB0309 5 2004-10-27-10.37.34.405394
DGDB0310 29 2004-10-27-10.37.34.983835
DGDB0311 46 2004-10-27-10.37.35.686834
DGDB0312 44 2004-10-27-10.37.36.700587
DGDB0313 4 2004-10-27-10.37.36.761966
DGDB0315 87 2007-11-21-07.34.14.982034
DGDB0316 42 2004-11-25-15.18.17.018574
DGDB0317 36 2010-03-05-15.50.28.944976
DGDB0319 57 2004-10-27-10.37.46.607315
DGDB0320 42 2004-10-27-10.37.47.417532
DGDB0321 48 2004-10-27-10.37.48.446302
DGDB0322 111 2004-10-27-10.37.49.957114
DGDB0323 48 2007-08-29-15.03.45.341618
DGDB0324 39 2011-06-09-11.12.50.962332
DGDB0325 9 2004-10-27-10.37.51.070278
DGDB0326 46 2007-06-08-12.42.42.737442
DGDB0327 12 2011-01-31-13.38.16.901852
DGDB0328 6 2004-10-27-10.37.51.987275
DGDB0329 36 2011-12-29-15.47.21.565017
DGDB0330 260 2004-10-27-10.38.06.389515
DGDB0331 20 2004-12-29-11.24.35.814504
DGDB0332 145 2004-10-27-10.38.18.950946
DGDB0334 26 2004-10-27-10.38.20.840649
DGDB0336 41 2011-01-31-13.22.20.144663
DGDB0337 23 2010-03-05-15.53.42.060703
DGDB0338 20 2006-11-03-09.17.17.281054
DGDB0339 163 2010-05-11-12.02.39.073483
DGDB0340 48 2006-08-22-15.43.55.718488
DGDB0341 23 2007-10-09-13.06.32.319986
DGDB0342 166 2005-10-18-16.50.49.693781
DGDB0343 51 2004-10-27-10.38.52.739428
DGDB0344 47 2004-10-27-10.38.54.194384
DGDB0346 13 2005-07-12-11.28.55.165917
DGDB0348 27 2004-10-27-10.39.16.348035
DGDB0349 32 2009-04-03-13.41.43.533715
DGDB0351 188 2012-02-23-13.02.25.753177
DGDB0352 9 2005-03-01-09.24.30.322573
DGDB0354 130 2012-04-10-12.24.27.906766
DGDB0358 49 2010-10-18-16.37.47.140905
DGDB0359 176 2012-02-16-15.28.38.250825
DGDB0360 23 2012-02-16-15.39.32.680807
DGDB0361 4 2004-10-27-10.45.55.286884
DGDB0362 183 2007-11-08-10.54.38.483692
DGDB0363 24 2005-03-04-12.58.24.634911
DGDB0364 105 2004-10-27-10.46.06.076344
DGDB0365 62 2010-03-30-10.33.31.788061
DGDB0366 140 2006-08-11-16.05.44.163608
DGDB0368 10 2012-02-24-15.12.26.189389
DGDB0369 59 2004-12-07-14.12.33.241170
DGDB0370 2 2007-01-30-15.24.18.000563
DGDB0371 36 2006-08-03-14.24.35.904079
DGDB0372 15 2005-06-01-17.07.03.460778
DGDB0373 51 2006-05-09-15.29.40.469475
DGDB0374 196 2011-08-31-17.10.49.928103
DGDB0375 2 2004-10-27-10.48.08.689781
DGDB0376 181 2010-09-29-14.05.30.417429
DGDB0378 12 2005-11-10-11.55.59.849415
DGDB0380 24 2010-02-10-11.37.58.389299
DGDB0381 32 2011-09-13-18.12.47.849518
DGDB0383 21 2007-04-03-18.43.48.575619
DGDB0384 110 2011-09-20-12.27.03.548968
DGDB0385 21 2006-05-09-16.03.41.066883
DGDB0386 37 2006-05-18-14.03.34.184573
DGDB0387 8 2006-01-12-12.57.56.183975
DGDB0388 78 2011-04-20-17.29.21.080223
DGDB0389 176 2011-09-20-15.39.51.976393
DGDB0390 29 2005-10-05-08.57.04.766439
DGDB0391 27 2005-08-25-11.23.21.295470
DGDB0392 36 2010-11-30-09.41.05.588493
DGDB0394 12 2005-05-24-17.53.44.644243
DGDB0395 297 2011-06-09-16.32.36.818613
DGDB0396 57 2011-07-05-14.42.35.712514
DGDB0399 22 2012-04-13-14.30.31.758354
DGDB0400 24 2008-09-05-12.41.37.447612
DGDB0401 84 2011-08-18-14.17.50.966395
DGDB0402 62 2011-04-05-07.22.13.038016
DGDB0403 12 2007-08-02-15.01.49.279712
DGDB0404 51 2005-09-19-11.51.05.491506
DGDB0405 14 2011-11-28-16.16.09.744385
DGDB0406 48 2005-06-08-13.53.30.572456
DGDB0412 220 2011-11-07-13.49.18.749770
DGDB0416 11 2005-10-10-13.35.03.891626
DGDB0417 9 2005-08-10-15.21.24.767924
DGDB0418 26 2008-01-07-13.16.34.910529
DGDB0419 4 2011-03-25-12.47.40.552238
DGDB0420 65 2011-10-11-14.19.07.782165
DGDB0421 11 2009-07-03-13.33.38.613923
DGDB0423 8 2008-01-10-14.50.37.984697
DGDB0424 216 2012-04-13-13.40.37.250468
DGDB0426 314 2007-11-19-11.35.16.571883
DGDB0431 206 2011-11-11-11.06.18.557060
DGDB0432 206 2011-11-11-11.06.18.953307
DGDB0433 175 2011-11-11-11.06.19.338967
DGDB0434 175 2011-11-11-11.06.19.811567
DGDB0435 175 2011-11-11-11.06.20.149377
DGDB0436 175 2011-11-11-11.06.20.614490
DGDB0439 125 2011-12-23-10.46.26.050337
DGDB0441 61 2007-04-10-17.01.59.786020
DGDB0442 68 2007-12-05-11.22.07.796985
DGDB0443 23 2006-06-21-12.01.49.732236
DGDB0444 12 2008-06-26-13.56.23.725837
DGDB0446 47 2010-11-25-11.01.16.065087
DGDB0448 3 2006-11-07-13.48.38.391975
DGDB0449 10 2007-02-22-18.21.36.616246
DGDB0450 36 2011-01-06-00.05.31.564479
DGDB0451 45 2006-10-02-13.22.51.890066
DGDB0452 54 2007-07-06-15.35.21.362996
DGDB0454 15 2007-02-27-15.07.23.973506
DGDB0455 14 2007-03-06-12.10.47.308374
DGDB0456 11 2007-03-06-12.12.25.339149
DGDB0457 12 2007-02-06-13.05.57.831276
DGDB0460 175 2011-11-11-11.06.20.951273
DGDB0463 19 2011-05-26-08.14.11.538447
DGDB0466 106 2010-06-17-12.03.20.687745
DGDB0467 99 2011-07-14-08.53.42.802215
DGDB0468 63 2012-01-09-10.38.16.942277
DGDB0470 6 2008-01-14-13.19.17.936519
DGDB0471 1 2007-04-05-08.09.21.530616
DGDB0472 91 2011-12-15-10.33.00.293887
DGDB0473 57 2011-04-04-17.19.32.307455
DGDB0474 36 2012-02-27-13.52.12.774518
DGDB0475 23 2007-06-26-13.46.14.204488
DGDB0476 16 2012-03-29-12.07.04.466512
DGDB0478 277 2010-05-15-09.25.09.288955
DGDB0479 277 2011-11-04-10.16.27.336216
DGDB0480 43 2010-09-17-18.08.08.876526
DGDB0481 9 2007-09-26-15.51.50.914007
DGDB0482 169 2012-03-07-11.27.46.542459
DGDB0483 3 2008-09-01-09.33.39.312408
DGDB0484 36 2008-09-08-10.01.03.725452
DGDB0485 65 2012-02-08-13.58.37.250580
DGDB0486 213 2012-04-03-11.06.33.703349
DGDB0494 24 2009-06-16-14.33.13.522117
DGDB0495 175 2011-11-11-11.06.21.269834
DGDB0496 175 2011-11-11-11.06.21.620887
DGDB0497 175 2011-11-11-11.06.21.993914
DGDB0498 175 2011-11-11-11.06.22.390687
DGDB0499 38 2010-09-24-15.16.39.934793
DGDB0500 152 2011-01-14-15.36.57.314514
DGDB0501 4 2009-02-04-13.13.45.476435
DGDB0502 6 2009-05-04-12.22.26.732774
DGDB0503 46 2010-11-26-14.51.58.901951
DGDB0504 352 2008-09-29-18.11.51.855204
DGDB0505 52 2011-02-21-18.04.00.438971
DGDB0506 192 2011-12-02-11.42.24.425738
DGDB0509 22 2008-10-06-14.23.27.354520
DGDB0510 18 2008-10-17-15.45.38.642431
DGDB0511 3 2008-11-11-19.19.50.921896
DGDB0513 9 2008-10-16-10.34.43.834006
DGDB0514 44 2011-07-01-09.53.45.583816
DGDB0515 59 2009-06-02-09.39.32.305035
DGDB0516 36 2011-10-27-11.02.46.180128
DGDB0517 5 2008-12-17-14.51.44.330750
DGDB0518 10 2011-08-03-09.49.50.966829
DGDB0519 90 2011-09-22-13.28.20.262347
DGDB0520 175 2011-11-11-11.06.22.757670
DGDB0521 175 2011-11-11-11.06.23.329570
DGDB0522 26 2010-02-26-13.33.41.444428
DGDB0523 7 2010-02-25-09.51.34.640754
DGDB0524 102 2010-11-16-12.44.38.747763
DGDB0525 12 2010-02-02-11.30.57.909044
DGDB0526 2 2010-03-09-09.01.29.460049
DGDB0527 5 2010-09-03-12.45.17.717523
DGDB0528 109 2012-04-13-15.22.09.442700
DGDB0530 4 2010-07-02-15.47.56.155215
DGDB0531 3 2010-09-23-13.08.55.621643
DGDB0532 41 2012-03-21-14.27.34.410053
DGDB0535 6 2012-03-05-18.56.40.857804
DGDB0537 9 2011-12-23-11.50.25.850467
DGDB0544 75 2012-04-04-08.14.10.385242
DGDB0545 11 2012-02-10-11.16.01.047999
DGDB0546 35 2012-02-07-07.56.45.853935
DGDB0547 4 2012-03-28-15.36.32.255944
DGDB0549 25 2012-04-19-11.10.51.095930
DGDB0550 222 2012-04-11-10.19.41.648048
DGDB0637 23 2008-05-14-13.57.46.949266
DGDB0638 32 2011-08-23-16.05.12.759488
DGDB0639 52 2012-01-12-17.46.02.351192
DGDB0668 38 2006-07-07-13.57.03.529288
DGDB0669 34 2007-02-16-10.51.37.229471
DGDB0670 4 2007-02-16-10.51.30.970612
DGDB0671 119 2012-03-14-01.44.21.325314
DGDB0672 8 2009-09-30-17.20.42.593724
DGDB0673 417 2011-11-21-07.49.01.349758
DGDB0674 16 2012-01-23-16.19.46.217184
DGDB0675 24 2011-12-23-13.41.31.721097
DGDB0676 24 2011-12-23-13.42.18.336935
DGDB0677 24 2011-12-23-13.45.13.116665
DGDB0678 24 2011-12-23-13.38.40.186996
DGDB0679 20 2012-04-13-11.35.52.553230
DGDB0680 9 2012-02-03-13.34.57.714327
DGDB0681 64 2012-02-07-13.58.45.450658
DGDB0999 3 2006-08-02-17.04.48.795859
DGDB6663 84 2008-12-16-11.00.34.036780
DGDB9991 3 2010-03-10-17.51.18.864416
DGDB9992 3 2010-03-10-17.51.20.104435
DGDB9993 3 2010-03-10-17.51.21.415808
DGDB9996 15 2012-03-14-16.20.29.519115
DGDB9997 24 2009-10-21-16.03.17.745454
DGDB9998 331 2012-04-17-11.18.48.221102
DGDB9999 25 2005-06-02-12.56.05.901310
DGOCB130 195 2008-01-11-13.10.57.152269
DGOCF101 217 2003-10-02-11.52.21.535732
DGOCF102 96 2002-05-27-10.09.04.384760
DGOCK310 61 2003-08-18-19.35.03.473574
DGOKB701 34 2006-03-07-13.10.56.348447
DGOMA24N 2 2004-10-29-11.15.54.055296
DGOMM700 125 2003-08-18-19.35.05.963203
DGOWA200 54 2010-08-18-16.12.20.421306
DGOWB420 25 2011-05-31-15.58.01.748775
DGOWD501 36 2011-09-14-09.35.44.132928
DGOWD502 32 2011-09-13-18.01.39.070889
DGOWD503 10 2010-04-29-10.25.04.876989
DGOWD504 16 2010-04-29-12.19.53.240238
DGOWD600 97 2012-03-27-09.24.03.252276
DGOWD700 35 2004-10-28-10.26.00.904484
DGOWM200 4 2004-10-28-10.26.01.000641
DGOWM301 369 2010-10-25-13.40.35.625293
DG01A1A 201 2012-04-02-08.38.16.929850
DG02A1A 122 2012-01-30-12.54.53.534434
DG666308 2 2009-02-18-12.35.14.395438
DSN8DA1X 27 2012-04-03-13.11.17.644146
DXB03A1X 629 2012-04-03-08.55.56.154808
DXB04A1X 50 2009-12-15-18.24.16.145724
DXB05A1X 116 2009-03-04-09.01.13.643837
DXB07A1X 129 2011-03-28-14.58.08.134166
ED06A1X 7 2009-08-28-15.38.57.030399
EL01A1X 89 2011-08-18-09.39.17.820486
EU02A1X 5 2010-07-02-11.08.17.078666
KT01A1X 5 2010-07-02-11.12.19.036057
RG01A1X 6 2009-06-18-14.43.25.871094
SV30A1X 45 2010-11-04-11.13.35.516893
SV31A1X 31 2011-05-18-10.36.35.986528
TG01A1X 61 2012-04-02-14.59.27.053202
VV21A1X 412 2012-04-10-11.37.08.065762
VV22A1X 196 2012-02-06-11.55.49.598181
VV23A1X 414 2012-04-10-11.37.08.065762
VV24A1X 385 2012-04-10-11.37.08.065762
VV25A1X 158 2012-04-10-12.44.58.385957
VV26A1X 190 2011-12-04-11.53.07.423236
VV27A1X 197 2012-04-10-12.40.42.540084
VV28A1X 193 2012-04-10-12.40.42.818874
VV29A1X 105 2012-04-04-14.12.34.285387
WG01A1X 132 2010-12-07-11.45.46.327279
}¢--- A540769.WK.SQL(CATDBAL2) cre=2012-04-19 mod=2012-04-19-16.09.20 A540769 ---
DGDB0008 NG01A1A 00010000
DGDB0015 DG01A1A 00020000
DGDB0031 NG02A1A 00030001
DGDB0035 NG06A1A 00040001
DGDB0039 CE01A1A 00050001
DGDB0052 SM01A1A 00060001
DGDB0057 RP01A1A 00070001
DGDB0058 RP02A1A 00080001
DGDB0059 RP03A1A 00090001
DGDB0060 EX01A1A 00100001
DGDB0062 RP04A1A 00110001
DGDB0065 BP01A1A 00120001
DGDB0067 RM01A1A 00130001
DGDB0072 CE02A1A 00140001
DGDB0078 LW01A1A 00150001
DGDB0080 SF01A1A 00160001
DGDB0082 OE02A1A 00170001
DGDB0084 CZ01A1A 00180001
DGDB0086 KS08A1A 00190001
DGDB0088 DI01A1A 00200001
DGDB0089 DI02A1A 00210001
DGDB0090 DI03A1A 00220001
DGDB0091 DI04A1A 00230001
DGDB0094 FF01A1A 00240001
DGDB0103 PR01A1A 00250001
DGDB0104 BG01A1A 00260001
DGDB0106 CD02A1A 00270001
DGDB0110 SV05A1A 00280001
DGDB0112 WI02A1A 00290001
DGDB0113 NZ01A1A 00300001
DGDB0120 WB12A1A 00310001
DGDB0121 WB11A1A 00320001
DGDB0125 TP01A1A 00330001
DGDB0130 NO01A1A 00340001
DGDB0131 AC01A1A 00350001
DGDB0132 ZV02A1A 00360001
DGDB0133 CZ03A1A 00370000
DGDB0134 DA234579 00380000
DGDB0135 WB20A1A 00390000
DGDB0136 CD01A1A 00400000
DGDB0137 CD03A1A 00410000
DGDB0139 JM01A1A 00420000
DGDB0140 LC02A1A 00430000
DGDB0141 PV01A1A 00440000
DGDB0142 VD01A1A 00450000
DGDB0143 VP02A1A 00460000
DGDB0150 WF01A1A 00470000
DGDB0151 WN01A1A 00480000
DGDB0153 WM01A1A 00490000
DGDB0154 EF01A1A 00500000
DGDB0155 VK02A1A 00510000
DGDB0156 CZ04A1A 00520000
DGDB0162 LG01A1A 00530000
DGDB0166 SX01A1A 00540000
DGDB0167 EQ01A1A 00550000
DGDB0168 WN02A1A 00560000
DGDB0169 ED02A1A 00570000
DGDB0171 NJ01A1A 00580000
DGDB0173 PW01A1A 00590000
DGDB0174 WL09A1A 00600000
DGDB0175 CZ05A1A 00610000
DGDB0177 SW01A1A 00620000
DGDB0178 NF01A1A 00630000
DGDB0179 WP02A1A 00640000
DGDB0180 VP01A1A 00650000
DGDB0181 SV06A1A 00660000
DGDB0182 CZ06A1A 00670000
DGDB0183 WA01A1A 00680000
DGDB0185 PQ01A1A 00690000
DGDB0186 NZ05A1A 00700000
DGDB0187 OO01A1A 00710000
DGDB0189 WF01A1A 00720000
DGDB0192 DG02A1A 00730000
DGDB0193 EK01A1A 00740000
DGDB0194 CZ07A1A 00750000
DGDB0195 WV01A1A 00760000
DGDB0196 CZ08A1A 00770000
DGDB0200 CZ11G1A 00780000
DGDB0201 CZ01G1A 00790000
DGDB0202 CZ03G1A 00800000
DGDB0203 CZ08G1A 00810000
DGDB0204 RT03A1A 00820000
DGDB0205 CZ07G1A 00830000
DGDB0206 KS04A1A 00840000
DGDB0207 NL01A1A 00850000
DGDB0209 WV10A1A 00860000
DGDB0211 ID01A1A 00870000
DGDB0212 SV09A1A 00880000
DGDB0213 KS09A1A 00890000
DGDB0215 PI01A1A 00900000
DGDB0216 AX01A1A 00910000
DGDB0217 UU02A1A 00920000
DGDB0218 TR01A1A 00930000
DGDB0220 CM01A1A 00940000
DGDB0222 CM02A1A 00950000
DGDB0223 WP08A1A 00960000
DGDB0224 SV07A1A 00970000
DGDB0226 CZ20A1A 00980000
DGDB0228 CZ10A1A 00990000
DGDB0230 CZ21A1A 01000000
DGDB0231 GA01A1A 01010000
DGDB0232 QM01A1A 01020000
DGDB0234 PT02A1A 01030000
DGDB0235 HY01A1A 01040000
DGDB0236 MC01A1A 01050000
DGDB0237 NI02A1A 01060000
DGDB0238 PV02A1A 01070000
DGDB0239 LW02A1A 01080000
DGDB0241 KC01A1A 01090000
DGDB0242 MB01A1A 01100000
DGDB0243 ST01A1A 01110000
DGDB0244 EK03A1A 01120000
DGDB0246 EV01A1A 01130000
DGDB0247 WU10A1A 01140000
DGDB0248 WU90A1A 01150000
DGDB0255 WU20A1A 01160000
DGDB0256 DE01A1A 01170000
DGDB0257 DE02A1A 01180000
DGDB0258 DE03A1A 01190000
DGDB0259 DE04A1A 01200000
DGDB0260 DE05A1A 01210000
DGDB0261 DE06A1A 01220000
DGDB0262 DE07A1A 01230000
DGDB0263 VP03A1A 01240000
DGDB0264 SA01A1A 01250000
DGDB0265 SA02A1A 01260000
DGDB0266 SA03A1A 01270000
DGDB0268 SA05A1A 01280000
DGDB0269 SA06A1A 01290000
DGDB0270 GR05A1A 01300000
DGDB0272 VP02H1A 01310000
DGDB0273 WU30A1A 01320000
DGDB0274 KX01A1A 01330000
DGDB0275 CK01A1A 01340000
DGDB0276 BP02A1A 01350000
DGDB0277 AM01A1A 01360000
DGDB0281 NB01A1A 01370000
DGDB0282 RI01A1A 01380000
DGDB0283 NZ06A1A 01390000
DGDB0284 TR02A1A 01400000
DGDB0285 TR03A1A 01410000
DGDB0286 DM40A1A 01420000
DGDB0287 CY02A1A 01430000
DGDB0288 CW01A1A 01440000
DGDB0289 EF02A1A 01450000
DGDB0290 BE01A1A 01460000
DGDB0291 SA07A1A 01470000
DGDB0292 WU40A1A 01480000
DGDB0293 RT41A1A 01490000
DGDB0295 IT01A1A 01500000
DGDB0296 SV40A1A 01510000
DGDB0297 WV80A1A 01520000
DGDB0300 RF01A1A 01530000
DGDB0308 UU03A1A 01540000
DGDB0309 KS02A1A 01550000
DGDB0310 KS05A1A 01560000
DGDB0311 KS06A1A 01570000
DGDB0312 KS07A1A 01580000
DGDB0313 KS11A1A 01590000
DGDB0315 BE03A1A 01600000
DGDB0316 EF03A1A 01610000
DGDB0317 DP02A1A 01620000
DGDB0319 BJ02A1A 01630000
DGDB0320 BJA10004 01640000
DGDB0321 KS01A1A 01650000
DGDB0322 NF02A1A 01660000
DGDB0323 NF03A1A 01670000
DGDB0324 NF08A1A 01680000
DGDB0325 EF04A1A 01690000
DGDB0326 IT02A1A 01700000
DGDB0327 DP03A1A 01710000
DGDB0328 DP04A1A 01720000
DGDB0329 NT21A1A 01730000
DGDB0330 WP04A1A 01740000
DGDB0331 UU04A1A 01750000
DGDB0332 EQ02A1A 01760000
DGDB0334 SE02A1A 01770000
DGDB0336 DP05A1A 01780000
DGDB0337 DP06A1A 01790000
DGDB0338 CW10A1A 01800000
DGDB0339 WP01A1A 01810000
DGDB0340 WP03A1A 01820000
DGDB0341 WP09A1A 01830000
DGDB0342 CZ02A1A 01840000
DGDB0343 CZ09A1A 01850000
DGDB0344 CZ11G1A 01860000
DGDB0346 AN01A1A 01870000
DGDB0348 EQ03A1A 01880000
DGDB0349 NZ07A1A 01890000
DGDB0350 AV03A1A 01900000
DGDB0351 FI04A1A 01910000
DGDB0352 PR02A1A 01920000
DGDB0354 WQ01A1A 01930000
DGDB0358 SV10A1A 01940000
DGDB0359 PC01A1A 01950000
DGDB0360 PC02A1A 01960000
DGDB0361 DP07A1A 01970000
DGDB0362 SU01A1P 01980000
DGDB0363 VV01A1A 01990000
DGDB0365 BX01A1A 02000000
DGDB0366 HY01G1A 02010000
DGDB0367 NM01A1A 02020000
DGDB0368 CE03A1A 02030000
DGDB0369 IT03A1A 02040000
DGDB0370 SA08A1A 02050000
DGDB0371 DB01A1A 02060000
DGDB0373 WU50A1A 02070000
DGDB0374 TN01A1A 02080000
DGDB0375 BF03A1A 02090000
DGDB0376 VV20A1A 02100000
DGDB0378 IT04A1A 02110000
DGDB0379 KK01A1A 02120000
DGDB0380 SB01A1A 02130000
DGDB0381 SV02B1A 02140000
DGDB0383 SV40B1A 02150000
DGDB0384 WY10A1A 02160000
DGDB0385 WY20A1A 02170000
DGDB0386 WY30A1A 02180000
DGDB0387 WY40A1A 02190000
DGDB0389 MF01A1A 02200000
DGDB0390 CZ13A1A 02210000
DGDB0391 CZ13G1A 02220000
DGDB0392 CW30A1A 02230000
DGDB0394 EG01A1A 02240000
DGDB0395 SN01A1A 02250000
DGDB0396 DI05A1A 02260000
DGDB0399 NZ08A1A 02270000
DGDB0400 AU02A1A 02280000
DGDB0401 MF02A1A 02290000
DGDB0402 XC01A1A 02300000
DGDB0403 SV50A1A 02310000
DGDB0404 NZ03A1A 02320000
DGDB0405 NZ02A1A 02330000
DGDB0406 NZ04A1A 02340000
DGDB0407 PL01A1A 02350000
DGDB0416 CZ14A1A 02360000
DGDB0417 CZ14G1A 02370000
DGDB0418 FZ01A1A 02380000
DGDB0419 XC02A1A 02390000
DGDB0420 KB01A1A 02400000
DGDB0421 MF03A1A 02410000
DGDB0422 AV05A1A 02420000
DGDB0423 FZ02A1A 02430000
DGDB0424 HB01A1A 02440000
DGDB0426 TO01A1A 02450000
DGDB0427 AV06A1A 02460000
DGDB0428 AV07A1A 02470000
DGDB0429 AV08A1A 02480000
DGDB0430 AV09A1A 02490000
DGDB0431 PC11A1A 02500000
DGDB0432 PC12A1A 02510000
DGDB0433 PC13A1A 02520000
DGDB0434 PC14A1A 02530000
DGDB0435 PC15A1A 02540000
DGDB0436 PC16A1A 02550000
DGDB0439 ER01A1A 02560000
DGDB0441 MC02A1A 02570000
DGDB0442 MC03A1A 02580000
DGDB0443 WU60A1A 02590000
DGDB0444 PO01A1A 02600000
DGDB0445 AV04A1A 02610000
DGDB0446 RB01A1A 02620000
DGDB0448 ZV01A1A 02630000
DGDB0449 PP01A1P 02640000
DGDB0450 CW70A1A 02650000
DGDB0451 CZ03M1A 02660000
DGDB0452 EG02A1A 02670000
DGDB0454 DT01A1A 02680000
DGDB0455 DT02A1A 02690000
DGDB0456 DT03A1A 02700000
DGDB0457 DT04A1A 02710000
DGDB0459 MT01A1A 02720000
DGDB0460 PC17A1A 02730000
DGDB0461 AV10A1A 02740000
DGDB0462 AV11A1A 02750000
DGDB0463 MF04A1A 02760000
DGDB0464 VV29A1A 02770000
DGDB0465 AV02A1A 02780000
DGDB0466 NG03A1A 02790000
DGDB0467 MI01A1A 02800000
DGDB0468 UI01A1A 02810000
DGDB0470 BQ01A1A 02820000
DGDB0471 ED05A1A 02830000
DGDB0472 XR01A1A 02840000
DGDB0473 DW10A1A 02850000
DGDB0474 CZ18A1A 02860000
DGDB0475 MF05A1A 02870000
DGDB0476 YN01A1A 02880000
DGDB0478 CT01G1A 02890000
DGDB0479 CT02A1A 02900000
DGDB0480 WI03A1A 02910000
DGDB0481 CE04A1A 02920000
DGDB0482 PV03A1A 02930000
DGDB0483 OV01A1A 02940000
DGDB0484 KD01A1A 02950000
DGDB0485 WI01A1A 02960000
DGDB0486 NI10A1A 02970000
DGDB0487 AV12A1A 02980000
DGDB0488 AV13A1A 02990000
DGDB0489 AV14A1A 03000000
DGDB0490 AV15A1A 03010000
DGDB0491 MA01A1A 03020000
DGDB0492 MA02A1A 03030000
DGDB0493 MA03A1A 03040000
DGDB0494 EF05A1A 03050000
DGDB0495 PC18A1A 03060000
DGDB0496 PC19A1A 03070000
DGDB0497 PC20A1A 03080000
DGDB0498 PC21A1A 03090000
DGDB0499 SV70A1A 03100000
DGDB0500 RV01A1A 03110000
DGDB0501 AU04A1A 03120000
DGDB0502 SA09A1A 03130000
DGDB0503 FI04A1A 03140000
DGDB0505 RC02A1A 03150000
DGDB0506 XXXXXXX 03160000
DGDB0509 DI06A1A 03170000
DGDB0511 EU01A1A 03180000
DGDB0514 DP08A1A 03190000
DGDB0515 RS01A1A 03200000
DGDB0516 SV90A1A 03210000
DGDB0518 BU01A1A 03220000
DGDB0519 EL02A1A 03230000
DGDB0520 PC22A1A 03240000
DGDB0521 PC23A1A 03250000
DGDB0522 LO01A1A 03260000
DGDB0523 EU90A1A 03270000
DGDB0524 KD02A1A 03280000
DGDB0526 LX01A1A 03290000
DGDB0527 SU02A1A 03300000
DGDB0530 WW20A1A 03310000
DGDB0531 EU03A1A 03320000
DGDB0532 OZ01A1A 03330000
DGDB0533 XI90A1A 03340000
DGDB0534 OS01A1A 03350000
DGDB0535 OS03A1A 03360000
DGDB0537 GT01A1A 03370000
DGDB0538 OS10A1A 03380000
DGDB0539 OS11A1A 03390000
DGDB0540 OS12A1A 03400000
DGDB0541 OS13A1A 03410000
DGDB0542 OS14A1A 03420000
DGDB0543 OS15A1A 03430000
DGDB0544 RA01A1A 03440000
DGDB0545 EU04A1A 03450000
DGDB0546 OS40A1A 03460000
DGDB0547 NI03A1A 03470000
DGDB0548 NI04A1A 03480000
DGDB0549 KE01A1A 03490000
DGDB0550 AC05A1A 03500000
DGDB0551 TT01A1A 03510000
DGDB0637 JR01A1A 03520000
DGDB0639 OS02A1A 03530000
DGDB0640 SV94A1A 03540000
DGDB0672 AV16A1A 03550000
DGDB0674 FK01A1A 03560000
DGDB0675 AO01A1A 03570000
DGDB0676 AO02A1A 03580000
DGDB0677 AO03A1A 03590000
DGDB0678 AO04A1A 03600000
DGDB0679 BV01A1A 03610000
DGDB0680 AC04A1A 03620000
DGDB0681 KD03A1A 03630000
DGDB0995 XY05A1A 03640000
DGDB0996 XY04A1A 03650000
DGDB0997 XY03A1A 03660000
DGDB0998 XY02A1A 03670000
DGDB0999 XY01A1A 03680000
DGOCB130 RE01A1A 03690000
DGOCF101 NF01A1A 03700000
DGOCF102 BJ01A1A 03710000
DGOCK310 VT01A1A 03720000
DGODT530 OD01A1A 03730000
DGOKB701 CT01A1A 03740000
DGOWA542 AV01A1A 03750001
DGOWA600 WB11A1A 03760001
DGOWB420 GM01A1A 03770000
DGOWD501 SV01A1A 03780000
DGOWD502 SV02A1A 03790000
DGOWD503 SV03A1A 03800000
DGOWD600 FI02A1A 03810000
DGOWD700 VV02A1A 03820000
DGOWM200 WD01A1A 03830000
DGOWM301 WL07A1A 03840000
DXB03A1X DXB03 03850000
DXB04A1X DXB04 03860000
DXB05A1X DXB05 03870000
DXB07A1X DXB07 03880000
ED06A1X ED06A1A 03890000
EL01A1X EL01A1A 03900000
EU02A1X EU02A1A 03910000
KT01A1X KT01A1A 03920000
RG01A1X RG01A1A 03930000
SV30A1X SV30A1A 03940000
SV31A1X SV31A1A 03950000
TG01A1X TG01A1A 03960000
VV21A1X VV21A1A 03970000
VV22A1X VV22A1A 03980000
}¢--- A540769.WK.SQL(CATDBAL9) cre=2012-04-19 mod=2012-04-19-17.10.25 A540769 ---
* protot db alteredTS erledigt
DGDB0131 AC01A1P 2011-11-01 wk 19.4
DGDB0680 AC04A1P 2012-02-03 nonEx
DGDB0550 AC05A1P 2012-04-11 nonEx
DGDB0277 AM01A1P 2004-10-27
DGDB0346 AN01A1P 2005-07-12
DGDB0675 AO01A1P 2011-12-23 nonEx
DGDB0676 AO02A1P 2011-12-23 nonEx
DGDB0677 AO03A1P 2011-12-23 nonEx
DGDB0678 AO04A1P 2011-12-23 nonEx
DGDB0400 AU02A1P 2008-09-05
DGDB0501 AU04A1P 2009-02-04
DGOWA542 AV01A1P wk 17.4
DGDB0465 AV02A1P wk 17.4
DGDB0350 AV03A1P wk 17.4
DGDB0445 AV04A1P wk 17.4
DGDB0422 AV05A1P wk 17.4
DGDB0427 AV06A1P wk 17.4
DGDB0428 AV07A1P wk 17.4
DGDB0429 AV08A1P wk 17.4
DGDB0430 AV09A1P wk 17.4
DGDB0461 AV10A1P wk 17.4
DGDB0462 AV11A1P wk 17.4
DGDB0487 AV12A1P wk 17.4
DGDB0488 AV13A1P wk 17.4
DGDB0489 AV14A1P wk 17.4
DGDB0490 AV15A1P wk 17.4
DGDB0672 AV16A1P 2009-09-30 wk 17.4
AV17A1P wk 17.4
AV18A1P wk 17.4
AV19A1P wk 17.4
AV20A1P wk 17.4
AV21A1P wk 17.4
DGDB0216 AX01A1P
DGDB0290 BE01A1P 2012-01-05
DGDB0315 BE03A1P 2007-11-21
DGDB0375 BF03A1P 2004-10-27
DGDB0104 BG01A1P 2011-03-07
DGDB0320 BJA10004 2004-10-27
DGOCF102 BJ01A1P 2002-05-27
DGDB0319 BJ02A1P 2004-10-27
DGDB0065 BP01A1P 2004-10-26
DGDB0276 BP02A1P 2011-02-15
DGDB0470 BQ01A1P 2008-01-14
DGDB0518 BU01A1P 2011-08-03
DGDB0679 BV01A1P 2012-04-13 nonEx
DGDB0365 BX01A1P 2010-03-30
DGDB0136 CD01A1P 2011-09-23
DGDB0106 CD02A1P 2012-02-06
DGDB0137 CD03A1P 2012-04-12
DGDB0039 CE01A1P 2006-05-19
DGDB0072 CE02A1P 2008-01-17
DGDB0368 CE03A1P 2012-02-24
DGDB0481 CE04A1P 2007-09-26
DGDB0275 CK01A1P 2012-04-13
DGDB0220 CM01A1P 2006-11-08
DGDB0222 CM02A1P 2004-10-27
DGOKB701 CT01A1P 2006-03-07
DGDB0478 CT01G1P 2010-05-15
DGDB0479 CT02A1P 2011-11-04
DGDB0288 CW01A1P 2007-12-21
DGDB0338 CW10A1P 2006-11-03
DGDB0392 CW30A1P 2010-11-30
DGDB0450 CW70A1P 2011-01-06
DGDB0287 CY02A1P 2011-01-26
DGDB0084 CZ01A1P 2008-10-30
DGDB0201 CZ01G1P 2007-04-13
DGDB0342 CZ02A1P 2005-10-18
DGDB0133 CZ03A1P 2012-04-10
DGDB0202 CZ03G1P 2012-02-13
DGDB0451 CZ03M1A 2006-10-02
DGDB0156 CZ04A1P 2012-02-13
DGDB0175 CZ05A1P 2004-10-26
DGDB0182 CZ06A1P 2004-10-26
DGDB0194 CZ07A1P 2008-12-19
DGDB0205 CZ07G1P 2004-10-27
DGDB0196 CZ08A1P 2012-02-21
DGDB0203 CZ08G1P 2012-02-28
DGDB0343 CZ09A1P 2004-10-27
DGDB0228 CZ10A1P 2011-12-15
DGDB0200 CZ11G1P 2004-10-27
DGDB0344 CZ11G1P 2004-10-27
DGDB0390 CZ13A1P 2005-10-05
DGDB0391 CZ13G1P 2005-08-25
DGDB0416 CZ14A1P 2005-10-10
DGDB0417 CZ14G1P 2005-08-10
DGDB0474 CZ18A1P 2012-02-27
DGDB0226 CZ20A1P 2006-06-08
DGDB0230 CZ21A1P
DGDB0134 D3234579
DGDB0371 DB01A1P 2006-08-03
DGDB0256 DE01A1P 2011-09-06
DGDB0257 DE02A1P 2011-09-06
DGDB0258 DE03A1P 2009-09-29
DGDB0259 DE04A1P
DGDB0260 DE05A1P 2009-06-25
DGDB0261 DE06A1P 2009-06-25
DGDB0262 DE07A1P 2009-06-25
DGDB0015 DG01A1P 2012-03-29
DGDB0192 DG02A1P 2012-01-30
DGDB0088 DI01A1P 2011-01-12
DGDB0089 DI02A1P 2004-10-26
DGDB0090 DI03A1P 2007-07-10
DGDB0091 DI04A1P 2009-07-31
DGDB0396 DI05A1P 2011-07-05
DGDB0509 DI06A1P 2008-10-06
DGDB0286 DM40A1P 2012-01-06
DGDB0317 DP02A1P 2010-03-05
DGDB0327 DP03A1P 2011-01-31
DGDB0328 DP04A1P 2004-10-27
DGDB0336 DP05A1P 2011-01-31
DGDB0337 DP06A1P 2010-03-05
DGDB0361 DP07A1P 2004-10-27
DGDB0514 DP08A1P 2011-07-01
DGDB0454 DT01A1P 2007-02-27
DGDB0455 DT02A1P 2007-03-06
DGDB0456 DT03A1P 2007-03-06
DGDB0457 DT04A1P 2007-02-06
DGDB0473 DW10A1P 2011-04-04
DXB03A1X DXB03 2012-04-03
DXB04A1X DXB04 2009-12-15
DXB05A1X DXB05 2009-03-04
DXB07A1X DXB07 2011-03-28
DGDB0169 ED02A1P 2010-06-17
DGDB0471 ED05A1P 2007-04-05
ED06A1X ED06A1P 2009-08-28
DGDB0154 EF01A1P 2007-04-26
DGDB0289 EF02A1P 2007-05-24
DGDB0316 EF03A1P 2004-11-25
DGDB0325 EF04A1P 2004-10-27
DGDB0494 EF05A1P 2009-06-16
DGDB0394 EG01A1P 2005-05-24
DGDB0452 EG02A1P 2007-07-06
DGDB0193 EK01A1P 2008-01-15
DGDB0244 EK03A1P 2011-03-17
EL01A1X EL01A1P 2011-08-18
DGDB0519 EL02A1P 2011-09-22
DGDB0167 EQ01A1P 2004-10-26
DGDB0332 EQ02A1P 2004-10-27
DGDB0348 EQ03A1P 2004-10-27
DGDB0439 ER01A1P 2011-12-23
DGDB0511 EU01A1P 2008-11-11
EU02A1X EU02A1P 2010-07-02
DGDB0531 EU03A1P 2010-09-23
DGDB0545 EU04A1P 2012-02-10
DGDB0523 EU90A1P 2010-02-25
DGDB0246 EV01A1P
DGDB0060 EX01A1P 2009-04-21
DGDB0094 FF01A1P 2004-10-26
DGOWD600 FI02A1P 2012-03-27
DGDB0503 FI04A1P 2010-11-26
DGDB0351 FI04A1P 2012-02-23
DGDB0674 FK01A1P 2012-01-23
DGDB0418 FZ01A1P 2008-01-07
DGDB0423 FZ02A1P 2008-01-10
DGDB0231 GA01A1P 2006-12-13
DGOWB420 GM01A1P 2011-05-31
DGDB0270 GR05A1P
DGDB0537 GT01A1P 2011-12-23
DGDB0424 HB01A1P 2012-04-13
DGDB0235 HY01A1P 2011-08-23
DGDB0366 HY01G1P 2006-08-11
DGDB0211 ID01A1P 2011-02-03
DGDB0295 IT01A1P 2004-10-27
DGDB0326 IT02A1P 2007-06-08
DGDB0369 IT03A1P 2004-12-07
DGDB0378 IT04A1P 2005-11-10
DGDB0139 JM01A1P 2006-09-08
DGDB0637 JR01A1P 2008-05-14
DGDB0420 KB01A1P 2011-10-11
DGDB0241 KC01A1P 2012-03-01
DGDB0484 KD01A1P 2008-09-08
DGDB0524 KD02A1P 2010-11-16
DGDB0681 KD03A1P 2012-02-07
DGDB0549 KE01A1P 2012-04-19
DGDB0379 KK01A1P
DGDB0321 KS01A1P 2004-10-27
DGDB0309 KS02A1P 2004-10-27
DGDB0206 KS04A1P 2004-10-27
DGDB0310 KS05A1P 2004-10-27
DGDB0311 KS06A1P 2004-10-27
DGDB0312 KS07A1P 2004-10-27
DGDB0086 KS08A1P 2004-10-26
DGDB0213 KS09A1P 2012-04-11
DGDB0313 KS11A1P 2004-10-27
KT01A1X KT01A1P 2010-07-02
DGDB0274 KX01A1P 2006-09-08
DGDB0140 LC02A1P 2010-04-08
DGDB0162 LG01A1P 2010-03-01
DGDB0522 LO01A1P 2010-02-26
DGDB0078 LW01A1P 2008-04-22
DGDB0239 LW02A1P 2011-11-29
DGDB0526 LX01A1P 2010-03-09
DGDB0491 MA01A1P
DGDB0492 MA02A1P
DGDB0493 MA03A1P
DGDB0242 MB01A1P 2004-10-27
DGDB0236 MC01A1P 2006-08-17
DGDB0441 MC02A1P 2007-04-10
DGDB0442 MC03A1P 2007-12-05
DGDB0389 MF01A1P 2011-09-20
DGDB0401 MF02A1P 2011-08-18
DGDB0421 MF03A1P 2009-07-03
DGDB0463 MF04A1P 2011-05-26
DGDB0475 MF05A1P 2007-06-26
DGDB0467 MI01A1P 2011-07-14
DGDB0459 MT01A1P
DGDB0281 NB01A1P 2008-07-21
DGOCF101 NF01A1P 2003-10-02
DGDB0178 NF01A1P 2011-08-15
DGDB0322 NF02A1P 2004-10-27
DGDB0323 NF03A1P 2007-08-29
DGDB0324 NF08A1P 2011-06-09
DGDB0008 NG01A1P 2008-03-14
DGDB0031 NG02A1P 2007-07-25
DGDB0466 NG03A1P 2010-06-17
DGDB0035 NG06A1P 2007-06-22
DGDB0237 NI02A1P 2012-03-26 wk 17.4
DGDB0547 NI03A1P 2012-03-28
DGDB0548 NI04A1P
DGDB0486 NI10A1P 2012-04-03 wk 17.4
DGDB0171 NJ01A1P 2012-03-26
DGDB0207 NL01A1P 2011-04-28
DGDB0367 NM01A1P
DGDB0130 NO01A1P 2004-11-03
DGDB0329 NT21A1P 2011-12-29
DGDB0113 NZ01A1P 2012-01-12
DGDB0405 NZ02A1P 2011-11-28
DGDB0404 NZ03A1P 2005-09-19
DGDB0406 NZ04A1P 2005-06-08
DGDB0186 NZ05A1P 2007-10-01
DGDB0283 NZ06A1P 2010-02-10
DGDB0349 NZ07A1P 2009-04-03
DGDB0399 NZ08A1P 2012-04-13
DGODT530 OD01A1P
DGDB0082 OE02A1P 2004-10-26
DGDB0187 OO01A1P 2008-05-06
DGDB0534 OS01A1P
DGDB0639 OS02A1P 2012-01-12
DGDB0535 OS03A1P 2012-03-05
DGDB0538 OS10A1P
DGDB0539 OS11A1P
DGDB0540 OS12A1P
DGDB0541 OS13A1P
DGDB0542 OS14A1P
DGDB0543 OS15A1P
DGDB0546 OS40A1P 2012-02-07
DGDB0483 OV01A1P 2008-09-01
DGDB0532 OZ01A1P 2012-03-21
DGDB0359 PC01A1P 2012-02-16
DGDB0360 PC02A1P 2012-02-16
DGDB0431 PC11A1P 2011-11-11
DGDB0432 PC12A1P 2011-11-11
DGDB0433 PC13A1P 2011-11-11
DGDB0434 PC14A1P 2011-11-11
DGDB0435 PC15A1P 2011-11-11
DGDB0436 PC16A1P 2011-11-11
DGDB0460 PC17A1P 2011-11-11
DGDB0495 PC18A1P 2011-11-11
DGDB0496 PC19A1P 2011-11-11
DGDB0497 PC20A1P 2011-11-11
DGDB0498 PC21A1P 2011-11-11
DGDB0520 PC22A1P 2011-11-11
DGDB0521 PC23A1P 2011-11-11
DGDB0215 PI01A1P 2004-10-27
DGDB0407 PL01A1P
DGDB0444 PO01A1P 2008-06-26
DGDB0449 PP01A1P 2007-02-22
DGDB0185 PQ01A1P 2004-10-26
DGDB0103 PR01A1P 2005-08-23
DGDB0352 PR02A1P 2005-03-01
DGDB0234 PT02A1P
DGDB0141 PV01A1P 2006-09-05
DGDB0238 PV02A1P 2006-09-08
DGDB0482 PV03A1P 2012-03-07
DGDB0173 PW01A1P 2010-02-24
DGDB0232 QM01A1P 2009-04-02
DGDB0544 RA01A1P 2012-04-04
DGDB0446 RB01A1P 2010-11-25
DGDB0505 RC02A1P 2011-02-21
DGOCB130 RE01A1P 2008-01-11
DGDB0300 RF01A1P 2006-04-27
RG01A1X RG01A1P 2009-06-18
DGDB0282 RI01A1P 2012-04-14
DGDB0067 RM01A1P 2011-09-27
DGDB0057 RP01A1P 2010-06-25
DGDB0058 RP02A1P 2009-02-16
DGDB0059 RP03A1P 2008-12-23
DGDB0062 RP04A1P 2010-04-22
DGDB0515 RS01A1P 2009-06-02
DGDB0204 RT03A1P
DGDB0293 RT41A1P
DGDB0500 RV01A1P 2011-01-14
DGDB0264 SA01A1P 2004-10-27
DGDB0265 SA02A1P 2012-03-16
DGDB0266 SA03A1P 2007-11-26
DGDB0268 SA05A1P 2007-05-31
DGDB0269 SA06A1P 2004-10-27
DGDB0291 SA07A1P 2012-02-14
DGDB0370 SA08A1P 2007-01-30
DGDB0502 SA09A1P 2009-05-04
DGDB0380 SB01A1P 2010-02-10
DGDB0334 SE02A1P 2004-10-27
DGDB0080 SF01A1P 2004-10-26
DGDB0052 SM01A1P 2006-09-08
DGDB0395 SN01A1P 2011-06-09
DGDB0243 ST01A1P 2001-07-04
DGDB0362 SU01A1P 2007-11-08
DGDB0527 SU02A1P 2010-09-03
DGOWD501 SV01A1P 2011-09-14
DGOWD502 SV02A1P 2011-09-13
DGDB0381 SV02B1A 2011-09-13
DGOWD503 SV03A1P 2010-04-29
DGDB0110 SV05A1P 2011-02-02
DGDB0181 SV06A1P 2007-02-27
DGDB0224 SV07A1P 2009-06-17
DGDB0212 SV09A1P 2006-09-08
DGDB0358 SV10A1P 2010-10-18
SV30A1X SV30A1P 2010-11-04
SV31A1X SV31A1P 2011-05-18
DGDB0296 SV40A1P 2009-12-02
DGDB0383 SV40B1A 2007-04-03
DGDB0403 SV50A1P 2007-08-02
DGDB0499 SV70A1P 2010-09-24
DGDB0516 SV90A1P 2011-10-27
DGDB0640 SV94A1P
DGDB0177 SW01A1P 2004-10-26
DGDB0166 SX01A1P 2009-06-24
TG01A1X TG01A1P 2012-04-02
DGDB0374 TN01A1P 2011-08-31
DGDB0426 TO01A1P 2007-11-19
DGDB0125 TP01A1P 2009-11-18
DGDB0218 TR01A1P 2009-10-01
DGDB0284 TR02A1P 2009-06-25
DGDB0285 TR03A1P 2009-11-18
DGDB0551 TT01A1P
DGDB0468 UI01A1P 2012-01-09
DGDB0217 UU02A1P 2012-01-11
DGDB0308 UU03A1P 2004-10-27
DGDB0331 UU04A1P 2004-12-29
DGDB0142 VD01A1P 2009-03-06
DGDB0155 VK02A1P 2011-11-07
DGDB0180 VP01A1P 2004-10-26
DGDB0143 VP02A1P 2004-10-26
DGDB0272 VP02H1A 2004-10-27
DGDB0263 VP03A1P 2004-10-27
DGOCK310 VT01A1P 2003-08-18
DGDB0363 VV01A1P 2005-03-04 wk 17.4
DGOWD700 VV02A1P 2004-10-28 wk 17.4
DGDB0376 VV20A1P 2010-09-29 wk 17.4
VV21A1X VV21A1P 2012-04-10 wk 17.4
VV22A1X VV22A1P 2012-02-06 wk 17.4
VV2*A1P wk 17.4
DGDB0464 VV29A1P wk 17.4
DGDB0183 WA01A1P 2012-03-06
DGOWA600 WB11A1P
DGDB0121 WB11A1P 2012-03-06
DGDB0120 WB12A1P 2011-09-22
DGDB0135 WB20A1P 2010-12-15
DGOWM200 WD01A1P 2004-10-28
DGDB0150 WF01A1P
DGDB0189 WF01A1P 2012-04-19
DGDB0485 WI01A1P 2012-02-08
DGDB0112 WI02A1P 2012-02-16
DGDB0480 WI03A1P 2010-09-17
DGOWM301 WL07A1P 2010-10-25
DGDB0174 WL09A1P 2011-11-16
DGDB0153 WM01A1P 2012-04-17
DGDB0151 WN01A1P 2010-08-17
DGDB0168 WN02A1P 2011-03-02
DGDB0339 WP01A1P 2010-05-11
DGDB0179 WP02A1P 2010-05-28
DGDB0340 WP03A1P 2006-08-22
DGDB0330 WP04A1P 2004-10-27
DGDB0223 WP08A1P 2011-12-13
DGDB0341 WP09A1P 2007-10-09
DGDB0354 WQ01A1P 2012-04-10
DGDB0247 WU10A1P 2010-09-01
DGDB0255 WU20A1P 2009-06-11
DGDB0273 WU30A1P 2011-11-28
DGDB0292 WU40A1P 2011-08-25
DGDB0373 WU50A1P 2006-05-09
DGDB0443 WU60A1P 2006-06-21
DGDB0248 WU90A1P 2004-10-27
DGDB0195 WV01A1P 2004-10-26
DGDB0209 WV10A1P 2004-10-27
DGDB0297 WV80A1P 2004-10-27
DGDB0530 WW20A1P 2010-07-02
DGDB0384 WY10A1P 2011-09-20
DGDB0385 WY20A1P 2006-05-09
DGDB0386 WY30A1P 2006-05-18
DGDB0387 WY40A1P 2006-01-12
DGDB0402 XC01A1P 2011-04-05
DGDB0419 XC02A1P 2011-03-25
DGDB0533 XI90A1P
DGDB0472 XR01A1P 2011-12-15
DGDB0506 XXXXXXX 2011-12-02
DGDB0999 XY01A1P 2006-08-02
DGDB0998 XY02A1P
DGDB0997 XY03A1P
DGDB0996 XY04A1P
DGDB0995 XY05A1P
DGDB0476 YN01A1P 2012-03-29
DGDB0448 ZV01A1P 2006-11-07
DGDB0132 ZV02A1P 2006-10-03
}¢--- A540769.WK.SQL(CATDBCNT) cre=2012-04-04 mod=2012-04-04-12.56.30 A540769 ---
select count(*) cnt
, SUM(case when name like 'DXB%' then 1 else 0 end) dxb
, SUM(case when name like 'XB%' then 1 else 0 end) xb
, min(dbid) dbidMin
, max(case when dbid < 0 then dbid else -99000 end) dbidNegMax
, mAX(dbid) dbidMax
from sysibm.sysDatabase
}¢--- A540769.WK.SQL(CATDBID) cre=2006-12-05 mod=2006-12-05-14.18.44 F540769 ---
select dbid, name
from sysibm.sysdatabase
where dbid in (403, 1606, 1600)
;
}¢--- A540769.WK.SQL(CATDBL) cre=2016-10-05 mod=2016-10-05-11.54.12 A540769 ----
select dbName, count(*)
from sysibm.sysTables
where dbName like 'QZ%'
group by dbName
order by dbname
$*(
QZMAPTB
QZ01A1P
QZ02A1P
QZ03A1P
QZ04A1P
QZ10A1P
QZ11A1P
QZ91A1S
QZ92A1T
$*)
}¢--- A540769.WK.SQL(CATDBOB) cre=2009-10-02 mod=2009-10-02-10.16.37 A540769 ---
select strip(creator) || '.' || strip(name)
from sysIbm.systables
where dbid = 3086 and obid = 377
}¢--- A540769.WK.SQL(CATDBPR) cre=2012-12-18 mod=2012-12-19-09.06.35 A540769 ---
select min(Name) name, length(strip(Name))
from sysibm.sysdatabase
group by length(strip(Name))
order by 2
;
select left(name, 6), count(*)
from sysibm.sysdatabase
group by left(name, 6)
order by 2 desc
fetch first 20 rows only
}¢--- A540769.WK.SQL(CATDBX) cre=2008-09-25 mod=2008-09-25-17.35.53 F540769 ----
select * from sysibm.sysPackDep
where bQualifier='BE01A1A'
and bName in ('A111A01')
;
list 1
expanding TB OA1A01.TBE111A1
ts BE01A1A.A111A01, 128 parts, 1 tables: OA1A01.TBE111A1, auth w
--- no utility statements generated
238 *-* call sqlPreOpen 8,
, "select distinct dCollid, dName, dContoken, versio
e,", "p.bindTime, p.valid, p.operative
"from sysibm.sysPackDep d, sysibm.sysPackage
"where bType = 'R'" ,
"and d.dLocation = p.location" ,
"and d.dCollid = p.collid" ,
"and d.dName = p.name" ,
"and d.dConToken = p.conToken" ,
"and ("sel")" ,
"order by 2, 4, 1"
>>> "8"
>>> "select distinct dCollid, dName, dContoken, version, p.
bindTime, p.valid, p.operative from sysibm.sysPackDep d, sysibm.sysPack
ere bType = 'R' and d.dLocation = p.location and d.dCollid = p.collid a
me = p.name and d.dConToken = p.conToken and ( (bQualifier='BE01A1A' an
in ('A111A01'))) order by 2, 4, 1"
1532 *-* sqlPreOpen:
IRX0100I +++ Interactive trace. TRACE OFF to end debug, ENTER to conti
say sel
(bQualifier='BE01A1A' and bName in ('A111A01'))
1532 *-* procedure expose m.
1533 *-* parse arg cx, src, descOut, descInp
>>> "8"
>>> "select distinct dCollid, dName, dContoken, version, p
.bindTime, p.valid, p.operative from sysibm.sysPackDep d, sysibm.sysPac
here bType = 'R' and d.dLocation = p.location and d.dCollid = p.collid
ame = p.name and d.dConToken = p.conToken and ( (bQualifier='BE01A1A' a
in ('A111A01'))) order by 2, 4, 1"
>>> ""
}¢--- A540769.WK.SQL(CATDEP) cre=2007-06-12 mod=2007-06-12-09.50.03 F540769 ----
with o (lev, dType, dCreator, dName, bType, bCreator, bName) as 00010000
( select 0, t.type, creator, name, '.', '', t.dbName 00020000
from sysibm.sysTables t 00030000
where t.dbname like 'DSA%' 00040014
union all select o.lev+1, d.dType, d.dCreator, d.dName, 00050000
o.dType, o.dCreator, o.dName 00060000
from o, sysibm.sysviewdep d 00070000
where d.bcreator = o.dCreator and d.bName = o.dName 00080000
and o.lev < 999999 00090000
union all select o.lev+1, a.Type, a.creator, a.name, 00100000
o.dType, o.dCreator, o.dName 00110000
from o, sysibm.systables a 00120000
where a.tbCreator = o.dCreator and a.tbName = o.dName 00130000
and a.type = 'A' and o.lev < 999999 00140000
union all select o.lev+1, 'Y', y.creator, y.name, 00141002
o.dType, o.dCreator, o.dName 00142002
from o, sysibm.sysSynonyms y 00143003
where y.tbCreator = o.dCreator and y.tbName = o.dName 00144002
and o.lev < 999999 00145002
) select 00150013
char(strip(k.dCollid) || '.' || strip(k.dName), 20), 00150408
hex(k.dConToken), 00150510
o.dType, char(strip(o.dCreator) || '.' || strip(o.dName), 30), 00150608
o.bType, char(strip(o.bCreator) || '.' || strip(o.bName), 30), 00151013
q.valid "va", q.operative "op", 00152013
char('or (pck_id = ''' || strip(k.dName) 00153013
|| ''' and PCK_CONSIST_TOKEN = ''' || hex(k.dConToken) 00154013
|| ''')', 70) 00155013
from o 00160000
left join sysibm.syspackdep k 00170006
on k.bQualifier = o.dCreator and k.bName = o.dName 00180007
left join sysibm.syspackage q 00190009
on q.Location = k.dLocation and q.collid = k.dCollid 00200008
and q.name = k.dName and q.conToken = k.dConToken 00210008
where o.dType = 'Y' 00220008
}¢--- A540769.WK.SQL(CATDSSZ) cre=2013-05-13 mod=2013-05-13-15.08.26 A540769 ---
select count(*), min(name),
case when unique_count = 0 then '0'
when unique_count = colCount then '='
when unique_count < colCount then '<'
else '>'
end
from sysibm.sysindexes
group by
case when unique_count = 0 then '0'
when unique_count = colCount then '='
when unique_count < colCount then '<'
else '>'
end ;X;
with x as
(
select i.indexType
, (select min(ip.partition) from sysibm.sysIndexPart ip
where ip.ixCreator = i.creator and ip.ixName = i.name) minPa
, case when ts.partitions = 0 then 'tsNotPar'
when t.partKeyColNum > 0 then 'tbPart'
else 'ixPart' end tsPa
from sysibm.sysindexes i
join sysibm.sysTables t
on t.creator = i.tbCreator and t.name = i.tbName
join sysibm.sysTableSpace ts
on ts.dbName = t.dbName and ts.name = t.tsName
)
select x.*, count(*) cnt
from x
group by indexType, minPa, tsPa
;
select value(max(clustering), 'YNJUL') from sysibm.sysIndexes
where creator = '?540769'
}¢--- A540769.WK.SQL(CATFORKY) cre=2013-06-18 mod=2013-06-18-12.17.47 A540769 ---
with r as (
select creator chCr, tbName chTb, relName rel,
REFTBCREATor paCr, refTbName paTb, colCount cols
from sysibm.sysRels
where creator = 'OA1T' -- and tbName like 'TCT%'
)
, k (chCr, chTb, rel, paCr, paTb, cols, ixCr, ix, cK, kys) as
( select r.*, i.creator, i.name, 0, varchar('', 500)
from r join sysibm.sysIndexes i
on r.chCr = i.tbCreator and r.chTb = i.tbName
union all select chCr, chTb, rel, paCr, paTb, cols, ixCr, ix, cK+1,
kys || ' ' || strip(char(ck+1))
|| '>' || strip(char(j.colSeq))
|| '>' || strip(char(f.colname))
from k join sysibm.sysforeignKeys f
on k.chCr = f.creator and k.chTb=f.tbName and k.rel=f.relName
and f.colSeq = cK+1 and cK < 9999
join sysibm.sysKeys j
on k.ixCr = j.ixCreator and k.ix = j.ixName
and f.colName = j.colName and j.colSeq <= k.cols
)
select * from r where not exists
(SELECT 1 from k
where r.chCr = k.chCr and r.chTb = k.chTb
and r.rel = k.rel and k.cols = k.cK
)
order by chCr, chTb, rel
}¢--- A540769.WK.SQL(CATID) cre=2006-08-31 mod=2014-06-16-15.39.02 A540769 -----
select char(t.dbname, 8) db, char(s.name,8) ts, char(t.name, 30) tb,
s.dbid tsDbid, s.psid tsPsId, s.obid tsObId
, t.dbid tbDbid, t.obid tsObId
from sysibm.systables t, sysibm.systablespace s
where s.dbname = t.dbname and s.name = t.tsname
and t.dbname = 'QZ01A1P';
order by ts.dbName, ts.name
}¢--- A540769.WK.SQL(CATIDSEQ) cre=2011-01-28 mod=2012-04-17-11.11.50 A540769 ---
-- identity is a sequence, find by join over sequencesDep
--
set current sqlid = 'S100447';
select s.*, d.*
from sysibm.sysSequencesDep d
left join sysibm.sysSequences s
on s.sequenceId = d.bSequenceId
where dName = 'TRI001A1'
;;;
select * from sysibm.sysSequencesDep
where dColName = 'CY055_ID'
; -- sql not allowed on identities |
--select previous value for oa1a.SEQCWEQYXYS7VV4
-- from sysibm.sysDummy1
--;
select CY055_ID
from oa1a.TCY055A1
--where cy055_id > 2061500
order by 1 desc
fetch first 20 rows only
with ur
;;;; -- set restart value
alter table oa1a.TCY055A1
alter CY055_ID restart with 2600000
;
commit;
}¢--- A540769.WK.SQL(CATINDEX) cre=2008-04-07 mod=2008-04-07-11.27.02 F540769 ---
select count(*), space, nactive, totalentries
from sysIbm.indexSpaceSTats
where totalentries < 10
group by space, nactive, totalentries
order by 2, 3, 4
;
x
select count(*), year(createdts), min(createdts)
from sysibm.sysIndexes
group by year(createdts)
order by 2 desc
}¢--- A540769.WK.SQL(CATINFO) cre=2011-09-22 mod=2011-09-22-10.58.39 A540769 ---
-- catalog rows for a table A540769.TPER13
select t.*
from sysibm.systables t
where t.creator = 'A540769' and t.name = 'TPER13'
order by creator, name
;
select s.*
from sysibm.systables t
join sysibm.sysTablespace s
on t.dbName = s.dbName and t.tsName = s.name
where t.creator = 'A540769' and t.name = 'TPER13'
order by s.dbName, s.name
;
select p.*
from sysibm.systables t
join sysibm.sysTablePart p
on t.dbName = p.dbName and t.tsName = p.tsName
where t.creator = 'A540769' and t.name = 'TPER13'
order by p.dbName, p.tsName, p.partition
;
select t.*
from sysibm.sysTabStats t
where t.owner = 'A540769' and t.name = 'TPER13'
order by owner, name, partition
;
select c.*
from sysibm.sysColumns c
where c.tbCreator = 'A540769' and c.tbName = 'TPER13'
order by c.tbCreator, c.tbName, c.colNo
;
select c.*
from sysibm.sysColDist c
where c.tbOwner = 'A540769' and c.tbName = 'TPER13'
order by c.tbOwner, c.tbName, c.name, COLGROUPCOLNO
;
select c.*
from sysibm.sysColStats c
where c.tbOwner = 'A540769' and c.tbName = 'TPER13'
order by c.tbOwner, c.tbName, c.name, c.partition
;
select c.*
from sysibm.sysColDistStats c
where c.tbOwner = 'A540769' and c.tbName = 'TPER13'
order by c.tbOwner, c.tbName, c.name, c.partition, COLGROUPCOLNO
;
}¢--- A540769.WK.SQL(CATIP) cre=2016-09-05 mod=2016-09-05-17.06.38 A540769 -----
select compress, count(*)
from sysibm.sysIndexes
where dbName like 'SU%'
group by compress
}¢--- A540769.WK.SQL(CATIRDUP) cre=2014-07-15 mod=2014-07-15-15.37.36 A540769 ---
select count(*), dbName, indexSpace, partition, instance
from sysibm.sysIndexSpaceStats
group by dbName, indexSpace, partition, instance
order by 1 desc, dbName, indexSpace, partition, instance
fetch first 100 rows only
with ur
;X;
delete from sysibm.sysIndexSpaceStats q
where dbName like 'DSN8D9%'
and exists (select 1 from sysibm.sysIndexSpaceStats a
where a.dbName = q.dbName
and a.indexSpace = q.indexSpace
and a.partition = q.partition
and a.instance = q.instance
and a.updatestatsTime > q.updateStatstime
)
;
with d as
(
select count(*) cnt, dbName, indexSpace, partition, instance
from sysibm.sysIndexSpaceStats
group by dbName, indexSpace, partition, instance
having count(*) > 1
)
, s as
(
select row_number() over (partition by
d.dbName, d.indexSpace, d.partition, d.instance
order by r.updateSTatsTime desc) rn
, cnt, r.*
from sysibm.sysIndexSpaceStats r
join d on r.dbName = d.dbName
and r.indexSpace = d.indexSpace
and r.partition = d.partition
and r.instance = d.instance
order by cnt, d.dbName, d.indexSpace, d.partition, d.instance
, r.updateStatsTime desc
)
select * from s where rn > 1
with ur
;
rollback
;x;
select *
from OA1P.TQZ007GBGRIXSTATS n
where rz = '?' and dbSys = '?' and dbName = 'DSN8D91A'
and ts = 'DSN8S91E'
order by indexSpace
;c;
/*
2 DSN8D91A DSN8S91E XEMP1 1 1
2 DSN8D91A DSN8S91D XDEPT3 0 1
2 DSN8D91A DSN8S91D XDEPT2 0 1
2 DSN8D91A DSN8S91E XEMP1 4 1
2 DSN8D91A DSN8S91E XEMP1 3 1
2 DSN8D91A DSN8S91E XEMP1 2 1
2 DSN8D91A DSN8S91S XPARTS 0 1
2 DSN8D91A DSN8S91P XPROJAC1 0 1
2 DSN8D91A DSN8S91P XPROJ1 0 1
2 DSN8D91A DSN8S91P XEMPPROJ 0 1
2 DSN8D91A DSN8S91P XACT2 0 1
2 DSN8D91A DSN8S91E XEMP1 5 1
2 DSN8D91X XPRO0000 IRNODEID 0 1
2 DSN8D91X DSN8S91X SUPPLIER 0 1
2 DSN8D91X DSN8S91X PRODUCTS 0 1
2 DSN8D91X DSN8S91X IRDOCIDS 0 1
2 DSN8D91X DSN8S91X IRDOCIDP 0 1
2 DSN8D91X DSN8S91X IRDOCIDC 0 1
2 DSN8D91X DSN8S91X INVENTOR 0 1
2 DSN8D91X DSN8S91X CUSTOMER 0 1
2 DSN8D91X DSN8S91X CATALOGR 0 1
2 DSN8D91P DSN8S91Q XMAPRTBL 0 1
2 DSN8D91P DSN8S91C XOPTVAL1 0 1
2 DSN8D91P DSN8S91C XDSPTXT1 0 1
2 DSN8D91A DSN8S91D XDEPT1 0 1
*/
with s as
(
select 'a' STATE
, 'RZX' RZ
, 'DE0G' DBSYS
, '2014-07-15-14.39.25.139972' LOADTS
, INDEXTYPE
, COMPRESS
, IXPARTS
, IXPGSZ
, PIECESIZE
, PIECEGB
, LIMGB
, TBCREATOR
, TBNAME
, TS
, TSTY
, TSPARTS
, TSCLONE
, TSINST
, TSDSSIZE
, TSDSGB
, TSLimGb
, TSLimPart
, TSPGSZ
, UPDATESTATSTIME
, NLEVELS
, NPAGES
, NLEAF
, NACTIVE
, SPACE
, EXTENTS
, LOADRLASTTIME
, REBUILDLASTTIME
, REORGLASTTIME
, REORGINSERTS
, REORGDELETES
, REORGAPPENDINSERT
, REORGPSEUDODELETES
, REORGMASSDELETE
, REORGLEAFNEAR
, REORGLEAFFAR
, REORGNUMLEVELS
, STATSLASTTIME
, STATSINSERTS
, STATSDELETES
, STATSMASSDELETE
, COPYLASTTIME
, COPYUPDATEDPAGES
, COPYCHANGES
, COPYUPDATELRSN
, COPYUPDATETIME
, LASTUSED
, IBMREQD
, DBID
, ISOBID
, PSID
, PARTITION
, INSTANCE
}¢--- A540769.WK.SQL(CATIX) cre=2006-03-01 mod=2014-07-14-13.06.16 A540769 -----
select *
from sysibm.sysKeyTargets where ixName = 'IQZ008S1'
;x;
with t0 as
(
select dbname db, name ts, pgSize
, partitions parts, maxPartitions maxParts, dsSize
, case
when type <> ' ' then type
when partitions > 0 and segsize = 0 then 'p' -- classic part
when partitions = 0 and segsize = 0 then 'i' -- simple
when partitions = 0 and segsize > 0 then 's' -- segmented
else raise_error(70000, 'unknown ts type='||type
|| ' partitions=' || strip(char(partitions))
|| ' segsize=' || strip(char(segsize))
|| ' db.ts=' || strip(dbName) ||'.'||name) end tsTy
, case
when dssize <> 0 then int(dssize / 1048576)
when type in ('G', 'O', 'P', 'R', 'L') then 4
when partitions = 0 then 64
when partitions > 254 then pgSize
when partitions > 64 then 4
when partitions > 32 then 1
when partitions > 16 then 2
else 4
end dsGB
, dbid, psid
from sysibm.sysTablespace
)
, ts as
( select t0.*
, case when tsTy = 'G' or parts = 0 then null else 1 end scope
, case when tsTy = 'G' then dsGB * maxparts
when tsTy = 'O' then dsGB * 254
else dsGb end limGB
from t0
)
, tb as
(
select t.creator tbCr, t.name tb, ts.*
from ts join sysibm.sysTables t
on ts.db = t.dbName and ts.ts = t.tsName
)
, i0 as
(
select indexType, pieceSize, relCreated, createdTS
, spaceF, creator ixCr, name ix
, case when i.pgSize = 4096 or i.compress = 'Y' then 4
else i.pgSize
end ixPgSz
, (select min(partition)
from sysibm.sysIndexPart p
where p.ixCreator = i.creator
and p.ixName = i.name
) ixMin
, (select max(partition)
from sysibm.sysIndexPart p
where p.ixCreator = i.creator
and p.ixName = i.name
) ixMax
, tb.*
from sysibm.sysIndexes i join tb
on i.tbCreator = tb.tbCr and i.tbName = tb.tb
)
, i1 as
(
select case when piecesize <> 0 then real(pieceSize) / 1048576
when parts <> 0 then real(dsGB) * ixPgSz / pgSize
else 2
end pcGb
, i0.*
from i0
)
, i2 as
(
select case when ixMin = 1 then 1
when parts = 0 then 32
when tsTy <> 'L' and dsSize = 0 and parts <= 64 then 32
when parts > 254 then 4096
else smallInt(min(4096, 4096 / pcGb * ixPgSz))
end pcMx
, i1.*
from i1
)
, r as
(
select pcGb * pcMx ixpGb
, float(r.nActive) * i2.ixPgSz / 1048576 actGB
, float(r.space) / 1048576 spaceGB
, i2.*
from i2 join sysibm.sysindexspacestats r
on i2.ixCr = r.creator and i2.ix = r.name
)
select smallInt(100 * actGB/ixpGb) actPc
, smallInt(100 * spaceGB/ixpGb) spcPc
, r.*
from r
-- where db = 'DA540769'
where actGB is not null
order by 1 desc
fetch first 100 rows only
;x;
select * from r
where db = 'DA540769'
and ixpGB <= 0
;x; group by pcMx, pcGb, ixMin, min(parts, 1), tsTy
-- ixPgSz <> 4
-- or ( not ((ixMin=0 and ixMax=0)
-- or (ixMin =1 and ixMax= parts)))
-- order by spaceF desc
;x;
, i1 as
(
select indexType, pieceSize, relCreated, createdTS
, case when ixMin = 0 and ixMax = 0 then 'nonP'
when ixMin = 1 and ixMax >= 1 then 'part'
else raise_error(70001, 'parts ' || char(ixMin)
|| ' - ' || char(ixMax))
end partd
from i0
)
select count(*), indexType, pieceSize, partd
, max(relCreated), min(relCreated)
, max(createdTS), min(createdTS)
from i1
group by indexType, pieceSize, partd
;x;
with ii as
(
select case when s.partitions = 0 then 'npTs ' else 'paTs ' end tt,
i.indexType ixType, s.type tsType,
( select case when max(p.partition) = 0 then 'npIx ' else 'paIx '
end
|| char(min(p.partition))
|| char(max(p.partition))
|| char(count(*))
from sysibm.sysIndexPart p
where p.ixCreator = i.creator and p.ixName = i.Name
) it,
s.partitions, t.cardf,
i.*
from sysibm.sysIndexes i
join sysibm.sysTables t
on i.tbCreator = t.creator and i.tbName = t.name
join sysibm.sysTableSpace s
on s.dbName = t.dbName and s.name = t.tsname
-- where i.dbName = 'DA540769'
)
select tt, ixType, left(it, 5), count(*)
from ii
group by tt, ixType, left(it, 5)
order by tt, ixType, left(it, 5)
;;,
select * from sysibm.sysIndexPart
where ixcreator = 'OA1A' and ixname like 'IMF150H%'
;
x
select '01 create ',
char(ixCreator, 8) cr, char(ixName, 16) ix, p.partition,
statsTime "runStats",
cardf,
r.space/4 alPg, leafDist, leafNear, leafFar,
nearOffPosf, farOffPosf,
updatestatsTime "realTimeStats",
nLeaf, reorgLeafNear, reorgLeafFar
from sysibm.sysindexpart p
left join sysibm.sysindexspacestats r
on p.ixCreator = r.creator
and p.ixName = r.name
and p.partition = r.partition
where ixCreator = 'GDB9998' and ixName like 'IWK465%'
;
}¢--- A540769.WK.SQL(CATIXCO) cre=2011-02-10 mod=2011-02-11-17.41.29 A540769 ---
-- show index with list of columns
-- plus hexKey for colDist etc.
with i (cr, ix, colC, seq, keys, kHex) as
( select creator, name, colCount, 0, varchar('',999),varchar('',999)
from sysibm.sysindexes i
where tbCreator = 'OA1P' and tbName = 'TWM005A1'
union all select cr, ix, colC, seq+1,
keys || case when length(strip(k.colName)) <= 15
then strip(k.colName)
else strip(char(k.colNo)) end || ' ',
kHex || hex(k.colNo)
from i join sysibm.sysKeys k
on k.ixCreator = i.cr and k.ixName = i.ix
and k.colSeq = i.seq + 1 and i.seq < i.colC
and i.seq < 999
)
select substr(strip(cr) || '.' || strip(ix), 1, 16),
substr(keys, 1, 80) keys,
substr(kHex, 1, 80) kHex,
colC, length(kHex)
from i
where seq = colC
order by cr, ix
;;;
select SUBSTR(strip(i.creator) || '.' || strip(i.name), 1, 16),
smallInt(colCount),
substr(k1.colName, 1, 8) c1,
substr(k2.colName, 1, 8) c2,
substr(k3.colName, 1, 8) c3,
hex(k1.colNo) || value(hex(k2.colNo), '')
|| value(hex(k3.colNo), '')
from sysibm.sysindexes i
left join sysibm.sysKeys k1
on k1.ixCreator = i.creator and k1.ixName = i.name
and k1.colSeq = 1
left join sysibm.sysKeys k2
on k2.ixCreator = i.creator and k2.ixName = i.name
and k2.colSeq = 2 and i.colCount >= 2
left join sysibm.sysKeys k3
on k3.ixCreator = i.creator and k3.ixName = i.name
and k3.colSeq = 3 and i.colCount >= 3
where tbCreator = 'OA1P' and tbName = 'TWM005A1'
order by i.name
}¢--- A540769.WK.SQL(CATIXEXT) cre=2012-11-19 mod=2012-11-19-16.32.36 A540769 ---
select ix_extension_type, hex(ix_extension_type), count(*)
from sysibm.sysIndexes
group by ix_extension_type
}¢--- A540769.WK.SQL(CATIXGBP) cre=2010-03-26 mod=2010-03-26-09.13.59 A540769 ---
select count(*), gbpCache, sum(p.spacef) runSp,
sum(float(r.space)) realSp
FROM SYSIBM.SYSINDEXPART p
join sysibm.sysIndexes i
on i.creator = p.ixCreator
and i.name = p.ixName
left join sysibm.sysindexSpaceStats r
on r.DBID = i.dbid
and r.ISOBID = i.isobid
and r.PARTITION = p.partition
group by gbpCache
;
x
SELECT B.IXCREATOR, B.IXNAME, B.GBPCACHE
WHERE B.IXCREATOR = A.CREATOR
AND B.IXNAME = A.NAME
AND B.GBPCACHE NOT IN (' ')
)
}¢--- A540769.WK.SQL(CATIXKEY) cre=2011-11-10 mod=2015-06-19-08.04.06 A540769 ---
-- redundante indexe, d.h. key sequence prefix
-- keys eines indexes in der form a<b>c|d<
-- a,b,c,d keys
-- <>| ascending, descending, random
with k (cr, ix, tbCr, tb, uni, unC, keys, colCount, kCnt) as
-- start selektiere Indexe
( select creator, name -- start selektiere Indexe
, tbCreator, tbName, uniqueRule, unique_Count
, cast('' as varchar(1500) ccsid unicode), colCount, 0
from sysibm.sysIndexes
where dbName like 'DSNDB%'-- and tbCreator = 'OA1P'
-- Rekursion: nächster key
union all select cr, ix, tbCr, tb, uni, unC
, keys || strip(q.colName)
|| case when ordering = 'A' then '<'
when ordering = 'D' then '>'
when ordering = 'R' then '|'
else '?' end,
k.colCount, kCnt + 1
from k
join sysibm.sysKeys q
on q.ixCreator = k.cr and q.ixName = k.ix
and q.colSeq = kCnt + 1
where kCnt < 9999
)
, l as
(
select k.*,
translate(strip(keys), ',,,,', '<>|?') keyU
from k
where colCount = kCnt
)
, r as
(
select a.*
from l a
where exists ( select 1 from l b
where a.tbCr = b.tbCr and a.tb = b.tb
and not (a.cr = b.cr and a.ix = b.ix)
and ( left(a.keys, length(b.keys)) = b.keys
or a.keys = left(b.keys, length(a.keys)) )
)
)
select substr(strip(tbCr) || '.' || tb, 1, 20) table
, substr(strip(cr) || '.' || ix, 1, 20) index
, uni, smallint(colCount) "#keys", unC, keys
, tbcr, tb, cr, ix
from r
order by tbcr, tb, keys
;
;x;
-- keys eines indexes in der form a<b>c|d<
-- a,b,c,d keys
-- <>| ascending, descending, random
with k (cr, ix, keys, cols, kCnt) as
-- start selektiere Indexe
( select creator, name, -- start selektiere Indexe
cast('' as varchar(500) ccsid unicode), colCount, 0
from sysibm.sysIndexes
where tbCreator = 'OA1P' and tbName in ( 'TDG122A1'
, 'TDG127A1'
, 'TDG127K1'
, 'TDG128A1'
, 'TDG128K1'
, 'TDG132A1'
, 'TDG132K1'
, 'TDG154A1'
, 'TDG210A0'
, 'TDG310A0'
, 'TDG320A1'
, 'TDG570A0'
, 'TDG900A0'
, 'TDG950A0'
, 'TDG950A1'
, 'TDG970A0'
, 'TDG990A0'
)
-- Rekursion: nächster key
union all select cr, ix, keys || strip(q.colName)
|| case when ordering = 'A' then '<'
when ordering = 'D' then '>'
when ordering = 'R' then '|'
else '?' || ordering || '?' end,
k.cols, kCnt + 1
from k
join sysibm.sysKeys q
on q.ixCreator = k.cr and q.ixName = k.ix
and q.colSeq = kCnt + 1
where kCnt < 9999
)
select substr(strip(i.tbCreator) || '.' || strip(i.tbName), 1, 20) tb
, substr(strip(cr) || '.' || strip(ix), 1, 20) ix
, i.uniqueRule uni
, smallint(cols), keys
from k join sysibm.sysIndexes i
on k.cr = i.creator and k.ix = i.name
where cols = kCnt
order by i.tbCreator, i.tbName, keys, cr, ix
;x;
-- keys eines indexes in der form a<b>c|d<
-- a,b,c,d keys
-- <>| ascending, descending, random
with k (cr, ix, keys, colCount, kCnt) as
-- start selektiere Indexe
( select creator, name, -- start selektiere Indexe
cast('' as varchar(500) ccsid unicode), colCount, 0
from sysibm.sysIndexes
where creator = 'OA1T' and tbName like 'TWM005A1'
-- Rekursion: nächster key
union all select cr, ix, keys || strip(q.colName)
|| case when ordering = 'A' then '<'
when ordering = 'D' then '>'
when ordering = 'R' then '|'
else '?' || ordering || '?' end,
k.colCount, kCnt + 1
from k
join sysibm.sysKeys q
on q.ixCreator = k.cr and q.ixName = k.ix
and q.colSeq = kCnt + 1
where kCnt < 9999
)
select substr(strip(cr) || '.' || strip(ix), 1, 20),
smallint(colCount), keys
from k
where colCount = kCnt
order by cr, ix
;x;
}¢--- A540769.WK.SQL(CATIXLAS) cre=2014-06-05 mod=2014-06-05-12.57.29 A540769 ---
select max(r.lastUsed), count(*)
, substr(strip(i.creator) || '.' || i.name, 1, 30)
, max(i.createdTS) "created", max(r.updateStatsTime) "stats"
from sysibm.sysIndexes i
left join sysibm.sysIndexSpaceStats r
on i.creator = r.creator and i.name = r.name
where i.dbName = 'WI02A1P'
group by i.creator, i.name
order by case when max(r.lastUsed) is not null then max(r.lastUsed)
else '01.01.0001' end
;x;
select value(i.creator, r.creator) || '.'
|| value(i.name, r.name)
, i.name, r.name
from sysibm.sysIndexes i
full join sysibm.sysIndexSpaceStats r
on i.creator = r.creator and i.name = r.name
where i.name is null or r.name is null
;x;
from sysibm.sysIndexes i
full join sysibm.sysIndexSpaceStats r
on i.creator = r.creator and i.name = r.name
where i.dbName = 'WI02A1P'
group by i.creator, i.name
order by 1 desc
}¢--- A540769.WK.SQL(CATIXLIM) cre=2007-10-15 mod=2007-10-22-15.03.48 F540769 ---
with ts as
( select s.*,
case when partitions = 0 then 64 * 1024 * 1024
when dssize <> 0 then dssize
when type in ('K', 'L') then 4 * 1024 * 1024
when partitions <= 16 then 4 * 1024 * 1024
when partitions <= 32 then 2 * 1024 * 1024
when partitions <= 64 then 1 * 1024 * 1024
when partitions <= 254 then 4 * 1024 * 1024
when partitions <= 16 then 4 * 1024 * 1024
end dsSz
from sysibm.sysTablespace s
)
, ii as
(
select i.*,
case when maxPart > 0 then 1
when s.dsSize < 4e6 and not s.type in ('L', 'K') then 32
else 4096
end pieceCnt,
case when maxPart > 0 then dsSz
when pieceSize > 0 then piecesize
when s.dsSz >= 4 then 4 * 1024 * 1024
else 2 * 1024 * 1024
end pieceSz
from sysibm.sysindexes i, sysibm.systables t, ts s,
( select max(partition) maxPart, ixCreator, ixName
from sysibm.sysindexpart p
group by ixCreator, ixName
) p
where
i.tbCreator = t.creator and i.tbName = t.name
and t.dbName = s.dbName and t.tsName = s.name
and i.creator = p.ixCreator and i.name = p.ixName
--and (t.type not in ('L', 'K') and t.dssize < 4000000)
-- or (t.
-- and i.piecesize > 0 and i.piecesize < 65000000
)
select coalesce(float(r.space) / ii.pieceSz / ii.pieceCnt, -1),
coalesce(float(r.nActive) * 4 / ii.pieceSz / ii.pieceCnt, -1),
strip(ii.Creator) || '.' || strip(ii.name)
|| ':' || strip(char(partition))
from ii, sysibm.indexspacestats r
where ii.dbid = r.dbid and ii.isobid = r.isobid
and ii.dbname = 'DGDB9998'
order by 1 desc, 2 desc
;
, tru as
(
select trunc(float(r.space) / ii.pieceSz / ii.pieceCnt, 1) sz,
trunc(float(r.nActive) * 4 / ii.pieceSz / ii.pieceCnt, 1) ac
from ii, sysibm.indexspacestats r
where ii.dbid = r.dbid and ii.isobid = r.isobid
)
select sz, ac, count(*) from tru
group by sz, ac
order by 1 desc, 2 desc
;
select piecesize, pieceSz, dssize, dsSz, pieceCnt, count(*)
from ii
group by piecesize, pieceSz, dssize, dsSz, pieceCnt
order by piecesize, pieceSz, dssize, dsSz, pieceCnt
;
x
select strip(ixcreator) || '.' || strip(ixname)
from sysibm.sysindexpart
where partition > 0 and ixcreator = 'A540769'
;
x
select distinct length(limitKey), limitKey,
case when limitKey = '0' then '=0'
when limitKey = x'00' then '=x'
else 'not' end,
hex(substr(limitKey,1,1))
from sysibm.sysindexpart p
where partition = 0 and length(limitKey) > 0
;
xelect length(limitKey), hex(limitKey)
select length(limitKey), hex(char(limitKey, 5)) || '::' || limitKey, p.*
from sysibm.sysindexpart p
where partition = 0 and length(limitKey) > 0
;
xelect length(limitKey), hex(limitKey)
from sysibm.sysindexpart p
where ixName = 'IWK101A0'
;
select piecesize, i.indexType, miPa, maPa, cnPa, liKe, count(*)
from sysibm.sysindexes i left join
( select min(partition) mipa, max(partition) mapa,
count(*) cnpa, ixCreator, ixName,
sum(length(limitKey)) liKe
from sysibm.sysindexpart p
group by ixCreator, ixName
) p
on i.creator=p.ixCreator and i.name = p.ixName
group by piecesize, i.indexType, miPa, maPa, cnPa, like
;
xelect distinct piecesize,
case when partition = 0 then 'np' else 'pa' end, i.*
from sysibm.sysindexes i, sysibm.sysindexpart p
where i.creator=p.ixCreator and i.name = p.ixName
and piecesize = 0 and partition = 0
;
d
d
}¢--- A540769.WK.SQL(CATIXLI2) cre=2007-10-23 mod=2007-10-23-15.33.28 F540769 ---
with ts as -- tablespace mit dsSz
( select s.*,
case when partitions = 0 then 64 * 1024 * 1024
when dssize <> 0 then dssize
when type in ('K', 'L') then 4 * 1024 * 1024
when partitions <= 16 then 4 * 1024 * 1024
when partitions <= 32 then 2 * 1024 * 1024
when partitions <= 64 then 1 * 1024 * 1024
when partitions <= 254 then 4 * 1024 * 1024
when partitions <= 16 then 4 * 1024 * 1024
end dsSz
from sysibm.sysTablespace s
) ,
ii as -- index mit pieceSz, pieceCnt und maxPartition
(
select i.*, t.tsName, p.maxPart,
case when maxPart > 0 then 1
when s.dsSize < 4e6 and not s.type in ('L', 'K') then 32
else 4096
end pieceCnt,
case when maxPart > 0 then dsSz
when pieceSize > 0 then piecesize
when s.dsSz >= 4 then 4 * 1024 * 1024
else 2 * 1024 * 1024
end pieceSz
from sysibm.sysindexes i, sysibm.systables t, ts s,
( select max(partition) maxPart, ixCreator, ixName
from sysibm.sysindexpart p
group by ixCreator, ixName
) p
where
i.tbCreator = t.creator and i.tbName = t.name
and t.dbName = s.dbName and t.tsName = s.name
and i.creator = p.ixCreator and i.name = p.ixName
) ,
L as --* SchwellWerte tadm10a1 mit like Wert ergänzen
( select W.*,
case when posStr(db_name, '%') < 1 then '% no %'
else left(db_name, posStr(db_name, '%') - 1)
end dbLike,
case when posStr(ts_name, '%') < 1 then '% no %'
else left(ts_name, posStr(ts_name, '%') - 1)
end tsLike
from OA1A.tadm10a1 W
where w.END_DATUM >= timestamp(current date,'00:00:00')
),
RR as --* RTS mit Limite und Schwellwert
(
select r.*,
ii.creator ixCreator, ii.name ixName, ii.maxPart,
ii.tbCreator, ii.tbName, ii.tsName,
float(r.nActive) * 4 / 1024 / 1024 activeGB,
float(r.space) / 1024 / 1024 spaceGB,
ii.pieceCnt limitPieces,
float(ii.pieceSz) * ii.pieceCnt / 1024 / 1024 limitGB,
coalesce(L1.HIGHWATER_1GB, L2.HIGHWATER_1GB, L3.HIGHWATER_1GB,
L4.HIGHWATER_1GB, .8) swFrc,
coalesce(L1.exclude, L2.exclude, L3.exclude,
l4.exclude, 'N') exclude,
coalesce(strip(l1.db_name) || '.' || strip(l1.ts_name)
|| ':' || strip(char(l1.partitions_nr)),
strip(l2.db_name) || '.' || strip(l2.ts_name)
|| ':' || strip(char(l2.partitions_nr)),
strip(l3.db_name) || '.' || strip(l3.ts_name)
|| ':' || strip(char(l3.partitions_nr)),
strip(l4.db_name) || '.' || strip(l4.ts_name)
|| ':' || strip(char(l4.partitions_nr)),
'sql default') swKey
from sysibm.indexspacestats r
left join ii on ii.dbid = r.dbid and ii.isobid = r.isobid
left JOIN L L1 --* Schwelle für db, ts und part%
ON L1.DB_NAME = ii.DBNAME
AND L1.TS_NAME = ii.indexSpace
AND L1.PARTITIONS_NR IN (0 , r.PARTITION)
left JOIN L L2 --* Schwelle für db, ts% und part%
ON L2.DB_NAME = ii.DBNAME
AND L2.tsLike = left(ii.indexSpace,length(L2.tsLike))
AND L2.PARTITIONS_NR IN (0 , r.PARTITION)
left JOIN l L3 --* Schwelle für db, ts% und part%
ON L3.dbLike = left(ii.dbname, length(L3.dbLike))
AND ( L3.tsLike = left(ii.indexspace, length(L3.tsLike))
or L3.ts_name = ii.indexSpace )
AND L3.PARTITIONS_NR IN (0 , r.PARTITION)
LEFT JOIN L L4 --* Schwell Default
ON L4.DB_NAME = 'DEFAULT/I'
)
--\*********************************************************************
--\
--\ IndexSpace (Partitionen) grösser SchwellWert * Limite
--\
SELECT suBSTR(DBNAME,1,8) "db",
SUBSTR(indexSpace,1,8) "indexSpc",
char(case
when partition <= 999 and maxPart <= 999
then right(' ' || strip(char(PARTITION)), 3) || '/'
|| right(' ' || strip(char(maxPart)), 3)
else strip(char(PARTITION)) || '/'
end, 7) "par/tot" ,
char(
right(' '||strip(cast(dec(activeGB, 8, 3) as char(10))),10)
|| char(dec(swFrc, 3, 2))
|| right(' '||strip(cast(dec(limitGB, 8,3) as char(10))),10)
, 25) " active scWe limit",
char(left(ixName, 20), 20) "index name",
rr.*
from RR
where exclude in ('N', 'S') and activeGB > swFrc * limitGB
ORDER BY 1, 2, 3
;
--/
--/ db = Datenbank
--/ indexSp = index Space (Nicht Name|)
--/ par/tot = betroffene PartitionsNummer / Total Partitonen
--/ active = Speicherplatz in GB der active Pages
--/ schWe = Schwellwert Faktor
--/ lim = Limite in GB
--/ indexName = Name des Index
--/
--/*********************************************************************
--$SPECIAL
select current timestamp "timestamp",
current member "member", current server "server",
'23.10.07 a' "version"
from sysibm.sysDummy1
;
}¢--- A540769.WK.SQL(CATIXPA) cre=2013-05-13 mod=2013-05-13-14.52.52 A540769 ---
with x as
(
select i.indexType
, (select min(ip.partition) from sysibm.sysIndexPart ip
where ip.ixCreator = i.creator and ip.ixName = i.name) minPa
, case when ts.partitions = 0 then 'tsNotPar'
when t.partKeyColNum > 0 then 'tbPart'
else 'ixPart' end tsPa
from sysibm.sysindexes i
join sysibm.sysTables t
on t.creator = i.tbCreator and t.name = i.tbName
join sysibm.sysTableSpace ts
on ts.dbName = t.dbName and ts.name = t.tsName
)
select x.*, count(*) cnt
from x
group by indexType, minPa, tsPa
;
}¢--- A540769.WK.SQL(CATIXPIE) cre=2013-06-20 mod=2013-06-20-09.30.57 A540769 ---
set current sqlid = 'S100447';
with j as
(
select i.PIECESIZE, i.ibmReqd, s.partitions
, case
when s.dssize <> 0 then s.dssize
when s.type in ('G', 'O', 'P', 'R', 'L') then 4194304
when S.partitions > 254 then 1048576 * s.pgSize
when s.partitions > 64 then 4194304
when s.partitions > 32 then 1048576
when s.partitions > 16 then 2097152
when s.partitions > 0 then 4194304
else 2097152
end dsSize
from sysibm.sysIndexes i join sysibm.sysTables t
on i.tbCreator = t.creator and i.tbName = t.name
and i.dbName = t.dbName
join sysibm.sysTablespace s
on s.dbName = t.dbName and s.name = t.tsName
)
select count(*), pieceSize, partitions, dsSize
, min(ibmReqd)
, max(translate(ibmReqD, ' ', 'YN'))
, max(case when ibmReqD = 'N' then 'N' else ' ' end)
, max(case when ibmReqD = 'Y' then 'Y' else ' ' end)
from j
group by pieceSize, partitions, dsSize
;x;
select PIECESIZE, (select
case
when s.dssize <> 0 then s.dssize
when s.type in ('G', 'O', 'P', 'R', 'L') then 4194304
when S.partitions > 254 then 1048576 * s.pgSize
when s.partitions > 64 then 4194304
when s.partitions > 32 then 1048576
when s.partitions > 16 then 2097152
when s.partitions > 0 then 4194304
else 2097152
end dssWk
from sysibm.sysTablespace s join sysibm.sysTables t
on s.dbName = t.dbName and s.name = t.tsName
where i.tbCreator = t.creator and i.tbName = t.name
and i.dbName = t.dbName
) tsDss
from sysibm.sysIndexes i
fetch first 100 rows only
;x;
CREATE UNIQUE INDEX "A540769"."IWK993t1"
ON "A540769"."TWK993PAR"
(PARID ASC
)
NOT CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE YES
DEFER NO
COPY NO
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 5
PCTFREE 10
GBPCACHE CHANGED;
select PIECESIZE, name
from sysibm.sysIndexes
where tbCreator = 'A540769' and tbName = 'TWK993PAR'
;
rollback
}¢--- A540769.WK.SQL(CATIXPLU) cre=2014-06-18 mod=2014-06-26-09.22.11 A540769 ---
-- copy catIxPlu begin
-- ixPlus: sysibm.sysIndexes plus missing infos
-- copy catTsPlu begin
-- tsPlus: sysIbm.sysTableSpace plus missing infos
, tsPlus2 as
(
select s.*
, char(value(case
when type <> ' ' then type
when partitions > 0 and segsize = 0 then 'p' -- classic part
when partitions = 0 and segsize = 0 then 'i' -- simple
when partitions = 0 and segsize > 0 then 's' -- segmented
else raise_error(70101, 'unknown ts type='||type
|| ' partitions=' || strip(char(partitions))
|| ' segsize=' || strip(char(segsize))
|| ' db.ts=' || strip(dbName) ||'.'||name)
end, '?'), 1) tsTy
, real(value(case
when dssize <> 0 then real(dssize) / 1048576
when type in ('G', 'O', 'P', 'R', 'L') then 4
when partitions = 0 then 64
when partitions > 254 then pgSize
when partitions > 64 then 4
when partitions > 32 then 1
when partitions > 16 then 2
else 4
end, -99)) dsGB
from sysibm.sysTablespace s
)
, tsPlus as
( select s.*
, smallInt(case when tsTy = 'G' or partitions = 0
then 0 else 1 end) limPart
, real(value(case when tsTy = 'G' then dsGB * maxPartitions
when tsTy = 'O' then dsGB * 254
else dsGb end, -99)) limGB
from tsPlus2 s
)
-- copy catTsPlu end
, ixPlus2 as
(
select i.*
, s.name ts
, s.tsTy
, s.pgSize tsPgSz
, s.partitions tsParts
, s.dsSize tsDsSize
, s.dsGb tsDsGb
, s.limGb tsLimGb
, s.limPart tsLimPart
, s.clone tsClone
, s.instance tsInst
, smallint(case when i.pgSize = 4096 or i.compress='Y' then 4
else i.pgSize
end) ixPgSz
, smallint(value((select max(partition)
from sysibm.sysIndexPart p
where p.ixCreator = i.creator
and p.ixName = i.name
), -99)) ixParts
from sysibm.sysIndexes i
join sysibm.sysTables t
on i.dbName = t.dbName
and i.tbCreator = t.creator and i.tbName = t.name
join tsPlus s
on i.dbName = s.dbName and t.tsName = s.name
)
, ixPlus3 as
(
select i.*
, real(value(
case when piecesize <> 0 then real(pieceSize) / 1048576
when ixParts <> 0 then tsDsGb * ixPgSz / tsPgSz
when tsTy in ('s', 'i') then 2
else 4
end, -99)) pieceGB
from ixPlus2 i
)
, ixPlus as
(
select i.*
, real(value(case when ixParts <> 0 then 1
when tsParts = 0 then 32
when tsTy <> 'L' and tsDsSize=0 and tsParts <= 64 then 32
when tsParts > 254 then 4096
else smallInt(min(4096, 4096 / pieceGB * ixPgSz))
end * pieceGB, -99)) limGb
from ixPlus3 i
)
-- copy catIxPlu end
}¢--- A540769.WK.SQL(CATIXPLV) cre=2014-06-19 mod=2014-06-19-09.51.29 A540769 ---
with dum as
( select * from sysibm.sysDummy1
)
-- copy catIxPlu begin
-- ixPlus: sysibm.sysIndexes plus missing infos
-- copy catTsPlu begin
-- tsPlus: sysIbm.sysTableSpace plus missing infos
, tsPlus2 as
(
select s.*
, case
when type <> ' ' then type
when partitions > 0 and segsize = 0 then 'p' -- classic part
when partitions = 0 and segsize = 0 then 'i' -- simple
when partitions = 0 and segsize > 0 then 's' -- segmented
else raise_error(70101, 'unknown ts type='||type
|| ' partitions=' || strip(char(partitions))
|| ' segsize=' || strip(char(segsize))
|| ' db.ts=' || strip(dbName) ||'.'||name) end tsTy
, case
when dssize <> 0 then real(dssize) / 1048576
when type in ('G', 'O', 'P', 'R', 'L') then 4
when partitions = 0 then 64
when partitions > 254 then pgSize
when partitions > 64 then 4
when partitions > 32 then 1
when partitions > 16 then 2
else 4
end dsGB
from sysibm.sysTablespace s
)
, tsPlus as
( select s.*
, case when tsTy = 'G' or partitions = 0
then 0 else 1 end limPart
, case when tsTy = 'G' then dsGB * maxPartitions
when tsTy = 'O' then dsGB * 254
else dsGb end limGB
from tsPlus2 s
)
-- copy catTsPlu end
-- ixPlus: sysIbm.indexes plus missing infos
, ixPlus2 as
(
select i.*
, s.name ts
, s.tsTy
, s.pgSize tsPgSz
, s.partitions tsParts
, dsSize
, dsGb tsDsGb
, case when i.pgSize = 4096 or i.compress = 'Y' then 4
else i.pgSize
end ixPgSz
, (select max(partition)
from sysibm.sysIndexPart p
where p.ixCreator = i.creator
and p.ixName = i.name
) ixParts
from sysibm.sysIndexes i
join sysibm.sysTables t
on i.dbName = t.dbName
and i.tbCreator = t.creator and i.tbName = t.name
join tsPlus s
on i.dbName = s.dbName and t.tsName = s.name
)
, ixPlus3 as
(
select i.*
, case when piecesize <> 0 then real(pieceSize) / 1048576
when ixParts <> 0 then tsDsGb * ixPgSz / tsPgSz
when tsTy in ('s', 'i') then 2
else 4
end pieceGB
from ixPlus2 i
)
, ixPlus as
(
select i.*
, case when ixParts <> 0 then 1
when tsParts = 0 then 32
when tsTy <> 'L' and dsSize = 0 and tsParts <= 64 then 32
when tsParts > 254 then 4096
else smallInt(min(4096, 4096 / pieceGB * ixPgSz))
end * pieceGB limGb
from ixPlus3 i
)
-- copy catIxPlu end
, t0 as
(
select dbname db, name ts, pgSize
, partitions parts, maxPartitions maxParts, dsSize
, case
when type <> ' ' then type
when partitions > 0 and segsize = 0 then 'p' -- classic part
when partitions = 0 and segsize = 0 then 'i' -- simple
when partitions = 0 and segsize > 0 then 's' -- segmented
else raise_error(70101, 'unknown ts type='||type
|| ' partitions=' || strip(char(partitions))
|| ' segsize=' || strip(char(segsize))
|| ' db.ts=' || strip(dbName) ||'.'||name) end tsTy
, case
when dssize <> 0 then int(dssize / 1048576)
when type in ('G', 'O', 'P', 'R', 'L') then 4
when partitions = 0 then 64
when partitions > 254 then pgSize
when partitions > 64 then 4
when partitions > 32 then 1
when partitions > 16 then 2
else 4
end dsGB
, dbid, psid
from sysibm.sysTablespace
)
, ts as
( select t0.*
, case when tsTy = 'G' or parts = 0 then 0 else 9999 end scope
, case when tsTy = 'G' then dsGB * maxparts
when tsTy = 'O' then dsGB * 254
else dsGb end limGB
from t0
)
, tk1 as
(
select ts.*
, value( ( select max(a.key)
from oa1p.tAdm13Schwelle a
where
validBegin <= current date and validEnd > current date
and a.part = 0
and left(a.db, a.dbLen) = left(ts.db, a.dbLen)
and left(a.ts, a.tsLen) = left(ts.ts, a.tsLen)
and (a.tsTy = ' ' or a.tsTy = ts.tsTy)
and a.dsMin <= ts.limGB
), raise_error(70102, 'schwelle null ' || db ||'.'||ts
|| ' ty='||tsTy)
) keyTS
from ts
)
, tr as
(
select tk1.*
, min(partition, scope) part
, nActive nAct
from tk1 join sysibm.sysTableSpaceStats r
on tk1.db = r.dbName and tk1.ts = r.name
and tk1.dbid = r.dbid and tk1.psid = r.psid
)
, tg (db, ts, part, limGb, keyTS, nAct
, pgSize, parts, maxParts, dsSize, tsTy, dsGB) as
(
select db, ts, part, min(limGb), max(keyTS), sum(bigInt(nAct))
, max(pgSize), max(parts), max(maxParts), max(dsSize)
, max(tsTy), max(dsGB)
from tr
group by db, ts, part
)
, i1 as
(
select i.indexType, i.pieceSize, i.creator ixCr, i.name ix
, case when i.pgSize = 4096 or i.compress = 'Y' then 4
else i.pgSize
end ixPgSz
, (select max(partition)
from sysibm.sysIndexPart p
where p.ixCreator = i.creator
and p.ixName = i.name
) ixPaMax
, i.dbName
, tk1.*
from tk1
join sysibm.sysTables t
on tk1.db = t.dbName and tk1.ts = t.tsName
and t.type not in ('A', 'V')
join sysibm.sysIndexes i
on i.tbCreator = t.creator and i.tbName = t.name
)
, i2 as
(
select case when piecesize <> 0 then real(pieceSize) / 1048576
when parts <> 0 then real(dsGB) * ixPgSz / pgSize
else 2
end pcGb
, i1.*
from i1
)
, i3 as
(
select case when ixPaMax <> 0 then 1
when parts = 0 then 32
when tsTy <> 'L' and dsSize = 0 and parts <= 64 then 32
when parts > 254 then 4096
else smallInt(min(4096, 4096 / pcGb * ixPgSz))
end pcMx
, i2.*
from i2
)
select n.ixParts, o.ixPaMax, n.limGb, o.pcGb * o.pcMx
, n.pieceGB, o.pcGB
, n.ts, n.tsTy, n.creator, o.ixCr, n.name, o.ix
from ixPlus n
full outer join i3 o
on n.dbName = o.dbName and n.name = o.ix and n.creator = o.ixCr
where n.dbName is null or o.db is null
or n.ixParts <> o.ixPaMax or n.limGb <> o.pcGb * o.pcMx
}¢--- A540769.WK.SQL(CATIXRUN) cre=2011-02-22 mod=2011-02-22-11.50.06 A540769 ---
-- indexes und indexPart haben
-- avgKeyLen =-1 iff cardF = -1
-- avgKeyLen = 0 iff cardF = 0
-- avgKeyLen > 0 iff cardF > 0
with g as
(
select smallInt(case when avgKeyLen < 2 then avgKeyLen else 999 end) k,
smallInt(case when fullKeyCardF < 2 then fullKeyCardF
else 999 end) c,
relCreated,
statstime
from sysibm.sysIndexes p
)
select k, c, count(*),
min(relCreated), max(relCreated),
min(statstime), max(statstime)
from g
group by k, c
order by k, c
with ur
;
with g as
(
select smallInt(case when avgKeyLen < 2 then avgKeyLen else 999 end) k,
smallInt(case when cardF < 2 then cardF else 999 end) c,
(select relCreated
from sysibm.sysIndexes i
where i.creator = p.ixCreator and i.name = p.ixName)
relCreated,
statstime
from sysibm.sysIndexPart p
)
select k, c, count(*),
min(relCreated), max(relCreated),
min(statstime), max(statstime)
from g
group by k, c
order by k, c
with ur
}¢--- A540769.WK.SQL(CATIXSPC) cre=2010-03-26 mod=2010-12-13-10.50.26 A540769 ---
set current path = oa1p;
select count(*),
substr(fosFmtE7(1024 * max(i.spacef)), 1, 7) "ixRunSp",
substr(fosFmtE7(1024 * sum(p.spacef)), 1, 7) "paRunSp",
substr(fosFmtE7(1024 * sum(float(r.space))), 1, 7) "rtsSp",
substr(fosFmtE7(1024 * max(coalesce(sum(p.spacef), 0),
coalesce(sum(float(r.space)), 0))), 1, 7) "maxRRSp",
strip(i.creator) || '.' || strip (i.name)
FROM SYSIBM.SYSINDEXPART p
join sysibm.sysIndexes i
on i.creator = p.ixCreator
and i.name = p.ixName
left join sysibm.sysindexSpaceStats r
on r.DBID = i.dbid
and r.ISOBID = i.isobid
and r.PARTITION = p.partition
where i.tbCreator = 'BUA' and i.tbName = 'XBDM7001PM001003'
group by i.creator, i.name
order by 4 desc
fetch first 100 rows only
with ur
;
x
SELECT B.IXCREATOR, B.IXNAME, B.GBPCACHE
WHERE B.IXCREATOR = A.CREATOR
AND B.IXNAME = A.NAME
AND B.GBPCACHE NOT IN (' ')
)
}¢--- A540769.WK.SQL(CATIXSZ) cre=2011-02-21 mod=2016-01-18-10.30.33 A540769 ---
--- calculate minimal number of indexpages for an index part
-- * leafSz = (pgSize - 64) * 100 / (100 - pctFree)
-- * entrySize unique = keyLen + 1 + ridLen
-- * uniqueIndex leafPages = cardF * (keyLen + 1+ridLen) / leafSz
-- * entrySize nonUnique = 2 + keyLen + ridCnt * (1 + ridLen)
-- * duplicateIndex leafPages = cardF
-- * ((keyLen + 2) * distinctF / cardF + 1+ridLen) / leafSz
-- see http://chsa4212/host/db2wiki/pmwiki.php?n=Walter.Jour1101#ixSz
set current path oa1p;
select dbNr, fqzFmte7(dbNr) e7, fqzFmte8(dbNr),fqzFmtBi2(dbNr) bi,dbName
from oa1p.TQZ051DBNR
order by dbNr desc
fetch first 5 rows only
;
with i as
(
select r.nLeaf, r.nActive, r.totalEntries,
case when i.pgSize<=32 then i.pgSize * 1024 else i.pgSize end pgSz,
i.pgSize, i.uniquerule, i.relCreated,
i.fullkeyCardF,
s.keyCountF, s.fullKeyCardf sFullKeyCardF,
case when r.partition > 0 then s.keyCountF else t.cardf end sCardF,
case when r.partition > 0 then s.fullKeyCardF
else i.fullKeyCardF end sDistinct,
p.pctFree, i.avgKeyLen,
t.cardf,
i.creator, i.name, r.partition
from sysibm.sysIndexSpaceStats r
join sysibm.sysIndexes i
on i.creator = r.creator and i.name = r.name
left join sysibm.sysIndexStats s
on s.owner = i.Creator and s.name = i.name
and s.partition = r.partition,
sysibm.sysIndexPart p,
sysibm.sysTables t
where
p.ixCreator = r.creator and p.ixName = r.name
and p.partition = r.partition
and t.creator = i.tbCreator and t.Name = i.tbName
and p.partition = r.partition
and i.dbName like 'QZ01%' -- and i.name like 'IWU334%'
and r.nLeaf > 100
)
, l as
(
select
real(totalEntries) / (pgSz-64) * 100 / (100 -pctFree)
* ( 6 + case when avgKeyLen < 1 then null
when uniqueRule = 'D' and not
(sCardf < 1 or sFullKeyCardf < 1) then
sFullKeyCardF / sCardf * (2 + avgKeyLen)
else
avgKeyLen
end) leafMin,
i.*
from i
)
select fqzFmtE7(nLeaf/max(1, leafMin)) "lea/min",
fqzFmtE7(nLeaf) "actLeaf",
subStr(fqzFmtE7(leafMin) ,1,7) "minLeaf",
substr(strip(creator) ||'.'||strip(name)
||':'||strip(char(partition)), 1, 30) "cr.ix.part",
l.*
from l
where leafMin is not null
-- order by 1 desc
order by nLeaf - 2*leafMin desc
fetch first 200 rows only
;;;
select totalEntries/nLeaf, r.*
from sysibm.sysIndexSpaceStats r
where r.Creator = 'OA1P' and Name = 'IVV719A4'
order by 1 desc ;
with g as
(
select count(*) c, VV719004, VV719005, VV719006, VV719007, VV719008
from OA1P.TVV719A1
--ere VV719002 <= 'B18999999999999999999999'
-- re VV719002 > 'NDE000D99999999999999999'
--and VV719002 <= 'NDE000U99999999999999999'
where VV719002 > 'RL9999999999999999999999'
and VV719002 <= 'RZ9999999999999999999999'
group by VV719004, VV719005, VV719006, VV719007, VV719008
)
select sum(c), count(*) from g
with ur ;;;
------- Achtung: card ist häufig -1, auch wenn cardf Ok
select cardf, card,count(*)
from sysibm.systables t
group by cardf, card
order by cardf desc, card desc
with ur
;;;
select min(cardf), max(cardf), card, count(*)
from sysibm.systables t
group by card, case when cardf <= 2 then cardf else 999 end
order by card
with ur
;;;
------- Achtung fullkeyCardF ist für DPSI auf IndexLevel
-- unbrauchbar, müssen es aus sysIndexStats holen
select sum(fullKeyCardf), sum(keyCountf)
from sysibm.sysIndexStats
where owner = 'OA1P' and name = 'IVV719A4'
;;;
}¢--- A540769.WK.SQL(CATIXTT) cre=2013-05-24 mod=2013-05-24-09.34.32 A540769 ---
with s as
(
select piecesize
, ( select case when min(partition) = '0' then 'not' else 'part' end
from sysibm.sysIndexpart ip
where ip.ixCreator = i.creator and ip.ixName = i.name ) pa
from sysibm.sysindexes i
)
select count(*) cnt, piecesize, pa
from s
group by piecesize, pa
}¢--- A540769.WK.SQL(CATKEYEX) cre=2008-10-24 mod=2008-10-24-14.18.17 F540769 ---
select char(strip(ixSchema) || '.' || strip(ixName), 30), keySeq,
derived_From
from sysibm.sysKeyTargets
}¢--- A540769.WK.SQL(CATLABEL) cre=2007-12-11 mod=2007-12-11-17.07.24 F540769 ---
select count(*), type
from sysibm.systables
where label <> ''
group by type
}¢--- A540769.WK.SQL(CATLIMIT) cre=2007-10-19 mod=2007-10-19-14.52.50 F540769 ---
select partition,
smallint(length(limitKey)) len, char(left(limitkey, 10) leftExt,
smallint(length(limitKey)) len,
char(left(limitkey, 10) leftExt,
char(left(limitkey, 10), 10) left, limitkey
select partition, length(limitKey) len,
char(left(limitkey, 10), 10) left, limitkey
from sysibm.systablepart
-- where dbname = 'DA914227' and tsName = 'A203A'
where dbname = 'DA540769' -- and tsName = 'A203A'
}¢--- A540769.WK.SQL(CATLIMMF) cre=2007-12-04 mod=2007-12-04-09.59.02 F540769 ---
select p.partition, s.totalrows, p.limitkey
from sysibm.tablespacestats s, sysibm.sysTablePart p
where s.dbName = p.dbName and s.Name = p.tsName
and s.partition = p.partition
and p.dbname = 'MF01A1A' and p.tsName = 'A150A'
}¢--- A540769.WK.SQL(CATLOAD) cre=2008-11-14 mod=2008-11-14-10.06.54 F540769 ---
select count(*), left(jobName, 7),
min(strip(dbName) || '.' || strip(tsName)),
max(strip(dbName) || '.' || strip(tsName)),
count(distinct strip(dbName) || '.' || strip(tsName))
from sysibm.syscopy
where icType in ('R', 'S')
and timestamp > current timestamp - 28 days
group by left(jobName, 7)
order by 1 desc
with ur
;
x
select count(*), date(timestamp)
from sysibm.syscopy
group by date(timestamp)
with ur
}¢--- A540769.WK.SQL(CATLONG) cre=2008-10-30 mod=2008-10-30-16.17.33 F540769 ---
select strip(tbCreator) || '.' || strip(tbName) || '.' || strip(name),
c.*
from sysibm.syscolumns c
where colType = 'LONGVAR'
with ur
}¢--- A540769.WK.SQL(CATOBID) cre=2012-07-26 mod=2012-07-26-14.57.08 A540769 ---
with d as ( -- 5 13 11
select 5 obid, Name db, dbid
from sysibm.sysDatabase d
where d.name = 'DA540769'
)
select d.*, coalesce
('tb:' || strip(t.type) || ' '
|| strip(t.creator) || '.' || strip(t.name)
,'ts ' || strip(s.dbName) || '.' || strip(s.name)
,'ix ' || strip(i.creator) || '.' || strip(i.name)
, '?'
)
from d
left join sysibm.sysTables t
on t.dbName = d.db and t.dbid = d.dbid and t.obid = d.obid
left join sysibm.sysTableSpace s
on t.dbName is null
and s.dbName = d.db and s.dbid = d.dbid and s.obid = d.obid
left join sysibm.sysIndexes i
on t.dbName is null and s.dbName is null
and i.dbName = d.db and i.dbid = d.dbid and i.obid = d.obid
;x;
select s.*, t.*
from sysibm.sysTablespace s
, sysibm.sysTables t
where s.dbName = t.dbName and s.dbId = t.dbid
and s.obid = t.obid
with ur
}¢--- A540769.WK.SQL(CATOJREL) cre=2016-07-27 mod=2016-07-27-12.58.54 A540769 ---
select count(*), relBound, min(bindTime), max(bindTime)
from sysibm.sysPackage p
group by relBound
;
with o as
(
select case when lastUsed > current date - 1 month
then 'used' else 'old ' end
|| case when timestamp > '2015-04-09-23.59.59'
then ' pkgV11' else ' pkgOld' end no
, p.*
from sysibm.sysPackage p
)
select count(*), no, relBound
from o
group by no, relBound
}¢--- A540769.WK.SQL(CATPART) cre=2007-06-11 mod=2011-09-29-15.58.06 A540769 ---
-- list tables and partition keys in a recursive sql
-- for ix- and tb-based partitioning
-- paCols = string with column Names
-- paNos = string with column Numbers
with t (cr, tb, partitions, paKeys, paKi,
laKy, paCols, paNos, ixCr, ix ) as
(
select t.creator, t.name, partitions,
case when partitions = 0 then 0
when partKeyColNum > 0 then partKeyColNum
else 999999
end,
case when partitions = 0 then 'no'
when partKeyColNum > 0 then 'tb'
when partKeyColNum = 0 then 'ix'
else '??'
-- else 'p' || strip(char(partitions))
-- || 'c' || strip(char(partKeyColNum))
end ,
case when partitions > 0 and partkeyColNum <= 0 then -1 else 0
end,
varchar('', 1000), varchar('', 1000), t.dbName, t.tsName
from sysibm.sysTables t
join sysibm.sysTablespace s
on t.dbName = s.dbName and t.tsName = s.name
where t.creator = 'A540769' and t.type = 'T' -- and s.partitions>0
union all select cr, tb, partitions, i.colCount, paKi, laKy+1,
paCols, paNos, i.creator, i.name
from t, sysibm.sysIndexes i
where t.laKy <= -1 and (i.creator, i.name) in
(select ixCreator, ixName
from sysibm.sysTablePart p
where p.dbName = t.ixCr and p.tsName = t.ix
and p.partition = 1
)
union all select cr, tb, partitions, paKeys, paKi, laKy+1,
paCols || strip(c.name) || ' ' || c.partkey_ordering ||',',
paNos || strip(char(c.colno)) || c.partkey_ordering,
ixCr, ix
from t join sysibm.sysColumns c
on t.cr = c.tbCreator and t.tb = c.tbName
and c.partKey_colSeq = laKy+1
where laKy < paKeys and paKi = 'tb'
union all select cr, tb, partitions, paKeys, paKi, laKy+1,
paCols || strip(k.colName) || ' ' || k.ordering ||',',
paNos || strip(char(k.colno)) || k.ordering,
ixCr, ix
from t join sysibm.sysKeys k
on t.ixCr = k.ixCreator and t.ix = k.ixName
and k.colSeq = laKy+1
where laKy < paKeys and paKi = 'ix'
)
select * from t
where laKy = paKeys
order by cr, tb
;;;
-- list tables and partition keys
-- for ix- and tb-based partitioning
select substr(strip(t.creator) || '.' || strip(t.Name) , 1, 20),
partitions, partKeyColNum,
case when partitions = 0 then 'noPa'
when partKeyColNum > 0 then 'tbPa'
when partKeyColNum = 0 then 'ixPa'
else '???'
-- else 'p' || strip(char(partitions))
-- || 'c' || strip(char(partKeyColNum))
end,
substr(c.name, 1, 12), c.partkey_colSeq, c.partkey_ordering,
substr(strip(ixCr) || '.' || strip(ix), 1, 20) "paIx",
substr(k.colName, 1, 12), k.colSeq, k.ordering
from sysibm.sysTables t
join sysibm.sysTablespace s
on t.dbName = s.dbName and t.tsName = s.name
join (select dbName, tsName,
min(ixCreator) ixCr, min(ixName) ix
from sysibm.sysTablePart
group by dbName, tsName
) p
on t.dbName = p.dbName and t.tsName = p.tsName
left join sysibm.sysColumns c
on c.tbcreator = t.creator
and c.tbName = t.name and c.partkey_colSeq <> 0
left join sysibm.sysKeys k
on k.ixcreator = p.ixCr and k.ixName = p.ix
where t.creator = 'A540769' and t.type = 'T'
order by t.creator, t.name, c.partKey_colSeq, k.colSeq
;;;
select dbName, Name, spacef
from sysibm.sysTableSpace
where partitions = 0
order by spacef desc
fetch first 100 rows only
with ur
; ;
x
select dbName, tsName, partition, limitkey, limitKey_internal
from sysibm.sysTablePart p
where -- dbName = 'NI02A1Z' and tsName = 'A350A'
partition > 0
and (limitkey = '' or limitkey = '0')
order by partition
with ur
; ;
select char(p.dbName, 8), char(p.tsName, 8),
p.partition, char(t.name,22), p.cardf,
s.partitions, s.nTables
from sysibm.sysTablePart p, sysibm.sysTablespace s,
sysibm.sysTables t
where s.dbName = p.dbName and s.name = p.tsName
and t.dbName = p.dbName and t.tsName = p.tsName and t.type='T'
and s.dbName in ('TSTNAKAL', 'DA540769')
order by p.dbName, p.tsName, p.partition, t.name
}¢--- A540769.WK.SQL(CATPARTC) cre=2015-11-23 mod=2015-11-23-15.21.33 A540769 ---
-- count index/table based partitioned ts
set current application compatibility 'V11R1';
with x as
( select case when s.partitions = 0 and s.segsize = 0 then 'simple'
when s.partitions = 0 then 'segmented'
when t.partKeyCOLNUM < 1 then s.type || ' ixPart'
else s.type || ' tbPart' end ty
from sysibm.sysTables t join sysibm.sysTablespace s
on t.dbName = s.dbname and t.tsName = s.name
)
select count(*), ty
from x
group by rollup(ty)
}¢--- A540769.WK.SQL(CATPK) cre=2014-06-12 mod=2014-06-12-10.59.29 A540769 -----
-- packages bei denen gleichzeitig verschiedene Versionen laufen
select substr(strip(o.location) ||'.'|| strip(o.collid)
||'.'|| o.name, 1, 20)
, date(o.timestamp) created, o.lastUsed
, date(n.timestamp) newCre, n.lastUsed newLastUse
, o.version oldVersion
, n.version newVersion
from sysibm.sysPackage o
join sysibm.sysPackage n
on o.location = n.location and o.collid = n.collid
and o.name = n.name and o.timestamp < n.timestamp
and n.lastUsed > '01.01.1900'
and o.lastUsed > date(n.timestamp) + 15 days
where o.lastUsed > '10.12.2013'
and o.name like '%'
order by o.location, o.collid, o.name, o.timestamp
with ur
;x;
select count(*), length(strip(Version, t))
from sysibm.sysPackage
group by length(strip(Version, t))
with ur
}¢--- A540769.WK.SQL(CATPKCO) cre=2016-10-24 mod=2016-10-24-13.44.16 A540769 ---
with u as
(
select 'pk' || copyid t, p.* from sysibm.sysPackage p
union all select 'co' || copyid t, c.* from sysibm.sysPackCopy c
)
select *
from u
where location = '' and collid = 'DSNREXX_500'
;
select *
from sysibm.syspksystem
}¢--- A540769.WK.SQL(CATPKDEP) cre=2014-03-10 mod=2015-11-25-09.40.48 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
with d as
( select dLocation, dCollid, dName, dContoken, dType
from sysibm.syspackdep d
where dType not in ('O', 'P') and
( (bQualifier = 'OA1P'
and ( (bName = 'TTG503A1' and bType in ('G', 'M', 'P', 'T'))
or (bName = 'TTG501A1' and bType in ('G', 'M', 'P', 'T'))
or (bName like 'TMF%' and bType in ('G', 'M', 'P', 'T'))
or (bName = 'VTG501A1' and bType = 'V')
or (bName = 'VTG501A1' and bType = 'V')
or (bName = 'VTG503A1' and bType = 'V') ) ) )
union all select dLocation, dCollid, dName, dContoken, dType
from sysibm.syspackdep d
where dType not in ('O', 'P') and
bQualifier = 'TG01A1P'
and ( (bName = 'A051H' and bType in ('P', 'R'))
or (bName = 'A051A' and bType in ('P', 'R')))
)
, p as
(
select collid, name, version, type, dType
, p.validate || p.isolation || p.valid || p.operative vivo
, p.contoken
, p.timestamp
, p.lastUsed
, case when lastUsed > current date - 10 days then 'lastUse'
when timestamp > current timestamp -7 days then 'creTst'
when not exists (select 1
from sysibm.syspackage r
where r.location = p.location and r.collid = p.collid
and r.name = p.name
and r.timestamp > p.timestamp
and r.timestamp <= current timestamp - 7 days)
then 'new7' else 'no' end doReb
from d join sysibm.sysPackage p
on dLocation = location and dCollid = collid
and dName = name and dConToken = conToken
)
select doReb, lastUsed, timestamp
, strip(collid) || '.' || strip(name) || ':' || strip(version)
, p.*
from p
order by collid, name, timestamp desc
;
select * from plan_view1
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
with ur
;
rollback
;;;;
;x;
with d as
( select dLocation, dCollid, dName, dContoken, dType
from sysibm.syspackdep d
where dType not in ('O', 'P') and
(bQualifier = 'OA1P'
and ( (bName = 'TTG503A1' and bType in ('G', 'M', 'P', 'R'))
or (bName = 'TTG501A1' and bType in ('G', 'M', 'P', 'R'))
or (bName = 'VTG501A1' and bType = 'V')
or (bName = 'VTG501A1' and bType = 'V')
or (bName = 'VTG503A1' and bType = 'V') ) )
group by dLocation, dCollid, dName, dContoken, dType
)
, p as
(
select collid, name, version, type, dType
, p.validate || p.isolation || p.valid || p.operative vivo
, p.contoken
, p.timestamp
, p.lastUsed
, value((select count(*)
from sysibm.syspackage r
where r.location = p.location and r.collid = p.collid
and r.name = p.name
and r.timestamp > p.timestamp
and r.timestamp <= current timestamp - 7 days),0) nw7
from d join sysibm.sysPackage p
on dLocation = location and dCollid = collid
and dName = name and dConToken = conToken
)
select * from p
order by 1, 2, 3, 4
;x;
select char(', ''' || strip(pk.NAME) || '''', 12) pkg
, max(pcTimestamp) pc
from sysIbm.sysPackage pk
where (pk.location, pk.collid, pk.name, pk.conToken) in
(select pkd.dLocation, pkd.dCollid, pkd.dName, pkd.dConToken
from sysIbm.sysPackDep pkd
where (pkd.bQualifier, pkd.bName) in
(select t.creator, t.name
from sysIbm.sysTables t
where t.type not in ('A', 'V') and t.name like 'TNG005A1%'
) )
group by pk.name
order by pk.name
;x;
select distinct p.collid, p.Name, p.version, p.type
, p.validate || p.isolation || p.valid || p.operative vivo
/* value((select count(*)
from sysibm.syspackage r
where r.location = p.location and r.collid = p.collid
and r.name = p.name
and r.timestamp > p.timestamp
and r.timestamp < current timestamp - 7 days),0) */
from sysibm.syspackdep d join sysibm.syspackage p' ,
'on p.location = d.dLocation and p.collid = d.dCollid' ,
'and p.name = d.dName and p.conToken = d.dConToken' ,
select char(', ''' || strip(pk.NAME) || '''', 12) pkg
, left('-- ' || char(max(pcTimestamp)), 19) pc
, max(lastUsed) lastUsed
from sysIbm.sysPackage pk
where (pk.location, pk.collid, pk.name, pk.conToken) in
(select pkd.dLocation, pkd.dCollid, pkd.dName, pkd.dConToken
from sysIbm.sysPackDep pkd
where (pkd.bQualifier, pkd.bName) in
(select t.creator, t.name
from sysIbm.sysTables t
where t.type in ('T') and t.creator = 'OA1P'
and t.name in ('TDI002A1'
-- ,'TWQX14A1'
-- ,'TWQX13A1'
-- ,'TWQ143A1'
)
) )
group by pk.name
order by pk.name
}¢--- A540769.WK.SQL(CATPKD2) cre=2015-11-14 mod=2015-11-14-20.41.20 A540769 ---
-- packDep: index ==> table
with d as
( select d.dLocation, d.dCollid, d.dName, d.dContoken, d.dType, d.bType
, i.creator cr, i.name tb, l.bType lbTy
, p.valid, p.operative
from sysibm.syspackdep d
join sysibm.sysindexes i
on d.bQualifier = i.creator and d.bName = i.name
left join sysibm.syspackdep l
on d.dLocation = l.dLocation and d.dCollid = l.dCollid
and d.dName = l.dName and d.dContoken = l.dContoken
and d.dType = l.dType
and l.bQualifier = i.tbcreator and l.bName = i.tbName
left join sysibm.syspackage p
on d.dLocation = p.Location and d.dCollid = p.Collid
and d.dName = p.Name and d.dContoken = p.Contoken
where d.dType not in ('O', 'P')
-- and d.dLocation = '' and d.dCollid like 'M%'
)
select substr(strip(cr) || '.' || strip(tb), 1, 20)
, bType, dType, lbTy, valid, operative
, strip(dCollid) || '.' || strip(dName)
|| ':' || strip(hex(dContoken))
from d
where lbTy is null and valid = 'Y'
-- and tTy <> 'G'
fetch first 100 rows only
;x;
-- packDep: ts ==> table
with d as
( select d.dLocation, d.dCollid, d.dName, d.dContoken, d.dType, d.bType
, t.creator cr, t.name tb, t.type tTy, l.bType lbTy
, p.valid, p.operative, s.nTables
from sysibm.syspackdep d join sysibm.sysTables t
on d.bQualifier = t.dbName and d.bName = t.tsName
and t.type not in ('A', 'V')
left join sysibm.systablespace s
on t.dbName = s.dbName and t.tsName = s.name
left join sysibm.syspackdep l
on d.dLocation = l.dLocation and d.dCollid = l.dCollid
and d.dName = l.dName and d.dContoken = l.dContoken
and d.dType = l.dType
and l.bQualifier = t.creator and l.bName = t.Name
left join sysibm.syspackage p
on d.dLocation = p.Location and d.dCollid = p.Collid
and d.dName = p.Name and d.dContoken = p.Contoken
where d.dType not in ('O', 'P')
-- and d.dLocation = '' and d.dCollid like 'N%'
)
select substr(strip(cr) || '.' || strip(tb), 1, 20)
, tTy, bType, dType, lbTy, valid, operative, nTables
, strip(dCollid) || '.' || strip(dName)
|| ':' || strip(hex(dContoken))
from d
where lbTy is null and valid = 'Y' and nTables <= 1
and tTy <> 'G'
fetch first 100 rows only
;x;
-- packDep: table ==> TS
with d as
( select d.dLocation, d.dCollid, d.dName, d.dContoken, d.dType, d.bType
, t.creator cr, t.name tb, t.type tTy, l.bType lbTy
, p.valid, p.operative
from sysibm.syspackdep d join sysibm.sysTables t
on d.bQualifier = t.creator and d.bName = t.name
and t.type not in ('A', 'V')
left join sysibm.syspackdep l
on d.dLocation = l.dLocation and d.dCollid = l.dCollid
and d.dName = l.dName and d.dContoken = l.dContoken
and d.dType = l.dType
and l.bQualifier = t.dbName and l.bName = t.tsName
left join sysibm.syspackage p
on d.dLocation = p.Location and d.dCollid = p.Collid
and d.dName = p.Name and d.dContoken = p.Contoken
where d.dType not in ('O', 'P')
and d.dLocation = '' and d.dCollid = 'NJ'
)
select substr(strip(cr) || '.' || strip(tb), 1, 20)
, tTy, bType, dType, lbTy, valid, operative
, strip(dCollid) || '.' || strip(dName)
|| ':' || strip(hex(dContoken))
from d
where lbTy is null and valid = 'Y' and bType <> 'G'
fetch first 100 rows only
;x;
with d as
( select d.dLocation, d.dCollid, d.dName, d.dContoken, d.dType, d.bType
, t.creator cr, t.name tb, t.type tTy, l.bType lbTy
, p.valid, p.operative
from sysibm.syspackdep d join sysibm.sysTables t
on d.bQualifier = t.creator and d.bName = t.name
and t.type not in ('A', 'V')
left join sysibm.syspackdep l
on d.dLocation = l.dLocation and d.dCollid = l.dCollid
and d.dName = l.dName and d.dContoken = l.dContoken
and d.dType = l.dType
and l.bQualifier = t.dbName and l.bName = t.tsName
left join sysibm.syspackage p
on d.dLocation = p.Location and d.dCollid = p.Collid
and d.dName = p.Name and d.dContoken = p.Contoken
where d.dType not in ('O', 'P')
and d.dLocation = '' and d.dCollid = 'NJ'
)
select substr(strip(cr) || '.' || strip(tb), 1, 20)
, tTy, bType, dType, lbTy, valid, operative
, strip(dCollid) || '.' || strip(dName)
|| ':' || strip(hex(dContoken))
from d
where lbTy is null and valid = 'Y' and bType <> 'G'
fetch first 100 rows only
;x;
or (bName = 'VTG501A1' and bType = 'V')
with d as
( select dLocation, dCollid, dName, dContoken, dType
from sysibm.syspackdep d
where dType not in ('O', 'P') and
(bQualifier = 'OA1P'
and ( (bName = 'TTG503A1' and bType in ('G', 'M', 'P', 'T'))
or (bName = 'TTG501A1' and bType in ('G', 'M', 'P', 'T'))
or (bName like 'TMF%' and bType in ('G', 'M', 'P', 'T'))
or (bName = 'VTG501A1' and bType = 'V')
or (bName = 'VTG501A1' and bType = 'V')
or (bName = 'VTG503A1' and bType = 'V') ) )
group by dLocation, dCollid, dName, dContoken, dType
)
, p as
(
select collid, name, version, type, dType
, p.validate || p.isolation || p.valid || p.operative vivo
, p.contoken
, p.timestamp
, p.lastUsed
, case when lastUsed > current date - 10 days then 'lastUse'
when timestamp > current timestamp -7 days then 'creTst'
when not exists (select 1
from sysibm.syspackage r
where r.location = p.location and r.collid = p.collid
and r.name = p.name
and r.timestamp > p.timestamp
and r.timestamp <= current timestamp - 7 days)
then 'new7' else 'no' end doReb
from d join sysibm.sysPackage p
on dLocation = location and dCollid = collid
and dName = name and dConToken = conToken
)
select doReb, lastUsed, timestamp
, strip(collid) || '.' || strip(name) || ':' || strip(version)
, p.*
from p
order by collid, name, timestamp desc
;x;
with d as
( select dLocation, dCollid, dName, dContoken, dType
from sysibm.syspackdep d
where dType not in ('O', 'P') and
(bQualifier = 'OA1P'
and ( (bName = 'TTG503A1' and bType in ('G', 'M', 'P', 'R'))
or (bName = 'TTG501A1' and bType in ('G', 'M', 'P', 'R'))
or (bName = 'VTG501A1' and bType = 'V')
or (bName = 'VTG501A1' and bType = 'V')
or (bName = 'VTG503A1' and bType = 'V') ) )
group by dLocation, dCollid, dName, dContoken, dType
)
, p as
(
select collid, name, version, type, dType
, p.validate || p.isolation || p.valid || p.operative vivo
, p.contoken
, p.timestamp
, p.lastUsed
, value((select count(*)
from sysibm.syspackage r
where r.location = p.location and r.collid = p.collid
and r.name = p.name
and r.timestamp > p.timestamp
and r.timestamp <= current timestamp - 7 days),0) nw7
from d join sysibm.sysPackage p
on dLocation = location and dCollid = collid
and dName = name and dConToken = conToken
)
select * from p
order by 1, 2, 3, 4
;x;
select char(', ''' || strip(pk.NAME) || '''', 12) pkg
, max(pcTimestamp) pc
from sysIbm.sysPackage pk
where (pk.location, pk.collid, pk.name, pk.conToken) in
(select pkd.dLocation, pkd.dCollid, pkd.dName, pkd.dConToken
from sysIbm.sysPackDep pkd
where (pkd.bQualifier, pkd.bName) in
(select t.creator, t.name
from sysIbm.sysTables t
where t.type not in ('A', 'V') and t.name like 'TNG005A1%'
) )
group by pk.name
order by pk.name
;x;
select distinct p.collid, p.Name, p.version, p.type
, p.validate || p.isolation || p.valid || p.operative vivo
/* value((select count(*)
from sysibm.syspackage r
where r.location = p.location and r.collid = p.collid
and r.name = p.name
and r.timestamp > p.timestamp
and r.timestamp < current timestamp - 7 days),0) */
from sysibm.syspackdep d join sysibm.syspackage p' ,
'on p.location = d.dLocation and p.collid = d.dCollid' ,
'and p.name = d.dName and p.conToken = d.dConToken' ,
select char(', ''' || strip(pk.NAME) || '''', 12) pkg
, left('-- ' || char(max(pcTimestamp)), 19) pc
, max(lastUsed) lastUsed
from sysIbm.sysPackage pk
where (pk.location, pk.collid, pk.name, pk.conToken) in
(select pkd.dLocation, pkd.dCollid, pkd.dName, pkd.dConToken
from sysIbm.sysPackDep pkd
where (pkd.bQualifier, pkd.bName) in
(select t.creator, t.name
from sysIbm.sysTables t
where t.type in ('T') and t.creator = 'OA1P'
and t.name in ('TDI002A1'
-- ,'TWQX14A1'
-- ,'TWQX13A1'
-- ,'TWQ143A1'
)
) )
group by pk.name
order by pk.name
}¢--- A540769.WK.SQL(CATPKG) cre=2010-02-13 mod=2013-03-08-11.27.28 A540769 ----
select length(version), lastUsed, bindtime, version, p.*
from sysibm.syspackage p
where lastUsed > date(timestamp('2002-01-01-00.00.00'))
or pctimestamp > '2000-01-01-00.00.00'
order by length(version) desc
fetch first 100 rows only
;;;
select count(*), lastUsed
from sysibm.syspackage p
group by lastUsed
order by lastUsed
fetch first 100 rows only
;;;,
select length(version), version, p.*
from sysibm.syspackage p
order by length(version) desc
fetch first 100 rows only
;;;
select count(*), dbProtocol, valid, operative
from sysibm.syspackage
group by dbProtocol, valid, operative
order by dbProtocol, valid, operative
with ur
;
x;
select substr(collid, 1, 8) coll,
substr(name , 1, 8) pkg ,
dbProtocol,
hex(contoken),
p.*
from sysibm.sysPackage p
where conToken = x'18B70ABB0DFD8CC6'
;
where name in ('TP5000' ,
'YCDSGET',
'YCDUVGE',
'YDESTEU',
'YDIEURE',
'YDIT001',
'YDIT002',
'YDIT003',
'YDIT004',
'YTPFLAG',
'YTPOBS' ,
'YTPTPS' ,
'YTREDB2')
order by 2, 4, 1
with ur
}¢--- A540769.WK.SQL(CATPKGCN) cre=2012-09-25 mod=2016-10-24-11.07.46 A540769 ---
set current application compatibility 'V11R1';
with p2 as
(
select p.*
, dense_rank() over(partition by location, collid, name
order by lastUsed desc) usSeq
, row_number() over(partition by location, collid, name
order by pcTimestamp desc) pcSeq
from sysibm.syspackage p
)
, p as
(
select case
when sysentries <> 0 then '0sysEnt<>0'
when timestamp > current timestamp - 1 month then '0creM'
when lastUsed > current date - 1 month then '0lastM'
when valid = 'N' and lastUsed < current date - 1 year
then '1validN'
when pcSeq <= 2 then '0pc2'
when lastUsed >= current date - 1 year and usSeq <= 2
then '0us2'
else '1else' end delRea
, p2.*
from p2
)
select left(delRea, 1) del, substr(delRea, 2) reason, count(*) pkgVers
, sum(case when pcSeq = 1 then 1 else 0 end) pkg
, sum(case when pcSeq <= 2 then 1 else 0 end) pkg2V
, sum(case when pcSeq <= 3 then 1 else 0 end) pkg3V
, sum(case when usSeq <= 1 then 1 else 0 end) use1
, sum(case when usSeq <= 2 then 1 else 0 end) use2
, sum(case when usSeq <= 3 then 1 else 0 end) use3
, sum(case when lastUsed > current date - 1 year
then 1 else 0 end) usedLastY
from p
group by rollup(left(delRea, 1), substr(delRea, 2))
;x;
, p as
(
select valid, operative, count(*) pkgVers
, sum(case when pcSeq = 1 then 1 else 0 end) pkg
, sum(case when pcSeq <= 2 then 1 else 0 end) pkg2V
, sum(case when pcSeq <= 3 then 1 else 0 end) pkg3V
, sum(case when usSeq <= 1 then 1 else 0 end) use1
, sum(case when usSeq <= 2 then 1 else 0 end) use2
, sum(case when usSeq <= 3 then 1 else 0 end) use3
, sum(case when lastUsed > current date - 1 year
then 1 else 0 end) usedLastY
, sum(case when pcSeq <= 3 then 1
when lastUsed >= current date - 1 year
then 1 else 0 end) pkg3VorLaY
, sum(case when pcSeq <= 2 then 1
when lastUsed < current date - 1 year then 0
when usSeq <= 2 then 1
else 0 end) pkg2V2ULaY
, sum(case when sysEntries = 0 then 0 else 1 end) sysEntNot0
from p
group by rollup(valid, operative)
;x;
select *
from sysibm.syspackage p
where sysEntries <> 0
;x;
group by rollup(pcSeq)
order by pcSeq
;x; -----------
select substr(creator, 1, 8) cre, substr(owner, 1, 8) owner, count(*)
from sysibm.syspackage
where timestamp > '2012-08-01-00.00.00'
group by creator, owner
with ur
;x;
with m (m, x) as
( select trunc_timestamp(current timestamp, 'mon') , 0
from sysibm.sysDummy1
union all select m - 1 month, x+1
from m where x < 30
)
, t (m, cTst) as
(
select trunc_timestamp(timestamp, 'mon'), count(*)
from sysibm.syspackage
group by trunc_timestamp(timestamp, 'mon')
)
, p (m, cPC) as
(
select trunc_timestamp(pctimestamp, 'mon'), count(*)
from sysibm.syspackage
group by trunc_timestamp(pctimestamp, 'mon')
)
select substr(char(m.m), 1, 7) mon, cTst, cPc
from m left join p on m.m = p.m
left join t on m.m = t.m
order by m.m desc
with ur
;X;
select trunc_timestamp(timestamp, 'mon'), count(*)
from sysibm.syspackage
group by trunc_timestamp(timestamp, 'mon')
order by trunc_timestamp(timestamp, 'mon') desc
with ur
}¢--- A540769.WK.SQL(CATPKGDP) cre=2007-04-23 mod=2010-05-11-17.15.21 A540769 ---
with t as
(
select char(bQualifier, 8) cr, char(bName, 12) tb,
't' ty
-- char(strip(bQualifier) || '.' || strip(bName), 24), -- btype,
-- char(strip(dCollid) || '.' || strip(dName), 24),
-- count(*)
from sysibm.syspackdep
where(( dCollid = 'CD' and dName in
('YCDOGEE' ,
'YCDSGET' ,
'YCDX031' )
) or ( dCollid = 'CT' and dName in
('YCTMRLS' ,
'YCTM150' ,
'YCTM200' ,
'YCTM201' ,
'YCTM204' ,
'YCTM206' ,
'YCTM214' ,
'YCTM250' ,
'YCTM300' ,
'YCTM350' ,
'YCTM353' ,
'YCTM358' ,
'YCTSRLS' ,
'YCTSVPT' ,
'YCTS100' ,
'YCTS150' ,
'YCTS200' ,
'YCTS250' ,
'YCTS300' ,
'YCTS350' ,
'YCTS400' ,
'YCTTRA' )
) or ( dCollid = 'CZ' and dName in
('YCZAURA' ,
'YCZM005' ,
'YCZM025' ,
'YCZM095' ,
'YCZM098' ,
'YCZM100' ,
'YCZM101' ,
'YCZM103' ,
'YCZM106' ,
'YCZM107' ,
'YCZM300' ,
'YCZPARS' ,
'YCZT005' ,
'YCZT025' ,
'YCZT095' ,
'YCZT098' ,
'YCZT100' ,
'YCZT101' ,
'YCZT103' ,
'YCZT106' ,
'YCZT107' ,
'YCZT300' ,
'YCZUCOP' )
) or ( dCollid = 'RM' and dName in
('YRMCGP' ,
'YRMKCG' )
)) and bType = 'T'
group by bQualifier, bName
)
select cr, tb, closeRule,
'alter tablespace ' || strip(c.dbName) || '.' || strip(c.name)
|| ' closeRule no;'
from t, sysibm.sysTables c, sysibm.sysTablespace s
where cr = c.creator and tb = c.name
and c.dbName = s.dbName and c.tsName = s.name
union all select cr, tb, closeRule,
'alter index ' || strip(creator) || '.' || strip(name)
|| ' closeRule no;'
from t, sysibm.sysIndexes c
where cr = tbCreator and tb = tbName
order by cr, tb, 4
with ur
; x ;
select char(strip(bQualifier) || '.' || strip(bName), 24), btype,
char(strip(dCollid) || '.' || strip(dName), 24),
count(*)
from sysibm.syspackdep
where bName like 'TNI250A%'
group by bQualifier, bName, bType, dCollid, dName
order by dCollid, dName
with ur
; x ;
with tc as
(
select dLocation, dCollid, dName,
max(char(pcTimeStamp) || dContoken) tc
-- char(strip(dCollid) || '.' || strip(dName), 24) "package",
-- pcTimeStamp "preCompile",
-- char(pcTimeStamp) "char preCompile",
-- hex(dConToken) "conToken"
from sysibm.syspackdep
left join sysibm.syspackage
on dLocation = location
and dCollid = collid and dName = name and dConToken = conToken
where -- bType in ('P', 'R')
bQualifier = 'OA1A' and bName = 'TMF150A1'
group by dLocation, dCollid, dName
)
select dLocation, dCollid, dName,
substr(tc, 27) dconToken,
timestamp(left(tc, 26)) pcTimestamp
from tc
order by 1
;
x
select char(strip(bQualifier) || '.' || strip(bName), 24), btype,
char(strip(dCollid) || '.' || strip(dName), 24)
from sysibm.syspackdep
where dName = 'DBWK411'
;
x
select distinct
char(strip(dCollid) || '.' || strip(dName), 24) "package",
pcTimeStamp "preCompile",
hex(dConToken) "conToken"
from sysibm.syspackdep
left join sysibm.syspackage
on dCollid = collid and dName = name and dConToken = conToken
where bType in ('P', 'R')
and bQualifier like 'BJA_0001'
order by 1
;
x
select distinct coalesce(s.dep, t.dep), s.ty, t.ty
from
(
select 'sp' ty,
char(strip(dCollid)||'.'||strip(dName), 24) dep
from sysibm.syspackdep
where bType in ('P', 'R')
and bQualifier like 'BJA_0001'
) s
full join
(
select 'ta' ty,
char(strip(dCollid) || '.' || strip(dName), 24) dep
from sysibm.syspackdep
where -- bType in ('T') and
(bQualifier, bName) in
( select creator, name
from sysibm.sysTables
where dbName like 'BJA_0001'
)
) t
on t.dep = s.dep
order by 1
;
x
select char(strip(bQualifier) || '.' || strip(bName), 24), btype,
char(strip(dCollid) || '.' || strip(dName), 24)
from sysibm.syspackdep
where -- bType in ('T') and
(bQualifier, bName) in
( select creator, name
from sysibm.sysTables
where dbName like 'BJA_0001'
)
order by 1
;
x
select char(strip(bQualifier) || '.' || strip(bName), 24), btype,
char(strip(dCollid) || '.' || strip(dName), 24)
from sysibm.syspackdep
where bType in ('P', 'R')
and bQualifier like 'BJA_0001'
order by 1
;
x
select char(bname,12), char(bqualifier,12), btype
from sysibm.syspackdep
where bname = 'BJA80001'
;
select char(bname,12), char(bqualifier,12), btype
from sysibm.syspackdep
where dname = 'DBWK2'
;
x
select distinct p.collid, p.Name, p.version, p.type from
sysibm.syspackdep d join sysibm.syspackage p on p.location =
d.dLocation and p.collid = d.dCollid and p.name = d.dName
and p.conToken = d.dConToken where ( bQualifier = 'OA1A03'
and bName in ('TAV408A1'))
;
x
select distinct p.collid, p.Name, p.version, p.type from
sysibm.syspackdep d join sysibm.syspackage p on p.location =
d.dLocation and p.collid = d.dCollid and p.name = d.dName
and p.conToken = d.dConToken where ( bQualifier = 'VDPS2'
and bName in ('DTUNDERFIXCOMQ', 'DTUNDERFIXCOMP', 'IIXDU',
'IIXDUZWEI')) or ( bQualifier = 'VDPS3 ' and bName in ('vdps
table drei ')) or ( bQualifier = 'EFG' and bName in ('HIK'))
or ( (bQualifier, bName) in ( select tbcreator, tbname from
sysibm.sysindexes where ( creator = 'VDPS2' and name in
('IIXDU', 'IIXDUZWEI')) ) )
;
select distinct p.collid, p.Name, p.version, p.type from sysibm.syspackd
in sysibm.syspackage p on p.location = d.dLocation and p.collid = d.dCol
p.name = d.dName and p.conToken = d.dConToken where ( bQualifier = 'VD
d bName in ('DTUNDERFIXCOMQ', 'DTUNDERFIXCOMP', 'IIXDU', 'IIXDUZWEI')) o
alifier = 'VDPS3 ' and bName in ('vdps table drei ')) or ( bQualifier =
nd bName in ('HIK')) or ( (bQualifier, bName) in ( select tbcreator, tbn
m sysibm.sysindexes where ( creator = 'VDPS2' and name in ('IIXDU', 'IIX
)) ) )
;
select char(bname,12), char(bqualifier,12), btype
from sysibm.syspackdep
where dname = 'DBWK2'
;
select distinct char(p.collid, 8), char(p.Name,12), char(p.version, 30),
p.type
from sysibm.syspackdep d join sysibm.syspackage p
on p.location = d.dLocation and p.collid = d.dCollid
and p.name = d.dName and p.conToken = d.dConToken
where
-- ( bType in ('A', 'M', 'S', 'T', 'V') and
( ( bQualifier = 'gDB9998' and
bName in ('TWK003A', 'TWK001A')
) or
( bQualifier = 'dGDB9998' and
bName in ('TWK003A', 'TWK001A')
) or
( (bQualifier, bName) in
( select tbcreator, tbname
from sysibm.sysindexes
where creator = 'GDB9998' and
name = 'IQQ051A0'
)
)
)
-- )
;
x
}¢--- A540769.WK.SQL(CATPKGDQ) cre=2011-09-21 mod=2011-09-22-11.41.44 A540769 ---
with p (col, pkg) as
( select 'PC ', 'YPCSPER' from sysIbm.sysDummy1
union all select 'PC ', 'YPCTECH' from sysIbm.sysDummy1
union all select 'PC01', 'YPC0680' from sysIbm.sysDummy1
union all select 'PC02', 'YPC0680' from sysIbm.sysDummy1
union all select 'PC03', 'YPC0680' from sysIbm.sysDummy1
union all select 'PC04', 'YPC0680' from sysIbm.sysDummy1
union all select 'PC05', 'YPC0680' from sysIbm.sysDummy1
union all select 'PC06', 'YPC0680' from sysIbm.sysDummy1
union all select 'PC07', 'YPC0680' from sysIbm.sysDummy1
union all select 'PC08', 'YPC0680' from sysIbm.sysDummy1
union all select 'PC09', 'YPC0680' from sysIbm.sysDummy1
union all select 'PC10', 'YPC0680' from sysIbm.sysDummy1
union all select 'PC12', 'YPC0680' from sysIbm.sysDummy1
union all select 'PC13', 'YPCLOCA' from sysIbm.sysDummy1
union all select 'PC13', 'YPC0680' from sysIbm.sysDummy1
)
select bType, char(bQualifier, 8) cr, char(bName, 12) tb, count(*)
from sysibm.syspackdep d
where dLocation = ''
and (dCollid, dName) in (select * from p)
group by bType, bQualifier, bName
order by bType, bQualifier, bName,1,2,3
;;
select bType, char(bQualifier, 8) cr, char(bName, 12) tb,
dType, substr(dCollid, 1, 8) col,
substr(dName , 1, 8) pkg, d.*
from sysibm.syspackdep d
where (dCollid, dName) in (select * from p)
order by bType, bQualifier, bName,1,2,3
;;
}¢--- A540769.WK.SQL(CATPKGIX) cre=2010-02-19 mod=2010-11-30-13.33.36 A540769 ---
-- index Zugriffe pro Package auf TMF150A1
with v as -- packages die unsere Tabelle benutzen
( -- mit neuestem PreCompile pro Package
select dLocation loc, dCollid col, dName pkg,
substr(max(char(p.pcTimeStamp) || p.version), 27) ver
from sysibm.syspackdep d
left join sysibm.sysPackage p
on p.location = d.dLocation
and p.Collid = d.dCollid
and p.name = d.dName
and p.conToken = d.dConToken
and p.owner = 'CMNBATCH'
where -- bType in ('P', 'R')
bQualifier = 'OA1T' and bName = 'TMF150A1'
group by dLocation, dCollid, dName
)
, b as -- neusten bind pro package
(
select v.*, (select max(e.bind_time)
from cmnbatch.plan_table e
where e.COLLID = v.col
and e.PROGNAME = v.pkg
and e. VERSION = v.ver
) biTi
from v
)
-- explain rows dieser pacakges MIT unserer tabelle
-- groupiert pro index
select substr(col, 1, 8) col, substr(pkg, 1, 8) pkg,
substr(ver, 1, 20) vers,
TYPE, ACCESS, INDEX,
min(mc_o) MC_O, max(mc_o) MC_O, count(*) count,
biTi bindTime
from b
left join cmnBatch.plan_view1 v
on COLLID = col
and PROGNAME = pkg
and VERSION = ver
and BIND_TIME = biTi
and table = 'TMF150A1'
group by loc, col, pkg, ver, biTi, TYPE, ACCESS, INDEX
order by loc, col, pkg, ver, biTi, TYPE, ACCESS, INDEX
with ur
;;;
-- neuer Versuch, ohne group mit fetch first
select substr(strip(location) || '.' || strip(collid)
|| '.' || strip(name) || ':' || strip(version), 1, 30),
pcTimestamp, p.*
from sysibm.sysPackage p
where (name like 'MF%' or name like 'YMF%' or name like 'YYMF%')
and (collid, contoken) in
( select collid, contoken
from sysibm.sysPackage c
where c.location = p.location
and c.name = p.name
order by pcTimestamp desc, pcTimestamp desc,
collid asc
fetch first row only
)
order by location, collid, name, version
;,
}¢--- A540769.WK.SQL(CATPKGLI) cre=2012-01-30 mod=2012-02-03-17.10.33 A540769 ---
with l (pl, cx, new, old) as
( -- start
select name, 0, varchar('', 500), varchar('', 500)
from sysibm.sysPlan
where name like 'NF5%'
union all select l.pl, l.cx+1
, l.new || case when collid like 'A1%' or collid like 'A2%'
or collid like 'NTA%' then ''
else ', '
|| case when p.location='' then '' else strip(location)||'.' end
|| strip(collid) || '.' || strip(name) end
, l.old || ', '
|| case when p.location='' then '' else strip(location)||'.' end
|| strip(collid) || '.' || strip(name)
from l
join sysibm.sysPackList p
on p.planName = l.pl and p.seqNo = cx+1
where cx < 99999
)
select *
from l a
where cx=(select max(cx) from l r where a.pl = r.pl)
order by pl
with ur
;;;
select 'BIND PLAN('||strip(pl)||')'||
' OWNER(S101869) QUALIFIER(OA1T)+'
||' PKLIST('
||case when new = '' then '' else substr(new, 3) end new
, ')+'
from l a
where cx=(select max(cx) from l r where a.pl = r.pl)
;;;
with s as
( select name
, ( select count(*)
from sysibm.sysPackList l
where l.planName = p.name
and (collid like 'A1%' or collid like 'A2%')
) a12
from sysibm.sysplan p
)
select count(*)
, sum(case when a12 > 0 then 1 else 0 end) "a12>0"
, sum(case when a12 = 0 then 1 else 0 end) "a12=0"
, sum(case when a12 = 1 then 1 else 0 end) "a12=1"
, sum(case when a12 = 2 then 1 else 0 end) "a12=2"
, sum(case when a12 = 3 then 1 else 0 end) "a12=3"
, sum(case when a12 > 3 then 1 else 0 end) "a12>3"
from s
with ur
;;;
select collid, count(*)
from sysibm.sysPackList
where collid like 'A1%' or collid like 'A2%'
group by collid
order by collid
with ur
;
select current server, count(*)
, sum(case when collid = 'A1P' then 1 else 0 end) a1p
, sum(case when collid = 'A2P' then 1 else 0 end) a2p
, sum(case when collid = 'A1T' then 1 else 0 end) a1t
, sum(case when collid = 'A2T' then 1 else 0 end) a2t
, sum(case when collid = 'A1A' then 1 else 0 end) a1a
, sum(case when collid = 'A2A' then 1 else 0 end) a2a
, current timestamp
from sysibm.sysPackList
with ur
;;;
select planName, count(*)
, max(case when collid <> 'A1P' then ''
else substr(strip(char(seqNo)) || ': '
|| strip(location) || '.' || strip(collid) || '.'
|| strip(name), 1, 20) end)
, max(case when collid <> 'A2P' then ''
else substr(strip(char(seqNo)) || ': '
|| strip(location) || '.' || strip(collid) || '.'
|| strip(name), 1, 20) end)
, max(case when collid <> 'A1T' then ''
else substr(strip(char(seqNo)) || ': '
|| strip(location) || '.' || strip(collid) || '.'
|| strip(name), 1, 20) end)
, max(case when collid <> 'A2T' then ''
else substr(strip(char(seqNo)) || ': '
|| strip(location) || '.' || strip(collid) || '.'
|| strip(name), 1, 20) end)
, max(case when collid <> 'A1A' then ''
else substr(strip(char(seqNo)) || ': '
|| strip(location) || '.' || strip(collid) || '.'
|| strip(name), 1, 20) end)
, max(case when collid <> 'A2A' then ''
else substr(strip(char(seqNo)) || ': '
|| strip(location) || '.' || strip(collid) || '.'
|| strip(name), 1, 20) end)
from sysibm.sysPackList
where collid in ('A1A', 'A2A', 'A1T', 'A2T', 'A1P', 'A2P')
group by planName
with ur
}¢--- A540769.WK.SQL(CATPKGMG) cre=2012-01-27 mod=2012-06-25-07.51.24 A540769 ---
select *
from sysibm.sysPackage
where name = 'YRMVER'
;
select *
from sysibm.sysPackCopy
where name = 'YRMVER'
;;
with dt as
(
select dLOCATION, dCollid, dName, dContoken
, max(translate(dType, 's ', ' NTOP', ' ')) --' ' normal
|| max(translate(dType, 'N ', 'N NTOP', ' ')) --NativeSqlRoutine
|| max(translate(dType, 'T ', 'T NTOP', ' ')) --Trigger
|| max(translate(dType, 'O ', 'O NTOP', ' ')) --Original
|| max(translate(dType, 'P ', 'P NTOP', ' ')) --Previous
|| max(translate(dType, ' ', ' NTOP', ' ')) --any others?
dTypes
from sysibm.sysPackDep
-- where dLocation = '' and dcollid = 'MF' and dname like 'MF5%'
group by dLocation, dCollid, dName, dContoken
)
select dTypes, count(*)
from dt
-- where dLocation = '' and dcollid = 'MF'
group by dTypes
}¢--- A540769.WK.SQL(CATPKGST) cre=2008-07-15 mod=2008-07-15-13.11.04 F540769 ---
select CHAR(strip(a.location) || '.'
|| strip(a.collid) || '.' || strip(a.name) || '.'
|| HEX(a.CONTOKEN) || '.' || strip(a.VERSION) , 80),
a.seqNo, a.stmtno, a.stmt
from sysibm.syspackstmt a, sysibm.syspackdep d
where a.location = d.dLocation
and a.collid = d.dCollid
and a.name = d.dName
and a.contoken = d.dConToken
-- and bQualifier = 'GDB9998'
and bName like 'TRT%'
; -- and contoken = x'17CAABC306F936E8'
and stmtno = 3679
;
select distinct
char(strip(dCollid) || '.' || strip(dName), 24) "package",
pcTimeStamp "preCompile",
hex(dConToken) "conToken"
from sysibm.syspackdep
left join sysibm.syspackage
on dCollid = collid and dName = name and dConToken = conToken
where bType in ('P', 'R')
and bQualifier like 'BJA_0001'
order by 1
;
x
x
select * -- count(*), seqno, sectno
from sysibm.syspackstmt
where location = ''
and collid = 'CZ' and name = 'YCZTCOC'
and contoken = x'17CAABC306F936E8'
and stmtno = 3679
;
x
select count(*), location, collid, name, hex(contoken), stmtno
from sysibm.syspackstmt
group by location, collid, name, hex(contoken), stmtno
order by 1 desc
fetch first 100 rows only
with ur
;
where seqno = 10 and sectno = 10
-- order by 2, 3
select * -- count(*), seqno, sectno
from sysibm.syspackstmt
where seqno = 10 and sectno = 10
-- order by 2, 3
select * -- count(*), seqno, sectno
from sysibm.syspackstmt
where seqno = 10 and sectno = 10
-- order by 2, 3
}¢--- A540769.WK.SQL(CATPKGVE) cre=2008-11-17 mod=2008-12-04-11.00.30 F540769 ---
select distinct
-- char(strip(collid), 8) collid,
-- char(strip(pkg), 8) pkg,
char(strip(version), 26) version,
-- contoken, -- vovie,
-- char(strip(owner), 8) owner,
bindTime
from
(
select collid, name pkg, version, hex(conToken) conToken,
valid || operative || validate || isolation || explain vovie,
owner, bindTime
from sysibm.sysPackage
union all select
collid, progname pkg, version, '-- plan tb --' conToken,
' ' vovie,
' ' owner, bind_Time bindTime
from cmnbatch.plan_table
group by collid, progname, version, bind_time
) j
where pkg = 'YNI601G'
-- order by collid, pkg, version, bindTime, conToken
order by 1, 2
}¢--- A540769.WK.SQL(CATPKG2) cre=2013-02-19 mod=2013-02-19-18.55.13 A540769 ---
select collid, count(*), max(lastUsed), max(bindtime)
from sysibm.sysPackage
where collid like 'NTA%'
group by collid
}¢--- A540769.WK.SQL(CATPKHIN) cre=2016-07-27 mod=2016-07-27-13.28.14 A540769 ---
select substr(optHint, 1, 8) optHint, lastUsed
, ( select count(*) from sysibm.sysPackage n
where n.location = p.location
and n.collid = p.collid and n.name = p.name
and n.timestamp > p.timestamp) newer
, strip(collid) || '.' || strip(name) || '#' || strip(version)
, p.*
from sysibm.sysPackage p
where opthint <> ''
order by 2 desc
}¢--- A540769.WK.SQL(CATPKL) cre=2014-12-17 mod=2014-12-17-12.09.47 A540769 ----
select *
from sysibm.sysPackList
where planname = 'AUO9PLN3'
}¢--- A540769.WK.SQL(CATPKLIS) cre=2011-11-18 mod=2013-02-20-08.59.25 A540769 ---
select collid, count(*)
from sysibm.syspacklist
where collid like 'NTA%'
group by collid
order by collid
; x;
select max(seqno), count(*), count(distinct planName)
from sysibm.syspacklist
with ur
}¢--- A540769.WK.SQL(CATPKSTI) cre=2014-10-16 mod=2014-10-16-10.31.46 A540769 ---
-- show statement id in hex, as shown in SMF
select seqNo, stmtNo, sectNo -- , stmt_id
, hex(stmt_id) stmtIdHex -- in mainView wird hex ||
, substr(statement, 1, 200)
from sysibm.sysPackStmt
where name = 'YWBIO' -- package name
and conToken = x'199D6BB10728C4FA' -- im Report in hex
order by seqno
}¢--- A540769.WK.SQL(CATPKSYS) cre=2016-10-21 mod=2016-10-21-09.48.37 A540769 ---
select *
from sysibm.syspksystem
where name = 'MF0000'
}¢--- A540769.WK.SQL(CATPKVER) cre=2016-08-29 mod=2016-09-07-16.41.38 A540769 ---
select substr(strip(p.collid) || '.' || p.name, 1, 20)
, substr(p.version, 1, 30) pVersion
, substr(o.version, 1, 30) oVersion
, days(timestamp(o.lastUsed)) - days(p.timestamp)
, p.lastUsed pLast
, o.lastUsed oLast
, p.timestamp pTimestamp
, o.timestamp oTimestamp
, p.pctimestamp pPcTimestamp
, o.pctimestamp oPcTimestamp
, p.*, o.*
from sysibm.sysPackage p
join sysibm.sysPackage o
on o.location = p.location
and o.collid = p.collid
and o.name = p.name
and (( o.timestamp < p.timestamp
or o.pcTimestamp < p.pctimestamp
) and o.lastUsed > date(p.timestamp) + 3 days
)
where p.lastUsed > current date - 100 days
and o.lastUsed > current date - 200 days
order by 4 desc, p.collid, p.name, p.version, p.version
fetch first 1000 rows only
with ur
;x;
select ( select count(*)
from sysibm.sysPackage o
where o.location = p.location
and o.collid = p.collid
and o.name = p.name
and (( o.timestamp < p.timestamp
or o.pcTimestamp < p.pctimestamp
) and o.lastUsed > date(p.timestamp)
)
) cOld
from sysibm.sysPackage p
where lastUsed > current date - 10 days
order by cOld desc
fetch first 100 rows only
;x;
group by collid, name
having count(*) > 1
, count(distinct version) cVers
, collid, name
, min(version), max(version)
, min(timestamp), max(timestamp)
, min(pcTimestamp), max(pcTimestamp)
from sysibm.sysPackage
where lastUsed > current date - 10 days
group by collid, name
having count(*) > 1
order by 1 desc, collid, name
fetch first 100 rows only
with ur
select count(*), count(distinct conToken) cCon
, count(distinct version) cVers
, collid, name
, min(version), max(version)
, min(timestamp), max(timestamp)
, min(pcTimestamp), max(pcTimestamp)
from sysibm.sysPackage
where lastUsed > current date - 10 days
group by collid, name
having count(*) > 1
order by 1 desc, collid, name
fetch first 100 rows only
with ur
set current application compatibility 'V11R1';
with c2 as
(
select p.*
, min(3
, row_number() over(partition by location, collid, name
order by timestamp desc)) tSeq
, case when lastUsed > current date - 7 days then '1week'
when lastUsed > current date - 1 month then '2mon'
when lastUsed > current date - 1 year then '3year'
else '4old' end lastUse
from sysibm.sysPackage p
)
, cp as
(
select lastUse, valid, operative, dbProtocol, tSeq
, count(*) v
from c2
group by lastUse, valid, operative, lastUse, dbProtocol, tSeq
)
select substr(lastUse, 2), valid, operative
, dbProtocol, tSeq
, sum(v) cVers
from cp
group by cube(operative, lastUse, valid, dbProtocol, tSeq)
with ur
;x;
set current application compatibility 'V11R1';
with c2 as
(
select p.*
, row_number() over(partition by location, collid, name
order by timestamp desc) tSeq
, case when lastUsed > current date - 7 days then '1week'
when lastUsed > current date - 1 month then '2mon'
when lastUsed > current date - 1 year then '3year'
else '4old' end lastUse
from sysibm.sysPackage p
)
select count(*)
, sum(case when valid = 'Y' then 1 else 0 end) valid
, sum(case when valid <> 'N' then 1 else 0 end) valNotN
, sum(case when lastUsed > current date - 400 days
then 1 else 0 end) n400
, sum(case when tSeq <= 2 then 1 else 0 end) tSe2
, sum(case when valid <> 'N'
and lastUsed > current date - 400 days
then 1 else 0 end) val400
, sum(case when valid <> 'N'
and lastUsed > current date - 400 days
and tSeq <= 2
then 1 else 0 end) val400se2
from c2
with ur
;x;
set current application compatibility 'V11R1';
with c2 as
(
select p.*
, case when lastUsed > current date - 7 days then '1week'
when lastUsed > current date - 1 month then '2mon'
when lastUsed > current date - 1 year then '3year'
else '4old' end lastUse
from sysibm.sysPackage p
)
, cp as
(
select lastUse, count(*) v
from c2
group by location, collid, name, lastUse
)
select v, substr(lastUse, 2), count(*) cp, sum(v) cVers
from cp
group by rollup(lastUse, v)
with ur
;x;
$#out 20160907 16:40:54
COL1 ...
PVERSION ...
OVERSION ...
COL4 ...
PLA...
...
...
...
...
COL1 PVERSION OVERSION COL4 PLA...
BP.YBPSTAM BPST0001265BF6605F BPST00007158D24A24 2738 07....
FADB2.SQLPCRTN 2012-06-19-16.38.27.690246 2011-04-29-09.57.59.868239 1520 12....
YY.YYVP03I VIP00000766423EA3B VIP00000736305E67B 1206 07....
PV.A5PO352 2013-06-30-02.47.27.062357 2013-02-06-15.43.51.069288 1126 04....
PV.A5PO355 2013-06-30-02.47.33.131118 2013-02-06-15.44.12.092387 1126 04....
PV.A5PO357 2013-06-30-02.47.48.905716 2013-02-06-15.44.53.919417 1126 04....
PV.A5PO358 2013-06-30-02.47.52.591627 2013-02-06-15.45.00.825749 1126 04....
PV.A5PO356 2013-08-13-17.20.46.968322 2013-02-06-15.44.21.687396 1118 04....
PC.YPCTECH IVN00001466526B28E IVN00000795E820606 1035 07....
ID.ID6500 EOSP000129 EOSP0000375A1B0EB3 818 07....
YY.YITRFTG TABS00045066F41A3A TABS0001735AA7E592 663 07....
OE.YOEP209 OE00000242681203CA OE0000007959BFC8B0 469 07....
NF.YNFIB11 IB000001126859705C IB0000010066FA8024 370 07....
NF.YNFIB16 IB0000011368597090 IB00000103673B2D92 370 07....
WP.YWPRCBX DBH000029868534338 DBH000022361B86A4E 368 07....
NF.YNFIB15 IB000001126859706D IB0000010066FA8157 362 06....
WP.YWPR7BX DBH00002986853443F DBH000022361B86A6F 354 07....
AV02.YAVVDPS AIS000076267C73C55 AIS00006766575B5B4 344 07....
NF.YNFIB13 IB0000011268597067 IB00000100671E0F56 294 06....
WU.YWUPUT TU0000041167F69F13 TU000001735C1B6EB6 280 07....
WP.YWPR7HX DBH000030668DE4CA3 DBH000022361B86A73 270 06....
WP.YWPR1P2 DBH000030668DA822D DBH00001825DF61E7A 251 07....
WP.YWPR2HX DBH000030668DE4C58 DBH000025264999E2E 251 07....
WP.YWPR3HX DBH000030668DE4C61 DBH000025264999E74 251 06....
WP.YWPR6PX DBH000030668D3A9F1 DBH000020560DB5945 250 07....
SW.YSWDB2U SWTL000106687FAE88 SWTL000084641B206E 215 07....
CT.YCTS200 CANA000141692319B9 CANA000112655B2FB0 193 07....
WP.YWPL2P2 DBH000030668DE4C0E DBH00001825DF61620 179 07....
FADB2.SQLPCRTN 2015-12-18-13.29.05.917548 2011-04-29-09.57.59.868239 130 07....
FADB2.SQLPLRTN 2014-09-18-18.32.39.433616 2011-11-04-00.14.33.902781 130 07....
ER.YERDGET EAMR00023169CE491E EAMR00019267274EF2 126 07....
CI.YCIAA1 NUGN0000806915E64A NUGN000074686E8194 124 07....
VV.YVVZZ05 VDSS00041369B29034 VDSS00036466E30063 123 07....
FADB2.SQLPCRTN 2015-12-18-13.29.05.917548 2012-06-19-16.38.27.690246 106 07....
NI.NI7995 SIR0000297 ALIS000169 104 09....
ZV.YZVESRT BESR00001269A42A86 ZED000007262B46532 100 13....
AV.YAVX051 AIS00008476A049E28 AIS00008376A01B827 88 12....
AV.YAVX101 AIS00008476A049E88 AIS00008376A01EB2B 87 10....
AV.YAVX051 AIS00008376A01B827 AIS00008476A049E28 64 13....
CK.YCKDCBB DCA000041169A83452 DCA0000413699C5679 57 07....
KX.YKXGFMB HYPO0001716A4E07D6 TLBO0000636989DACE 36 12....
KS.YKSCIFE EBVV0006006A4BCCF7 EBVV00055167ED2C1C 27 07....
RM.YRMORGP PARS0003716A14725C PARS00032565007918 27 07....
WP.YWPR1PX DBH00003346A3417E0 DBH000030668D3A9D7 27 07....
WP.YWPR2HX DBH00003346A34181D DBH000030668DE4C58 27 07....
WP.YWPR6PX DBH00003346A3418BD DBH000030668D3A9F1 27 07....
WP.YWPR1QX DBH00003346A3417F6 DBH000030668DA8237 26 07....
WP.YWPR2PX DBH00003346A341831 DBH000030668D3A9DB 26 07....
WP.YWPR3HX DBH00003346A34184F DBH000030668DE4C61 26 07....
WP.YWPR7HX DBH00003346A3418D7 DBH000030668DE4CA3 26 07....
WA.WA5800 VEGA000516 VEGA000509 12 10....
WI.YWIABV WS8I0009546A33AC1E WS8I00092468B59A0A 7 07....
WC.YWC0150 CSPS0001436A292498 CSPS0001396A21B6AD 4 11....
53 rows fetched: select substr(strip(p.collid) || '.' || p.name, 1, 20) , ...
fatal error in WSH: SQLCODE = -104: ILLEGAL SYMBOL "X". SOME SYMBOLS THAT MIGHT
BE LEGAL ARE: <ERR_STMT> <WNG_STMT> GET SQL SAVEPOINT HOLD FREE
ASSOCIATE
src x
> <<<pos 1 of 1<<<
sql = x
sqlCode 0: rollback
$#out
}¢--- A540769.WK.SQL(CATPLACL) cre=2016-03-09 mod=2016-03-09-21.35.14 A540769 ---
set current application compatibility 'V11R1';
with p as
(
select *
from sysibm.sysPlan p
-- where name like 'R%'
)
, li as
(
select planName pl, case when location = '' then ''
else strip(location) || '.' end
|| strip(collid) || '.' || strip(name) col
from sysibm.sysPackList pl
)
, lu (pl, lst, la, seq) as
(
select name, varchar('', 9000), varchar('', 50), 0
from p
union all select pl, strip(lst || ' ' || la)
, (select min(col)
from li
where lu.pl = li.pl and lu.la < li.col
)
, seq + 1
from lu where la is not null and seq < 1000
)
, l as
(
select count(*) cnt, max(seq) seq, lst
from lu
where la is null or seq >= 1000
group by rollup(lst)
)
select cnt, seq, lst
from l
order by lst
}¢--- A540769.WK.SQL(CATPLAN) cre=2012-08-28 mod=2016-11-03-09.21.05 A540769 ---
$#@
$=dbSy=dbtf
call sqlConnect $dbSy
call sqlSel "select p.NAME, l.SEQNO, l.LOCATION, l.COLLID, l.NAME",
"from sysibm.sysPlan p",
"left join sysibm.sysPackList l",
"on l.planName = p.name",
"where p.name like 'M%'",
"order by 1, 2"
$|
$$- $dbSy date('s')
call fmtFTab
$#out 20120828 17:13:03
dbtf 20120828
NAME NO LOCATION COLLID COL5
}¢--- A540769.WK.SQL(CATPLANA) cre=2013-05-24 mod=2013-05-24-20.35.43 A540769 ---
select count(*), CONCUR_ACC_RES, min(name), max(name)
from sysibm.sysPlan
group by CONCUR_ACC_RES
with ur
}¢--- A540769.WK.SQL(CATPLARB) cre=2013-05-24 mod=2013-05-26-16.10.39 A540769 ---
$=dbSys = dc0g
$;
$<~tmp.texv(rebind)
$@for ii $@¢
parse value $ii with pl dt rb
if pl <> 'A005DUM' then
iterate
rb = strip(rb)
say plan pl date dt rebind rb
rx = sqlDsn(st, $dbSys, rb, '*')
if rx <> -99 then do /* output anzeigen */
say 'rc='rx 'for rebind' pl
do sx=1 to m.st.0
say '.' m.st.sx
end
end
$!
$#out 20130524 21:52:40
$#out 20130524 21:51:13
$#out 20130524 21:49:31
}¢--- A540769.WK.SQL(CATPLARE) cre=2013-05-24 mod=2013-05-27-08.22.13 A540769 ---
$#@
$=dbSys= DBTF
$=trg= DSN.TX.PLANRZZ(DE0GS2)
$=rz=- sysvar(sysnode)
if 1 then $@/fromDb2/ $** read db2 catalog
call sqlConnect $dbSys
$;
$>.fEdit('dsn.tx.plan'$-$rz'('$-$dbSys') ::v')
$<#/sql/
with p as
(
select *
from sysibm.sysPlan p
-- where name like 'M%'
)
, l1 (pl, ls, seq) as
(
select name, varchar('', 9000), 0
from p
union all select pl,
ls || ', ' || case when location = '' then ''
else strip(location) || '.' end
|| strip(collid) || '.' || strip(name), seq + 1
from l1, sysibm.sysPackList pl
where l1.pl = pl.planName and l1.seq+1 = pl.seqNo and l1.seq<1000
)
, cl as
(
select pl, max(ls) ls , max(seq) seq from l1
group by pl
)
select name, bindDate
, 'rebind plan(' || strip(name)
|| ') owner(' || strip(creator)
|| ') qualifier(' || strip(qualifier)
|| case when ls = '' then ') noPkList '
else ') pkList('
|| replace(substr(ls, 3), ' ') || ') ' end
|| case when DEFERPREP = 'Y' then ''
when deferPrep = ' ' then 'NO' /* default ???*/
when deferPrep = 'N' then 'NO'
else '???' || deferPrep end || 'DEFER(PREPARE'
|| ') ACQUIRE(' || case when acquire = 'A' then 'ALLOCATE'
when acquire = 'U' then 'USE'
else '???' || acquire end
|| ') CACHESIZE('|| strip(char(cachesize))
|| ') CURRENTDATA('|| case when EXPREDICATE = 'B' then 'NO'
when EXPREDICATE = 'C' then 'YES'
when EXPREDICATE = 'N' then 'NO'
else '???' || EXPREDICATE || '???' end
|| ') DEGREE(' || case when degree = '' then '1'
else strip(degree) end
|| ') IMMEDWRITE(' || case when immedWrite = 'Y' then 'YES'
when immedWrite = 'N' then 'NO'
when immedWrite = ' ' then 'NO' /*def*/
else '???' || immedWrite end
|| ') ISOLATION(' || case when isolation = 'R' then 'RR'
when isolation = 'T' then 'RS'
when isolation = 'S' then 'CS'
when isolation = 'U' then 'UR'
else '???' || isolation end
|| ') RELEASE(' || case when release = 'C' then 'COMMIT'
when release = 'D' then 'DEALLOCATE'
else '???' || release end
|| ') VALIDATE(' || case when validate = 'B' then 'BIND'
when validate = 'R' then 'RUN'
else '???' || validate end
|| ')' rebind
from p left join cl on p.name = cl.pl
order by p.name
--order by cast('a' || p.name as varchar(24) ccsid unicode
-- for mixed data)
--fetch first 1000 rows only
$/sql/
call sqlSel
$|
$$- 'plan bindDa rebind' sysvar(sysNode) $dbSys date('s') time()
$@forWith ii $$- left($NAME, 8) $BINDDATE $REBIND
call sqlDisconnect
$/fromDb2/
M.cEbc = '_#@ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
M.cUni = '#0123456789@ABCDEFGHIJKLMNOPQRSTUVWXYZ_'
pLa = ''
if 1 then $@/selDate/ $** select dates + rz2
tIn = readNxBegin(tIn, $trg)
tPl = ''
tOu = jOpen(file('dsn.tx.plan'$rz'('$dbSys's2)'), '>')
tLi = readNx(tIn)
call jWrite tOu, strip(m.tLi) 'matching' $rz $dbSys date() time()
$<dsn.tx.plan$rz($dbSys)
$>dsn.tx.plan$rz(${dbSys}s1)
if \ ${>ii} then
call err 'empty file'
$$ $ii
$@for ii $@¢
parse value $ii with pl dt rb
if translate(pLa, m.cEbc, m.cUni) ,
>>= translate(pl , m.cEbc, m.cUni) then do
say 'unicode' pLa '>>=' pl'|'
say ' tran' translate(pLa, m.cEbc, m.cUni) '>>=' ,
translate(pl, m.cEbc, m.cUni)
end
pLa = pl
do while translate(tPl, m.cEbc, m.cUni) ,
<< translate(pl , m.cEbc, m.cUni)
tLi = readNx(tIn)
if tLi == '' then
tPl = 'ffff'x
else
tPl = word(m.tLi, 1)
$** say 'pl' pl 'tPl' tPl (pl == tPl)
end
if 0 then do
if dt = 130520 | dt = 130524 then do
$$ $ii
if pl = tPl then
call jWrite tOu, m.tLi
end
end
else if pl = tPl then do
$$ $ii
call jWrite tOu, m.tLi
end
$!
call jClose tOu
call readNxEnd tIn
$/selDate/
if 0 then $@/compare/ $** compare
tIn = readNxBegin(tIn, 'dsn.tx.plan'$rz'('${dbSys}'s2)')
tPl = ''
tLi = readNx(tIn)
$<dsn.tx.plan$rz(${dbSys}s1)
$>dsn.tx.plan$rz(${dbSys}s3)
if \ ${>ii} then
call err 'empty file'
$$- 'compare s1 s2' date('s') time()
wasEq = 1
diOn = left('', 14, 'o')
diPl = left('', 14, '_')
diEq = left('', 14, '=')
$@for ii $@¢
parse value $ii with pl dt rb
do while translate(tPl, m.cEbc, m.cUni) ,
<< translate(pl , m.cEbc, m.cUni)
if \ wasEq then
$$- 'dbof o' diOn strip(m.tLi, 't')
wasEq = 0
tLi = readNx(tIn)
if tLi == '' then
tPl = 'ffff'x
else
parse var m.tLi tPl tDt trb
end
wasEq = pl == tPl
ii = strip($ii, 't')
if \ wasEq then
$$- 'DE0G o' diOn ii
else do
cx = compare(rb, trb)
if rb = trb then
$$- '======' diEq ii
else do
di = ''
tr = ''
fr = ''
do wx=1 to max(words(rb), words(tRb))
f1 = word(rb, wx)
t1 = word(tRb, wx)
cx = compare(f1, t1)
if cx = 0 then do
di = di'='
fr = fr f1
tr = tr t1
end
else do
if left(f1, 1) <> 'n' then
di = di || left(f1, 1)
else
di = di || left(t1, 1)
rl = max(length(f1), length(t1))+1-cx
fr = fr left(f1, cx-1)'\'substr(f1, cx, rl)
tr = tr left(t1, cx-1)'/'substr(t1, cx, rl)
end
end
$$- 'DE0G \' di left(ii, 15) || fr
$$- 'DBOF /' diPl left(m.tli, 15) || tr
end
end
$!
call readNxEnd tIn
$/compare/
if 0 then $@/pkList/
$<dsn.tx.plan$rz(${dbSys}s2)
$>dsn.tx.plan$rz(${dbSys}s4)
if \ ${>ii} then
call err 'empty file'
$$- 'filter pkList' date('s') time() 'from' strip($ii)
pRem = 'A1.* A1A.* A1B.* A1L.* A1T.* A1P.* A1Z.*' ,
'A2.* A2A.* A1B.* A2L.* A2T.* A2P.* A2Z.*' ,
'NTA1A.* NTA1E.* NTA1I.* NTA1T.* NTA1U.* NTA1P.* NTA1Z.*',
'NTA2A.* NTA2E.* NTA2I.* NTA2T.* NTA2U.* NTA2P.* NTA2Z.*',
'NT2AA.* NT2AE.* NT2AI.* NT2AT.* NT2AU.* NT2AP.* NT2AZ.*',
'NTA1G.* NTA1L.*',
'NTA2G.* NTA2L.*',
'NT2AG.* NT2AL.*',
'NTA1.* NTA1E.* NTAIE.* NTAE1.* NTAIE.* NTAI1.* NTAIF.* NTAI1.*',
'NTAE.*'
$@for ii $@¢
li = strip($ii, 't')
px = pos(' pkList(', li)
if px < 1 then do
if pos(' noPkList ', li) < 1 then
call err 'no pkList in' li
$$ $ii
iterate
end
pkl = word(substr(li, px), 1)
if right(pkl, 1) \== ')' | substr(pkL, 7, 1) \== '(' then
call err 'bad pkList:' pkl
old = translate(substr(pkl, 8, length(pkl)-8), ' ', ',')
new = ''
do ox=1 to words(old)
o1 = word(old, ox)
if \ ( wordPos(o1, pRem) > 0 ,
| (abbrev(o1, '*.') & wordPos(substr(o1, 3), pRem) > 0))then
new = new','word(old, ox)
end
if new = '' then do
ln = left(li, px)'noPkList' substr(li, px + length(pkl) + 1)
say 'warning' word(li, 1) 'got noPkList'
end
else
ln = left(li, px+7)substr(new, 2)substr(li, px+length(pkl))
$$- ln
$!
$/pkList/
$#out 20130527 08:20:38
$#out 20130526 17:11:59
$#out 20130526 17:05:25
$#out 20130526 16:56:15
}¢--- A540769.WK.SQL(CATPLA2) cre=2013-02-19 mod=2013-02-19-12.40.53 A540769 ---
select name, binddate
from sysibm.sysPlan
order by binddate desc
fetch first 100 rows only
;
}¢--- A540769.WK.SQL(CATRECOV) cre=2015-09-11 mod=2015-09-14-11.18.48 A540769 ---
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 44 for
with two (i) as
(
select 1 from sysibm.sysDummy1
union all select 2 from sysibm.sysDummy1
)
, p2 as
(
select s.dbName db, s.name ts, p.partition pa, two.i inst
, p.space pSpc
, case when s.instance = 1 and s.clone = 'N' then ''
when s.clone = 'N' then '' || s.instance
when s.instance = two.i then '' || two.i || 'base'
else '' || two.i || 'clon' end clonI
, ( select max( substr(char(timestamp), 1, 26) || char(icType, 1)
|| right(' ' || dsNum, 5))
|| max(case when icType <> 'I'
then substr(char(timestamp), 1, 26) || char(icType, 1)
|| right(' ' || dsNum, 5) else '' end )
from sysibm.sysCopy c
where s.dbName = c.dbName
and s.name = c.tsName
and c.dsNum = p.partition
--??? and c.instance = two.i
and icType in ('A','C','F','R','X' -- logBase
,'P','S','W','Y' -- logDiscontinu
,'I')
and (icType <> 'A' or sType = 'A')
) icPa
, ( select max(substr(char(timestamp), 1, 26) || char(icType, 1)
|| right(' ' || dsNum, 5))
|| max(case when icType <> 'I'
then substr(char(timestamp), 1, 26) ||char(icType, 1)
|| right(' ' || dsNum, 5) else '' end )
from sysibm.sysCopy c
where s.dbName = c.dbName
and s.name = c.tsName
and c.dsNum = 0 and p.partition <> 0
--??? and c.instance = two.i
and icType in ('A','C','F','R','X' -- logBase
,'P','S','W','Y' -- logDiscontinu
,'I')
and (icType <> 'A' or sType = 'A')
) ic0
from sysibm.sysTableSpace s
join two on s.instance = two.i or s.clone = 'Y'
join sysibm.sysTablePart p
on s.dbName = p.dbName and s.name = p.tsName
)
, p3 as
(
select db, ts, pa, inst, pSpc, clonI
, max(value(substr(icPa, 33, 32), '1111-11-11-11.11.11.111111 ')
,value(substr(ic0 , 33, 32), '1111-11-11-11.11.11.111111 ')
) basTTP
, max(value(substr(icPa, 1, 32), '1111-11-11-11.11.11.111111 ')
,value(substr(ic0 , 1, 32), '1111-11-11-11.11.11.111111 ')
) incTTP
from p2
)
, p4 as
(
select p3.*
, substr(basTTP, 27, 1) basTy
, substr(basTTP, 28, 5) basPa
, timestamp(substr(basTTP, 1, 26)) basTst
, substr(incTTP, 27, 1) incTy
, substr(incTTP, 28, 5) incPa
, timestamp(substr(incTTP, 1, 26)) incTst
from p3
)
, p as
(
select p4.*
, case when pSpc = -1 then 'okDefNo'
when basTy not in ('A','C','F','R','X') then 'logDisc'
when basTst < current timestamp - 23 days then 'tooOld'
else 'okLog' end recov
, basTy || case basTy
when ' ' then '=missing'
when 'A' then '=addPart'
when 'C' then '=create'
when 'F' then '=fulCopy'
when 'I' then '=incCopy'
when 'P' then '=recPIT'
when 'R' then '=LoaRpLog'
when 'S' then '=LoaRpLoNo'
when 'W' then '=ReorgLoNo'
when 'X' then '=ReorgLog'
when 'Y' then '=LoaRsLoNo'
else '=???' end basTyTx
from p4
)
select count(*), recov, basTyTx, incTy
from p
group by recov, basTyTx, incTy
;
explain plan set queryno = 66 for
with two (i) as
(
select 1 from sysibm.sysDummy1
union all select 2 from sysibm.sysDummy1
)
, p2 as
(
select s.dbName db, s.name ts, p.partition pa, two.i inst
, 0 pSpc -- p.space pSpc
, case when s.instance = 1 and s.clone = 'N' then ''
when s.clone = 'N' then '' || s.instance
when s.instance = two.i then '' || two.i || 'base'
else '' || two.i || 'clon' end clonI
, ( select max(substr(char(timestamp), 1, 26) || char(icType, 1)
|| right(' ' || dsNum, 5) )
from sysibm.sysCopy c
where s.dbName = c.dbName
and s.name = c.tsName
and c.dsNum = p.partition
--??? and c.instance = two.i
and icType in ('A','C','F','R','X' -- logBase
,'P','S','W','Y') -- logDiscontinu
and (icType <> 'A' or sType = 'A')
) basPa
, ( select max(substr(char(timestamp), 1, 26) || char(icType, 1)
|| right(' ' || dsNum, 5))
from sysibm.sysCopy c
where s.dbName = c.dbName
and s.name = c.tsName
and c.dsNum = p.partition
--??? and c.instance = two.i
and icType in ('A','C','F','R','X' -- logBase
,'P','S','W','Y' -- logDiscontinu
, 'I')
and (icType <> 'A' or sType = 'A')
) incPa
, ( select max(substr(char(timestamp), 1, 26) || char(icType, 1)
|| right(' ' || dsNum, 5) )
from sysibm.sysCopy c
where s.dbName = c.dbName
and s.name = c.tsName
and c.dsNum = 0 and p.partition <> 0
--??? and c.instance = two.i
and icType in ('A','C','F','R','X' -- logBase
,'P','S','W','Y') -- logDiscontinu
and (icType <> 'A' or sType = 'A')
) bas0
, ( select max(substr(char(timestamp), 1, 26) || char(icType, 1)
|| right(' ' || dsNum, 5))
from sysibm.sysCopy c
where s.dbName = c.dbName
and s.name = c.tsName
and c.dsNum = 0 and p.partition <> 0
--??? and c.instance = two.i
and icType in ('A','C','F','R','X' -- logBase
,'P','S','W','Y' -- logDiscontinu
, 'I')
and (icType <> 'A' or sType = 'A')
) inc0
from sysibm.sysTableSpace s
join two on s.instance = two.i or s.clone = 'Y'
join sysibm.sysTablePart p
on s.dbName = p.dbName and s.name = p.tsName
)
, p3 as
(
select db, ts, pa, inst, pSpc, clonI
, max( value(basPa, '1111-11-11-11.11.11.111111 ')
, value(bas0 , '1111-11-11-11.11.11.111111 ')) basTTP
, max( value(incPa, '1111-11-11-11.11.11.111111 ')
, value(inc0 , '1111-11-11-11.11.11.111111 ')) incTTP
from p2
)
, p4 as
(
select p3.*
, substr(basTTP, 27, 1) basTy
, substr(basTTP, 28, 5) basPa
, timestamp(substr(basTTP, 1, 26)) basTst
, substr(incTTP, 27, 1) incTy
, substr(incTTP, 28, 5) incPa
, timestamp(substr(incTTP, 1, 26)) incTst
from p3
)
, p as
(
select p4.*
, case when pSpc = -1 then 'okDefNo'
when basTy not in ('A','C','F','R','X') then 'logDisc'
when basTst < current timestamp - 21 days then 'tooOld'
else 'okLog' end recov
, basTy || case basTy
when ' ' then '=missing'
when 'A' then '=addPart'
when 'C' then '=create'
when 'F' then '=fulCopy'
when 'I' then '=incCopy'
when 'P' then '=recPIT'
when 'R' then '=LoaRpLog'
when 'S' then '=LoaRpLoNo'
when 'W' then '=ReorgLoNo'
when 'X' then '=ReorgLog'
when 'Y' then '=LoaRsLoNo'
else '=???' end basTyTx
from p4
)
select count(*), recov, basTyTx, incTy
from p
group by recov, basTyTx, incTy
;
explain plan set queryno = 55 for
with two (i) as
(
select 1 from sysibm.sysDummy1
union all select 2 from sysibm.sysDummy1
)
, c as
(
select c.*
, substr(char(timestamp), 1, 26)
|| char(icType, 1) || right(' ' || dsNum, 5) ttp
from sysibm.sysCopy c
)
, p2 as
(
select s.dbName db, s.name ts, p.partition pa, two.i inst
, p.space pSpc
, case when s.instance = 1 and s.clone = 'N' then ''
when s.clone = 'N' then '' || s.instance
when s.instance = two.i then '' || two.i || 'base'
else '' || two.i || 'clon' end clonI
, value((select substr(char(timestamp), 1, 26)
|| char(icType, 1) || right(' ' || dsNum, 5)
from sysibm.sysCopy c
where s.dbName = c.dbName
and s.name = c.tsName
and c.dsNum = p.partition
--??? and c.instance = two.i
and icType in ('A','C','F','R','X' -- logBase
,'P','S','W','Y') -- logDiscontinu
and (icType <> 'A' or sType = 'A')
order by timestamp desc
fetch first 1 row only
), '') basPa
, value((select substr(char(timestamp), 1, 26)
|| char(icType, 1) || right(' ' || dsNum, 5)
from sysibm.sysCopy c
where s.dbName = c.dbName
and s.name = c.tsName
and c.dsNum = 0 and p.partition <> 0
--??? and c.instance = two.i
and icType in ('A','C','F','R','X' -- logBase
,'P','S','W','Y') -- logDiscontinu
and (icType <> 'A' or sType = 'A')
order by timestamp desc
fetch first 1 row only
), '') bas0
from sysibm.sysTableSpace s
join two on s.instance = two.i or s.clone = 'Y'
join sysibm.sysTablePart p
on s.dbName = p.dbName and s.name = p.tsName
)
, p3 as
(
select db, ts, pa, inst, pSpc, clonI
, max(basPa, bas0, '1111-11-11-11.11.11.111111 ') basTTP
, max(basPa, bas0, '1111-11-11-11.11.11.111111 ') incTTP
from p2
)
, p4 as
(
select p3.*
, substr(basTTP, 27, 1) basTy
, substr(basTTP, 28, 5) basPa
, timestamp(substr(basTTP, 1, 27)) basTst
from p3
)
, p as
(
select p4.*
, case when pSpc = -1 then 'okDefNo'
when basTy not in ('A','C','F','R','X') then 'logDisc'
when basTst < current timestamp - 21 days then 'tooOld'
else 'okLog' end recov
, basTy || case basTy
when ' ' then '=missing'
when 'A' then '=addPart'
when 'C' then '=create'
when 'F' then '=fulCopy'
when 'I' then '=incCopy'
when 'P' then '=recPIT'
when 'R' then '=LoaRpLog'
when 'S' then '=LoaRpLoNo'
when 'W' then '=ReorgLoNo'
when 'X' then '=ReorgLog'
when 'Y' then '=LoaRsLoNo'
else '=???' end basTyTx
from p4
)
select count(*), recov, basTyTx
from p
group by recov, basTyTx
--lect count(*), substr(basTyTx
-- from p
-- group by recov, basTyTx
;
explain plan set queryno = 3 for
with two (i) as
(
select 1 from sysibm.sysDummy1
union all select 2 from sysibm.sysDummy1
)
, a as
(
select s.dbName db, s.name ts, p.partition pa, two.i inst
, case when s.instance = 1 and s.clone = 'N' then ''
when s.clone = 'N' then '' || s.instance
when s.instance = two.i then '' || two.i || 'base'
else '' || two.i || 'clon' end clonI
, value((select
max(left(case when icType <> 'I'
then substr(char(timestamp), 1, 26)
|| char(icType, 1) || right(' ' || dsNum, 5)
else '' end, 32) )
||max(left(case when icType = 'I'
then substr(char(timestamp), 1, 26)
|| char(icType, 1) || right(' ' || dsNum, 5)
else '' end, 32) )
from sysibm.sysCopy c
where s.dbName = c.dbName
and s.name = c.tsName
and c.dsNum = p.partition
-- ?? and c.instance = two.i
and icType in ('A','C','F','R','X' -- logBase
,'P','S','W','Y' -- logDiscontinu
,'I')
and (icType <> 'A' or sType = 'A')
), '') icPa
, value((select
max(left(case when icType <> 'I'
then substr(char(timestamp), 1, 26)
|| char(icType, 1) || right(' ' || dsNum, 5)
else '' end, 32) )
||max(left(case when icType = 'I'
then substr(char(timestamp), 1, 26)
|| char(icType, 1) || right(' ' || dsNum, 5)
else '' end, 32) )
from sysibm.sysCopy c
where s.dbName = c.dbName
and s.name = c.tsName
and c.dsNum = 0 and p.partition <> 0
-- ?? and c.instance = two.i
and icType in ('A','C','F','R','X' -- logBase
,'P','S','W','Y' -- logDiscontinu
,'I')
and (icType <> 'A' or sType = 'A')
), '') ic0
from sysibm.sysTableSpace s
join two on s.instance = two.i or s.clone = 'Y'
join sysibm.sysTablePart p
on s.dbName = p.dbName and s.name = p.tsName
)
, b as
(
select db, ts, pa, inst, clonI
, max(substr(icPa, 1, 32), substr(ic0, 1, 32)) icFul
, max(substr(icPa, 33, 32), substr(ic0, 33, 32)) icInc
from a
)
select count(*), substr(icFul, 27, 1), substr(icInc, 27, 1)
from b
group by substr(icFul, 27, 1), substr(icInc, 27, 1)
;
explain plan set queryno = 22 for
with two (i) as
(
select 1 from sysibm.sysDummy1
union all select 2 from sysibm.sysDummy1
)
, c as
(
select c.*
, substr(char(timestamp), 1, 26)
|| char(icType, 1) || right(' ' || dsNum, 5) ttp
, 32 ttL
from sysibm.sysCopy c
)
, a as
(
select s.dbName db, s.name ts, p.partition pa, two.i inst
, case when s.instance = 1 and s.clone = 'N' then ''
when s.clone = 'N' then '' || s.instance
when s.instance = two.i then '' || two.i || 'base'
else '' || two.i || 'clon' end clonI
, value((select
max(case when icType <> 'I' then ttp else space(ttL) end)
||max(case when icType = 'I' then ttp else space(ttL) end)
from c
where s.dbName = c.dbName
and s.name = c.tsName
and c.dsNum = p.partition
-- ?? and c.instance = two.i
and icType in ('A','C','F','R','X' -- logBase
,'P','S','W','Y' -- logDiscontinu
,'I')
and (icType <> 'A' or sType = 'A')
), '') icPa
, value((select
max(left(case when icType <> 'I'
then substr(char(timestamp), 1, 26)
|| char(icType, 1) || right(' ' || dsNum, 5)
else '' end, 32) )
||max(left(case when icType = 'I'
then substr(char(timestamp), 1, 26)
|| char(icType, 1) || right(' ' || dsNum, 5)
else '' end, 32) )
from sysibm.sysCopy c
where s.dbName = c.dbName
and s.name = c.tsName
and c.dsNum = 0 and p.partition <> 0
-- ?? and c.instance = two.i
and icType in ('A','C','F','R','X' -- logBase
,'P','S','W','Y' -- logDiscontinu
,'I')
and (icType <> 'A' or sType = 'A')
), '') ic0
from sysibm.sysTableSpace s
join two on s.instance = two.i or s.clone = 'Y'
join sysibm.sysTablePart p
on s.dbName = p.dbName and s.name = p.tsName
)
, b as
(
select db, ts, pa, inst, clonI
, max(substr(icPa, 1, 32), substr(ic0, 1, 32)) icFul
, max(substr(icPa, 33, 32), substr(ic0, 33, 32)) icInc
from a
)
select count(*), substr(icFul, 27, 1), substr(icInc, 27, 1)
from b
group by substr(icFul, 27, 1), substr(icInc, 27, 1)
;
select * from plan_view1
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
with ur
;
rollback
;;;;
;x
xith two (i) as
(
select 1 from sysibm.sysDummy1
union all select 2 from sysibm.sysDummy1
)
, a as
(
select s.dbName db, s.name ts, p.partition pa, two.i inst
, case when s.instance = 1 and s.clone = 'N' then ''
when s.clone = 'N' then '' || s.instance
when s.instance = two.i then '' || two.i || 'base'
else '' || two.i || 'clon' end clonI
, max(value(
( select max(substr(char(timestamp), 1, 26)
|| char(icType, 1) || right(' ' || dsNum, 5))
from sysibm.sysCopy c
where s.dbName = c.dbName
and s.name = c.tsName
and c.dsNum = p.partition
and c.instance = two.i
and icType in ('A','C','F','R','X' -- logBase
,'P','S','W','Y' -- logDiscontinu
,'I')
and (icType<>'A' or sType = 'A')
), ''), value(
( select max(substr(char(timestamp), 1, 26)
|| char(icType, 1) || dsNum)
from sysibm.sysCopy c
where s.dbName = c.dbName
and s.name = c.tsName
and c.dsNum = 0 and p.partition<> 0
and c.instance = two.i
and icType in ('A','C','F','R','X' -- logBase
,'P','S','W','Y') -- logDiscontinu
and (icType<>'A' or sType = 'A')
), '') ) icFul
, max(value(
( select max(substr(char(timestamp), 1, 26)
|| char(icType, 1) || dsNum)
from sysibm.sysCopy c
where s.dbName = c.dbName
and s.name = c.tsName
and c.dsNum = p.partition
and c.instance = two.i
and icType = 'I'
), ''), value(
( select max(substr(char(timestamp), 1, 26)
|| char(icType, 1) || dsNum)
from sysibm.sysCopy c
where s.dbName = c.dbName
and s.name = c.tsName
and c.dsNum = 0 and p.partition<> 0
and c.instance = two.i
and icType = 'I'
), '') ) icInc
from sysibm.sysTableSpace s
join two on s.instance = two.i or s.clone = 'Y'
join sysibm.sysTablePart p
on s.dbName = p.dbName and s.name = p.tsName
)
select count(*), substr(icFul, 27, 1)
from a group by substr(icFul, 27, 1)
;
with two (i) as
(
select 1 from sysibm.sysDummy1
union all select 2 from sysibm.sysDummy1
)
, a as
(
select s.dbName db, s.name ts, p.partition pa, two.i inst
, case when s.instance = 1 and s.clone = 'N' then ''
when s.clone = 'N' then '' || s.instance
when s.instance = two.i then '' || two.i || 'base'
else '' || two.i || 'clon' end clonI
, ( select max(substr(char(timestamp), 1, 26)
|| char(icType, 1) || dsNum)
from sysibm.sysCopy c
where s.dbName = c.dbName
and s.name = c.tsName
and c.dsNum in (0, p.partition)
and c.instance = two.i
and icType in ('A','C','F','R','X' -- logBase
,'P','S','W','Y') -- logDiscontinu
and (icType<>'A' or sType = 'A')
) icFul
from sysibm.sysTableSpace s
join two on s.instance = two.i or s.clone = 'Y'
join sysibm.sysTablePart p
on s.dbName = p.dbName and s.name = p.tsName
)
select count(*), substr(icFul, 27, 1)
from a
where db = 'QZ01A1P'
group by substr(icFul, 27, 1)
;x;
q = "select" al".*, 'fun' fun, 'recTx' recTx" ,
", 'f ' || char(current timestamp) recBase" ,
", 'unlTx' unlTx, current timestamp unlTst" ,
", 'unload' unload" ,
", current timestamp punch, 'punch' punch",
", case when instance = 1 and clone = 'N' then ''",
"when clone = 'N' then '' || instance",
"else 'base' || instance end cloneI" ,
", value(( select left(",
"case when icType not in ('A','C','F','R','X')" ,
"then 'badCopy'" ,
"when timestamp < current timestamp-10 day"
"then 'oldCopy' else 'ok' end, 7)",
"|| right(' '||dsNum, 4)||char(icType, 1)",
"||substr(char(timestamp), 1, 26)",
"/*-*/from sysibm.sysCopy c",
"/*-*/where" al".dbName = c.dbName",
"and" al".tsName = c.tsName ",
"and c.dsNum in (0," al".partition)" ,
"and c.instance = s.instance" ,
"and icType in ('A','C','F','R','X'" ,
",'P','S','W','Y') and (icType<>'A'",
"or sType = 'A')" ,
"order by timestamp desc",
"fetch first 1 row only)",
", 'nothing found in syscopy') recInfo",
'from' m.tb.table ,
'join sysibm.sysTablespace s' ,
'on' al'.dbName = s.dbName and' al'.tsName = s.name' ,
'where' m.tb.cond wh ,
'order by' if(ord == '', m.tb.order, ord)
}¢--- A540769.WK.SQL(CATRECUN) cre=2015-09-14 mod=2015-09-14-17.19.59 A540769 ---
$#=
$>. fEdit()
$=useLgRn = 0
$=isElar = 0
with two (i) as
(
select 1 from sysibm.sysDummy1
union all select 2 from sysibm.sysDummy1
)
, p2 as
(
select s.dbName db, s.name ts, p.partition pa, two.i inst
, p.space pSpc, s.dbId, s.psId
, case when s.instance = 1 and s.clone = 'N' then '1'
when s.clone = 'N' then '' || s.instance || 'only'
when s.instance = two.i then '' || two.i || 'base'
else '' || two.i || 'clone' end insTxt
, ( select max( substr(char(timestamp), 1, 26) || char(icType, 1)
|| right(' ' || dsNum, 5))
|| max(case when icType <> 'I'
then substr(char(timestamp), 1, 26) || char(icType, 1)
|| right(' ' || dsNum, 5) else '' end )
from sysibm.sysCopy c
where s.dbName = c.dbName
and s.name = c.tsName
and c.dsNum = p.partition
--??? and c.instance = two.i
and icType in ('A','C','F','R','X' -- logBase
,'P','S','W','Y' -- logDiscontinu
,'I')
and (icType <> 'A' or sType = 'A')
) icPa
, ( select max(substr(char(timestamp), 1, 26) || char(icType, 1)
|| right(' ' || dsNum, 5))
|| max(case when icType <> 'I'
then substr(char(timestamp), 1, 26) ||char(icType, 1)
|| right(' ' || dsNum, 5) else '' end )
from sysibm.sysCopy c
where s.dbName = c.dbName
and s.name = c.tsName
and c.dsNum = 0 and p.partition <> 0
--??? and c.instance = two.i
and icType in ('A','C','F','R','X' -- logBase
,'P','S','W','Y' -- logDiscontinu
,'I')
and (icType <> 'A' or sType = 'A')
) ic0
from sysibm.sysTableSpace s
join two on s.instance = two.i or s.clone = 'Y'
join sysibm.sysTablePart p
on s.dbName = p.dbName and s.name = p.tsName
)
, p3 as
(
select db, ts, pa, inst, pSpc, insTxt, dbId, psId
, max(value(substr(icPa, 33, 32), '1111-11-11-11.11.11.111111- ')
,value(substr(ic0 , 33, 32), '1111-11-11-11.11.11.111111- ')
, '1111-11-11-11.11.11.111111- ') basTTP
, max(value(substr(icPa, 1, 32), '1111-11-11-11.11.11.111111- ')
,value(substr(ic0 , 1, 32), '1111-11-11-11.11.11.111111- ')
, '1111-11-11-11.11.11.111111- ') incTTP
from p2
)
, p4 as
(
select p3.*
, substr(basTTP, 27, 1) basTy
, substr(basTTP, 28, 5) basPa
, timestamp(substr(basTTP, 1, 26)) basTst
, substr(incTTP, 27, 1) incTy
, substr(incTTP, 28, 5) incPa
, timestamp(substr(incTTP, 1, 26)) incTst
from p3
)
, p as
(
select p4.*
, case when pSpc = -1 then 'okDefNo'
when basTy not in ('A','C','F','R','X') then 'logDisc'
when basTst < current timestamp - 23 days then 'tooOld'
else 'okLog' end recov
, basTy || case basTy
when '-' then '=missing'
when 'A' then '=addPart'
when 'C' then '=create'
when 'F' then '=fulCopy'
when 'I' then '=incCopy'
when 'P' then '=recPIT'
when 'R' then '=LoaRpLog'
when 'S' then '=LoaRpLoNo'
when 'W' then '=ReorgLoNo'
when 'X' then '=ReorgLog'
when 'Y' then '=LoaRsLoNo'
else '=???' end basTyTx
from p4
)
, u as
(
select p.*
, value(stage, '') stage
, value(staUpd, '1111-11-11-11.11.11') staUpd
, value(staTb, '') staTb
, value(unlTst, '1111-11-11-11.11.11') unlTst
, value(unl, '') unl
, value(punTst, '1111-11-11-11.11.11') punTst
, value(pun, '') pun
, value(u.info, '') infoUnl
, value(u.err, '') errUnl
from p
left join oa1p.tqz005TecSvUnload u
on u.db = p.db and u.ts = p.ts and u.pa = p.pa
and u.pa >= 0
)
, e2 as
(
select u.*
, case when recov = 'okDefNo' then ''
when recov = 'tooOld' or ( left(recov, 2) = 'ok'
and basTst < current timestamp - 15 day)
then 'older15d' || ':' || basTyTx
when left(recov, 2) = 'ok'
and basTst < current timestamp -8 day
then 'older8d' || ':' || basTyTx
when left(recov, 2) = 'ok' then ''
else recov || ':' || basTyTx
end erReD
, strip(case
when unl = '' then 'noUnload'
when unlTst < current timestamp-100 year
then 'unlTstNull'
when r.dbName is null then 'noRTS'
when r.lastDataChange > u.unlTst then 'dataChange>unl'
when r.copyUpdatetime > unlTst then 'copyUpdate>unlTst'
when BasTst > unlTst
$@ if \ $isElar then $@=¢
and (date(incTst) <> '18.05.2015' or basTy <> 'F')
$!
then 'unlTst<ful='||basTyTx
when incTy='I' and unlTst < incTst
$@ if \ $isElar then $@=¢
and date(incTst) <> '18.05.2015'
$!
then 'unlTst<incCopy'
when r.copyChanges <> 0 then 'copyChanges<>0'
when r.copyUpdatedPages <> 0 then 'updatedPages<>0'
$*(
when r.copyUpdatetime > BasTst and basTy = 'F'
then 'copyUpdate>ful='||basTyTx
when r.copyUpdatetime > incTst and incTy = 'I'
then 'copyUpdate>incCopy'
$*)
when r.copyUpdatetime is not null then 'copyUpdateNotNull'
when r.lastDataChange > u.BasTst and u.basTy not in('A','-')
$@ if \ $isElar then $@=¢
and unlTst > '2015-09-12-12.00.00'
$!
then 'dataChange>ful='||basTyTx
when basTy <> 'F' then 'lastFul=' || basTyTx
when incTy = 'I' and incTst > unlTst
$@ if \ $isElar then $@=¢
and date(incTst) <> '18.05.2015'
$!
then 'incTst>unlTst'
when r.lastDataChange is null and unlTst
< '2015-04-15-00.00.00' then 'dataChangeV11>unl'
when lastDataChange is null
and u.incTst < '2015-04-15-00.00.00'
then 'dataChangeV11>incCopy'
$@ if \ $isElar then $@=¢
when incTy = 'I' and incTst > unlTst
and date(incTst) = '18.05.2015'
then 'inc180515>unl'
$!
else ''
$@ if $useLgRn then $@=¢
end || case
when unl = ''
or unlTst < current timestamp - 100 years then ''
when lr.start > unlTst then ' lgRn>unl'
when lr.start is null then ' lgRnNone'
else ''
$!
end) erReU
from u
left join sysibm.sysTableSpaceStats r
on u.dbId = r.dbId and u.psId = r.psId
and u.pa = r.partition and u.inst = r.instance
and u.db = r.dbName and u.ts = r.name
$@ if $useLgRn then $@=¢
left join oa1u.tqz004TecSvLgRn lr
on u.db = lr.db and u.ts = lr.ts and u.pa = lr.pa
$!
)
, e as
(
select e2.*
, strip(case
when stage = '' then recov || ':' || basTyTx
$@ if $isElar then $@=¢
when ts in -- gestoppte TS, im Loeschprozess
( 'SF710141'
, 'SF710142'
, 'SF710143'
, 'SF71014H'
, 'SF760141'
, 'SF760142'
, 'SF760143'
, 'SF76014H'
) then 'toDrop'
-- when stage = '-w' then '-m'
when stage in ('UL', 'DL', '-w') and erReU <> ''
then erReU
when stage in ('UL', 'DL', '-w') then ''
when erReD <> '' then erReD
$! $@ else $@=¢
when stage in ('IN', 'UL')
and erReD <> '' and erReU <> ''
then erReU || ' ' || erReD
when stage = 'IN' and unl <> '' and
staUpd < current timestamp - 24 hour
then 'stillUnlAft24h'
when stage not in ('IN', 'UL') and erReD <> '' then erReD
$!
else ''
end ) erRec
from e2
)
select count(*), stage
, substr(strip(erRec || ' ' || errUnl), 1, 70)
-- , min(err), max(err)
-- , min(unl), max(unl)
from e
group by stage, strip(erRec || ' ' || errUnl)
order by 2, 3
;
}¢--- A540769.WK.SQL(CATRI) cre=2008-07-14 mod=2012-06-12-13.13.03 A540769 -----
select *
from sysibm.sysForeignKeys
where relname = 'DP091$UU'
order by colno, tbName
;
-- Relationen anzeigen
--
select char(relname, 12),
char(strip(creator) ||'.'|| strip(tbName), 20) "child",
char(strip(refTbCreator)||'.'||strip(refTbName), 20) "in parent",
case when deleteRule = 'A' then 'no action'
when deleteRule = 'C' then 'cascade'
when deleteRule = 'N' then 'set null'
when deleteRule = 'R' then 'restrict'
else 'rule ' || deleteRule end
from sysibm.sysRels
where (creator like 'OA1%' and tbName like 'TDP%' )
or (refTbCreator like 'OA1%' and refTbName like 'TDP%' )
order by 2
;
select *
from sysIbm.sysForeignKeys
where relName = 'XR101$RE'
;
}¢--- A540769.WK.SQL(CATRIR) cre=2009-11-13 mod=2009-11-13-19.06.21 A540769 ----
-- Table Abhängigkeiten über RI - referential integrity dependencies
-- dieses Query zeigt die Abhängigkeits-Levels
-- einer Menge von Tables
-- die richtige LadeReihefolge (load sequenceist) von 0 aufwaerts
-- Tables mit zyklischen RI-Abhängigkeiten werden mit Level=999
-- angezeigt, für diese ist ein Check unumgänglich
--
-- wenn ein Table (parent) geladen wird,
-- werden alle abhängigen (children) checkpending
-- und müssten also NACHHER geladen werden
--
-- Tabellen die CheckPending werden, aber nicht in der
-- die CheckPending werden, aber nicht in der AnfangsSelektion
-- (auf SysTableSpace) waren, werden mit einem Plus '+' markiert
--
with ri (lev, cr, tb, paCr, paTb, rel) as
( -- RekursionsStart
select 0, creator, name,
nullif('',''), nullIf('',''), nullIf('','')
from sysibm.sysTables s
-->>> hier gewünschte Tabellen auswählen <<<--
where type = 'T'
-- and dbName like 'CT02%'
and creator = 'VDPS2' and
name in ( 'XTRECORD'
,'XTCUSTOMER'
-- ,'XTREQUEST'
-- ,'XTREQUESTDETAIL'
,'XTVIEW'
-- ,'XTVIEWATTRIBUTE'
-- ,'XTRECORDATTRIBUTE'
,'XTREFERENCEMODULE'
-- ,'XTPROCESSINGSTEP'
,'XTSEARCHATTRIBUTE'
,'XTSEARCHSQL'
-- ,'XTREQUESTFILTER'
)
-- RekursionsSchritt: join zu Children
union all select alt.lev+1, neu.creator, neu.tbName,
neu.refTbCreator, neu.refTbName, neu.relName
from ri alt, sysibm.sysRels neu
-- vom parent zum child
where lev < 999
and neu.refTbCreator = alt.cr
and neu.refTbname = alt.tb
-- Zyklen der Länge 1 ignorieren
and not ( neu.creator = neu.refTbCreator
and neu.tbname = neu.refTbName)
)
-- bei Truncation (SQLCODE = 445)
-- Länge vergrössern
select smallint(max(lev)) "level",
case when min(lev) > 0 then '+' else ' ' end "+",
char(strip(cr) ||'.'|| strip(tb), 32) "child",
smallInt(count(distinct paCr || '.' || paTb)) "#par",
min(char(strip(paCr) ||'.'|| strip(paTb), 32)) "firstParent",
max(char(strip(paCr) ||'.'|| strip(paTb), 32)) "lastParent"
from ri
group by cr, tb
order by 1 asc, 3 asc
;
x
select char(strip(creator) || '.' || strip(tbName), 20) "child",
char(strip(refTbCreator) || '.' || strip(refTbName), 20) "par",
relName
from sysibm.sysRels
where creator = 'A218545'
;
}¢--- A540769.WK.SQL(CATRIRPA) cre=2007-07-31 mod=2009-11-13-19.08.13 A540769 ---
-- Table Abhängigkeiten über RI
-- dieses Query zeigt die Abhängigkeits-Levels
-- einer Menge von Tables
-- die richtige LadeReihefolge ist vom höchsten Level nach 0
-- Tables mit zyklischen RI-Abhängigkeiten werden mit Level=999
-- angezeigt, für diese ist ein Check unumgänglich
--
-- --> hier gehen wir die Parents hoch, für LoadReihenfolge
-- für LoadReihenfolge besser Children runter --> sql(catRir)
--
with ri (lev, creator, tbName, refTbCreator, refTbName, relName) as
( -- RekursionsStart
select 0, nullif('',''), nullIf('',''), Creator, Name, nullIf('','')
from sysibm.sysTables s
-->>> hier gewünschte Tabellen auswählen <<<--
where type = 'T'
-- and dbName like 'CT02%'
and creator = 'VDPS2' and
name in ( 'XTRECORD'
,'XTCUSTOMER'
,'XTREQUEST'
,'XTREQUESTDETAIL'
,'XTVIEW'
,'XTVIEWATTRIBUTE'
,'XTRECORDATTRIBUTE'
,'XTREFERENCEMODULE'
,'XTPROCESSINGSTEP'
,'XTSEARCHATTRIBUTE'
,'XTSEARCHSQL'
,'XTREQUESTFILTER'
)
-- RekursionsSchritt: zu Parents join n
union all select alt.lev+1, neu.creator, neu.tbName,
neu.refTbCreator, neu.refTbName, neu.relName
from ri alt, sysibm.sysRels neu
-- vom child zum Parent
where neu.creator = alt.refTbCreator
and neu.tbname = alt.refTbName
-- Zyklen der Länge 1 ignorieren
and not ( neu.creator = neu.refTbCreator
and neu.tbname = neu.refTbName)
and lev < 999
)
-- bei Truncation (SQLCODE = 445)
-- Länge vergrössern
select smallint(max(lev)) "level",
char(strip(refTbCreator) ||'.'|| strip(refTbName), 32) "parent",
smallInt(count(distinct creator || tbName)) "#child",
min(char(strip(creator) ||'.'|| strip(tbName), 32)) "firstChild",
max(char(strip(creator) ||'.'|| strip(tbName), 32)) "lastChild"
from ri
group by refTbCreator, refTbName
order by 1 desc, 2 asc
;
x
select char(strip(creator) || '.' || strip(tbName), 20) "child",
char(strip(refTbCreator) || '.' || strip(refTbName), 20) "par",
relName
from sysibm.sysRels
where creator = 'A218545'
;
}¢--- A540769.WK.SQL(CATRTS) cre=2011-07-29 mod=2016-11-04-11.01.05 A540769 ----
with r as
(
select r.*, s.pgSize
, case when r.nPages > 0 then 'p'
when r.nPages = 0 then '0'
when r.nPages < 0 then '-'
else '?' end
|| case when r.nPages < r.nActive then '<'
when r.nPages = r.nActive then '='
when r.nPages > r.nActive then '>'
else '?' end
|| case when r.nActive > 0 then 'a'
when r.nActive = 0 then '0'
when r.nActive < 0 then '-'
else '?' end
|| case when r.nActive < r.space * s.pgSize then '<'
when r.nActive = r.space * s.pgSize then '='
when r.nActive > r.space * s.pgSize then '>'
else '?' end
|| case when r.space > 0 then 's'
when r.space = 0 then '0'
when r.space < 0 then '-'
else '?' end txt
from sysibm.sysTableSpaceStats r
join sysibm.sysTableSpace s
on r.dbid = s.dbid and r.psid = s.psid
)
select count(*), txt
, sum(bigint(R.nPages)) nPag
, sum(bigint(R.nActive)) nACt
, sum(bigint(r.nPages)*pgSize) kPag
, sum(bigint(r.nActive)*pgSize) kAct
, sum(r.space) spc
, min(strip(dbName) ||'.'|| strip(name) ||'#'|| partition) dbTsMin
, max(strip(dbName) ||'.'|| strip(name) ||'#'|| partition) dbTsMax
from r
group by txt
order by txt
with ur
;x;
select count(*), DBID, psid, partition,instance, updatestatstime
from sysibm.sysTableSpaceStats
group by DBID, psid, partition,instance, updatestatstime
order by 1 desc
fetch first 100 rows only
with ur
;x;;;;;
select COPYUPDATEDPAGES ,
COPYCHANGES ,
COPYUPDATELRSN, timestamp(copyUpdateLrsn || x'0000') ,
COPYUPDATETIME,
r.*
from sysibm.sysTableSpaceStats r
where copyUpdateLrsn is not null
or copyUpdateTime is not null
or COPYUPDATEDPAGES <> 0
or COPYCHANGES <> 0
order by copyUpdateTime asc
fetch first 1000 rows only
with ur
;x;
select dbName, name, partition, totalrows, space
from sysibm.sysTablespaceStats
where dbName = 'WI02A1T' and name = 'A100H'
select dbName, name, partition, totalrows, space
from sysibm.sysTablespaceStats
where dbName = 'WI02A1T' and name = 'A100H'
;x;
select count(*), sum(r.space), count(r.space),
min(pageSave), max(PageSave)
from sysibm.sysTableSpaceStats r, sysibm.sysTablePart p
where r.dbName = 'MF01A1P' and r.Name = 'A150A'
and r.dbName = p.dbName and r.name = p.tsName
and r.partition = p.partition
and r.partition >= 133
with ur
;
;elect substr(strip(r.dbName) || '.' || strip(r.indexSpace)
|| '+' || strip(r.creator) || '.' || strip(r.name)
|| '/' || strip(char(r.psid)) , 1, 50) "rts",
substr(strip(i.dbName) || '.' || strip(i.indexSpace)
|| '+' || strip(i.creator) || '.' || strip(i.name)
|| '/' || strip(char(s.psid)) , 1, 50) "i",
r.*
from sysibm.sysIndexSpaceStats r,
sysibm.sysIndexes i,
sysibm.sysTables t,
sysibm.sysTableSpace s
where r.dbId = i.dbid and r.isobid = i.isoBid
and i.tbCreator = t.creator and i.tbName = t.name
and t.dbName = s.dbName and t.tsName = s.name
and (r.dbName <> i.dbName or r.indexSpace <> i.indexSpace
or r.creator<> i.creator or r.name <> i.name
or r.psid <> s.psid)
order by r.dbName, r.name
with ur
;x;
select substr(strip(s.dbName) || '.' || strip(s.name), 1, 20) "sDbTs",
substr(strip(r.dbName) || '.' || strip(r.name), 1, 20) "rtsDbTs",
r.*
from sysibm.sysTableSpaceStats r,
sysibm.sysTableSpace s
where r.dbId = s.dbid and r.psid = s.psId
and (r.dbName <> s.dbName or r.name <> s.name)
order by r.dbName, r.name
with ur
;x;
select * from old table (
delete
from sysibm.sysTableSpaceStats r
where (strip(r.dbName) || '*' || strip(r.name))
<> (select strip(s.dbName) || '*' || strip(s.name)
from sysibm.sysTableSpace s
where r.dbId = s.dbid and r.psid = s.psId)
)
order by dbName, name
;
rollback;
;x;
and (r.dbName <> s.dbName or r.name <> s.name)
order by r.dbName, r.name
delete from sysibm.sysTableSpaceStats r
substr(strip(r.dbName) || '.' || strip(r.name), 1, 20) "rtsDbTs",
r.*
from sysibm.sysTableSpaceStats r,
sysibm.sysTableSpace s
where r.dbId = s.dbid and r.psid = s.psId
and (r.dbName <> s.dbName or r.name <> s.name)
order by r.dbName, r.name
}¢--- A540769.WK.SQL(CATRTSCL) cre=2010-06-28 mod=2010-06-28-15.27.09 A540769 ---
------------------------------------------------------------------------
-- cleanup RTS ==> delete rts rows with bad names
------------------------------------------------------------------------
-- select table rts with bad names
--
select substr(strip(s.dbName) || '.' || strip(s.name), 1, 20) "sDbTs",
substr(strip(r.dbName) || '.' || strip(r.name), 1, 20) "rtsDbTs",
r.*
from sysibm.sysTableSpaceStats r,
sysibm.sysTableSpace s
where r.dbId = s.dbid and r.psid = s.psId
and (r.dbName <> s.dbName or r.name <> s.name)
order by r.dbName, r.name
with ur
;
------------------------------------------------------------------------
-- select index rts with bad names or psId
--
select substr(strip(r.dbName) || '.' || strip(r.indexSpace)
|| '+' || strip(r.creator) || '.' || strip(r.name)
|| '/' || strip(char(r.psid)) , 1, 50) "rts",
substr(strip(i.dbName) || '.' || strip(i.indexSpace)
|| '+' || strip(i.creator) || '.' || strip(i.name)
|| '/' || strip(char(s.psid)) , 1, 50) "i",
r.*
from sysibm.sysIndexSpaceStats r,
sysibm.sysIndexes i,
sysibm.sysTables t,
sysibm.sysTableSpace s
where r.dbId = i.dbid and r.isobid = i.isoBid
and i.tbCreator = t.creator and i.tbName = t.name
and t.dbName = s.dbName and t.tsName = s.name
and (r.dbName <> i.dbName or r.indexSpace <> i.indexSpace
or r.creator<> i.creator or r.name <> i.name
or r.psid <> s.psid)
order by r.dbName, r.name
with ur
;x;
------------------------------------------------------------------------
-- delete table rts with bad names
--
select * from old table (
delete
from sysibm.sysTableSpaceStats r
where (strip(r.dbName) || '*' || strip(r.name))
<> (select strip(s.dbName) || '*' || strip(s.name)
from sysibm.sysTableSpace s
where r.dbId = s.dbid and r.psid = s.psId)
)
order by dbName, name
;
rollback;
;
------------------------------------------------------------------------
-- delete index rts with bad names or psid
--
select * from old table (
delete
from sysibm.sysIndexSpaceStats r
where strip(r.dbName) || '.' || strip(r.indexSpace)
|| '+' || strip(r.creator) || '.' || strip(r.name)
|| '/' || strip(char(r.psid))
<> (select strip(i.dbName) || '.' || strip(i.indexSpace)
|| '+' || strip(i.creator) || '.' || strip(i.name)
|| '/' || strip(char(s.psid))
from sysibm.sysIndexes i,
sysibm.sysTables t,
sysibm.sysTableSpace s
where r.dbId = i.dbid and r.isobid = i.isoBid
and i.tbCreator = t.creator and i.tbName = t.name
and t.dbName = s.dbName and t.tsName = s.name
)
)
order by dbName, name, partition
;
rollback;
;
}¢--- A540769.WK.SQL(CATRTSMI) cre=2016-10-20 mod=2016-10-20-14.28.04 A540769 ---
-- find RTS with bad values
-- which reorg complains as missing
select *
from sysibm.sysTableSpaceStats
where nActive < 0 or nActive > 1e9
or nPages < 0 or nPages > 1e9
or extents < 0 or extents > 1e3
or totalRows < 0 or totalRows > 1e12
or dataSize < 0 or dataSize > 1e12
}¢--- A540769.WK.SQL(CATRTSNO) cre=2014-12-22 mod=2014-12-22-09.40.54 A540769 ---
with i (i) as 00001000
( select 1 from sysibm.sysDummy1 00002000
union all select 2 from sysibm.sysDummy1 00003000
) 00004000
, j as 00005000
( 00006000
select case when s.dbName is null then '-' else 'c' end 00007000
|| case when r.dbName is null then '-' else 'r' end cr 00008000
, value(s.dbName, r.dbName) db 00010000
, value(s.name, r.Name) ts 00010100
, value(p.partition, r.partition) part 00011000
, value(i.i, r.instance) inst 00012000
, s.clone 00012102
|| case when s.instance = i.i then 'b' else 'c' end cl 00012202
, p.space pSpc 00012300
, value(s.dbId, r.dbId) dbid 00013000
, value(s.psid, r.psid) psid 00014000
from (sysibm.sysTableSpace s 00020000
join i on s.instance = i or s.clone = 'Y' 00030000
join sysibm.sysTablePart p 00040000
on s.dbName = p.dbName and s.name = p.tsName 00050000
) full outer join sysibm.sysTableSpaceStats r 00052000
on s.dbName = r.dbName and s.name = r.name 00053000
and p.partition = r.partition 00053100
and i.i = r.instance 00054000
) 00060000
select 'include tablespace ' || strip(db) || '.' || strip(ts) 00060102
|| ' partlevel ' || part 00060202
, j.* 00060302
from j 00060402
where cr = 'c-' 00060502
order by cl, cr, db, ts, part 00060602
;x; 00060702
select count(*), cr, inst, cl 00061002
from j 00061102
group by cr, inst, cl 00061202
;x; 00061302
select * 00062000
from j 00062100
where cr <> 'cr' 00062200
order by db, ts, part, inst 00062300
;x; 00062400
, s (cr, db, ts, inst, parts, pX, pV, pB, l) as 00062502
( 00062602
select cr, db, ts, inst, cast('' as varChar(500)) 00062702
, min(part), -1, -1, 0 00062802
from j 00062902
group by cr, db, ts, inst 00063002
union all select cr, db, ts, inst, parts, 00063102
(select min(j.part) from j 00063202
where j.cr = s.cr and j.db = s.db and j.ts = s.ts 00063302
and j.part > s.pX 00063402
), pV, pB, l+1 00063502
from s 00063602
where l < 99 and pX is not null 00063702
) 00063802
select * 00063902
from s 00064002
;x; 00064102
select count(*), cr 00064200
from j 00064300
group by cr 00064400
;x; 00065000
select cr 00070000
|| case when r.dbName is null then '-' else 'r' end cr 00080000
, substr(value(c.db, r.dbName), 1, 8) db 00090000
, substr(value(c.ts, r.name), 1, 8) ts 00100000
, value(c.part, r.partition) part 00110000
, value(c.i, r.instance) inst 00120000
from c full outer join sysibm.sysTableSpaceStats r 00130000
on c.db = r.dbName and c.ts = r.name and c.part = r.partition 00140000
and c.i = r.instance 00150000
, x as 00240000
( 00250000
select case when c.db is null then '-' else 'c' end 00260000
|| case when r.dbName is null then '-' else 'r' end cr 00270000
, substr(value(c.db, r.dbName), 1, 8) db 00280000
, substr(value(c.ts, r.name), 1, 8) ts 00290000
, value(c.part, r.partition) part 00300000
, value(c.i, r.instance) inst 00310000
from c full outer join sysibm.sysTableSpaceStats r 00320000
on c.db = r.dbName and c.ts = r.name and c.part = r.partition 00330000
and c.i = r.instance 00340000
) 00350000
}¢--- A540769.WK.SQL(CATRTSSZ) cre=2015-03-10 mod=2015-03-10-13.03.05 A540769 ---
with p as
(
select *
from sysibm.sysTablePart
where dbName = 'QZ01A1P' and tsName = 'A006A'
)
select p.partition, r.totalRows, int(p.cardF + r.statsInserts) aRows
, r.space rSpace
, case when p.cardF < 100 then p.spaceF
else p.spaceF * (p.cardF + r.statsInserts) / p.cardF end
aSpace
from p join sysibm.sysTableSpaceStats r
on p.dbName = r.dbName and p.tsName = r.name
and p.partition = r.partition
order by p.dbName, p.tsName, p.partition
}¢--- A540769.WK.SQL(CATRTSUP) cre=2015-03-10 mod=2015-03-10-16.16.33 A540769 ---
$#@ $*( catRtsUpd
create sql to update RTS,
if RTS figures are smaller than runstats figures
$*)
call sqlConnect dp4g
$=dltF = 1.1
$=dltS = 1000
$<>
$>. fEdit()
$<#¢
with p as
(
select *
from sysibm.sysTablePart
where dbName = 'QZ01A1P' and tsName = 'A006A'
)
select p.dbName, p.tsName, p.partition
, r.totalRows, int(p.cardF + r.statsInserts) aRows
, r.space rSpace
, int(case when p.cardF < 100 then p.spaceF
else p.spaceF * (p.cardF + r.statsInserts) / p.cardF
end ) aSpace
from p join sysibm.sysTableSpaceStats r
on p.dbName = r.dbName and p.tsName = r.name
and p.partition = r.partition
order by p.dbName, p.tsName, p.partition
$! call sqlsel
$| $forWith x $@=¢
$$ -- $DBNAME $TSNAME $PARTITION
$$ -- rows $TOTALROWS * $AROWS, space $RSPACE * $ASPACE
$@ if $TOTALROWS * $dltF + $dltS < $AROWS $*+
| $RSPACE * $dltF + $dltS < $ASPACE then $@=¢
update sysibm.sysTableSpaceStats
$=del = SET
$@ if $TOTALROWS < $AROWS then $@=¢
$del totalRows = $AROWS -- from $TOTALROWS
$=del = $' ,'
$!
$@ if $RSPACE < $ASPACE then $@=¢
$del space = $ASPACE -- from $RSPACE
$!
where dbName = '$DBNAME' and name = '$TSNAME'
and partition = $PARTITION
;
$!
$!
$#out 20150310 16:15:58
}¢--- A540769.WK.SQL(CATRUN) cre=2016-08-22 mod=2016-08-22-20.55.53 A540769 ----
$#@
$=dbSys = S25/DVBP
call sqlWshIni
call sqlConnect $dbSys, 'w'
$<>
$>. fEdit()
$<=/sql/
declare global temporary table session.s
as (select creator cr, name tb, dbName db, tsName ts,
statstime stats, cardf
from sysibm.sysTables
) with no data on commit preserve rows
;
$<>
$<#¢
XBFCT001PS%
XBFCT002PS%
XBFCT003PS%
XBFCT004PS%
XBFCT005PS%
XBFCT006PS%
XBFCT007PS%
XBFCT008PS%
XBFCU001PS%
XBFCU002PS%
XBFCU003PS%
XBFCU004PS%
XBFCU005PS%
XBFCU006PS%
XBFCU007PS%
XBFCU008PS%
XBFEQ001PS%
XBFEQ002PS%
XBFEQ003PS%
XBFEQ004PS%
XBFEQ005PS%
XBFEQ006PS%
XBFQY001PS%
XBFQY002PS%
XBFQY003PS%
XBFQY004PS%
XBFQY005PS%
XBFQY006PS%
XBFQY007PS%
XBFCT001IT%
XBFCT002IT%
XBFCT003IT%
XBFCT004IT%
XBFCT005IT%
XBFCT006IT%
XBFCT008IT%
XBFCU001IT%
XBFCU002IT%
XBFCU003IT%
XBFCU004IT%
XBFCU005IT%
XBFCU006IT%
XBFCU007IT%
XBFCU008IT%
XBFEQ001IT%
XBFEQ002IT%
XBFEQ003IT%
XBFEQ004IT%
XBFEQ005IT%
XBFEQ006IT%
XBFQY001IT%
XBFQY002IT%
XBFQY003IT%
XBFQY004IT%
XBFQY005IT%
XBFQY006IT%
XBFQY007IT%
$!
$for i $@=¢
$= j =- strip($i)
insert into session.s
select creator, name, dbName, tsName, statsTime, cardF
from sysibm.sysTables
where type = 'T'
and creator = 'BUA'
and name like '$j'
$*( and creator = 'OA1P'
and name like 'TQZ006GBGR%'
$*) ;
$!
$<>
with u(cr, tb, db, ts, stats, cardF, delta) as
(
select cr, tb, db, ts, stats, cardF, 0
from session.s s
union all select s.cr, s.tb, s.db, s.ts,
tp.statsTime, tp.cardF, 0
from session.s s join sysibm.sysTablePart tp
on s.db = tp.dbName and s.ts = tp.tsname
union all select s.cr, s.tb, s.db, s.ts,
r.statsLastTime, r.totalRows
, case when statsMassDelete <> 0
then - abs(statsMassDelete)
else abs(statsInserts) + abs(statsUpdates)
+ abs(statsDeletes) end
from session.s s
join sysibm.sysTableSpace ts
on s.db = ts.dbName and s.ts = ts.name
join sysibm.sysTableSpaceStats r
on ts.dbid = r.dbid and ts.psid = r.psid
and s.db = r.dbName and s.ts = r.name
union all select s.cr, s.tb, s.db, s.ts,
i.statsTime, i.fullKeyCardF, 0
from session.s s
join sysibm.sysIndexes i
on s.cr = i.tbCreator and s.tb = i.tbName
union all select s.cr, s.tb, s.db, s.ts,
r.statsLastTime, r.totalEntries
, case when statsMassDelete <> 0
then - abs(statsMassDelete)
else abs(statsInserts) + abs(statsDeletes) end
from session.s s
join sysibm.sysIndexes i
on s.cr = i.tbCreator and s.tb = i.tbName
join sysibm.sysIndexSpaceStats r
on i.creator = r.creator and i.name = r.name
)
, g as
(
select cr, tb, db, ts
, min(stats) statsMin, max(stats) statsMax
, case when min(cardF) < 0 then ' noStatsC' else '' end
||case when min(stats) < '1900-01-01-00.00.00'
then ' noStatsT' else '' end
||case when min(delta) < 0 then ' massDel' else '' end
reason
, max(case when delta <= 0 or cardF < 0 then 0
when cardF = 0 then 999999999
else int(round(min( 999999999, real(max(delta, cardf))
/ min(delta, cardF) * 100))) end ) delta
, days(max(stats))
- min(case when stats < '1900-01-01-00.00.00' then 999999999
else days(stats) end) statsD
from u
group by cr , tb, db, ts
)
, v as
(
select cr, tb, db, ts
, substr(reason
|| case when delta < 30 then ''
else ' delta' || right('000' || min(delta, 9999), 4)
|| '%' end
|| case when statsD < 30 then ''
else ' statsInt' || right('000' || min(statsD, 9999), 4)
|| 'd' end
, 2) reason
, statsMin, statsMax, delta, statsD
fr?m g
)
select * from v
where reason <> '' or reason is null
-- fetch first 1 rows only
$/sql/
call sqlStmts , 'w', , , 'os'
$| $=jn = 0
$forWith i $@/fetch/
if oKindOfString($i) then
$$ string $i
else $@=/job/
$= jn =- right($jn + 1, 4, 0)
$= job =- XBRUNS || right($jn // 3, 2, 0)
//$job JOB (CP00,KE50),'DB2 run',
// TIME=1440,REGION=0M,SCHENV=DB2ALL,CLASS=M1,
// MSGCLASS=T,NOTIFY=&SYSUID
//*
//* xb runstats job$jn
//* table $CR.$TB in $DB.$TS
//* reason $REASON
//*
//S$jn EXEC PGM=DSNUTILB,TIME=1440,
// PARM=($dbSys,'$job.RUNSTAT'),
// REGION=0M
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSTEMPL DD DISP=SHR,DSN=$dbSys.DBAA.LISTDEF(TEMPL)
//UTPRINT DD SYSOUT=*
//RNPRIN01 DD SYSOUT=*
//STPRIN01 DD SYSOUT=*
//INDUMMY DD DUMMY
//SYSIN DD *
-- OPTIONS PREVIEW
LISTDEF TSLIST
INCLUDE TABLESPACE $DB.$TS
---- runstats ----------------------------------------------------------
RUNSTATS TABLESPACE LIST TSLIST
SHRLEVEL CHANGE
INDEX(ALL)
$/job/
$/fetch/
$#out 20160822 16:21:31
$#out 20160822 16:21:10
$#out 20160822 15:57:45
$#out 20160822 15:55:37
}¢--- A540769.WK.SQL(CATRUNPR) cre=2015-01-19 mod=2015-01-19-16.11.48 A540769 ---
select substr(profile_text, 1,2000)
from SYSIBM.SYSTABLES_PROFILES
-- where tbName = 'TWK403P1'
; x;
update SYSIBM.SYSTABLES_PROFILES
set profile_text = 'COLUMN(PAR2) INDEX (*) KEYCARD'
where tbName = 'TWK403P1'
;
commit
;
rollback
;
}¢--- A540769.WK.SQL(CATRUPD) cre=2012-06-05 mod=2016-08-10-13.05.47 A540769 ---
$#@ $*( catRUpd
show or update/delete outdate runstats Statistics
wsh script
1) update parameters
2) modify insert into session.st
3) wsh
version 0.1, 20.6.12 Walter
$*)
call sqlConnect dp4g $** <<<<<
$=fun=a $*( a = show all $** <<<<<
o = show old only
d = delete old
$*)
$=det= 1 $** 0 summary only, 1 all rows (only fun=d)
$=lim=5 hour $** limit for stats older than newest
$=distKeys = type, colGroupColno, quantileno, colValue
$=updCnt=200
$<> $<=¢
declare global temporary table session.st
as (select creator cr, name tb, dbName db, tsName ts,
statstime lim
from sysibm.sysTables
) with no data on commit preserve rows
;
insert into session.st
select creator, name, dbName, tsName, '0001-01-01-00.00.00'
from sysibm.sysTables
where type = 'T'
and creator = 'OA1P' $** <<<<<<
and name = 'TQZ006GBGRTSSTATS'
-- and name in ('VTINSTRFLATSYMBOLS'
-- ,'VTCASHFLOW'
-- ,'VTINSTRUMENTEVENT'
-- )
;
$** no more changes in rest of script *********************************
update session.st st
set lim = ( select case when max(statstime) > '1900-01-01-00.00.00'
then max(statstime) - $lim
else timestamp('0001-01-01-00.00.00') end
from sysibm.sysColumns co
where co.tbCreator = st.cr and co.tbName = st.tb)
;
declare global temporary table session.sx
as (select creator cr, name ix, tbCreator tbCr, tbName tb,
statstime lim
from sysibm.sysIndexes
) with no data on commit preserve rows
;
insert into session.sx
select creator, name, tbCreator, tbName, lim
from sysibm.sysIndexes ix join session.st st
on ix.tbCreator = st.cr and ix.tbName = st.tb
;
-- select * from session.st;
-- select * from session.sx;
$! call sqlStmts
$;
if $fun == 'a' then $@¢ $<=¢
with t (tb, ct, tst) as
( select tb, 'table', statstime
from sysibm.sysTables tb join session.st st
on tb.creator = st.cr and tb.name = st.tb
union all select tb, 'columns',
case when statstime > '1900-01-01-00.00.00'
then statstime else null end
from sysibm.sysColumns co join session.st st
on co.tbCreator = st.cr and co.tbName = st.tb
union all select tb, 'colDist', statstime
from sysibm.sysColDist cd join session.st st
on cd.tbOwner = st.cr and cd.tbName = st.tb
union all select tb, 'colDistStats', statstime
from sysibm.sysColDistStats cds join session.st st
on cds.tbOwner = st.cr and cds.tbName = st.tb
union all select tb, 'colStats', statstime
from sysibm.sysColStats cs join session.st st
on cs.tbOwner = st.cr and cs.tbName = st.tb
union all select tb, 'tabStats', statstime
from sysibm.sysTabStats tbs join session.st st
on tbs.owner = st.cr and tbs.name = st.tb
union all select tb, 'tbSpace', statstime
from sysibm.sysTableSpace ts join session.st st
on ts.dbName = st.db and ts.name = st.ts
union all select tb, 'tbPart', statstime
from sysibm.sysTablePart ts join session.st st
on ts.dbName = st.db and ts.tsName = st.ts
union all select tb, 'indexes', statstime
from sysibm.sysIndexes ix join session.st st
on ix.tbCreator = st.cr and ix.tbName = st.tb
union all select tb, 'ixPart', statstime
from sysibm.sysIndexPart ip join session.sx sx
on ip.ixCreator = sx.cr and ip.ixName = sx.ix
union all select tb, 'ixStats', statstime
from sysibm.sysIndexStats is join session.sx sx
on is.owner = sx.cr and is.name = sx.ix
union all select tb, 'keyTarget', statstime
from sysibm.sysKeyTargets kt join session.sx sx
on kt.ixSchema = sx.cr and kt.ixname = sx.ix
union all select tb, 'keyTgtStats', statstime
from sysibm.sysKeyTargetStats ks join session.sx sx
on ks.ixSchema = sx.cr and ks.ixname = sx.ix
union all select tb, 'keyTgtDist', statstime
from sysibm.sysKeyTgtDist kt join session.sx sx
on kt.ixSchema = sx.cr and kt.ixname = sx.ix
union all select tb, 'keyTgtDiSta', statstime
from sysibm.sysKeyTgtDistStats kts join session.sx sx
on kts.ixSchema = sx.cr and kts.ixname = sx.ix
)
select tb, ct, count(*) cnt,
left(char(min(tst)), 19) "statsTimeMin",
left(char(max(tst)), 19) "statsTimeMax"
from t
group by tb, ct
;
$! call sqlStmts
$!
$;
if $fun == 'o' then $@/old/
$<=¢
with t (tb, ct, nm, tst) as
( select tb, 'columns', name, statstime
from sysibm.sysColumns co join session.st st
on co.tbCreator = st.cr and co.tbName = st.tb
and statsTime < lim
and statsTime > '0001-01-01-00.00.00.00000'
union all select tb, 'colDist',
case when length(colGroupColNo) <= 2 then name
else hex(COLGROUPCOLNO) end ,
statsTime
from sysibm.sysColDist cd join session.st st
on cd.tbOwner = st.cr and cd.tbName = st.tb
and cd.statstime < lim
union all select tb, 'colDistStats',
case when length(colGroupColNo) <= 2 then name
else hex(COLGROUPCOLNO) end
|| right(' ' || strip(char(partition)), 5), statsTime
from sysibm.sysColDistStats cds join session.st st
on cds.tbOwner = st.cr and cds.tbName = st.tb
and statstime < lim
union all select tb, 'colStats',
name || ' '
|| right(' ' || strip(char(partition)), 5), statsTime
from sysibm.sysColStats cs join session.st st
on cs.tbOwner = st.cr and cs.tbName = st.tb
and statstime < lim
)
$@¢
if $det then $@=¢
select tb, ct, left(char(tst), 19) "statsTime", nm
from t
order by tb, ct, nm
$! else $@=¢
select tb, ct, count(*) cnt,
left(char(min(tst)), 19) "statsTimeMin",
left(char(max(tst)), 19) "statsTimeMax"
from t
group by tb, ct
order by tb, ct
$!
$!
;
$! call sqlStmts
$/old/
$;
if $fun == 'd' then $@/delete/
$<=¢
update sysibm.sysColumns co set
statstime = '0001-01-01-00.00.00.00000'
, colCardf = -1
where (tbCreator, tbName, name) in
( select cr, tb, name
from sysibm.sysColumns co join session.st st
on co.tbCreator = st.cr and co.tbName = st.tb
and statsTime < lim
and statsTime > '0001-01-01-00.00.00.00000'
fetch first $updCnt rows only
)
$! $$- sqlUpdComLoop(scanSqlIn2Stmt( , 0))
$;
$<=¢
delete
from sysibm.sysColDist d
where (tbOwner, tbName, name, $distKeys)
in ( select cr, tb, name, $distKeys
from sysibm.sysColDist cd join session.st st
on cd.tbOwner = st.cr and cd.tbName = st.tb
and cd.statstime < lim
fetch first $updCnt rows only
)
$! $$- sqlUpdComLoop(scanSqlIn2Stmt( , 0))
$;
$<=¢
delete
from sysibm.sysColDistStats
where (tbOwner, tbName, name, partition, $distKeys)
in ( select cr, tb, name, partition, $distKeys
from sysibm.sysColDistStats cds join session.st st
on cds.tbOwner = st.cr and cds.tbName = st.tb
and statstime < lim
fetch first $updCnt rows only
)
$! $$- sqlUpdComLoop(scanSqlIn2Stmt( , 0))
$;
$<=¢
delete
from sysibm.sysColStats
where (tbOwner, tbName, name, partition)
in ( select cr, tb, name, partition
from sysibm.sysColStats cs join session.st st
on cs.tbOwner = st.cr and cs.tbName = st.tb
and statstime < lim
fetch first $updCnt rows only
)
$! $$- sqlUpdComLoop(scanSqlIn2Stmt( , 0))
$/delete/
$#out 20150907 15:35:52
}¢--- A540769.WK.SQL(CATRUPD0) cre=2010-12-13 mod=2012-01-20-15.54.38 A540769 ---
-- show runstats values
-- delete / update if necessary
set current path = OA1A ;
with c as --colGroupColNo is concat of smallint(colNo)
( -- but empty if only 1 column
--thus, make similar group for 1 column
-- and select last column name
select
case when length(colGroupColNo) > 1 then hex(colGroupColNo)
else ( select hex(smallint(c.colNo))
from sysibm.sysColumns c
where c.tbCreator = b.tbOwner
and c.tbName = b.tbName
and c.name = b.name
) end cg, -- colGroup in hex also for single column
case when length(colGroupColNo) < 3 then name
else ( select name
from sysibm.sysColumns c
where c.tbCreator = b.tbOwner
and c.tbName = b.tbName
and hex(smallint(c.colNo))
= hex(right(b.colGroupColNo, 2))
) end cLa, -- last column name
tbOwner, tbName, name, colGroupColNo, type,
count(*) cnt, max(cardf) card, max(frequencyF) freq,
min(statsTime) minTst, max(statsTime) maxTst
from sysibm.sysColDist b
where tbOwner = 'OA1A' and tbName = 'TWM005A1'
group by tbOwner, tbName, name, colGroupColNo, type
)
select substr(cLa, 1, 16) || substr(cg, 1, 34) "lastColumn group",
type, smallint(cnt) cnt,
substr(fosFmte7(card), 1, 7) "maxCard",
substr(fosFmte7(freq), 1, 7) "maxFreq",
minTst "min statsTime",
maxTst "max statsTime"
from c
order by tbOwner, tbName, cg || x'0000', type
;
select colCardf, statstime, c.*
from sysibm.sysColumns c
where tbCreator = 'OA1A' and tbName = 'TWM005A1'
;
select *
from sysibm.sysColDist
where tbOwner = 'OA1A' and tbName = 'TWM005A1'
;
select *
from sysibm.sysColStats
where tbOwner = 'OA1A' and tbName = 'TWM005A1'
;
select *
from sysibm.sysColDistStats
where tbOwner = 'OA1A' and tbName = 'TWM005A1'
;
select statstime, cardf, nPagesF, spacef, avgrowlen
from sysibm.sysTables c
where creator = 'OA1A' and name = 'TWM005A1'
;
select *
from sysibm.sysTabStats
where owner = 'OA1A' and name = 'TWM005A1'
;;;;;
update sysibm.sysColumns set
statstime = '0001-01-01-00.00.00.00000'
, colCardf = -1
where tbCreator = 'OA1A' and tbName = 'TWM005A1'
;
delete
from sysibm.sysColStats
where tbOwner = 'OA1A' and tbName = 'TWM005A1'
;
delete
from sysibm.sysColDist d
where tbOwner = 'OA1A' and tbName = 'TWM005A1'
;
select *
from sysibm.sysColDist d
where tbOwner = 'OA1A' and tbName = 'TWM005A1'
order by type, frequencyf desc
;
rollback;
;;;
commit;
select date(statstime), count(*)
from sysibm.sysTables
where creator = 'OA1A'
group by date(statstime)
order by 1 desc
;;;;
}¢--- A540769.WK.SQL(CATRUPD3) cre=2012-06-12 mod=2012-06-12-17.24.59 A540769 ---
declare global temporary table session.st
as (select creator cr, name tb, tbName db, tsName ts,
statstime lim
from sysibm.sysTables
) with no data on commit preserve rows
;
declare global temporary table session.sx
as (select creator cr, name ix, tbCreator tbCr, tbName tb,
statstime lim
from sysibm.sysIndexes
) with no data on commit preserve rows
;
insert into session.st
select creator, name, dbName, tsName, '0001-01-01-00.00.00'
from sysibm.sysTables
where dbName like 'M%'
;
update session.st st
set lim = ( select max('0002-01-01-00.00.00',
max(statstime)) - 169 hours
from sysibm.sysColumns co
where co.tbCreator = st.cr and co.tbName = st.tb)
;
insert into session.sx
select creator, name, tbCreator, tbName, lim
from sysibm.sysIndexes ix join session.st st
on ix.tbCreator = st.cr and ix.tbName = st.tb
;
with old (tb, cat, stats) as
(
select tb, 'columns', statstime
from sysibm.sysColumns co join session.st st
on co.tbCreator = st.cr and co.tbName = st.tb
and statsTime < lim
and statsTime > '0001-01-01-00.00.00.00000'
union all select tb, 'colDist', statstime
from sysibm.sysColDist cd join session.st st
on cd.tbOwner = st.cr and cd.tbName = st.tb
and cd.statstime < lim
union all select tb, 'colDistStats', statstime
from sysibm.sysColDistStats cds join session.st st
on cds.tbOwner = st.cr and cds.tbName = st.tb
and statstime < lim
)
select tb, cat, count(*), min(stats), max(stats)
from old
group by tb, cat
order by tb, cat
;;;
}¢--- A540769.WK.SQL(CATSIMPL) cre=2008-05-26 mod=2008-05-26-15.45.58 F540769 ---
select char(strip(t.creator) || '.' || strip(t.name), 40) ,
partitions, segSize, s.dbName, s.name
from sysibm.sysTables t, sysibm.systablespace s
where t.type = 'T' and t.dbName = s.dbName and t.tsName = s.name
and t.name = 'ZINSFREQUENZ'
;
x
select * from
( select char(t.name, 30) tb, count(*)cnt , sum(case
when partitions = 0 and segSize = 0 then 1 else 0 end) simp
from sysibm.sysTables t, sysibm.systablespace s
where t.dbName = s.dbName and t.tsName = s.name and s.type <> 'O'
and t.dbName like 'DG%' and t.type = 'T'
group by t.name
) si
where simp > 0 and cnt > 1
order by 3 desc
;
xelect t.name, count(*), sum(
from sysibm.systablespace
where partitions = 0 and segSize = 0 and type <> 'O'
order by name, dbname
}¢--- A540769.WK.SQL(CATSPACE) cre=2009-09-15 mod=2012-11-22-12.39.29 A540769 ---
-- Space Auswertung für ein ganzes Subsystem:
-- zeigt das Total und die 20 grössten DBs
-- index und TS separiert
-- runstats und RTS Daten
-- tot ist die Summe der Maxima(runstats, RTS) von TS und IX
-- % Zahlen geben TS-Run, TS-RTS, IX-Run und IX-RTS in% von tot
--
-- requires fosfmtE8
set current path = oa1P;
with spTs as
(
select dbName db, sum(max(spaceF, 0) * 1024) sp,
count(*) objs, sum(max(1, partitions)) parts
from sysibm.sysTablespace
group by dbName
) , spTsRts as
(
select dbName db, sum(float(max(space, 0)) * 1024) sp,
sum(case when partition <= 1 then 1 else 0 end) objs,
count(*) parts
from sysibm.sysTablespaceStats
group by dbName
) , spIx as
(
select dbName db, sum(max(spaceF, 0) * 1024) sp,
count(*) objs, case when 1=1 then null else 1 end parts
from sysibm.sysIndexes
group by dbName
) , spIxRts as
(
select dbName db, sum(float(max(space, 0)) * 1024) sp,
sum(case when partition <= 1 then 1 else 0 end) objs,
count(*) parts
from sysibm.sysIndexspaceStats
group by dbName
) , sp2 (db, spTs, spTsRts, tsObjs, tsParts,
spIx, spIxRts, ixObjs, ixParts) as
(
select spTs.db,
spTs.sp spTs, coalesce(spTsRts.sp, 0) spTsRts,
spTs.objs tsObjs, spTs.parts tsParts,
coalesce(spIx.sp, 0) spIx, coalesce(spIxRts.sp, 0) spIxRts,
coalesce(spIx.objs, 0) ixObjs, coalesce(spIxRts.parts, 0)ixParts
from spTs
left join spTsRts
on spTs.db = spTsRts.db
left join spIx
on spTs.db = spIx.db
left join spIxRts
on spTs.db = spIxRts.db
) , sp3 (db, spTs, spTsRts, tsObjs, tsParts,
spIx, spIxRts, ixObjs, ixParts) as
(
select * from sp2
union all select
' * ', sum(spTs), sum(spTsRts), sum(tsObjs), sum(tsParts)
, sum(spIx), sum(spIxRts), sum(ixObjs), sum(ixParts)
from sp2
) , sp (sp, db, spTs, spTsRts, tsObjs, tsParts,
spIx, spIxRts, ixObjs, ixParts) as
(
select max(max(spTs,spTsRts)+max(spIx, spIxRts), 1), sp3.*
from sp3
)
select char(db, 8)
, char(fosfmte8(sp), 8) "tot"
, dec(tsObjs, 7, 0) "tsObjs", dec(tsParts, 7, 0) "tsParts"
, dec(ixObjs, 7, 0) "ixObjs", dec(ixParts, 7, 0) "ixParts"
, right(' '||strip(char(int(round(spTs/sp*100 , 0)))), 4)
||right(' '||strip(char(int(round(spTsRts/sp*100, 0)))), 4)
||right(' '||strip(char(int(round(spIx/sp*100 , 0)))), 4)
||right(' '||strip(char(int(round(spIxRts/sp*100, 0)))), 4)
"% TS rts IX rts"
, dec(spTsRts/sp*100, 3, 0) "tsRts%"
, dec(spIx/sp*100, 3, 0) "ixRun%"
, dec(spIxRts/sp*100, 3, 0) "ixRts%"
from sp
-- where db in ('XBDL1001', 'XBDPK001', 'XBDPL001'
-- ,'XBD2R001', 'XBDM3001', 'XBDL0001')
order by (max(spTs,spTsRts)+max(spIx, spIxRts)) desc
fetch first 21 rows only
;
}¢--- A540769.WK.SQL(CATSPACS) cre=2009-09-24 mod=2009-09-24-14.42.17 A540769 ---
-- Space Auswertung für ein ganzes Subsystem:
-- zeigt das Total und die 20 grössten DBs
-- index und TS separiert
-- runstats und RTS Daten
-- tot ist die Summe der Maxima(runstats, RTS) von TS und IX
-- % Zahlen geben TS-Run, TS-RTS, IX-Run und IX-RTS in% von tot
--
-- requires fmtE8
set current path = oa1x;
with sp as
(
select s.dbName db, s.name ts, max(s.spaceF, 0) * 1024 spS
, 1 obS, max(1, s.partitions) paS
, r.spR, r.obR, r.paR
, i.spI, i.obI
, i.spJ, i.obJ, i.paJ
from sysibm.sysTablespace s
left join
( select dbName db, name ts, sum(float(space) * 1024) spR,
1 obR, count(*) paR, dbid, psid
from sysibm.sysTablespaceStats
group by dbid, psId, dbName, name
) r
on s.dbid = r.dbId and s.psid = r.psid
and s.dbName = r.db and s.name = r.ts
left join
( select t.dbName db, t.tsName ts, count(*) obI
, sum(i.spacef * 1024) spI
, sum(spJ) spJ, sum(obJ) obJ, sum(paJ) paJ
from sysibm.sysTables t
join sysibm.sysIndexes i
on t.creator = i.tbCreator and t.name = i.tbName
and t.dbName = i.dbName
left join
( select creator, name -- , dbid, isobid,
, sum(float(space) * 1024) spJ
, 1 obJ, count(*) paJ
from sysibm.sysIndexSpaceStats
group by creator, name
) j
on i.creator = j.creator and i.name = j.name
group by t.dbName, t.tsName
) i
on s.dbName = i.db and s.name = i.ts
)
select * from sp where db like 'DGDB9998%'
;
) , spTsRts as
(
select dbName db, sum(float(space) * 1024) sp,
sum(case when partition <= 1 then 1 else 0 end) objs,
count(*) parts
from sysibm.sysTablespaceStats
group by dbName
) , spIx as
(
select dbName db, sum(spaceF * 1024) sp,
count(*) objs, case when 1=1 then null else 1 end parts
from sysibm.sysIndexes
group by dbName
) , spIxRts as
(
select dbName db, sum(float(space) * 1024) sp,
sum(case when partition <= 1 then 1 else 0 end) objs,
count(*) parts
from sysibm.sysIndexspaceStats
group by dbName
) , sp2 (db, spTs, spTsRts, tsObjs, tsParts,
spIx, spIxRts, ixObjs, ixParts) as
(
select spTs.db,
spTs.sp spTs, coalesce(spTsRts.sp, 0) spTsRts,
spTs.objs tsObjs, spTs.parts tsParts,
coalesce(spIx.sp, 0) spIx, coalesce(spIxRts.sp, 0) spIxRts,
coalesce(spIx.objs, 0) ixObjs, coalesce(spIxRts.parts, 0)ixParts
from spTs
left join spTsRts
on spTs.db = spTsRts.db
left join spIx
on spTs.db = spIx.db
left join spIxRts
on spTs.db = spIxRts.db
where spTs.db like 'DGDB9998%'
) , sp3 (db, spTs, spTsRts, tsObjs, tsParts,
spIx, spIxRts, ixObjs, ixParts) as
(
select * from sp2
union all select
' * ', sum(spTs), sum(spTsRts), sum(tsObjs), sum(tsParts)
, sum(spIx), sum(spIxRts), sum(ixObjs), sum(ixParts)
from sp2
) , sp (sp, db, spTs, spTsRts, tsObjs, tsParts,
spIx, spIxRts, ixObjs, ixParts) as
(
select max(spTs,spTsRts)+max(spIx, spIxRts), sp3.*
from sp3
)
select char(db, 8)
, char(fmte8(sp), 8) "tot"
, dec(tsObjs, 7, 0) "tsObjs", dec(tsParts, 7, 0) "tsParts"
, dec(ixObjs, 7, 0) "ixObjs", dec(ixParts, 7, 0) "ixParts"
, right(' '||strip(char(int(round(spTs/sp*100 , 0)))), 4)
||right(' '||strip(char(int(round(spTsRts/sp*100, 0)))), 4)
||right(' '||strip(char(int(round(spIx/sp*100 , 0)))), 4)
||right(' '||strip(char(int(round(spIxRts/sp*100, 0)))), 4)
"% TS rts IX rts"
, dec(spTsRts/sp*100, 3, 0) "tsRts%"
, dec(spIx/sp*100, 3, 0) "ixRun%"
, dec(spIxRts/sp*100, 3, 0) "ixRts%"
from sp
where sp >= 1
and db like 'DGDB9998%'
order by (max(spTs,spTsRts)+max(spIx, spIxRts)) desc
fetch first 21 rows only
;
with sp (db, ty, sp, objs, parts) as
}¢--- A540769.WK.SQL(CATSPAC1) cre=2012-05-03 mod=2012-06-06-16.55.14 A540769 ---
--- Space Auswertung für einzelne Objekte einer DB
-- zeigt das Total und die 20 grössten DBs
-- index und TS separiert
-- runstats und RTS Daten
-- tot ist die Summe der Maxima(runstats, RTS) von TS und IX
-- % Zahlen geben TS-Run, TS-RTS, IX-Run und IX-RTS in% von tot
--
-- requires fosfmtE8
set current path = oa1p;
with ts as
(
select dbName db, name ts, sum(spaceF * 1024) sp,
count(*) objs, sum(max(1, partitions)) parts
from sysibm.sysTablespace
group by dbName, name
) , tsR as
(
select dbName db, name ts, sum(float(space) * 1024) sp,
sum(case when partition <= 1 then 1 else 0 end) objs,
count(*) parts
from sysibm.sysTablespaceStats
group by dbName, name
) , ix as
(
select t.dbName db, t.tsName ts,
sum(i.spaceF * 1024) sp,
count(*) objs, case when 1=1 then null else 1 end parts
from sysibm.sysIndexes i
join sysibm.sysTables t
on t.creator = i.tbCreator and t.name = i.tbName
group by t.dbName, t.tsName
) , ixR as
(
select t.dbName db, t.tsName ts,
sum(float(r.space) * 1024) sp,
sum(case when r.partition <= 1 then 1 else 0 end) objs,
count(*) parts
from sysibm.sysIndexspaceStats r
join sysibm.sysIndexes i
on r.creator = i.creator and r.name = i.name
join sysibm.sysTables t
on t.creator = i.tbCreator and t.name = i.tbName
group by t.dbName, t.tsName
) , sp1 (db, ts, spTs, spTsRts, tsObjs, tsParts,
spIx, spIxRts, ixObjs, ixParts) as
(
select ts.db, ts.ts,
ts.sp spTs, coalesce(tsR.sp, 0), ts.objs, ts.parts,
coalesce(ix.sp, 0), coalesce(ixR.sp, 0),
coalesce(ix.objs, 0), coalesce(ixR.parts, 0)
from ts
left join tsR
on ts.db = TsR.db and ts.ts = tsR.ts
left join ix
on ts.db = ix.db and ts.ts = ix.ts
left join ixR
on ts.db = ixR.db and ts.ts = ixR.ts
where ts.db = 'DCMN'
) , sp2 (db, ts, spTs, spTsRts, tsObjs, tsParts,
spIx, spIxRts, ixObjs, ixParts) as
(
select * from sp1
union all select '*', '*'
, sum(spTs), sum(spTsRts), sum(tsObjs), sum(tsParts)
, sum(spIx), sum(spIxRts), sum(ixObjs), sum(ixParts)
from sp1
) , sp as
(
select max(spTs,spTsRts)+max(spIx, spIxRts) sp, sp2.*
from sp2
)
select char(db, 8) db, char(ts, 8) ts
, char(fosfmte7(sp), 8) "tot"
, dec(tsObjs, 7, 0) "tsObjs", dec(tsParts, 7, 0) "tsParts"
, dec(ixObjs, 7, 0) "ixObjs", dec(ixParts, 7, 0) "ixParts"
, right(' '||strip(char(int(round(spTs/sp*100 , 0)))), 4)
||right(' '||strip(char(int(round(spTsRts/sp*100, 0)))), 4)
||right(' '||strip(char(int(round(spIx/sp*100 , 0)))), 4)
||right(' '||strip(char(int(round(spIxRts/sp*100, 0)))), 4)
"% TS rts IX rts"
, dec(spTsRts/sp*100, 3, 0) "tsRts%"
, dec(spIx/sp*100, 3, 0) "ixRun%"
, dec(spIxRts/sp*100, 3, 0) "ixRts%"
from sp
order by sp desc
fetch first 21 rows only
;
}¢--- A540769.WK.SQL(CATSPAIX) cre=2013-01-25 mod=2013-01-25-08.02.50 A540769 ---
with i as
(
select creator cr, name ix, tbCreator tbCr, tbName tb,
sum(i.spaceF * 1024) sp,
sum(real(i.firstKeyCard)) fiKC,
sum(real(i.fullKeyCard)) fuKC,
avg(avgKeyLen) avgKey
from sysibm.sysIndexes i
group by creator, name, tbCreator, tbName
)
, ip as
(
select ixcreator cr, ixname ix,
sum(spaceF * 1024) sp,
sum(cardF) card,
avg(avgKeyLen) AvgKey
from sysibm.sysIndexPart
group by ixcreator, ixname
)
, ir as
(
select creator cr, name ix,
sum(real(space) * 1024) sp,
sum(real(totalEntries)) card
from sysibm.sysIndexSpaceStats
group by creator, name
)
select substr(i.tbCr, 1, 6) tbCr
, substr(i.tb , 1, 12) tbCr
, substr(i.cr , 1, 6) Cr
, substr(i.ix , 1, 16) ix
, i.sp, ip.sp ipSp, ir.sp irSp
, ip.card ipCard, ir.card irCard
, i.fiKC, i.fuKC
, i.avgKey iAvgKey, ip.avgKey ipAvgKey
from i
left join ip on i.cr = ip.cr and i.ix = ip.ix
left join ir on i.cr = ir.cr and i.ix = ir.ix
where tbCr = 'OA1A' and tb = 'TMF150A1'
;;;; x;
where tbName =
group by t.dbName, t.tsName
) , ixR as
--- Space Auswertung für einzelne Objekte einer DB
-- zeigt das Total und die 20 grössten DBs
-- index und TS separiert
-- runstats und RTS Daten
-- tot ist die Summe der Maxima(runstats, RTS) von TS und IX
-- % Zahlen geben TS-Run, TS-RTS, IX-Run und IX-RTS in% von tot
--
-- requires fosfmtE8
set current path = oa1p;
with ts as
(
select dbName db, name ts, sum(spaceF * 1024) sp,
count(*) objs, sum(max(1, partitions)) parts
from sysibm.sysTablespace
group by dbName, name
) , tsR as
(
select dbName db, name ts, sum(float(space) * 1024) sp,
sum(case when partition <= 1 then 1 else 0 end) objs,
count(*) parts
from sysibm.sysTablespaceStats
group by dbName, name
) , ix as
(
select t.dbName db, t.tsName ts,
sum(i.spaceF * 1024) sp,
count(*) objs, case when 1=1 then null else 1 end parts
from sysibm.sysIndexes i
join sysibm.sysTables t
on t.creator = i.tbCreator and t.name = i.tbName
group by t.dbName, t.tsName
) , ixR as
(
select t.dbName db, t.tsName ts,
sum(float(r.space) * 1024) sp,
sum(case when r.partition <= 1 then 1 else 0 end) objs,
count(*) parts
from sysibm.sysIndexspaceStats r
join sysibm.sysIndexes i
on r.creator = i.creator and r.name = i.name
join sysibm.sysTables t
on t.creator = i.tbCreator and t.name = i.tbName
group by t.dbName, t.tsName
) , sp1 (db, ts, spTs, spTsRts, tsObjs, tsParts,
spIx, spIxRts, ixObjs, ixParts) as
(
select ts.db, ts.ts,
ts.sp spTs, coalesce(tsR.sp, 0), ts.objs, ts.parts,
coalesce(ix.sp, 0), coalesce(ixR.sp, 0),
coalesce(ix.objs, 0), coalesce(ixR.parts, 0)
from ts
left join tsR
on ts.db = TsR.db and ts.ts = tsR.ts
left join ix
on ts.db = ix.db and ts.ts = ix.ts
left join ixR
on ts.db = ixR.db and ts.ts = ixR.ts
where ts.db = 'DCMN'
) , sp2 (db, ts, spTs, spTsRts, tsObjs, tsParts,
spIx, spIxRts, ixObjs, ixParts) as
(
select * from sp1
union all select '*', '*'
, sum(spTs), sum(spTsRts), sum(tsObjs), sum(tsParts)
, sum(spIx), sum(spIxRts), sum(ixObjs), sum(ixParts)
from sp1
) , sp as
(
select max(spTs,spTsRts)+max(spIx, spIxRts) sp, sp2.*
from sp2
)
select char(db, 8) db, char(ts, 8) ts
, char(fosfmte7(sp), 8) "tot"
, dec(tsObjs, 7, 0) "tsObjs", dec(tsParts, 7, 0) "tsParts"
, dec(ixObjs, 7, 0) "ixObjs", dec(ixParts, 7, 0) "ixParts"
, right(' '||strip(char(int(round(spTs/sp*100 , 0)))), 4)
||right(' '||strip(char(int(round(spTsRts/sp*100, 0)))), 4)
||right(' '||strip(char(int(round(spIx/sp*100 , 0)))), 4)
||right(' '||strip(char(int(round(spIxRts/sp*100, 0)))), 4)
"% TS rts IX rts"
, dec(spTsRts/sp*100, 3, 0) "tsRts%"
, dec(spIx/sp*100, 3, 0) "ixRun%"
, dec(spIxRts/sp*100, 3, 0) "ixRts%"
from sp
order by sp desc
fetch first 21 rows only
;
}¢--- A540769.WK.SQL(CATSPKEY) cre=2010-09-29 mod=2010-09-29-16.57.56 A540769 ---
select substr(limitkey, 1, 30) limitKey,
length(limitKey_internal) intLen,
hex(limitkey_internal) int, p.*
from sysibm.systablepart p
where dbName = 'DGDB0376'
and tsName = 'A719A'
}¢--- A540769.WK.SQL(CATSTATS) cre=2009-05-11 mod=2009-05-11-09.23.43 F540769 ---
select p.dbName, p.tsname, p.partition
from sysibm.sysTablePart p, sysibm.sysTableSpace s
where p.dbName = s.dbName and p.tsName = s.name
and not exists (select 0 from sysibm.sysTableSpaceStats r
where r.dbName = s.dbName and r.name = s.Name
and r.dbid = s.dbid and r.psid = s.psid
and r.partition = p.partition
)
-- and s.dbName Like 'M%'
}¢--- A540769.WK.SQL(CATSTMT) cre=2010-02-10 mod=2010-02-10-16.34.15 A540769 ---
-- view to extract sql statement text from sysPackStmt
-- concatenate statement texts if split in multiple junks
-- (up to 29000 bytes)
-- convert from utf8 to ebcdic if necessary
-- (we simply check first character for >='a')
-- attention:
-- where clause cannot be moved from recursive tableExpr stT
-- because optimizer doesn't optimize it as needed|
-- DSNTIAUL gets an error on this view, and
-- SPUFI does not handle so long characters,
-- thus, use WSH catStmtW in a DSN with very long recSize
--
set current sqlid = 'S100447';
set current path = 'OA1A';
drop view A540769.CATSTMT;
create view A540769.CATSTMT as
with stG as
( -- stG groups sysPackStmt rows into statments
-- each stmt has a range of seqNo, neither gaps nor overlaps
-- stmtNo and stmtNoI are often equal, but not always||
select location, collid, name, contoken, stmtNo, stmtNoI,
min(seqNo) seqMin, max(seqNo) seqMax
from sysibm.sysPackStmt
-- if all 0 internal (pseudo) statements => ignore
where (seqno <> 0 or stmtNo <> 0 or stmtNoI <> 0)
-- select here |
and location = '' and collid = 'MF'
group by location, collid, name, contoken,
stmtNo, stmtNoI
)
-- now use recursive stT to concatenate text junks up to 29000 chars
, stT (lv, sq, sLen, tLen, tx,
location, collid, name, contoken, stmtNo, stmtNoI,
seqMin, seqMax, explainable
) as
( -- now use recursive table to concatenate text junks up to 29000 chars
-- recursion seed: first stmt junk contains lengths
select 0, s.seqNo sq, fosC2I4(substr(stmt, 1, 4)) sLen, -- total len
fosC2I4(substr(stmt, 5, 4)) tLen, -- textlen
varchar(substr(stmt, 9, min(length(stmt)-8,
int(fosC2I4(substr(stmt, 5, 4))))), 29000) tx,
g.*, s.explainable
from stG g, sysibm.sysPackStmt s
where s.location = g.location and s.collid = g.collid
and s.name = g.name and s.contoken = g.contoken
and s.seqNo = g.seqMin
union all
-- recursion step: join next junk
select lv+1,
s.seqNo, sLen, tLen,
varchar(tx || substr(stmt, 1, int(min(length(stmt),
t.tLen-length(tx), 29000-length(tx)))), 29000),
t.location, t.collid, t.name, t.contoken,
t.stmtNo, t.stmtNoI,
t.seqMin, t.seqMax,
t.explainable
from stT t, sysibm.sysPackStmt s
where s.location = t.location and s.collid = t.collid
and s.name = t.name and s.contoken = t.contoken
and s.seqNo = t.sq+1
-- abbruch Bedingung: keinen Junks mehr
and t.sq < t.seqMax and t.lv < 100000
-- abbruch Bedingung: Länge erreicht
and length(t.tx) < t.tLen and length(t.tx) < 29000
)
select location, collid, name, contoken, stmtNo, stmtNoI,
CASE WHEN left(tx, 1) >= 'a' then tx
else cast(CAST(tx AS VARCHAR(29000) CCSID 1208)
AS VARCHAR(29000) CCSID EBCDIC)
end tc,
lv, sq, sLen, tLen,
seqMin, seqMax,
explainable , substr(tx, 1, 1) t1
from stT
-- use only longest (final) tupel of each statement
where length(tx) in (tLen, 29000)
;
select * from A540769.CATSTMT
where seqMax - seqMin > 1
order by location, collid, name, contoken, sq
;
}¢--- A540769.WK.SQL(CATSTMTA) cre=2012-03-07 mod=2012-04-11-15.02.39 A540769 ---
$#@
call sqlConnect dbof
$;
$>.fEdit(':v')
$<=¢
-- extract sql statement text from sysPackStmt
-- concatenate statement texts if split in multiple junks
-- (up to 29000 bytes)
-- convert from utf8 to ebcdic if necessary
-- (we simply check first character for >='a')
-- attention:
-- where clause cannot be moved from recursive tableExpr stT
-- because optimizer doesn't optimize it as needed|
-- DSNTIAUL gets an error on this view, and
-- SPUFI does not handle so long characters,
-- thus, use WSH catStmtW in a DSN with very long recSize
--
set current sqlid = 'S100447';
set current path = 'OA1P';
with p as
( -- select newest packages --------------------------------------------
select location, collid, name, contoken
from sysibm.sysPackage n
-- select here |
where location = '' and name in ('YCDSGET'
,'YCDX011'
,'YCDX031'
,'YCIG600'
,'YDIEURE'
,'YDIT001'
,'YDIT002'
,'YDIT003'
,'YDIT004'
,'YGMSTEU'
,'YGMTXIO'
,'YOE2BU '
,'YOE2GET'
,'YOOAIE3'
,'YSVEUTV'
,'YSVG502'
,'YSVIDAT'
,'YVVSQLE'
,'YWPRCBX'
,'YWPR1B2'
,'YWPR2D1'
,'YWPR7HX'
,'YWUPARM'
,'YWUPUT '
,'YWUSTEU'
,'YYCRCXE'
)
and pcTimestamp = (select max(pcTimestamp)
from sysibm.sysPackage a
where a.location = n.location
and a.collid = n.collid and a.name = n.name
)
)
, g as
( -- g groups sysPackStmt rows into statments ----------------------
-- each stmt has a range of seqNo, neither gaps nor overlaps
-- stmtNo and stmtNoI are often equal, but not always||
select location, collid, name, contoken, stmtNo, stmtNoI,
min(seqNo) seqMin, max(seqNo) seqMax
from sysibm.sysPackStmt
-- if all 0 internal (pseudo) statements => ignore
where (seqno <> 0 or stmtNo <> 0 or stmtNoI <> 0)
and (location, collid, name, contoken) in
(select * from p)
group by location, collid, name, contoken,
stmtNo, stmtNoI
)
, stT (lv, sq, sLen, tLen, tx,
location, collid, name, contoken, stmtNo, stmtNoI,
seqMin, seqMax, explainable
) as
( -- recursion do concatenate stmt text --------------------------------
-- use recursive table to concatenate text junks up to 29000 chars
-- recursion seed: first stmt junk contains lengths
select 0, s.seqNo sq, fosC2I4(substr(stmt, 1, 4)) sLen, -- total len
fosC2I4(substr(stmt, 5, 4)) tLen, -- textlen
varchar(substr(stmt, 9, min(length(stmt)-8,
int(fosC2I4(substr(stmt, 5, 4))))), 29000) tx,
g.*, s.explainable
from g, sysibm.sysPackStmt s
where s.location = g.location and s.collid = g.collid
and s.name = g.name and s.contoken = g.contoken
and s.seqNo = g.seqMin
union all
-- recursion step: join next junk
select lv+1,
s.seqNo, sLen, tLen,
varchar(tx || substr(stmt, 1, int(min(length(stmt),
t.tLen-length(tx), 29000-length(tx)))), 29000),
t.location, t.collid, t.name, t.contoken,
t.stmtNo, t.stmtNoI,
t.seqMin, t.seqMax,
t.explainable
from stT t, sysibm.sysPackStmt s
where s.location = t.location and s.collid = t.collid
and s.name = t.name and s.contoken = t.contoken
and s.seqNo = t.sq+1
-- abbruch Bedingung: keinen Junks mehr
and t.sq < t.seqMax and t.lv < 100000
-- abbruch Bedingung: Länge erreicht
and length(t.tx) < t.tLen and length(t.tx) < 29000
)
select location, collid, name, contoken, stmtNo, stmtNoI,
CASE WHEN left(tx, 1) >= 'a' then tx
else cast(CAST(tx AS VARCHAR(29000) CCSID 1208)
AS VARCHAR(29000) CCSID EBCDIC)
end tc,
lv, sq, sLen, tLen,
seqMin, seqMax,
explainable , substr(tx, 1, 1) t1
from stT
-- use only longest (final) tupel of each statement
where length(tx) in (tLen, 29000)
order by location, collid, name, contoken, stmtNo, stmtNoI
$! call sqlStmts
$#out 20120411 14:05:03
$#out 20120411 14:04:49
*** run error ***
SQLCODE = -440: NO AUTHORIZED FUNCTION NAMED FOSC2I4 HAVING
COMPATIBLE ARGUMENTS WAS FOUND
stmt = execSql prepare s11 into :M.SQL.11.D from :src
with into :M.SQL.11.D = M.SQL.11.D
from :src = with p as
$#out 20120411 14:04:41
*** run error ***
tsoAlloc rc 12 for alloc dd(CAT1) NEW recfm(V b) lrecl(32756) block(32760) mgmt
$#out 20120411 13:44:11
*** run error ***
tsoAlloc rc 12 for alloc dd(CAT1) NEW recfm(V b) lrecl(32756) block(32760) mgmt
$#out 20120411 13:44:04
*** run error ***
SQLCODE = -440: NO AUTHORIZED FUNCTION NAMED FOSC2I4 HAVING
COMPATIBLE ARGUMENTS WAS FOUND
stmt = execSql prepare s11 into :M.SQL.11.D from :src
with into :M.SQL.11.D = M.SQL.11.D
from :src = with p as
$#out 20120411 13:43:48
*** run error ***
SQLCODE = -924: DB2 CONNECTION INTERNAL ERROR, 00000002,
0000000C, 00F30006
stmt = connect DBXF
$#out 20120411 13:43:45
*** run error ***
SQLCODE = -924: DB2 CONNECTION INTERNAL ERROR, 00000002,
0000000C, 00F30006
stmt = connect DBXF
$#out 20120411 13:40:34
$#out 20120411 13:40:26
*** run error ***
tsoAlloc rc 12 for alloc dd(CAT1) NEW recfm(V b) lrecl(32756) block(32760) mgmt
$#out 20120411 13:40:08
*** run error ***
SQLCODE = -440: NO AUTHORIZED FUNCTION NAMED FOSC2I4 HAVING
COMPATIBLE ARGUMENTS WAS FOUND
stmt = execSql prepare s11 into :M.SQL.11.D from :src
with into :M.SQL.11.D = M.SQL.11.D
from :src = with p as
$#out 20120411 13:39:58
*** run error ***
tsoAlloc rc 12 for alloc dd(CAT1) NEW recfm(V b) lrecl(32756) block(32760) mgmt
$#out 20120411 13:39:51
*** run error ***
SQLCODE = -440: NO AUTHORIZED FUNCTION NAMED FOSC2I4 HAVING
COMPATIBLE ARGUMENTS WAS FOUND
stmt = execSql prepare s11 into :M.SQL.11.D from :src
with into :M.SQL.11.D = M.SQL.11.D
from :src = with p as
$#out 20120307 13:38:24
$#out 20120307 13:35:51
$#out 20120307 13:31:10
$#out 20120307 13:30:58
}¢--- A540769.WK.SQL(CATSTMTB) cre=2010-02-10 mod=2010-02-10-16.46.17 A540769 ---
-- view catStmTb: extract sql statement text from sysPackStmt
-- for newest Package (pcTimestamp from sysPackage)
-- for all packages using a table (as of sysPackDep)
--
-- attention see catStmt, use WSH catStmtC
--
set current sqlid = 'S100447';
set current path = 'OA1A';
drop view A540769.catStmTb;
create view A540769.catStmTb as
with dg as
( -- group all packages using our tables,
-- and select newest pcTimeSt
select dLocation, dCollid, dName,
max(char(pcTimeStamp) || dContoken) tc
from sysibm.syspackdep
left join sysibm.syspackage
on dLocation = location
and dCollid = collid and dName = name and dConToken = conToken
where -- bType in ('P', 'R')
bQualifier = 'OA1A'
and bName in ('TMF150A1', 'TMF150H1')
group by dLocation, dCollid, dName
)
, dn as
( -- extrace pcTimeStamp and conToken
select dLocation, dCollid, dName,
substr(tc, 27) dconToken,
timestamp(left(tc, 26)) pcTimestamp
from dg
)
-- group statemets of the selected packages
-- and find range of seqNo for each stmt
--
-- attention: where clause cannot be moved from
-- seed of recursive view stT,
-- because optimizer doesn't optimize it as needed|
--
-- stG groups sysPackStmt rows into statments
-- each stmt has a range of seqNo, neither gaps nor overlaps
-- stmtNo and stmtNoI are often equal, but not always||
, stG as
( select location, collid, name, contoken, stmtNo, stmtNoI, pcTimestamp,
min(seqNo) seqMin, max(seqNo) seqMax
from sysibm.sysPackStmt, dn
-- if all 0 internal (pseudo) statements => ignore
where (seqno <> 0 or stmtNo <> 0 or stmtNoI <> 0)
-- select here |
and location = dLocation and collid = dCollid
and name = dName and conToken = dContoken
group by location, collid, name, contoken, pcTimeStamp,
stmtNo, stmtNoI
)
-- now use recursive stT to concatenate text junks up to 29000 chars
, stT (lv, sq, sLen, tLen, tx,
location, collid, name, contoken, stmtNo, stmtNoI,
pcTimeStamp, seqMin, seqMax, explainable
) as
( -- recursion seed are selected statements with first text chunk
select 0, s.seqNo sq, fosC2I4(substr(stmt, 1, 4)) sLen,
fosC2I4(substr(stmt, 5, 4)) tLen,
varchar(substr(stmt, 9, min(length(stmt)-8,
int(fosC2I4(substr(stmt, 5, 4))))), 29000) tx,
g.*, s.explainable
from stG g, sysibm.sysPackStmt s
where s.location = g.location and s.collid = g.collid
and s.name = g.name and s.contoken = g.contoken
and s.seqNo = g.seqMin
union all -- concatenate next text junk
select lv+1,
s.seqNo, sLen, tLen, varchar(tx || substr(stmt, 1,
int(min(length(stmt), t.tLen-length(tx), 29000-length(tx)
))), 29000),
t.location, t.collid, t.name, t.contoken,
t.stmtNo, t.stmtNoI, t.pcTimeStamp,
t.seqMin, t.seqMax,
t.explainable
from stT t, sysibm.sysPackStmt s
where s.location = t.location and s.collid = t.collid
and s.name = t.name and s.contoken = t.contoken
and s.seqNo = t.sq+1
and t.sq < t.seqMax and t.lv < 100000
and length(t.tx) < t.tLen and length(t.tx) < 29000
)
select location, collid, name, contoken, pcTimestamp,
stmtNo, stmtNoI,
CASE WHEN left(tx, 1) >= 'a' then tx
else cast(CAST(tx AS VARCHAR(29000) CCSID 1208)
AS VARCHAR(29000) CCSID EBCDIC)
end tc,
lv, sq, sLen, tLen,
seqMin, seqMax,
explainable , substr(tx, 1, 1) t1
from stT
-- use only longest text of each statement
where length(tx) in (tLen, 29000)
;
select * from A540769.catStmTb
-- where seqMax - seqMin > 1
order by location, collid, name, contoken, sq
;
}¢--- A540769.WK.SQL(CATSTMTC) cre=2010-02-10 mod=2010-02-10-16.48.02 A540769 ---
call sqlConnect DBAF
tc = left('', 30000, 'a')
call sqlPreOpen 1, 'select length(tc), c.* from a540769.catStmtB c' ,
"where explainable = 'Y'",
'order by location, collid, name, contoken, sq' ,
'with ur'
do while sqlFetchInto(1, ':le,' ,
':loc, :coll, :name, :conto, :pc, :stmtNo, :stmtNoI,',
':tc, :lv, :sq, :sLen, :tLen,' ,
':seqMin, :seqMax, :exp, :t1')
$$- left(strip(loc)'.'strip(coll)'.'strip(name), 20) $*+
c2x(conTo) pc right(stmtNo, 5) right(stmtNoI, 5) $*+
$*+ right(sq, 5) right(seqMin,5)'-'right(seqMax,5) right(lv, 5)$*+
$*+ right(sLen, 5)'/'right(tLen, 5) right(seqMin,5) exp t1 $*+
right(length(tc), 5)'/'right(tLen,5) tc
end
call sqlDisconnect
$#out 20100210 16:47:58
.A2.A267280T 18983996167C8EC0 2009-09-08-10.10.50.992699 497 497 31
.A2.A267280T 18983996167C8EC0 2009-09-08-10.10.50.992699 583 583
.A2.A267280T 18983996167C8EC0 2009-09-08-10.10.50.992699 792 792
.A2.A267280T 18983996167C8EC0 2009-09-08-10.10.50.992699 841 841
.A2.A267280T 18983996167C8EC0 2009-09-08-10.10.50.992699 891 891
.A2.A267280T 18983996167C8EC0 2009-09-08-10.10.50.992699 934 934
.A2.A267280T 18983996167C8EC0 2009-09-08-10.10.50.992699 976 976
.A2.A267280T 18983996167C8EC0 2009-09-08-10.10.50.992699 1230 1230 2
.CG.CG9999 18303AF9162F8A55 2007-11-16-16.10.25.225321 338 338 2
.HG.HG7280 17DC1CFB124A6CF8 2006-05-30-11.38.48.105459 1599 1599
.HG.HG7280 17DC1CFB124A6CF8 2006-05-30-11.38.48.105459 1620 1620
.HG.HG7280 17DC1CFB124A6CF8 2006-05-30-11.38.48.105459 1641 1641
.HG.HG7280 17DC1CFB124A6CF8 2006-05-30-11.38.48.105459 1672 1672
.HG.HG7280 17DC1CFB124A6CF8 2006-05-30-11.38.48.105459 1694 1694
.HG.HG7280 17DC1CFB124A6CF8 2006-05-30-11.38.48.105459 1716 1716
.HG.HG7280 17DC1CFB124A6CF8 2006-05-30-11.38.48.105459 1763 1763 1
.HG.HG7280 17DC1CFB124A6CF8 2006-05-30-11.38.48.105459 1797 1797
.HG.HG7280 17DC1CFB124A6CF8 2006-05-30-11.38.48.105459 1825 1825
.MF.MF0000 189B646805E37915 2009-09-28-12.51.10.004196 206 206 2
.MF.MF0000 189B646805E37915 2009-09-28-12.51.10.004196 214 214 2
.MF.MF0000 189B646805E37915 2009-09-28-12.51.10.004196 220 220 1
.MF.MF0000 189B646805E37915 2009-09-28-12.51.10.004196 225 225 1
.MF.MF0000 189B646805E37915 2009-09-28-12.51.10.004196 232 232 1
.MF.MF0000 189B646805E37915 2009-09-28-12.51.10.004196 509 509
.MF.MF0000 189B646805E37915 2009-09-28-12.51.10.004196 517 517
.MF.MF0000 189B646805E37915 2009-09-28-12.51.10.004196 550 550
.MF.MF0001 1831F54D07918B4A 2007-11-27-16.01.53.809005 476 476 2
.MF.MF0001 1831F54D07918B4A 2007-11-27-16.01.53.809005 490 490 2
.MF.MF0001 1831F54D07918B4A 2007-11-27-16.01.53.809005 504 504 2
.MF.MF5010 189E0AD716F1FD3F 2009-10-15-09.33.19.524340 745 745
.MF.MF5010 189E0AD716F1FD3F 2009-10-15-09.33.19.524340 823 823
.MF.MF5010 189E0AD716F1FD3F 2009-10-15-09.33.19.524340 893 893 5
.MF.MF5010 189E0AD716F1FD3F 2009-10-15-09.33.19.524340 916 916
.MF.MF7025 189B64730BFAB8DF 2009-09-28-12.52.43.875555 1904 1904
.MF.MF7025 189B64730BFAB8DF 2009-09-28-12.52.43.875555 1937 1937
.MF.MF7200 18AB222818C721D5 2010-01-06-16.41.37.186439 487 487 1
.MF.MF7200 18AB222818C721D5 2010-01-06-16.41.37.186439 1150 1150 2
.MF.MF7200 18AB222818C721D5 2010-01-06-16.41.37.186439 1187 1187 3
.MF.MF7200 18AB222818C721D5 2010-01-06-16.41.37.186439 1214 1214 2
.MF.MF7200 18AB222818C721D5 2010-01-06-16.41.37.186439 1240 1240 2
.MF.MF7200 18AB222818C721D5 2010-01-06-16.41.37.186439 1268 1268 3
.MF.MF7200 18AB222818C721D5 2010-01-06-16.41.37.186439 1294 1294 3
.MF.MF7200 18AB222818C721D5 2010-01-06-16.41.37.186439 1810 1810 1
.MF.MF7200 18AB222818C721D5 2010-01-06-16.41.37.186439 1832 1832
.MF.MF7200 18AB222818C721D5 2010-01-06-16.41.37.186439 1908 1908 1
.MF.MF7200 18AB222818C721D5 2010-01-06-16.41.37.186439 1971 1971
.MF.MF7200 18AB222818C721D5 2010-01-06-16.41.37.186439 2001 2001
.MF.MF7200 18AB222818C721D5 2010-01-06-16.41.37.186439 2034 2034
.MF.MF7200 18AB222818C721D5 2010-01-06-16.41.37.186439 2067 2067
.MF.MF7200 18AB222818C721D5 2010-01-06-16.41.37.186439 2103 2103
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 1237 1237 12
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 1271 1271 3
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 5975 5975 5
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 6050 6050 4
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 6121 6121 4
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 6192 6192 4
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 6808 6808
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 6845 6845
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 7667 7667 2
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 7742 7742
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 7908 7908 16
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 8079 8079 15
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 8140 8140 3
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 8188 8188 1
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 8411 8411 5
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 8461 8461 1
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 8538 8538 3
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 8598 8598 1
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 8647 8647
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 8676 8676 1
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 686 686 2
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 814 814 1
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 830 830 1
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 901 901 4
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 1051 1051
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 1218 1218 4
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 1411 1411 2
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 1574 1574 1
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 1775 1775 5
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 1821 1821 5
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 1872 1872
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 1904 1904
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 1945 1945 1
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 1986 1986 1
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 2046 2046 2
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 2098 2098 1
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 2136 2136 1
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 2166 2166
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 2457 2457
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 2507 2507
.MF.MF7240 189B687E1C1DD8DA 2009-09-28-15.17.30.315107 497 497 31
.MF.MF7240 189B687E1C1DD8DA 2009-09-28-15.17.30.315107 583 583
.MF.MF7240 189B687E1C1DD8DA 2009-09-28-15.17.30.315107 792 792
.MF.MF7240 189B687E1C1DD8DA 2009-09-28-15.17.30.315107 841 841
.MF.MF7240 189B687E1C1DD8DA 2009-09-28-15.17.30.315107 891 891
.MF.MF7240 189B687E1C1DD8DA 2009-09-28-15.17.30.315107 934 934
.MF.MF7240 189B687E1C1DD8DA 2009-09-28-15.17.30.315107 976 976
.MF.MF7240 189B687E1C1DD8DA 2009-09-28-15.17.30.315107 1230 1230 2
.MF.MF7250 189B688010DB7A8E 2009-09-28-15.17.44.140778 352 352 3
.MF.MF7250 189B688010DB7A8E 2009-09-28-15.17.44.140778 370 370 3
.MF.MF7250 189B688010DB7A8E 2009-09-28-15.17.44.140778 855 855
.MF.MF7250 189B688010DB7A8E 2009-09-28-15.17.44.140778 882 882
.MF.MF7250 189B688010DB7A8E 2009-09-28-15.17.44.140778 923 923
.MF.MF7250 189B688010DB7A8E 2009-09-28-15.17.44.140778 952 952
.MF.MF7250 189B688010DB7A8E 2009-09-28-15.17.44.140778 1252 1252 1
.MF.MF7250 189B688010DB7A8E 2009-09-28-15.17.44.140778 1304 1304
.MF.MF7260 18A77F5418E26D38 2009-12-14-13.25.59.036852 296 296 1
.MF.MF7260 18A77F5418E26D38 2009-12-14-13.25.59.036852 312 312 3
.MF.MF7260 18A77F5418E26D38 2009-12-14-13.25.59.036852 538 538 2
.MF.MF7260 18A77F5418E26D38 2009-12-14-13.25.59.036852 607 607 2
.MF.MF7260 18A77F5418E26D38 2009-12-14-13.25.59.036852 668 668 3
.MF.MF7260 18A77F5418E26D38 2009-12-14-13.25.59.036852 727 727 3
.MF.MF7260 18A77F5418E26D38 2009-12-14-13.25.59.036852 1009 1009 2
.MF.MF7260 18A77F5418E26D38 2009-12-14-13.25.59.036852 1032 1032
.MF.MF7260 18A77F5418E26D38 2009-12-14-13.25.59.036852 1057 1057 1
.MF.MF7270 18A7FB001A1199D2 2009-12-17-15.12.22.676583 284 284 2
.MF.MF7270 18A7FB001A1199D2 2009-12-17-15.12.22.676583 294 294 1
.MF.MF7270 18A7FB001A1199D2 2009-12-17-15.12.22.676583 303 303 1
.MF.MF7270 18A7FB001A1199D2 2009-12-17-15.12.22.676583 314 314 1
.MF.MF7270 18A7FB001A1199D2 2009-12-17-15.12.22.676583 324 324 1
.MF.MF7270 18A7FB001A1199D2 2009-12-17-15.12.22.676583 335 335 1
.MF.MF7270 18A7FB001A1199D2 2009-12-17-15.12.22.676583 345 345 1
.MF.MF7270 18A7FB001A1199D2 2009-12-17-15.12.22.676583 355 355 1
.MF.MF7270 18A7FB001A1199D2 2009-12-17-15.12.22.676583 788 788
.MF.MF7270 18A7FB001A1199D2 2009-12-17-15.12.22.676583 817 817
.MF.MF7270 18A7FB001A1199D2 2009-12-17-15.12.22.676583 872 872 1
.MF.MF7270 18A7FB001A1199D2 2009-12-17-15.12.22.676583 981 981 1
.MF.MF7270 18A7FB001A1199D2 2009-12-17-15.12.22.676583 994 994
.MF.MF7275 189B68860693AB8F 2009-09-28-15.18.31.777454 650 650 1
.MF.MF7275 189B68860693AB8F 2009-09-28-15.18.31.777454 720 720
.MF.MF7275 189B68860693AB8F 2009-09-28-15.18.31.777454 754 754 1
.MF.MF7275 189B68860693AB8F 2009-09-28-15.18.31.777454 899 899
.MF.MF7275 189B68860693AB8F 2009-09-28-15.18.31.777454 920 920
.MF.MF7275A 185487870A2E9FB3 2008-07-04-16.23.51.318206 478 478
.MF.MF7275A 185487870A2E9FB3 2008-07-04-16.23.51.318206 499 499
.MF.MF7275A 185487870A2E9FB3 2008-07-04-16.23.51.318206 520 520 1
.MF.MF7275A 185487870A2E9FB3 2008-07-04-16.23.51.318206 531 531 1
.MF.MF7275A 185487870A2E9FB3 2008-07-04-16.23.51.318206 622 622
.MF.MF7275B 185BEB8E1AF4E63E 2008-08-20-17.02.13.497816 626 626 1
.MF.MF7275B 185BEB8E1AF4E63E 2008-08-20-17.02.13.497816 696 696
.MF.MF7275B 185BEB8E1AF4E63E 2008-08-20-17.02.13.497816 736 736 1
.MF.MF7275B 185BEB8E1AF4E63E 2008-08-20-17.02.13.497816 885 885
.MF.MF7275B 185BEB8E1AF4E63E 2008-08-20-17.02.13.497816 906 906
.MF.MF7280 1827451E1237094D 2007-09-20-16.50.07.074405 1572 1572
.MF.MF7280 1827451E1237094D 2007-09-20-16.50.07.074405 1601 1601
.MF.MF7280 1827451E1237094D 2007-09-20-16.50.07.074405 1630 1630
.MF.MF7280 1827451E1237094D 2007-09-20-16.50.07.074405 1661 1661
.MF.MF7280 1827451E1237094D 2007-09-20-16.50.07.074405 1691 1691
.MF.MF7280 1827451E1237094D 2007-09-20-16.50.07.074405 1721 1721
.MF.MF7280 1827451E1237094D 2007-09-20-16.50.07.074405 1768 1768 1
.MF.MF7280 1827451E1237094D 2007-09-20-16.50.07.074405 1802 1802
.MF.MF7280 1827451E1237094D 2007-09-20-16.50.07.074405 1830 1830 1
.MF.MF7290 189B6887175A0569 2009-09-28-15.18.44.563477 198 198 5
.MF.MF7290 189B6887175A0569 2009-09-28-15.18.44.563477 268 268
.MF.MF7290 189B6887175A0569 2009-09-28-15.18.44.563477 593 593 2
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 793 793 3
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 814 814 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 835 835 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 856 856 4
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 882 882 7
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 917 917 10
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 944 944 6
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 971 971 6
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 987 987 4
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 1365 1365
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 1378 1378
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 1402 1402
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 1412 1412
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 1716 1716
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 1743 1743
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 1829 1829 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 1850 1850 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 1892 1892 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 1921 1921 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 1942 1942 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 1984 1984 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2013 2013 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2034 2034 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2076 2076 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2105 2105 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2126 2126 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2168 2168 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2197 2197 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2218 2218 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2260 2260 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2289 2289 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2310 2310 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2352 2352 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2381 2381 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2402 2402 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2444 2444 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2473 2473 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2494 2494 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2536 2536 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2565 2565 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2586 2586 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2628 2628 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2657 2657 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2678 2678 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2720 2720 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2749 2749 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2770 2770 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2812 2812 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2841 2841 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2862 2862 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2904 2904 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2933 2933 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2954 2954 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2996 2996 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3025 3025 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3046 3046 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3088 3088 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3117 3117 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3138 3138 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3180 3180 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3209 3209 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3230 3230 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3272 3272 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3301 3301 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3322 3322 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3364 3364 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3393 3393 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3414 3414 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3456 3456 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3485 3485 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3506 3506 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3548 3548 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3611 3611
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3640 3640
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3673 3673
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3702 3702
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3734 3734
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3763 3763
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3795 3795
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3824 3824
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3849 3849
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3873 3873
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3921 3921
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3940 3940
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3962 3962
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3987 3987
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 4021 4021 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 4051 4051 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 4074 4074
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 4088 4088
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 4110 4110 2
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 4193 4193 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 4224 4224 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 4255 4255 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 4285 4285 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 4318 4318 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 4337 4337 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 4379 4379 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 4412 4412 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 5439 5439
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 5454 5454
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 5465 5465
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 5480 5480
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 7099 7099
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 7132 7132 2
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 7165 7165 1
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 717 717 20
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1059 1059
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1083 1083
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1093 1093
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1340 1340
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1361 1361
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1383 1383
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1408 1408
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1430 1430
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1455 1455
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1477 1477
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1498 1498
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1515 1515
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1534 1534
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1553 1553
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1568 1568
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1591 1591 1
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1658 1658 4
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1682 1682
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1765 1765 21
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1858 1858 21
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1949 1949 21
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 2033 2033 19
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 2110 2110 3
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 2136 2136 1
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 2161 2161 1
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 2186 2186 1
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 2212 2212 1
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 2240 2240 2
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 2271 2271 1
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 2294 2294
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 2322 2322 1
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 3283 3283 1
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 3321 3321 1
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 3578 3578 2
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 3611 3611 1
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 3672 3672
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 1098 1098 4
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 1111 1111 2
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 1134 1134 4
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 1157 1157 4
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 1194 1194 7
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 1211 1211 4
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 1228 1228 4
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 1257 1257 7
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 1684 1684 1
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 1713 1713 1
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 1744 1744 1
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 2588 2588 1
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 3120 3120 1
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 3457 3457 2
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 3488 3488 1
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 3584 3584 1
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 3631 3631 1
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 3670 3670
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 3714 3714 1
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 3726 3726 1
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 3771 3771 1
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 3853 3853
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 3961 3961 2
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 3978 3978
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 703 703 4
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 754 754 14
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 776 776 4
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 817 817 9
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 833 833 2
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 854 854 5
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 885 885
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 1649 1649 1
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 1681 1681 1
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 2872 2872 7
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 2931 2931
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 2941 2941
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 2957 2957
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 3016 3016 2
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 3055 3055 1
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 3084 3084 1
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 3113 3113 2
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 3146 3146 1
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 3168 3168 1
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 3211 3211 1
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 3361 3361
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 4077 4077
.MF.MF7550 189B68A7085A22EF 2009-09-28-15.23.09.066891 190 190 2
.MF.MF7550 189B68A7085A22EF 2009-09-28-15.23.09.066891 197 197 1
.MF.MF7550 189B68A7085A22EF 2009-09-28-15.23.09.066891 205 205 1
.MF.MF7550 189B68A7085A22EF 2009-09-28-15.23.09.066891 214 214 1
.MF.MF7550 189B68A7085A22EF 2009-09-28-15.23.09.066891 223 223 1
.MF.MF7550 189B68A7085A22EF 2009-09-28-15.23.09.066891 364 364
.MF.MF7550 189B68A7085A22EF 2009-09-28-15.23.09.066891 476 476 3
.MF.MF7550 189B68A7085A22EF 2009-09-28-15.23.09.066891 541 541
.MF.MF7550 189B68A7085A22EF 2009-09-28-15.23.09.066891 551 551
.MF.MF7550 189B68A7085A22EF 2009-09-28-15.23.09.066891 562 562 1
.MF.MF7550 189B68A7085A22EF 2009-09-28-15.23.09.066891 767 767 5
.MF.MF7550 189B68A7085A22EF 2009-09-28-15.23.09.066891 853 853 1
.MF.MF7730 189B68B60B7BA0FC 2009-09-28-15.25.15.716739 202 202 11
.MF.MF7730 189B68B60B7BA0FC 2009-09-28-15.25.15.716739 276 276 1
.MF.MF7730 189B68B60B7BA0FC 2009-09-28-15.25.15.716739 475 475
.MF.MF7770 189B68BA1DF928D3 2009-09-28-15.25.54.118307 228 228 20
.MF.MF7770 189B68BA1DF928D3 2009-09-28-15.25.54.118307 241 241 2
.MF.MF7770 189B68BA1DF928D3 2009-09-28-15.25.54.118307 323 323 1
.MF.MF7770 189B68BA1DF928D3 2009-09-28-15.25.54.118307 459 459 1
.MF.MF7770 189B68BA1DF928D3 2009-09-28-15.25.54.118307 474 474 1
.MF.MF7770 189B68BA1DF928D3 2009-09-28-15.25.54.118307 488 488 1
.MF.MF7770 189B68BA1DF928D3 2009-09-28-15.25.54.118307 504 504 1
.MF.MF7770 189B68BA1DF928D3 2009-09-28-15.25.54.118307 561 561 8
.MF.MF7770 189B68BA1DF928D3 2009-09-28-15.25.54.118307 698 698
.MF.MF7770 189B68BA1DF928D3 2009-09-28-15.25.54.118307 825 825
.MF.MF7790 189B68C61FB17F80 2009-09-28-15.27.35.232510 270 270 9
.MF.MF7790 189B68C61FB17F80 2009-09-28-15.27.35.232510 320 320
.MF.MF7790 189B68C61FB17F80 2009-09-28-15.27.35.232510 325 325
.MF.MF7790 189B68C61FB17F80 2009-09-28-15.27.35.232510 347 347 1
.MF.MF7790 189B68C61FB17F80 2009-09-28-15.27.35.232510 596 596 1
.MF.MF7790 189B68C61FB17F80 2009-09-28-15.27.35.232510 625 625 1
.MF.MF7790 189B68C61FB17F80 2009-09-28-15.27.35.232510 646 646 1
.MF.MF7790 189B68C61FB17F80 2009-09-28-15.27.35.232510 660 660 1
.MF.MF7801 189CF51D0604AB49 2009-10-08-11.53.01.835437 212 212 7
.MF.MF7801 189CF51D0604AB49 2009-10-08-11.53.01.835437 222 222 1
.MF.MF7801 189CF51D0604AB49 2009-10-08-11.53.01.835437 290 290
.MF.MF7801 189CF51D0604AB49 2009-10-08-11.53.01.835437 307 307 2
.MF.MF7801 189CF51D0604AB49 2009-10-08-11.53.01.835437 342 342
.MF.MF7801 189CF51D0604AB49 2009-10-08-11.53.01.835437 354 354 1
.MF.MF7801 189CF51D0604AB49 2009-10-08-11.53.01.835437 400 400 2
.MF.MF7801 189CF51D0604AB49 2009-10-08-11.53.01.835437 626 626 1
.MF.MF7801 189CF51D0604AB49 2009-10-08-11.53.01.835437 650 650 4
.MF.MF7801 189CF51D0604AB49 2009-10-08-11.53.01.835437 681 681 4
.MF.MF7930 189B68D4076DD7A1 2009-09-28-15.29.26.312286 670 670
.MF.MF7930 189B68D4076DD7A1 2009-09-28-15.29.26.312286 886 886 1
.MF.MF7930 189B68D4076DD7A1 2009-09-28-15.29.26.312286 906 906 1
.MF.MF7930 189B68D4076DD7A1 2009-09-28-15.29.26.312286 926 926 1
.MF.MF7930 189B68D4076DD7A1 2009-09-28-15.29.26.312286 946 946 1
.MF.MF7930 189B68D4076DD7A1 2009-09-28-15.29.26.312286 966 966 1
.MF.MF7930 189B68D4076DD7A1 2009-09-28-15.29.26.312286 986 986 1
.MF.MF7930 189B68D4076DD7A1 2009-09-28-15.29.26.312286 1076 1076 3
.MF.MF7930 189B68D4076DD7A1 2009-09-28-15.29.26.312286 1417 1417 1
.MF.MF7990 189B68D6074EB718 2009-09-28-15.29.43.057628 500 500 7
.MF.MF7990 189B68D6074EB718 2009-09-28-15.29.43.057628 905 905
.MF.MF7990 189B68D6074EB718 2009-09-28-15.29.43.057628 984 984
.MF.MF7990 189B68D6074EB718 2009-09-28-15.29.43.057628 1222 1222
.MF.MF7990 189B68D6074EB718 2009-09-28-15.29.43.057628 1368 1368
.MF.MF7990 189B68D6074EB718 2009-09-28-15.29.43.057628 1376 1376 1
.MF.MF7990 189B68D6074EB718 2009-09-28-15.29.43.057628 1412 1412 1
.MF.MF7990 189B68D6074EB718 2009-09-28-15.29.43.057628 1464 1464 4
.MF.MF7990 189B68D6074EB718 2009-09-28-15.29.43.057628 1530 1530 4
.MF.MF7990 189B68D6074EB718 2009-09-28-15.29.43.057628 1590 1590 4
.MF.MF7990 189B68D6074EB718 2009-09-28-15.29.43.057628 1649 1649 4
.MF.MF7990 189B68D6074EB718 2009-09-28-15.29.43.057628 1749 1749
.MF.MF8200 18AB22250F0C3002 2010-01-06-16.41.09.469888 484 484 1
.MF.MF8200 18AB22250F0C3002 2010-01-06-16.41.09.469888 1140 1140 2
.MF.MF8200 18AB22250F0C3002 2010-01-06-16.41.09.469888 1177 1177 3
.MF.MF8200 18AB22250F0C3002 2010-01-06-16.41.09.469888 1204 1204 2
.MF.MF8200 18AB22250F0C3002 2010-01-06-16.41.09.469888 1230 1230 2
.MF.MF8200 18AB22250F0C3002 2010-01-06-16.41.09.469888 1258 1258 3
.MF.MF8200 18AB22250F0C3002 2010-01-06-16.41.09.469888 1284 1284 3
.MF.MF8200 18AB22250F0C3002 2010-01-06-16.41.09.469888 1800 1800 1
.MF.MF8200 18AB22250F0C3002 2010-01-06-16.41.09.469888 1822 1822
.MF.MF8200 18AB22250F0C3002 2010-01-06-16.41.09.469888 1898 1898 1
.MF.MF8200 18AB22250F0C3002 2010-01-06-16.41.09.469888 1961 1961
.MF.MF8200 18AB22250F0C3002 2010-01-06-16.41.09.469888 1991 1991
.MF.MF8200 18AB22250F0C3002 2010-01-06-16.41.09.469888 2024 2024
.MF.MF8200 18AB22250F0C3002 2010-01-06-16.41.09.469888 2057 2057
.MF.MF8200 18AB22250F0C3002 2010-01-06-16.41.09.469888 2093 2093
.MF.MF8210 18AEBADA0D1798D2 2010-01-29-13.54.32.251491 856 856 3
.MF.MF8210 18AEBADA0D1798D2 2010-01-29-13.54.32.251491 896 896 4
.MF.MF8210 18AEBADA0D1798D2 2010-01-29-13.54.32.251491 1880 1880 2
.MF.MF8210 18AEBADA0D1798D2 2010-01-29-13.54.32.251491 1936 1936 3
.MF.MF8210 18AEBADA0D1798D2 2010-01-29-13.54.32.251491 1991 1991 3
.MF.MF8210 18AEBADA0D1798D2 2010-01-29-13.54.32.251491 2036 2036 1
.MF.MF8210 18AEBADA0D1798D2 2010-01-29-13.54.32.251491 2293 2293
.MF.MF8210 18AEBADA0D1798D2 2010-01-29-13.54.32.251491 2350 2350 2
.MF.MF8210 18AEBADA0D1798D2 2010-01-29-13.54.32.251491 2839 2839 1
.MF.MF8210 18AEBADA0D1798D2 2010-01-29-13.54.32.251491 3082 3082 2
.MF.MF8210 18AEBADA0D1798D2 2010-01-29-13.54.32.251491 3115 3115
.MF.MF8210 18AEBADA0D1798D2 2010-01-29-13.54.32.251491 3338 3338 1
.MF.MF8210 18AEBADA0D1798D2 2010-01-29-13.54.32.251491 3391 3391 2
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 652 652 4
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 700 700 14
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 731 731 6
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 762 762 8
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 797 797
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 1373 1373 2
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 1404 1404 2
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 2324 2324
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 2362 2362 7
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 2423 2423
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 2432 2432
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 2445 2445
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 2498 2498 2
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 2535 2535 1
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 2551 2551 1
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 2592 2592
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 2617 2617
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 2642 2642
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 2671 2671 1
.MF.MF8600 189B68EB1F459C95 2009-09-28-15.32.45.500530 166 166 2
.MF.MF8600 189B68EB1F459C95 2009-09-28-15.32.45.500530 190 190 1
.MF.MF8600 189B68EB1F459C95 2009-09-28-15.32.45.500530 871 871 1
.MF.MF8600 189B68EB1F459C95 2009-09-28-15.32.45.500530 914 914 1
.MF.MF8600 189B68EB1F459C95 2009-09-28-15.32.45.500530 1045 1045
.MF.MF8600 189B68EB1F459C95 2009-09-28-15.32.45.500530 1082 1082
.MF.MF8600 189B68EB1F459C95 2009-09-28-15.32.45.500530 1389 1389 2
.MF.MF8600 189B68EB1F459C95 2009-09-28-15.32.45.500530 1494 1494
.MF.MF8600 189B68EB1F459C95 2009-09-28-15.32.45.500530 1528 1528
.MF.MF8600 189B68EB1F459C95 2009-09-28-15.32.45.500530 1564 1564
.MF.MF8600 189B68EB1F459C95 2009-09-28-15.32.45.500530 1777 1777 1
.MF.MF8600 189B68EB1F459C95 2009-09-28-15.32.45.500530 1812 1812
.MF.MF8610 189B68ED003AC9EE 2009-09-28-15.32.54.140199 180 180 2
.MF.MF8610 189B68ED003AC9EE 2009-09-28-15.32.54.140199 709 709 1
.MF.MF8610 189B68ED003AC9EE 2009-09-28-15.32.54.140199 752 752 1
.MF.MF8610 189B68ED003AC9EE 2009-09-28-15.32.54.140199 876 876
.MF.MF8610 189B68ED003AC9EE 2009-09-28-15.32.54.140199 913 913
.MF.MF8610 189B68ED003AC9EE 2009-09-28-15.32.54.140199 1130 1130 2
.MF.MF8610 189B68ED003AC9EE 2009-09-28-15.32.54.140199 1167 1167
.MF.MF8610 189B68ED003AC9EE 2009-09-28-15.32.54.140199 1205 1205
.MF.MF8610 189B68ED003AC9EE 2009-09-28-15.32.54.140199 1239 1239
.MF.MF8610 189B68ED003AC9EE 2009-09-28-15.32.54.140199 1431 1431 1
.MF.MF8610 189B68ED003AC9EE 2009-09-28-15.32.54.140199 1468 1468
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 245 245 6
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 352 352 12
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 460 460 12
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 705 705
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 716 716
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 1624 1624 1
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 1671 1671 2
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 2310 2310 4
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 2390 2390 4
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 2462 2462 4
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 2534 2534 4
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 2643 2643 2
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 2689 2689 2
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 2810 2810 5
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 2860 2860 2
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 2914 2914 1
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 2994 2994 3
.MF.MF8630 187F168B15C4CE4A 2009-04-01-11.31.41.254969 233 233 3
.MF.MF8630 187F168B15C4CE4A 2009-04-01-11.31.41.254969 875 875 1
.MF.MF8630 187F168B15C4CE4A 2009-04-01-11.31.41.254969 918 918 1
.MF.MF8630 187F168B15C4CE4A 2009-04-01-11.31.41.254969 1043 1043
.MF.MF8630 187F168B15C4CE4A 2009-04-01-11.31.41.254969 1080 1080
.MF.MF8630 187F168B15C4CE4A 2009-04-01-11.31.41.254969 1322 1322 2
.MF.MF8630 187F168B15C4CE4A 2009-04-01-11.31.41.254969 1372 1372 1
.MF.MF8630 187F168B15C4CE4A 2009-04-01-11.31.41.254969 1439 1439 1
.MF.MF8630 187F168B15C4CE4A 2009-04-01-11.31.41.254969 1478 1478 1
.MF.MF8630 187F168B15C4CE4A 2009-04-01-11.31.41.254969 1674 1674 1
.MF.MF8630 187F168B15C4CE4A 2009-04-01-11.31.41.254969 1711 1711
.MF.MF8630 187F168B15C4CE4A 2009-04-01-11.31.41.254969 1736 1736
.MF.MF8640 189B68F00AF49A2A 2009-09-28-15.33.22.117736 165 165 1
.MF.MF8640 189B68F00AF49A2A 2009-09-28-15.33.22.117736 733 733 1
.MF.MF8640 189B68F00AF49A2A 2009-09-28-15.33.22.117736 776 776 1
.MF.MF8640 189B68F00AF49A2A 2009-09-28-15.33.22.117736 907 907
.MF.MF8640 189B68F00AF49A2A 2009-09-28-15.33.22.117736 945 945
.MF.MF8640 189B68F00AF49A2A 2009-09-28-15.33.22.117736 1156 1156 2
.MF.MF8640 189B68F00AF49A2A 2009-09-28-15.33.22.117736 1254 1254
.MF.MF8640 189B68F00AF49A2A 2009-09-28-15.33.22.117736 1288 1288
.MF.MF8640 189B68F00AF49A2A 2009-09-28-15.33.22.117736 1324 1324
.MF.MF8640 189B68F00AF49A2A 2009-09-28-15.33.22.117736 1537 1537 1
.MF.MF8640 189B68F00AF49A2A 2009-09-28-15.33.22.117736 1572 1572
.MF.MF8650 189B68F10EC16EC0 2009-09-28-15.33.31.502523 176 176 2
.MF.MF8650 189B68F10EC16EC0 2009-09-28-15.33.31.502523 705 705 1
.MF.MF8650 189B68F10EC16EC0 2009-09-28-15.33.31.502523 748 748 1
.MF.MF8650 189B68F10EC16EC0 2009-09-28-15.33.31.502523 872 872
.MF.MF8650 189B68F10EC16EC0 2009-09-28-15.33.31.502523 909 909
.MF.MF8650 189B68F10EC16EC0 2009-09-28-15.33.31.502523 1126 1126 2
.MF.MF8650 189B68F10EC16EC0 2009-09-28-15.33.31.502523 1163 1163
.MF.MF8650 189B68F10EC16EC0 2009-09-28-15.33.31.502523 1201 1201
.MF.MF8650 189B68F10EC16EC0 2009-09-28-15.33.31.502523 1235 1235
.MF.MF8650 189B68F10EC16EC0 2009-09-28-15.33.31.502523 1427 1427 1
.MF.MF8650 189B68F10EC16EC0 2009-09-28-15.33.31.502523 1464 1464
.MF.MF8660 187F169106553F32 2009-04-01-11.32.27.540220 200 200 5
.MF.MF8660 187F169106553F32 2009-04-01-11.32.27.540220 844 844 1
.MF.MF8660 187F169106553F32 2009-04-01-11.32.27.540220 887 887 1
.MF.MF8660 187F169106553F32 2009-04-01-11.32.27.540220 1012 1012 1
.MF.MF8660 187F169106553F32 2009-04-01-11.32.27.540220 1049 1049 1
.MF.MF8660 187F169106553F32 2009-04-01-11.32.27.540220 1086 1086 2
.MF.MF8660 187F169106553F32 2009-04-01-11.32.27.540220 1280 1280 2
.MF.MF8660 187F169106553F32 2009-04-01-11.32.27.540220 1330 1330 1
.MF.MF8660 187F169106553F32 2009-04-01-11.32.27.540220 1397 1397 1
.MF.MF8660 187F169106553F32 2009-04-01-11.32.27.540220 1436 1436 1
.MF.MF8660 187F169106553F32 2009-04-01-11.32.27.540220 1632 1632 1
.MF.MF8660 187F169106553F32 2009-04-01-11.32.27.540220 1669 1669
.MF.MF8660 187F169106553F32 2009-04-01-11.32.27.540220 1694 1694
.MF.MF8670 189B68F2105EC140 2009-09-28-15.33.40.314373 164 164 3
.MF.MF8670 189B68F2105EC140 2009-09-28-15.33.40.314373 720 720 1
.MF.MF8670 189B68F2105EC140 2009-09-28-15.33.40.314373 758 758 1
.MF.MF8670 189B68F2105EC140 2009-09-28-15.33.40.314373 796 796 2
.MF.MF8670 189B68F2105EC140 2009-09-28-15.33.40.314373 959 959 2
.MF.MF8670 189B68F2105EC140 2009-09-28-15.33.40.314373 1001 1001
.MF.MF8670 189B68F2105EC140 2009-09-28-15.33.40.314373 1035 1035
.MF.MF8800 189B690A1F38CB74 2009-09-28-15.37.05.534253 243 243 22
.MF.MF8800 189B690A1F38CB74 2009-09-28-15.37.05.534253 257 257 2
.MF.MF8800 189B690A1F38CB74 2009-09-28-15.37.05.534253 339 339 1
.MF.MF8800 189B690A1F38CB74 2009-09-28-15.37.05.534253 475 475 1
.MF.MF8800 189B690A1F38CB74 2009-09-28-15.37.05.534253 490 490 1
.MF.MF8800 189B690A1F38CB74 2009-09-28-15.37.05.534253 504 504 1
.MF.MF8800 189B690A1F38CB74 2009-09-28-15.37.05.534253 520 520 1
.MF.MF8800 189B690A1F38CB74 2009-09-28-15.37.05.534253 577 577 8
.MF.MF8800 189B690A1F38CB74 2009-09-28-15.37.05.534253 714 714
.MF.MF8800 189B690A1F38CB74 2009-09-28-15.37.05.534253 804 804
.MF.MF8810 189B690C105CBE3E 2009-09-28-15.37.18.416120 241 241 21
.MF.MF8810 189B690C105CBE3E 2009-09-28-15.37.18.416120 254 254 2
.MF.MF8810 189B690C105CBE3E 2009-09-28-15.37.18.416120 336 336 1
.MF.MF8810 189B690C105CBE3E 2009-09-28-15.37.18.416120 376 376 1
.MF.MF8810 189B690C105CBE3E 2009-09-28-15.37.18.416120 506 506 1
.MF.MF8810 189B690C105CBE3E 2009-09-28-15.37.18.416120 521 521 1
.MF.MF8810 189B690C105CBE3E 2009-09-28-15.37.18.416120 535 535 1
.MF.MF8810 189B690C105CBE3E 2009-09-28-15.37.18.416120 551 551 1
.MF.MF8810 189B690C105CBE3E 2009-09-28-15.37.18.416120 608 608 8
.MF.MF8810 189B690C105CBE3E 2009-09-28-15.37.18.416120 745 745
.MF.MF8810 189B690C105CBE3E 2009-09-28-15.37.18.416120 835 835
.MF.MF8910 189B690E1D237C1C 2009-09-28-15.37.38.542576 357 357 8
.MF.MF8910 189B690E1D237C1C 2009-09-28-15.37.38.542576 636 636 1
.MF.MF8910 189B690E1D237C1C 2009-09-28-15.37.38.542576 674 674 1
.MF.MF8910 189B690E1D237C1C 2009-09-28-15.37.38.542576 695 695
.MF.MF8910 189B690E1D237C1C 2009-09-28-15.37.38.542576 721 721 1
.MF.MF8910 189B690E1D237C1C 2009-09-28-15.37.38.542576 743 743
.MF.MF8910 189B690E1D237C1C 2009-09-28-15.37.38.542576 761 761 2
.MF.MF8910 189B690E1D237C1C 2009-09-28-15.37.38.542576 846 846
.MF.MF8910 189B690E1D237C1C 2009-09-28-15.37.38.542576 883 883
.MF.MF8910 189B690E1D237C1C 2009-09-28-15.37.38.542576 917 917 1
.MF.MF8940 189B691500940FD6 2009-09-28-15.38.29.775935 284 284 17
.MF.MF8940 189B691500940FD6 2009-09-28-15.38.29.775935 366 366 1
.MF.MF8940 189B691500940FD6 2009-09-28-15.38.29.775935 446 446 19
.MF.MF8940 189B691500940FD6 2009-09-28-15.38.29.775935 528 528 1
.MF.MF8940 189B691500940FD6 2009-09-28-15.38.29.775935 603 603 1
.MF.MF8940 189B691500940FD6 2009-09-28-15.38.29.775935 618 618 1
.MF.MF8940 189B691500940FD6 2009-09-28-15.38.29.775935 632 632 1
.MF.MF8940 189B691500940FD6 2009-09-28-15.38.29.775935 648 648 1
.MF.MF8940 189B691500940FD6 2009-09-28-15.38.29.775935 732 732
.MF.MF8950 18A391B617161E36 2009-11-19-13.33.32.099192 254 254 19
.MF.MF8950 18A391B617161E36 2009-11-19-13.33.32.099192 268 268 3
.MF.MF8950 18A391B617161E36 2009-11-19-13.33.32.099192 350 350 1
.MF.MF8950 18A391B617161E36 2009-11-19-13.33.32.099192 431 431 19
.MF.MF8950 18A391B617161E36 2009-11-19-13.33.32.099192 564 564 1
.MF.MF8950 18A391B617161E36 2009-11-19-13.33.32.099192 579 579 1
.MF.MF8950 18A391B617161E36 2009-11-19-13.33.32.099192 593 593 1
.MF.MF8950 18A391B617161E36 2009-11-19-13.33.32.099192 609 609 1
.MF.MF8950 18A391B617161E36 2009-11-19-13.33.32.099192 666 666 8
.MF.MF8950 18A391B617161E36 2009-11-19-13.33.32.099192 808 808
.MF.MF8950 18A391B617161E36 2009-11-19-13.33.32.099192 936 936
.MF.MF8960 189B691A13D718C4 2009-09-28-15.39.16.768355 329 329 40
.MF.MF8960 189B691A13D718C4 2009-09-28-15.39.16.768355 401 401
.MF.MF8960 189B691A13D718C4 2009-09-28-15.39.16.768355 406 406
.MF.MF8960 189B691A13D718C4 2009-09-28-15.39.16.768355 429 429 1
.MF.MF8960 189B691A13D718C4 2009-09-28-15.39.16.768355 449 449 1
.MF.MF8960 189B691A13D718C4 2009-09-28-15.39.16.768355 465 465
.MF.MF8960 189B691A13D718C4 2009-09-28-15.39.16.768355 491 491 1
.MF.MF9100 187BAA26126527AA 2009-03-10-16.44.17.445534 557 557 2
.MF.MF9100 187BAA26126527AA 2009-03-10-16.44.17.445534 621 621 1
.MF.MF9100 187BAA26126527AA 2009-03-10-16.44.17.445534 649 649 2
.MF.MF9100 187BAA26126527AA 2009-03-10-16.44.17.445534 738 738
.MF.MF9100A 18545D92076F77C4 2008-07-03-15.22.08.559647 560 560
.MF.MF9100A 18545D92076F77C4 2008-07-03-15.22.08.559647 583 583 2
.MF.MF9100A 18545D92076F77C4 2008-07-03-15.22.08.559647 594 594 2
.MF.MF9100A 18545D92076F77C4 2008-07-03-15.22.08.559647 681 681 1
.MF.MF913@I 18B0705018ACF7AF 2010-02-09-10.51.55.497950 365 365 1
.MF.MF913@I 18B0705018ACF7AF 2010-02-09-10.51.55.497950 378 378 1
.MF.MF913@I 18B0705018ACF7AF 2010-02-09-10.51.55.497950 390 390 1
.MF.MF913@I 18B0705018ACF7AF 2010-02-09-10.51.55.497950 434 434
.MF.MF913@I 18B0705018ACF7AF 2010-02-09-10.51.55.497950 999 999 11
.MF.MF913@I 18B0705018ACF7AF 2010-02-09-10.51.55.497950 1053 1053 11
.MF.MF913@I 18B0705018ACF7AF 2010-02-09-10.51.55.497950 1090 1090 2
.MF.MF913@I 18B0705018ACF7AF 2010-02-09-10.51.55.497950 1148 1148 1
.MF.MF913@I 18B0705018ACF7AF 2010-02-09-10.51.55.497950 1205 1205 3
.MF.MF913@I 18B0705018ACF7AF 2010-02-09-10.51.55.497950 1553 1553 1
.MF.MF913@I 18B0705018ACF7AF 2010-02-09-10.51.55.497950 1592 1592
.MF.MF913@I 18B0705018ACF7AF 2010-02-09-10.51.55.497950 1636 1636 2
.MF.MF9999 188952C2008BD2B3 2009-06-05-14.32.44.222794 551 551 2
.MF.MF9999 188952C2008BD2B3 2009-06-05-14.32.44.222794 595 595
.MF.MF9999 188952C2008BD2B3 2009-06-05-14.32.44.222794 663 663 2
.MF.MF9999 188952C2008BD2B3 2009-06-05-14.32.44.222794 708 708
.MF.MFTEST 187A9023049B4AA1 2009-03-03-15.30.38.276394 162 162 5
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 513 513 3
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 537 537
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 977 977 4
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 1013 1013 2
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 1051 1051 1
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 1099 1099 1
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 1151 1151 1
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 1225 1225 1
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 1271 1271 1
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 1469 1469 3
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 1558 1558 3
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 2515 2515
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 2549 2549
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 2590 2590
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 2631 2631 3
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 2710 2710 3
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 2752 2752 2
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 2886 2886 2
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 3134 3134 2
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 3169 3169 2
.MF.YMFC004 18AB22740B5F658A 2010-01-06-16.52.11.206550 421 421 1
.MF.YMFC004 18AB22740B5F658A 2010-01-06-16.52.11.206550 433 433 1
.MF.YMFC004 18AB22740B5F658A 2010-01-06-16.52.11.206550 474 474
.MF.YMFC004 18AB22740B5F658A 2010-01-06-16.52.11.206550 964 964 11
.MF.YMFC004 18AB22740B5F658A 2010-01-06-16.52.11.206550 1017 1017 11
.MF.YMFC004 18AB22740B5F658A 2010-01-06-16.52.11.206550 1051 1051 2
.MF.YMFC004 18AB22740B5F658A 2010-01-06-16.52.11.206550 1108 1108 1
.MF.YMFC004 18AB22740B5F658A 2010-01-06-16.52.11.206550 1164 1164 3
.MF.YMFC004 18AB22740B5F658A 2010-01-06-16.52.11.206550 1490 1490 1
.MF.YMFC004 18AB22740B5F658A 2010-01-06-16.52.11.206550 1575 1575 2
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 529 529 3
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 553 553
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 718 718 4
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 752 752 2
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 789 789 1
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 834 834 1
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 883 883 1
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 952 952 1
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 995 995 1
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 1242 1242 3
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 1329 1329 3
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 2093 2093
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 2124 2124
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 2163 2163
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 2201 2201 3
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 2278 2278 3
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 2317 2317 2
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 2447 2447 2
.MF.YMFC104 18A9D7460DA45DB0 2009-12-29-11.18.48.838006 422 422 1
.MF.YMFC104 18A9D7460DA45DB0 2009-12-29-11.18.48.838006 434 434 1
.MF.YMFC104 18A9D7460DA45DB0 2009-12-29-11.18.48.838006 476 476
.MF.YMFC104 18A9D7460DA45DB0 2009-12-29-11.18.48.838006 966 966 11
.MF.YMFC104 18A9D7460DA45DB0 2009-12-29-11.18.48.838006 1019 1019 11
.MF.YMFC104 18A9D7460DA45DB0 2009-12-29-11.18.48.838006 1053 1053 2
.MF.YMFC104 18A9D7460DA45DB0 2009-12-29-11.18.48.838006 1110 1110 1
.MF.YMFC104 18A9D7460DA45DB0 2009-12-29-11.18.48.838006 1166 1166 3
.MF.YMFC104 18A9D7460DA45DB0 2009-12-29-11.18.48.838006 1492 1492 1
.MF.YMFC104 18A9D7460DA45DB0 2009-12-29-11.18.48.838006 1577 1577 2
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 460 460 1
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 472 472 2
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 562 562 15
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 611 611 15
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 664 664 16
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 690 690 6
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 717 717 6
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 748 748 8
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 775 775 6
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 800 800 6
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 829 829 7
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 844 844 2
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 871 871
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 1448 1448 1
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 1587 1587 1
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 1878 1878 1
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 2398 2398 1
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 2435 2435 2
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 2473 2473 1
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 2511 2511 1
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 2893 2893 2
.MF.YMFC118 18A9D76B132C2640 2009-12-29-11.24.00.666265 396 396 15
.MF.YMFC118 18A9D76B132C2640 2009-12-29-11.24.00.666265 909 909 1
.MF.YMFC118 18A9D76B132C2640 2009-12-29-11.24.00.666265 943 943 1
.MF.YMFC118 18A9D76B132C2640 2009-12-29-11.24.00.666265 977 977 3
.MF.YMFC118 18A9D76B132C2640 2009-12-29-11.24.00.666265 1095 1095 2
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 329 329
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 492 492
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 829 829 15
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 867 867 15
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 905 905 15
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 930 930 3
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 962 962 2
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 1041 1041 14
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 1110 1110 14
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 1140 1140 1
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 1174 1174 1
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 1200 1200
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 1228 1228
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 1315 1315 4
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 1352 1352 3
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 1382 1382 1
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 1408 1408
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 1442 1442 1
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 1472 1472 1
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 1659 1659 2
.MF.YMFC155 18A9D77E12E455F0 2009-12-29-11.26.39.976279 296 296 3
.MF.YMFC155 18A9D77E12E455F0 2009-12-29-11.26.39.976279 315 315 3
.MF.YMFC155 18A9D77E12E455F0 2009-12-29-11.26.39.976279 333 333 3
.MF.YMFC155 18A9D77E12E455F0 2009-12-29-11.26.39.976279 389 389
.MF.YMFC155 18A9D77E12E455F0 2009-12-29-11.26.39.976279 982 982
.MF.YMFC155 18A9D77E12E455F0 2009-12-29-11.26.39.976279 1016 1016
.MF.YMFC155 18A9D77E12E455F0 2009-12-29-11.26.39.976279 1159 1159 2
.MF.YMFC203 18A81BBD06A70AA0 2009-12-18-10.44.02.510378 286 286 2
.MF.YMFC203 18A81BBD06A70AA0 2009-12-18-10.44.02.510378 311 311 4
.MF.YMFC203 18A81BBD06A70AA0 2009-12-18-10.44.02.510378 1014 1014
.MF.YMFC203 18A81BBD06A70AA0 2009-12-18-10.44.02.510378 1105 1105 2
.MF.YMFC203 18A81BBD06A70AA0 2009-12-18-10.44.02.510378 1242 1242 2
.MF.YMFC203 18A81BBD06A70AA0 2009-12-18-10.44.02.510378 1293 1293 2
.MF.YMFC203 18A81BBD06A70AA0 2009-12-18-10.44.02.510378 1329 1329 4
.MF.YMFC203 18A81BBD06A70AA0 2009-12-18-10.44.02.510378 1378 1378 2
.MF.YMFC204 18A9D78003D85D0A 2009-12-29-11.26.52.809076 427 427 1
.MF.YMFC204 18A9D78003D85D0A 2009-12-29-11.26.52.809076 439 439 1
.MF.YMFC204 18A9D78003D85D0A 2009-12-29-11.26.52.809076 451 451 1
.MF.YMFC204 18A9D78003D85D0A 2009-12-29-11.26.52.809076 493 493
.MF.YMFC204 18A9D78003D85D0A 2009-12-29-11.26.52.809076 1048 1048 11
.MF.YMFC204 18A9D78003D85D0A 2009-12-29-11.26.52.809076 1101 1101 11
.MF.YMFC204 18A9D78003D85D0A 2009-12-29-11.26.52.809076 1135 1135 2
.MF.YMFC204 18A9D78003D85D0A 2009-12-29-11.26.52.809076 1192 1192 1
.MF.YMFC204 18A9D78003D85D0A 2009-12-29-11.26.52.809076 1248 1248 3
.MF.YMFC204 18A9D78003D85D0A 2009-12-29-11.26.52.809076 1659 1659 1
.MF.YMFC204 18A9D78003D85D0A 2009-12-29-11.26.52.809076 1698 1698
.MF.YMFC204 18A9D78003D85D0A 2009-12-29-11.26.52.809076 1933 1933 2
$#out 20100210 16:46:56
.A2.A267280T 18983996167C8EC0 2009-09-08-10.10.50.992699 497 497 31
.A2.A267280T 18983996167C8EC0 2009-09-08-10.10.50.992699 583 583
.A2.A267280T 18983996167C8EC0 2009-09-08-10.10.50.992699 792 792
.A2.A267280T 18983996167C8EC0 2009-09-08-10.10.50.992699 841 841
.A2.A267280T 18983996167C8EC0 2009-09-08-10.10.50.992699 891 891
.A2.A267280T 18983996167C8EC0 2009-09-08-10.10.50.992699 934 934
.A2.A267280T 18983996167C8EC0 2009-09-08-10.10.50.992699 976 976
.A2.A267280T 18983996167C8EC0 2009-09-08-10.10.50.992699 1230 1230 2
.CG.CG9999 18303AF9162F8A55 2007-11-16-16.10.25.225321 338 338 2
.HG.HG7280 17DC1CFB124A6CF8 2006-05-30-11.38.48.105459 1599 1599
.HG.HG7280 17DC1CFB124A6CF8 2006-05-30-11.38.48.105459 1620 1620
.HG.HG7280 17DC1CFB124A6CF8 2006-05-30-11.38.48.105459 1641 1641
.HG.HG7280 17DC1CFB124A6CF8 2006-05-30-11.38.48.105459 1672 1672
.HG.HG7280 17DC1CFB124A6CF8 2006-05-30-11.38.48.105459 1694 1694
.HG.HG7280 17DC1CFB124A6CF8 2006-05-30-11.38.48.105459 1716 1716
.HG.HG7280 17DC1CFB124A6CF8 2006-05-30-11.38.48.105459 1763 1763 1
.HG.HG7280 17DC1CFB124A6CF8 2006-05-30-11.38.48.105459 1797 1797
.HG.HG7280 17DC1CFB124A6CF8 2006-05-30-11.38.48.105459 1825 1825
.MF.MF0000 189B646805E37915 2009-09-28-12.51.10.004196 206 206 2
.MF.MF0000 189B646805E37915 2009-09-28-12.51.10.004196 214 214 2
.MF.MF0000 189B646805E37915 2009-09-28-12.51.10.004196 220 220 1
.MF.MF0000 189B646805E37915 2009-09-28-12.51.10.004196 225 225 1
.MF.MF0000 189B646805E37915 2009-09-28-12.51.10.004196 232 232 1
.MF.MF0000 189B646805E37915 2009-09-28-12.51.10.004196 509 509
.MF.MF0000 189B646805E37915 2009-09-28-12.51.10.004196 517 517
.MF.MF0000 189B646805E37915 2009-09-28-12.51.10.004196 550 550
.MF.MF0001 1831F54D07918B4A 2007-11-27-16.01.53.809005 476 476 2
.MF.MF0001 1831F54D07918B4A 2007-11-27-16.01.53.809005 490 490 2
.MF.MF0001 1831F54D07918B4A 2007-11-27-16.01.53.809005 504 504 2
.MF.MF5010 189E0AD716F1FD3F 2009-10-15-09.33.19.524340 745 745
.MF.MF5010 189E0AD716F1FD3F 2009-10-15-09.33.19.524340 823 823
.MF.MF5010 189E0AD716F1FD3F 2009-10-15-09.33.19.524340 893 893 5
.MF.MF5010 189E0AD716F1FD3F 2009-10-15-09.33.19.524340 916 916
.MF.MF7025 189B64730BFAB8DF 2009-09-28-12.52.43.875555 1904 1904
.MF.MF7025 189B64730BFAB8DF 2009-09-28-12.52.43.875555 1937 1937
.MF.MF7200 18AB222818C721D5 2010-01-06-16.41.37.186439 487 487 1
.MF.MF7200 18AB222818C721D5 2010-01-06-16.41.37.186439 1150 1150 2
.MF.MF7200 18AB222818C721D5 2010-01-06-16.41.37.186439 1187 1187 3
.MF.MF7200 18AB222818C721D5 2010-01-06-16.41.37.186439 1214 1214 2
.MF.MF7200 18AB222818C721D5 2010-01-06-16.41.37.186439 1240 1240 2
.MF.MF7200 18AB222818C721D5 2010-01-06-16.41.37.186439 1268 1268 3
.MF.MF7200 18AB222818C721D5 2010-01-06-16.41.37.186439 1294 1294 3
.MF.MF7200 18AB222818C721D5 2010-01-06-16.41.37.186439 1810 1810 1
.MF.MF7200 18AB222818C721D5 2010-01-06-16.41.37.186439 1832 1832
.MF.MF7200 18AB222818C721D5 2010-01-06-16.41.37.186439 1908 1908 1
.MF.MF7200 18AB222818C721D5 2010-01-06-16.41.37.186439 1971 1971
.MF.MF7200 18AB222818C721D5 2010-01-06-16.41.37.186439 2001 2001
.MF.MF7200 18AB222818C721D5 2010-01-06-16.41.37.186439 2034 2034
.MF.MF7200 18AB222818C721D5 2010-01-06-16.41.37.186439 2067 2067
.MF.MF7200 18AB222818C721D5 2010-01-06-16.41.37.186439 2103 2103
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 1237 1237 12
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 1271 1271 3
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 5975 5975 5
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 6050 6050 4
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 6121 6121 4
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 6192 6192 4
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 6808 6808
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 6845 6845
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 7667 7667 2
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 7742 7742
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 7908 7908 16
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 8079 8079 15
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 8140 8140 3
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 8188 8188 1
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 8411 8411 5
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 8461 8461 1
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 8538 8538 3
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 8598 8598 1
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 8647 8647
.MF.MF7230 189BB3CD1B45F652 2009-09-30-12.12.54.067673 8676 8676 1
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 686 686 2
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 814 814 1
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 830 830 1
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 901 901 4
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 1051 1051
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 1218 1218 4
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 1411 1411 2
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 1574 1574 1
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 1775 1775 5
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 1821 1821 5
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 1872 1872
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 1904 1904
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 1945 1945 1
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 1986 1986 1
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 2046 2046 2
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 2098 2098 1
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 2136 2136 1
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 2166 2166
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 2457 2457
.MF.MF7235 18A896440B50E2D0 2009-12-21-11.49.29.200011 2507 2507
.MF.MF7240 189B687E1C1DD8DA 2009-09-28-15.17.30.315107 497 497 31
.MF.MF7240 189B687E1C1DD8DA 2009-09-28-15.17.30.315107 583 583
.MF.MF7240 189B687E1C1DD8DA 2009-09-28-15.17.30.315107 792 792
.MF.MF7240 189B687E1C1DD8DA 2009-09-28-15.17.30.315107 841 841
.MF.MF7240 189B687E1C1DD8DA 2009-09-28-15.17.30.315107 891 891
.MF.MF7240 189B687E1C1DD8DA 2009-09-28-15.17.30.315107 934 934
.MF.MF7240 189B687E1C1DD8DA 2009-09-28-15.17.30.315107 976 976
.MF.MF7240 189B687E1C1DD8DA 2009-09-28-15.17.30.315107 1230 1230 2
.MF.MF7250 189B688010DB7A8E 2009-09-28-15.17.44.140778 352 352 3
.MF.MF7250 189B688010DB7A8E 2009-09-28-15.17.44.140778 370 370 3
.MF.MF7250 189B688010DB7A8E 2009-09-28-15.17.44.140778 855 855
.MF.MF7250 189B688010DB7A8E 2009-09-28-15.17.44.140778 882 882
.MF.MF7250 189B688010DB7A8E 2009-09-28-15.17.44.140778 923 923
.MF.MF7250 189B688010DB7A8E 2009-09-28-15.17.44.140778 952 952
.MF.MF7250 189B688010DB7A8E 2009-09-28-15.17.44.140778 1252 1252 1
.MF.MF7250 189B688010DB7A8E 2009-09-28-15.17.44.140778 1304 1304
.MF.MF7260 18A77F5418E26D38 2009-12-14-13.25.59.036852 296 296 1
.MF.MF7260 18A77F5418E26D38 2009-12-14-13.25.59.036852 312 312 3
.MF.MF7260 18A77F5418E26D38 2009-12-14-13.25.59.036852 538 538 2
.MF.MF7260 18A77F5418E26D38 2009-12-14-13.25.59.036852 607 607 2
.MF.MF7260 18A77F5418E26D38 2009-12-14-13.25.59.036852 668 668 3
.MF.MF7260 18A77F5418E26D38 2009-12-14-13.25.59.036852 727 727 3
.MF.MF7260 18A77F5418E26D38 2009-12-14-13.25.59.036852 1009 1009 2
.MF.MF7260 18A77F5418E26D38 2009-12-14-13.25.59.036852 1032 1032
.MF.MF7260 18A77F5418E26D38 2009-12-14-13.25.59.036852 1057 1057 1
.MF.MF7270 18A7FB001A1199D2 2009-12-17-15.12.22.676583 284 284 2
.MF.MF7270 18A7FB001A1199D2 2009-12-17-15.12.22.676583 294 294 1
.MF.MF7270 18A7FB001A1199D2 2009-12-17-15.12.22.676583 303 303 1
.MF.MF7270 18A7FB001A1199D2 2009-12-17-15.12.22.676583 314 314 1
.MF.MF7270 18A7FB001A1199D2 2009-12-17-15.12.22.676583 324 324 1
.MF.MF7270 18A7FB001A1199D2 2009-12-17-15.12.22.676583 335 335 1
.MF.MF7270 18A7FB001A1199D2 2009-12-17-15.12.22.676583 345 345 1
.MF.MF7270 18A7FB001A1199D2 2009-12-17-15.12.22.676583 355 355 1
.MF.MF7270 18A7FB001A1199D2 2009-12-17-15.12.22.676583 788 788
.MF.MF7270 18A7FB001A1199D2 2009-12-17-15.12.22.676583 817 817
.MF.MF7270 18A7FB001A1199D2 2009-12-17-15.12.22.676583 872 872 1
.MF.MF7270 18A7FB001A1199D2 2009-12-17-15.12.22.676583 981 981 1
.MF.MF7270 18A7FB001A1199D2 2009-12-17-15.12.22.676583 994 994
.MF.MF7275 189B68860693AB8F 2009-09-28-15.18.31.777454 650 650 1
.MF.MF7275 189B68860693AB8F 2009-09-28-15.18.31.777454 720 720
.MF.MF7275 189B68860693AB8F 2009-09-28-15.18.31.777454 754 754 1
.MF.MF7275 189B68860693AB8F 2009-09-28-15.18.31.777454 899 899
.MF.MF7275 189B68860693AB8F 2009-09-28-15.18.31.777454 920 920
.MF.MF7275A 185487870A2E9FB3 2008-07-04-16.23.51.318206 478 478
.MF.MF7275A 185487870A2E9FB3 2008-07-04-16.23.51.318206 499 499
.MF.MF7275A 185487870A2E9FB3 2008-07-04-16.23.51.318206 520 520 1
.MF.MF7275A 185487870A2E9FB3 2008-07-04-16.23.51.318206 531 531 1
.MF.MF7275A 185487870A2E9FB3 2008-07-04-16.23.51.318206 622 622
.MF.MF7275B 185BEB8E1AF4E63E 2008-08-20-17.02.13.497816 626 626 1
.MF.MF7275B 185BEB8E1AF4E63E 2008-08-20-17.02.13.497816 696 696
.MF.MF7275B 185BEB8E1AF4E63E 2008-08-20-17.02.13.497816 736 736 1
.MF.MF7275B 185BEB8E1AF4E63E 2008-08-20-17.02.13.497816 885 885
.MF.MF7275B 185BEB8E1AF4E63E 2008-08-20-17.02.13.497816 906 906
.MF.MF7280 1827451E1237094D 2007-09-20-16.50.07.074405 1572 1572
.MF.MF7280 1827451E1237094D 2007-09-20-16.50.07.074405 1601 1601
.MF.MF7280 1827451E1237094D 2007-09-20-16.50.07.074405 1630 1630
.MF.MF7280 1827451E1237094D 2007-09-20-16.50.07.074405 1661 1661
.MF.MF7280 1827451E1237094D 2007-09-20-16.50.07.074405 1691 1691
.MF.MF7280 1827451E1237094D 2007-09-20-16.50.07.074405 1721 1721
.MF.MF7280 1827451E1237094D 2007-09-20-16.50.07.074405 1768 1768 1
.MF.MF7280 1827451E1237094D 2007-09-20-16.50.07.074405 1802 1802
.MF.MF7280 1827451E1237094D 2007-09-20-16.50.07.074405 1830 1830 1
.MF.MF7290 189B6887175A0569 2009-09-28-15.18.44.563477 198 198 5
.MF.MF7290 189B6887175A0569 2009-09-28-15.18.44.563477 268 268
.MF.MF7290 189B6887175A0569 2009-09-28-15.18.44.563477 593 593 2
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 793 793 3
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 814 814 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 835 835 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 856 856 4
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 882 882 7
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 917 917 10
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 944 944 6
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 971 971 6
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 987 987 4
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 1365 1365
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 1378 1378
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 1402 1402
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 1412 1412
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 1716 1716
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 1743 1743
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 1829 1829 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 1850 1850 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 1892 1892 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 1921 1921 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 1942 1942 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 1984 1984 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2013 2013 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2034 2034 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2076 2076 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2105 2105 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2126 2126 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2168 2168 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2197 2197 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2218 2218 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2260 2260 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2289 2289 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2310 2310 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2352 2352 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2381 2381 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2402 2402 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2444 2444 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2473 2473 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2494 2494 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2536 2536 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2565 2565 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2586 2586 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2628 2628 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2657 2657 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2678 2678 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2720 2720 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2749 2749 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2770 2770 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2812 2812 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2841 2841 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2862 2862 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2904 2904 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2933 2933 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2954 2954 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 2996 2996 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3025 3025 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3046 3046 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3088 3088 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3117 3117 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3138 3138 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3180 3180 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3209 3209 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3230 3230 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3272 3272 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3301 3301 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3322 3322 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3364 3364 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3393 3393 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3414 3414 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3456 3456 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3485 3485 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3506 3506 5
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3548 3548 8
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3611 3611
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3640 3640
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3673 3673
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3702 3702
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3734 3734
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3763 3763
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3795 3795
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3824 3824
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3849 3849
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3873 3873
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3921 3921
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3940 3940
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3962 3962
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 3987 3987
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 4021 4021 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 4051 4051 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 4074 4074
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 4088 4088
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 4110 4110 2
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 4193 4193 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 4224 4224 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 4255 4255 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 4285 4285 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 4318 4318 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 4337 4337 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 4379 4379 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 4412 4412 1
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 5439 5439
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 5454 5454
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 5465 5465
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 5480 5480
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 7099 7099
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 7132 7132 2
.MF.MF7310 189B688C05C6E40F 2009-09-28-15.19.21.899408 7165 7165 1
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 717 717 20
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1059 1059
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1083 1083
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1093 1093
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1340 1340
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1361 1361
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1383 1383
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1408 1408
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1430 1430
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1455 1455
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1477 1477
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1498 1498
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1515 1515
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1534 1534
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1553 1553
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1568 1568
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1591 1591 1
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1658 1658 4
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1682 1682
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1765 1765 21
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1858 1858 21
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 1949 1949 21
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 2033 2033 19
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 2110 2110 3
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 2136 2136 1
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 2161 2161 1
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 2186 2186 1
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 2212 2212 1
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 2240 2240 2
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 2271 2271 1
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 2294 2294
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 2322 2322 1
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 3283 3283 1
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 3321 3321 1
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 3578 3578 2
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 3611 3611 1
.MF.MF7320 189B688E10AA04E0 2009-09-28-15.19.41.530643 3672 3672
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 1098 1098 4
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 1111 1111 2
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 1134 1134 4
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 1157 1157 4
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 1194 1194 7
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 1211 1211 4
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 1228 1228 4
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 1257 1257 7
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 1684 1684 1
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 1713 1713 1
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 1744 1744 1
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 2588 2588 1
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 3120 3120 1
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 3457 3457 2
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 3488 3488 1
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 3584 3584 1
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 3631 3631 1
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 3670 3670
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 3714 3714 1
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 3726 3726 1
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 3771 3771 1
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 3853 3853
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 3961 3961 2
.MF.MF7380 189B68951192127A 2009-09-28-15.20.40.488521 3978 3978
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 703 703 4
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 754 754 14
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 776 776 4
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 817 817 9
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 833 833 2
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 854 854 5
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 885 885
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 1649 1649 1
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 1681 1681 1
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 2872 2872 7
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 2931 2931
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 2941 2941
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 2957 2957
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 3016 3016 2
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 3055 3055 1
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 3084 3084 1
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 3113 3113 2
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 3146 3146 1
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 3168 3168 1
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 3211 3211 1
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 3361 3361
.MF.MF7500 189B689A157AE10F 2009-09-28-15.21.23.456388 4077 4077
.MF.MF7550 189B68A7085A22EF 2009-09-28-15.23.09.066891 190 190 2
.MF.MF7550 189B68A7085A22EF 2009-09-28-15.23.09.066891 197 197 1
.MF.MF7550 189B68A7085A22EF 2009-09-28-15.23.09.066891 205 205 1
.MF.MF7550 189B68A7085A22EF 2009-09-28-15.23.09.066891 214 214 1
.MF.MF7550 189B68A7085A22EF 2009-09-28-15.23.09.066891 223 223 1
.MF.MF7550 189B68A7085A22EF 2009-09-28-15.23.09.066891 364 364
.MF.MF7550 189B68A7085A22EF 2009-09-28-15.23.09.066891 476 476 3
.MF.MF7550 189B68A7085A22EF 2009-09-28-15.23.09.066891 541 541
.MF.MF7550 189B68A7085A22EF 2009-09-28-15.23.09.066891 551 551
.MF.MF7550 189B68A7085A22EF 2009-09-28-15.23.09.066891 562 562 1
.MF.MF7550 189B68A7085A22EF 2009-09-28-15.23.09.066891 767 767 5
.MF.MF7550 189B68A7085A22EF 2009-09-28-15.23.09.066891 853 853 1
.MF.MF7730 189B68B60B7BA0FC 2009-09-28-15.25.15.716739 202 202 11
.MF.MF7730 189B68B60B7BA0FC 2009-09-28-15.25.15.716739 276 276 1
.MF.MF7730 189B68B60B7BA0FC 2009-09-28-15.25.15.716739 475 475
.MF.MF7770 189B68BA1DF928D3 2009-09-28-15.25.54.118307 228 228 20
.MF.MF7770 189B68BA1DF928D3 2009-09-28-15.25.54.118307 241 241 2
.MF.MF7770 189B68BA1DF928D3 2009-09-28-15.25.54.118307 323 323 1
.MF.MF7770 189B68BA1DF928D3 2009-09-28-15.25.54.118307 459 459 1
.MF.MF7770 189B68BA1DF928D3 2009-09-28-15.25.54.118307 474 474 1
.MF.MF7770 189B68BA1DF928D3 2009-09-28-15.25.54.118307 488 488 1
.MF.MF7770 189B68BA1DF928D3 2009-09-28-15.25.54.118307 504 504 1
.MF.MF7770 189B68BA1DF928D3 2009-09-28-15.25.54.118307 561 561 8
.MF.MF7770 189B68BA1DF928D3 2009-09-28-15.25.54.118307 698 698
.MF.MF7770 189B68BA1DF928D3 2009-09-28-15.25.54.118307 825 825
.MF.MF7790 189B68C61FB17F80 2009-09-28-15.27.35.232510 270 270 9
.MF.MF7790 189B68C61FB17F80 2009-09-28-15.27.35.232510 320 320
.MF.MF7790 189B68C61FB17F80 2009-09-28-15.27.35.232510 325 325
.MF.MF7790 189B68C61FB17F80 2009-09-28-15.27.35.232510 347 347 1
.MF.MF7790 189B68C61FB17F80 2009-09-28-15.27.35.232510 596 596 1
.MF.MF7790 189B68C61FB17F80 2009-09-28-15.27.35.232510 625 625 1
.MF.MF7790 189B68C61FB17F80 2009-09-28-15.27.35.232510 646 646 1
.MF.MF7790 189B68C61FB17F80 2009-09-28-15.27.35.232510 660 660 1
.MF.MF7801 189CF51D0604AB49 2009-10-08-11.53.01.835437 212 212 7
.MF.MF7801 189CF51D0604AB49 2009-10-08-11.53.01.835437 222 222 1
.MF.MF7801 189CF51D0604AB49 2009-10-08-11.53.01.835437 290 290
.MF.MF7801 189CF51D0604AB49 2009-10-08-11.53.01.835437 307 307 2
.MF.MF7801 189CF51D0604AB49 2009-10-08-11.53.01.835437 342 342
.MF.MF7801 189CF51D0604AB49 2009-10-08-11.53.01.835437 354 354 1
.MF.MF7801 189CF51D0604AB49 2009-10-08-11.53.01.835437 400 400 2
.MF.MF7801 189CF51D0604AB49 2009-10-08-11.53.01.835437 626 626 1
.MF.MF7801 189CF51D0604AB49 2009-10-08-11.53.01.835437 650 650 4
.MF.MF7801 189CF51D0604AB49 2009-10-08-11.53.01.835437 681 681 4
.MF.MF7930 189B68D4076DD7A1 2009-09-28-15.29.26.312286 670 670
.MF.MF7930 189B68D4076DD7A1 2009-09-28-15.29.26.312286 886 886 1
.MF.MF7930 189B68D4076DD7A1 2009-09-28-15.29.26.312286 906 906 1
.MF.MF7930 189B68D4076DD7A1 2009-09-28-15.29.26.312286 926 926 1
.MF.MF7930 189B68D4076DD7A1 2009-09-28-15.29.26.312286 946 946 1
.MF.MF7930 189B68D4076DD7A1 2009-09-28-15.29.26.312286 966 966 1
.MF.MF7930 189B68D4076DD7A1 2009-09-28-15.29.26.312286 986 986 1
.MF.MF7930 189B68D4076DD7A1 2009-09-28-15.29.26.312286 1076 1076 3
.MF.MF7930 189B68D4076DD7A1 2009-09-28-15.29.26.312286 1417 1417 1
.MF.MF7990 189B68D6074EB718 2009-09-28-15.29.43.057628 500 500 7
.MF.MF7990 189B68D6074EB718 2009-09-28-15.29.43.057628 905 905
.MF.MF7990 189B68D6074EB718 2009-09-28-15.29.43.057628 984 984
.MF.MF7990 189B68D6074EB718 2009-09-28-15.29.43.057628 1222 1222
.MF.MF7990 189B68D6074EB718 2009-09-28-15.29.43.057628 1368 1368
.MF.MF7990 189B68D6074EB718 2009-09-28-15.29.43.057628 1376 1376 1
.MF.MF7990 189B68D6074EB718 2009-09-28-15.29.43.057628 1412 1412 1
.MF.MF7990 189B68D6074EB718 2009-09-28-15.29.43.057628 1464 1464 4
.MF.MF7990 189B68D6074EB718 2009-09-28-15.29.43.057628 1530 1530 4
.MF.MF7990 189B68D6074EB718 2009-09-28-15.29.43.057628 1590 1590 4
.MF.MF7990 189B68D6074EB718 2009-09-28-15.29.43.057628 1649 1649 4
.MF.MF7990 189B68D6074EB718 2009-09-28-15.29.43.057628 1749 1749
.MF.MF8200 18AB22250F0C3002 2010-01-06-16.41.09.469888 484 484 1
.MF.MF8200 18AB22250F0C3002 2010-01-06-16.41.09.469888 1140 1140 2
.MF.MF8200 18AB22250F0C3002 2010-01-06-16.41.09.469888 1177 1177 3
.MF.MF8200 18AB22250F0C3002 2010-01-06-16.41.09.469888 1204 1204 2
.MF.MF8200 18AB22250F0C3002 2010-01-06-16.41.09.469888 1230 1230 2
.MF.MF8200 18AB22250F0C3002 2010-01-06-16.41.09.469888 1258 1258 3
.MF.MF8200 18AB22250F0C3002 2010-01-06-16.41.09.469888 1284 1284 3
.MF.MF8200 18AB22250F0C3002 2010-01-06-16.41.09.469888 1800 1800 1
.MF.MF8200 18AB22250F0C3002 2010-01-06-16.41.09.469888 1822 1822
.MF.MF8200 18AB22250F0C3002 2010-01-06-16.41.09.469888 1898 1898 1
.MF.MF8200 18AB22250F0C3002 2010-01-06-16.41.09.469888 1961 1961
.MF.MF8200 18AB22250F0C3002 2010-01-06-16.41.09.469888 1991 1991
.MF.MF8200 18AB22250F0C3002 2010-01-06-16.41.09.469888 2024 2024
.MF.MF8200 18AB22250F0C3002 2010-01-06-16.41.09.469888 2057 2057
.MF.MF8200 18AB22250F0C3002 2010-01-06-16.41.09.469888 2093 2093
.MF.MF8210 18AEBADA0D1798D2 2010-01-29-13.54.32.251491 856 856 3
.MF.MF8210 18AEBADA0D1798D2 2010-01-29-13.54.32.251491 896 896 4
.MF.MF8210 18AEBADA0D1798D2 2010-01-29-13.54.32.251491 1880 1880 2
.MF.MF8210 18AEBADA0D1798D2 2010-01-29-13.54.32.251491 1936 1936 3
.MF.MF8210 18AEBADA0D1798D2 2010-01-29-13.54.32.251491 1991 1991 3
.MF.MF8210 18AEBADA0D1798D2 2010-01-29-13.54.32.251491 2036 2036 1
.MF.MF8210 18AEBADA0D1798D2 2010-01-29-13.54.32.251491 2293 2293
.MF.MF8210 18AEBADA0D1798D2 2010-01-29-13.54.32.251491 2350 2350 2
.MF.MF8210 18AEBADA0D1798D2 2010-01-29-13.54.32.251491 2839 2839 1
.MF.MF8210 18AEBADA0D1798D2 2010-01-29-13.54.32.251491 3082 3082 2
.MF.MF8210 18AEBADA0D1798D2 2010-01-29-13.54.32.251491 3115 3115
.MF.MF8210 18AEBADA0D1798D2 2010-01-29-13.54.32.251491 3338 3338 1
.MF.MF8210 18AEBADA0D1798D2 2010-01-29-13.54.32.251491 3391 3391 2
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 652 652 4
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 700 700 14
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 731 731 6
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 762 762 8
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 797 797
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 1373 1373 2
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 1404 1404 2
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 2324 2324
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 2362 2362 7
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 2423 2423
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 2432 2432
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 2445 2445
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 2498 2498 2
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 2535 2535 1
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 2551 2551 1
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 2592 2592
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 2617 2617
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 2642 2642
.MF.MF8500 187F167F0F75FAC6 2009-04-01-11.29.58.938091 2671 2671 1
.MF.MF8600 189B68EB1F459C95 2009-09-28-15.32.45.500530 166 166 2
.MF.MF8600 189B68EB1F459C95 2009-09-28-15.32.45.500530 190 190 1
.MF.MF8600 189B68EB1F459C95 2009-09-28-15.32.45.500530 871 871 1
.MF.MF8600 189B68EB1F459C95 2009-09-28-15.32.45.500530 914 914 1
.MF.MF8600 189B68EB1F459C95 2009-09-28-15.32.45.500530 1045 1045
.MF.MF8600 189B68EB1F459C95 2009-09-28-15.32.45.500530 1082 1082
.MF.MF8600 189B68EB1F459C95 2009-09-28-15.32.45.500530 1389 1389 2
.MF.MF8600 189B68EB1F459C95 2009-09-28-15.32.45.500530 1494 1494
.MF.MF8600 189B68EB1F459C95 2009-09-28-15.32.45.500530 1528 1528
.MF.MF8600 189B68EB1F459C95 2009-09-28-15.32.45.500530 1564 1564
.MF.MF8600 189B68EB1F459C95 2009-09-28-15.32.45.500530 1777 1777 1
.MF.MF8600 189B68EB1F459C95 2009-09-28-15.32.45.500530 1812 1812
.MF.MF8610 189B68ED003AC9EE 2009-09-28-15.32.54.140199 180 180 2
.MF.MF8610 189B68ED003AC9EE 2009-09-28-15.32.54.140199 709 709 1
.MF.MF8610 189B68ED003AC9EE 2009-09-28-15.32.54.140199 752 752 1
.MF.MF8610 189B68ED003AC9EE 2009-09-28-15.32.54.140199 876 876
.MF.MF8610 189B68ED003AC9EE 2009-09-28-15.32.54.140199 913 913
.MF.MF8610 189B68ED003AC9EE 2009-09-28-15.32.54.140199 1130 1130 2
.MF.MF8610 189B68ED003AC9EE 2009-09-28-15.32.54.140199 1167 1167
.MF.MF8610 189B68ED003AC9EE 2009-09-28-15.32.54.140199 1205 1205
.MF.MF8610 189B68ED003AC9EE 2009-09-28-15.32.54.140199 1239 1239
.MF.MF8610 189B68ED003AC9EE 2009-09-28-15.32.54.140199 1431 1431 1
.MF.MF8610 189B68ED003AC9EE 2009-09-28-15.32.54.140199 1468 1468
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 245 245 6
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 352 352 12
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 460 460 12
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 705 705
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 716 716
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 1624 1624 1
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 1671 1671 2
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 2310 2310 4
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 2390 2390 4
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 2462 2462 4
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 2534 2534 4
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 2643 2643 2
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 2689 2689 2
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 2810 2810 5
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 2860 2860 2
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 2914 2914 1
.MF.MF8620 189B68EE02913180 2009-09-28-15.33.03.141574 2994 2994 3
.MF.MF8630 187F168B15C4CE4A 2009-04-01-11.31.41.254969 233 233 3
.MF.MF8630 187F168B15C4CE4A 2009-04-01-11.31.41.254969 875 875 1
.MF.MF8630 187F168B15C4CE4A 2009-04-01-11.31.41.254969 918 918 1
.MF.MF8630 187F168B15C4CE4A 2009-04-01-11.31.41.254969 1043 1043
.MF.MF8630 187F168B15C4CE4A 2009-04-01-11.31.41.254969 1080 1080
.MF.MF8630 187F168B15C4CE4A 2009-04-01-11.31.41.254969 1322 1322 2
.MF.MF8630 187F168B15C4CE4A 2009-04-01-11.31.41.254969 1372 1372 1
.MF.MF8630 187F168B15C4CE4A 2009-04-01-11.31.41.254969 1439 1439 1
.MF.MF8630 187F168B15C4CE4A 2009-04-01-11.31.41.254969 1478 1478 1
.MF.MF8630 187F168B15C4CE4A 2009-04-01-11.31.41.254969 1674 1674 1
.MF.MF8630 187F168B15C4CE4A 2009-04-01-11.31.41.254969 1711 1711
.MF.MF8630 187F168B15C4CE4A 2009-04-01-11.31.41.254969 1736 1736
.MF.MF8640 189B68F00AF49A2A 2009-09-28-15.33.22.117736 165 165 1
.MF.MF8640 189B68F00AF49A2A 2009-09-28-15.33.22.117736 733 733 1
.MF.MF8640 189B68F00AF49A2A 2009-09-28-15.33.22.117736 776 776 1
.MF.MF8640 189B68F00AF49A2A 2009-09-28-15.33.22.117736 907 907
.MF.MF8640 189B68F00AF49A2A 2009-09-28-15.33.22.117736 945 945
.MF.MF8640 189B68F00AF49A2A 2009-09-28-15.33.22.117736 1156 1156 2
.MF.MF8640 189B68F00AF49A2A 2009-09-28-15.33.22.117736 1254 1254
.MF.MF8640 189B68F00AF49A2A 2009-09-28-15.33.22.117736 1288 1288
.MF.MF8640 189B68F00AF49A2A 2009-09-28-15.33.22.117736 1324 1324
.MF.MF8640 189B68F00AF49A2A 2009-09-28-15.33.22.117736 1537 1537 1
.MF.MF8640 189B68F00AF49A2A 2009-09-28-15.33.22.117736 1572 1572
.MF.MF8650 189B68F10EC16EC0 2009-09-28-15.33.31.502523 176 176 2
.MF.MF8650 189B68F10EC16EC0 2009-09-28-15.33.31.502523 705 705 1
.MF.MF8650 189B68F10EC16EC0 2009-09-28-15.33.31.502523 748 748 1
.MF.MF8650 189B68F10EC16EC0 2009-09-28-15.33.31.502523 872 872
.MF.MF8650 189B68F10EC16EC0 2009-09-28-15.33.31.502523 909 909
.MF.MF8650 189B68F10EC16EC0 2009-09-28-15.33.31.502523 1126 1126 2
.MF.MF8650 189B68F10EC16EC0 2009-09-28-15.33.31.502523 1163 1163
.MF.MF8650 189B68F10EC16EC0 2009-09-28-15.33.31.502523 1201 1201
.MF.MF8650 189B68F10EC16EC0 2009-09-28-15.33.31.502523 1235 1235
.MF.MF8650 189B68F10EC16EC0 2009-09-28-15.33.31.502523 1427 1427 1
.MF.MF8650 189B68F10EC16EC0 2009-09-28-15.33.31.502523 1464 1464
.MF.MF8660 187F169106553F32 2009-04-01-11.32.27.540220 200 200 5
.MF.MF8660 187F169106553F32 2009-04-01-11.32.27.540220 844 844 1
.MF.MF8660 187F169106553F32 2009-04-01-11.32.27.540220 887 887 1
.MF.MF8660 187F169106553F32 2009-04-01-11.32.27.540220 1012 1012 1
.MF.MF8660 187F169106553F32 2009-04-01-11.32.27.540220 1049 1049 1
.MF.MF8660 187F169106553F32 2009-04-01-11.32.27.540220 1086 1086 2
.MF.MF8660 187F169106553F32 2009-04-01-11.32.27.540220 1280 1280 2
.MF.MF8660 187F169106553F32 2009-04-01-11.32.27.540220 1330 1330 1
.MF.MF8660 187F169106553F32 2009-04-01-11.32.27.540220 1397 1397 1
.MF.MF8660 187F169106553F32 2009-04-01-11.32.27.540220 1436 1436 1
.MF.MF8660 187F169106553F32 2009-04-01-11.32.27.540220 1632 1632 1
.MF.MF8660 187F169106553F32 2009-04-01-11.32.27.540220 1669 1669
.MF.MF8660 187F169106553F32 2009-04-01-11.32.27.540220 1694 1694
.MF.MF8670 189B68F2105EC140 2009-09-28-15.33.40.314373 164 164 3
.MF.MF8670 189B68F2105EC140 2009-09-28-15.33.40.314373 720 720 1
.MF.MF8670 189B68F2105EC140 2009-09-28-15.33.40.314373 758 758 1
.MF.MF8670 189B68F2105EC140 2009-09-28-15.33.40.314373 796 796 2
.MF.MF8670 189B68F2105EC140 2009-09-28-15.33.40.314373 959 959 2
.MF.MF8670 189B68F2105EC140 2009-09-28-15.33.40.314373 1001 1001
.MF.MF8670 189B68F2105EC140 2009-09-28-15.33.40.314373 1035 1035
.MF.MF8800 189B690A1F38CB74 2009-09-28-15.37.05.534253 243 243 22
.MF.MF8800 189B690A1F38CB74 2009-09-28-15.37.05.534253 257 257 2
.MF.MF8800 189B690A1F38CB74 2009-09-28-15.37.05.534253 339 339 1
.MF.MF8800 189B690A1F38CB74 2009-09-28-15.37.05.534253 475 475 1
.MF.MF8800 189B690A1F38CB74 2009-09-28-15.37.05.534253 490 490 1
.MF.MF8800 189B690A1F38CB74 2009-09-28-15.37.05.534253 504 504 1
.MF.MF8800 189B690A1F38CB74 2009-09-28-15.37.05.534253 520 520 1
.MF.MF8800 189B690A1F38CB74 2009-09-28-15.37.05.534253 577 577 8
.MF.MF8800 189B690A1F38CB74 2009-09-28-15.37.05.534253 714 714
.MF.MF8800 189B690A1F38CB74 2009-09-28-15.37.05.534253 804 804
.MF.MF8810 189B690C105CBE3E 2009-09-28-15.37.18.416120 241 241 21
.MF.MF8810 189B690C105CBE3E 2009-09-28-15.37.18.416120 254 254 2
.MF.MF8810 189B690C105CBE3E 2009-09-28-15.37.18.416120 336 336 1
.MF.MF8810 189B690C105CBE3E 2009-09-28-15.37.18.416120 376 376 1
.MF.MF8810 189B690C105CBE3E 2009-09-28-15.37.18.416120 506 506 1
.MF.MF8810 189B690C105CBE3E 2009-09-28-15.37.18.416120 521 521 1
.MF.MF8810 189B690C105CBE3E 2009-09-28-15.37.18.416120 535 535 1
.MF.MF8810 189B690C105CBE3E 2009-09-28-15.37.18.416120 551 551 1
.MF.MF8810 189B690C105CBE3E 2009-09-28-15.37.18.416120 608 608 8
.MF.MF8810 189B690C105CBE3E 2009-09-28-15.37.18.416120 745 745
.MF.MF8810 189B690C105CBE3E 2009-09-28-15.37.18.416120 835 835
.MF.MF8910 189B690E1D237C1C 2009-09-28-15.37.38.542576 357 357 8
.MF.MF8910 189B690E1D237C1C 2009-09-28-15.37.38.542576 636 636 1
.MF.MF8910 189B690E1D237C1C 2009-09-28-15.37.38.542576 674 674 1
.MF.MF8910 189B690E1D237C1C 2009-09-28-15.37.38.542576 695 695
.MF.MF8910 189B690E1D237C1C 2009-09-28-15.37.38.542576 721 721 1
.MF.MF8910 189B690E1D237C1C 2009-09-28-15.37.38.542576 743 743
.MF.MF8910 189B690E1D237C1C 2009-09-28-15.37.38.542576 761 761 2
.MF.MF8910 189B690E1D237C1C 2009-09-28-15.37.38.542576 846 846
.MF.MF8910 189B690E1D237C1C 2009-09-28-15.37.38.542576 883 883
.MF.MF8910 189B690E1D237C1C 2009-09-28-15.37.38.542576 917 917 1
.MF.MF8940 189B691500940FD6 2009-09-28-15.38.29.775935 284 284 17
.MF.MF8940 189B691500940FD6 2009-09-28-15.38.29.775935 366 366 1
.MF.MF8940 189B691500940FD6 2009-09-28-15.38.29.775935 446 446 19
.MF.MF8940 189B691500940FD6 2009-09-28-15.38.29.775935 528 528 1
.MF.MF8940 189B691500940FD6 2009-09-28-15.38.29.775935 603 603 1
.MF.MF8940 189B691500940FD6 2009-09-28-15.38.29.775935 618 618 1
.MF.MF8940 189B691500940FD6 2009-09-28-15.38.29.775935 632 632 1
.MF.MF8940 189B691500940FD6 2009-09-28-15.38.29.775935 648 648 1
.MF.MF8940 189B691500940FD6 2009-09-28-15.38.29.775935 732 732
.MF.MF8950 18A391B617161E36 2009-11-19-13.33.32.099192 254 254 19
.MF.MF8950 18A391B617161E36 2009-11-19-13.33.32.099192 268 268 3
.MF.MF8950 18A391B617161E36 2009-11-19-13.33.32.099192 350 350 1
.MF.MF8950 18A391B617161E36 2009-11-19-13.33.32.099192 431 431 19
.MF.MF8950 18A391B617161E36 2009-11-19-13.33.32.099192 564 564 1
.MF.MF8950 18A391B617161E36 2009-11-19-13.33.32.099192 579 579 1
.MF.MF8950 18A391B617161E36 2009-11-19-13.33.32.099192 593 593 1
.MF.MF8950 18A391B617161E36 2009-11-19-13.33.32.099192 609 609 1
.MF.MF8950 18A391B617161E36 2009-11-19-13.33.32.099192 666 666 8
.MF.MF8950 18A391B617161E36 2009-11-19-13.33.32.099192 808 808
.MF.MF8950 18A391B617161E36 2009-11-19-13.33.32.099192 936 936
.MF.MF8960 189B691A13D718C4 2009-09-28-15.39.16.768355 329 329 40
.MF.MF8960 189B691A13D718C4 2009-09-28-15.39.16.768355 401 401
.MF.MF8960 189B691A13D718C4 2009-09-28-15.39.16.768355 406 406
.MF.MF8960 189B691A13D718C4 2009-09-28-15.39.16.768355 429 429 1
.MF.MF8960 189B691A13D718C4 2009-09-28-15.39.16.768355 449 449 1
.MF.MF8960 189B691A13D718C4 2009-09-28-15.39.16.768355 465 465
.MF.MF8960 189B691A13D718C4 2009-09-28-15.39.16.768355 491 491 1
.MF.MF9100 187BAA26126527AA 2009-03-10-16.44.17.445534 557 557 2
.MF.MF9100 187BAA26126527AA 2009-03-10-16.44.17.445534 621 621 1
.MF.MF9100 187BAA26126527AA 2009-03-10-16.44.17.445534 649 649 2
.MF.MF9100 187BAA26126527AA 2009-03-10-16.44.17.445534 738 738
.MF.MF9100A 18545D92076F77C4 2008-07-03-15.22.08.559647 560 560
.MF.MF9100A 18545D92076F77C4 2008-07-03-15.22.08.559647 583 583 2
.MF.MF9100A 18545D92076F77C4 2008-07-03-15.22.08.559647 594 594 2
.MF.MF9100A 18545D92076F77C4 2008-07-03-15.22.08.559647 681 681 1
.MF.MF913@I 18B0705018ACF7AF 2010-02-09-10.51.55.497950 365 365 1
.MF.MF913@I 18B0705018ACF7AF 2010-02-09-10.51.55.497950 378 378 1
.MF.MF913@I 18B0705018ACF7AF 2010-02-09-10.51.55.497950 390 390 1
.MF.MF913@I 18B0705018ACF7AF 2010-02-09-10.51.55.497950 434 434
.MF.MF913@I 18B0705018ACF7AF 2010-02-09-10.51.55.497950 999 999 11
.MF.MF913@I 18B0705018ACF7AF 2010-02-09-10.51.55.497950 1053 1053 11
.MF.MF913@I 18B0705018ACF7AF 2010-02-09-10.51.55.497950 1090 1090 2
.MF.MF913@I 18B0705018ACF7AF 2010-02-09-10.51.55.497950 1148 1148 1
.MF.MF913@I 18B0705018ACF7AF 2010-02-09-10.51.55.497950 1205 1205 3
.MF.MF913@I 18B0705018ACF7AF 2010-02-09-10.51.55.497950 1553 1553 1
.MF.MF913@I 18B0705018ACF7AF 2010-02-09-10.51.55.497950 1592 1592
.MF.MF913@I 18B0705018ACF7AF 2010-02-09-10.51.55.497950 1636 1636 2
.MF.MF9999 188952C2008BD2B3 2009-06-05-14.32.44.222794 551 551 2
.MF.MF9999 188952C2008BD2B3 2009-06-05-14.32.44.222794 595 595
.MF.MF9999 188952C2008BD2B3 2009-06-05-14.32.44.222794 663 663 2
.MF.MF9999 188952C2008BD2B3 2009-06-05-14.32.44.222794 708 708
.MF.MFTEST 187A9023049B4AA1 2009-03-03-15.30.38.276394 162 162 5
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 513 513 3
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 537 537
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 977 977 4
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 1013 1013 2
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 1051 1051 1
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 1099 1099 1
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 1151 1151 1
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 1225 1225 1
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 1271 1271 1
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 1469 1469 3
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 1558 1558 3
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 2515 2515
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 2549 2549
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 2590 2590
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 2631 2631 3
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 2710 2710 3
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 2752 2752 2
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 2886 2886 2
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 3134 3134 2
.MF.YMFC001 18622FBF0BAC22A2 2008-09-29-12.58.24.304330 3169 3169 2
.MF.YMFC004 18AB22740B5F658A 2010-01-06-16.52.11.206550 421 421 1
.MF.YMFC004 18AB22740B5F658A 2010-01-06-16.52.11.206550 433 433 1
.MF.YMFC004 18AB22740B5F658A 2010-01-06-16.52.11.206550 474 474
.MF.YMFC004 18AB22740B5F658A 2010-01-06-16.52.11.206550 964 964 11
.MF.YMFC004 18AB22740B5F658A 2010-01-06-16.52.11.206550 1017 1017 11
.MF.YMFC004 18AB22740B5F658A 2010-01-06-16.52.11.206550 1051 1051 2
.MF.YMFC004 18AB22740B5F658A 2010-01-06-16.52.11.206550 1108 1108 1
.MF.YMFC004 18AB22740B5F658A 2010-01-06-16.52.11.206550 1164 1164 3
.MF.YMFC004 18AB22740B5F658A 2010-01-06-16.52.11.206550 1490 1490 1
.MF.YMFC004 18AB22740B5F658A 2010-01-06-16.52.11.206550 1575 1575 2
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 529 529 3
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 553 553
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 718 718 4
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 752 752 2
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 789 789 1
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 834 834 1
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 883 883 1
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 952 952 1
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 995 995 1
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 1242 1242 3
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 1329 1329 3
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 2093 2093
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 2124 2124
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 2163 2163
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 2201 2201 3
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 2278 2278 3
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 2317 2317 2
.MF.YMFC101 18A9D74307D4AFFA 2009-12-29-11.18.22.148799 2447 2447 2
.MF.YMFC104 18A9D7460DA45DB0 2009-12-29-11.18.48.838006 422 422 1
.MF.YMFC104 18A9D7460DA45DB0 2009-12-29-11.18.48.838006 434 434 1
.MF.YMFC104 18A9D7460DA45DB0 2009-12-29-11.18.48.838006 476 476
.MF.YMFC104 18A9D7460DA45DB0 2009-12-29-11.18.48.838006 966 966 11
.MF.YMFC104 18A9D7460DA45DB0 2009-12-29-11.18.48.838006 1019 1019 11
.MF.YMFC104 18A9D7460DA45DB0 2009-12-29-11.18.48.838006 1053 1053 2
.MF.YMFC104 18A9D7460DA45DB0 2009-12-29-11.18.48.838006 1110 1110 1
.MF.YMFC104 18A9D7460DA45DB0 2009-12-29-11.18.48.838006 1166 1166 3
.MF.YMFC104 18A9D7460DA45DB0 2009-12-29-11.18.48.838006 1492 1492 1
.MF.YMFC104 18A9D7460DA45DB0 2009-12-29-11.18.48.838006 1577 1577 2
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 460 460 1
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 472 472 2
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 562 562 15
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 611 611 15
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 664 664 16
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 690 690 6
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 717 717 6
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 748 748 8
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 775 775 6
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 800 800 6
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 829 829 7
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 844 844 2
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 871 871
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 1448 1448 1
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 1587 1587 1
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 1878 1878 1
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 2398 2398 1
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 2435 2435 2
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 2473 2473 1
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 2511 2511 1
.MF.YMFC112 188C01F016BE787B 2009-06-22-16.27.57.183969 2893 2893 2
.MF.YMFC118 18A9D76B132C2640 2009-12-29-11.24.00.666265 396 396 15
.MF.YMFC118 18A9D76B132C2640 2009-12-29-11.24.00.666265 909 909 1
.MF.YMFC118 18A9D76B132C2640 2009-12-29-11.24.00.666265 943 943 1
.MF.YMFC118 18A9D76B132C2640 2009-12-29-11.24.00.666265 977 977 3
.MF.YMFC118 18A9D76B132C2640 2009-12-29-11.24.00.666265 1095 1095 2
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 329 329
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 492 492
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 829 829 15
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 867 867 15
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 905 905 15
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 930 930 3
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 962 962 2
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 1041 1041 14
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 1110 1110 14
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 1140 1140 1
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 1174 1174 1
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 1200 1200
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 1228 1228
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 1315 1315 4
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 1352 1352 3
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 1382 1382 1
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 1408 1408
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 1442 1442 1
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 1472 1472 1
.MF.YMFC119 18A9D76E1E4802C6 2009-12-29-11.24.28.744203 1659 1659 2
.MF.YMFC155 18A9D77E12E455F0 2009-12-29-11.26.39.976279 296 296 3
.MF.YMFC155 18A9D77E12E455F0 2009-12-29-11.26.39.976279 315 315 3
.MF.YMFC155 18A9D77E12E455F0 2009-12-29-11.26.39.976279 333 333 3
.MF.YMFC155 18A9D77E12E455F0 2009-12-29-11.26.39.976279 389 389
.MF.YMFC155 18A9D77E12E455F0 2009-12-29-11.26.39.976279 982 982
.MF.YMFC155 18A9D77E12E455F0 2009-12-29-11.26.39.976279 1016 1016
.MF.YMFC155 18A9D77E12E455F0 2009-12-29-11.26.39.976279 1159 1159 2
.MF.YMFC203 18A81BBD06A70AA0 2009-12-18-10.44.02.510378 286 286 2
.MF.YMFC203 18A81BBD06A70AA0 2009-12-18-10.44.02.510378 311 311 4
.MF.YMFC203 18A81BBD06A70AA0 2009-12-18-10.44.02.510378 1014 1014
.MF.YMFC203 18A81BBD06A70AA0 2009-12-18-10.44.02.510378 1105 1105 2
.MF.YMFC203 18A81BBD06A70AA0 2009-12-18-10.44.02.510378 1242 1242 2
.MF.YMFC203 18A81BBD06A70AA0 2009-12-18-10.44.02.510378 1293 1293 2
.MF.YMFC203 18A81BBD06A70AA0 2009-12-18-10.44.02.510378 1329 1329 4
.MF.YMFC203 18A81BBD06A70AA0 2009-12-18-10.44.02.510378 1378 1378 2
.MF.YMFC204 18A9D78003D85D0A 2009-12-29-11.26.52.809076 427 427 1
.MF.YMFC204 18A9D78003D85D0A 2009-12-29-11.26.52.809076 439 439 1
.MF.YMFC204 18A9D78003D85D0A 2009-12-29-11.26.52.809076 451 451 1
.MF.YMFC204 18A9D78003D85D0A 2009-12-29-11.26.52.809076 493 493
.MF.YMFC204 18A9D78003D85D0A 2009-12-29-11.26.52.809076 1048 1048 11
.MF.YMFC204 18A9D78003D85D0A 2009-12-29-11.26.52.809076 1101 1101 11
.MF.YMFC204 18A9D78003D85D0A 2009-12-29-11.26.52.809076 1135 1135 2
.MF.YMFC204 18A9D78003D85D0A 2009-12-29-11.26.52.809076 1192 1192 1
.MF.YMFC204 18A9D78003D85D0A 2009-12-29-11.26.52.809076 1248 1248 3
.MF.YMFC204 18A9D78003D85D0A 2009-12-29-11.26.52.809076 1659 1659 1
.MF.YMFC204 18A9D78003D85D0A 2009-12-29-11.26.52.809076 1698 1698
.MF.YMFC204 18A9D78003D85D0A 2009-12-29-11.26.52.809076 1933 1933 2
$#out 20100210 15:49:55
}¢--- A540769.WK.SQL(CATSTMTQ) cre=2010-02-10 mod=2010-02-10-17.12.02 A540769 ---
select count(*), nn from
(
select case when stmtNo = stmtNoI then '='
when stmtNo <> 0 then 'o'
when stmtNoI <> 0 then 'i'
else '|'
end nn
from sysibm.sysPackstmt
) nn
group by nn
with ur
}¢--- A540769.WK.SQL(CATSTMTW) cre=2010-02-10 mod=2010-02-10-16.36.40 A540769 ---
$** pretty print catStmt --> use very long recSize|
call sqlConnect DBAF
tc = left('', 30000, 'a')
call sqlPreOpen 1, 'select length(tc), c.* from a540769.catStmt c' ,
"where explainable = 'Y' and seqMax - seqMin > 1",
'order by location, collid, name, contoken, sq' /* ,
'fetch first 100 rows only' */
do while sqlFetchInto(1, ':le,' ,
':loc, :coll, :name, :conto, :stmtNo, :stmtNoI,',
':tc, :lv, :sq, :i1, :i2,' ,
':seqMin, :seqMax, :exp, :t1')
$$- left(strip(loc)'.'strip(coll)'.'strip(name)':'c2x(conTo),40)$*+
right(stmtNo, 5) right(stmtNoI, 5) $*+
right(sq, 5) right(seqMin,5)'-'right(seqMax,5) right(lv, 5)$*+
right(i1, 5)'/'right(i2, 5) right(seqMin,5) exp t1 $*+
right(length(tc), 5) tc
end
call sqlDisconnect
$#out 20100210 16:35:58
.MF.MF7300:1870A53C074E0A8B 1026 1026 21 18- 21 3 130
.MF.MF7300:1870A53C074E0A8B 1680 1680 31 27- 32 4 192
.MF.MF7300:18823BDE05922702 1027 1027 21 18- 21 3 130
.MF.MF7300:18823BDE05922702 1681 1681 31 27- 32 4 192
.MF.MF7300:189B688A11448374 1027 1027 21 18- 21 3 130
.MF.MF7300:189B688A11448374 1681 1681 31 27- 32 4 192
.MF.MF7340:1870A547128765C4 1314 1314 29 28- 30 1 72
.MF.MF7340:187F164C035D050A 1314 1314 29 28- 30 1 72
.MF.MF7340:189B689104A51119 1314 1314 29 28- 30 1 72
.MF.MF7360:187F164F0B7D2143 1401 1401 25 23- 26 2 114
.MF.MF7360:1885FBBE18568138 1402 1402 25 23- 26 2 114
.MF.MF7360:189B68931AEEB97B 1402 1402 25 23- 26 2 114
.MF.MF8132:16220FBB0F7A91C6 6161 0 32 31- 33 1 7
.MF.MF8133:165C328D11EE39A1 6333 0 33 32- 35 1 8
.MF.MF8133:166D01F706A93017 6343 0 33 32- 35 1 8
.MF.MF8171:16346DB214C3E00A 4760 0 31 30- 33 1 10
.MF.MF8701:17DF9D2D1EC3A426 1277 1277 76 73- 76 3 8
.MF.MFHF01:17E1A52613F3FFAF 450 450 11 10- 15 1 14
.MF.MFHF01:17E1A52613F3FFAF 457 457 17 16- 21 1 14
.MF.YMFC119:184FEC0A15A63EAC 173 173 1 1- 3 0 27
.MF.YMFC202:17DAD9280BA326F3 4412 4412 67 66- 68 1 5
.MF.YMFC203:17DAD9431401230E 3458 3458 36 35- 37 1 5
.MF.YMFC203:17DAD9431401230E 4182 4182 42 42- 44 0 6
.MF.YMFC203:17DAD9431401230E 4317 4317 45 45- 47 0 6
.MF.YMFC203:17DAD9431401230E 4360 4360 49 48- 50 1 5
.MF.YMFC209:17DADA44116B5998 3705 3705 40 39- 41 1 6
.MF.YMFC209:17DADA44116B5998 3726 3726 45 42- 46 3 12
.MF.YMFC209:17DADA44116B5998 3763 3763 48 47- 49 1 6
.MF.YMFC209:17DADA44116B5998 3785 3785 51 50- 52 1 6
.MF.YMFC209:17DADA44116B5998 3807 3807 54 53- 55 1 6
.MF.YMFC209:17DADA44116B5998 3829 3829 58 56- 59 2 9
.MF.YMFC209:17DADA44116B5998 3860 3860 62 60- 62 2 7
.MF.YMFC209:17DADA44116B5998 3883 3883 64 63- 65 1 6
.MF.YMFC209:17DADA44116B5998 3906 3906 68 66- 68 2 7
.MF.YMFC209:17DADA44116B5998 4519 4519 98 98- 100 0 5
.MF.YMFC209:17DADA44116B5998 4760 4760 104 103- 105 1 7
.MF.YMFC209:17DADA44116B5998 4781 4781 109 106- 111 3 13
.MF.YMFC209:17DADA44116B5998 4822 4822 114 112- 115 2 7
.MF.YMFC209:17DADA44116B5998 4844 4844 118 116- 119 2 7
.MF.YMFC209:17DADA44116B5998 4866 4866 122 120- 123 2 7
.MF.YMFC209:17DADA44116B5998 4888 4888 126 124- 127 2 9
.MF.YMFC209:17DADA44116B5998 4919 4919 130 128- 131 2 7
.MF.YMFC209:17DADA44116B5998 4942 4942 134 132- 135 2 8
.MF.YMFC209:17DADA44116B5998 4967 4967 138 136- 139 2 7
.MF.YMFC209:17DADA44116B5998 5022 5022 141 140- 142 1 5
.MF.YMFC211:17DAD94E0524B94E 4007 4007 48 47- 49 1 6
.MF.YMFC211:17DAD94E0524B94E 4024 4024 51 50- 52 1 6
.MF.YMFC211:17DAD94E0524B94E 4044 4044 54 53- 55 1 6
.MF.YMFC211:17DAD94E0524B94E 5610 5610 86 85- 87 1 6
.MF.YMFC211:17DAD94E0524B94E 5623 5623 89 88- 90 1 6
.MF.YMFC211:17DAD94E0524B94E 5637 5637 91 91- 93 0 5
.MF.YMFC211:17DAD94E0524B94E 5681 5681 95 94- 96 1 5
.MF.YMFC217:17DADBCF0A368F93 4214 4214 55 53- 56 2 7
.MF.YMFC217:17DADBCF0A368F93 4236 4236 59 57- 59 2 7
.MF.YMFC217:17DADBCF0A368F93 4258 4258 62 60- 62 2 7
.MF.YMFC217:17DADBCF0A368F93 4281 4281 67 63- 68 4 14
.MF.YMFC217:17DADBCF0A368F93 4322 4322 72 69- 72 3 9
.MF.YMFC217:17DADBCF0A368F93 4352 4352 75 73- 76 2 8
.MF.YMFC217:17DADBCF0A368F93 4374 4374 79 77- 80 2 7
.MF.YMFC217:17DADBCF0A368F93 4397 4397 83 81- 84 2 8
.MF.YMFC217:17DADBCF0A368F93 5669 5669 124 123- 125 1 5
.MF.YMFC219:17CBCBA51BBB7632 3937 3937 67 66- 68 1 5
.MF.YMFC220:17CBCC4601A8601C 3233 3233 40 39- 41 1 6
.MF.YMFC220:17CBCC4601A8601C 3254 3254 45 42- 46 3 12
.MF.YMFC220:17CBCC4601A8601C 3291 3291 48 47- 49 1 6
.MF.YMFC220:17CBCC4601A8601C 3313 3313 51 50- 52 1 6
.MF.YMFC220:17CBCC4601A8601C 3335 3335 54 53- 55 1 6
.MF.YMFC220:17CBCC4601A8601C 3357 3357 58 56- 59 2 9
.MF.YMFC220:17CBCC4601A8601C 3388 3388 62 60- 62 2 7
.MF.YMFC220:17CBCC4601A8601C 3411 3411 64 63- 65 1 6
.MF.YMFC220:17CBCC4601A8601C 3434 3434 68 66- 68 2 7
.MF.YMFC220:17CBCC4601A8601C 4054 4054 98 98- 100 0 5
.MF.YMFC220:17CBCC4601A8601C 4295 4295 104 103- 105 1 7
.MF.YMFC220:17CBCC4601A8601C 4316 4316 109 106- 111 3 13
.MF.YMFC220:17CBCC4601A8601C 4357 4357 113 112- 115 1 7
.MF.YMFC220:17CBCC4601A8601C 4379 4379 117 116- 119 1 7
.MF.YMFC220:17CBCC4601A8601C 4401 4401 121 120- 123 1 7
.MF.YMFC220:17CBCC4601A8601C 4423 4423 126 124- 127 2 9
.MF.YMFC220:17CBCC4601A8601C 4454 4454 130 128- 131 2 8
.MF.YMFC220:17CBCC4601A8601C 4477 4477 134 132- 135 2 8
.MF.YMFC220:17CBCC4601A8601C 4502 4502 138 136- 139 2 7
.MF.YMFC220:17CBCC4601A8601C 4557 4557 141 140- 142 1 5
.MF.YMFGEPU:163ED25B0B0D8340 1379 0 15 12- 17 3 13
.MF.YMFGEPU:163ED25B0B0D8340 1441 0 19 18- 20 1 5
.MF.YMFINFO:17B4CF1006234E55 505 505 9 8- 10 1 5
.MF.YMFINFO:17B4CF1006234E55 1108 1108 13 12- 16 1 11
.MF.YMFINFO:17B4CF1006234E55 1722 1722 17 17- 19 0 5
.MF.YMFINFO:17B4CF1006234E55 1765 1765 20 20- 22 0 5
.MF.YMFINFO:17B4CF1006234E55 1794 1794 23 23- 25 0 5
.MF.YMFINFO:17B4CF1006234E55 1833 1833 26 26- 28 0 5
.MF.YMFINFO:17B4CF1006234E55 1911 1911 30 29- 31 1 7
.MF.YMFINFO:17B4CF1006234E55 1962 1962 33 32- 34 1 5
.MF.YMFINFO:17B4CF1006234E55 2243 2243 42 41- 43 1 7
.MF.YMFINFO:17B4CF1015EB934D 505 505 9 8- 10 1 5
.MF.YMFINFO:17B4CF1015EB934D 1101 1101 13 12- 16 1 11
.MF.YMFINFO:17B4CF1015EB934D 1715 1715 17 17- 19 0 5
.MF.YMFINFO:17B4CF1015EB934D 1758 1758 20 20- 22 0 5
.MF.YMFINFO:17B4CF1015EB934D 1787 1787 23 23- 25 0 5
.MF.YMFINFO:17B4CF1015EB934D 1826 1826 26 26- 28 0 5
.MF.YMFINFO:17B4CF1015EB934D 1904 1904 30 29- 31 1 7
.MF.YMFINFO:17B4CF1015EB934D 1955 1955 33 32- 34 1 5
.MF.YMFINFO:17B4CF1015EB934D 2236 2236 42 41- 43 1 7
$#out 20100210 14:32:45
}¢--- A540769.WK.SQL(CATSTMT0) cre=2010-02-10 mod=2010-02-10-16.38.52 A540769 ---
-- test view for catStmt: show more debug infos
--
set current sqlid = 'S100447';
set current path = 'OA1A';
drop view A540769.CATSTMT;
create view A540769.CATSTMT as
-- stG groups sysPackStmt rows into statments
-- each stmt has a range of seqNo, neither gaps nor overlaps
-- stmtNo and stmtNoI are often equal, but not always||
with stG as
( select location, collid, name, contoken, stmtNo, stmtNoI,
min(seqNo) seqMin, max(seqNo) seqMax
from sysibm.sysPackStmt
-- if all 0 internal (pseudo) statements => ignore
where (seqno <> 0 or stmtNo <> 0 or stmtNoI <> 0)
-- select here |
and location = '' and collid = 'MF'
group by location, collid, name, contoken,
stmtNo, stmtNoI
)
-- now use recursive stT to concatenate text junks up to 29000 chars
, stT (lv, sq, sLen, tLen, tx,
location, collid, name, contoken, stmtNo, stmtNoI,
seqMin, seqMax, explainable
) as
(
select 0, s.seqNo sq, fosC2I4(substr(stmt, 1, 4)) sLen,
fosC2I4(substr(stmt, 5, 4)) tLen,
varchar(substr(stmt, 9, min(length(stmt)-8,
int(fosC2I4(substr(stmt, 5, 4))))), 29000) tx,
g.*, s.explainable
from stG g, sysibm.sysPackStmt s
where s.location = g.location and s.collid = g.collid
and s.name = g.name and s.contoken = g.contoken
and s.seqNo = g.seqMin
union all
select lv+1,
s.seqNo, sLen, tLen, varchar(tx || substr(stmt, 1,
int(min(length(stmt), t.tLen-length(tx), 29000-length(tx)
))), 29000),
t.location, t.collid, t.name, t.contoken,
t.stmtNo, t.stmtNoI,
t.seqMin, t.seqMax,
t.explainable
from stT t, sysibm.sysPackStmt s
where s.location = t.location and s.collid = t.collid
and s.name = t.name and s.contoken = t.contoken
and s.seqNo = t.sq+1
and t.sq < t.seqMax and t.lv < 100000
and length(t.tx) < t.tLen and length(t.tx) < 29000
)
select location, collid, name, contoken, stmtNo, stmtNoI,
CASE WHEN left(tx, 1) >= 'a' then tx
else cast(CAST(tx AS VARCHAR(29000) CCSID 1208)
AS VARCHAR(29000) CCSID EBCDIC)
end tc,
lv, sq, sLen, tLen,
seqMin, seqMax,
explainable , substr(tx, 1, 1) t1
from stT
-- use only longest text of each statement
where length(tx) in (tLen, 29000)
;
select * from A540769.CATSTMT
where seqMax - seqMin > 1
order by location, collid, name, contoken, sq
;
}¢--- A540769.WK.SQL(CATSTOGR) cre=2010-10-01 mod=2010-11-16-10.08.51 A540769 ---
select substr(stgroup,1, 10), count(*) "#DBs",
min(createdTs) "creation", max(createdTS)
from sysibm.sysDatabase
group by stGroup
order by stGroup
with ur
;
select substr(storName, 1, 10), count(*) "#tbParts",
min(createdTs) "creation", max(createdTS)
from sysibm.sysTablePart
group by storName
order by storName
with ur
;
select substr(storName, 1, 10), count(*) "#ixParts",
min(createdTs) "creation", max(createdTS)
from sysibm.sysIndexPart
group by storName
order by storName
with ur
; x
select count(*), storname
from sysibm.systablePart
group by storName
with ur
}¢--- A540769.WK.SQL(CATSTOR) cre=2010-02-02 mod=2010-02-02-12.48.57 A540769 ---
select char('<' || storName || '>', 10), count(*)
from sysIbm.sysTablePart
group by length(storName), storName
WITH UR
;
select char('<' || storName || '>', 10), count(*)
from sysIbm.sysTablePart
group by char('<' || storName || '>', 10)
WITH UR
;
select char('<' || storName || '>', 10), count(*)
from sysIbm.sysTablePart
group by storName
WITH UR
;
select substr('<' || storName || '>', 1, 10), count(*)--length(storName)
from sysIbm.sysTablePart
group by '<' || storName || '>'
with ur
;
X
select sg, count(*)
from
( select substr('<' || storName || '>', 1, 10) sg
from sysIbm.sysTablePart
) SG
group by sg
with ur
;
X
}¢--- A540769.WK.SQL(CATSYN) cre=2012-04-16 mod=2016-11-03-09.19.58 A540769 ----
select 'set current sqlid = ''' || strip(creator) || '''; '
|| 'drop synonym ' || strip(name)
|| '; --> ' || strip(tbcreator) || '.' || strip(tbname)
|| ' ' || char(createdts)
from sysibm.syssynonyms
where tbName like 'TAV%'
union all select 'set current sqlid = ''S100447'';'
from sysibm.sysDummy1
union all select 'drop alias ' || strip(creator) || '.' || strip(name)
|| '; --> ' || strip(tbcreator) || '.' || strip(tbname)
|| ' ' || char(createdts)
from sysibm.sysTables
where type = 'A'
and tbName like 'TAV%' and creator not like 'OA1%'
union all select 'drop view ' || strip(creator) || '.' || strip(name)
|| '; --' || char(createdts)
from sysibm.sysTables
where type = 'V'
and name like 'V11'
$#out 20120418 10:05:00
COL1
set current sqlid = 'S100447';
1 rows fetched: select 'set current sqlid = ''' || strip(creator) || '''; ...
$#out 20120418 10:04:38
sqlCode 0: set current sqlid = 'A467700'
sqlCode 0: drop synonym TAV001A1
}¢--- A540769.WK.SQL(CATTAB) cre=2006-08-04 mod=2007-04-23-16.36.44 F540769 ----
select char(strip(creator) || '.' || strip(Name), 24) "table",
char(strip(dbName) || '.' || strip(tsName), 17) "db.tablspace",
cardf "rows"
from sysibm.sysTables
where type = 'T' and dbName like 'BJA_0001'
order by 1
;
x
select left(dbname, 10)|| strip(creator) || '.' || strip(name)
from sysibm.systables
where type = 'T' and dbName like 'RP%'
order by dbname asc, creator asc, name asc
;
group by l
select s.l, count(*)
from
(
select length(strip(name)) l
from sysibm.systables
where type = 'T' and creator like 'OA1%'
) s
group by l
}¢--- A540769.WK.SQL(CATTABDU) cre=2006-06-28 mod=2006-06-28-10.49.44 F540769 ---
SELECT STRIP(NAME), COUNT(*), MIN(STRIP(CREATOR)), MAX(STRIP(CREATOR))
FROM SYSIBM.SYSTABLES
WHERE TYPE LIKE 'T'
GROUP BY NAME
HAVING COUNT(*) > 1
ORDER BY NAME
}¢--- A540769.WK.SQL(CATTABHI) cre=2006-09-26 mod=2006-09-26-09.19.44 F540769 ---
select *
from sysibm.systables
where name = 'VEXDA002'
order by name, statstime desc
}¢--- A540769.WK.SQL(CATTABLE) cre=2006-05-24 mod=2006-07-07-10.14.23 F540769 ---
SELECT LENGTH(CREATOR), LENGTH(NAME),
STRIP(CREATOR) || '.' || STRIP(NAME)
|| ' ' || TYPE
FROM SYSIBM.SYSTABLES
WHERE NAME LIKE 'VSV01%'
ORDER BY CREATOR ASC, NAME ASC
;
XELECT 'UNION SELECT COUNT(*), '
|| '''' || STRIP(CREATOR) || '.' || STRIP(NAME) || ''''
|| ' FROM ' || STRIP(CREATOR) || '.' || STRIP(NAME)
FROM SYSIBM.SYSTABLES
WHERE DBNAME LIKE 'DDI0%'
ORDER BY CREATOR ASC, NAME ASC
}¢--- A540769.WK.SQL(CATTABS) cre=2006-09-04 mod=2006-09-04-17.57.56 F540769 ---
select name, creator, tsName, dbname
from sysibm.systables
-- where dbName = 'DA540769'
where type = 'T' and name = 'TRE525A1' and creator = 'OA1A'
}¢--- A540769.WK.SQL(CATTABXX) cre=2006-06-28 mod=2006-06-28-15.29.32 F540769 ---
SELECT LEFT(CREATOR, 8),LEFT(NAME, 12), LEFT(TSNAME, 8), LEFT(DBNAME, 8)
FROM SYSIBM.SYSTABLES
WHERE TYPE = 'T'
AND DBNAME IN (
'BP01A1L',
'BS01A1L',
'CD01A1L',
'CE01A1L',
'ED02A1L',
'ED05A1L',
'ED06A1L',
'EV01A1L',
'FA01A1L',
'FF01A1L',
'GE01A1L',
'GE02A1L',
'GE03A1L',
'GE04A1L',
'GM01A1L',
'HP04A1L',
'KS01A1L',
'KS03A1L',
'KS05A1L',
'KS06A1L',
'KS07A1L',
'KS08A1L',
'NF01A1L',
'NF02A1L',
'NF03A1L',
'NH01A1L',
'NP01A1L',
'OE01A1L',
'OS01A1L',
'OS58A1L',
'OS59A1L',
'OS70A1L',
'PT02A1L',
'PX01A1L',
'PX02A1L',
'PX06A1L',
'PX99A1L',
'RE01A1L',
'RP01A1L',
'RP02A1L',
'RP03A1L',
'RP04A1L',
'RP09A1L',
'RR01A1L',
'RT01A1L',
'RT03A1L',
'RT04A1L',
'SA02A1L',
'SA03A1L',
'SA04A1L',
'SE02A1L',
'SF01A1L',
'SI01A1L',
'SM10A1L',
'SY01A1L',
'TA01A1L',
'UD01A1L',
'UF01A1L',
'VT01A1L',
'VT03A1L',
'WB01A1L',
'WB02A1L',
'WB03A1L',
'WB04A1L',
'WL06A1L',
'ZV01')
ORDER BY NAME, DBNAME
}¢--- A540769.WK.SQL(CATTB) cre=2010-08-26 mod=2013-09-19-16.38.56 A540769 -----
select length(name), name || 'x', t.*
from sysibm.systables t
where name = 'VNI250A101A'
; ;
select length(tbName), tbName || 'x'
from sysibm.sysIndexes
where tbname = 'TWU101A1'
;
}¢--- A540769.WK.SQL(CATTBCLU) cre=2011-07-19 mod=2011-07-19-15.47.15 A540769 ---
select substr(strip(t.creator) || '.' || strip(t.name), 1, 20),
i.*
from sysibm.sysTables t
left join ( select count(*) "ixCnt",
sum(case when clustering = 'Y' then 1 else 0 end) "cluCnt",
sum(case when clustering = 'N' then 1 else 0 end) "NoClCnt",
max(case when clustering <> 'Y' then ''
else substr(strip(j.creator) || '.' || strip(j.name)
, 1, 20) end) "cluIx",
tbCreator, tbName
from sysibm.sysIndexes j
group by tbcreator, tbname
) i
on i.tbCreator = t.creator and i.tbName = t.name
where t.dbName like 'VV%' and t.type = 'T'
with ur
}¢--- A540769.WK.SQL(CATTBCNT) cre=2008-06-16 mod=2011-12-23-11.50.52 A540769 ---
set current sqlid = 's100447'; 00000114
CREATE VIEW T.T AS SELECT 1 #a# from sysibm.sysDummy1; 00000213
rollback;;; 00000312
select left(dbName, 1), count(distinct dbName) dbs, 00000411
count(*) tbs 00000511
from sysibm.sysTables 00000611
group by left(dbName, 1) 00000711
order by 1 00000811
with ur 00000911
;;; 00001011
select * 00001104
from 00002004
( 00003004
select s.dbName, s.name, s.type, min(s.nTables) mi, max(s.nTables) ma, 00010008
count(*) cnt, 00010104
sum(case when t.name is null then 0 else 1 end) tbs 00011004
from sysibm.sysTablespace s 00020003
left join sysibm.systables t 00021003
on t.dbName = s.dbName and t.tsName = s.name 00030003
and t.type in ('T', 'M') 00031010
group by s.dbName, s.name, s.type 00050009
) c 00060005
where (mi <> ma or mi <> tbs) 00080007
}¢--- A540769.WK.SQL(CATTBCS) cre=2011-06-10 mod=2011-06-10-15.26.16 A540769 ---
-- rows and space per table 00010000
set current path oa1t; 00020004
select substr(fosFmte7(cardf), 1, 7) rows, 00030005
substr(fosFmte7(spacef*1024), 1, 7) bytes, 00040005
smallInt(recLength) recLen, 00050004
smallInt(avgRowLen) avgLen, 00060004
substr(strip(creator) || '.' || strip(name), 1, 20) "cr.tb", 00070004
substr(strip(dbname) || '.' || strip(tsName), 1, 16) "db.ts", 00080004
statstime 00090004
from sysibm.systables 00100001
where type = 'T' and dbName like 'NI%' 00110006
order by creator, name 00120001
; 00130001
select s.dbName, s.name, s.type, min(s.nTables) mi, max(s.nTables) ma, 00140000
count(*) cnt, 00150000
sum(case when t.name is null then 0 else 1 end) tbs 00160000
from sysibm.sysTablespace s 00170000
left join sysibm.systables t 00180000
on t.dbName = s.dbName and t.tsName = s.name 00190000
and t.type in ('T', 'M') 00200000
group by s.dbName, s.name, s.type 00210000
) c 00220000
where (mi <> ma or mi <> tbs) 00230000
}¢--- A540769.WK.SQL(CATTBIX) cre=2011-01-24 mod=2011-01-24-13.59.07 A540769 ---
with a as
(
select count(all uniqueRule) cIx,
max(case when uniqueRule = 'C' then uniqueRule else ' ' end)
|| max(case when uniqueRule = 'D' then uniqueRule else ' ' end)
|| max(case when uniqueRule = 'G' then uniqueRule else ' ' end)
|| max(case when uniqueRule = 'P' then uniqueRule else ' ' end)
|| max(case when uniqueRule = 'U' then uniqueRule else ' ' end)
|| max(case when uniqueRule = 'R' then uniqueRule else ' ' end)
|| max(case when uniqueRule = 'X' then uniqueRule else ' ' end) u,
max(case when uniqueRule in ('C','D','G','P','U','R','X')
then '' else UniqueRule end) other
from sysibm.sysTables t
left Join sysibm.sysIndexes i
on i.tbCreator = t.creator and i.tbName = t.name
where t.type = 'T'
group by t.creator, t.name
)
select count(*) tbs, sum(cIx) ixs, u, other
from a
group by u, other
order by 1 desc
with ur
;;;
with a as
(
select count(all uniqueRule) cIx, t.dbName
from sysibm.sysTables t
left Join sysibm.sysIndexes i
on i.tbCreator = t.creator and i.tbName = t.name
where t.type = 'T'
group by t.creator, t.name, t.dbName
)
select count(*), dbName
from a where cIx = 0
group by dbName
order by 1 desc
;;;
}¢--- A540769.WK.SQL(CATTBIXP) cre=2015-11-26 mod=2015-11-26-10.34.23 A540769 ---
-- count tables space types incl. tb/ix partition muli Tabel ... ------
set current application compatibility 'V11R1';
with x as
( select s.*
, value ( ( select max(t.partKeyCOLNUM)
from sysibm.sysTables t
where t.dbName = s.dbname and t.tsName = s.name
and t.type not in ('A', 'V')
) , 0) partKeyCol
from sysibm.sysTablespace s
)
, t as
( select case when partitions = 0 and segsize = 0 then 'simple'
when partitions = 0 then 'segmented'
else type end
|| case when partitions = 0 or maxPartitions > 0 then ''
when partKeyCol = 0 then ' ixPart'
else ' tbPart' end
|| case when nTables = 1 then ''
when nTables < 1 then ' noTb'
else ' multiTb' end ty
, x.*
from x
)
select count(*), ty, sum(nTables) nTables
, min(substr(strip(dbName) || '.' || name, 1, 30)), min(type)
, max(strip(dbName) || '.' || name)
from t
group by rollup(ty)
;
-- list of ix base tables, including parititoning index ---------------
with t as
( select t.*
, ( select strip(i.creator) || '.' || i.name
from sysibm.sysIndexes i
join sysibm.sysIndexPart p
on i.creator = p.ixcreator and i.name = p.ixname
and p.partition = 1
where t.creator = i.tbCreator and t.name = i.tbName
) ix
from sysibm.sysTables t join sysibm.sysTablespace s
on t.dbName = s.dbName and t.tsName = s.name
where t.type not in ('A', 'V')
and s.type in (' ', 'L') and partitions > 0
and t.partKeyCOLNUM <= 0
)
select char(strip(creator) || '.' || name, 40) tb, ix, t.*
from t
order by creator, name
;x;
}¢--- A540769.WK.SQL(CATTBIXR) cre=2011-09-06 mod=2011-09-06-17.46.28 A540769 ---
set current path oa1t;
with ti (cr, nm, ty, tbCr, tb, spc, rows, parts ) as
(
select t.creator, t.name, 't', t.creator, t.name,
sum(float(r.space)) * 1024, sum(r.totalRows), count(*)
from sysibm.systables t
join sysibm.sysTablespace s
on s.dbName = t.dbName and s.name = t.tsName
left join sysibm.sysTablespaceStats r
on r.dbName = t.dbName and r.name = t.tsName
and r.dbId = s.dbId and r.psId = s.psId
group by t.creator, t.name
union all select i.creator, i.name, 'i', tbCreator, tbName,
sum(float(r.space)) * 1024, sum(r.totalEntries), count(*)
from sysibm.sysIndexes i
left join sysibm.sysIndexspaceStats r
on r.creator = i.creator and r.name = i.name
group by i.creator, i.name, tbCreator, tbName
)
select substr(strip(cr) || '.' || strip(nm), 1, 16), ty,
substr(fosFmte7(spc), 1, 7) bytes,
substr(fosFmte7(rows), 1, 7) rows,
parts, tbCr, tb
from ti where tb like 'TBE%'
and (tb like 'TBE009%'
or tb like 'TBE01%'
or tb like 'TBE11%')
order by tbCr, tb, ty desc, cr, nm
}¢--- A540769.WK.SQL(CATTBKE) cre=2012-10-11 mod=2012-10-11-17.43.04 A540769 ---
-- simple Kennzahlen pro Table aus sysTables
--
set current path = OA1P;
select substr(strip(creator) || '.' || name, 1, 20),
substr(fosFmtE7(spacef*1024), 1, 7) "bytes",
substr(fosFmtE7(cardf),1, 7) "rows",
smallInt(recLength) "maxRowLen",
smallInt(avgRowLen) "avgRowLen"
from sysibm.sysTables
where creator = 'OA1P' and name like 'TNI%'
order by name
with ur
}¢--- A540769.WK.SQL(CATTBL) cre=2010-06-25 mod=2010-06-25-12.23.01 A540769 ----
select t.status, t.tableStatus, t.*
from sysibm.sysTables t
where name = 'TRP143A1'
}¢--- A540769.WK.SQL(CATTBMRW) cre=2013-09-12 mod=2013-09-12-09.13.49 A540769 ---
select maxRows, pgSize, bPool, s.*
from sysibm.systablespace s
where maxRows not in (0,255)
order by maxrows
}¢--- A540769.WK.SQL(CATTBPA) cre=2009-12-03 mod=2009-12-03-16.54.06 A540769 ---
select storName, length(storName), hex(storName),
stortype, length(stortype), hex(stortype), p.*
from sysibm.sysTablePart p
where length(storName) > length(strip(storName))
and dbName like 'VV%'
and tsName in (
'VDPS004'
,'VDPS078'
,'VDPS121'
,'VDPS168'
,'VDPS169'
,'VDPS185'
,'VDPS295'
,'VDPS296'
,'VDPS298'
,'VDPS321'
,'VDPS393'
)
;
x
select storName, length(storName), hex(storName), p.*
from sysibm.sysTablePart p
where (dbName = 'DGDB0125' and tsName = 'A012A')
or (dbName = 'DGDB9998' and tsName = 'A937A')
;
x
select storName, length(storName), hex(storName), p.*
from sysibm.sysTablePart p
where (dbName = 'TP01A1T' and tsName = 'A012A')
or (dbName = 'DA540769' and tsName = 'A937A')
}¢--- A540769.WK.SQL(CATTBPAH) cre=2011-11-03 mod=2011-11-03-09.34.50 A540769 ---
select dbName db
, count(*) tot
, sum(case when year(statstime) = 2011 then 1 else 0 end) y11
, sum(case when year(statstime) = 2010 then 1 else 0 end) y10
, sum(case when year(statstime) = 2009 then 1 else 0 end) y09
, sum(case when year(statstime) = 2008 then 1 else 0 end) y08
, sum(case when year(statstime) = 2007 then 1 else 0 end) y07
, sum(case when year(statstime) = 2006 then 1 else 0 end) y06
, sum(case when year(statstime) < 2006 then 1 else 0 end) b05
from sysibm.SYSTABLEPART_HIST
group by dbName
with ur
;;;
}¢--- A540769.WK.SQL(CATTBPR) cre=2014-11-17 mod=2014-11-17-15.41.12 A540769 ---
select length(profile_text), substr(profile_text,1, 2000)
, p.*
from SYSIBM.SYSTABLES_PROFILES p
;x
insert into SYSIBM.SYSTABLES_PROFILES (schema, tbName, profile_text,
profile_type, profile_update
)
values ('A540769', 'F2PLAN_TABLE' , 'profile text usw.'
, 'AUTO', current timestamp)
-- delete from SYSIBM.SYSTABLES_PROFILES
;
commit
}¢--- A540769.WK.SQL(CATTBRST) cre=2011-05-31 mod=2011-05-31-16.51.10 A540769 ---
set current sqlid = 'S100447';
-- generate sql for list of tables
-- select count and max(column generated ...) from table
-- alter table alter column restart 1;
with c as
( select *
from sysibm.sysColumns c
where tbName like 'TSV31%' and tbCreator = 'OA1A'
and default between 'D' and 'J'
)
select 'select count (*), max(' || strip(name) || ') from '
|| strip(tbCreator) || '.' || strip(tbName) || ';' , c.*
from c
union all
select 'alter table ' || strip(tbCreator) || '.' || strip(tbName)
|| ' alter ' || strip(name) || ' restart with 1;', c.*
from c
order by 1
;
select count (*), max(BUSINESSUNITID) from OA1A.TSV310A1;
select count (*), max(FEEID) from OA1A.TSV319A1;
select count (*), max(MMINCOMEID) from OA1A.TSV316A1;
select count (*), max(MMPOSID) from OA1A.TSV315A1;
select count (*), max(SACID) from OA1A.TSV317A1;
select count (*), max(SACINCOMEID) from OA1A.TSV318A1;
select count (*), max(SECPOSID) from OA1A.TSV313A1;
select count (*), max(SECTXID) from OA1A.TSV314A1;
select count (*), max(SECURITYID) from OA1A.TSV312A1;
select count (*), max(TAXCLIENTID) from OA1A.TSV311A1;
;;;
alter table OA1A.TSV310A1 alter BUSINESSUNITID restart with 1;
alter table OA1A.TSV311A1 alter TAXCLIENTID restart with 1;
alter table OA1A.TSV312A1 alter SECURITYID restart with 1;
alter table OA1A.TSV313A1 alter SECPOSID restart with 1;
alter table OA1A.TSV314A1 alter SECTXID restart with 1;
alter table OA1A.TSV315A1 alter MMPOSID restart with 1;
alter table OA1A.TSV316A1 alter MMINCOMEID restart with 1;
alter table OA1A.TSV317A1 alter SACID restart with 1;
alter table OA1A.TSV318A1 alter SACINCOMEID restart with 1;
alter table OA1A.TSV319A1 alter FEEID restart with 1;
;;;
}¢--- A540769.WK.SQL(CATTBSTA) cre=2010-09-13 mod=2010-09-13-17.37.24 A540769 ---
select *
from sysibm.sysTabStats
where owner = 'OA1A' and name = 'TMF150A1'
order by statsTime desc
with ur
}¢--- A540769.WK.SQL(CATTP) cre=2010-08-27 mod=2010-08-27-16.07.57 A540769 -----
select count(*), pageSave
from sysibm.sysTablePart p
where p.compress <> 'Y'
group by pageSave
with ur
}¢--- A540769.WK.SQL(CATTPART) cre=2014-08-19 mod=2014-08-19-12.51.46 A540769 ---
select vCatName, count(*)
, sum(case when createdTs > current timestamp- 50 days
then 1 else 0 end)
from sysibm.sysTablePart
group by vCatName
;
select vCatName, count(*)
, sum(case when createdTs > current timestamp- 50 days
then 1 else 0 end)
from sysibm.sysIndexPart
group by vCatName
;
}¢--- A540769.WK.SQL(CATTPDEN) cre=2013-10-04 mod=2013-10-04-15.18.27 A540769 ---
with p as
(
select
case when space > 0 then '>0' else strip(char(space)) end spc
, case when spaceF > 0 then '>0' else strip(char(spaceF)) end spcF
from sysibm.sysTablePart
)
select spc, spcF, count(*)
from p
group by spc, spcF
with ur
}¢--- A540769.WK.SQL(CATTPDSN) cre=2010-07-20 mod=2010-07-21-15.42.21 A540769 ---
-- list all files of a tableSpacePartition:
-- iPrefix I000 or J000
-- partition OR dsnNum in last qualifier
-- if partition >= 1000 swap A TO BCDE in last qualif
--
-- NOT Done: hlq from storageGroup - hard coded, change manually
--
-- S100447.DSLOCATE(DSNAME) to check whether it is present
--
with n as
( select row_number() over () n
from sysibm.sysColumns
fetch first 1000 rows only
)
, d as
(
select 'DBAF.DSNDBC.' || strip(dbName) || '.' || strip(tsName) || '.'
|| iPREFIX || '0001.'
|| translate(strip(char(partition/1000)), 'ABCDEF', '012345')
|| right('00' || strip(char(
case when partition > 0 then partition
when n is not null then n
else 1 end)), 3) dsn
, p.*
from sysIbm.sysTablePart p left join n
on n <= dsNum
)
select substr(S100447.DSLOCATE(char(DSN, 44)), 1, 10)
, dbName, tsName, partition, iPrefix , storType, storName
from d
where dbName like 'DA54076%' -- 'VV28A1A%'
order by dbName, tsName, partition
;; ------------------------------------------------------------------
; to find testCases:
select * from sysibm.sysTablespace
order by partitions desc
fetch first 100 rows only
with ur
;;
select * from sysibm.sysTablePart
order by dsNum desc
fetch first 100 rows only
with ur
;;
}¢--- A540769.WK.SQL(CATTR) cre=2012-08-29 mod=2012-08-29-17.40.48 A540769 -----
select *
from sysibm.sysTriggers
where trigTime like 'I%'
}¢--- A540769.WK.SQL(CATTRIST) cre=2010-06-29 mod=2010-07-05-16.33.07 A540769 ---
$>A540769.WK.TEXV(CATTRIST)
call sqlConnect dbtf
call sqlPreOpen 1, "select",
"strip(tbOwner) || '.' || strip(tbName),",
"strip(schema) || '.' || strip(Name),",
"trigTime || trigEvent || granularity, seqNo, text",
"from sysibm.sysTriggers" ,
"order by tbOwner, tbName, schema, name, seqno"
do while sqlFetchInto(1, ':tb, :tr, :teg, :sn, :tx')
$$- left(tb, 30) left(tr, 40) teg sn tx
end
call sqlDisconnect
$#end
;x;
select substr(strip(tbOwner) || '.' || strip(tbName), 1, 20) "tb",
substr(strip(schema) || '.' || strip(Name), 1, 30) "tri",
trigTime || trigEvent || granularity "tig", seqNo, strip(text)
from sysibm.sysTriggers
order by tbOwner, tbName, schema, name, seqno
;x;
select left(text, 6), count(*)
from sysibm.sysTriggers
group by left(text, 6)
;x;
$#out 20100705 16:32:57
$#out 20100629 10:12:16
$#out 20100629 10:10:57
A234579.TEXCEPTIONS_TS DB2RTS.INS1 BIR 1 CR
DB2PM.BATCHCONF DB2PM.BC_DEL04 ADR 1 CR
DB2PM.BATCHCONF DB2PM.BC_INS00 AIR 1 CR
DB2PM.BATCHCONF DB2PM.BC_INS01 BIR 1 CR
DB2PM.BATCHCONF DB2PM.BC_INS06 AIR 1 CR
DB2PM.BATCHCONF DB2PM.BC_INS08 BIR 1 CR
DB2PM.BATCHCONF DB2PM.BC_INS10 BIR 1 CR
DB2PM.BATCHCONF DB2PM.BC_INS11 AIR 1 CR
DB2PM.BATCHCONF DB2PM.BC_UPD02 BUR 1 CR
DB2PM.BATCHCONF DB2PM.BC_UPD03 AUR 1 CR
DB2PM.BATCHCONF DB2PM.BC_UPD05 AUR 1 CR
DB2PM.BATCHCONF DB2PM.BC_UPD07 AUR 1 CR
DB2PM.BATCHCONF DB2PM.BC_UPD09 AUR 1 CR
DB2PM.BATCHCONF DB2PM.BC_UPD12 AUR 1 CR
DB2PM.CONVERTCONF DB2PM.CC_DEL04 ADR 1 CR
DB2PM.CONVERTCONF DB2PM.CC_INS00 AIR 1 CR
DB2PM.CONVERTCONF DB2PM.CC_INS01 BIR 1 CR
DB2PM.CONVERTCONF DB2PM.CC_INS06 AIR 1 CR
DB2PM.CONVERTCONF DB2PM.CC_INS08 BIR 1 CR
DB2PM.CONVERTCONF DB2PM.CC_UPD02 BUR 1 CR
DB2PM.CONVERTCONF DB2PM.CC_UPD03 AUR 1 CR
DB2PM.CONVERTCONF DB2PM.CC_UPD05 AUR 1 CR
DB2PM.CONVERTCONF DB2PM.CC_UPD07 AUR 1 CR
DB2PM.CRDCONF DB2PM.CRD_DEL4 ADR 1 CR
DB2PM.CRDCONF DB2PM.CRD_INS0 AIR 1 CR
DB2PM.CRDCONF DB2PM.CRD_INS1 BIR 1 CR
DB2PM.CRDCONF DB2PM.CRD_INS6 BIR 1 CR
DB2PM.CRDCONF DB2PM.CRD_INS8 BIR 1 CR
DB2PM.CRDCONF DB2PM.CRD_UPD2 BUR 1 CR
DB2PM.CRDCONF DB2PM.CRD_UPD3 AUR 1 CR
DB2PM.CRDCONF DB2PM.CRD_UPD5 AUR 1 CR
DB2PM.CRDCONF DB2PM.CRD_UPD7 AUR 1 CR
DB2PM.CRDCONFTRACE DB2PM.CT_DEL01 ADR 1 CR
DB2PM.CRDCONFTRACE DB2PM.CT_UPD02 AUR 1 CR
DB2PM.DSINDEX DB2PM.DI_DEL01 BDR 1 CR
DB2PM.LOADCONF DB2PM.LC_DEL04 ADR 1 CR
DB2PM.LOADCONF DB2PM.LC_INS00 AIR 1 CR
DB2PM.LOADCONF DB2PM.LC_INS01 BIR 1 CR
DB2PM.LOADCONF DB2PM.LC_INS06 AIR 1 CR
DB2PM.LOADCONF DB2PM.LC_INS08 BIR 1 CR
DB2PM.LOADCONF DB2PM.LC_UPD02 BUR 1 CR
DB2PM.LOADCONF DB2PM.LC_UPD03 AUR 1 CR
DB2PM.LOADCONF DB2PM.LC_UPD05 AUR 1 CR
DB2PM.LOADCONF DB2PM.LC_UPD07 AUR 1 CR
DB2PM.PROCESS DB2PM.P_DEL04 ADR 1 CR
DB2PM.PROCESS DB2PM.P_INS00 AIR 1 CR
DB2PM.PROCESS DB2PM.P_INS01 BIR 1 CR
DB2PM.PROCESS DB2PM.P_INS11 BIR 1 CR
DB2PM.PROCESS DB2PM.P_UPD02 BUR 1 CR
DB2PM.PROCESS DB2PM.P_UPD03 AUR 1 CR
DB2PM.PROCESS DB2PM.P_UPD05 AUR 1 CR
DB2PM.PROCESS DB2PM.P_UPD06 AUR 1 CR
DB2PM.PROCESS DB2PM.P_UPD07 AUR 1 CR
DB2PM.PROCESS DB2PM.P_UPD08 AUR 1 CR
DB2PM.PROCESS DB2PM.P_UPD09 AUR 1 CR
DB2PM.PROCESS DB2PM.P_UPD10 AUR 1 CR
DB2PM.PROCESSEVEXCP DB2PM.PE_DEL03 ADR 1 CR
DB2PM.PROCESSEVEXCP DB2PM.PE_INS01 BIR 1 CR
DB2PM.PROCESSEVEXCP DB2PM.PE_INS05 BIR 1 CR
DB2PM.PROCESSEVEXCP DB2PM.PE_UPD02 AUR 1 CR
DB2PM.PROCESSEVEXCP DB2PM.PE_UPD04 AUR 1 CR
DB2PM.PROCESSGROUP DB2PM.PG_INS00 BIR 1 CR
DB2PM.PROCESSGROUP DB2PM.PG_INS01 BIR 1 CR
DB2PM.PROCESSGROUP DB2PM.PG_UPD02 BUR 1 CR
DB2PM.PROCESSGROUP DB2PM.PG_UPD03 AUR 1 CR
DB2PM.PROCESSLOG DB2PM.PL_DEL01 ADR 1 CR
DB2PM.PROCESSLOG DB2PM.PL_INS02 BIR 1 CR
DB2PM.PROCESSLOG DB2PM.PL_UPD03 AUR 1 CR
DB2PM.PROCESSLOG DB2PM.PL_UPD04 AUR 1 CR
DB2PM.QRY_GROUP DB2PM.QG_INS01 BIR 1 CR
DB2PM.QRY_GROUP DB2PM.QG_UPD02 BUR 1 CR
DB2PM.QRY_GROUP DB2PM.QG_UPD03 AUR 1 CR
DB2PM.QRY_QUERY DB2PM.Q_INS01 BIR 1 CR
DB2PM.QRY_QUERY DB2PM.Q_UPD02 BUR 1 CR
DB2PM.QRY_QUERY DB2PM.Q_UPD03 AUR 1 CR
DB2PM.ROT_CLUSTER DB2PM.RC_INS01 BIR 1 CR
DB2PM.ROT_CLUSTER DB2PM.RC_UPD02 BUR 1 CR
DB2PM.ROT_CLUSTER DB2PM.RC_UPD03 AUR 1 CR
DB2PM.ROT_GROUP DB2PM.RG_INS01 BIR 1 CR
DB2PM.ROT_GROUP DB2PM.RG_UPD02 BUR 1 CR
DB2PM.ROT_GROUP DB2PM.RG_UPD03 AUR 1 CR
DB2PM.ROT_ROT DB2PM.RR_INS01 BIR 1 CR
DB2PM.ROT_ROT DB2PM.RR_UPD02 BUR 1 CR
DB2PM.ROT_ROT DB2PM.RR_UPD03 AUR 1 CR
DB2PM.SQLPACONF DB2PM.PA_INS1 BIR 1 CR
DB2PM.SQLPACONF DB2PM.PA_INS2 AIR 1 CR
DB2PM.SQLPACONF DB2PM.PA_UPD1 BUR 1 CR
DB2PM.SQLPACONF DB2PM.PA_UPD2 AUR 1 CR
DB2PM.STEP DB2PM.S_DEL04 ADR 1 CR
DB2PM.STEP DB2PM.S_INS00 AIR 1 CR
DB2PM.STEP DB2PM.S_INS01 BIR 1 CR
DB2PM.STEP DB2PM.S_INS06 BIR 1 CR
DB2PM.STEP DB2PM.S_INS07 BIR 1 CR
DB2PM.STEP DB2PM.S_INS09 BIR 1 CR
DB2PM.STEP DB2PM.S_UPD02 BUR 1 CR
DB2PM.STEP DB2PM.S_UPD03 AUR 1 CR
DB2PM.STEP DB2PM.S_UPD05 AUR 1 CR
DB2PM.STEP DB2PM.S_UPD08 BUR 1 CR
DB2PM.STEP DB2PM.S_UPD10 BUR 1 CR
DB2PM.STEP DB2PM.S_UPD11 AUR 1 CR
DB2PM.STEPLOG DB2PM.SL_INS01 BIR 1 CR
DB2PM.STEPLOG DB2PM.SL_UPD02 AUR 1 CR
DB2PM.STEPLOG DB2PM.SL_UPD03 AUR 1 CR
DB2PM.STEPLOG DB2PM.SL_UPD04 AUR 1 CR
OA1T.TAV171A1 OA1T.AV171AAI BIR 1 CR
OA1T.TAV171A1 OA1T.AV171AAU BUR 1 CR
OA1T.TAV172A1 OA1T.AV172AAI BIR 1 CR
OA1T.TAV172A1 OA1T.AV172AAU BUR 1 CR
OA1T.TDI040A1 OA1T.DI040ABI BIR 1
OA1T.TDI040A1 OA1T.DI040DBD BDR 1
OA1T.TDI040A1 OA1T.DI040DBI BIR 1
OA1T.TDI040A1 OA1T.DI040EBD BDR 1
OA1T.TDI040A1 OA1T.DI040LBD BDR 1
OA1T.TDI041A1 OA1T.DI041ABI BIR 1
OA1T.TDI041A1 OA1T.DI041BBI BIR 1
OA1T.TDI041A1 OA1T.DI041KBD BDR 1
OA1T.TDI041A1 OA1T.DI041KBI BIR 1
OA1T.TDI041A1 OA1T.DI041LBI BIR 1
OA1T.TDI041A1 OA1T.DI041MBI BIR 1
OA1T.TDI041A1 OA1T.DI041PBD BDR 1
OA1T.TDI042A1 OA1T.DI042ABI BIR 1
OA1T.TDI042A1 OA1T.DI042PBI BIR 1
OA1T.TDI043A1 OA1T.DI043ABI BIR 1 CR
OA1T.TDI043A1 OA1T.DI043GBI BIR 1
OA1T.TDI043A1 OA1T.DI043MBD BDR 1
OA1T.TDI043A1 OA1T.DI043NBD BDR 1
OA1T.TDI043A1 OA1T.DI043OBD BDR 1
OA1T.TDI045A1 OA1T.DI045CBI BIR 1
OA1T.TDI045A1 OA1T.DI045OBI BIR 1
OA1T.TDI045A1 OA1T.DI045RBI BIR 1
OA1T.TDI049A1 OA1T.DI049ABI BIR 1
OA1T.TDI049A1 OA1T.DI049QBI BIR 1
OA1T.TDI050A1 OA1T.DI050ABI BIR 1
OA1T.TDI050A1 OA1T.DI050NBI BIR 1
OA1T.TDI050A1 OA1T.DI050QBD BDR 1
OA1T.TDI050A1 OA1T.DI050RBD BDR 1
OA1T.TDI052A1 OA1T.DI052ABI BIR 1
OA1T.TDI053A1 OA1T.DI053ABI BIR 1
OA1T.TDI054A1 OA1T.DI054ABI BIR 1
OA1T.TDI054A1 OA1T.DI054EBI BIR 1
OA1T.TDI056A1 DI05A1A.DI056ABI BIR 1 CR
OA1T.TDT011A1 OA1T.DT011ABI BIR 1 CR
OA1T.TDT011A1 OA1T.DT011ABU BUR 1 CR
OA1T.TKD001A1 OA1T.KD001A1BI1 BIR 1
OA1T.TKD001A1 OA1T.KD001A1BI3 BUR 1
OA1T.TKD100A1 OA1T.KD100HAD ADR 1 CR
OA1T.TKD100A1 OA1T.KD100HAU AUR 1 CR
OA1T.TKD101A1 OA1T.KD101HAD ADR 1 CR
OA1T.TKD101A1 OA1T.KD101HAU AUR 1 CR
OA1T.TKD102A1 OA1T.KD102HAD ADR 1 CR
OA1T.TKD102A1 OA1T.KD102HAU AUR 1 CR
OA1T.TKD103A1 OA1T.KD103HAD ADR 1 CR
OA1T.TKD103A1 OA1T.KD103HAU AUR 1 CR
OA1T.TKD104A1 OA1T.KD104HAD ADR 1 CR
OA1T.TKD104A1 OA1T.KD104HAU AUR 1 CR
OA1T.TKD105A1 OA1T.KD105HAD ADR 1 CR
OA1T.TKD105A1 OA1T.KD105HAU AUR 1 CR
OA1T.TNI130A101A OA1T.NI132AAI AIR 1 CR
OA1T.TNI130A101A OA1T.NI132AAU AIR 1 CR
OA1T.TNI140A101A OA1T.NI142AAI AIR 1 CR
OA1T.TNI140A101A OA1T.NI142AAU AIR 1 CR
OA1T.TNI300A101A OA1T.NI300HAD ADR 1 CR
OA1T.TNI300A101A OA1T.NI300HAU AUR 1 CR
OA1T.TNI613A101A OA1T.NI613HAD ADS 1 CR
OA1T.TNI613A101A OA1T.NI613HAU AUS 1 CR
OA1T.TNI660A101A OA1T.NI660AAI AIR 1 CR
OA1T.TNI702A1 OA1T.NI702AAI BIR 1 CR
OA1T.TNI702A1 OA1T.NI702AAU BUR 1 CR
OA1T.TNI702A1 OA1T.NI702ABI BIR 1 CR
OA1T.TNI702A1 OA1T.NI702ABU BUR 1 CR
OA1T.TNI702A1 OA1T.NI702ACI BIR 1 CR
OA1T.TNI702A1 OA1T.NI702ACU BUR 1 CR
OA1T.TNI702A1 OA1T.NI702ADI BIR 1 CR
OA1T.TNI702A1 OA1T.NI702ADU BUR 1 CR
OA1T.TNI710A1 OA1T.NI710AAI BIR 1 CR
OA1T.TNI710A1 OA1T.NI710AAU BUR 1 CR
OA1T.TNI711A1 OA1T.NI711AAI BIR 1 CR
OA1T.TNI711A1 OA1T.NI711AAU BUR 1 CR
OA1T.TNI712A1 OA1T.NI712AAI BIR 1 CR
OA1T.TNI712A1 OA1T.NI712AAU BUR 1 CR
OA1T.TNI720A1 OA1T.NI720AAI BIR 1 CR
OA1T.TNI720A1 OA1T.NI720AAU BUR 1 CR
OA1T.TNI740A1 OA1T.NI740AAI BIR 1 CR
OA1T.TNI740A1 OA1T.NI740AAU BUR 1 CR
OA1T.TNI740A1 OA1T.NI740ABI BIR 1 CR
OA1T.TNI740A1 OA1T.NI740ABU BUR 1 CR
OA1T.TNI740A1 OA1T.NI740ACI BIR 1 CR
OA1T.TNI740A1 OA1T.NI740ACU BUR 1 CR
OA1T.TNI740A1 OA1T.NI740ADI BIR 1 CR
OA1T.TNI740A1 OA1T.NI740ADU BUR 1 CR
OA1T.TNI740A1 OA1T.NI740AEI BIR 1 CR
OA1T.TNI740A1 OA1T.NI740AEU BUR 1 CR
OA1T.TNI742A1 OA1T.NI742AAI BIR 1 CR
OA1T.TNI742A1 OA1T.NI742AAU BUR 1 CR
OA1T.TNI744A1 OA1T.NI744AAI BIR 1 CR
OA1T.TNI744A1 OA1T.NI744AAU BUR 1 CR
OA1T.TNI744A1 OA1T.NI744ABI BIR 1 CR
OA1T.TNI744A1 OA1T.NI744ABU BUR 1 CR
OA1T.TNI745A1 OA1T.NI745AAI BIR 1 CR
OA1T.TNI745A1 OA1T.NI745AAU BUR 1 CR
OA1T.TNI746A1 OA1T.NI746AAI BIR 1 CR
OA1T.TNI746A1 OA1T.NI746AAU BUR 1 CR
OA1T.TNI746A1 OA1T.NI746ABI BIR 1 CR
OA1T.TNI746A1 OA1T.NI746ABU BUR 1 CR
OA1T.TNI747A1 OA1T.NI747AAI BIR 1 CR
OA1T.TNI747A1 OA1T.NI747AAU BUR 1 CR
OA1T.TNI747A1 OA1T.NI747ABI BIR 1 CR
OA1T.TNI747A1 OA1T.NI747ABU BUR 1 CR
OA1T.TNI748A1 OA1T.NI748AAI BIR 1 CR
OA1T.TNI748A1 OA1T.NI748AAU BUR 1 CR
OA1T.TNI748A1 OA1T.NI748ABI BIR 1 CR
OA1T.TNI748A1 OA1T.NI748ABU BUR 1 CR
OA1T.TNI749A1 OA1T.NI749AAI BIR 1 CR
OA1T.TNI749A1 OA1T.NI749AAU BUR 1 CR
OA1T.TNI760A1 OA1T.NI760AAI BIR 1 CR
OA1T.TNI760A1 OA1T.NI760AAU BUR 1 CR
OA1T.TNI770A1 OA1T.NI770AAI BIR 1 CR
OA1T.TNI770A1 OA1T.NI770AAU BUR 1 CR
OA1T.TNI770A1 OA1T.NI770ABI BIR 1 CR
OA1T.TNI770A1 OA1T.NI770ABU BUR 1 CR
OA1T.TWB550A1 OA1T.TT550FFIS BIR 1 CR
OA1T.TWB550A1 OA1T.TT550FFUP BUR 1 CR
OA1T.TWB551A1 OA1T.TT551FFIS BIR 1 CR
OA1T.TWB551A1 OA1T.TT551FFUP BUR 1 CR
OA1T.TWB555A1 OA1T.TT555FFIS BIR 1 CR
OA1T.TWB555A1 OA1T.TT555FFUP BUR 1 CR
OA1T.TWB563A1 OA1T.TT563FFIS BIR 1 CR
OA1T.TWB563A1 OA1T.TT563FFUP BUR 1 CR
OA1T.TWB566A1 OA1T.TT566FFIS BIR 1 CR
OA1T.TWB566A1 OA1T.TT566FFUP BUR 1 CR
OA1T.TWB582A1 OA1T.TT582FFIS BIR 1 CR
OA1T.TWB582A1 OA1T.TT582FFUP BUR 1 CR
OA1T.TWB583A1 OA1T.TT583FFIS BIR 1 CR
OA1T.TWB583A1 OA1T.TT583FFUP BUR 1 CR
SAMJ.BASERS AU01A1T.BASERSI AIR 1 CR
SAMJ.BASERS AU01A1T.BASERSU AUR 1 CR
SAMJ.BASEUG AU01A1T.BASEUGI AIR 1 CR
SAMJ.BASEUG AU01A1T.BASEUGU AUR 1 CR
SAMJ.BASEUS AU01A1T.BASEUSI AIR 1 CR
SAMJ.BASEUS AU01A1T.BASEUSU AUR 1 CR
SAMJ.BASEUSTS AU01A1T.BASEUSTI AIR 1 CR
SAMJ.BASEUSTS AU01A1T.BASEUSTU AUR 1 CR
SAMJ.TECHDSP AU01A1T.TECHDSPI AIR 1 CR
SAMJ.TECHDSP AU01A1T.TECHDSPU AUR 1 CR
SAMJUP.BASERS SAMJUP.BASERSI AIR 1 CR
SAMJUP.BASERS SAMJUP.BASERSU AUR 1 CR
SAMJUP.BASETAB SAMJUP.BASETABI AIR 1 CR
SAMJUP.BASETAB SAMJUP.BASETABU AUR 1 CR
SAMJUP.BASEUG SAMJUP.BASEUGI AIR 1 CR
SAMJUP.BASEUG SAMJUP.BASEUGU AUR 1 CR
SAMJUP.BASEUS SAMJUP.BASEUSI AIR 1 CR
SAMJUP.BASEUS SAMJUP.BASEUSU AUR 1 CR
SAMJUP.BASEUSTS SAMJUP.BASEUSTI AIR 1 CR
SAMJUP.BASEUSTS SAMJUP.BASEUSTU AUR 1 CR
SAMJUP.TECHDSP SAMJUP.TECHDSPI AIR 1 CR
SAMJUP.TECHDSP SAMJUP.TECHDSPU AUR 1 CR
SYSIBMTS.SYSTEXTCONNECTINFO DSNIBMTS.CONNECTINFOCONSTRAINT BIR 1 CR
TSTRTS.TRTSREOIXEXCEPTION TSTRTS.TRTSREOIXEXCEPTIONAFTDELST ADR 1 CR
TSTRTS.TRTSREOIXEXCEPTION TSTRTS.TRTSREOIXEXCEPTIONAFTINS AIS 1 CR
TSTRTS.TRTSREOIXEXCEPTION TSTRTS.TRTSREOIXEXCEPTIONAFTUPD AUS 1 CR
TSTRTS.TRTSREOIXEXCEPTION TSTRTS.TRTSREOIXEXCEPTIONAFTUPDST AUR 1 CR
TSTRTS.TRTSREOIXEXCEPTION TSTRTS.TRTSREOIXEXCEPTIONBEFINS BIR 1 CR
TSTRTS.TRTSREOIXEXCEPTION TSTRTS.TRTSREOIXEXCEPTIONBEFUPD BUR 1 CR
TSTRTS.TRTSREOJOBEXCEPTION TSTRTS.TRTSREOJOBEXCEPTIONAFTDELST ADR 1 CR
TSTRTS.TRTSREOJOBEXCEPTION TSTRTS.TRTSREOJOBEXCEPTIONAFTINS AIS 1 CR
TSTRTS.TRTSREOJOBEXCEPTION TSTRTS.TRTSREOJOBEXCEPTIONAFTUPD AUS 1 CR
TSTRTS.TRTSREOJOBEXCEPTION TSTRTS.TRTSREOJOBEXCEPTIONAFTUPDST AUR 1 CR
TSTRTS.TRTSREOJOBEXCEPTION TSTRTS.TRTSREOJOBEXCEPTIONBEFINS BIR 1 CR
TSTRTS.TRTSREOJOBEXCEPTION TSTRTS.TRTSREOJOBEXCEPTIONBEFUPD BUR 1 CR
TSTRTS.TRTSREOTSEXCEPTION TSTRTS.TRTSREOTSEXCEPTIONAFTDELST ADR 1 CR
TSTRTS.TRTSREOTSEXCEPTION TSTRTS.TRTSREOTSEXCEPTIONAFTINS AIS 1 CR
TSTRTS.TRTSREOTSEXCEPTION TSTRTS.TRTSREOTSEXCEPTIONAFTUPD AUS 1 CR
TSTRTS.TRTSREOTSEXCEPTION TSTRTS.TRTSREOTSEXCEPTIONAFTUPDST AUR 1 CR
TSTRTS.TRTSREOTSEXCEPTION TSTRTS.TRTSREOTSEXCEPTIONBEFINS BIR 1 CR
TSTRTS.TRTSREOTSEXCEPTION TSTRTS.TRTSREOTSEXCEPTIONBEFUPD BUR 1 CR
}¢--- A540769.WK.SQL(CATTS) cre=2007-05-11 mod=2016-04-14-14.22.00 A540769 -----
set current path oa1p; 00000122
select count(*), fqzFmtBin7(sum(1024. * nPages * pgSize)) 00000222
, fqzFmtBin7(min(1024. * nPages * pgSize)) 00000322
, fqzFmtBin7(max(1024. * nPages * pgSize)) 00000422
from sysibm.systablespace s join sysibm.sysTablespaceStats r 00000522
on s.dbid = r.dbid and s.psid = r.psid 00000622
where partitions = 0 and segsize > 0 00000722
group by floor(log(max(1024. * nPages * pgSize, 1024.)) / log(2)) 00000822
order by min(1024. * nPages * pgSize) desc 00000922
with ur 00001022
;; 00001122
set current path oa1p; 00001222
select count(*), fqzFmtBin7(sum(spaceF * 1024)) 00001322
, fqzFmtBin7(min(spaceF * 1024)) 00001422
, fqzFmtBin7(max(spaceF * 1024)) 00001522
from sysibm.systablespace 00001622
where partitions = 0 and segsize > 0 00001722
group by floor(log(max(spaceF, 1) * 1024) / log(2)) 00001822
order by min(spaceF * 1024) desc 00001922
with ur 00002022
;; 00002122
select count(*), pgSize 00002221
from sysibm.sysTableSpace 00002321
group by pgSize 00002421
;x; 00002521
select count(*), SBCS_CCSID, DBCS_CCSID, MIXED_CCSID 00002620
from sysibm.sysTableSpace 00002720
group by SBCS_CCSID, DBCS_CCSID, MIXED_CCSID 00002820
order by SBCS_CCSID, DBCS_CCSID, MIXED_CCSID 00002920
with ur 00003020
;; 00003120
select count(*), partitions 00003219
from sysibm.sysTableSpace 00003319
group by partitions 00003419
order by partitions 00004019
with ur 00005018
;; 00006018
select count(*), s.partitions, t.partkeycolnum 00010016
from sysibm.systablespace s, sysibm.systables t 00010115
where s.dbName = t.dbName and s.name = t.tsName 00010215
group by partitions, partkeycolnum 00010317
order by 3 desc, 2 desc 00010414
; 00010514
select char(dbName, 8) "db", char(name, 12) "ts", 00011014
bPool, ntables, partitions, segSize, pgSize, nActive 00020001
from sysibm.systablespace 00030000
where dbname in ('BJ01A1T', 'NF01A1T', 'NF02A1T', 'NF03A1T') 00040013
order by 1, 2 00050000
; 00051002
select char(s.dbName, 8) "db", char(s.name, 12) "ts", nTables, 00060005
char(t.name, 12) "table" 00070003
from sysibm.systablespace s 00080003
left join sysibm.systables t 00081003
on s.dbname = t.dbname and s.name = t.tsName 00082003
where s.ntables <> 1 and t.type = 'T' 00090006
and s.dbname in ('BJ01A1T', 'NF01A1T', 'NF02A1T', 'NF03A1T') 00090113
order by 1, 2, 4 00100005
}¢--- A540769.WK.SQL(CATTSBP) cre=2011-05-12 mod=2011-05-12-08.26.57 A540769 ---
select bPool, count(*),
sum(case when dbName like 'DSNDB%' then 1 else 0 end)
from sysibm.sysTableSpace
group by bPool
with ur
}¢--- A540769.WK.SQL(CATTSCLO) cre=2013-10-04 mod=2013-10-04-14.48.01 A540769 ---
select clone, instance, cln, inst, count(*)
from sysibm.sysTablespace s
left join
(select 'N', 1, 1, '-' from sysibm.sysDummy1
union all select 'Y', 1, 1, 'B' cl from sysibm.sysDummy1
union all select 'Y', 1, 2, 'C' cl from sysibm.sysDummy1
union all select 'Y', 2, 1, 'C' cl from sysibm.sysDummy1
union all select 'Y', 2, 2, 'B' cl from sysibm.sysDummy1
) i (sC, sI, inst, cln)
on s.clone = i.sC and s.instance = sI
group by clone, instance, cln, inst
}¢--- A540769.WK.SQL(CATTSCOM) cre=2009-09-15 mod=2009-09-15-13.04.20 A540769 ---
select min(pageSave), max(pageSave), count(*)
, case when reorglastTime < current timestamp - 6 month
and (reorgInserts / max(1000, totalRows)) > .9
then 'r' else ' ' end
, max(reorgLastTime)
, sum(spacef * 1024) alloc
, sum(spacef * percActive / 100 * 1024) active
, sum(spacef * percActive * 1024 / (100-pageSave)) uncompressed
, avg(percActive) meanActive
, avg(pageSave) meanSave
, sum(case when pageSave = 0 then 0 else 1 end) comprParts
-- spacef, percActive, pageSave
from sysibm.systablePart p,
sysibm.systableSpaceStats r
where p.dbName = r.dbName and p.tsName = r.Name
and p.partition = r.partition
--and p.dbName like 'BE%'
group by case when pagesave<0 then -99
when pagesave=0 then 0
else max(1, trunc(pageSave/10, 0)) end
, case when reorglastTime < current timestamp - 6 month
and (reorgInserts / max(1000, totalRows)) > .9
then 'r' else ' ' end
order by 1, 4
with ur
;
}¢--- A540769.WK.SQL(CATTSDS) cre=2013-05-23 mod=2013-05-23-15.18.52 A540769 ---
select dssize, case when partitions = 0 then 'not' else 'part' end
, count(*)
from sysibm.sysTablespace
group by dssize, case when partitions = 0 then 'not' else 'part' end
}¢--- A540769.WK.SQL(CATTSDSS) cre=2013-06-18 mod=2013-06-20-08.59.17 A540769 ---
WITH D AS
( SELECT
CASE S.DSSIZE
WHEN 0 THEN
CASE WHEN S.TYPE = 'G' THEN 4194304
WHEN S.TYPE = 'O' THEN 4194304
WHEN S.TYPE = 'P' THEN 4194304
WHEN S.TYPE = 'R' THEN 4194304
ELSE
CASE WHEN S.PARTITIONS > 254 THEN
CASE WHEN S.PGSIZE = 4 THEN 4194304
WHEN S.PGSIZE = 8 THEN 8388608
WHEN S.PGSIZE = 16 THEN 16777216
WHEN S.PGSIZE = 32 THEN 33554432
ELSE NULL
END
WHEN S.PARTITIONS > 64 THEN 4194304
WHEN S.PARTITIONS > 32 THEN 1048576
WHEN S.PARTITIONS > 16 THEN 2097152
WHEN S.PARTITIONS > 0 THEN 4194304
ELSE 2097152
END
END
ELSE S.DSSIZE
END DSSMAN
, case
when s.dssize <> 0 then s.dssize
when s.type in ('G', 'O', 'P', 'R', 'L') then 4194304
when S.partitions > 254 then 1048576 * s.pgSize
when s.partitions > 64 then 4194304
when s.partitions > 32 then 1048576
when s.partitions > 16 then 2097152
when s.partitions > 0 then 4194304
else 2097152
end dssWk, s.*
from sysibm.sysTablespace s
)
select count(*), dssMan, dssWk, min(type), max(type)
from d
group by dssMan, dssWk
-- where dssMan <> dssWk or dssMan is null or dssWk is null
;x;
select dssize, partitions, type, count(*)
from sysibm.systablespace
where type = 'L'
group by dssize, partitions, type
;x;:
}¢--- A540769.WK.SQL(CATTSID) cre=2006-12-05 mod=2006-12-05-14.22.32 F540769 ---
select dbid, dbName, name, psid, obid
from sysibm.systablespace
where dbid in (403, 1606, 1600)
and psid in ( 559, 558, 566, 4, 12, 23)
;
}¢--- A540769.WK.SQL(CATTSINF) cre=2012-07-15 mod=2012-07-15-11.42.08 A540769 ---
select *
from sysibm.sysTables
where dbName = 'WP04A1P' and tsName = 'A301A52'
;
select *
from sysibm.sysTablespace
where dbName = 'WP04A1P' and name = 'A301A52'
;
select *
from sysibm.sysTablePart
where dbName = 'WP04A1P' and tsName = 'A301A52'
;
select *
from sysibm.sysTableSpaceStats
where dbName = 'WP04A1P' and name = 'A301A52'
;
select i.*
from sysibm.sysTables t
join sysibm.sysIndexes i
on i.tbCreator = t.creator and i.tbName = t.name
where t.dbName = 'WP04A1P' and t.tsName = 'A301A52'
;
select p.*
from sysibm.sysTables t
join sysibm.sysIndexes i
on i.tbCreator = t.creator and i.tbName = t.name
join sysibm.sysIndexPart p
on i.creator = p.ixcreator and i.Name = p.ixname
where t.dbName = 'WP04A1P' and t.tsName = 'A301A52'
;
select r.*
from sysibm.sysTables t
join sysibm.sysIndexes i
on i.tbCreator = t.creator and i.tbName = t.name
join sysibm.sysIndexSpaceStats r
on i.creator = r.creator and i.Name = r.name
where t.dbName = 'WP04A1P' and t.tsName = 'A301A52'
;
}¢--- A540769.WK.SQL(CATTSIX) cre=2008-04-14 mod=2008-04-14-10.55.20 F540769 ---
select s.name, char(strip(i.creator) || '.' || strip (i.name), 30),
i.indexSpace, s.dbName
from sysibm.sysIndexes i, sysIbm.sysTables t, sysIbm.sysTablespace s
where i.dbName = t.dbName and i.tbName = t.name
and t.dbName = s.dbName and t.tsName = s.name
and s.dbName = 'SAMT2' and s.name like 'SAM%'
order by 1, 2
}¢--- A540769.WK.SQL(CATTSPA) cre=2010-04-17 mod=2010-04-17-13.15.12 A540769 ---
select 'when MF150013 <= ''' || strip(limitKey) || ''' then '
|| right(' ' || strip(char(partition)), 5) ,
partition, limitkey, limitkey_internal,
hex(limitkey_internal)
from sysibm.systablePart
where dbName = 'MF01A1P' and tsName = 'A150A'
order by partition
}¢--- A540769.WK.SQL(CATTSPLU) cre=2014-06-18 mod=2014-06-19-12.19.57 A540769 ---
-- copy catTsPlu begin
-- tsPlus: sysIbm.sysTableSpace plus missing infos
, tsPlus2 as
(
select s.*
, char(value(case
when type <> ' ' then type
when partitions > 0 and segsize = 0 then 'p' -- classic part
when partitions = 0 and segsize = 0 then 'i' -- simple
when partitions = 0 and segsize > 0 then 's' -- segmented
else raise_error(70101, 'unknown ts type='||type
|| ' partitions=' || strip(char(partitions))
|| ' segsize=' || strip(char(segsize))
|| ' db.ts=' || strip(dbName) ||'.'||name)
end, '?'), 1) tsTy
, real(value(case
when dssize <> 0 then real(dssize) / 1048576
when type in ('G', 'O', 'P', 'R', 'L') then 4
when partitions = 0 then 64
when partitions > 254 then pgSize
when partitions > 64 then 4
when partitions > 32 then 1
when partitions > 16 then 2
else 4
end, -99)) dsGB
from sysibm.sysTablespace s
)
, tsPlus as
( select s.*
, smallInt(case when tsTy = 'G' or partitions = 0
then 0 else 1 end) limPart
, real(value(case when tsTy = 'G' then dsGB * maxPartitions
when tsTy = 'O' then dsGB * 254
else dsGb end, -99)) limGB
from tsPlus2 s
)
-- copy catTsPlu end
}¢--- A540769.WK.SQL(CATTSPLV) cre=2014-06-19 mod=2014-06-19-08.10.28 A540769 ---
-- test cattsPlu versus old gbGr
with dummy as(select * from sysibm.sysDummy1 )
-- copy catTsPlu begin
-- tsPlus: sysIbm.sysTableSpace plus missing infos
, tsPlus2 as
(
select s.*
, case
when type <> ' ' then type
when partitions > 0 and segsize = 0 then 'p' -- classic part
when partitions = 0 and segsize = 0 then 'i' -- simple
when partitions = 0 and segsize > 0 then 's' -- segmented
else raise_error(70101, 'unknown ts type='||type
|| ' partitions=' || strip(char(partitions))
|| ' segsize=' || strip(char(segsize))
|| ' db.ts=' || strip(dbName) ||'.'||name) end tsTy
, case
when dssize <> 0 then real(dssize) / 1048576
when type in ('G', 'O', 'P', 'R', 'L') then 4
when partitions = 0 then 64
when partitions > 254 then pgSize
when partitions > 64 then 4
when partitions > 32 then 1
when partitions > 16 then 2
else 4
end dsGB
from sysibm.sysTablespace s
)
, tsPlus as
( select s.*
, case when tsTy = 'G' or partitions = 0
then 0 else 1 end partScope
, case when tsTy = 'G' then dsGB * maxPartitions
when tsTy = 'O' then dsGB * 254
else dsGb end limGB
from tsPlus2 s
)
-- copy catTsPlu end
, t0 as
(
select dbname db, name ts, pgSize
, partitions parts, maxPartitions maxParts, dsSize
, case
when type <> ' ' then type
when partitions > 0 and segsize = 0 then 'p' -- classic part
when partitions = 0 and segsize = 0 then 'i' -- simple
when partitions = 0 and segsize > 0 then 's' -- segmented
else raise_error(70101, 'unknown ts type='||type
|| ' partitions=' || strip(char(partitions))
|| ' segsize=' || strip(char(segsize))
|| ' db.ts=' || strip(dbName) ||'.'||name) end tsTy
, case
when dssize <> 0 then int(dssize / 1048576)
when type in ('G', 'O', 'P', 'R', 'L') then 4
when partitions = 0 then 64
when partitions > 254 then pgSize
when partitions > 64 then 4
when partitions > 32 then 1
when partitions > 16 then 2
else 4
end dsGB
, dbid, psid
from sysibm.sysTablespace
)
, ts as
( select t0.*
, case when tsTy = 'G' or parts = 0 then 0 else 9999 end scope
, case when tsTy = 'G' then dsGB * maxparts
when tsTy = 'O' then dsGB * 254
else dsGb end limGB
from t0
)
select n.tsTy, o.tsTy, n.limGb, o.limGb, n.partScope, o.scope, n.*
from tsPlus n
full outer join ts o
on n.dbName = o.db and n.name = o.ts
where n.dbName is null or o.db is null
or n.tsTy <> o.tsTy or n.limGb <> o.limGb
or n.partScope * 9999 <> o.scope
fetch first 1000 rows only
}¢--- A540769.WK.SQL(CATTSSPA) cre=2009-09-08 mod=2013-06-05-18.57.28 A540769 ---
set current path oa1p;
with s as (
select dbName, name, count(*) parts, sum(real(totalRows)) rows
from sysibm.systableSpaceStats
group by dbName, name
)
select count(*) ts, sum(parts) parts,
fosFmtE7(min(rows)) min,
fosFmtE7(max(rows)) max,
fosFmtE7(sum(rows)) sub
from s
-- where dbName like 'MF%'
group by floor(log10(max(1, rows)) * 3)
order by min(rows) desc
;x;
set current path oa1p;
with s as (
select dbName, name, count(*) parts, sum(space) spc
from sysibm.systableSpaceStats
group by dbName, name
)
select count(*) ts, sum(parts) parts,
fosFmtE7(min(spc)) min,
fosFmtE7(max(spc)) max,
fosFmtE7(sum(spc)) sub
from s
-- where dbName like 'MF%'
group by floor(log10(spc) * 3))
order by min(spc) desc
;x;
select min(partition), max(partition)
, min(char(limitKey,10)) ,max(char(limitKey,10))
, sum(spacef * 1024) alloc
, sum(spacef * percActive / 100 * 1024) active
, sum(spacef * percActive * 1024 / (100-pageSave)) uncompressed
, avg(percActive) meanActive
, avg(pageSave) meanSave
, sum(case when pageSave = 0 then 0 else 1 end) comprParts
-- spacef, percActive, pageSave
from sysibm.systablePart
where dbName = 'MF01A1P' and tsName = 'A150A'
and partition between 80 and 179
group by trunc(partition/5, 0)
order by 1
with ur
;
}¢--- A540769.WK.SQL(CATTSTYC) cre=2015-11-23 mod=2015-11-24-11.36.05 A540769 ---
-- count index/table based partitioned ts -----------------------------
set current application compatibility 'V11R1';
with x as
( select s.*
, value ( ( select max(t.partKeyCOLNUM)
from sysibm.sysTables t
where t.dbName = s.dbname and t.tsName = s.name
) , 0) partKeyCol
from sysibm.sysTablespace s
)
, t as
( select case when partitions = 0 and segsize = 0 then 'simple'
when partitions = 0 then 'segmented'
else type end
|| case when partitions = 0 or maxPartitions > 0 then ''
when partKeyCol = 0 then ' ixPart'
else ' tbPart' end
|| case when nTables = 1 then ''
when nTables < 1 then ' noTb'
else ' multiTb' end ty
, x.*
from x
)
select count(*), ty, sum(nTables) nTables
from t
group by rollup(ty)
;x;
with x as
( select case when s.partitions = 0 and s.segsize = 0 then 'simple'
when s.partitions = 0 then 'segmented'
when t.partKeyCOLNUM < 1 then s.type || ' ixPart'
else s.type || ' tbPart' end ty
, strip(t.creator) || '.' || t.name tb
from sysibm.sysTables t join sysibm.sysTablespace s
on t.dbName = s.dbname and t.tsName = s.name
where t.type not in ('V', 'A')
)
select count(*), ty, substr(min(tb), 1, 30), max(tb)
from x
group by rollup(ty /*, left(tb, 8) */)
}¢--- A540769.WK.SQL(CATTSTYP) cre=2015-02-03 mod=2015-02-03-07.23.16 A540769 ---
set current path oa1p;
-- copy catTsPlu begin
-- tsPlus: sysIbm.sysTableSpace plus missing infos
with
ti as
(
select dbName db, tsName ts, sum(colCount) cols
, min(partKeyColNum) partKeyMin
, max(partKeyColNum) partKeyMax
from sysibm.SysTables
where type not in ('A', 'V')
group by dbName, tsName
)
, tsPlus2 as
(
select s.*
, char(value(case
when type <> ' ' then type
when partitions > 0 and segsize = 0 then 'p' -- classic part
when partitions = 0 and segsize = 0 then 'i' -- simple
when partitions = 0 and segsize > 0 then 's' -- segmented
else raise_error(70101, 'unknown ts type='||type
|| ' partitions=' || strip(char(partitions))
|| ' segsize=' || strip(char(segsize))
|| ' db.ts=' || strip(dbName) ||'.'||name)
end, '?'), 1) tsTy
, real(value(case
when dssize <> 0 then real(dssize) / 1048576
when type in ('G', 'O', 'P', 'R', 'L') then 4
when partitions = 0 then 64
when partitions > 254 then pgSize
when partitions > 64 then 4
when partitions > 32 then 1
when partitions > 16 then 2
else 4
end, -99)) dsGB
from sysibm.sysTablespace s
)
, tsPlus as
( select s.*
, smallInt(case when tsTy = 'G' or partitions = 0
then 0 else 1 end) limPart
, real(value(case when tsTy = 'G' then dsGB * maxPartitions
when tsTy = 'O' then dsGB * 254
else dsGb end, -99)) limGB
from tsPlus2 s
)
, tsTy as
(
select
s.*
, case when t.db is null then 'noTab'
when partKeyMin is null or partKeyMax is null
then 'partKey Null'
when partKeyMin <> partKeyMax then 'partKey'
||partKeyMin || '<>' || partKeyMax
when s.partitions = 0 then ''
when partKeyMin = 0 then 'ixPart'
when partKeyMin > 0 then 'tbPart'
else 'partKey ' || partKeyMin
end partTy
, t.cols
, (select sum(real(r.nActive))
from sysibm.sysTableSpaceStats r
where s.dbName = r.dbName and s.name = r.name
and s.dbid = r.dbid and s.psid = r.psid ) * 1024 * s.pgSize
actB
from tsPlus2 s
left join ti t
on s.dbName = t.db and s.name = t.ts
)
, o1 as
(
select count(*) ts
, sum(max(partitions, 1)) parts
, sum(cols) cols
, sum(actB) actB
, tsTy, partTy
from tsTy
group by tsTy, partTy
)
, o2 as
(
select sum(ts) ts
, sum(parts) parts
, sum(cols) cols
, sum(actB) actB
, '*' tsTy, '*' partTy
from o1
union all select * from o1
)
select ts, parts, cols, substr(fosFmte7(actB), 1 ,7) actB
, tsTy, partTy
from o2
order by tsTy, partTy
;x;
-- copy catTsPlu end
select strip(dbName) || '.' || strip(name), s.*
from tsTy s where partTy = 'noTab';xc;
}¢--- A540769.WK.SQL(CATTSU) cre=2012-08-27 mod=2012-08-27-08.26.02 A540769 ----
select *
from sysibm.systablespace
where partitions > 0 -- and segsize = 0
and dbName = 'DA540769'
order by createdts desc
}¢--- A540769.WK.SQL(CATUL) cre= mod= ------------------------------------------
select char(c.name,20) ,
c.creator, char(' '),
c.dbname, char(' '),
c.tsname, char(' '),
char(c.p_part) , char(' '),
char(c.p_limit) , char(' '),
char(count(all tid150tst)) tst_all, char(' '),
char(count(distinct tid150tst)) tst_dist, char(' '),
char(coalesce(
char(min(tid150md)) || ' '||
char(max(tid150md)) || ' ' ||
char(max(tid150md)) || ' ' ||
char(min(tid150tst)) || ' ' ||
char(max(tid150tst))
, '<<null>>'))
from
( select
t.name, t.creator, t.dbname, t.tsname,
p.partition p_part, int(p.limitKey) p_limit,
q.partition q_part, int(q.limitKey) q_limNu,
case when q.limitKey is null then -9999 else int(q.limitKey)
end q_limit
from sysibm.systables t
join sysibm.systablePart p
on t.tsname = p.tsname and t.dbname = p.dbname
left join sysibm.systablePart q
on p.tsname = q.tsname and p.dbname = q.dbname
and p.partition - 1 = q.partition
where t.name = 'TID150A1' and t.creator = 'OA1A' ) c
left join OA1A.tid150a1 d
on d.tid150md > c.q_limit and d.tid150md <= c.p_limit
group by c.name, c.creator, c.dbname, c.tsname, p_part, p_limit
;
}¢--- A540769.WK.SQL(CATULDA) cre= mod= ----------------------------------------
select dt, char(' '),
char(count(all tid150tst)) tst_all, char(' '),
char(count(distinct tid150tst)) tst_dist, char(' '),
char(coalesce(
char(min(tid150md)) || ' ' ||
char(max(tid150md)) || ' ' ||
char(min(tid150tst)) || ' ' ||
char(max(tid150tst))
, '<<null>>'))
from (
select DATE(tiD150tst) dt, tid150tst, tid150md
from OA1A.tid150a1
) d
group by dt order by dt
;
}¢--- A540769.WK.SQL(CATUNLOA) cre=2014-09-05 mod=2014-09-07-11.41.55 A540769 ---
select ', ' || strip(c.name) || ' '
|| case when c.colType in ('DATE', 'TIME', 'TIMESTAMP')
then strip(c.colType) || ' EXTERNAL'
else strip(c.colType) end
, c.colNo, c.coltype, c.Name col
, t.dbName db, t.tsName ts, t.name tb, t.type
from sysibm.sysTables t
join sysibm.sysColumns c
on t.creator = c.tbCreator and t.name = c.tbName
and t.dbName = 'CSQDP2G'
and t.name = 'ADMIN_B_MESSAGES'
where t.type = 'T'
order by t.dbName, t.tsName, t.name
, case when strip(c.colType) like '_LOB'
or c.colType = 'XML' then 1 else 0 end
, c.colNo
}¢--- A540769.WK.SQL(CATUPD) cre=2007-11-29 mod=2009-09-28-12.23.34 A540769 ----
update sysibm.systablespace
set nActive = nActive + 1,
nActiveF = nActiveF + 1,
spaceF = spaceF + 1
where dbName = 'DGDB9998' and name = 'A600A199'
;
commit
;
x
select count(*), max(alteredTS) altered, min(alteredTS),
max(createdTS) created, min(createdTS)
from sysibm.systables
where dbname = 'DGDB0397'
}¢--- A540769.WK.SQL(CATUSED) cre=2013-09-16 mod=2013-10-02-10.02.16 A540769 ---
with ts as
(
select dbName db, name ts, createdTS cre , alteredTS alt
,dbid, psid
from sysibm.sysTablespace
where dbName = 'MF01A1P'
)
, tb as
(
select case when type = 'A' then 'al'
when type = 'V' then 'vw'
else 'tb' end ty
, creator cr, name tb, createdTS cre , alteredTS alt
from sysIbm.sysTables
where (dbName, tsName) in (select db, ts from ts)
)
, r0 as
(
select *
from sysibm.sysTableSpaceStats
where (dbName, name, dbid, psid) in
(select db, ts, dbid, psid from ts)
)
, rt (ty, cnt, alt) as
(
select 'rt', count(*), max(updateStatsTime)
from r0
where updateStatsTime is not null
union all select 'rt copyUpd', count(*), max(COPYUPDATETIME)
from r0
where copyUpdateTime is not null
union all select 'rt loadRep', count(*), max(LOADRLASTTIME)
from r0
where LOADRLASTTIME is not null
union all select 'rt reoUpd', count(*)
, max(max(value(LOADRLASTTIME, REORGLASTTIME)
,value(REORGLASTTIME, LOADRLASTTIME)))
from r0
where REORGINSERTS > 0 or REORGDELETES >0
or REORGUPDATES > 0 or REORGMASSDELETE > 0
)
, ix as
( select creator cr, name ix, createdTS cre , alteredTS alt
from sysibm.sysIndexes
where (tbCreator, tbName) in
(select cr, tb from tb where ty = 'tb')
)
, i0 as
(
select *
from sysibm.sysIndexSpaceStats
where (creator, name)
in (select cr, ix from ix)
)
,ri (ty, cnt, alt) as
(
select 'ri', count(*), max(updateStatsTime)
from i0
union all select 'ri lastUse', count(*), timestamp(max(lastUsed))
from i0
where lastUsed is not null
)
, pk as
(
select lastUsed, Timestamp, bindTime, pcTimestamp, collid, name
from sysIbm.sysPackage pk
where (location, collid, name, conToken)
in ( select dLocation, dCollid, dName, dConToken
from sysIbm.sysPackDep
where bType in ('T', 'A', 'G', 'M', 'V')
and (bQualifier, bName)
in (select cr, tb from tb)
union all select dLocation, dCollid, dName, dConToken
from sysIbm.sysPackDep
where bType in ('P', 'R')
and (bQualifier, bName)
in (select db, ts from ts)
)
)
, u (type, count, altered, created) as
(
select 'ts', count(*), max(alt), max(cre)
from ts
union all select ty, count(*), max(alt), max(cre)
from tb
group by ty
union all select ty, cnt, alt, cast(null as timestamp)
from rt
union all select 'ix', count(*), max(alt), max(cre)
from ix
union all select ty, cnt, alt, cast(null as timestamp)
from ri
union all select 'pk bind/cr', count(*), max(bindTime), max(timestamp)
from pk
union all select 'pk preComp', count(*), max(pcTimestamp)
, cast(null as timestamp)
from pk
where pcTimestamp > '1000-01-01-00.00.00'
union all select 'pk lastUse', count(*), timestamp(max(lastUsed))
, cast(null as timestamp)
from pk
where lastUsed > '01.01.1000'
)
, v (type, count, altered, created) as
(
select type
, substr(right(' ' || count, 8), 1, 8)
, altered, created
from u
union all ( select 'pk newest', substr(name, 1, 8)
, timestamp(max(lastUsed)), max(pcTimestamp)
from pk
where lastUsed > current date - 90 days
group by name
order by 3 desc, 2
fetch first 15 rows only )
)
select * from v
}¢--- A540769.WK.SQL(CATVCAT) cre=2011-04-21 mod=2011-04-21-22.56.31 A540769 ---
select count(*), vCatName
from sysibm.sysTablePart
group by vCatName
with ur
;
select count(*), vCatName
from sysibm.sysIndexPart
group by vCatName
with ur
}¢--- A540769.WK.SQL(CATVDEP) cre=2013-05-13 mod=2013-05-13-16.57.37 A540769 ---
select *
from sysibm.sysViewDep d
--where dCreator = 'GDB9998' and dName like 'WK948%'
where bName like 'VVV_%'
;x;
with u (cr, nm, ty, lv) as
(
--select 'GDB9998', 'WK948NULL', 'V', 0
select 'VDPS2', varchar('VTINSTRFLATDATA', 128), 'V', 0
from sysibm.sysDummyU
union all select dCreator, dName, dType, lv+1
from u join sysibm.sysViewDep d
on d.bCreator = u.cr and d.bName = u.nm
where lv < 1000
)
select * from u
}¢--- A540769.WK.SQL(CATVIEW) cre=2009-08-18 mod=2014-08-27-12.43.00 A540769 ---
select substr(strip(creator)|| '.'|| strip(name),1,25)
, length(statement)
, substr(statement, 1, 2000)
from sysibm.sysviews v
where creator = 'OA1P'
and name like 'VQZ%'
order by 1
}¢--- A540769.WK.SQL(CATVIEWS) cre=2008-03-10 mod=2008-03-10-11.20.31 F540769 ---
select char(strip(creator) || '.' || strip(name), 20), seqNo,
pathSchemas
from sysibm.sysviews
where creator = 'GDB9998'
}¢--- A540769.WK.SQL(CATVW) cre=2008-06-19 mod=2016-03-11-14.12.35 A540769 -----
select * from sysibm.sysViews
where creator = 'QZ91CRS'
and name = 'VWK401A1'
order by creator, name, seqno
}¢--- A540769.WK.SQL(CATVWDEP) cre=2008-08-19 mod=2008-08-19-16.16.57 F540769 ---
with pa (cre, nam, typ, lev) as
( select bCreator, bName, bType, 1
from sysibm.sysViewDep
where dType = 'V'
and dCreator = 'GDB9998' and dName = 'VWK210A2'
union all select d.bCreator, d.bName, d.bType, p.lev+1
from sysibm.sysViewDep d, pa p
where d.dcreator = p.cre and d.dName = p.nam
and d.dType = p.Typ and p.lev < 1000
)
select typ, lev, strip(cre) || '.' || strip(Nam)
from pa
order by 2, 3
;
where seqNo > 5 --reator = 'A540769' and name like 'VWK210%'
order by creator, name, seqno
}¢--- A540769.WK.SQL(CATVWLST) cre=2014-10-14 mod=2014-10-14-14.47.01 A540769 ---
$#@
call sqlConnect dbof
$<>
$>. fedit('::v')
$<#¢
select -- createdTs,
colCount, strip(creator) || '.' || name
from sysibm.sysTables
where type = 'V'
and (name like 'VVV%' or dbName like 'VV%'
or creator like 'VDPS%'
)
order by creator, name
$!
call sqlStmts
}¢--- A540769.WK.SQL(CATV9NES) cre=2008-10-20 mod=2008-10-24-13.31.49 F540769 ---
set current sqlid = 'A540769';
select * from s100447.db2v9ts
where dbName = 'DGDB9998' and v9 <> ''
;
delete from plan_table where queryno = 222;
-- explain plan set queryno = 222 for
select tp, char(left(nm, 40), 40), v9 from s100447.db2v9
where v9 <> ''
and ( ( cr = 'GDB9998' and tb = 'TWK573A1' )
or ( cr = 'GDB9998' and tb = 'TWK574A1' )
or ( cr = 'GDB9998' and tb = 'TWK575A1' )
or ( cr = 'GDB9998' and tb = 'TWK576A1' )
or ( cr = 'GDB9998' and tb = 'TWK135A1' )
or ( cr = 'GDB9998' and tb = 'TWK145A1' )
)
order by cr, tb, cl
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
where (dbName = 'CT02A1A' and name = 'TCT170A1')
or (dbName= 'RP01A1A' and name in ('TRP161A1',
'TRP162A1',
'TRP163A1')
)
;
x
selectdeclare global temporary table session.gtt1
from s100447.db2v9 v
where v9 <> '' --and db = 'DGDB9998'
order by cr, tb, cl
;
x
select tp, char(nm, 30), v9 from s100447.db2v9ts where v9 <> '';
select tp, char(nm, 30), v9 from s100447.db2v9tb where v9 <> '';
select tp, char(nm, 30), v9 from s100447.db2v9cl where v9 <> '';
select tp, char(nm, 30), v9 from s100447.db2v9ix where v9 <> '';
}¢--- A540769.WK.SQL(CATV9NET) cre=2008-10-23 mod=2008-10-24-12.56.22 F540769 ---
set current sqlid = 'A540769';
delete from plan_table where queryno = 111
;
--explain plan set queryno = 111 for
select tp, char(left(nm, 40), 40), v9, v.*
from s100447.db2v9 v
where ( ( cr = 'GDB9998' and tb = 'TWK573A1' )
or ( cr = 'GDB9998' and tb = 'TWK574A1' )
or ( cr = 'GDB9998' and tb = 'TWK575A1' )
or ( cr = 'GDB9998' and tb = 'TWK576A1' )
or ( cr = 'GDB9998' and tb = 'TWK135A1' )
or ( cr = 'GDB9998' and tb = 'TWK145A1' )
or ( cr = 'GDB9998' and tb = 'TWK145A1' )
or ( cr = 'GDB9998' and tb = 'TWK145A1' )
or ( cr = 'GDB9998' and tb = 'TWK145A1' )
or ( cr = 'GDB9998' and tb = 'TWK145A1' )
or ( cr = 'GDB9998' and tb = 'TWK145A1' )
)
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
}¢--- A540769.WK.SQL(CATV9NEU) cre=2008-10-21 mod=2008-10-21-11.55.16 F540769 ---
select dbname, name,
case when maxPartitions > 0 then 'partitionByGrowth ' else '' end
|| case when partitions > 0 and segSize > 0
then 'universal ' else '' end
|| case when log <> 'Y' then 'notLogged ' else '' end
from sysibm.systablespace
where dbname = 'DGDB9998' and name like 'A5%'
;
select char(strip(creator) || '.' || strip(name), 20),
case when append <> 'N' then 'append ' else '' end
from sysibm.systables
where creator = 'GDB9998' and name like 'TWK5%'
;
select char(strip(tbCreator) || '.' || strip(tbName)
|| '.' || strip(name), 30),
case when hidden <> 'N' then 'hidden ' else '' end
|| case when coltype in('BIGINT', 'BINARY', 'VARBIN', 'DECFLOAT'
, 'XML') then strip(colType) || ' ' else '' end
|| case when default in ('E','F') then 'eachRowOnUpdate ' else '' end
, c.*
from sysibm.sysColumns c
where tbCreator = 'GDB9998' and tbName like 'TWK5%'
;
select char(strip(creator) || '.' || strip(name), 20) ,
case when compress <> 'N' then 'compress ' else '' end
|| case when ix_extension_type <> '' then 'expression ' else '' end
, x.*
from sysibm.sysIndexes x
where creator = 'GDB9998' and name like 'IWK5%'
;
-- TS partition by growth
-- universal
-- log no
-- table append
-- partition by size xxx für ts by growth
-- implicitly hidden
-- bigInt
-- binary
-- varBinary
-- decFloat
-- row change timestamp
-- xml
-- index compress
-- on expression
-- trigger instead of
-- procedures: native sql
-- cat sysibm.sysenvironment (für native sql Proc + index on Expr)
}¢--- A540769.WK.SQL(CATV9NEV) cre=2008-10-20 mod=2009-08-24-13.04.47 A540769 ---
set current sqlid = 'S100447'
;
drop view s100447.db2v9ts ;
drop view s100447.db2v9tb ;
drop view s100447.db2v9cl ;
drop view s100447.db2v9ix ;
-- drop view s100447.db2ixPart;
-- drop view s100447.db2v9 ;
create view s100447.db2v9ts as
select 'ts' tp, strip(dbName) || '.' || strip(name) nm,
case when maxPartitions > 0 then 'partitionByGrowth ' else '' end
|| case when partitions > 0 and segSize > 0
then 'universal ' else '' end
|| case when log <> 'Y' then 'notLogged ' else '' end v9,
ts.*
from sysibm.systablespace ts
;
create view s100447.db2v9tb as
select 'tb' TP, strip(creator) || '.' || strip(name) nm,
case when append <> 'N' then 'append ' else '' end v9,
tb.*
from sysibm.systables tb
;
create view s100447.db2v9cl as
select 'cl' TP, strip(tbCreator) || '.' || strip(tbName)
|| '.' || strip(name) nm,
case when hidden <> 'N' then 'hidden ' else '' end
|| case when coltype in('BIGINT', 'BINARY', 'VARBIN', 'DECFLOAT'
, 'XML') then strip(colType) || ' ' else '' end
|| case when default in ('E','F') then 'onUpdate ' else '' end v9
, cl.*
from sysibm.sysColumns cl
;
create view s100447.db2v9ix as
select 'ix' tp, strip(creator) || '.' || strip(name) nm,
case when compress <> 'N' then 'compress ' else '' end
|| case when ix_extension_type <>'' then 'expression ' else '' end v9
, ix.*
from sysibm.sysIndexes ix
;
create view s100447.db2ixPart as
select 'tb' TP, strip(t.creator) || '.' || strip(t.name) nm,
case when s.partitions > 0 and t.partKeyCOLNUM < 1
then 'indexBased partitioning' else '' end v9,
t.*
from sysibm.systables t, sysibm.sysTablespace s
where t.dbName = s.dbName and t.tsName = s.name
and t.type = 'T'
;
create view s100447.db2v9 (tp, nm, v9, cr, tb, cl) as
select
tp, nm, v9, tb.creator, tb.name, ' -- 1 ts'
from s100447.db2V9ts ts join sysibm.sysTables tb
on ts.dbName = tb.dbName and ts.name = tb.tsName
union all select
tp, nm, v9, creator, name, ' -- 2 tb'
from s100447.db2V9tb tb
union all select
tp, nm, v9, ix.tbCreator,ix.tbName, ' -- 3 ix'
from s100447.db2V9ix ix
union all select
tp, nm, v9, cl.tbCreator, cl.tbName, cl.name
from s100447.db2V9cl cl
union all select
tp, nm, v9, creator, name, ' -- 4 ip'
from s100447.db2ixPart
;
commit
;
select tp, char(left(nm, 40), 40), v9, v.*
from s100447.db2v9 v
where v9 <> '' and cr in ('GDB9998', 'A540769')
order by cr, tb, cl
;
}¢--- A540769.WK.SQL(CATV9NEW) cre=2008-10-20 mod=2008-10-24-13.16.54 F540769 ---
set current sqlid = 'A540769'
;
delete from plan_table where queryno = 111
;
explain plan set queryno = 111 for
with v9ts as
(
select 'ts' tp, strip(dbName) || '.' || strip(name) nm,
case when maxPartitions > 0 then 'partitionByGrowth ' else '' end
|| case when partitions > 0 and segSize > 0
then 'universal ' else '' end
|| case when log <> 'Y' then 'notLogged ' else '' end v9,
ts.dbName db, ts.name ts
from sysibm.systablespace ts
), v9tb as
(
select 'tb' TP, strip(creator) || '.' || strip(name) nm,
case when append <> 'N' then 'append ' else '' end v9,
tb.dbName db, tb.tsName ts, tb.tbCreator cr, tb.tbName tb
from sysibm.systables tb
), v9cl as
(
select 'cl' TP, strip(tbCreator) || '.' || strip(tbName)
|| '.' || strip(name) nm,
case when hidden <> 'N' then 'hidden ' else '' end
|| case when coltype in('BIGINT', 'BINARY', 'VARBIN', 'DECFLOAT'
, 'XML') then strip(colType) || ' ' else '' end
|| case when default in ('E','F') then 'onUpdate ' else '' end v9
, cl.tbCreator cr, cl.tbName tb, cl.name cl
from sysibm.sysColumns cl
), v9ix as
(
select 'ix' tp, strip(creator) || '.' || strip(name) nm,
case when compress <> 'N' then 'compress ' else '' end
|| case when ix_extension_type <>'' then 'expression ' else '' end v9,
ix.tbCreator cr, ix.tbName tb
from sysibm.sysIndexes ix
), v9 (tp, nm, v9, cr, tb, cl) as
(
select
tp, nm, v9, cr , tb , ' -- 2 tb'
from V9tb tb
union select
tp, nm, v9, ix.cr ,ix.tb,
' -- 3 ix'
from V9ix ix -- ysibm.sysTables tb
-- where ix.tbCreator = tb.creator and ix.tbName = tb.name
union select
tp, nm, v9, cl.cr , cl.tb , cl.cl
from V9cl cl -- , sysibm.sysTables tb
-- where cl.tbCreator = tb.creator and cl.tbName = tb.name
)
select tp, char(left(nm, 40), 40), v9, v.*
from v9 v
where v9 <> ''
-- and cr = 'GDB9998'
and ( ( cr = 'GDB9998' and tb = 'TWK573A1' )
or ( cr = 'GDB9998' and tb = 'TWK574A1' )
or ( cr = 'GDB9998' and tb = 'TWK575A1' )
or ( cr = 'GDB9998' and tb = 'TWK576A1' )
or ( cr = 'GDB9998' and tb = 'TWK135A1' )
or ( cr = 'GDB9998' and tb = 'TWK145A1' )
)
order by cr, tb, cl
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
commit;
tp, nm, v9,
ifNull(tb.creator, ''), ifNull(tb.name, ''), ' -- 1 ts'
from V9ts ts left join sysibm.sysTables tb
on ts.db = tb.dbName and ts.ts = tb.tsName
union all select
}¢--- A540769.WK.SQL(CATV9NEX) cre=2008-10-24 mod=2008-10-24-12.30.10 F540769 ---
set current sqlid = 'A540769'
;
delete from plan_table where queryno = 111
;
explain plan set queryno = 111 for
with tstb as
(
select ts.dbName db, ts.name ts, tb.creator cr, tb.name tb
from sysibm.systablespace ts
full outer join sysibm.systables tb
on ts.dbName = tb.dbName and ts.name = tb.tsName
) select * from tstb
where ( ( cr = 'GDB9998' and tb = 'TWK573A1' )
or ( cr = 'GDB9998' and tb = 'TWK574A1' )
or ( cr = 'GDB9998' and tb = 'TWK575A1' )
or ( cr = 'GDB9998' and tb = 'TWK576A1' )
or ( cr = 'GDB9998' and tb = 'TWK135A1' )
or ( cr = 'GDB9998' and tb = 'TWK145A1' )
)
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
with v9ts as
(
select 'ts' tp, strip(dbName) || '.' || strip(name) nm,
case when maxPartitions > 0 then 'partitionByGrowth ' else '' end
|| case when partitions > 0 and segSize > 0
then 'universal ' else '' end
|| case when log <> 'Y' then 'notLogged ' else '' end v9,
ts.dbName db, ts.name ts
from sysibm.systablespace ts
), v9tb as
(
select 'tb' TP, strip(creator) || '.' || strip(name) nm,
case when append <> 'N' then 'append ' else '' end v9,
tb.dbName db, tb.tsName ts, tb.tbCreator cr, tb.tbName tb
from sysibm.systables tb
), v9cl as
(
select 'cl' TP, strip(tbCreator) || '.' || strip(tbName)
|| '.' || strip(name) nm,
case when hidden <> 'N' then 'hidden ' else '' end
|| case when coltype in('BIGINT', 'BINARY', 'VARBIN', 'DECFLOAT'
, 'XML') then strip(colType) || ' ' else '' end
|| case when default in ('E','F') then 'onUpdate ' else '' end v9
, cl.tbCreator cr, cl.tbName tb, cl.name cl
from sysibm.sysColumns cl
), v9ix as
(
select 'ix' tp, strip(creator) || '.' || strip(name) nm,
case when compress <> 'N' then 'compress ' else '' end
|| case when ix_extension_type <>'' then 'expression ' else '' end v9,
ix.tbCreator cr, ix.tbName tb
from sysibm.sysIndexes ix
) , tstb as
(
select ts.dbName db, ts.name ts, tb.creator cr, tb.name tb
from sysibm.systablespace ts
full outer join sysibm.systables tb
on ts.dbName = tb.dbName and ts.name = tb.tsName
), v9 (tp, nm, v9, db, ts, cr, tb, cl) as
(
select
tp, nm, v9, tt.*, ' -- 1 ts'
from V9ts ts, tstb tt
where ts.db = tt.db and ts.ts = tt.ts
union all select
tp, nm, v9, tt.*, ' -- 2 tb'
from V9tb tb, tstb tt
where tb.cr = tt.cr and tb.tb = tt.tb
union all select
tp, nm, v9, tt.*, ' -- 3 ix'
from V9ix ix, tstb tt
where ix.cr = tt.cr and ix.tb = tt.tb
union all select
tp, nm, v9, tt.*, cl.cl
from V9cl cl, tstb tt
where cl.cr = tt.cr and cl.tb = tt.tb
)
select tp, char(left(nm, 40), 40), v9, v.*
from v9 v
where v9 <> ''
--and cr = 'GDB9998'
and ( ( cr = 'GDB9998' and tb = 'TWK573A1' )
or ( cr = 'GDB9998' and tb = 'TWK574A1' )
or ( cr = 'GDB9998' and tb = 'TWK575A1' )
)
order by cr, tb, cl
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
}¢--- A540769.WK.SQL(CATV9NEY) cre=2008-10-24 mod=2008-10-24-11.55.29 F540769 ---
set current sqlid = 'A540769'
;
delete from plan_table where queryno = 111
;
-- explain plan set queryno = 111 for
with v9ts as
(
select 'ts' tp, strip(dbName) || '.' || strip(name) nm,
case when maxPartitions > 0 then 'partitionByGrowth ' else '' end
|| case when partitions > 0 and segSize > 0
then 'universal ' else '' end
|| case when log <> 'Y' then 'notLogged ' else '' end v9,
ts.dbName db, ts.name ts
from sysibm.systablespace ts
), v9tb as
(
select 'tb' TP, strip(creator) || '.' || strip(name) nm,
case when append <> 'N' then 'append ' else '' end v9,
tb.dbName db, tb.tsName ts, tb.tbCreator cr, tb.tbName tb
from sysibm.systables tb
), v9cl as
(
select 'cl' TP, strip(tbCreator) || '.' || strip(tbName)
|| '.' || strip(name) nm,
case when hidden <> 'N' then 'hidden ' else '' end
|| case when coltype in('BIGINT', 'BINARY', 'VARBIN', 'DECFLOAT'
, 'XML') then strip(colType) || ' ' else '' end
|| case when default in ('E','F') then 'onUpdate ' else '' end v9
, cl.tbCreator cr, cl.tbName tb, cl.name cl
from sysibm.sysColumns cl
), v9ix as
(
select 'ix' tp, strip(creator) || '.' || strip(name) nm,
case when compress <> 'N' then 'compress ' else '' end
|| case when ix_extension_type <>'' then 'expression ' else '' end v9,
ix.tbCreator cr, ix.tbName tb
from sysibm.sysIndexes ix
), v9 (tp, nm, v9, cr, tb, cl) as
(
select
tp, nm, v9,
tb.creator, tb.name, ' -- 1 ts'
from V9ts ts join sysibm.sysTables tb
on ts.db = tb.dbName and ts.ts = tb.tsName
union all select
tp, nm, v9, cr , tb , ' -- 2 tb'
from V9tb tb
union all select
tp, nm, v9, ix.cr ,ix.tb,
' -- 3 ix'
from V9ix ix -- ysibm.sysTables tb
-- where ix.tbCreator = tb.creator and ix.tbName = tb.name
union all select
tp, nm, v9, cl.cr , cl.tb , cl.cl
from V9cl cl -- , sysibm.sysTables tb
-- where cl.tbCreator = tb.creator and cl.tbName = tb.name
)
select tp, char(left(nm, 40), 40), v9, v.*
from v9 v
where v9 <> ''
-- and cr = 'GDB9998'
-- and ( ( cr = 'GDB9998' and tb = 'TWK573A1' )
-- or ( cr = 'GDB9998' and tb = 'TWK574A1' )
-- or ( cr = 'GDB9998' and tb = 'TWK575A1' )
and (cr, tb) in (
select 'GDB9998', 'TWK573A1' from sysIbm.sysDummy1
union select 'GDB9998', 'TWK574A1' from sysIbm.sysDummy1
union select 'GDB9998', 'TWK575A1' from sysIbm.sysDummy1
)
order by cr, tb, cl
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
}¢--- A540769.WK.SQL(CATV9NEZ) cre=2008-10-24 mod=2008-10-24-12.49.20 F540769 ---
select tp, char(left(nm, 40), 40), v9
from s100447.db2v9 v9
-- ( select creator cr, name tb from sysibm.systables
-- ) gt
where v9.v9 <> ''
-- v9.cr = gt.cr and v9.tb = gt.tb
and ( ( v9.cr = 'GDB9998' and v9.tb= 'TWK573A1' )
or ( v9.cr = 'GDB9998' and v9.tb= 'TWK574A1' )
or ( v9.cr = 'GDB9998' and v9.tb= 'TWK575A1' )
)
;
x
set current sqlid = 'A540769'
;
declare global temporary table session.gtt1
(cr char(24), tb char(24));
insert into session.gtt1
( select creator, name from sysibm.systables
where ( ( creator = 'GDB9998' and name = 'TWK573A1' )
or ( creator = 'GDB9998' and name = 'TWK574A1' )
or ( creator = 'GDB9998' and name = 'TWK575A1' )
) )
;
select * from session.gtt1
;
select tp, char(left(nm, 40), 40), v9
from s100447.db2v9 v9, session.gtt1 gt
where v9.cr = gt.cr and v9.tb = gt.tb
}¢--- A540769.WK.SQL(CATXXX) cre=2012-03-16 mod=2012-03-16-17.09.45 A540769 ----
select count(*), dbname
from sysibm.sysIndexes
group by dbname
order by 1 desc
}¢--- A540769.WK.SQL(CHARSET) cre=2006-11-06 mod=2008-05-22-18.02.12 F540769 ---
select
'x 00 - 0F = œ †—Ž
' ,
'x 10 - 1F =
‡’' ,
'x 20 - 2F = €‚ƒ„…ˆ‰Š‹Œ' ,
'x 30 - 3F = ‘“”•–˜™š›ž' ,
'x 40 - 4F = âäàáãåçñ¢.<(+|' ,
'x 50 - 5F = &éêëèíîïìß!$*);^' ,
'x 60 - 6F = -/ÂÄÀÁÃÅÇѦ,%_>?' ,
'x 70 - 7F = øÉÊËÈÍÎÏÌ`:#@''="' ,
'x 80 - 8F = Øabcdefghi«»ðýþ±' ,
'x 90 - 9F = °jklmnopqrªºæ¸Æ¤' ,
'x A0 - AF = µ~stuvwxyz¡¿Ð[Þ®' ,
'x B0 - BF = ¬£¥·©§¶¼½¾Ý¨¯]´×' ,
'x C0 - CF = {ABCDEFGHIôöòóõ' ,
'x D0 - DF = }JKLMNOPQR¹ûüùúÿ' ,
'x E0 - EF = \÷STUVWXYZ²ÔÖÒÓÕ' ,
'x F0 - FF = 0123456789³ÛÜÙÚ '
from sysibm.sysDummy1
;
x
set current locale lc_ctype = 'It_CH' ;
select current locale lc_ctype from sysibm.sysdummy1;
select chr, upper(chr), int, hex(chr), hex(upper(chr))
from A540769.twk005a
order by chr asc
;
x
delete from A540769.TWK005A;
insert into A540769.TWK005A values(x'00', 0);
insert into A540769.TWK005A values(x'01', 1);
insert into A540769.TWK005A values(x'02', 2);
insert into A540769.TWK005A values(x'03', 3);
insert into A540769.TWK005A values(x'04', 4);
insert into A540769.TWK005A values(x'05', 5);
insert into A540769.TWK005A values(x'06', 6);
insert into A540769.TWK005A values(x'07', 7);
insert into A540769.TWK005A values(x'08', 8);
insert into A540769.TWK005A values(x'09', 9);
insert into A540769.TWK005A values(x'0A', 10);
insert into A540769.TWK005A values(x'0B', 11);
insert into A540769.TWK005A values(x'0C', 12);
insert into A540769.TWK005A values(x'0D', 13);
insert into A540769.TWK005A values(x'0E', 14);
insert into A540769.TWK005A values(x'0F', 15);
insert into A540769.TWK005A values(x'10', 016);
insert into A540769.TWK005A values(x'11', 017);
insert into A540769.TWK005A values(x'12', 018);
insert into A540769.TWK005A values(x'13', 019);
insert into A540769.TWK005A values(x'14', 020);
insert into A540769.TWK005A values(x'15', 021);
insert into A540769.TWK005A values(x'16', 022);
insert into A540769.TWK005A values(x'17', 023);
insert into A540769.TWK005A values(x'18', 024);
insert into A540769.TWK005A values(x'19', 025);
insert into A540769.TWK005A values(x'1A', 026);
insert into A540769.TWK005A values(x'1B', 027);
insert into A540769.TWK005A values(x'1C', 028);
insert into A540769.TWK005A values(x'1D', 029);
insert into A540769.TWK005A values(x'1E', 030);
insert into A540769.TWK005A values(x'1F', 031);
insert into A540769.TWK005A values(x'20', 032);
insert into A540769.TWK005A values(x'21', 033);
insert into A540769.TWK005A values(x'22', 034);
insert into A540769.TWK005A values(x'23', 035);
insert into A540769.TWK005A values(x'24', 036);
insert into A540769.TWK005A values(x'25', 037);
insert into A540769.TWK005A values(x'26', 038);
insert into A540769.TWK005A values(x'27', 039);
insert into A540769.TWK005A values(x'28', 040);
insert into A540769.TWK005A values(x'29', 041);
insert into A540769.TWK005A values(x'2A', 042);
insert into A540769.TWK005A values(x'2B', 043);
insert into A540769.TWK005A values(x'2C', 044);
insert into A540769.TWK005A values(x'2D', 045);
insert into A540769.TWK005A values(x'2E', 046);
insert into A540769.TWK005A values(x'2F', 047);
insert into A540769.TWK005A values(x'30', 048);
insert into A540769.TWK005A values(x'31', 049);
insert into A540769.TWK005A values(x'32', 050);
insert into A540769.TWK005A values(x'33', 051);
insert into A540769.TWK005A values(x'34', 052);
insert into A540769.TWK005A values(x'35', 053);
insert into A540769.TWK005A values(x'36', 054);
insert into A540769.TWK005A values(x'37', 055);
insert into A540769.TWK005A values(x'38', 056);
insert into A540769.TWK005A values(x'39', 057);
insert into A540769.TWK005A values(x'3A', 058);
insert into A540769.TWK005A values(x'3B', 059);
insert into A540769.TWK005A values(x'3C', 060);
insert into A540769.TWK005A values(x'3D', 061);
insert into A540769.TWK005A values(x'3E', 062);
insert into A540769.TWK005A values(x'3F', 063);
insert into A540769.TWK005A values(x'40', 064);
insert into A540769.TWK005A values(x'41', 065);
insert into A540769.TWK005A values(x'42', 066);
insert into A540769.TWK005A values(x'43', 067);
insert into A540769.TWK005A values(x'44', 068);
insert into A540769.TWK005A values(x'45', 069);
insert into A540769.TWK005A values(x'46', 070);
insert into A540769.TWK005A values(x'47', 071);
insert into A540769.TWK005A values(x'48', 072);
insert into A540769.TWK005A values(x'49', 073);
insert into A540769.TWK005A values(x'4A', 074);
insert into A540769.TWK005A values(x'4B', 075);
insert into A540769.TWK005A values(x'4C', 076);
insert into A540769.TWK005A values(x'4D', 077);
insert into A540769.TWK005A values(x'4E', 078);
insert into A540769.TWK005A values(x'4F', 079);
insert into A540769.TWK005A values(x'50', 080);
insert into A540769.TWK005A values(x'51', 081);
insert into A540769.TWK005A values(x'52', 082);
insert into A540769.TWK005A values(x'53', 083);
insert into A540769.TWK005A values(x'54', 084);
insert into A540769.TWK005A values(x'55', 085);
insert into A540769.TWK005A values(x'56', 086);
insert into A540769.TWK005A values(x'57', 087);
insert into A540769.TWK005A values(x'58', 088);
insert into A540769.TWK005A values(x'59', 089);
insert into A540769.TWK005A values(x'5A', 090);
insert into A540769.TWK005A values(x'5B', 091);
insert into A540769.TWK005A values(x'5C', 092);
insert into A540769.TWK005A values(x'5D', 093);
insert into A540769.TWK005A values(x'5E', 094);
insert into A540769.TWK005A values(x'5F', 095);
insert into A540769.TWK005A values(x'60', 096);
insert into A540769.TWK005A values(x'61', 097);
insert into A540769.TWK005A values(x'62', 098);
insert into A540769.TWK005A values(x'63', 099);
insert into A540769.TWK005A values(x'64', 100);
insert into A540769.TWK005A values(x'65', 101);
insert into A540769.TWK005A values(x'66', 102);
insert into A540769.TWK005A values(x'67', 103);
insert into A540769.TWK005A values(x'68', 104);
insert into A540769.TWK005A values(x'69', 105);
insert into A540769.TWK005A values(x'6A', 106);
insert into A540769.TWK005A values(x'6B', 107);
insert into A540769.TWK005A values(x'6C', 108);
insert into A540769.TWK005A values(x'6D', 109);
insert into A540769.TWK005A values(x'6E', 110);
insert into A540769.TWK005A values(x'6F', 111);
insert into A540769.TWK005A values(x'70', 112);
insert into A540769.TWK005A values(x'71', 113);
insert into A540769.TWK005A values(x'72', 114);
insert into A540769.TWK005A values(x'73', 115);
insert into A540769.TWK005A values(x'74', 116);
insert into A540769.TWK005A values(x'75', 117);
insert into A540769.TWK005A values(x'76', 118);
insert into A540769.TWK005A values(x'77', 119);
insert into A540769.TWK005A values(x'78', 120);
insert into A540769.TWK005A values(x'79', 121);
insert into A540769.TWK005A values(x'7A', 122);
insert into A540769.TWK005A values(x'7B', 123);
insert into A540769.TWK005A values(x'7C', 124);
insert into A540769.TWK005A values(x'7D', 125);
insert into A540769.TWK005A values(x'7E', 126);
insert into A540769.TWK005A values(x'7F', 127);
insert into A540769.TWK005A values(x'80', 128);
insert into A540769.TWK005A values(x'81', 129);
insert into A540769.TWK005A values(x'82', 130);
insert into A540769.TWK005A values(x'83', 131);
insert into A540769.TWK005A values(x'84', 132);
insert into A540769.TWK005A values(x'85', 133);
insert into A540769.TWK005A values(x'86', 134);
insert into A540769.TWK005A values(x'87', 135);
insert into A540769.TWK005A values(x'88', 136);
insert into A540769.TWK005A values(x'89', 137);
insert into A540769.TWK005A values(x'8A', 138);
insert into A540769.TWK005A values(x'8B', 139);
insert into A540769.TWK005A values(x'8C', 140);
insert into A540769.TWK005A values(x'8D', 141);
insert into A540769.TWK005A values(x'8E', 142);
insert into A540769.TWK005A values(x'8F', 143);
insert into A540769.TWK005A values(x'90', 144);
insert into A540769.TWK005A values(x'91', 145);
insert into A540769.TWK005A values(x'92', 146);
insert into A540769.TWK005A values(x'93', 147);
insert into A540769.TWK005A values(x'94', 148);
insert into A540769.TWK005A values(x'95', 149);
insert into A540769.TWK005A values(x'96', 150);
insert into A540769.TWK005A values(x'97', 151);
insert into A540769.TWK005A values(x'98', 152);
insert into A540769.TWK005A values(x'99', 153);
insert into A540769.TWK005A values(x'9A', 154);
insert into A540769.TWK005A values(x'9B', 155);
insert into A540769.TWK005A values(x'9C', 156);
insert into A540769.TWK005A values(x'9D', 157);
insert into A540769.TWK005A values(x'9E', 158);
insert into A540769.TWK005A values(x'9F', 159);
insert into A540769.TWK005A values(x'A0', 160);
insert into A540769.TWK005A values(x'A1', 161);
insert into A540769.TWK005A values(x'A2', 162);
insert into A540769.TWK005A values(x'A3', 163);
insert into A540769.TWK005A values(x'A4', 164);
insert into A540769.TWK005A values(x'A5', 165);
insert into A540769.TWK005A values(x'A6', 166);
insert into A540769.TWK005A values(x'A7', 167);
insert into A540769.TWK005A values(x'A8', 168);
insert into A540769.TWK005A values(x'A9', 169);
insert into A540769.TWK005A values(x'AA', 170);
insert into A540769.TWK005A values(x'AB', 171);
insert into A540769.TWK005A values(x'AC', 172);
insert into A540769.TWK005A values(x'AD', 173);
insert into A540769.TWK005A values(x'AE', 174);
insert into A540769.TWK005A values(x'AF', 175);
insert into A540769.TWK005A values(x'B0', 176);
insert into A540769.TWK005A values(x'B1', 177);
insert into A540769.TWK005A values(x'B2', 178);
insert into A540769.TWK005A values(x'B3', 179);
insert into A540769.TWK005A values(x'B4', 180);
insert into A540769.TWK005A values(x'B5', 181);
insert into A540769.TWK005A values(x'B6', 182);
insert into A540769.TWK005A values(x'B7', 183);
insert into A540769.TWK005A values(x'B8', 184);
insert into A540769.TWK005A values(x'B9', 185);
insert into A540769.TWK005A values(x'BA', 186);
insert into A540769.TWK005A values(x'BB', 187);
insert into A540769.TWK005A values(x'BC', 188);
insert into A540769.TWK005A values(x'BD', 189);
insert into A540769.TWK005A values(x'BE', 190);
insert into A540769.TWK005A values(x'BF', 191);
insert into A540769.TWK005A values(x'C0', 192);
insert into A540769.TWK005A values(x'C1', 193);
insert into A540769.TWK005A values(x'C2', 194);
insert into A540769.TWK005A values(x'C3', 195);
insert into A540769.TWK005A values(x'C4', 196);
insert into A540769.TWK005A values(x'C5', 197);
insert into A540769.TWK005A values(x'C6', 198);
insert into A540769.TWK005A values(x'C7', 199);
insert into A540769.TWK005A values(x'C8', 200);
insert into A540769.TWK005A values(x'C9', 201);
insert into A540769.TWK005A values(x'CA', 202);
insert into A540769.TWK005A values(x'CB', 203);
insert into A540769.TWK005A values(x'CC', 204);
insert into A540769.TWK005A values(x'CD', 205);
insert into A540769.TWK005A values(x'CE', 206);
insert into A540769.TWK005A values(x'CF', 207);
insert into A540769.TWK005A values(x'D0', 208);
insert into A540769.TWK005A values(x'D1', 209);
insert into A540769.TWK005A values(x'D2', 210);
insert into A540769.TWK005A values(x'D3', 211);
insert into A540769.TWK005A values(x'D4', 212);
insert into A540769.TWK005A values(x'D5', 213);
insert into A540769.TWK005A values(x'D6', 214);
insert into A540769.TWK005A values(x'D7', 215);
insert into A540769.TWK005A values(x'D8', 216);
insert into A540769.TWK005A values(x'D9', 217);
insert into A540769.TWK005A values(x'DA', 218);
insert into A540769.TWK005A values(x'DB', 219);
insert into A540769.TWK005A values(x'DC', 220);
insert into A540769.TWK005A values(x'DD', 221);
insert into A540769.TWK005A values(x'DE', 222);
insert into A540769.TWK005A values(x'DF', 223);
insert into A540769.TWK005A values(x'E0', 224);
insert into A540769.TWK005A values(x'E1', 225);
insert into A540769.TWK005A values(x'E2', 226);
insert into A540769.TWK005A values(x'E3', 227);
insert into A540769.TWK005A values(x'E4', 228);
insert into A540769.TWK005A values(x'E5', 229);
insert into A540769.TWK005A values(x'E6', 230);
insert into A540769.TWK005A values(x'E7', 231);
insert into A540769.TWK005A values(x'E8', 232);
insert into A540769.TWK005A values(x'E9', 233);
insert into A540769.TWK005A values(x'EA', 234);
insert into A540769.TWK005A values(x'EB', 235);
insert into A540769.TWK005A values(x'EC', 236);
insert into A540769.TWK005A values(x'ED', 237);
insert into A540769.TWK005A values(x'EE', 238);
insert into A540769.TWK005A values(x'EF', 239);
insert into A540769.TWK005A values(x'F0', 240);
insert into A540769.TWK005A values(x'F1', 241);
insert into A540769.TWK005A values(x'F2', 242);
insert into A540769.TWK005A values(x'F3', 243);
insert into A540769.TWK005A values(x'F4', 244);
insert into A540769.TWK005A values(x'F5', 245);
insert into A540769.TWK005A values(x'F6', 246);
insert into A540769.TWK005A values(x'F7', 247);
insert into A540769.TWK005A values(x'F8', 248);
insert into A540769.TWK005A values(x'F9', 249);
insert into A540769.TWK005A values(x'FA', 250);
insert into A540769.TWK005A values(x'FB', 251);
insert into A540769.TWK005A values(x'FC', 252);
insert into A540769.TWK005A values(x'FD', 253);
insert into A540769.TWK005A values(x'FE', 254);
insert into A540769.TWK005A values(x'FF', 255);
commit;
x
------------------------------------------------------------------------
-- --
-- Database 2 Administration Tool (DB2 Admin) , program 5697-L90 (C) --
-- --
-- ADB2GEN - Extract object definitions from the DB2 Catalog tables --
-- --
-- Input prepared on : DBAF (810) Extract time : 2006-11-06 12:28 --
-- --
-- Catalog values overridden : none
-- --
-- Generate : SG=N DB=Y TS=Y TB=Y VW=Y IX=Y SY=Y AL=Y LB=Y CM=Y FK=Y --
-- TG=Y UT=N UF=N SP=N SQ=N --
-- Grants : SG=N DB=Y TS=Y TB=N VW=N SC=N UT=N UF=N SP=N SQ=N --
-- --
------------------------------------------------------------------------
--
SET CURRENT SQLID='S100447';
------------------------------------------------------------------------
-- --
-- ADB2GEN: Generate DDL for Tablespace=A005A In Database DA540769 --
-- --
------------------------------------------------------------------------
--
------------------------------------------------------------------------
-- Database=DA540769 Stogroup=GSMS
-- Tablespace=DA540769.A005A
------------------------------------------------------------------------
--
CREATE TABLESPACE A005A
IN DA540769
USING STOGROUP GSMS
PRIQTY 48 SECQTY 7200
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID EBCDIC
DEFINE YES
MAXROWS 99;
--
------------------------------------------------------------------------
-- Table=A540769.TWK005A In DA540769.A005A
------------------------------------------------------------------------
--
CREATE TABLE A540769.TWK005A
(chr CHAR(1) FOR SBCS DATA NOT NULL,
int integer not null
)
IN DA540769.A005A
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE;
--
LABEL ON TABLE A540769.TWK005A IS 'charset';
--
}¢--- A540769.WK.SQL(CHECKRTA) cre=2010-06-28 mod=2010-07-12-08.00.58 A540769 ---
------------------------------------------------------------------
-- analysis 1:
-- show reorg history and current reorgimportance&Reason
-- for TS partitions with many reorgs
with u as
( select db, sp ts, part, p.tst, reoTst, reason,
reorgLastTime, totalRows,
reorgInserts, reorgUpdates, reorgDeletes
from tstRts.tRtsReoRunPart p, tstRts.tRtsReoRunTsStats s
where p.ty = 't' and p.reoTst is not null
and p.tst = s.tst and p.rng = s.rng and p.part = s.partition
and p.tst > current timestamp - 1 month
union all select db, ts, part, updateStatsTime tst,
cast('9999-12-31-23.59.59' as timestamp) reoTst,
strip(char(importance)) || ' ' || reason reason,
reorgLastTime, totalRows,
reorgInserts, reorgUpdates, reorgDeletes
from tstRts.vRtsReoTS
where importance > 0
), d as
(
select count(*) cnt, db, ts, part
from u
group by db, ts, part
-- having count(*) > 1
having max(reoTst) = '9999-12-31-23.59.59'
and max(case when reoTst <= current timestamp
then reotst
else '1000-12-31-23.59.59'
end) > current timestamp - 40 hours
)
select d.cnt, u.*
from u, d
where u.db = d.db and u.ts = d.ts and u.part = d.part
order by cnt desc, db, ts, part, tst desc
;
;x;
------------------------------------------------------------------
-- analysis 1 old:
-- show reorg history and current reorgimportance&Reason
-- for all partitions with many reorgs
with d as
(
select count(*) cnt, db, sp, part,
min(p.ty) ty, min(dbid) dbid, min(spid) spid
from tstRts.tRtsReoRunPart p
, tstRts.tRtsReoRunJob j
where p.sta = 'r' and p.reoTst is not null
and p.tst = j.tst
group by db, sp, part
having count(*) > 1 and min(job) not like 'A%'
)
, h (cnt, db, sp, part, cla, reason, tst) as
(
select d.cnt, d.db, d.sp, d.part, d.ty, p.reason, p.tst
from d, tstRts.tRtsReoRunPart p
where p.sta = 'r'
and d.db = p.db and d.sp = p.sp and d.part = p.part
union all select d.cnt, d.db, d.sp, d.part,
'T' || strip(char(importance)), r.reason, r.updateStatsTime
from d, tstRts.vRtsReoTs r
where d.ty = 't'
and d.db = r.db and d.sp = r.ts and d.part = r.part
and d.dbid = r.dbid and d.spid = r.psid and d.part = r.part
union all select d.cnt, d.db, d.sp, d.part,
'I' || strip(char(importance)), r.reason, r.updateStatsTime
from d, tstRts.vRtsReoIx r
where d.ty = 'i'
and d.db = r.db and d.sp = r.is and d.part = r.part
and d.dbid = r.dbid and d.spid = r.isoBid and d.part = r.part
)
select * from h
-- where db like 'A%'
order by 1 desc, 2, 3, 4, 7 desc
;x;
------------------------------------------------------------------
-- analysis 2 TS:
-- show reorg history and current reorgImportance&Reason
-- for all partitions wich should be reorganized NOW
select r.db, r.ts, r.part,
substr(strip(char(r.importance)) || ' ' || r.reason, 1, 30),
substr(p.reason, 1, 30) "pReason", p.tst pTst, p.reoTst,
r.lastBuilt
from tstRts.tRtsReoRunPart p
, tstRts.vRtsReoTS r
where p.sta = 'r'
and p.db = r.db and p.sp = r.ts and p.part = r.part
and r.importance > 0
and r.lastBuilt > p.tst
order by importance, r.reason, db, ts, part
with ur
;?;
------------------------------------------------------------------
-- analysis 3 TS:
-- show mismatch between reorgTst and realtime stats
-- ???????????titions wich should be reorganized NOW
select r.db, r.ts, r.part,
substr(strip(char(r.importance)) || ' ' || r.reason, 1, 30),
substr(p.reason, 1, 30) "pReason", p.tst pTst, p.reoTst,
r.lastBuilt
from tstRts.tRtsReoRunPart p
, tstRts.tRtsReoRunJob j
, tstRts.vRtsReoTS r
where p.sta = 'r'
and p.db = r.db and p.sp = r.ts and p.part = r.part
and p.tst = j.tst
and ((r.lastBuilt > p.tst and r.lastBuilt < j.eoj
and (p.reoTst is null or p.reoTime is null)
or ((r.lastBuilt < p.tst or r.lastBuilt > j.eoj)
and (p.reoTst is not null or p.reoTime is not null))))
order by importance, r.reason, db, ts, part
with ur
;?;
having count(*) > 1 and min(job) not like 'A%'
)
, h (cnt, db, sp, part, cla, reason, tst) as
(
select d.cnt, d.db, d.sp, d.part, d.ty, p.reason, p.tst
from d, tstRts.tRtsReoRunPart p
where p.sta = 'r'
and d.db = p.db and d.sp = p.sp and d.part = p.part
union all select d.cnt, d.db, d.sp, d.part,
'T' || strip(char(importance)), r.reason, r.updateStatsTime
from d, tstRts.vRtsReoTs r
where d.ty = 't'
and d.db = r.db and d.sp = r.ts and d.part = r.part
and d.dbid = r.dbid and d.spid = r.psid and d.part = r.part
union all select d.cnt, d.db, d.sp, d.part,
'I' || strip(char(importance)), r.reason, r.updateStatsTime
from d, tstRts.vRtsReoIx r
where d.ty = 'i'
and d.db = r.db and d.sp = r.is and d.part = r.part
and d.dbid = r.dbid and d.spid = r.isoBid and d.part = r.part
)
select * from h
-- where db like 'A%'
order by 1 desc, 2, 3, 4, 7 desc
;
select count(*), db, sp, part, min(p.tst), max(p.tst),
min(job), max(job)
from tstRts.tRtsReoRunPart p
, tstRts.tRtsReoRunJob j
where p.sta = 'r'
and p.tst = j.tst
group by db, sp, part
order by 1 desc, 2, 3, 4
;
x;
select count(*), ty, sta
from tstRts.tRtsReoRunPart
group by ty, sta
}¢--- A540769.WK.SQL(CHECKRTB) cre=2009-10-29 mod=2010-07-28-10.08.17 A540769 ---
select *
from tstRts.tRtsReoRunTSStats
where dbName = 'WI02A1P' and name = 'A101H'
and partition = 17
order by dbName, name, partition, tst desc
with ur
;x;
select *
from oa1p.tadm36a1
where sta like '%A%'
;
select *
from a540769.vrtsReoTs
where dbName like 'MF%'
;
x
select bigInt(345345e5), bigInt(345345e5) /123
, bigInt(199), round(real(bigInt( 199)) /100, 0)
from sysibm.sysdummy1
;
x
}¢--- A540769.WK.SQL(CHECKRTC) cre=2010-07-08 mod=2010-07-09-15.04.29 A540769 ---
------------------------------------------------------------------
-- checkJob1: höchstens ein Job mit eoj Null
--
select count(*) cnt, count(*) - count(eoj) eojNull, job
from tstRts.tRtsReoRunJob j
group by job
order by 2 desc, 1 desc, job
with ur
fetch first 100 rows only
;
select *
from tstRts.tRtsReoRunJob j
where eoj is null -- and job = 'A540769'
order by job, tst
with ur
;
-- delete from tstRts.tRtsReoRunJob j
-- where tst = '2010-04-01-00.00.00.000000' ;
-- commit;
------------------------------------------------------------------
-- checkJob2: eoj < next tst und eoj=null am schluss
--
with n as
( select (select count(*)
from tstRts.tRtsReoRunJob a
where a.job = j.job and a.tst > j.tst ) nextCnt,
(select min(tst)
from tstRts.tRtsReoRunJob a
where a.job = j.job and a.tst > j.tst ) nextTst,
j.*
from tstRts.tRtsReoRunJob j
)
select case when eoj is null and nextCnt > 0 then 'eoj null not last'
when nextTst <= eoj then 'eoj <= next'
else '' end err,
n.*
from n
order by 1 desc, job, tst
with ur
fetch first 100 rows only
;
-- delete from tstRts.tRtsReoRunJob j
-- where tst in ('2010-06-17-18.15.52.749858'
-- ,'2010-06-24-10.31.48.639515'
-- ,'2010-06-24-10.36.04.847417'
-- ,'2010-07-07-07.44.33.195139'
-- ,'2010-07-07-07.45.28.484218'
-- )
-- ; commit ;
------------------------------------------------------------------
-- checkPart1: reoTst between tst and eoj
--
select p.*, j.*
from tstRts.tRtsReoRunPart p, tstRts.tRtsReoRunJob j
where p.tst = j.tst
and (p.reoTst <= j.tst or p.reoTst >= j.eoj)
order by j.job, j.tst desc
with ur
;
------------------------------------------------------------------
-- checkPart2: check reoTime and ranges
--
select case
when p.paVon <> r.paVon then '97 paVon <>'
when p.paBis <> r.paBis then '96 paBis <>'
when p.part < r.paVon or p.part > r.paBis
then '95 part outside von bis'
when p.reoTime is not null and r.cnt <> r.cntReoTst
then '85 reoTime with reoTst null'
when p.reoTime is not null and p.part <> p.paVon
then '84 reoTime part <> paVon'
when p.reoTime <> r.rngTime
then '83 reoTime <> rngTime'
when p.reoTime is null and r.cnt = r.cntReoTst
and p.part = p.paVon
then '05 reoTime can be set'
else '' end err, p.*, r.*
from tstRts.tRtsReoRunPart p, tstRts.vRtsReoRunRng r
where p.tst = r.tst and p.rng = r.rng
order by 1 desc, p.tst desc
fetch first 100 rows only
;
??? ;
------------------------------------------------------------------
-- checkPart? ??? rnghstens ein Job mit eoj Null
--
; fetch first 100 rows only
select count(*) cnt,
sum(case when reoTst is null then 1 else 0 end) reoTstNull,
sum(case when reoTime is null then 1 else 0 end) reoTimeNull,
j.*
from tstRts.tRtsReoRunPart j
group by job
order by 2 desc, 3 desc, 1 desc
with ur
------------------------------------------------------------------
-- check 5 parts ==> reoTst between tst and eoj
--
select r.reoTime,
(select count(*) from tstRts.tRtsReoRunPart p
where p.tst = r.tst and p.rng = r.rng
and r.reoTst is not null) "partsNN",
(select count(*) from tstRts.tRtsReoRunPart p
where p.tst = r.tst and p.rng = r.rng
and r.reoTst is null) "partsNull",
(select max(reoTst) from tstRts.tRtsReoRunPart p
where p.tst = r.tst and p.rng = r.rng
) "partsReoTstMax",
r.*, j.*
from tstRts.tRtsReoRunJob j, tstRts.tRtsReoRunPart r
where j.tst = r.tst
and r.part = r.paVon
order by job, j.tst, r.rng, r.ty, r.sta
with ur
fetch first 100 rows only
;
------------------------------------------------------------------
-- check 4 parts ==> reoTst between tst and eoj
--
select p.*, j.*
from tstRts.tRtsReoRunJob j, tstRts.tRtsReoRunPart p
where j.tst = p.tst
and ( p.reoTst <= j.tst
or p.reoTst >= j.eoj)
order by job, j.tst, p.rng, p.ty, p.sta
with ur
fetch first 100 rows only
;
------------------------------------------------------------------
-- check 3 parts ==> count statistics pro range and type
--
select job, j.tst, p.rng, p.ty, p.sta,
count(*) cntParts,
sum(case when reoTst is null then 1 else 0 end) reoTstNull,
min(reoTst) reoTstMin,
max(reoTst) reoTstMax
from tstRts.tRtsReoRunJob j, tstRts.tRtsReoRunPart p
where j.tst = p.tst
group by job, j.tst, p.rng, p.ty, p.sta
order by job, j.tst, p.rng, p.ty, p.sta
with ur
fetch first 100 rows only
;;
------------------------------------------------------------------
-- analysis 2 TS:
-- show reorg history and current reorgImportance&Reason
-- for all partitions wich should be reorganized NOW
select r.db, r.ts, r.part,
substr(strip(char(r.importance)) || ' ' || r.reason, 1, 30),
substr(p.reason, 1, 30) "pReason", p.tst pTst, p.reoTst,
r.lastBuilt
from tstRts.tRtsReoRunPart p
, tstRts.vRtsReoTS r
where p.sta = 'r'
and p.db = r.db and p.sp = r.ts and p.part = r.part
and r.importance > 0
and r.lastBuilt > p.tst
order by importance, r.reason, db, ts, part
with ur
;?;
------------------------------------------------------------------
-- analysis 3 TS:
-- show mismatch between reorgTst and realtime stats
-- ???????????titions wich should be reorganized NOW
select r.db, r.ts, r.part,
substr(strip(char(r.importance)) || ' ' || r.reason, 1, 30),
substr(p.reason, 1, 30) "pReason", p.tst pTst, p.reoTst,
r.lastBuilt
from tstRts.tRtsReoRunPart p
, tstRts.tRtsReoRunJob j
, tstRts.vRtsReoTS r
where p.sta = 'r'
and p.db = r.db and p.sp = r.ts and p.part = r.part
and p.tst = j.tst
and ((r.lastBuilt > p.tst and r.lastBuilt < j.eoj
and (p.reoTst is null or p.reoTime is null)
or ((r.lastBuilt < p.tst or r.lastBuilt > j.eoj)
and (p.reoTst is not null or p.reoTime is not null))))
order by importance, r.reason, db, ts, part
with ur
;?;
having count(*) > 1 and min(job) not like 'A%'
)
, h (cnt, db, sp, part, cla, reason, tst) as
(
select d.cnt, d.db, d.sp, d.part, d.ty, p.reason, p.tst
from d, tstRts.tRtsReoRunPart p
where p.sta = 'r'
and d.db = p.db and d.sp = p.sp and d.part = p.part
union all select d.cnt, d.db, d.sp, d.part,
'T' || strip(char(importance)), r.reason, r.updateStatsTime
from d, tstRts.vRtsReoTs r
where d.ty = 't'
and d.db = r.db and d.sp = r.ts and d.part = r.part
and d.dbid = r.dbid and d.spid = r.psid and d.part = r.part
union all select d.cnt, d.db, d.sp, d.part,
'I' || strip(char(importance)), r.reason, r.updateStatsTime
from d, tstRts.vRtsReoIx r
where d.ty = 'i'
and d.db = r.db and d.sp = r.is and d.part = r.part
and d.dbid = r.dbid and d.spid = r.isoBid and d.part = r.part
)
select * from h
-- where db like 'A%'
order by 1 desc, 2, 3, 4, 7 desc
;
------------------------------------------------------------------
-- analysis 1:
-- show reorg history and current reorgimportance&Reason
-- for all partitions with many reorgs
with d as
(
select count(*) cnt, db, sp, part,
min(p.ty) ty, min(dbid) dbid, min(spid) spid
from tstRts.tRtsReoRunPart p
, tstRts.tRtsReoRunJob j
where p.sta = 'r'
and p.tst = j.tst
group by db, sp, part
having count(*) > 1 and min(job) not like 'A%'
)
, h (cnt, db, sp, part, cla, reason, tst) as
(
select d.cnt, d.db, d.sp, d.part, d.ty, p.reason, p.tst
from d, tstRts.tRtsReoRunPart p
where p.sta = 'r'
and d.db = p.db and d.sp = p.sp and d.part = p.part
union all select d.cnt, d.db, d.sp, d.part,
'T' || strip(char(importance)), r.reason, r.updateStatsTime
from d, tstRts.vRtsReoTs r
where d.ty = 't'
and d.db = r.db and d.sp = r.ts and d.part = r.part
and d.dbid = r.dbid and d.spid = r.psid and d.part = r.part
union all select d.cnt, d.db, d.sp, d.part,
'I' || strip(char(importance)), r.reason, r.updateStatsTime
from d, tstRts.vRtsReoIx r
where d.ty = 'i'
and d.db = r.db and d.sp = r.is and d.part = r.part
and d.dbid = r.dbid and d.spid = r.isoBid and d.part = r.part
)
select * from h
-- where db like 'A%'
order by 1 desc, 2, 3, 4, 7 desc
;x;
select count(*), db, sp, part, min(p.tst), max(p.tst),
min(job), max(job)
from tstRts.tRtsReoRunPart p
, tstRts.tRtsReoRunJob j
where p.sta = 'r'
and p.tst = j.tst
group by db, sp, part
order by 1 desc, 2, 3, 4
;
x;
select count(*), ty, sta
from tstRts.tRtsReoRunPart
group by ty, sta
---------------------------------------------------------
-- fix: überlüssige parts löschen
update
tstRts.tRtsReoRunPart p
set rngI0 = -9876
where sta = '0'
and not exists (select 1 FROM tstRts.tRtsReoRunTSStats t
where t.tst = p.tst and t.rng = p.rng)
and not exists (select 1 FROM tstRts.tRtsReoRunIxStats i
where i.tst = p.tst and i.rng = p.rng)
;
delete from tstRts.tRtsReoRunPart p
where rngI0 = -9876
;
with c as
( select
(select count(*) FROM tstRts.tRtsReoRunTSStats t
where t.tst = p.tst and t.rng = p.rng) cntTs,
(select count(*) FROM tstRts.tRtsReoRunIxStats i
where i.tst = p.tst and i.rng = p.rng) cntIx,
p.*
from tstRts.tRtsReoRunPart p
)
select * from c
where cntTs = 0 and cntIx = 0
;
commit;
;; where not exists (
select 1 from tstRts.tRts
;
select ty, count(*)
from tstRts.tRtsReoRunPart
group by ty
;;
select *
from tstRts.tRtsReoRunPart
where not exists0-07-08-00.07.35.261954'
;
}¢--- A540769.WK.SQL(CHECKRTF) cre=2010-04-09 mod=2010-07-09-15.11.50 A540769 ---
set current path = 'OA1T';
---------------------------------------------------------------------
-- compare new and old vRtsReoTS
--
select count(*),
substr(strip(char(n.importance)) || ' ' || n.reason, 1, 9) "new",
fOsFmtE7(sum(n.reorgTime)) "reoTime",
fOsFmtE7(sum(n.reorgTime * (sign(n.importance)
+ case when left(o.reason,3)='no ' then 0 else -1 end
))) "tiDiff",
substr(o.reason, 1, 7) "old"
from tstRts.vRtsReoTS n
full outer join s100447.vRtsReoTs o
on n.db = o.db and n.ts = o.ts and n.part = o.part
and n.dbid = o.dbid and n.psid = o.psid
and n.partition = o.partition
-- where n.db like 'MF%'
group by
substr(strip(char(n.importance)) || ' ' || n.reason, 1, 9),
substr(o.reason, 1, 7)
order by 1 desc
with ur
;
---------------------------------------------------------------------
-- compare new and old vRtsReoIX
--
select count(*),
substr(strip(char(n.importance)) || ' ' || n.reason, 1, 9) "new",
fOsFmtE7(sum(n.reorgTime)) "reoTime",
fOsFmtE7(sum(n.reorgTime * (sign(n.importance)
+ case when left(o.reason,3)='no ' then 0 else -1 end
))) "tiDiff",
substr(o.reason, 1, 7) "old"
from tstRts.vRtsReoIX n
full outer join s100447.vRtsReoIX o
on n.db = o.db and n.ts = o.ts and n.is=o.is and n.part=o.part
and n.dbid = o.dbid and n.isoBid = o.isoBid
and n.partition = o.partition
-- where n.db like 'MF%'
group by
substr(strip(char(n.importance)) || ' ' || n.reason, 1, 9),
substr(o.reason, 1, 7)
order by 1 desc
with ur
;
}¢--- A540769.WK.SQL(CHECKRTZ) cre=2008-03-04 mod=2008-04-18-17.18.58 F540769 ---
select char(reason, 40), char(db, 8), char(ts, 8), partition
from s100447.vRtsReoTS
where db like 'CZ%' and ts like 'A202%'
;
x
select * KS09A1T.IKS835A6
from s100447.vRtsReoTSSchwelle
where db = 'CZ03G1T' and ts = 'A324A' and part = 1
;
select DAYS(CURRENT TIMESTAMP) - DAYS(
max(coalesce(reorgLastTime, createdTS),
coalesce(loadrLastTime, createdTS))) ,
DAYS(CURRENT TIMESTAMP) , DAYS(
max(coalesce(reorgLastTime, createdTS),
coalesce(loadrLastTime, createdTS))),
DAYS(CURRENT TIMESTAMP- 5 hour)
from sysibm.tableSpaceSTats r,
sysibm.systablePart p
where r.dbName = p.dbName and r.name = p.tsname
and r.partition = p.partition
and r.dbName = 'CZ03G1T' and r.name = 'A324A' and r.partition = 1
;
CZ03G1T.A364A:5
}¢--- A540769.WK.SQL(CIAMIRCO) cre=2010-07-02 mod=2010-07-02-13.24.08 A540769 ---
select count(*), c from
(
SELECT case
when FI02701A < 3200000 then '<<< '
when FI02701A > 4500000 then '>>> '
when FI02701A = 3200000 and FI02704A <= '31.12.2010' then '<=240'
when FI02701A = 4500000 and FI02704A > '31.01.2000' then '>=242'
when FI02704A <= '31.01.2000' then '241 <='
else '241 >'
end c, t.*
FROM F383353.TFI027A1 T
) c
WHERE FI02701A BETWEEN 3000000 AND 4700000
group by c
WITH UR;
;x;
SELECT COUNT(*)
FROM F383353.TFI027A1 T
WHERE FI02701A BETWEEN 3200001 AND 4500000 AND FI02704A<='31.01.2000'
WITH UR;
}¢--- A540769.WK.SQL(CIX) cre=2006-03-03 mod=2006-03-03-14.19.52 F540769 -------
create index gdb9998.iwk001a0 on table gdb9998.twk001a
(wk001num);
}¢--- A540769.WK.SQL(CMNALA) cre=2011-07-29 mod=2011-07-29-13.12.29 A540769 ----
select *
from SSXX28Q0.CMN_PARMS_C2100821
where lat_urid in (
select lat_urid
from SSXX28Q0.CMN_PARMS_C2100821
where parm_class = 'ALLOWERO'
and parm_Key = '*'
and parm_value = 'Y'
)
order by lat_lrsn desc
}¢--- A540769.WK.SQL(CMNBIDEF) cre=2008-04-15 mod=2008-04-15-18.00.12 F540769 ---
INSERT INTO SSXX28Q0.DB2_BIND_PARMS (
APPL,PGM,RZ,SSID, COLLID,LOCATION,
OWNER,QUALIFIER,ISOLATION,EXPLAIN,CURRENTDATA,
RELEASE,DBPROTOCOL,DEGREE,DYNAMICRULES,KEEPDYNAMIC,
REOPT,OPTHINT,IMMEDWRITE,FLAG,PATH,VALIDATE,SQLERROR,
DEFER )
VALUES (
'DEFAULT ' , --APPL CHAR(8)
'DEFAULT ' , --PGM CHAR(8)
'RZ2 ' , --RZ CHAR(4)
'DBOF ' , --SSID CHAR(8)
'DEFAULT ' , --COLLID CHAR(18)
' ' , --LOCATION CHAR(16)
'S100447 ' , --OWNER CHAR(8)
'OA1P ' , --QUALIFIER CHAR(8)
'CS' , --ISOLATION CHAR(2)
'YES ' , --EXPLAIN CHAR(4)
'NO ' , --CURRENTDATA CHAR(4)
'COMMIT ' , --RELEASE CHAR(12)
' ' , --DBPROTOCOL CHAR(8)
'1 ' , --DEGREE CHAR(4)
'RUN ' , --DYNAMICRULES CHAR(12)
'NO ' , --KEEPDYNAMIC CHAR(4)
'NOREOPT' , --REOPT CHAR(8)
' ' , --OPTHINT CHAR(8)
' ' , --IMMEDWRITE CHAR(4)
'I' , --FLAG CHAR(1)
' ' , --PATH VARCHAR(256)
'BIND' , --VALIDATE CHAR(4)
'NOPACKAGE ' , --SQLERROR CHAR(12)
'NODEFER ' --DEFER CHAR(8)
);
}¢--- A540769.WK.SQL(CMNBIND) cre=2007-01-05 mod=2008-03-10-12.12.34 F540769 ---
------- neue table ----------------------------------------------------
select * from oa1p.bind_parameters
where APPL LIKE 'PC%'
;
X
Xnsert into oa1p.BIND_parameters
( APPL
, PGM
, COLLID
, INSTALLDATE
, OWNER
, QUALIFIER
, ISOLATION
, EXPLAIN
, CURRENTDATA
, RELEASE
, DBPROTOCOL
, DEGREE
, DYNAMICRULES
, KEEPDYNAMIC
, REOPT
, OPTHINT
, IMMEDWRITE
, FLAG
, PATH
, VALIDATE
, SQLERROR
, SQLRULES
, DEFER
, ENCODING
, ROUNDING
-- CREATEDTS
-- ALTEREDTS
-- ALTEREDBY
)
SELECT 'IVN0' APPL
, 'YPC0650' PGM
, COLLID
, '08.02.2008' INSTALLDATE
, OWNER
, QUALIFIER
, ISOLATION
, EXPLAIN
, CURRENTDATA
, RELEASE
, DBPROTOCOL
, DEGREE
, DYNAMICRULES
, KEEPDYNAMIC
, REOPT
, OPTHINT
, IMMEDWRITE
, FLAG
, PATH
, VALIDATE
, SQLERROR
, SQLRULES
, DEFER
, ENCODING
, ROUNDING
-- CREATEDTS
-- ALTEREDTS
-- ALTEREDBY
FROM oa1p.bind_parameters
WHERE
pgm = 'YPC0650'
;
select * from oa1p.bind_parameters
where pgm = 'YPC0580'
;
commit;
x------ alte table ----------------------------------------------------
SELECT APPL
, RZ
, PGM
, SSID
, COLLID
, LOCATION
, OWNER
, QUALIFIER
, p.*
FROM SSXX28Q0.DB2_BIND_PARMS p
WHERE
-- RZ = 'RZ1' AND SSID = 'DBAF'
-- and collid between 'AV05' and 'AV08'
pgm = 'YPC0610' --and pgm >= 'YBER02' and pgm <= 'YBER03'
order by rz, ssid, pgm, collid
;
insert into SSXX28Q0.DB2_BIND_PARMS
( APPL
, RZ
, PGM
, SSID
, COLLID
, LOCATION
, OWNER
, QUALIFIER
, ISOLATION
, EXPLAIN
, CURRENTDATA
, RELEASE
, DBPROTOCOL
, DEGREE
, DYNAMICRULES
, KEEPDYNAMIC
, REOPT
, OPTHINT
, IMMEDWRITE
, FLAG
, PATH
, VALIDATE
, SQLERROR
, DEFER
)
SELECT APPL
, RZ
, 'YPC0650' pgm
, SSID
, COLLID
, LOCATION
, OWNER
, QUALIFIER -- 'OA1P' || SUBSTR(QUALIFIER, 5) QUALIFIER
, ISOLATION
, EXPLAIN
, CURRENTDATA
, RELEASE
, DBPROTOCOL
, DEGREE
, DYNAMICRULES
, KEEPDYNAMIC
, REOPT
, OPTHINT
, IMMEDWRITE
, FLAG
, PATH
, VALIDATE
, SQLERROR
, DEFER
-- , CREATEDTS
-- , ALTEREDTS
FROM SSXX28Q0.DB2_BIND_PARMS p
WHERE
pgm = 'YPC0610'
;
SELECT APPL
, RZ
, PGM
, SSID
, COLLID
, LOCATION
, OWNER
, QUALIFIER
, p.*
FROM SSXX28Q0.DB2_BIND_PARMS p
WHERE
-- RZ = 'RZ1' AND SSID = 'DBAF'
-- and collid between 'AV05' and 'AV08'
pgm = 'YPC0650'
order by rz, ssid, pgm, collid
;
commit;
}¢--- A540769.WK.SQL(CMNJUEN) cre=2007-01-05 mod=2007-01-05-16.40.50 F540769 ---
insert
into SSXX28Q0.DB2_BIND_PARMS
( APPL
, RZ
, PGM
, SSID
, COLLID
, LOCATION
, OWNER
, QUALIFIER
, ISOLATION
, EXPLAIN
, CURRENTDATA
, RELEASE
, DBPROTOCOL
, DEGREE
, DYNAMICRULES
, KEEPDYNAMIC
, REOPT
, OPTHINT
, IMMEDWRITE
, FLAG
, PATH
, VALIDATE
, SQLERROR
, DEFER
)
SELECT APPL
, RZ
, PGM
, SSID
-- , COLLID
, case collid
when 'AV05' then 'AV13'
when 'AV06' then 'AV14'
when 'AV07' then 'AV15'
when 'AV08' then 'AV16'
end
, LOCATION
, OWNER
-- , QUALIFIER
, case collid
when 'AV05' then 'OA1A13'
when 'AV06' then 'OA1A14'
when 'AV07' then 'OA1A15'
when 'AV08' then 'OA1A16'
end
, ISOLATION
, EXPLAIN
, CURRENTDATA
, RELEASE
, DBPROTOCOL
, DEGREE
, DYNAMICRULES
, KEEPDYNAMIC
, REOPT
, OPTHINT
, IMMEDWRITE
, FLAG
, PATH
, VALIDATE
, SQLERROR
, DEFER
-- , CREATEDTS
-- , ALTEREDTS
FROM SSXX28Q0.DB2_BIND_PARMS
WHERE RZ = 'RZ1' AND SSID = 'DBAF'
and collid between 'AV05' and 'AV08'
and pgm in ('AV0070 ',
'AV5560 ',
'YAVAAAN',
'YAVAAVL',
'YAVANAN',
'YAVBDAN',
'YAVBDVL',
'YAVBELE',
'YAVBVG ',
'YAVCBET',
'YAVCBST',
'YAVCOAN',
'YAVCOBO',
'YAVCPID',
'YAVCUAN',
'YAVDUAN',
'YAVERAN',
'YAVERBA',
'YAVERTR',
'YAVERVL',
'YAVFNAN',
'YAVFSL ',
'YAVGDW ',
'YAVGMP ',
'YAVGPD ',
'YAVMAT ',
'YAVMAVL',
'YAVOVVW',
'YAVPFX ',
'YAVPOS1',
'YAVSTA ',
'YAV0062',
'YAV0065',
'YAV0066',
'YAV0067',
'YAV0096',
'YAV0098',
'YAV0099',
'YAV0101',
'YAV0102',
'YAV0112',
'YAV0113',
'YAV0114',
'YAV0115',
'YAV0116',
'YAV0117',
'YAV0119',
'YAV0123',
'YAV0124',
'YAV0126')
;
select pgm, collid, qualifier, p.*
FROM SSXX28Q0.DB2_BIND_PARMS p
WHERE RZ = 'RZ1' AND SSID = 'DBAF'
-- and collid between 'AV05' and 'AV08'
and pgm in ('AV0070 ',
'AV5560 ',
'YAVAAAN',
'YAVAAVL',
'YAVANAN',
'YAVBDAN',
'YAVBDVL',
'YAVBELE',
'YAVBVG ',
'YAVCBET',
'YAVCBST',
'YAVCOAN',
'YAVCOBO',
'YAVCPID',
'YAVCUAN',
'YAVDUAN',
'YAVERAN',
'YAVERBA',
'YAVERTR',
'YAVERVL',
'YAVFNAN',
'YAVFSL ',
'YAVGDW ',
'YAVGMP ',
'YAVGPD ',
'YAVMAT ',
'YAVMAVL',
'YAVOVVW',
'YAVPFX ',
'YAVPOS1',
'YAVSTA ',
'YAV0062',
'YAV0065',
'YAV0066',
'YAV0067',
'YAV0096',
'YAV0098',
'YAV0099',
'YAV0101',
'YAV0102',
'YAV0112',
'YAV0113',
'YAV0114',
'YAV0115',
'YAV0116',
'YAV0117',
'YAV0119',
'YAV0123',
'YAV0124',
'YAV0126')
order by pgm, collid, qualifier
;
rollback
;
}¢--- A540769.WK.SQL(CMNKELL) cre=2007-01-12 mod=2007-01-12-10.28.01 F540769 ---
update SSXX28Q0.DB2_BIND_PARMS
set explain = 'YES' ,
appl = 'XBS'
where pgm like 'YBER0%'
;
select *
FROM SSXX28Q0.DB2_BIND_PARMS p
WHERE -- RZ = 'RZ1' -- AND SSID = 'DBAF'
-- and collid between 'AV05' and 'AV08'
pgm like 'YBER0%' --and pgm >= 'YBER02' and pgm <= 'YBER03F'
order by rz, ssid, pgm, collid
;
commit
;
x
delete from SSXX28Q0.DB2_BIND_PARMS
where ssid = 'DBOF' and pgm in ('YBER01', 'YBER04', 'YBER05',
'YBER23')
-- order by ssid, pgm, collid
;
insert into SSXX28Q0.DB2_BIND_PARMS
( APPL
, RZ
, PGM
, SSID
, COLLID
, LOCATION
, OWNER
, QUALIFIER
, ISOLATION
, EXPLAIN
, CURRENTDATA
, RELEASE
, DBPROTOCOL
, DEGREE
, DYNAMICRULES
, KEEPDYNAMIC
, REOPT
, OPTHINT
, IMMEDWRITE
, FLAG
, PATH
, VALIDATE
, SQLERROR
, DEFER
)
SELECT 'XBS' APPL
, 'RZ2' RZ
, pgm
, 'DBOF' SSID
, COLLID
, LOCATION
, OWNER
-- , QUALIFIER
, case collid
when 'BE01' then 'OA1P01'
when 'BE02' then 'OA1P02'
when 'BE03' then 'OA1P03'
when 'BE04' then 'OA1P04'
end
, ISOLATION
, EXPLAIN
, CURRENTDATA
, RELEASE
, DBPROTOCOL
, DEGREE
, DYNAMICRULES
, KEEPDYNAMIC
, REOPT
, OPTHINT
, IMMEDWRITE
, FLAG
, PATH
, VALIDATE
, SQLERROR
, DEFER
-- , CREATEDTS
-- , ALTEREDTS
FROM SSXX28Q0.DB2_BIND_PARMS p
WHERE RZ = 'RZ1' AND SSID = 'DBAF'
-- and collid between 'AV05' and 'AV08'
and pgm like 'YBER0%' and pgm in ('YBER02F', 'YBER03F')
;
;
x
select * from SSXX28Q0.DB2_BIND_PARMS
where pgm like 'YBER%' and ssid = 'DBTF'
order by ssid, pgm, collid
;
}¢--- A540769.WK.SQL(CMNPLAN) cre=2008-09-12 mod=2008-09-16-11.38.51 F540769 ---
$=appl = AURA
$=coll = AU
$=inst = 01.01.2001
call sqlConnect DBOC
$;
$<<eof
AU5070 l
YAUADCC
YAUADCE
YAUCORC
YAUCRCE
YAU016D
YAU016F
YAU016I
YAU016S
YAU016U
YAU018D
YAU018F
YAU018I
YAU018S
YAU018U
YAU019D
YAU019F
YAU019I
YAU019S
YAU019U
YAU030D l
YAU030F l
YAU030I l
YAU030S l
YAU030U l
YAU180D
YAU180F
YAU180I
YAU180S
YAU180U
YAU181D
YAU181F
YAU181I
YAU181S
YAU181U
YAU190D
YAU190F
YAU190I
YAU190S
YAU190U
YAU191D
YAU191F
YAU191I
YAU191S
YAU191U
YXAUECE
YXAUENC
YXAUEN2
YXAUGED
YXAUGOD
YYAUATR
YYAUAT0
eof $@for w $@{
parse upper value $w with w opt .
$$ pgm <$(w 'opt' opt$)>
call sqlExec "insert into oa1p.bind_parameters" ,
"(APPL, pgm, collid, installdate, owner," ,
" qualifier, isolation, explain, currentdata, release, ",
" dbprotocol, degree, dynamicrules, keepdynamic, reopt," ,
" opthint, immedwrite,flag, path, validate,",
" sqlerror, sqlrules, defer, encoding, rounding)",
"select" ,
" '"$appl"', '"w"', '"$coll"', '"$inst"', owner," ,
" qualifier, isolation, explain, currentdata, release, ",
" dbprotocol, degree, dynamicrules, keepdynamic, reopt," ,
" opthint, immedwrite,flag, path, validate,",
" sqlerror, sqlrules, defer, encoding, rounding ",
" from oa1p.bind_parameters ",
" where appl = 'DEFAULT' and pgm = 'DEFAULT'"
$;
$<<eof
DBBA OA1A
DBBA OA1A CHSKA000DBAF
DVTB OA1T
DVTB OA1T CHSKA000DBTF
DVBP OA1P
DVBP OA1P CHSKA000DBOF
eof $@for su $@{
parse value $su with s q l .
if l = '' | opt <> 'L' then $@{
$$ subsys $(s$) qual $(q$) loc $(l$)|
call sqlExec "insert into oa1p.bind_exceptions" ,
"(APPL, pgm, collid, installdate," ,
" LOCATION, ssid, qualifier ) values " ,
"('"$appl"', '"w"', '"$coll"', '"$inst"'," ,
" '"l"', '"s"', '"q"')"
$}
$}
$;
$** call sqlExec rollback
call sqlCommit
$}
$;
call sqlDisconnect
$***out 20080916 11:38:39
pgm <AU5070 opt L>
subsys DBBA qual OA1A loc |
subsys DVTB qual OA1T loc |
subsys DVBP qual OA1P loc |
pgm <YAUADCC opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAUADCE opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAUCORC opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAUCRCE opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU016D opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU016F opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU016I opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU016S opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU016U opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU018D opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU018F opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU018I opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU018S opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU018U opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU019D opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU019F opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU019I opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU019S opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU019U opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU030D opt L>
subsys DBBA qual OA1A loc |
subsys DVTB qual OA1T loc |
subsys DVBP qual OA1P loc |
pgm <YAU030F opt L>
subsys DBBA qual OA1A loc |
subsys DVTB qual OA1T loc |
subsys DVBP qual OA1P loc |
pgm <YAU030I opt L>
subsys DBBA qual OA1A loc |
subsys DVTB qual OA1T loc |
subsys DVBP qual OA1P loc |
pgm <YAU030S opt L>
subsys DBBA qual OA1A loc |
subsys DVTB qual OA1T loc |
subsys DVBP qual OA1P loc |
pgm <YAU030U opt L>
subsys DBBA qual OA1A loc |
subsys DVTB qual OA1T loc |
subsys DVBP qual OA1P loc |
pgm <YAU180D opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU180F opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU180I opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU180S opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU180U opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU181D opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU181F opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU181I opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU181S opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU181U opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU190D opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU190F opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU190I opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU190S opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU190U opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU191D opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU191F opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU191I opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU191S opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU191U opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YXAUECE opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YXAUENC opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YXAUEN2 opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YXAUGED opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YXAUGOD opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YYAUATR opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YYAUAT0 opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
$***out 20080916 11:38:05
}¢--- A540769.WK.SQL(COLDIS) cre=2006-05-03 mod=2006-05-03-17.01.31 F540769 ----
select *
FROM SYSIBM.SYSCOLdist
where tbowner = 'DGDB9998' and tbname = 'TWK001A'
;
select *
FROM SYSIBM.SYSCOLumns
where tbcreator = 'DGDB9998' and tbname = 'TWK001A'
}¢--- A540769.WK.SQL(CONST) cre=2007-01-29 mod=2007-01-29-17.56.38 F540769 -----
SELECT 1, .2, 3., -.1E1
FROM SYSIBM
. "SYSDUMMY1 "
;
}¢--- A540769.WK.SQL(CONSTDEP) cre=2007-05-15 mod=2007-05-15-13.29.26 F540769 ---
select * from sysibm.syschecks c, sysibm.systables t
where c.tbowner = t.creator and c.tbname = t.name
and
(t.dbname like 'BJAA_0001'
or t.dbname = 'DBJ01' or t.dbname like 'DNF%')
;
x
select
char(strip(c.bSchema) ||'.'|| strip(c.bName), 20) "b",
char(strip(dTbcreator) ||'.'|| strip(dTbName), 20) "d",
char(dConstName, 30)
from sysibm.sysConstDep c-- , sysIbm.sysTables t
-- where
-- (t.name = c.bName or t.name = c.dTbName)
-- and
-- (t.dbname like 'BJAA_0001'
-- or t.dbname = 'DBJ01' or t.dbname like 'DNF%')
}¢--- A540769.WK.SQL(CONSUM) cre=2012-09-04 mod=2012-09-04-16.48.10 A540769 ----
-- ¢DBOF!
-- Control Summary SQL für RZ2/DBOF job QMW0008P
-- generiert am 12/07/18 11:06:10
-- durch rz1/dsn.source.tecSv(conSumGe)
-- ||| alle Aenderung dortdrin ||||||
--************************************************************
--?? fehlende IncrCopies Tablespaces, letzte 8 Tage:
--************************************************************
---- begin @proc missFUllcopies1: fehlende Fullcopies -----------------
with p as (
SELECT PT.DBNAME, pt.tsName, pt.partition,
( SELECT char(timestamp) || icType
FROM SYSIBM.SYSCOPY CP
WHERE PT.DBNAME = CP.DBNAME
AND PT.TSNAME = CP.TSNAME
AND cp.dsNum in (PT.PARTITION, 0)
AND CP.ICTYPE IN ('F','R','X')
AND CP.TIMESTAMP > CURRENT TIMESTAMP - 7 days
order by timestamp desc
fetch first 1 row only
) laFull,
r.nActive,
COPYLASTTIME,
COPYUPDATEDPAGES,
COPYCHANGES,
COPYUPDATETIME
---- end @proc selIncrCopy: select fullcopy etc. --------------------
FROM SYSIBM.SYSDATABASE DB
join SYSIBM.SYSTABLESPACE TS
on DB.NAME = PT.DBNAME
join SYSIBM.SYSTABLEPART PT
on DB.NAME = TS.DBNAME
AND TS.NAME = PT.TSNAME
left join SYSIBM.SYSTABLESpaceStats r
on r.dbid = db.dbid
and r.psid = ts.psid
and r.partition = pt.partition
WHERE 0 = 0
---- end @proc missFUllcopies1: fehlende Fullcopies -----------------
---- begin @proc exclude ----------------------------------------------
----- begin @proc exclGen: gemeinsame excludes -------------------------
AND NOT (PT.DBNAME like 'DSNDB%') -- DB2 CATALOG
AND NOT (PT.DBNAME LIKE 'DSN8%') -- IBM TEST DB
AND NOT (PT.DBNAME LIKE 'WKDBD%') -- DB2 WORK DATABASE
AND NOT (PT.DBNAME = 'DSNTESQ') -- DB2 CATALOG CLONE
AND NOT (PT.DBNAME LIKE 'DB2MAPP%') -- REORG MAPPING TABLES
AND NOT (PT.DBNAME LIKE 'DB2PLAN%') -- explain tables
and not translate(PT.dbName, '999999999AAAAAA', '012345678FISWXY')
= 'DA999999' -- user datenbanken
AND NOT (PT.DBNAME LIKE 'DB2ALA%') -- marec generated
AND NOT (PT.DBNAME LIKE '%MAREC%') -- marec generated
AND NOT (PT.DBNAME LIKE 'DACME%') -- Mail Heinz Bühler
---- end @proc exclGen: gemeinsame excludes -------------------------
AND NOT (PT.DBNAME = 'XC01A1P' AND PT.TSNAME LIKE 'A2%' )
-- EOS: Armin Breyer
AND NOT (PT.DBNAME = 'XR01A1P' AND PT.TSNAME LIKE 'A2%' )
-- ERET: Armin Breyer
AND NOT (PT.DBNAME = 'CSQDBOF' AND PT.TSNAME like 'TSBLOB%' )
---- end @proc exclude ----------------------------------------------
AND DB.TYPE NOT IN ('T','W')
---- begin @proc missFUllcopies2: fehlende Fullcopies -----------------
AND TS.NTABLES <> 0
AND PT.SPACEF <> -1 -- attention space is sometimes wrong|
AND NOT EXISTS (
---- begin @proc selIncrCopy: select fullcopy etc. --------------------
SELECT ' '
FROM SYSIBM.SYSCOPY CP
WHERE PT.DBNAME = CP.DBNAME
AND PT.TSNAME = CP.TSNAME
AND cp.dsNum in (PT.PARTITION, 0)
AND (( CP.ICTYPE IN ('I', 'F','R','X') -- copy or fullLog
AND CP.TIMESTAMP > CURRENT TIMESTAMP - 2 hours
) or ((CP.ICTYPE = 'C' -- created today
-- part added today
or (CP.ICTYPE = 'A' and CP.sType = 'A')
) and date(cp.timestamp) >= current date
) )
---- end @proc selIncrCopy: select fullcopy etc. --------------------
)
)
, q as
(
select case when laFull < char(current timestamp - 172 hours)
then 'full old'
when copyUpdateTime > current timestamp - 7 hours
then 'no newUpd'
when nActive * 0.1 <= COPYUPDATEDPAGES then 'full upda'
when COPYUPDATEDPAGES <> 0 or copyChanges <> 0 then 'inc'
else 'no changes'
end copy,
p.*
from p
)
select *
from q
where left(copy, 2) <> 'no'
and dbName like 'AU%'
-- r.copyUpdateTime < current timestamp - 2 hours
ORDER BY DBNAME, TSNAME, PARTITION
WITH UR;
---- end @proc missFUllcopies2: fehlende Fullcopies -----------------
;x;
select (select max(char(c.timestamp) || ' ' || char(c.dsNum)
|| icType || sType)
from sysibm.sysCopy c
where c.dbName = p.dbName and c.tsName = p.tsName
and c.dsNum in (0, p.partition)
AND C.ICTYPE IN ('I', 'F','R','X', 'C', 'A')
and (c.icType <> 'A' or c.sType = 'A')
) -- part added today
select (select max(char(c.timestamp) || ' ' || char(c.dsNum)
|| icType || sType)
from sysibm.sysCopy c
where c.dbName = p.dbName and c.tsName = p.tsName
and c.dsNum in (0, p.partition)
AND C.ICTYPE IN ('I', 'F','R','X', 'C', 'A')
and (c.icType <> 'A' or c.sType = 'A')
) -- part added today
from sysibm.sysTablePart p
where dbName = 'MF01A1P' and tsName = 'A150A'
order by partition
with ur;x;
---- end @proc selIncrCopy: select fullcopy etc. --------------------
)
order by r.timestamp desc
fetch first row only
)
;x;
select p.partition, c.*
from sysibm.sysTablePart p
left join sysibm.sysCopy c
on c.dbName = p.dbName and c.tsName = p.tsName
and (c.timestamp, c.dsNum, c.icType) in
(select r.timestamp, r.dsNum, r.icType
from sysibm.sysCopy r
where r.dbName = p.dbName and r.tsName = p.tsName
and r.dsNum in (0, p.partition)
order by r.timestamp desc
fetch first row only
)
where p.dbName = 'MF01A1P' and p.tsName = 'A150A'
order by dbName, tsName, dsNum
;x;
selectcs as (
select dbName, tsName, dsNum
from sysibm.sysCopy c
-- ¢DBOF!
-- Control Summary SQL für RZ2/DBOF job QMW0008P
-- generiert am 12/07/18 11:06:10
-- durch rz1/dsn.source.tecSv(conSumGe)
-- ||| alle Aenderung dortdrin ||||||
--************************************************************
--?? fehlende IncrCopies Tablespaces, letzte 8 Tage:
--************************************************************
---- begin @proc missFUllcopies1: fehlende Fullcopies -----------------
SELECT PT.DBNAME, pt.tsName, pt.partition,
( SELECT icType || ' ' || char(timestamp)
FROM SYSIBM.SYSCOPY CP
WHERE PT.DBNAME = CP.DBNAME
AND PT.TSNAME = CP.TSNAME
AND cp.dsNum in (PT.PARTITION, 0)
AND CP.ICTYPE IN ('F','R','X')
-- AND CP.TIMESTAMP > CURRENT TIMESTAMP - 7 days
order by timestamp desc
fetch first 1 row only
) laFull
---- end @proc selIncrCopy: select fullcopy etc. --------------------
FROM SYSIBM.SYSDATABASE DB
join SYSIBM.SYSTABLESPACE TS
on DB.NAME = PT.DBNAME
join SYSIBM.SYSTABLEPART PT
on DB.NAME = TS.DBNAME
AND TS.NAME = PT.TSNAME
join SYSIBM.SYSTABLESpaceStats r
on r.dbid = db.dbid
and r.psid = ts.psid
and r.partition = pt.partition
WHERE
r.copyUpdateTime < current timestamp - 2 hours
---- end @proc missFUllcopies1: fehlende Fullcopies -----------------
---- begin @proc exclude ----------------------------------------------
----- begin @proc exclGen: gemeinsame excludes -------------------------
AND NOT (PT.DBNAME like 'DSNDB%') -- DB2 CATALOG
AND NOT (PT.DBNAME LIKE 'DSN8%') -- IBM TEST DB
AND NOT (PT.DBNAME LIKE 'WKDBD%') -- DB2 WORK DATABASE
AND NOT (PT.DBNAME = 'DSNTESQ') -- DB2 CATALOG CLONE
AND NOT (PT.DBNAME LIKE 'DB2MAPP%') -- REORG MAPPING TABLES
AND NOT (PT.DBNAME LIKE 'DB2PLAN%') -- explain tables
and not translate(PT.dbName, '999999999AAAAAA', '012345678FISWXY')
= 'DA999999' -- user datenbanken
AND NOT (PT.DBNAME LIKE 'DB2ALA%') -- marec generated
AND NOT (PT.DBNAME LIKE '%MAREC%') -- marec generated
AND NOT (PT.DBNAME LIKE 'DACME%') -- Mail Heinz Bühler
---- end @proc exclGen: gemeinsame excludes -------------------------
AND NOT (PT.DBNAME = 'XC01A1P' AND PT.TSNAME LIKE 'A2%' )
-- EOS: Armin Breyer
AND NOT (PT.DBNAME = 'XR01A1P' AND PT.TSNAME LIKE 'A2%' )
-- ERET: Armin Breyer
AND NOT (PT.DBNAME = 'CSQDBOF' AND PT.TSNAME like 'TSBLOB%' )
---- end @proc exclude ----------------------------------------------
AND DB.TYPE NOT IN ('T','W')
---- begin @proc missFUllcopies2: fehlende Fullcopies -----------------
AND TS.NTABLES <> 0
AND PT.SPACEF <> -1 -- attention space is sometimes wrong|
AND NOT EXISTS (
---- begin @proc selIncrCopy: select fullcopy etc. --------------------
SELECT ' '
FROM SYSIBM.SYSCOPY CP
WHERE PT.DBNAME = CP.DBNAME
AND PT.TSNAME = CP.TSNAME
AND cp.dsNum in (PT.PARTITION, 0)
AND (( CP.ICTYPE IN ('I', 'F','R','X') -- copy or fullLog
AND CP.TIMESTAMP > CURRENT TIMESTAMP - 2 hours
) or ((CP.ICTYPE = 'C' -- created today
-- part added today
or (CP.ICTYPE = 'A' and CP.sType = 'A')
) and date(cp.timestamp) >= current date
) )
---- end @proc selIncrCopy: select fullcopy etc. --------------------
)
ORDER BY DBNAME, TSNAME, PT.PARTITION
WITH UR;
---- end @proc missFUllcopies2: fehlende Fullcopies -----------------
;x;
select (select max(char(c.timestamp) || ' ' || char(c.dsNum)
|| icType || sType)
from sysibm.sysCopy c
where c.dbName = p.dbName and c.tsName = p.tsName
and c.dsNum in (0, p.partition)
AND C.ICTYPE IN ('I', 'F','R','X', 'C', 'A')
and (c.icType <> 'A' or c.sType = 'A')
) -- part added today
select (select max(char(c.timestamp) || ' ' || char(c.dsNum)
|| icType || sType)
from sysibm.sysCopy c
where c.dbName = p.dbName and c.tsName = p.tsName
and c.dsNum in (0, p.partition)
AND C.ICTYPE IN ('I', 'F','R','X', 'C', 'A')
and (c.icType <> 'A' or c.sType = 'A')
) -- part added today
from sysibm.sysTablePart p
where dbName = 'MF01A1P' and tsName = 'A150A'
order by partition
with ur;x;
---- end @proc selIncrCopy: select fullcopy etc. --------------------
)
order by r.timestamp desc
fetch first row only
)
;x;
select p.partition, c.*
from sysibm.sysTablePart p
left join sysibm.sysCopy c
on c.dbName = p.dbName and c.tsName = p.tsName
and (c.timestamp, c.dsNum, c.icType) in
(select r.timestamp, r.dsNum, r.icType
from sysibm.sysCopy r
where r.dbName = p.dbName and r.tsName = p.tsName
and r.dsNum in (0, p.partition)
order by r.timestamp desc
fetch first row only
)
where p.dbName = 'MF01A1P' and p.tsName = 'A150A'
order by dbName, tsName, dsNum
;x;
selectcs as (
select dbName, tsName, dsNum
from sysibm.sysCopy c
}¢--- A540769.WK.SQL(CPUSU) cre=2008-02-28 mod=2008-02-28-15.49.21 F540769 -----
select count(*) from s100447.DSN_STATEMNT_TABLE;
select count(*), procMs
from s100447.DSN_STATEMNT_TABLE
group by procMS
order by procMs
;
select count(*), GROUP_MEMBER, decimal(real(procSu) / procMs, 4, 1)
from s100447.DSN_STATEMNT_TABLE
where procMs > 100
group by GROUP_MEMBER, decimal(real(procSu) / procMs, 4, 1)
order by 3 asc
}¢--- A540769.WK.SQL(CREAL) cre=2006-09-29 mod=2006-09-29-15.08.43 F540769 -----
set current sqlid = 'S100447';
drop alias gdb9998.TWK003Al1;
create alias gdb9998.TWK003Al4 for gdb9998.TWK003Al3;
create alias gdb9998.TWK003Al3 for gdb9998.TWK003Al2;
create alias gdb9998.TWK003Al2 for gdb9998.TWK003Al1;
create alias gdb9998.TWK003Al1 for gdb9998.TWK003A;
}¢--- A540769.WK.SQL(CREDB) cre=2010-01-08 mod=2010-01-08-11.35.42 A540769 -----
SET CURRENT SQLID='S100447 ';
CREATE DATABASE DI017329
BUFFERPOOL BP2 INDEXBP BP1 CCSID EBCDIC STOGROUP GSMS;
CREATE DATABASE DI017256
BUFFERPOOL BP2 INDEXBP BP1 CCSID EBCDIC STOGROUP GSMS;
CREATE DATABASE DI017388
BUFFERPOOL BP2 INDEXBP BP1 CCSID EBCDIC STOGROUP GSMS;
CREATE DATABASE DI017353
BUFFERPOOL BP2 INDEXBP BP1 CCSID EBCDIC STOGROUP GSMS;
CREATE DATABASE DI017361
BUFFERPOOL BP2 INDEXBP BP1 CCSID EBCDIC STOGROUP GSMS;
CREATE DATABASE DI017248
BUFFERPOOL BP2 INDEXBP BP1 CCSID EBCDIC STOGROUP GSMS;
CREATE DATABASE DI017337
BUFFERPOOL BP2 INDEXBP BP1 CCSID EBCDIC STOGROUP GSMS;
COMMIT;
CREATE DATABASE DI017183
BUFFERPOOL BP2 INDEXBP BP1 CCSID EBCDIC STOGROUP GSMS;
}¢--- A540769.WK.SQL(CREDBQQ) cre=2006-09-21 mod=2006-09-21-15.57.42 F540769 ---
------------------------------------------------------------------------
-- --
-- Database 2 Administration Tool (DB2 Admin) , program 5697-L90 (C) --
-- --
-- ADB2GEN - Extract object definitions from the DB2 Catalog tables --
-- --
-- Input prepared on : DBAF (810) Extract time : 2006-09-21 15:45 --
-- --
-- Catalog values overridden : none
-- --
-- Generate : SG=N DB=Y TS=Y TB=Y VW=Y IX=Y SY=Y AL=Y LB=Y CM=Y FK=Y --
-- TG=Y UT=N UF=N SP=N SQ=N --
-- Grants : SG=N DB=Y TS=Y TB=N VW=N SC=N UT=N UF=N SP=N SQ=N --
-- --
------------------------------------------------------------------------
--
SET CURRENT SQLID='S100447';
------------------------------------------------------------------------
-- --
-- ADB2GEN: Generate DDL for Database DGDB9998 --
-- --
------------------------------------------------------------------------
--
--
------------------------------------------------------------------------
-- Database=QQ01A1A Stogroup=GSMS
------------------------------------------------------------------------
--
drop DATABASE qq99A1A;
commit;
CREATE DATABASE qq99A1A
BUFFERPOOL BP2
INDEXBP BP1
CCSID EBCDIC
STOGROUP GSMS;
-- Tablespace=qq99A1A.A051A
------------------------------------------------------------------------
--
CREATE TABLESPACE A051A
IN qq99A1A
USING STOGROUP GSMS
PRIQTY 48 SECQTY 7200
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID EBCDIC
DEFINE YES
MAXROWS 255;
--
------------------------------------------------------------------------
-- Table=OA1A.TQQ051A In qq99A1A.A051A
------------------------------------------------------------------------
--
CREATE TABLE OA1A.TQQ051A
(QQ051TXT CHAR(20) FOR SBCS DATA WITH DEFAULT NULL,
QQ051ID CHAR(10) FOR SBCS DATA NOT NULL,
QQ051FOR CHAR(10) FOR SBCS DATA WITH DEFAULT NULL)
IN qq99A1A.A051A
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE;
--
------------------------------------------------------------------------
-- Database=qq99A1A
-- Index=OA1A.IQQ051A0 On OA1A.TQQ051A
------------------------------------------------------------------------
--
CREATE UNIQUE INDEX OA1A.IQQ051A0
ON OA1A.TQQ051A
(QQ051ID ASC)
USING STOGROUP GSMS
PRIQTY 48 SECQTY 7200
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
NOT CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
--
SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","s100447" ;
--
CREATE VIEW OA1A.VQQ051V1 AS
SELECT *
FROM OA1A.TQQ051A ;
--
------------------------------------------------------------------------
-- View=OA1A.VQQ051V2
------------------------------------------------------------------------
--
--
CREATE VIEW OA1A.VQQ051V2 AS
SELECT *
FROM OA1A.TQQ051A ;
--
CREATE VIEW OA1A.VQQ051VA1 AS
SELECT *
FROM OA1A.TQQ051A ;
--
CREATE VIEW OA1A.VQQ051VA2 AS
SELECT *
FROM OA1A.TQQ051A ;
}¢--- A540769.WK.SQL(CREDBQQ2) cre=2006-09-21 mod=2006-09-21-16.02.27 F540769 ---
CREATE UNIQUE INDEX OA1A.IQQ051B1
ON OA1A.TQQ051A
(QQ051TXT ASC)
USING STOGROUP GSMS
PRIQTY 48 SECQTY 7200
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
NOT CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
--
SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","s100447" ;
--
CREATE VIEW OA1A.VQQ051VB1 AS
SELECT *
FROM OA1A.TQQ051A ;
--
CREATE VIEW OA1A.VQQ051VB2 AS
SELECT *
FROM OA1A.TQQ051A ;
}¢--- A540769.WK.SQL(CREDUMMY) cre=2007-08-21 mod=2007-11-06-14.51.55 F540769 ---
SET CURRENT SQLID='S100447';
-- drop database db2dummy;
commit;
CREATE DATABASE DB2DUMMY
BUFFERPOOL BP2
INDEXBP BP1
CCSID EBCDIC
STOGROUP GSMS;
CREATE TABLESPACE DUMMY
IN DB2DUMMY
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID EBCDIC
DEFINE YES
MAXROWS 255;
--
COMMIT;
--
------------------------------------------------------------------------
-- Table=A540769.TWK001A In DA540769.A001A
------------------------------------------------------------------------
--
CREATE TABLE DUMMY.DUMMY2
(DUMMY CHAR(1)
)
IN DB2DUMMY.DUMMY
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE;
LABEL ON TABLE DUMMY.DUMMY2 IS 'dummy table - nicht droppen||';
CREATE UNIQUE INDEX DUMMY.DUMMY2
ON DUMMY.DUMMY2
(DUMMY ASC)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
NOT CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
COMMIT;
}¢--- A540769.WK.SQL(CREFOR) cre=2006-07-25 mod=2006-07-25-13.37.33 F540769 ----
set current sqlid = 's100447';
drop TABLESPACE DA540769.a003a
;
commit
;
CREATE TABLESPACE A003A IN DA540769
USING STOGROUP GSMS
PRIQTY 48
SECQTY 7200
ERASE NO
FREEPAGE 0
PCTFREE 10
COMPRESS YES
GBPCACHE CHANGED
TRACKMOD YES
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CCSID EBCDIC
MAXROWS 255
CLOSE YES
SEGSIZE 64
;
CREATE TABLE A540769.TWK003A
(WK003ID CHAR(10) NOT NULL ,
WK003TXT CHAR(20) ,
WK003FOR CHAR(10) ,
WK003GEN DECIMAL(25) NOT NULL
GENERATED BY DEFAULT
AS IDENTITY
( START WITH -9999999999999999999999999 ,
INCREMENT BY +1 ,
CACHE 20 ,
NO CYCLE ,
MAXVALUE +9999999999999999999999999 ,
MINVALUE -9999999999999999999999999 )
,
CONSTRAINT WK003PRIM PRIMARY KEY (WK003ID ) )
IN DA540769.A003A
AUDIT NONE
CCSID EBCDIC
;
LABEL ON TABLE A540769.TWK003A
IS 'table drei mit foreign key'
;
CREATE UNIQUE INDEX A540769.IWK003A0
ON A540769.TWK003A
( WK003ID ASC )
USING STOGROUP GSMS
PRIQTY 48
SECQTY 7200
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
BUFFERPOOL BP1
CLOSE YES
PIECESIZE 2 G
COPY NO
;
ALTER TABLE A540769.TWK003A FOREIGN KEY WK003FOR
(WK003FOR )
REFERENCES A540769.TWK003A
(WK003ID )
ON DELETE NO ACTION ;
}¢--- A540769.WK.SQL(CREIX) cre=2006-03-03 mod=2006-03-03-17.31.19 F540769 -----
set current sqlid = 's100447' ;
-- drop index A540769.iwk001a1;
commit;
-- create index A540769.iwk001a0 on A540769.twk001a
-- (wk001num);
commit;
create unique index A540769.iwk001a1 on A540769.twk001a
(wk001name desc);
commit;
}¢--- A540769.WK.SQL(CREPART) cre= mod= ----------------------------------------
DROP TABLESPACE DGDB0211.A155A;
COMMIT;
CREATE TABLESPACE A155A
IN DGDB0211
USING STOGROUP GSMS
PRIQTY 72
SECQTY 720000
ERASE NO
FREEPAGE 0
PCTFREE 15
COMPRESS YES
DSSIZE 4 G
NUMPARTS 12
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
-- SEGSIZE 64
;
COMMIT;
CREATE TABLE DGDB0211.TID155A1
( TID155MON SMALLINT NOT NULL,
TID155TST TIMESTAMP NOT NULL,
TID155UUI CHAR(35) NOT NULL,
TID155CHA CHAR(3) NOT NULL,
TID155LNR CHAR(4) NOT NULL,
TID155VRS CHAR(4) NOT NULL,
TID155CRE CHAR(7) NOT NULL,
TID155IDT CHAR(2) NOT NULL,
TID155IDE CHAR(20) NOT NULL,
TID155ADT CHAR(2) NOT NULL,
TID155ADR CHAR(40) NOT NULL,
TID155BU CHAR(4) NOT NULL,
TID155BKS CHAR(4) NOT NULL,
TID155ARE CHAR(4) NOT NULL,
TID155CBE CHAR(8) NOT NULL,
TID155INS CHAR(8) NOT NULL
)
IN DGDB0211.A155A
;
CREATE TYPE 2 INDEX DGDB0211.IID155A1
ON DGDB0211.TID155A1
(TID155MON,
TID155TST )
USING STOGROUP GSMS
PRIQTY 72
SECQTY 72000
ERASE NO
FREEPAGE 0
PCTFREE 15
GBPCACHE ALL
CLUSTER
(
PART 1 VALUES ( 1 ) ,
PART 2 VALUES ( 2 ) ,
PART 3 VALUES ( 3 ) ,
PART 4 VALUES ( 4 ) ,
PART 5 VALUES ( 5 ) ,
PART 6 VALUES ( 6 ) ,
PART 7 VALUES ( 7 ) ,
PART 8 VALUES ( 8 ) ,
PART 9 VALUES ( 9 ) ,
PART 10 VALUES(10 ) ,
PART 11 VALUES(11 ) ,
PART 12 VALUES(12 )
)
BUFFERPOOL BP1
CLOSE YES;
CREATE TYPE 2 INDEX DGDB0211.IID155A2
ON DGDB0211.TID155A1
(TID155UUI)
USING STOGROUP GSMS
PRIQTY 72
SECQTY 72000
ERASE NO
FREEPAGE 0
PCTFREE 15
GBPCACHE ALL
BUFFERPOOL BP1
CLOSE YES;
LABEL ON TABLE DGDB0211.TID155A1
IS 'UUID Log';
LABEL ON COLUMN DGDB0211.TID155A1.TID155MON
IS 'Monat';
LABEL ON COLUMN DGDB0211.TID155A1.TID155TST
IS 'curr Timestampe';
LABEL ON COLUMN DGDB0211.TID155A1.TID155UUI
IS 'UUID';
LABEL ON COLUMN DGDB0211.TID155A1.TID155CHA
IS 'curr. Channel';
LABEL ON COLUMN DGDB0211.TID155A1.TID155LNR
IS 'Listen Nr. POV';
LABEL ON COLUMN DGDB0211.TID155A1.TID155VRS
IS 'Versions Nummer POV';
LABEL ON COLUMN DGDB0211.TID155A1.TID155CRE
IS 'Creation Date POV';
LABEL ON COLUMN DGDB0211.TID155A1.TID155IDT
IS 'Empfänger Identifikation Typ';
LABEL ON COLUMN DGDB0211.TID155A1.TID155IDE
IS 'Empfänger Identifikation';
LABEL ON COLUMN DGDB0211.TID155A1.TID155ADT
IS 'Empfänger Adresse Typ';
LABEL ON COLUMN DGDB0211.TID155A1.TID155ADR
IS 'Empfänger Adresse';
LABEL ON COLUMN DGDB0211.TID155A1.TID155BU
IS 'Business ID';
LABEL ON COLUMN DGDB0211.TID155A1.TID155BKS
IS 'Bankstelle';
LABEL ON COLUMN DGDB0211.TID155A1.TID155ARE
IS 'ARES Code';
LABEL ON COLUMN DGDB0211.TID155A1.TID155CBE
IS 'Mailt Betr';
LABEL ON COLUMN DGDB0211.TID155A1.TID155INS
IS 'Instradierung';
COMMIT;
}¢--- A540769.WK.SQL(CREPROUT) cre=2008-01-08 mod=2008-07-10-10.36.26 F540769 ---
SET CURRENT SQLID='A540769';
SET CURRENT SQLID='S100447';
DROP PROCEDURE A540769.WKUTIL;
CREATE PROCEDURE A540769.WKUTIL
(IN CMDTEXT VARCHAR(254) FOR SBCS DATA CCSID EBCDIC ,
OUT CMDRESULT VARCHAR(32704) FOR SBCS DATA CCSID EBCDIC )
DYNAMIC RESULT SETS 1
EXTERNAL NAME 'WKUTIL'
LANGUAGE REXX PARAMETER STYLE GENERAL NOT DETERMINISTIC FENCED
CALLED ON NULL INPUT MODIFIES SQL DATA NO DBINFO
-- COLLID DSNREXDE
WLM ENVIRONMENT DB2DSNR ASUTIME LIMIT 60000
STAY RESIDENT NO PROGRAM TYPE MAIN SECURITY DEFINER
INHERIT SPECIAL REGISTERS STOP AFTER SYSTEM DEFAULT FAILURES
RUN OPTIONS 'TRAP(ON)' COMMIT ON RETURN NO ;
COMMIT;
X
DROP PROCEDURE A540769.WKUTILSUB;
CREATE PROCEDURE A540769.WKUTILSUB
(IN CMDTEXT VARCHAR(254) FOR SBCS DATA CCSID EBCDIC ,
OUT CMDRESULT VARCHAR(32704) FOR SBCS DATA CCSID EBCDIC )
EXTERNAL NAME 'WKUTISUB'
LANGUAGE REXX PARAMETER STYLE GENERAL DETERMINISTIC FENCED
CALLED ON NULL INPUT MODIFIES SQL DATA
NO DBINFO WLM ENVIRONMENT DB2DSNR
ASUTIME LIMIT 60000 STAY RESIDENT NO PROGRAM TYPE MAIN
SECURITY USER INHERIT SPECIAL REGISTERS
STOP AFTER SYSTEM DEFAULT FAILURES RUN OPTIONS 'TRAP(OFF)'
COLLID DSNREXCS
COMMIT ON RETURN NO ;
COMMIT;
}¢--- A540769.WK.SQL(CRESTOPR) cre=2008-01-07 mod=2008-01-10-12.53.34 F540769 ---
SET CURRENT SQLID = 'S100447'; 00010009
-- DROP PROCEDURE A540769.PUBUTIL ; 00020013
CREATE PROCEDURE A540769.PUBUTIL 00030013
(IN CMDTEXT VARCHAR(254), 00040009
OUT CMDRESULT VARCHAR(32704)) 00050009
LANGUAGE REXX 00060009
EXTERNAL NAME WKUTIL 00070010
COLLID DSNREXDE 00080009
ASUTIME LIMIT 60 00090009
PARAMETER STYLE GENERAL 00100009
STAY RESIDENT NO 00110009
RUN OPTIONS 'TRAP(ON)' 00120009
WLM ENVIRONMENT DB2DSNR 00130009
SECURITY DB2 00140009
DYNAMIC RESULT SETS 1 00150009
COMMIT ON RETURN NO 00160009
; 00170009
COMMIT; 00180012
X 00190009
SET CURRENT SQLID = 'S100447'; 00200002
DROP PROCEDURE A540769.WKUTIL ; 00210013
CREATE PROCEDURE A540769.WKUTIL 00220013
(IN CMDTEXT VARCHAR(254), 00230001
OUT CMDRESULT VARCHAR(32704)) 00240001
LANGUAGE REXX 00250001
EXTERNAL NAME WKUTIL 00260001
COLLID DSNREXDE 00270007
ASUTIME LIMIT 60 00280001
PARAMETER STYLE GENERAL 00290001
STAY RESIDENT NO 00300001
RUN OPTIONS 'TRAP(ON)' 00310001
WLM ENVIRONMENT DB2DSNR 00320001
SECURITY DB2 00330008
DYNAMIC RESULT SETS 1 00340004
COMMIT ON RETURN NO 00350001
; 00360001
00370001
00380001
}¢--- A540769.WK.SQL(CRESYSMA) cre=2007-06-25 mod=2007-06-25-07.14.05 F540769 ---
SET CURRENT SQLID = 'S100447';
CREATE TABLESPACE CHEROCL0 IN DB2MAPP
USING STOGROUP GSMS
PRIQTY 48
SECQTY 7200
ERASE NO
FREEPAGE 0
PCTFREE 5
GBPCACHE CHANGED
TRACKMOD YES
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CCSID EBCDIC
MAXROWS 255
CLOSE YES
SEGSIZE 64
;
CREATE TABLE S100447.CHEROCL0
("TYPE" CHAR(1) NOT NULL ,
SOURCE_RID CHAR(5) NOT NULL ,
TARGET_XRID CHAR(9) NOT NULL WITH DEFAULT,
LRSN CHAR(6) NOT NULL )
IN DB2MAPP.CHEROCL0
AUDIT NONE
CCSID EBCDIC
;
CREATE UNIQUE INDEX S100447.IX_CHEROCL0
ON S100447.CHEROCL0
( SOURCE_RID ASC ,
"TYPE" ASC ,
TARGET_XRID ASC ,
LRSN ASC )
USING STOGROUP GSMS
PRIQTY 720
SECQTY 14400
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
BUFFERPOOL BP1
CLOSE YES
PIECESIZE 2 G
COPY NO
;
COMMIT
;
CREATE TABLESPACE CHEROCLT IN DB2MAPP
USING STOGROUP GSMS
PRIQTY 48
SECQTY 7200
ERASE NO
FREEPAGE 0
PCTFREE 5
GBPCACHE CHANGED
TRACKMOD YES
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CCSID EBCDIC
MAXROWS 255
CLOSE YES
SEGSIZE 64
;
CREATE TABLE S100447.CHEROCLT
("TYPE" CHAR(1) NOT NULL ,
SOURCE_RID CHAR(5) NOT NULL ,
TARGET_XRID CHAR(9) NOT NULL WITH DEFAULT,
LRSN CHAR(6) NOT NULL )
IN DB2MAPP.CHEROCLT
AUDIT NONE
CCSID EBCDIC
;
CREATE UNIQUE INDEX S100447.IX_CHEROCLT
ON S100447.CHEROCLT
( SOURCE_RID ASC ,
"TYPE" ASC ,
TARGET_XRID ASC ,
LRSN ASC )
USING STOGROUP GSMS
PRIQTY 720
SECQTY 14400
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
BUFFERPOOL BP1
CLOSE YES
PIECESIZE 2 G
COPY NO
;
COMMIT
;
CREATE TABLESPACE CHEROCLS IN DB2MAPP
USING STOGROUP GSMS
PRIQTY 48
SECQTY 7200
ERASE NO
FREEPAGE 0
PCTFREE 5
GBPCACHE CHANGED
TRACKMOD YES
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CCSID EBCDIC
MAXROWS 255
CLOSE YES
SEGSIZE 64
;
CREATE TABLE S100447.CHEROCLS
("TYPE" CHAR(1) NOT NULL ,
SOURCE_RID CHAR(5) NOT NULL ,
TARGET_XRID CHAR(9) NOT NULL WITH DEFAULT,
LRSN CHAR(6) NOT NULL )
IN DB2MAPP.CHEROCLS
AUDIT NONE
CCSID EBCDIC
;
CREATE UNIQUE INDEX S100447.IX_CHEROCLS
ON S100447.CHEROCLS
( SOURCE_RID ASC ,
"TYPE" ASC ,
TARGET_XRID ASC ,
LRSN ASC )
USING STOGROUP GSMS
PRIQTY 720
SECQTY 14400
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
BUFFERPOOL BP1
CLOSE YES
PIECESIZE 2 G
COPY NO
;
COMMIT
;
CREATE TABLESPACE CHEROCLY IN DB2MAPP
USING STOGROUP GSMS
PRIQTY 48
SECQTY 7200
ERASE NO
FREEPAGE 0
PCTFREE 5
GBPCACHE CHANGED
TRACKMOD YES
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CCSID EBCDIC
MAXROWS 255
CLOSE YES
SEGSIZE 64
;
CREATE TABLE S100447.CHEROCLY
("TYPE" CHAR(1) NOT NULL ,
SOURCE_RID CHAR(5) NOT NULL ,
TARGET_XRID CHAR(9) NOT NULL WITH DEFAULT,
LRSN CHAR(6) NOT NULL )
IN DB2MAPP.CHEROCLY
AUDIT NONE
CCSID EBCDIC
;
CREATE UNIQUE INDEX S100447.IX_CHEROCLY
ON S100447.CHEROCLY
( SOURCE_RID ASC ,
"TYPE" ASC ,
TARGET_XRID ASC ,
LRSN ASC )
USING STOGROUP GSMS
PRIQTY 720
SECQTY 14400
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
BUFFERPOOL BP1
CLOSE YES
PIECESIZE 2 G
COPY NO
;
COMMIT
;
CREATE TABLESPACE CHEROCLZ IN DB2MAPP
USING STOGROUP GSMS
PRIQTY 48
SECQTY 7200
ERASE NO
FREEPAGE 0
PCTFREE 5
GBPCACHE CHANGED
TRACKMOD YES
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CCSID EBCDIC
MAXROWS 255
CLOSE YES
SEGSIZE 64
;
CREATE TABLE S100447.CHEROCLZ
("TYPE" CHAR(1) NOT NULL ,
SOURCE_RID CHAR(5) NOT NULL ,
TARGET_XRID CHAR(9) NOT NULL WITH DEFAULT,
LRSN CHAR(6) NOT NULL )
IN DB2MAPP.CHEROCLZ
AUDIT NONE
CCSID EBCDIC
;
CREATE UNIQUE INDEX S100447.IX_CHEROCLZ
ON S100447.CHEROCLZ
( SOURCE_RID ASC ,
"TYPE" ASC ,
TARGET_XRID ASC ,
LRSN ASC )
USING STOGROUP GSMS
PRIQTY 720
SECQTY 14400
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
BUFFERPOOL BP1
CLOSE YES
PIECESIZE 2 G
COPY NO
;
COMMIT
;
}¢--- A540769.WK.SQL(CRETAQQ) cre=2006-09-21 mod=2006-09-21-15.36.47 F540769 ---
set current sqlid = 's100447';
CREATE TABLESPACE A051A
IN dgdb9998
USING STOGROUP GSMS
PRIQTY 48 SECQTY 7200
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID EBCDIC
DEFINE YES
MAXROWS 255;
--
------------------------------------------------------------------------
-- Table=gdb9998.TQQ051A In dgdb9998.A051A
------------------------------------------------------------------------
--
CREATE TABLE gdb9998.TQQ051A
(QQ051ID CHAR(10) FOR SBCS DATA NOT NULL,
QQ051TXT CHAR(20) FOR SBCS DATA WITH DEFAULT NULL,
QQ051FOR CHAR(10) FOR SBCS DATA WITH DEFAULT NULL
)
IN dgdb9998.A051A
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE;
CREATE view gdb9998.VQQ051V1 as select * from gdb9998.TQQ051A;
CREATE view gdb9998.VQQ051V2 as select * from gdb9998.TQQ051A;
--
--
------------------------------------------------------------------------
-- Database=dgdb9998
-- Index=gdb9998.IQQ051A0 On gdb9998.TQQ051A
------------------------------------------------------------------------
--
CREATE UNIQUE INDEX gdb9998.Iqq051A0
ON gdb9998.Tqq051A
(QQ051ID ASC)
USING STOGROUP GSMS
PRIQTY 48 SECQTY 7200
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
NOT CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
--
COMMIT;
}¢--- A540769.WK.SQL(CRETAWK3) cre=2006-09-14 mod=2006-09-14-16.44.06 F540769 ---
------------------------------------------------------------------------
-- --
-- Database 2 Administration Tool (DB2 Admin) , program 5697-L90 (C) --
-- --
-- ADB2GEN - Extract object definitions from the DB2 Catalog tables --
-- --
-- Input prepared on : DBAF (810) Extract time : 2006-09-14 16:43 --
-- --
-- Catalog values overridden : none
-- --
-- Generate : SG=N DB=Y TS=Y TB=Y VW=Y IX=Y SY=Y AL=Y LB=Y CM=Y FK=Y --
-- TG=Y UT=N UF=N SP=N SQ=N --
-- Grants : SG=N DB=Y TS=N TB=N VW=N SC=N UT=N UF=N SP=N SQ=N --
-- --
------------------------------------------------------------------------
--
SET CURRENT SQLID='S100447';
------------------------------------------------------------------------
-- --
-- ADB2GEN: Generate DDL for Tablespace=A003A In Database dgdb9998 --
-- --
------------------------------------------------------------------------
--
------------------------------------------------------------------------
-- Database=dgdb9998 Stogroup=GSMS
-- Tablespace=dgdb9998.A003A
------------------------------------------------------------------------
--
CREATE TABLESPACE A003A
IN dgdb9998
USING STOGROUP GSMS
PRIQTY 48 SECQTY 7200
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID EBCDIC
DEFINE YES
MAXROWS 255;
--
------------------------------------------------------------------------
-- Table=gdb9998.TWK003A In dgdb9998.A003A
------------------------------------------------------------------------
--
CREATE TABLE gdb9998.TWK003A
(WK003ID CHAR(10) FOR SBCS DATA NOT NULL,
WK003TXT CHAR(20) FOR SBCS DATA WITH DEFAULT NULL,
WK003FOR CHAR(10) FOR SBCS DATA WITH DEFAULT NULL,
WK003GEN DECIMAL(25, 0) NOT NULL
GENERATED BY DEFAULT
AS IDENTITY
(START WITH -9999999999999999999999999, INCREMENT BY 1,
CACHE 20, NO CYCLE, NO ORDER,
MAXVALUE 9999999999999999999999999,
MINVALUE -9999999999999999999999999),
CONSTRAINT WK003PRIM
PRIMARY KEY (WK003ID))
IN dgdb9998.A003A
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE;
--
LABEL ON TABLE gdb9998.TWK003A IS 'table drei mit foreign key';
--
------------------------------------------------------------------------
-- Database=dgdb9998
-- Index=gdb9998.IWK003A0 On gdb9998.TWK003A
------------------------------------------------------------------------
--
CREATE UNIQUE INDEX gdb9998.IWK003A0
ON gdb9998.TWK003A
(WK003ID ASC)
USING STOGROUP GSMS
PRIQTY 48 SECQTY 7200
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
NOT CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
--
ALTER TABLE gdb9998.TWK003A FOREIGN KEY WK003FOR
(WK003FOR)
REFERENCES gdb9998.TWK003A
(WK003ID)
ON DELETE CASCADE ENFORCED ;
--
COMMIT;
--
------------------------------------------------------------------------
-- ADB2GEN - End of generated DDL --
------------------------------------------------------------------------
--
}¢--- A540769.WK.SQL(CRETETA) cre=2006-09-05 mod=2006-09-05-17.36.12 F540769 ---
set current sqlid = 'A540769';
declare global temporary table session.gtt1
(a5 char(5));
insert into session.gtt1 values('eins');
select * from session.gtt1;
create unique index session.itt1 on session.gtt1
(a5);
insert into session.gtt1 values('eins');
commit;
select * from session.gtt1;
}¢--- A540769.WK.SQL(CRETRI) cre=2006-09-14 mod=2006-09-14-16.52.19 F540769 ----
SET CURRENT SQLID = 'S100447';
CREATE TRIGGER DGDB9998.WK003TRIG
AFTER DELETE ON GDB9998.TWK003A
REFERENCING OLD AS OLD
FOR EACH ROW MODE DB2SQL
INSERT INTO GDB9998.TWK003A
(WK003ID,
WK003TXT,
WK003FOR)
VALUES ( OLD.WK003ID,
'DELETETRIGGER',
OLD.WK003FOR
)
;
COMMIT;
}¢--- A540769.WK.SQL(CRETRIG) cre=2006-09-21 mod=2006-09-21-18.13.58 F540769 ---
CREATE TRIGGER GDB9998.QQ051TRIG2
AFTER DELETE ON GDB9998.TQQ051A
REFERENCING OLD AS OLD
FOR EACH ROW MODE DB2SQL
INSERT INTO GDB9998.TQQ051A(qq051ID, qq051TXT, qq051FOR)
VALUES(OLD.qq051ID, 'deleteTriggerZwei', OLD.qq051FOR) ;
}¢--- A540769.WK.SQL(CRETRIPA) cre=2007-09-28 mod=2007-09-28-12.05.00 F540769 ---
SET CURRENT SQLID='S100447';
drop tablespace dgdb9998.a077a;
commit;
CREATE TABLESPACE A077A
IN DGDB9998
USING STOGROUP GSMS
PRIQTY 48 SECQTY 100
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
NUMPARTS 3
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID EBCDIC
DEFINE YES
MAXROWS 255;
--
CREATE TABLE GDB9998.TWK077A
(WK077PART SMALLINT NOT NULL with default,
WK077KEY INTEGER NOT NULL,
WK077Txt CHAR(20) not null with default)
IN DGDB9998.a077A
partition by (wk077part)
( partition 1 ending at (0),
partition 2 ending at (1),
partition 3 ending at (2)
)
;
commit;
create trigger gdb9998.twk077a1Insert no cascade before insert
on gdb9998.twk077a referencing New as New
for each row mode db2sql
set WK077PART = MOD(new.WK077KEY, 3)
;
create trigger gdb9998.twk077a1Update no cascade before
update of WK077PART, WK077KEY
on gdb9998.twk077a referencing New as New
for each row mode db2sql
set WK077PART = MOD(new.WK077KEY, 3)
;
insert into gdb9998.twk077a values (77, 30, 'dreissig');
insert into gdb9998.twk077a (wk077key, wk077txt)
values(31, 'einUndDreissig');
insert into gdb9998.twk077a values (77, 32, 'zweiUndDreissig');
select * from gdb9998.twk077a;
update gdb9998.twk077a set wk077Part = 99;
select * from gdb9998.twk077a;
insert into gdb9998.twk077a
select wk077Key + 55, wk077Key + 10, '+zenh'
from gdb9998.twk077a;
insert into gdb9998.twk077a
select wk077Key + 55, wk077Key + 20, '+zwan'
from gdb9998.twk077a;
insert into gdb9998.twk077a
select wk077Key + 55, wk077Key + 55, '+ff'
from gdb9998.twk077a;
select * from gdb9998.twk077a;
commit;
}¢--- A540769.WK.SQL(CRETRIPI) cre=2007-09-28 mod=2007-09-28-12.50.15 F540769 ---
select * from gdb9998.twk077a;
x
update gdb9998.twk077a set wk077key = wk077key + 1;
select * from gdb9998.twk077a;
commit;
x
delete from gdb9998.twk077a;
insert into gdb9998.twk077a values (77, 30, 'dreissig');
insert into gdb9998.twk077a (wk077key, wk077txt)
values(31, 'einUndDreissig');
insert into gdb9998.twk077a values (77, 32, 'zweiUndDreissig');
select * from gdb9998.twk077a;
update gdb9998.twk077a set wk077Part = 99;
select * from gdb9998.twk077a;
insert into gdb9998.twk077a
select wk077Key + 55, wk077Key + 10, '+zenh'
from gdb9998.twk077a;
insert into gdb9998.twk077a
select wk077Key + 55, wk077Key + 20, '+zwan'
from gdb9998.twk077a;
insert into gdb9998.twk077a
select wk077Key + 55, wk077Key + 55, '+ff'
from gdb9998.twk077a;
select * from gdb9998.twk077a;
commit;
}¢--- A540769.WK.SQL(CRETRIP2) cre=2007-09-28 mod=2007-09-28-11.57.15 F540769 ---
set current sqlid = 'S100447';
create trigger gdb9998.twk077a1Update no cascade before
update of WK077PART, WK077KEY
on gdb9998.twk077a referencing New as New
for each row mode db2sql
set WK077PART = MOD(new.WK077KEY, 3)
;
commit;
create trigger gdb9998.twk077a1Insert no cascade before insert
on gdb9998.twk077a referencing New as New
for each row mode db2sql
set WK077PART = MOD(new.WK077KEY, 3)
;
}¢--- A540769.WK.SQL(CRETWKUP) cre=2007-03-20 mod=2007-03-20-17.39.08 F540769 ---
select * from A540769.TWK001A_UPD;
x
select current timestamp from sysibm.sysDummy1;
--#SET TERMINATOR ?
CREATE TRIGGER A540769.TWK001_upd_TRIG
AFTER UPDATE ON A540769.TWK001A
REFERENCING NEW AS NEW
OLD AS OLD
FOR EACH ROW MODE DB2SQL
begin atomic
INSERT INTO A540769.TWK001A_UPD
(FUN, KEY)
values( 'U', new.wk001name);
INSERT INTO A540769.TWK001A_UPD
(FUN, KEY)
(select 'O', old.wk001name from sysibm.sysDummy1
where old.wk001Name <> new.wk001Name
)
;
END
?
--#SET TERMINATOR ;
select current timestamp from sysibm.sysDummy1;
commit;
select current timestamp from sysibm.sysDummy1;
select * from A540769.TWK001A_UPD;
x
;
select current timestamp from sysibm.sysDummy1;
commit;
select current timestamp from sysibm.sysDummy1;
x
select * from A540769.TWK001A;
select * from A540769.TWK001A_UPD;
INSERT INTO A540769.TWK001A (WK001NAME, WK001NUM, wk001t1)
VALUES ('drei', 3, 'a');
INSERT INTO A540769.TWK001A (WK001NAME, WK001NUM, wk001t1)
VALUES ('vier', 4, 'a');
select * from A540769.TWK001A;
update A540769.TWK001A set wk001Name = left(wk001Name,9) || 'x' ;
delete from A540769.TWK001A where wk001Num in (3, 4);
select * from A540769.TWK001A;
select * from A540769.TWK001A_UPD;
cOMMIT;
x
INSERT INTO A540769.TWK001A_UPD (FUN, KEY)
VALUES ('t', 'keyEins');
INSERT into A540769.TWK001A_UPD (FUN, KEY)
VALUES ('t', 'keyZwei');
INSERT into A540769.TWK001A_UPD (FUN, KEY)
( select fun, 'x' || left(key, 10)
from A540769.TWK001A_UPD
)
;
select * from A540769.TWK001A_UPD
;
cOMMIT;
x
INSERT INTO A540769.TWK001A (WK001NAME, WK001NUM, wk001t1)
VALUES ('eins', 1, 'a');
INSERT INTO A540769.TWK001A (WK001NAME, WK001NUM, wk001t1)
VALUES ('zwei', 2, 'a');
SET CURRENT SQLID = 'S100447';
--
CREATE TABLESPACE U001U
IN DA540769
USING STOGROUP GSMS
PRIQTY 12 SECQTY 7200
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID EBCDIC
DEFINE YES
MAXROWS 255;
--
COMMIT;
--
------------------------------------------------------------------------
-- Table=A540769.TWK001A In DA540769.A001A
------------------------------------------------------------------------
--
CREATE TABLE A540769.TWK001A_UPD
(TST TIMESTAMP NOT NULL WITH DEFAULT,
FUN CHAR(1) NOT NULL,
KEY CHAR(20)
)
IN DA540769.U001U
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE;
--
drop INDEX A540769.IWK001A_UPD ;
commit;
CREATE iNDEX A540769.IWK001A_UPD
ON A540769.TWK001A_UPD
(TST ASC)
USING STOGROUP GSMS
PRIQTY 12 SECQTY 12
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
NOT CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
--
COMMIT;
-- drop TRIGGER A540769.TWK001_DEL_TRIG;
CREATE TRIGGER A540769.TWK001_DEL_TRIG
AFTER DELETE ON A540769.TWK001A
REFERENCING OLD_Table AS OLD
FOR EACH ROW MODE DB2SQL
INSERT INTO A540769.TWK001A_UPD
(FUN, KEY)
( select 'D', old.wk001name from old)
;
cOMMIT;
DROP TRIGGER A540769.TWK001_INS_TRIG ;
CREATE TRIGGER A540769.TWK001_INS_TRIG
AFTER INSERT ON A540769.TWK001A
REFERENCING NEW_Table AS NEW
FOR EACH statement MODE DB2SQL
INSERT INTO A540769.TWK001A_UPD
(FUN, KEY)
( select 'I', new.wk001name from new)
--#SET TERMINATOR ?
CREATE TRIGGER A540769.TWK001_upd_TRIG
AFTER UPDATE ON A540769.TWK001A
REFERENCING NEW AS NEW
OLD AS OLD
FOR EACH ROW MODE DB2SQL
begin atomic
INSERT INTO A540769.TWK001A_UPD
(FUN, KEY)
values( 'U', new.wk001name);
INSERT INTO A540769.TWK001A_UPD
(FUN, KEY)
(select 'O', old.wk001name from sysibm.sysDummy1
where old.wk001Name <> new.wk001Name
)
;
END
?
--#SET TERMINATOR ;
commit;
}¢--- A540769.WK.SQL(CREUSR) cre=2006-06-09 mod=2006-06-09-14.04.22 F540769 ----
SET CURRENT SQLID = 'S100447' ;
DROP TABLE GDB9998.TWKUSER ;
COMMIT
;
CREATE TABLE GDB9998.TWKUSER
(CH4 CHAR(4) NOT NULL WITH DEFAULT,
TST TIMESTAMP NOT NULL WITH DEFAULT,
USR CHAR(8) NOT NULL WITH DEFAULT USER,
SQLID CHAR(8) NOT NULL WITH DEFAULT CURRENT SQLID
)
IN DGDB9998.A001A
AUDIT NONE
CCSID EBCDIC
;
}¢--- A540769.WK.SQL(CREVW) cre=2006-09-29 mod=2006-10-19-12.57.15 F540769 -----
SET CURRENT SQLID='S100447';
-- drop view GDB9998.VQQ051V2R2 ;
commit ;
SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","s100447" ;
CREATE VIEW GDB9998.VQQ051V2R2 AS
SELECT *
FROM GDB9998.VQQ051V2R1 ;
COMMIT;
}¢--- A540769.WK.SQL(CSQDDL) cre=2014-09-07 mod=2014-09-07-12.26.44 A540769 ----
SET CURRENT SQLID = 'S100447';
?ROP DATABASE CSQDBOF ;
COMMIT;
?ROP DATABASE CSQDBOF$;
COMMIT;
?REATE DATABASE CSQDBOF
BUFFERPOOL BP2
INDEXBP BP1
STOGROUP GSMS
CCSID EBCDIC;
CREATE TABLESPACE TSADMIN
IN CSQDBOF
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
BUFFERPOOL BP2
CLOSE NO
LOCKMAX SYSTEM
SEGSIZE 64
FREEPAGE 0
PCTFREE 20
GBPCACHE CHANGED
DEFINE YES
LOGGED
TRACKMOD YES
COMPRESS NO
LOCKSIZE ANY
MAXROWS 255
CCSID EBCDIC;
CREATE TABLE CSQ.ADMIN_B_QMGR
(QMGRNAME CHARACTER(48) FOR SBCS DATA
NOT NULL
,QSGNAME CHARACTER(4) FOR SBCS DATA
NOT NULL
,QMGRNUM SMALLINT
WITH DEFAULT NULL
,ACTSTATE CHARACTER(1) FOR SBCS DATA
WITH DEFAULT NULL
,DESCR CHARACTER(64) FOR SBCS DATA
WITH DEFAULT NULL
,PLATFORM CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,IGQAUT CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,CPILEVEL INTEGER
WITH DEFAULT NULL
,CMDLEVEL INTEGER
WITH DEFAULT NULL
,"CCSID" INTEGER
WITH DEFAULT NULL
,MAXPRTY INTEGER
WITH DEFAULT NULL
,MAXMSGL INTEGER
WITH DEFAULT NULL
,SYNCPT CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,COMMANDQ CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,DEADQ CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,TRIGINT INTEGER
WITH DEFAULT NULL
,MAXHANDS INTEGER
WITH DEFAULT NULL
,AUTHOREV CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,INHIBTEV CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,LOCALEV CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,REMOTEEV CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,STRSTPEV CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,PERFMEV CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,CHAD CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,CHADEXIT CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,CLWLDATA CHARACTER(32) FOR SBCS DATA
WITH DEFAULT NULL
,CLWLEXIT CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,REPOS CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,REPOSNL CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,QMID CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,DEFXMITQ CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,VERSIONCOUNT INTEGER
WITH DEFAULT NULL
,MVERSIONL INTEGER
WITH DEFAULT NULL
,MVERSIONH INTEGER
WITH DEFAULT NULL
,QSGCREATE CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,UPDT_QMGR CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,UPDT_QMGRNUM SMALLINT
WITH DEFAULT NULL
,UPDT_STAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,CREATE_QMGR CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,CREATE_QMGRNUM SMALLINT
WITH DEFAULT NULL
,CREATE_STAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,VSOBJECT VARCHAR(2560) FOR SBCS DATA
WITH DEFAULT NULL
,BSDS_NAME1 CHARACTER(44) FOR SBCS DATA
WITH DEFAULT ' '
,BSDS_NAME2 CHARACTER(44) FOR SBCS DATA
WITH DEFAULT ' '
,BSDS_STATUS1 CHARACTER(1) FOR SBCS DATA
WITH DEFAULT X'00'
,BSDS_STATUS2 CHARACTER(1) FOR SBCS DATA
WITH DEFAULT X'00'
,CONFIGEV CHARACTER(10) FOR SBCS DATA
WITH DEFAULT 'DISABLED'
,MAXUMSGS INTEGER
WITH DEFAULT 10000
,SSLTASKS INTEGER
WITH DEFAULT 0
,SSLCRLNL CHARACTER(48) FOR SBCS DATA
WITH DEFAULT ' '
,SSLKEYR VARCHAR(256) FOR SBCS DATA
WITH DEFAULT ' '
,EXPRYINT INTEGER
WITH DEFAULT 0
,CONSTRAINT QMGRNAME PRIMARY KEY
(QMGRNAME
)
)
IN CSQDBOF.TSADMIN
APPEND NO
NOT VOLATILE CARDINALITY
DATA CAPTURE CHANGES
AUDIT NONE
CCSID EBCDIC;
CREATE UNIQUE INDEX CSQ.ADMIN_QMGR
ON CSQ.ADMIN_B_QMGR
(QMGRNAME ASC
)
NOT CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
DEFER NO
COPY NO
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
PIECESIZE 2097152K;
CREATE TABLE CSQ.ADMIN_B_QSG
(QSGNAME CHARACTER(4) FOR SBCS DATA
NOT NULL
,ARRAY_QMGR CHARACTER(32) FOR SBCS DATA
WITH DEFAULT NULL
,ARRAY_STRUC CHARACTER(64) FOR SBCS DATA
WITH DEFAULT NULL
,PRODLVL CHARACTER(3) FOR SBCS DATA
NOT NULL
,VERSIONCOUNT INTEGER
WITH DEFAULT NULL
,UPDT_QMGR CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,UPDT_QMGRNUM SMALLINT
WITH DEFAULT NULL
,UPDT_STAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,CREATE_QMGR CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,CREATE_QMGRNUM SMALLINT
WITH DEFAULT NULL
,CREATE_STAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,RECON_STAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT X'00'
,RECON_QMGRNUM SMALLINT
WITH DEFAULT 0
,CONSTRAINT QSGNAME PRIMARY KEY
(QSGNAME
)
)
IN CSQDBOF.TSADMIN
APPEND NO
NOT VOLATILE CARDINALITY
DATA CAPTURE CHANGES
AUDIT NONE
CCSID EBCDIC;
CREATE UNIQUE INDEX CSQ.ADMIN_QSG
ON CSQ.ADMIN_B_QSG
(QSGNAME ASC
)
NOT CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
DEFER NO
COPY NO
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
PIECESIZE 2097152K;
CREATE TABLE CSQ.ADMIN_B_STRBACKUP
(STRUCNAME CHARACTER(12) FOR SBCS DATA
NOT NULL
,QSGNAME CHARACTER(4) FOR SBCS DATA
NOT NULL
,QMGRNAME CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,STRUCNUM SMALLINT
WITH DEFAULT NULL
,FAIL_STAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,BSTART_RBA CHARACTER(6) FOR SBCS DATA
WITH DEFAULT NULL
,BEND_RBA CHARACTER(6) FOR SBCS DATA
WITH DEFAULT NULL
,BSTART_STAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,BEND_STAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,VERSIONCOUNT INTEGER
WITH DEFAULT NULL
,MVERSION INTEGER
WITH DEFAULT NULL
,UPDT_QMGR CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,UPDT_QMGRNUM SMALLINT
WITH DEFAULT NULL
,UPDT_STAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,CREATE_QMGR CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,CREATE_QMGRNUM SMALLINT
WITH DEFAULT NULL
,CREATE_STAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,STRUC_INTRST VARCHAR(256) FOR SBCS DATA
WITH DEFAULT NULL
,CONSTRAINT STRUCNAME PRIMARY KEY
(STRUCNAME
,QSGNAME
)
)
IN CSQDBOF.TSADMIN
APPEND NO
NOT VOLATILE CARDINALITY
DATA CAPTURE CHANGES
AUDIT NONE
CCSID EBCDIC;
CREATE UNIQUE INDEX CSQ.ADMIN_STRBACKUP
ON CSQ.ADMIN_B_STRBACKUP
(STRUCNAME ASC
,QSGNAME ASC
)
NOT CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
DEFER NO
COPY NO
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
PIECESIZE 2097152K;
CREATE TABLE CSQ.ADMIN_B_STRUCTURE
(STRUCNAME CHARACTER(12) FOR SBCS DATA
NOT NULL
,QSGNAME CHARACTER(4) FOR SBCS DATA
NOT NULL
,LH_ARRAY CHARACTER(64) FOR SBCS DATA
WITH DEFAULT NULL
,STRUC_INTRST CHARACTER(32) FOR SBCS DATA
WITH DEFAULT NULL
,STRUCNUM SMALLINT
WITH DEFAULT NULL
,PRODLVL CHARACTER(3) FOR SBCS DATA
NOT NULL
,CFSTATUS CHARACTER(1) FOR SBCS DATA
WITH DEFAULT NULL
,VERSIONCOUNT INTEGER
WITH DEFAULT NULL
,MVERSION INTEGER
WITH DEFAULT NULL
,UPDT_QMGR CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,UPDT_QMGRNUM SMALLINT
WITH DEFAULT NULL
,UPDT_STAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,CREATE_QMGR CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,CREATE_QMGRNUM SMALLINT
WITH DEFAULT NULL
,CREATE_STAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,RECOVER CHARACTER(1) FOR SBCS DATA
WITH DEFAULT 'N'
,DESCR CHARACTER(64) FOR SBCS DATA
WITH DEFAULT ' '
,OFFLOAD CHARACTER(1) FOR BIT DATA
WITH DEFAULT X'00'
,OFFLDUSE CHARACTER(1) FOR BIT DATA
WITH DEFAULT X'00'
,OFFLD1TH INTEGER
WITH DEFAULT 0
,OFFLD1SZ INTEGER
WITH DEFAULT 0
,OFFLD2TH INTEGER
WITH DEFAULT 0
,OFFLD2SZ INTEGER
WITH DEFAULT 0
,OFFLD3TH INTEGER
WITH DEFAULT 0
,OFFLD3SZ INTEGER
WITH DEFAULT 0
,DSGROUP CHARACTER(44) FOR SBCS DATA
WITH DEFAULT
,DSPREFIX_LENGTH SMALLINT
WITH DEFAULT 0
,DSBLOCK_POWER SMALLINT
WITH DEFAULT 0
,DEFAULT_DSBUFS INTEGER
WITH DEFAULT 0
,DEFAULT_DSEXPAND CHARACTER(1) FOR BIT DATA
WITH DEFAULT X'00'
,DEFAULT_DSACCESS CHARACTER(1) FOR BIT DATA
WITH DEFAULT X'00'
,QMGR_LIST VARCHAR(1024) FOR BIT DATA
WITH DEFAULT
,RECAUTO CHARACTER(1) FOR BIT DATA
WITH DEFAULT X'00'
,CFCONLOS CHARACTER(1) FOR BIT DATA
WITH DEFAULT X'00'
,CONSTRAINT STRUCNAME PRIMARY KEY
(STRUCNAME
,QSGNAME
)
)
IN CSQDBOF.TSADMIN
APPEND NO
NOT VOLATILE CARDINALITY
DATA CAPTURE CHANGES
AUDIT NONE
CCSID EBCDIC;
CREATE UNIQUE INDEX CSQ.ADMIN_STRUCTURE
ON CSQ.ADMIN_B_STRUCTURE
(STRUCNAME ASC
,QSGNAME ASC
)
NOT CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
DEFER NO
COPY NO
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
PIECESIZE 2097152K;
CREATE TABLE CSQ.EXTEND_B_QMGR
(QMGRNAME CHARACTER(48) FOR SBCS DATA
NOT NULL
,QSGNAME CHARACTER(4) FOR SBCS DATA
NOT NULL
,ACCTQ CHARACTER(10) FOR SBCS DATA
WITH DEFAULT 'ON'
,MONQ CHARACTER(10) FOR SBCS DATA
WITH DEFAULT 'OFF'
,CHLEV CHARACTER(10) FOR SBCS DATA
WITH DEFAULT 'ENABLED'
,BRIDGEEV CHARACTER(10) FOR SBCS DATA
WITH DEFAULT 'ENABLED'
,SSLEV CHARACTER(10) FOR SBCS DATA
WITH DEFAULT 'ENABLED'
,CMDEV CHARACTER(10) FOR SBCS DATA
WITH DEFAULT 'DISABLED'
,IPADDRV CHARACTER(10) FOR SBCS DATA
WITH DEFAULT 'IPV4'
,ACTCHL INTEGER
WITH DEFAULT 200
,ADOPTCHK CHARACTER(10) FOR SBCS DATA
WITH DEFAULT 'ALL'
,ADOPTMCA CHARACTER(10) FOR SBCS DATA
WITH DEFAULT 'NO'
,CHIADAPS INTEGER
WITH DEFAULT 8
,CHIDISPS INTEGER
WITH DEFAULT 5
,CHISERVP CHARACTER(32) FOR SBCS DATA
WITH DEFAULT X'00'
,DNSGROUP CHARACTER(18) FOR SBCS DATA
WITH DEFAULT ' '
,DNSWLM CHARACTER(10) FOR SBCS DATA
WITH DEFAULT 'NO'
,LSTRTMR SMALLINT
WITH DEFAULT 60
,LUGROUP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT ' '
,LUNAME CHARACTER(8) FOR SBCS DATA
WITH DEFAULT ' '
,LU62ARM CHARACTER(2) FOR SBCS DATA
WITH DEFAULT ' '
,LU62CHL INTEGER
WITH DEFAULT 200
,MAXCHL INTEGER
WITH DEFAULT 200
,OPORTMIN INTEGER
WITH DEFAULT 0
,OPORTMAX INTEGER
WITH DEFAULT 0
,RCVTIME INTEGER
WITH DEFAULT 0
,RCVTTYPE CHARACTER(10) FOR SBCS DATA
WITH DEFAULT 'MULTIPLY'
,RCVTMIN INTEGER
WITH DEFAULT 0
,TCPCHL INTEGER
WITH DEFAULT 200
,TCPKEEP CHARACTER(10) FOR SBCS DATA
WITH DEFAULT 'NO'
,TCPNAME CHARACTER(8) FOR SBCS DATA
WITH DEFAULT 'TCPIP'
,TCPSTACK CHARACTER(10) FOR SBCS DATA
WITH DEFAULT 'SINGLE'
,TRAXSTR CHARACTER(10) FOR SBCS DATA
WITH DEFAULT 'YES'
,TRAXTBL INTEGER
WITH DEFAULT 2
,SSLRKEYC INTEGER
WITH DEFAULT 0
,SQQMNAME CHARACTER(10) FOR SBCS DATA
WITH DEFAULT 'USE'
,MONACLS CHARACTER(10) FOR SBCS DATA
WITH DEFAULT 'QMGR'
,MONCHL CHARACTER(10) FOR SBCS DATA
WITH DEFAULT 'OFF'
,CLWLMRUC INTEGER
WITH DEFAULT 999999999
,CLWLUSEQ CHARACTER(10) FOR SBCS DATA
WITH DEFAULT 'LOCAL'
,ROUTEREC CHARACTER(10) FOR SBCS DATA
WITH DEFAULT 'MSG'
,ACTIVREC CHARACTER(10) FOR SBCS DATA
WITH DEFAULT 'MSG'
,CONSTRAINT QMGRNAME PRIMARY KEY
(QMGRNAME
)
)
IN CSQDBOF.TSADMIN
APPEND NO
NOT VOLATILE CARDINALITY
DATA CAPTURE CHANGES
AUDIT NONE
CCSID EBCDIC;
CREATE UNIQUE INDEX CSQ.EXTEND_QMGR
ON CSQ.EXTEND_B_QMGR
(QMGRNAME ASC
)
NOT CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
DEFER NO
COPY NO
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
PIECESIZE 2097152K;
CREATE TABLE CSQ.OBJ_B_AUTHINFO
(AUTHINFO CHARACTER(48) FOR SBCS DATA
NOT NULL
,QSGNAME CHARACTER(4) FOR SBCS DATA
NOT NULL
,AUTHTYPE CHARACTER(10) FOR SBCS DATA
NOT NULL
,DESCR CHARACTER(64) FOR SBCS DATA
WITH DEFAULT NULL
,QSGDISP CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,MVERSION INTEGER
WITH DEFAULT NULL
,LDAPPWD CHARACTER(32) FOR SBCS DATA
WITH DEFAULT NULL
,LDAPUSER VARCHAR(256) FOR SBCS DATA
WITH DEFAULT NULL
,VERSIONCOUNT INTEGER
WITH DEFAULT NULL
,UPDT_QMGR CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,UPDT_QMGRNUM SMALLINT
WITH DEFAULT NULL
,UPDT_STAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,CREATE_QMGR CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,CREATE_QMGRNUM SMALLINT
WITH DEFAULT NULL
,CREATE_STAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,CONNAME VARCHAR(264) FOR SBCS DATA
WITH DEFAULT NULL
,VSOBJECT VARCHAR(2560) FOR SBCS DATA
WITH DEFAULT NULL
,CONSTRAINT AUTHINFO PRIMARY KEY
(AUTHINFO
,QSGNAME
)
)
IN CSQDBOF.TSADMIN
APPEND NO
NOT VOLATILE CARDINALITY
DATA CAPTURE CHANGES
AUDIT NONE
CCSID EBCDIC;
CREATE UNIQUE INDEX CSQ.OBJ_AUTHINFO
ON CSQ.OBJ_B_AUTHINFO
(AUTHINFO ASC
,QSGNAME ASC
)
NOT CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
DEFER NO
COPY NO
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
PIECESIZE 2097152K;
CREATE TABLE CSQ.OBJ_B_PROCESS
(PROCNAME CHARACTER(48) FOR SBCS DATA
NOT NULL
,QSGNAME CHARACTER(4) FOR SBCS DATA
NOT NULL
,DESCR CHARACTER(64) FOR SBCS DATA
NOT NULL
,QSGDISP CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,APPLTYPE CHARACTER(4) FOR SBCS DATA
WITH DEFAULT NULL
,APPLICID VARCHAR(256) FOR SBCS DATA
WITH DEFAULT NULL
,ENVRDATA CHARACTER(128) FOR SBCS DATA
WITH DEFAULT NULL
,USERDATA CHARACTER(128) FOR SBCS DATA
WITH DEFAULT NULL
,VERSIONCOUNT INTEGER
WITH DEFAULT NULL
,UPDT_QMGR CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,UPDT_QMGRNUM SMALLINT
WITH DEFAULT NULL
,UPDT_STAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,CREATE_QMGR CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,CREATE_QMGRNUM SMALLINT
WITH DEFAULT NULL
,CREATE_STAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,VSOBJECT VARCHAR(2560) FOR SBCS DATA
WITH DEFAULT NULL
,CONSTRAINT PROCNAME PRIMARY KEY
(PROCNAME
,QSGNAME
)
)
IN CSQDBOF.TSADMIN
APPEND NO
NOT VOLATILE CARDINALITY
DATA CAPTURE CHANGES
AUDIT NONE
CCSID EBCDIC;
CREATE UNIQUE INDEX CSQ.OBJ_PROCESS
ON CSQ.OBJ_B_PROCESS
(PROCNAME ASC
,QSGNAME ASC
)
NOT CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
DEFER NO
COPY NO
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
PIECESIZE 2097152K;
CREATE TABLE CSQ.OBJ_B_QUEUE
(QNAME CHARACTER(48) FOR SBCS DATA
NOT NULL
,QSGNAME CHARACTER(4) FOR SBCS DATA
NOT NULL
,QTYPE CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,CFCACHE CHARACTER(1) FOR SBCS DATA
WITH DEFAULT NULL
,DELCOMMIT CHARACTER(1) FOR SBCS DATA
WITH DEFAULT NULL
,"CLUSTER" CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,CLUSNL CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,DEFBIND CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,DEFPRTY INTEGER
WITH DEFAULT NULL
,DEFPSIST CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,QSGDISP CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,DEFTYPE CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,DESCR CHARACTER(64) FOR SBCS DATA
WITH DEFAULT NULL
,PUT CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,BOQNAME CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,BOTHRESH INTEGER
WITH DEFAULT NULL
,DEFSOPT CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,"GET" CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,HARDENBO CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,INDXTYPE CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,INITQ CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,LHNUMBER SMALLINT
WITH DEFAULT NULL
,MAXDEPTH INTEGER
WITH DEFAULT NULL
,MAXMSGL INTEGER
WITH DEFAULT NULL
,MSGDLVSQ CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,PROCESS CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,QDEPTHHI INTEGER
WITH DEFAULT NULL
,QDEPTHLO INTEGER
WITH DEFAULT NULL
,QDPHIEV CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,QDPLOEV CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,QDPMAXEV CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,QSVCIEV CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,QSVCINT INTEGER
WITH DEFAULT NULL
,RETINTVL INTEGER
WITH DEFAULT NULL
,RNAME CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,RQMNAME CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,SHARE CHARACTER(7) FOR SBCS DATA
WITH DEFAULT NULL
,STGCLASS CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,STRUCNAME CHARACTER(12) FOR SBCS DATA
WITH DEFAULT NULL
,STRUCNUM SMALLINT
WITH DEFAULT NULL
,TARGQ CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,TRIGDATA CHARACTER(64) FOR SBCS DATA
WITH DEFAULT NULL
,TRIGDPTH INTEGER
WITH DEFAULT NULL
,"TRIGGER" CHARACTER(9) FOR SBCS DATA
WITH DEFAULT NULL
,TRIGMPRI INTEGER
WITH DEFAULT NULL
,TRIGTYPE CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,USAGE CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,XMITQ CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,VERSIONCOUNT INTEGER
WITH DEFAULT NULL
,MVERSION INTEGER
WITH DEFAULT NULL
,STRUCSTAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,UPDT_QMGR CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,UPDT_QMGRNUM SMALLINT
WITH DEFAULT NULL
,UPDT_STAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,CREATE_QMGR CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,CREATE_QMGRNUM SMALLINT
WITH DEFAULT NULL
,CREATE_STAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,VSOBJECT VARCHAR(2560) FOR SBCS DATA
WITH DEFAULT NULL
,ACCTQ CHARACTER(10) FOR SBCS DATA
WITH DEFAULT 'ON'
,MONQ CHARACTER(10) FOR SBCS DATA
WITH DEFAULT 'QMGR'
,CLWLRANK INTEGER
WITH DEFAULT 0
,CLWLPRTY INTEGER
WITH DEFAULT 0
,CLWLUSEQ CHARACTER(10) FOR SBCS DATA
WITH DEFAULT 'QMGR'
,NPMCLASS CHARACTER(10) FOR SBCS DATA
WITH DEFAULT 'NORMAL'
,CONSTRAINT QNAME PRIMARY KEY
(QNAME
,QSGNAME
)
)
IN CSQDBOF.TSADMIN
APPEND NO
NOT VOLATILE CARDINALITY
DATA CAPTURE CHANGES
AUDIT NONE
CCSID EBCDIC;
CREATE UNIQUE INDEX CSQ.OBJ_QUEUE_IX1
ON CSQ.OBJ_B_QUEUE
(QNAME ASC
,QSGNAME ASC
)
NOT CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
DEFER NO
COPY NO
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 10
PCTFREE 20
GBPCACHE CHANGED
PIECESIZE 2097152K;
CREATE INDEX CSQ.OBJ_QUEUE_IX2
ON CSQ.OBJ_B_QUEUE
(QSGNAME ASC
,QSGDISP ASC
,CREATE_STAMP ASC
)
NOT CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
DEFER NO
COPY NO
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 10
PCTFREE 20
GBPCACHE CHANGED
PIECESIZE 2097152K;
CREATE TABLE CSQ.OBJ_B_STGCLASS
(STGCNAME CHARACTER(48) FOR SBCS DATA
NOT NULL
,QSGNAME CHARACTER(4) FOR SBCS DATA
NOT NULL
,DESCR CHARACTER(64) FOR SBCS DATA
NOT NULL
,QSGDISP CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,"PSID" INTEGER
WITH DEFAULT NULL
,XCFGNAME CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,XCFMNAME CHARACTER(16) FOR SBCS DATA
WITH DEFAULT NULL
,VERSIONCOUNT INTEGER
WITH DEFAULT NULL
,UPDT_QMGR CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,UPDT_QMGRNUM SMALLINT
WITH DEFAULT NULL
,UPDT_STAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,CREATE_QMGR CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,CREATE_QMGRNUM SMALLINT
WITH DEFAULT NULL
,CREATE_STAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,VSOBJECT VARCHAR(2560) FOR SBCS DATA
WITH DEFAULT NULL
,PASSTKTA CHARACTER(8) FOR SBCS DATA
WITH DEFAULT ' '
,CONSTRAINT STGCNAME PRIMARY KEY
(STGCNAME
,QSGNAME
)
)
IN CSQDBOF.TSADMIN
APPEND NO
NOT VOLATILE CARDINALITY
DATA CAPTURE CHANGES
AUDIT NONE
CCSID EBCDIC;
CREATE UNIQUE INDEX CSQ.OBJ_STGCLASS
ON CSQ.OBJ_B_STGCLASS
(STGCNAME ASC
,QSGNAME ASC
)
NOT CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
DEFER NO
COPY NO
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
PIECESIZE 2097152K;
CREATE TABLESPACE TSADMNBL
IN CSQDBOF
BUFFERPOOL BP2
CLOSE NO
LOCKMAX SYSTEM
SEGSIZE 0
DEFINE YES
LOGGED
LOCKSIZE ANY
MAXROWS 255
CCSID EBCDIC
NUMPARTS 4
(PARTITION 1
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
PCTFREE 5
FREEPAGE 0
GBPCACHE CHANGED
COMPRESS NO
TRACKMOD YES
,PARTITION 2
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
PCTFREE 5
FREEPAGE 0
GBPCACHE CHANGED
COMPRESS NO
TRACKMOD YES
,PARTITION 3
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
PCTFREE 5
FREEPAGE 0
GBPCACHE CHANGED
COMPRESS NO
TRACKMOD YES
,PARTITION 4
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
PCTFREE 5
FREEPAGE 0
GBPCACHE CHANGED
COMPRESS NO
TRACKMOD YES);
CREATE TABLE CSQ.ADMIN_B_MESSAGES
(LEID CHARACTER(12) FOR SBCS DATA
NOT NULL
,QSGNAME CHARACTER(4) FOR SBCS DATA
NOT NULL
,SEGMENTNUM SMALLINT
NOT NULL
,MROWID ROWID
NOT NULL
GENERATED ALWAYS
,STRUCNUM SMALLINT
WITH DEFAULT NULL
,LHNUMBER SMALLINT
WITH DEFAULT NULL
,MVERSION INTEGER
WITH DEFAULT NULL
,BASEPART CHARACTER(2) FOR SBCS DATA
WITH DEFAULT NULL
,MESSAGE BLOB(512K)
WITH DEFAULT NULL
,DELCOMMIT CHARACTER(1) FOR SBCS DATA
WITH DEFAULT 'N'
,RECON_STAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT X'00'
,PERSISTENT CHARACTER(1) FOR SBCS DATA
WITH DEFAULT NULL
,MSG_STAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,CONSTRAINT LEID PRIMARY KEY
(LEID
,QSGNAME
,SEGMENTNUM
)
)
IN CSQDBOF.TSADMNBL
APPEND NO
NOT VOLATILE CARDINALITY
DATA CAPTURE CHANGES
AUDIT NONE
CCSID EBCDIC;
CREATE INDEX CSQ.CLUS_INDEX
ON CSQ.ADMIN_B_MESSAGES
(BASEPART ASC
)
CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
DEFER NO
COPY NO
PARTITION BY RANGE
(PARTITION 1 ENDING AT(X'3FFF')
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
,PARTITION 2 ENDING AT(X'7FFF')
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
,PARTITION 3 ENDING AT(X'BFFF')
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
,PARTITION 4 ENDING AT(X'FFFF')
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED);
CREATE UNIQUE INDEX CSQ.ADMIN_MESSAGES_IX1
ON CSQ.ADMIN_B_MESSAGES
(LEID ASC
,QSGNAME ASC
,SEGMENTNUM ASC
)
NOT CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
DEFER NO
COPY NO
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
PIECESIZE 2097152K;
CREATE LOB TABLESPACE TSBLOB1
IN CSQDBOF
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
BUFFERPOOL BP8
DSSIZE 4G
CLOSE NO
LOCKMAX 0
GBPCACHE SYSTEM
DEFINE YES
LOGGED
LOCKSIZE LOB;
CREATE AUXILIARY TABLE CSQ.ADMIN_MSGS_BAUX1
IN CSQDBOF.TSBLOB1
STORES CSQ.ADMIN_B_MESSAGES
APPEND NO
COLUMN MESSAGE PART 1;
CREATE UNIQUE INDEX CSQ.ADMIN_MSGS1
ON CSQ.ADMIN_MSGS_BAUX1
PADDED
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
COPY NO
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
PIECESIZE 4194304K;
CREATE LOB TABLESPACE TSBLOB2
IN CSQDBOF
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
BUFFERPOOL BP8
DSSIZE 4G
CLOSE NO
LOCKMAX 0
GBPCACHE SYSTEM
DEFINE YES
LOGGED
LOCKSIZE LOB;
CREATE AUXILIARY TABLE CSQ.ADMIN_MSGS_BAUX2
IN CSQDBOF.TSBLOB2
STORES CSQ.ADMIN_B_MESSAGES
APPEND NO
COLUMN MESSAGE PART 2;
CREATE UNIQUE INDEX CSQ.ADMIN_MSGS2
ON CSQ.ADMIN_MSGS_BAUX2
PADDED
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
COPY NO
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
PIECESIZE 4194304K;
CREATE LOB TABLESPACE TSBLOB3
IN CSQDBOF
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
BUFFERPOOL BP8
DSSIZE 4G
CLOSE NO
LOCKMAX 0
GBPCACHE SYSTEM
DEFINE YES
LOGGED
LOCKSIZE LOB;
CREATE AUXILIARY TABLE CSQ.ADMIN_MSGS_BAUX3
IN CSQDBOF.TSBLOB3
STORES CSQ.ADMIN_B_MESSAGES
APPEND NO
COLUMN MESSAGE PART 3;
CREATE UNIQUE INDEX CSQ.ADMIN_MSGS3
ON CSQ.ADMIN_MSGS_BAUX3
PADDED
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
COPY NO
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
PIECESIZE 4194304K;
CREATE LOB TABLESPACE TSBLOB4
IN CSQDBOF
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
BUFFERPOOL BP8
DSSIZE 4G
CLOSE NO
LOCKMAX 0
GBPCACHE SYSTEM
DEFINE YES
LOGGED
LOCKSIZE LOB;
CREATE AUXILIARY TABLE CSQ.ADMIN_MSGS_BAUX4
IN CSQDBOF.TSBLOB4
STORES CSQ.ADMIN_B_MESSAGES
APPEND NO
COLUMN MESSAGE PART 4;
CREATE UNIQUE INDEX CSQ.ADMIN_MSGS4
ON CSQ.ADMIN_MSGS_BAUX4
PADDED
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
COPY NO
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
PIECESIZE 4194304K;
CREATE TABLESPACE TSCHIN
IN CSQDBOF
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
BUFFERPOOL BP2
CLOSE NO
LOCKMAX SYSTEM
SEGSIZE 64
FREEPAGE 10
PCTFREE 30
GBPCACHE CHANGED
DEFINE YES
LOGGED
TRACKMOD YES
COMPRESS NO
LOCKSIZE ANY
MAXROWS 255
CCSID EBCDIC;
CREATE TABLE CSQ.ADMIN_B_SCST
(CHLCRESTAMP CHARACTER(10) FOR SBCS DATA
NOT NULL
,CHLUPDSTAMP CHARACTER(10) FOR SBCS DATA
NOT NULL
,XMITQ CHARACTER(48) FOR SBCS DATA
NOT NULL
,CHLNAME CHARACTER(20) FOR SBCS DATA
NOT NULL
,REMOTEQMGR CHARACTER(48) FOR SBCS DATA
NOT NULL
,QSGNAME CHARACTER(4) FOR SBCS DATA
NOT NULL
,OWNINGQMGR CHARACTER(4) FOR SBCS DATA
NOT NULL
,CHLTOKEN CHARACTER(20) FOR SBCS DATA
NOT NULL
,REMOTEMACH CHARACTER(20) FOR SBCS DATA
WITH DEFAULT NULL
,CHANNELSTATUS CHARACTER(1) FOR SBCS DATA
WITH DEFAULT NULL
,CHANNELTYPE INTEGER
WITH DEFAULT NULL
,LONGRETRYCOUNT INTEGER
WITH DEFAULT NULL
,SHORTRETRYCOUNT INTEGER
WITH DEFAULT NULL
,NEXTRETRYTIME INTEGER
WITH DEFAULT NULL
,"DATA" CHARACTER(4) FOR BIT DATA
WITH DEFAULT NULL
,UPDT_QMGR CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,UPDT_QMGRNUM SMALLINT
WITH DEFAULT NULL
,UPDT_STAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,CREATE_QMGR CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,CREATE_QMGRNUM SMALLINT
WITH DEFAULT NULL
,CREATE_STAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,CONSTRAINT XMITQ PRIMARY KEY
(XMITQ
,CHLNAME
,REMOTEQMGR
,QSGNAME
)
)
IN CSQDBOF.TSCHIN
APPEND NO
NOT VOLATILE CARDINALITY
DATA CAPTURE CHANGES
AUDIT NONE
CCSID EBCDIC;
CREATE UNIQUE INDEX CSQ.ADMIN_SCST_IX1
ON CSQ.ADMIN_B_SCST
(XMITQ ASC
,CHLNAME ASC
,REMOTEQMGR ASC
,QSGNAME ASC
)
NOT CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
DEFER NO
COPY NO
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 5
PCTFREE 30
GBPCACHE CHANGED
PIECESIZE 2097152K;
CREATE INDEX CSQ.ADMIN_SCST_IX4
ON CSQ.ADMIN_B_SCST
(QSGNAME ASC
,CHLCRESTAMP ASC
,CHLUPDSTAMP ASC
)
NOT CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
DEFER NO
COPY NO
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 5
PCTFREE 30
GBPCACHE CHANGED
PIECESIZE 2097152K;
CREATE INDEX CSQ.ADMIN_SCST_IX3
ON CSQ.ADMIN_B_SCST
(QSGNAME ASC
,CHLNAME ASC
,CHANNELSTATUS ASC
)
NOT CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
DEFER NO
COPY NO
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 5
PCTFREE 30
GBPCACHE CHANGED
PIECESIZE 2097152K;
CREATE UNIQUE INDEX CSQ.ADMIN_SCST_IX2
ON CSQ.ADMIN_B_SCST
(CHLCRESTAMP ASC
,QSGNAME ASC
)
NOT CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
DEFER NO
COPY NO
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 5
PCTFREE 30
GBPCACHE CHANGED
PIECESIZE 2097152K;
CREATE UNIQUE INDEX CSQ.ADMIN_SCST_IX5
ON CSQ.ADMIN_B_SCST
(QSGNAME ASC
,CHLTOKEN ASC
)
NOT CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
DEFER NO
COPY NO
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 5
PCTFREE 30
GBPCACHE CHANGED
PIECESIZE 2097152K;
CREATE TABLE CSQ.ADMIN_B_SSKT
(XMITQ CHARACTER(48) FOR SBCS DATA
NOT NULL
,CHLNAME CHARACTER(20) FOR SBCS DATA
NOT NULL
,REMOTEQMGR CHARACTER(48) FOR SBCS DATA
NOT NULL
,"KEY" INTEGER
NOT NULL
,QSGNAME CHARACTER(4) FOR SBCS DATA
NOT NULL
,UPDT_QMGR CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,UPDT_QMGRNUM SMALLINT
WITH DEFAULT NULL
,UPDT_STAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,CREATE_QMGR CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,CREATE_QMGRNUM SMALLINT
WITH DEFAULT NULL
,CREATE_STAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,CONSTRAINT XMITQ PRIMARY KEY
(XMITQ
,CHLNAME
,REMOTEQMGR
,QSGNAME
)
)
IN CSQDBOF.TSCHIN
APPEND NO
NOT VOLATILE CARDINALITY
DATA CAPTURE CHANGES
AUDIT NONE
CCSID EBCDIC;
CREATE UNIQUE INDEX CSQ.ADMIN_SSKT_IX1
ON CSQ.ADMIN_B_SSKT
(XMITQ ASC
,CHLNAME ASC
,REMOTEQMGR ASC
,QSGNAME ASC
)
NOT CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
DEFER NO
COPY NO
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 5
PCTFREE 30
GBPCACHE CHANGED
PIECESIZE 2097152K;
CREATE TABLESPACE TSNL32K
IN CSQDBOF
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
BUFFERPOOL BP32K
CLOSE NO
LOCKMAX SYSTEM
SEGSIZE 4
FREEPAGE 0
PCTFREE 5
GBPCACHE CHANGED
DEFINE YES
LOGGED
TRACKMOD YES
COMPRESS NO
LOCKSIZE ANY
MAXROWS 255
CCSID EBCDIC;
CREATE TABLE CSQ.OBJ_B_CHANNEL
(CHLNAME CHARACTER(48) FOR SBCS DATA
NOT NULL
,QSGNAME CHARACTER(4) FOR SBCS DATA
NOT NULL
,CHLTYPE CHARACTER(10) FOR SBCS DATA
NOT NULL
,DESCR CHARACTER(64) FOR SBCS DATA
NOT NULL
,QSGDISP CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,TRPTYPE CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,"CLUSTER" CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,CLUSNL CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,XMITQ CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,BATCHINT INTEGER
WITH DEFAULT NULL
,BATCHSZ INTEGER
WITH DEFAULT NULL
,CONVERT CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,DISCINT INTEGER
WITH DEFAULT NULL
,HBINT INTEGER
WITH DEFAULT NULL
,LONGRTY INTEGER
WITH DEFAULT NULL
,LONGTMR INTEGER
WITH DEFAULT NULL
,MAXMSGL INTEGER
WITH DEFAULT NULL
,MCANAME CHARACTER(20) FOR SBCS DATA
WITH DEFAULT NULL
,MCAUSER CHARACTER(12) FOR SBCS DATA
WITH DEFAULT NULL
,MODENAME CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,MSGDATA CHARACTER(32) FOR SBCS DATA
WITH DEFAULT NULL
,MSGEXIT CHARACTER(128) FOR SBCS DATA
WITH DEFAULT NULL
,NETPRTY INTEGER
WITH DEFAULT NULL
,NPMSPEED CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,PASSWORD CHARACTER(12) FOR SBCS DATA
WITH DEFAULT NULL
,PUTAUT CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,QMNAME CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,RCVDATA CHARACTER(32) FOR SBCS DATA
WITH DEFAULT NULL
,RCVEXIT CHARACTER(128) FOR SBCS DATA
WITH DEFAULT NULL
,SCYDATA CHARACTER(32) FOR SBCS DATA
WITH DEFAULT NULL
,SCYEXIT CHARACTER(128) FOR SBCS DATA
WITH DEFAULT NULL
,SENDDATA CHARACTER(32) FOR SBCS DATA
WITH DEFAULT NULL
,SENDEXIT CHARACTER(128) FOR SBCS DATA
WITH DEFAULT NULL
,SEQWRAP INTEGER
WITH DEFAULT NULL
,SHORTRTY INTEGER
WITH DEFAULT NULL
,SHORTTMR INTEGER
WITH DEFAULT NULL
,TPNAME CHARACTER(64) FOR SBCS DATA
WITH DEFAULT NULL
,USERID CHARACTER(12) FOR SBCS DATA
WITH DEFAULT NULL
,VERSIONCOUNT INTEGER
WITH DEFAULT NULL
,UPDT_QMGR CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,UPDT_QMGRNUM SMALLINT
WITH DEFAULT NULL
,UPDT_STAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,CREATE_QMGR CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,CREATE_QMGRNUM SMALLINT
WITH DEFAULT NULL
,CREATE_STAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,CONNAME VARCHAR(264) FOR SBCS DATA
WITH DEFAULT NULL
,VSOBJECT VARCHAR(8190) FOR SBCS DATA
WITH DEFAULT NULL
,BATCHHB INTEGER
WITH DEFAULT 0
,KAINT INTEGER
WITH DEFAULT 120
,LOCLADDR CHARACTER(48) FOR SBCS DATA
WITH DEFAULT ' '
,MSGEXITS VARCHAR(1024) FOR SBCS DATA
WITH DEFAULT ' '
,MSGDATAS VARCHAR(256) FOR SBCS DATA
WITH DEFAULT ' '
,SENDEXITS VARCHAR(1024) FOR SBCS DATA
WITH DEFAULT ' '
,SENDDATAS VARCHAR(256) FOR SBCS DATA
WITH DEFAULT ' '
,RCVEXITS VARCHAR(1024) FOR SBCS DATA
WITH DEFAULT ' '
,RCVDATAS VARCHAR(256) FOR SBCS DATA
WITH DEFAULT ' '
,SSLCAUTH CHARACTER(10) FOR SBCS DATA
WITH DEFAULT 'REQUIRED'
,SSLCIPH CHARACTER(32) FOR SBCS DATA
WITH DEFAULT ' '
,SSLPEER VARCHAR(256) FOR SBCS DATA
WITH DEFAULT ' '
,MREXIT CHARACTER(8) FOR SBCS DATA
WITH DEFAULT ' '
,MRDATA CHARACTER(32) FOR SBCS DATA
WITH DEFAULT ' '
,MRRTY INTEGER
WITH DEFAULT 0
,MRTMR INTEGER
WITH DEFAULT 1000
,COMPHDR CHARACTER(10) FOR SBCS DATA
WITH DEFAULT 'NONE'
,COMPMSG CHARACTER(10) FOR SBCS DATA
WITH DEFAULT 'NONE'
,MONCHL CHARACTER(10) FOR SBCS DATA
WITH DEFAULT 'QMGR'
,CLWLRANK INTEGER
WITH DEFAULT 0
,CLWLPRTY INTEGER
WITH DEFAULT 0
,CLWLWGHT INTEGER
WITH DEFAULT 50
,CONSTRAINT CHLNAME PRIMARY KEY
(CHLNAME
,QSGNAME
)
)
IN CSQDBOF.TSNL32K
APPEND NO
NOT VOLATILE CARDINALITY
DATA CAPTURE CHANGES
AUDIT NONE
CCSID EBCDIC;
CREATE UNIQUE INDEX CSQ.OBJ_CHANNEL
ON CSQ.OBJ_B_CHANNEL
(CHLNAME ASC
,QSGNAME ASC
)
NOT CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
DEFER NO
COPY NO
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
PIECESIZE 2097152K;
CREATE UNIQUE INDEX CSQ.DEL_OBJ_CHANNEL
ON CSQ.OBJ_B_CHANNEL
(CHLNAME ASC
,CHLTYPE ASC
,QSGNAME ASC
)
NOT CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
DEFER NO
COPY NO
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
PIECESIZE 2097152K;
CREATE TABLE CSQ.OBJ_B_NAMELIST
(NLNAME CHARACTER(48) FOR SBCS DATA
NOT NULL
,QSGNAME CHARACTER(4) FOR SBCS DATA
NOT NULL
,DESCR CHARACTER(64) FOR SBCS DATA
NOT NULL
,QSGDISP CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,VERSIONCOUNT INTEGER
WITH DEFAULT NULL
,UPDT_QMGR CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,UPDT_QMGRNUM SMALLINT
WITH DEFAULT NULL
,UPDT_STAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,CREATE_QMGR CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,CREATE_QMGRNUM SMALLINT
WITH DEFAULT NULL
,CREATE_STAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,VSOBJECT VARCHAR(2560) FOR SBCS DATA
WITH DEFAULT NULL
,NAMES VARCHAR(12288) FOR SBCS DATA
WITH DEFAULT NULL
,NLTYPE CHARACTER(10) FOR SBCS DATA
WITH DEFAULT 'NONE'
,CONSTRAINT NLNAME PRIMARY KEY
(NLNAME
,QSGNAME
)
)
IN CSQDBOF.TSNL32K
APPEND NO
NOT VOLATILE CARDINALITY
DATA CAPTURE CHANGES
AUDIT NONE
CCSID EBCDIC;
CREATE UNIQUE INDEX CSQ.OBJ_NAMELIST
ON CSQ.OBJ_B_NAMELIST
(NLNAME ASC
,QSGNAME ASC
)
NOT CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
DEFER NO
COPY NO
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
PIECESIZE 2097152K;
CREATE TABLE CSQ.OBJ_B_TOPIC
(TOPIC CHARACTER(48) FOR SBCS DATA
NOT NULL
,QSGNAME CHARACTER(4) FOR SBCS DATA
NOT NULL
,QSGDISP CHARACTER(10) FOR SBCS DATA
WITH DEFAULT NULL
,VERSIONCOUNT INTEGER
WITH DEFAULT NULL
,UPDT_QMGR CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,UPDT_QMGRNUM SMALLINT
WITH DEFAULT NULL
,UPDT_STAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,CREATE_QMGR CHARACTER(48) FOR SBCS DATA
WITH DEFAULT NULL
,CREATE_QMGRNUM SMALLINT
WITH DEFAULT NULL
,CREATE_STAMP CHARACTER(8) FOR SBCS DATA
WITH DEFAULT NULL
,VSOBJECT VARCHAR(14336) FOR SBCS DATA
WITH DEFAULT NULL
,CONSTRAINT TOPIC PRIMARY KEY
(TOPIC
,QSGNAME
)
)
IN CSQDBOF.TSNL32K
APPEND NO
NOT VOLATILE CARDINALITY
DATA CAPTURE CHANGES
AUDIT NONE
CCSID EBCDIC;
CREATE UNIQUE INDEX CSQ.OBJ_TOPIC
ON CSQ.OBJ_B_TOPIC
(TOPIC ASC
,QSGNAME ASC
)
NOT CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
DEFER NO
COPY NO
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
PIECESIZE 2097152K;
}¢--- A540769.WK.SQL(CURRENT) cre=2008-03-17 mod=2008-03-17-09.04.18 F540769 ---
select current server, current member
from sysibm.sysDummy1
}¢--- A540769.WK.SQL(CXEXP) cre=2015-09-16 mod=2015-09-16-09.37.38 A540769 -----
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
select r.* from oa1p.vqz005RecovLoad r
where (db = 'QZ01A1P' and ts in (?, ?, ?))
or (db = ? and ts in (?, ?, ?))
or (db = ? and ts in (?, ?, ?))
/* join (select unique dbName, tsName, partition
from sysIbm.sysTablePart tp
where (tp.dbName, tp.tsName) in
(select ts.dbName, ts.name
from sysIbm.sysTableSpace ts
where (ts.dbName, ts.name) in
(select t.dbName, t.tsName
from sysIbm.sysTables t
where t.type not in ('A', 'V') and (t.creator, t.name) in
(select vd.bCreator, vd.bName
from sysIbm.sysViewDep vd
where (vd.dCreator, vd.dName) in
(select v.creator, v.name
from sysIbm.sysTables v
where v.type = 'V' and v.name like 'VQZ%REC%'
) ) ) ) ) j
on r.db = j.dbName and r.ts = j.tsName and r.pa = j.partition
*/ order by db, ts, pa
;
select * from plan_view1
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(DASDFI) cre=2006-05-29 mod=2006-05-29-12.55.11 F540769 ----
SELECT SUBSTR(OSP_SET_NM,1,8) AS FILTER
,SUBSTR(CHAR(OSP_SEQ_NBR),1,2) AS SEQ
,STRIP(OSP_INCEXC_IND) AS IND
,STRIP(OSP_TYP_CD) AS TYP
,SUBSTR(OSP_OBJ_QUAL1,1,8) AS QUAL1
,SUBSTR(OSP_OBJ_QUAL2,1,8) AS QUAL2
,SUBSTR(OSP_OBJ_QUAL3,1,8) AS QUAL3
,DATE(OSP_MNT_TSTMP) AS MUT_DATE
FROM BMCASU71.V71_OBJSET_SPECS
WHERE OSP_SET_NM LIKE 'FR%'
ORDER BY OSP_SET_NM,OSP_SEQ_NBR
WITH UR;
}¢--- A540769.WK.SQL(DATA1) cre=2015-01-30 mod=2015-01-30-13.11.54 A540769 -----
with l (l) as
(
select 0 from sysibm.sysDummy1
union all select l+1 from l where l < 10
)
select l, rand(), rand(1), rand(3456), rand(98745)
from l
;
with l (l) as
(
select 0 from sysibm.sysDummy1
union all select l+1 from l where l < 20
)
select l, rand(), rand(1), rand(3456), rand(98745)
from l
;X;
select sum(bigInt(length(t))), count(*)
from t2
}¢--- A540769.WK.SQL(DATE) cre=2007-07-12 mod=2013-03-07-13.06.44 A540769 ------
with d (d) as (
select current timestamp from sysibm.sysDummy1
union all select timestamp('2013-01-01-00.00.00') from sysibm.sysDummy1
union all select timestamp('2012-12-31-00.00.00') from sysibm.sysDummy1
union all select timestamp('2012-01-01-00.00.00') from sysibm.sysDummy1
union all select timestamp('2012-01-01-00.00.00') from sysibm.sysDummy1
union all select timestamp('2012-01-01-23.59.00') from sysibm.sysDummy1
union all select timestamp('2011-12-31-00.00.00') from sysibm.sysDummy1
union all select timestamp('2011-01-01-00.00.00') from sysibm.sysDummy1
union all select timestamp('2010-12-31-00.00.00') from sysibm.sysDummy1
union all select timestamp('2010-01-01-00.00.00') from sysibm.sysDummy1
union all select timestamp('2009-12-31-00.00.00') from sysibm.sysDummy1
)
select d
, smallInt(dayOfWeek(d)) "dayWe"
, smallInt(dayOfWeek_Iso(d)) "dayWI"
, smallInt(dayOfWeek(d)) "dayWe"
, date(trunc_timestamp(d, 'day')) "trunc(day)"
, date(trunc_timestamp(d, 'iw')) iw
, date(trunc_timestamp(d, 'ww')) ww
, dayOfWeek(d) "dayWe"
, date(trunc_timestamp(d - dayOfWeek(d) days, 'day')) dw
from d
;;,
select visum2_timestamp,
char(date(visum2_timestamp), iso),
translate('1234679a', char(date(visum2_timestamp), iso)
, '123456789a')
from OA1T.VKS835A1V
fetch first 1000 rows only
;;;
select char(current date, iso),
translate('1234679a', char(current timestamp, iso), '123456789a')
from sysibm.sysDummy1
;;;
select right(digits(year(current date)), 4)
|| right(digits(month(current date)), 2)
|| right(digits(day(current date)), 2)
from sysibm.sysDummy1
;
select strip(char(year(current date)))
|| right('0' || strip(char(month(current date))), 2)
|| right('0' || strip(char(day(current date))), 2)
from sysibm.sysDummy1
;
select replace(char(current date, iso), '-', '') "iso rep"
from sysibm.sysDummy1
;
select current date "def",
char(current date) "char",
char(current date, iso) "iso",
char(current date, eur) "eur",
char(current date, usa) "usa",
char(current date, jis) "jis",
char(current date, local) "local",
replace(char(current date, iso), '-', '') "iso rep",
right(digits(year(current date)), 4)
|| right(digits(month(current date)), 2)
|| right(digits(day(current date)), 2)
from sysibm.sysDummy1
;
x
delete from LDAP101A.DIR_DESC ;
delete from LDAP101A.DIR_ENTRY ;
delete from LDAP101A.DIR_LONGATTR ;
commit;
delete from LDAP101A.DIR_LONGENTRY ;
delete from LDAP101A.DIR_ATTRID ;
delete from LDAP101A.DIR_CACHE ;
delete from LDAP101A.DIR_MISC ;
commit;
delete from LDAP101A.DIR_PROGRESS ;
delete from LDAP101A.DIR_REGISTER ;
delete from LDAP101A.DIR_CHANGE ;
delete from LDAP101A.DIR_LONGCHANGE ;
delete from LDAP101A.DIR_SEARCH ;
commit;
x
delete from DGDB9998.TWK001A;
INSERT INTO DGDB9998.TWK001A (WK001NAME, WK001NUM, WK001DA, WK001T1)
VALUES ('eur', 999, '25.12.2007', 'a');
INSERT INTO DGDB9998.TWK001A (WK001NAME, WK001NUM, WK001DA, WK001T1)
VALUES ('iso', 999, '2007-12-26', 'a');
INSERT INTO DGDB9998.TWK001A (WK001NAME, WK001NUM, WK001DA, WK001T1)
VALUES ('usa', 999, '12/27/2007', 'a');
SELECT * FROM DGDB9998.TWK001A;
rollback
}¢--- A540769.WK.SQL(DBAMSK1) cre=2006-07-10 mod=2006-07-10-16.39.25 F540769 ---
NAME:TWK*,TAB_*
NAME:*WK*,*XYZ*
DBNAME:*,DBNEU
}¢--- A540769.WK.SQL(DBATST) cre=2006-08-25 mod=2006-08-25-09.17.26 F540769 ----
set current sqlid = 's100447';
drop TABLESPACE DGDB9998.A012A;
commit;
CREATE TABLESPACE A012A
IN DGDB9998
USING STOGROUP GSMS
PRIQTY 48 SECQTY 100
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 8
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID EBCDIC
DEFINE YES
MAXROWS 255;
--
COMMIT;
--
------------------------------------------------------------------------
-- Table=GDB9998.TWK012A In DGDB9998.A012A
------------------------------------------------------------------------
--
CREATE TABLE GDB9998.TWK012A
(WK012CH20 CHAR(20) ,
WK012CH4 CHAR(4) ,
WK012CH2 timestamp,
wk012tst char(2)
)
IN DGDB9998.A012A
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE;
--
COMMIT;
-- Index=GDB9998.IWK012A0 On GDB9998.TWK012A
------------------------------------------------------------------------
--
CREATE INDEX GDB9998.IWK012A0
ON GDB9998.TWK012A
(WK012CH20 ASC)
USING STOGROUP GSMS
PRIQTY 12 SECQTY 12
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
NOT CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
--
COMMIT;
--
}¢--- A540769.WK.SQL(DBATSTB) cre=2006-09-07 mod=2006-09-07-17.29.56 F540769 ---
set current sqlid = 's100447';
-- drop TABLESPACE DGDB9998b.a012b;
commit;
CREATE TABLESPACE a012b
IN DGDB9998
USING STOGROUP GSMS
PRIQTY 48 SECQTY 100
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 8
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID EBCDIC
DEFINE YES
MAXROWS 255;
--
COMMIT;
--
------------------------------------------------------------------------
-- Table=GDB9998b.TWK012A In DGDB9998.a012b
------------------------------------------------------------------------
--
CREATE TABLE GDB9998b.TWK012A
(WK012CH20 CHAR(20) ,
WK012CH4 CHAR(4) ,
WK012CH2 timestamp,
wk012tst char(2)
)
IN DGDB9998.a012b
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE;
--
COMMIT;
-- Index=GDB9998b.IWK012A0 On GDB9998b.TWK012A
------------------------------------------------------------------------
--
CREATE INDEX GDB9998b.IWK012A0
ON GDB9998b.TWK012A
(WK012CH20 ASC)
USING STOGROUP GSMS
PRIQTY 12 SECQTY 12
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
NOT CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
--
COMMIT;
--
}¢--- A540769.WK.SQL(DBATSTC) cre=2011-06-22 mod=2011-06-24-09.40.25 A540769 ---
set current sqlid='S100447';
CREATE TABLESPACE A200A00
IN DA540769
USING STOGROUP GSMS
FREEPAGE 0 PCTFREE 0
DSSIZE 16 G
NUMPARTS 254
BUFFERPOOL BP32K
LOCKSIZE ANY
LOCKMAX 234
CLOSE NO
LOCKPART YES;
COMMIT;
CREATE TABLESPACE A210A00
IN DA540769
USING STOGROUP GSMS
FREEPAGE 0 PCTFREE 0
DSSIZE 16 G
NUMPARTS 254
BUFFERPOOL BP32K
LOCKSIZE ANY
LOCKMAX 0
CLOSE NO
LOCKPART YES;
COMMIT;
CREATE TABLESPACE A220A00
IN DA540769
USING STOGROUP GSMS
FREEPAGE 0 PCTFREE 0
DSSIZE 16 G
NUMPARTS 254
BUFFERPOOL BP32K
LOCKSIZE ROW
CLOSE NO
LOCKPART YES;
COMMIT;
CREATE TABLESPACE A230A00
IN DA540769
USING STOGROUP GSMS
FREEPAGE 0 PCTFREE 0
DSSIZE 16 G
NUMPARTS 254
BUFFERPOOL BP32K
CLOSE NO
LOCKPART YES;
COMMIT;
}¢--- A540769.WK.SQL(DBATSTI) cre=2006-08-25 mod=2006-08-25-09.58.00 F540769 ---
insert into A540769.twk012a
(wk012ch20, wk012ch4, wk012ch2, wk012tst)
values ('eins - 1', 'eins', '01', current timestamp)
;
insert into A540769.twk012a
(wk012ch20, wk012ch4, wk012ch2, wk012tst)
values ('zwei - 2', 'zwei', '02', current timestamp)
;
insert into A540769.twk012a
(wk012ch20, wk012ch4, wk012ch2, wk012tst)
values ('drei - 3', 'drei', '03', current timestamp)
;
commit
;
select * from A540769.twk012a
;
}¢--- A540769.WK.SQL(DBATSTS) cre=2006-08-25 mod=2006-08-25-09.58.39 F540769 ---
select * from A540769.twk012a
;
}¢--- A540769.WK.SQL(DBATST2) cre=2006-08-25 mod=2006-08-25-09.15.29 F540769 ---
set current sqlid = 's100447';
drop TABLESPACE DA540769.A012A;
-- drop TABLE A540769.TWK012A;
commit;
CREATE TABLESPACE A012A
IN DA540769
USING STOGROUP GSMS
PRIQTY 48 SECQTY 100
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 8
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID EBCDIC
DEFINE YES
MAXROWS 255;
--
COMMIT;
--
------------------------------------------------------------------------
-- Table=A540769.TWK012A In DA540769.A012A
------------------------------------------------------------------------
--
CREATE TABLE A540769.TWK012A
(WK012CH20 CHAR(20) ,
WK012CH4 CHAR(4) ,
WK012CH2 CHAR(2) ,
wk012tst timestamp
)
IN DA540769.A012A
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE;
--
COMMIT;
-- Index=A540769.IWK012A0 On DA540769.TWK012A
------------------------------------------------------------------------
--
CREATE INDEX A540769.IWK012A0
ON A540769.TWK012A
(WK012CH20 ASC)
USING STOGROUP GSMS
PRIQTY 12 SECQTY 12
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
NOT CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
--
COMMIT;
--
}¢--- A540769.WK.SQL(DBATST2B) cre=2006-09-07 mod=2006-09-07-17.37.01 F540769 ---
set current sqlid = 's100447';
drop TABLESPACE DA540769.A012B;
-- drop TABLE A540769b.TWK012A;
commit;
CREATE TABLESPACE A012B
IN DA540769
USING STOGROUP GSMS
PRIQTY 48 SECQTY 100
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 8
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID EBCDIC
DEFINE YES
MAXROWS 255;
--
COMMIT;
--
------------------------------------------------------------------------
-- Table=A540769b.TWK012A In DA540769.A012A
------------------------------------------------------------------------
--
CREATE TABLE A540769b.TWK012A
(WK012CH20 CHAR(20) ,
WK012CH4 CHAR(4) ,
WK012CH2 CHAR(2) ,
wk012tst timestamp
)
IN DA540769.A012B
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE;
--
COMMIT;
-- Index=A540769b.IWK012A0 On A540769b.TWK012A
------------------------------------------------------------------------
--
CREATE INDEX A540769b.IWK012A0
ON A540769b.TWK012A
(WK012CH20 ASC)
USING STOGROUP GSMS
PRIQTY 12 SECQTY 12
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
NOT CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
--
COMMIT;
--
}¢--- A540769.WK.SQL(DBATST51) cre=2006-09-28 mod=2006-09-29-08.46.25 F540769 ---
set current sqlid = 'S100447';
-- drop tablespace QQ99a1a.A051A;
commit ;
--
CREATE TABLESPACE A051A
IN QQ99a1a
USING STOGROUP GSMS
PRIQTY 48 SECQTY 48
erase no
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 16
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID EBCDIC
DEFINE YES
MAXROWS 255;
--
------------------------------------------------------------------------
-- Table=oa1t.TQQ051A In QQ99a1a.A051A
------------------------------------------------------------------------
--
CREATE TABLE oa1t.TQQ051A
(QQ051ID CHAR(10) FOR SBCS DATA NOT NULL,
QQ051TXT CHAR(20) FOR SBCS DATA WITH DEFAULT NULL,
QQ051FOR CHAR(10) FOR SBCS DATA WITH DEFAULT NULL)
IN QQ99a1a.A051A
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE;
--
------------------------------------------------------------------------
-- Database=QQ99a1a
-- Index=oa1t.IQQ051A0 On oa1t.TQQ051A
------------------------------------------------------------------------
--
CREATE UNIQUE INDEX oa1t.IQQ051A0
ON oa1t.TQQ051A
(QQ051ID ASC)
USING STOGROUP GSMS
PRIQTY 48 SECQTY 7200
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
NOT CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
--
------------------------------------------------------------------------
-- View=oa1t.VQQ051V1
------------------------------------------------------------------------
--
--
SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","s100447" ;
--
CREATE VIEW oa1t.VQQ051V1 AS
SELECT *
FROM oa1t.TQQ051A ;
--
------------------------------------------------------------------------
-- View=oa1t.VQQ051V2
------------------------------------------------------------------------
--
--
CREATE VIEW oa1t.VQQ051V2 AS
SELECT *
FROM oa1t.TQQ051A ;
--
--#SET TERMINATOR ?
--
------------------------------------------------------------------------
-- Triggers for Table=oa1t.TQQ051A
------------------------------------------------------------------------
--
SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","S100447" ?
--
CREATE TRIGGER oa1t.QQ051TRIG
AFTER DELETE ON oa1t.TQQ051A
REFERENCING OLD AS OLD
FOR EACH ROW MODE DB2SQL
INSERT INTO oa1t.TQQ051A("QQ051ID", "QQ051TXT", "QQ051FOR")
VALUES(OLD.QQ051ID, 'deleteTriggerEins', OLD.QQ051FOR) ?
--
------------------------------------------------------------------------
-- Triggers for Table=oa1t.TQQ051A
------------------------------------------------------------------------
--
CREATE TRIGGER oa1t.QQ051TRIG2
AFTER DELETE ON oa1t.TQQ051A
REFERENCING OLD AS OLD
FOR EACH ROW MODE DB2SQL
INSERT INTO oa1t.TQQ051A("QQ051ID", "QQ051TXT", "QQ051FOR")
VALUES(OLD.QQ051ID, 'deleteTriggerZwei', OLD.QQ051FOR) ?
--
--#SET TERMINATOR ;
--
COMMIT;
--
-- REBIND TRIGGER PACKAGE(oa1t.QQ051TRIG)
--
-- REBIND TRIGGER PACKAGE(oa1t.QQ051TRIG2)
--
------------------------------------------------------------------------
-- ADB2GEN - End of generated DDL --
------------------------------------------------------------------------
--
}¢--- A540769.WK.SQL(DBIDOBID) cre=2008-09-09 mod=2008-09-09-12.44.59 F540769 ---
select *
from sysibm.sysTables
where dbid = 1789 and obid = 3
}¢--- A540769.WK.SQL(DBXAUF) cre=2014-02-14 mod=2014-02-14-11.08.45 A540769 ----
select count(*), einfuehrung
from oa1p.tadm70a1
where trunc_timestamp(timestamp(einfuehrung), 'mon')
= trunc_timestamp(current timestamp, 'mon')
group by einfuehrung
}¢--- A540769.WK.SQL(DBXQUA) cre=2008-05-27 mod=2008-05-27-16.57.38 F540769 ----
SELECT s.*
FROM SYSIBM.SYSTABLESPACE S
WHERE (S.DBNAME = 'DGDB0426' AND S.NAME = 'PDZINSFQ')
or (S.DBNAME = 'DGDB9998' AND S.NAME = 'PDZINSFQ')
or (S.DBNAME = 'DA540769' AND S.NAME LIKE 'A10%')
or (S.DBNAME = 'DGDB3456' AND S.NAME LIKE 'A%')
union select s.*
FROM SYSIBM.SYSTABLESPACE S, SYSIBM.SYSTABLES T
where s.dbName = t.dbName and s.name = t.tsName
and (
(T.CREATOR = 'GDB9998A' AND T.NAME LIKE 'TWK1%')
or (T.CREATOR like 'F54076%' AND T.NAME LIKE 'TWK1%')
)
union select s.*
FROM SYSIBM.SYSTABLESPACE S, SYSIBM.SYSTABLES T, SYSIBM.SYSINDEXES X
where s.dbName = t.dbName and s.name = t.tsName
and t.creator = x.tbCreator and t.name = x.tbName
and ( (X.CREATOR = 'GDB9998' AND X.NAME LIKE 'IWK001%')
or (X.CREATOR like 'F54076%' AND X.NAME LIKE 'IWK001%')
)
;
dELETE FROM PLAN_TABLE;
SET CURRENT SQLID = 'A540769';
EXPLAIN PLAN SET QUERYNO = 111 FOR
SELECT s.*
FROM SYSIBM.SYSTABLESPACE S
WHERE (S.DBNAME = 'DGDB0426' AND S.NAME = 'PDZINSFQ')
or (S.DBNAME = 'DGDB9998' AND S.NAME = 'PDZINSFQ')
or (S.DBNAME = 'DA540769' AND S.NAME LIKE 'A10%')
or (S.DBNAME = 'DGDB3456' AND S.NAME LIKE 'A%')
union select s.*
FROM SYSIBM.SYSTABLESPACE S, SYSIBM.SYSTABLES T
where s.dbName = t.dbName and s.name = t.tsName
and (
(T.CREATOR = 'GDB9998A' AND T.NAME LIKE 'TWK1%')
or (T.CREATOR like 'F54076%' AND T.NAME LIKE 'TWK1%')
)
union select s.*
FROM SYSIBM.SYSTABLESPACE S, SYSIBM.SYSTABLES T, SYSIBM.SYSINDEXES X
where s.dbName = t.dbName and s.name = t.tsName
and t.creator = x.tbCreator and t.name = x.tbName
and ( (X.CREATOR = 'GDB9998' AND X.NAME LIKE 'IWK001%')
or (X.CREATOR like 'F54076%' AND X.NAME LIKE 'IWK001%')
)
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
xollBack
;
SELECT DBNAME,NAME,TYPE,PARTITIONS,SEGSIZE
FROM SYSIBM.SYSTABLESPACE S
WHERE (S.DBNAME = 'DGDB0426' AND S.NAME = 'PDZINSFQ')
OR (S.DBNAME, S.NAME) IN
( SELECT T.DBNAME, T.TSNAME
FROM SYSIBM.SYSTABLES T
WHERE (T.CREATOR = 'GDB9998A' AND T.NAME LIKE 'TWK1%')
OR (S.CREATOR, S.NAME) IN
( SELECT X.CREATOR, X.TBNAME
FROM SYSIBM.SYSINDEXES X
WHERE (X.CREATOR = 'GDB9998'
AND X.NAME LIKE 'IWK001%')
)
)
;
SELECT DBNAME,NAME,TYPE,PARTITIONS,SEGSIZE FROM SYSI
ABLESPACE S WHERE (S.DBNAME = 'DGDB0426' AND S.NAME = 'PDZINSFQ') OR (S.
S.NAME) IN (SELECT T.DBNAME, T.TSNAME FROM SYSIBM.SYSTABLES T WHERE (T.
= 'GDB9998A' AND T.NAME LIKE 'TWK1%') OR (S.CREATOR, S.NAME) IN (SELECT
EATOR, X.TBNAME FROM SYSIBM.SYSINDEXES X WHERE (X.CREATOR = 'GDB9998' AN
E LIKE 'IWK001%')))"
}¢--- A540769.WK.SQL(DB2COARC) cre=2008-03-18 mod=2008-03-18-17.14.58 F540769 ---
SELECT CURRENT TIMESTAMP - 3 MINUTES, 00010002
CHAR(' A000Y001 OA1P.TADM62A1 ' , 50) 00020002
FROM SYSIBM.SYSDUMMY1 00030000
; 00040000
SELECT C.DBNAME, C.TSNAME, C.DSNUM, C.TIMESTAMP, C.ICTYPE, C.DSNAME, 00050000
CHAR(C.COPYPAGESF * 1024 * S.PGSIZE) COPIED 00060000
FROM SYSIBM.SYSCOPY C, SYSIBM.SYSTABLESPACE S 00070000
WHERE C.ICTYPE IN ('F', 'I') 00080000
AND S.DBNAME = C.DBNAME 00090000
AND S.NAME = C.TSNAME 00100000
ORDER BY 1, 2, 3, 4 DESC 00110000
WITH UR 00120000
; 00130000
}¢--- A540769.WK.SQL(DB2COARM) cre=2008-03-18 mod=2008-03-18-16.59.06 F540769 ---
AUTHOR GGDB2
RECPLIST GGDB2
DOCTEXT
Fehler im Job zur Copy Archivierung
Bitte kontrollieren.
}¢--- A540769.WK.SQL(DB2COART) cre=2008-03-18 mod=2008-03-18-16.45.51 F540769 ---
SET CURRENT SQLID='S100447';
--
--drop TABLESPACE db2admin.A062A;
--CREATE DATABASE DB2admin
-- BUFFERPOOL BP2
-- INDEXBP BP1
-- CCSID EBCDIC
-- STOGROUP GSMS;
commit;
CREATE TABLESPACE A062A
IN DB2ADMIN
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID EBCDIC
DEFINE YES
MAXROWS 255;
COMMIT;
CREATE TABLE OA1P.TADM62A1
(TIMESTAMP TIMESTAMP NOT NULL,
STATUS CHAR(1) NOT NULL,
NEWCOUNT INTEGER NOT NULL,
NEWSIZE REAL NOT NULL,
ALTCOUNT INTEGER NOT NULL,
ALTSIZE REAL NOT NULL,
OLDCOUNT INTEGER NOT NULL,
OLDSIZE REAL NOT NULL
)
IN DB2ADMIN.A062A
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE;
--
COMMENT ON TABLE OA1P.TADM62A1 IS 'Copy Archiving Statistics';
LABEL ON TABLE OA1P.TADM62A1 IS 'CopyArchStatistik';
LABEL ON OA1P.TADM62A1
( TIMESTAMP IS 'timestamp of run'
, STATUS IS 'Generiert, Erledigt'
, NEWCOUNT IS 'count new copies'
, NEWSIZE IS 'size(B) new copies'
, ALTCOUNT IS 'count alter copies'
, ALTSIZE IS 'size(B) alter copies'
, OLDCOUNT IS 'count old copies'
, OLDSIZE IS 'size(B) old copies'
)
;
COMMIT;
--
CREATE UNIQUE INDEX OA1P.IADM62A1
ON OA1P.TADM62A1
(TIMESTAMP)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
--
COMMIT;
--
}¢--- A540769.WK.SQL(DB2STA) cre=2010-01-25 mod=2010-01-25-15.09.28 A540769 ----
//A540769S JOB (CP00,KE50),'START RO',
// MSGCLASS=T,TIME=1440,
// NOTIFY=&SYSUID,REGION=0M
//*MAIN CLASS=LOG
//************** start db readOnly ****************************
//START EXEC PGM=IKJEFT01
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSTSIN DD *
DSN SYS(DBOF)
-STA DB(CZ01A1P) ACC(RO)
-STA DB(CZ01G1P) ACC(RO)
-STA DB(CZ02A1P) ACC(RO)
-STA DB(CZ20A1P) ACC(RO)
-STA DB(CT01A1P) ACC(RO)
}¢--- A540769.WK.SQL(DB2UT) cre=2008-12-22 mod=2008-12-22-11.31.23 F540769 -----
set current sqlid = 'S100447';
-- DROP TABLESPACE DB2MAPUT.TINUSE;
COMMIT;
CREATE TABLESPACE TINUSE
IN DB2MAPUT
USING STOGROUP GSMS
PRIQTY 12 SECQTY 48
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS NO
CCSID EBCDIC
DEFINE YES
MAXROWS 255;
CREATE TABLE S100447.TINUSE
(NAME VARCHAR(128) NOT NULL,
CREATOR VARCHAR(128) NOT NULL,
TIMESTAMP TIMESTAMP NOT NULL
)
IN DB2MAPUT.TINUSE
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE;
COMMIT;
}¢--- A540769.WK.SQL(DB2UTF) cre=2008-12-22 mod=2008-12-22-11.38.18 F540769 ----
select * from
final table (insert into s100447.tInuse
(creator, name, timestamp)
values (
'S100447', (select min(name)
from sysibm.systables t
where dbName = 'DB2MAPUT'
and name <> 'TINUSE'
and not exists (select 1
from s100447.tInuse i
where t.name = i.name)
), current timestamp )
)
}¢--- A540769.WK.SQL(DDF) cre=2007-05-14 mod=2010-12-06-14.54.32 A540769 -------
set current sqlid = 'S100447';
select * from sysibm.LOCATIONS ;
select name
from chska000dbtf.sysibm.systables
where dbname = 'MF01A1T'
;
}¢--- A540769.WK.SQL(DDLCHDDL) cre=2013-06-12 mod=2016-06-17-13.15.08 A540769 ---
$#@
$*(
17. 6.16 defaults for new UTS guidelines
10. 6.16 PBG mit 4GB und 10 maxParts
7. 3.16 pa fuer views geflickt
2. 2.16 fqz Funktionen
30.11.15 ELAR: primary key ignorieren, tb-, ixName von TS nicht DB
18.11.15 fix att, nur rTrim, wegen Sortierung von s, no part in path
13. 7.15 mit User ddlCheckt und 2. Elar Variante
17.12.14 datacapture changes, genSel und 1. Elar Variante
26.11.13 datacapture cat='o' (immer noch override auf none|)
19.11.13 order by ebcdic for rexx
25. 9.13 uts ok, kleine pctFree, locksize usw. Aenderung o statt oq
Achtung neues WS2|
19. 9.13 primary constraint reklamiert wenn vorhanden statt fehlend
19. 7.13 namingconvention aus current server, stabiler
17. 7.13 lobs angepasst
$*)
$=cr=A540769
$=cr=OA1P
$=gpCols= gp, gpCr, gpOpt
$=cols8 = ty, qu, nm, cat, att, val, std, pa
$=colE8 = ty, qu, nm, pa, cat, att, val, std
$=colO8 = ty, cat, qu, nm, att, val, std, pa
if 0 then $@¢ $** execute ddl in rz4 ------------------------
$@%¢genDdl OA1P $!
$>. fEdit()
$** $| $@ call sqlConnect DP4G ; call sqlStmts
$! else if 0 then $@¢ $** distribute/exe ddl in all rz/dbSys -------
$>. fEdit()
$<=¢
RZ4 DBOL DP4G
RZ2 DBOF DVBP DP2G
RZX DE0G DEVG DPXG DX0G
RZY DE0G DEVG DPYG
RZZ DE0G DEVG DPZG
RR2 DBOF DVBP DP2G
RQ2 DBOF DVBP DP2G
$!
$@genJobs
$! else if 1 , $** test dp4g ---------------------------------
& sysVar(sysnode) = 'RZ4' then $@=¢
set current path = 'OA1P';
insert into $cr.tQZ120DdlSel (ty, qu, nm)
select 't', creator , Name
from sysibm.sysTables
where
name in ( 'TQZ120DDLSEL'
, 'TQZ006GBGRTSSTATS'
, 'TQZ050CMD'
, 'TQZ040BINDPGM'
) ;
insert into $cr.tQZ120DdlSel (ty, qu, nm)
values ('v', 'OA1P', 'VQZ040REBIND') ;
$$ -- ddlChDdl generated $-¢f('%t s')$!
$@genSel
$** $>. fEdit('A540769.TMP.SQL(DDLCH)')
$| $@ call sqlConnect DP4G ; call sqlStmts
$! else if 0 then $@=¢ $** test dbof --------------------------------
set current path = 'OA1P';
insert into $cr.tQZ120DdlSel (ty, qu, nm)
select 'ts', dbName , tsName
from sysibm.sysTables
where type = 'T'
and name in ( 'VTINSTRUMENT'
-- , 'TQZ050CMD'
);
insert into $cr.tQZ120DdlSel (ty, qu, nm)
valueS ('v', 'OA1P', 'VNGNOFER') ;
insert into $cr.tQZ120DdlSel (ty, qu, nm)
valueS ('db', 'XB007002', '') ;
$$ -- ddlChDdl generated $-¢f('%t s')$!
$@genSel
$** $>. fEdit('A540769.TMP.SQL(DDLCH)')
$| $@ call sqlConnect DVBP ; call sqlStmts
$!
$proc $@=/genDdl/
$=path=- strip(arg(2))
set current sqlid = 'S100447';
set current path = '$path';
drop table $cr.tQZ120DDlSel;
create global temporary table $cr.tQZ120DdlSel
(ty char(3) not null, qu varchar(128) not null
, nm varchar(128) not null ) -- with default geht nicht ||||
;
create view $cr.vQZ120DdlChec8 as
$@cteC8
select * from uO
;
create view $cr.vQZ120DdlCheck as
$@txt
from $cr.vQZ120DdlChec8
;
create view $cr.vQZ120DdlCheSu8 as
with t as
(
select * from OA1P.vQZ120ddlChec8 t
)
, u ($cols8) as
(
select ty, '', '', '', 'count ' || ty
, right(' ' || count(*), 8)
, '', ' count=s-' || ty
from t
where cat = 's'
group by ty
union all select '', '', '', '', 'count err'
, right(' ' || count(*), 8)
, '', ' countErr=' || min(cat) || '-' || max(cat)
from t
where cat <> 's'
union all select $cols8
from t
)
$@cteUO
select * from UO
;
create view $cr.vQZ120DdlCheSum as
with t as
(
select t.*
, case when posStr(err, '=') = 0 then err
else left(err, posStr(err, '=')) end erSh
from $cr.vQZ120ddlCheck t
)
, u (ty, qu, nm, cat, err, pa) as
(
select ty, qu, nm, cat, err, pa
from t
union all select ty, '', '', '*s', count(*) || ' * ' || ty
|| ': ' || min(qu || '.' || nm) || ' - ' || min(qu || '.' || nm)
, '*ty ' || ty
from t
where cat = 's'
group by ty
union all select ty, '', '', '*' || cat, count(*) || ' * ' || erSh
, '*tyCatErr ' || ty || cat || erSh
from t
where cat <> 's'
group by ty, cat, erSh
)
select * from u
;
create view $cr.vQZ120DdlCheS8 as
$@cte
, rt (ty, qu, nm, pa, rows, space) as
(
select ty, qu, nm
, substr(min(right('00000' || length(strip(pa)), 6)
|| strip(pa)), 7) pa
, real(sum(totalRows)) rows
, sum(ts.pgSize * real(r.nActive) * 1024) space
from ts left join sysibm.sysTablespaceStats r
on r.dbName = ts.dbName and r.name = ts.name
and r.dbid = ts.dbid and r.psid = ts.psid
group by ty, qu, nm
)
, ri (ty, qu, nm, pa, rows, space) as
(
select ty, qu, nm
, substr(min(right('00000' || length(strip(pa)), 6)
|| strip(pa)), 7) pa
, real(sum(totalEntries))
, sum(case when i.pgSize = 4096 then 4
else i.pgSize end
* real(r.nActive) * 1024)
from i left join sysibm.sysIndexspaceStats r
on r.creator= i.creator and r.name = i.name
and r.dbid = i.dbid and r.isobid = i.isobid
group by ty, qu, nm
)
, u ($cols8) as
(
select $cols8 from eU
union all select ty, qu, nm,
case when space > 2e10 or rows > 1e8
then 'sb' else 's' end,
' rows,space', oa1p.fqzFmte7(rows), oa1p.fqzFmtE7(space),pa
from rt
union all select ty, qu, nm, 's', '', '', '', pa from t
union all select ty, qu, nm, 's',
' rows,space', oa1p.fqzFmte7(rows), oa1p.fqzFmtE7(space), pa
from ri
union all select ty, qu, nm, 's', '', '', '', pa from v
)
$@cteUO
select * from uO
;
create view $cr.vQZ120DdlCheSz as
$@txt
from $cr.vQZ120DdlCheS8
;
commit
;
$/genDdl/
$proc $@=/genSel/ $** generate a select without views
$@cteC8
$** $@outTxt
-- select * from uO ; x; by qu, nm ; x;
select ty, substr(qu || '.' || nm, 1, 30) qualifierName, cat
, substr(att, 1, 12) att
, substr(val, 1, 20) val
, substr(std, 1, 20) std
, pa
from uO -- outTxt
;
$*(
select qu, nm, db, pa
from vD;
select lv, uQ, uN, qu, nm, pa
from vUse;
$*)
$/genSel/
$@proc cte $@=/cte/
with std (std, mbrClu, app, pFree) as
(
select ' ', ' ', 'N', 5 from sysibm.sysDummy1
union all select 'x', 'Y', 'Y', 0 from sysibm.sysDummy1
)
, nmC1 as
(
select right(strip(current server), 4) dbSys
from sysibm.sysDummy1
)
, nmC2 as
( select case when posStr(dbSys, 'V') > 0 then 'V'
when dbSys = 'DBAF' then 'A'
when dbSys = 'DBTF' then 'T'
else 'P'
end nmCn, dbSys
from nmC1
)
, nmCn as
( select case when nmCn = 'V' then 'BUA' else 'OA1' || nmCn end cr
, case when nmCn = 'V' then '' else '99' end cr99
, case when nmCn = 'V' then 'BUA'
else 'OA1' || nmCn || ' 99?' end crStd
, nmCn, dbSys
from nmC2
)
, ts0 (qu, nm) as
(
select dbName, name
from sysibm.sysTablespace ts join $cr.tQZ120DdlSel s
on s.ty = 'db' and s.qu = ts.dbName
union all select qu, nm
from $cr.tQZ120DdlSel s
where s.ty = 'ts'
)
, tsU (qu, nm) as
(
select t.dbName , t.tsName
from sysibm.sysTables t
join $cr.tQZ120DdlSel s
on s.ty = 't' and s.qu = t.creator and s.nm = t.name
where t.dbName not like 'DSNDB%'
union all select * from ts0
)
, tsG as
(
select *
from tsU
group by qu, nm
)
, ts as
(
select 'ts' ty, qu, nm
$@%¢db2gp qu$!
, 'db=' || strip(qu) || ' ts=' || strip(nm) pa
, s.*
, 33 pctFreeZiel
from tsG g join sysibm.sysTablespace s
on g.qu = s.dbName and g.nm = s.name
)
, tp as
(
select 'tp' ty, qu, nm, $gpCols, pa
, ts.type tsTy, ts.partitions parts
, tp.*
from ts join sysibm.sysTablePart tp
on ts.qu = tp.dbName and ts.nm = tp.tsName
)
, tN (qu, nm) as
(
select creator, name
from ts0 join sysibm.sysTables t
on t.dbName = ts0.qu and t.tsName = ts0.nm
and t.type not in ('A', 'V')
union all select qu, nm
from $cr.tQZ120DdlSel s
where ty = 't'
)
, tG as
(
select qu, nm
from tN
group by qu, nm
)
, t as
(
select 't' ty, qu, nm
, 'db=' || strip(t.dbName) || ' ts=' || strip(t.tsname)
|| ' t=' || strip(t.creator) || '.' || strip(t.name) pa
$@%¢db2gp t.dbName$!
, t.*
from tG join sysibm.sysTables t
on t.creator = tG.qu and t.name = tG.nm
and t.type not in ('A', 'V')
)
, c as
(
select 'c' ty, '' qu, c.name nm, $gpCols
, pa || ' c=' || right('0000'||colNo, 5) ||'-'|| strip(c.name) pa
, c.*
from t join sysibm.sysColumns c
on qu = c.tbCreator and nm = c.tbName
)
, iN (qu, nm) as
(
select strip(i.creator), strip(i.name)
from tG join sysibm.sysIndexes i
on qu = i.tbCreator and nm = i.tbName
union all select qu, nm
from $cr.tQZ120DdlSel s
where s.ty = 'i'
)
, iG as
(
select qu, nm
from iN
group by qu, nm
)
, i as
(
select 'i' ty, qu, nm
, 'db=' || strip(t.dbName) || ' ts=' || strip(t.tsname)
|| ' t=' || strip(t.creator) || '.' || strip(t.name)
|| ' i=' || strip(i.creator) || '.' || strip(i.name) pa
$@%¢db2gp i.dbName $!
, i.*
from iG
join sysibm.sysIndexes i
on iG.qu = i.creator and iG.nm = i.name
join sysibm.sysTables t
on i.tbCreator = t.creator and i.tbName = t.name
)
, ip as
(
select 'ip' ty, qu, nm, $gpCols, pa, ip.*
from i join sysibm.sysIndexPart ip
on ip.ixCreator = qu and ip.ixName = nm
)
, vU (ty, qu, nm, pa, db, lv) as
(
select unicode_str('T'), qu, nm, pa, dbName, 0
from t
union all select unicode_str('V'), qu, nm
, 'v=' || strip(qu) ||'.'|| strip(nm), '', 0
from $cr.tQZ120DdlSel
where ty = 'v'
union all select dType, dCreator, dName, pa || ' ' || dType || '='
|| strip(dCreator) || '.' || strip(dName), db, lv+1
from vU join sysibm.sysViewDep d
on d.bCreator = vU.qu and d.bName = vU.nm -- and d.bType = vU.ty
where lv < 100
)
, vG as
( select qu, nm
-- shortest path, preferrable not starting with view
, replace(substr(
min(case when left(pa, 1) = 'v' then 'v' else 'e' end
|| right('00000' || length(pa), 6) || pa)
, 8), 'V=', 'v=') pa
, max(case when db like 'DSNDB%' then '' else db end) db
from vU
where ty = 'V'
group by ty, qu, nm
)
, vUse ( qu, nm, pa, uQ, uN, lv) as
( -- if db is empty or DSNDB% then search
-- all used views for application db
select qu, nm, pa, qu, nm, 0
from vG
where db = ''
union all select qu, nm, pa, bCreator, bName, lv + 1
from vUse join sysibm.sysViewDep d
on d.dCreator = vUse.uQ and d.dName = vUse.uN
-- and d.bType = 'V' and d.dType = 'V'
where lv < 100
)
, vD (qu, nm, pa, db) as
(
select qu, nm, max(pa)
, max(case when dbName like 'DSNDB%' then '' else dbName end) db
from vUse join sysibm.sysTables t
on vUse.uQ = t.creator and vUse.uN = t.name
-- and t.type = 'V'
group by qu, nm
union all select * from vG
where db <> ''
)
, v as -- all used views for application db
(
select 'v' ty, qu, nm, pa
$@%¢db2gp vD.db $!
, t.*
from vD join sysibm.sysTables t
on t.type = 'V' and t.creator = qu and t.name = nm
)
, eTs ($colE8) as
(
select ty, qu, nm, pa, 'p', 'type',
case when type = 'O' then 'lob'
when type = 'P' then 'XML'
when type = ' 'and partitions = 0
and segSize = 0 then 'simple'
when type = ' ' then 'classic'
when type = 'L' then 'large'
else 'type='||type
end, 'UTS'
from ts
where type not in ('G', 'R')
union all select ty, qu, nm, pa, 'p', 'status',
case when status = 'C' then 'partitioning undefined'
when status in ('P' ,'S') then 'check pending'
when status = 'T' then 'no table'
else 'status=' || status end
end, ''
from ts
where status <> 'A'
union all select ty, qu, nm, pa, 'n', 'name', name
, 'S' || substr(dbName, 3, 4) || '%'
from ts, nmC1
where gpOpt = 'x' and 'DX0G' <> dbSys
and left(name, 4) <> 'S' || substr(dbName, 3, 3)
union all select ty, qu, nm, pa, 'p', 'tables', char(nTables), '1'
from ts
where nTables <> 1
union all select ty, qu, nm, pa, 'p', 'partitioned', 'no', 'yes'
from ts
where gpOpt = 'x' and partitions = 0
union all select ty, qu, nm, pa, 'p', 'partitions',
char(partitions), '<=200'
from ts
where partitions > 200
union all select ty, qu, nm, pa, 'o', 'bufferPool', bPool, 'bp2...'
from ts
where bPool not in('BP2', 'BP8K1', 'BP16K1', 'BP32K')
union all select ty, qu, nm, pa, 'o', 'bufferPool', bPool, 'bp2...'
from (select ts.*
, case when strip(name) like '%H' then 'BP32K'
else 'BP2' end bp
from ts
where gpOpt = 'x' ) ts
where bPool <> bp
union all select ty, qu, nm, pa, 'p', 'encoding',
encoding_scheme, 'EBCDIC'
from ts
where encoding_scheme <> 'E'
union all select ty, qu, nm, pa, 'o', 'close', closeRule, 'Y'
from ts
where closeRule <> 'Y'
union all select ty, qu, nm, pa, 'oq', 'dssize', char(dsSize), '16GB'
from ts
where dssize <> 16777216 and partitions <> 0 and type <> 'G'
union all select ty, qu, nm, pa, 'oq', 'dssize', char(dsSize), '4GB'
from ts
where dssize <> 4194304 and partitions <> 0 and type = 'G'
union all select ty, qu, nm, pa, 'o', 'erase', eraseRule, 'N'
from ts
where eraseRule <> 'N'
union all select ty, qu, nm, pa, 'p', 'implicit', implicit, 'N'
from ts
where implicit <> 'N'
union all select ty, qu, nm, pa, 'o', 'lockmax',
char(lockmax), 'system'
from ts
where lockMax <> -1
union all select ty, qu, nm, pa
, case when lockRule = 'P' then 'o' else 'oq' end
, 'locksize', lockRule, 'any'
from ts
where lockRule <> 'A'
union all select ty, qu, nm, pa, 'o', 'logged', log, 'Y'
from ts
where log <> 'Y'
union all select ty, qu, nm, pa, 'oq', 'maxrows', char(maxrows),'255'
from ts
where maxrows <> 255 and type <> 'O'
union all select ty, qu, nm, pa, 'pq', 'membercluster',
member_cluster, mbrClu
from ts join std on ts.gpOpt = std.std
where member_cluster <> mbrClu
union all select ty, qu, nm, pa, 'o', 'segsize', char(segsize), '64'
from ts
where segsize not in (0, 64)
union all select ty, qu, nm, pa, 'p', 'clone', clone, 'N'
from ts
where clone <> 'N'
union all select ty, qu, nm, pa, 'p', 'maxParts',
char(maxPartitions), '10'
from ts
where type = 'G' and maxPartitions <> 10
union all select ty, qu, nm, pa, 'p'
, case when organizationType = 'H' then 'hash'
else 'organizationType='||organizationType end
,'organization', 'default'
from ts
where organizationType <> ' '
)
, eTP ($colE8) as
(
select ty, qu, nm, pa, 'o', 'compress', compress, 'Y'
from tp
where tp.compress <> 'Y'
union all select ty, qu, nm, pa, 'oq', 'storName',storName,'GSMS?'
from tp
where (gp <> 'XB' and storName <> 'GSMS')
or (gp = 'XB' and storName not in
('GSMS1', 'GSMS2', 'GSMS3', 'GSMS4'))
union all select ty, qu, nm, pa, 'o', 'priQty', char(pQty), '-1'
from tp
where pqty <> -1
union all select ty, qu, nm, pa, 'o', 'secQty', char(sQty), '-1'
from tp
where sqty <> -1
union all select ty, qu, nm, pa
, case when freePage >= 10 then 'o' else 'oq' end
, 'freePage', char(freepage), '0'
from tp
where freepage <> 0
union all select ty, qu, nm, pa
, case when pctFree <= 10 then 'o' else 'oq' end
, 'pctFree', char(pctFree), char(pFree)
from tp join std on tp.gpOpt = std.std
where pctFree <> pFree and tsTy <> 'O'
union all select ty, qu, nm, pa, 'o', 'gbpCache',
gbpCache, 'changed'
from tp
where gbpCache <> ' '
)
, eT ($colE8) as
(
select ty, qu, nm, pa, 'n', 'creator', qu, gpCr
from t
where not (qu = gpCr
or (gpCr <> 'BUA' and gpCr || '00'
= translate(qu, '999999999', '012345678'))
or (gp = 'VV' and qu = 'VDPS2'))
union all select ty, qu, nm, pa, 'n', 'name', nm, tbPre || '%'
from ( select t.*
, case when gpOpt = 'x' then 'XB' || substr(tsName, 2,6)
when gp = 'VV' then 'TVV'
else 'T' || gp || substr(tsName, 2, 4) end tbPre
from t, nmC1 ) t
where left(name, length(tbPre)) <> tbPre
union all select ty, qu, nm, pa, 'p', 'tableStatus',
case when tableStatus = 'C' then 'clone'
when tableStatus = 'L' then 'auxilary index oder table fehlt'
when tableStatus = 'P' then 'primary index fehlt'
when tableStatus = 'R' then 'index auf Row ID fehlt'
when tableStatus = 'U' then 'index auf unique key fehlt'
when tableStatus = 'V' then 'Fehler interne ViewDarstellung'
else 'tableStatus=' || tableStatus
end, 'ok'
from t
where tablestatus <> ' '
union all select ty, qu, nm, pa, 'p', 'append', append, app
from t join std on t.gpOpt = std.std
where append <> app
union all select ty, qu, nm, pa, 'p', 'audit', auditing, 'no'
from t
where auditing <> ' '
union all select ty, qu, nm, pa, 'o', 'dataCapture',
dataCapture, 'changes'
from t
where dataCapture <> 'Y'
union all select ty, qu, nm, pa, 'o', 'restrictDrop',
clustertype, 'Y'
from t
where clusterType <> 'Y'
union all select ty, qu, nm, pa, 'p', 'volatile',
split_rows, 'Y'
from t
where gpOpt = 'x' and split_rows <> 'Y'
union all select ty, qu, nm, pa, 'p', 'volatile',
split_rows, 'not'
from t
where gpOpt <> 'x' and split_rows <> ''
union all select ty, qu, nm, pa, 'p', 'clusterIndex', 'no',
'ifIndexes'
from t
where (select max(clustering) from sysibm.sysIndexes i
where i.tbCreator = t.qu and i.tbName = t.nm)
not in ('Y', case when 1=1 then 'x' else null end)
union all select ty, qu, nm, pa, 'p', 'partitioning',
'indexBased', 'tableBased'
from t join sysibm.sysTablespace ts
on t.dbName = ts.dbName and t.tsName = ts.name
and ts.partitions > 0 and ts.type <> 'G'
and partKeyColNum < 1
union all select ty, qu, nm, pa, 'a', 'primKeyConst',
'no', 'yes'
from t
where keyColumns = 0 and gpOpt <> 'x'
)
, eC ($colE8) as
(
select ty, qu, nm, pa, 'p', 'colType', colType,
'CSallowed'
from c
where coltype not in('INTEGER', 'SMALLINT', 'FLOAT', 'CHAR'
, 'VARCHAR', 'DECIMAL', 'DATE', 'TIME', 'TIMESTMP'
, 'ROWID', 'BIGINT', 'BINARY')
union all select ty, qu, nm, pa, 'p', 'hidden', hidden, 'N'
from c
where hidden <> 'N'
)
, eI (ty, qu, nm, pa, cat, att, val, std) as
(
select ty, qu, nm, pa, 'n', 'creator', qu, tbCreator
from i
where creator <> tbCreator
union all select ty, qu, nm, pa, 'n', 'name', nm, sIx || '%'
from (select i.*
, case when gpOpt='x' then 'I' || substr(tbName, 3, 6)
else 'I' || strip(substr(tbName, 2, 6)) end sIx
from i) i
where left(name, length(sIx)) <> sIx and qu <> 'VDPS2'
union all select ty, qu, nm, pa, 'p', 'extensionType',
case when ix_extension_type = 'S' then 'index on expression'
else ix_extension_type end, 'no'
end
from i
where ix_extension_type <> ''
union all select ty, qu, nm, pa, 'o', 'bufferpool', bPool, 'BP1'
from i
where bPool <> 'BP1'
union all select ty, qu, nm, pa, 'o', 'close', closeRule, 'Y'
from i
where closeRule <> 'Y'
union all select ty, qu, nm, pa, 'o', 'compress', compress, 'N'
from i
where compress <> 'N'
union all select ty, qu, nm, pa, 'o', 'copy', copy, 'N'
from i
where copy <> 'N'
union all select ty, qu, nm, pa, 'o', 'erase', eraseRule, 'N'
from i
where eraseRule <> 'N'
union all select ty, qu, nm, pa, 'pq', 'padded', padded, 'N'
from i
where padded not in (' ', 'N')
union all select ty, qu, nm, pa, 'a', 'partitioned', 'no', 'yes'
from i join sysibm.sysTables t
on i.tbCreator = t.creator and i.tbName = t.name
join sysibm.sysTableSpace ts
on ts.dbName = t.dbName and t.tsName = ts.name
and ts.partitions > 0 and ts.type <> 'G'
join sysibm.sysIndexPart ip
on ip.ixCreator = i.creator and ip.ixName = i.name
and ip.partition = 0
union all select ty, qu, nm, pa, 'pq',
'piecesize', char(piecesize), '2GB,4GB'
from i
where piecesize not in(2097152, 4194304)
and indexType not in ('D', 'P')
)
, eIP ($colE8) as
(
select ty, qu, nm, pa, 'oq', 'storName'
, storName, 'GSMS?'
from ip
where ( gp <> 'XB' and storName <> 'GSMS')
or (gp = 'XB' and storName not in
('GSMS1', 'GSMS2', 'GSMS3', 'GSMS4'))
union all select ty, qu, nm, pa, 'o', 'priQty', char(pQty), '-1'
from ip
where pqty <> -1
union all select ty, qu, nm, pa, 'o', 'secQty', char(sQty), '-1'
from ip
where sqty <> -1
union all select ty, qu, nm, pa
, case when freePage >= 10 then 'o' else 'oq' end
, 'freePage', char(freePage), '0'
from ip
where freepage <> 0
union all select ty, qu, nm, pa
, case when pctFree <= 15 then 'o' else 'oq' end
, 'pctFree', char(pctFree), '10'
from ip
where pctFree <> 10
union all select ty, qu, nm, pa, 'o', 'gbpCache', gbpCache, 'changed'
from ip
where gbpCache <> ' '
union all select ty, qu, nm, pa, 'p', 'partitioned', 'no', 'yes'
from ip
where gpOpt = 'x' and partition = 0
)
, eV (ty, qu, nm, pa, cat, att, val, std) as
(
select ty, qu, nm, pa, 'n', 'creator', qu,
'tbCr | ' || gpCr
from v, nmCn
where not( qu = nmCn.cr
or ( nmCn.cr = left(qu, length(nmCn.cr))
and nmCn.cr99 = translate(substr(qu
, 1+length(nmCn.cr)), '999999999', '012345678')) )
union all select ty, qu, nm, pa, 'n', 'name',nm, 'V' ||strip(gp)||'%'
from v
where left(nm, 1) <> 'V'
or (gp <> '' and substr(nm, 2, 2) <> gp)
)
, eU ($colE8) as
(
select * from eTs
union all select * from eTp
group by $cols8
union all select * from eT
union all select * from eC
union all select * from eI
union all select * from eIp
group by $cols8
union all select * from eV
)
$/cte/
$@proc $@=/txt/
select ty, qu, nm, cat
, case when cat in ('s', 'sb') and val = '' then ' '
when cat in ('s', 'sb') then ' rows=' || val
|| ', space=' || std || 'B'
when length(val) = 0 then att || '='''', not std=' || std
when val = '' then att || '='' '', not std='|| std
else att || '=' || strip(val) || ', not std='|| std
end err
, pa
$/txt/
$@proc $@=/outTxt/
, outTxt as
(
$@txt
from uO
)
$/outTxt/
$proc $@=/db2gp/
$arg dbNa
, case -- when gp <> '' then gp
when $dbNa like 'DXB%' then 'XB'
when $dbNa like 'XB%' then 'XB'
else left($dbNa, 2)
end gp
, case when -- gp in ('XB', 'DXB') or
$dbNa like 'DXB%'
or $dbNa like 'XB%' then 'BUA'
when right(strip($dbNa), 2) in ('1A' , '1T')
then 'OA' || right(strip($dbNa), 2)
else 'OA1P'
end gpCr
, case when $dbNa like 'XB%' then 'x' -- elar family db
else '' end gpOpt
$/db2gp/
$proc $@=/cteC8/ $** cte with 8 columns
$@cte
,
u ($cols8) as
(
select ty, qu, nm, cat, att, val, std, pa from eU
union all select ty, qu, nm, 's', '', '', '', pa from ts
union all select ty, qu, nm, 's', '', '', '', pa from t
union all select ty, qu, nm, 's', '', '', '', pa from i
union all select ty, qu, nm, 's', '', '', '', pa from v
)
$@cteUO
$/cteC8/
$proc $@=/cteUO/
, uO0 ($colO8) as
(
select ty, cat
, cast(strip(qu) as varchar(8))
, cast(strip(nm) as varchar(50))
, cast(att as varchar(12))
, cast(rTrim(val) as varchar(50))
, cast(strip(std) as varchar(20))
, cast(strip(pa) as varchar(1000))
from u
)
, uO ($colO8) as
(
select *
from uO0
group by $colO8
order by pa, att, cat
)
$/cteUO/
$@proc genJobs $@/genJobs/
$@for li $@¢
$=rz =- word($li, 1)
$=jn =- A540769 || right($rz, 1)
if $rz \== sysvar(sysnode) then $@=¢
//${rz}SUB EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT2 DD SUBSYS=(CSM,'SYSTEM=$rz,SYSOUT=(A,INTRDR)')
//SYSUT1 DD DATA,DLM='}}'
$!
$@=¢
//${jn} JOB (CP00,KE50),'DB2 REO',
// CLASS=M,MSGCLASS=T,TIME=1440,
// NOTIFY=&SYSUID,REGION=0M,SCHENV=DB2ALL
$!
$@do wx=2 to words($li) $@=/dbSy/
$=dbSy =- word($li, wx)
$=p3 =- substr($dbSy, 3, 1)
$=path =- if(wordPos($dbSy, 'DBAF DBTF')>0, 'OA1'$p3, 'OA1P')
//${dbSy}SQL EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSTERM DD DUMMY
//SYSTSIN DD *
DSN SYSTEM($dbSy)
RUN PROGRAM(DSNTEP2) PARMS('ALIGN(LHS)') PLAN(DSNTEP2)
//SYSIN DD *
$@%¢genDdl $path$!
$/dbSy/
if $rz \== sysvar(sysnode) then
$$ }}
$!
$/genJobs/
$#out 20160617 13:15:02
sqlCode 0: set current path = 'OA1P'
sqlCode 0, 4 rows inserted: insert into OA1P.tQZ120DdlSel (ty, qu, nm) sel...
sqlCode 0, 1 rows inserted: insert into OA1P.tQZ120DdlSel (ty, qu, nm) val...
TY CAT VAL PA
QUALIFIERNAME ATT STD
TY QUALIFIERNAME C ATT VAL STD PA
t OA1P.TQZ040BINDPGM s db=DSNDB...
t OA1P.TQZ040BINDPGM o dataCapture changes db=DSNDB...
t OA1P.TQZ040BINDPGM n name TQZ040BINDPGM TDSYSTS% db=DSNDB...
t OA1P.TQZ040BINDPGM a primKeyConst no yes db=DSNDB...
t OA1P.TQZ040BINDPGM o restrictDrop Y db=DSNDB...
v OA1P.VQZ040BINDOV s db=DSNDB...
v OA1P.VQZ040BIND s db=DSNDB...
v OA1P.VQZ040REBIND s db=DSNDB...
v OA1P.VQZ040BINDPGM s db=DSNDB...
v OA1P.VQZ040BINDRDL s db=DSNDB...
v OA1P.VQZ040BINDCQ s db=DSNDB...
v OA1P.VQZ040BINDRZ s db=DSNDB...
v OA1P.VQZ040BINDDBP s db=DSNDB...
t OA1P.TQZ120DDLSEL s db=DSNDB...
t OA1P.TQZ120DDLSEL o dataCapture changes db=DSNDB...
t OA1P.TQZ120DDLSEL n name TQZ120DDLSEL TDSYSTS% db=DSNDB...
t OA1P.TQZ120DDLSEL a primKeyConst no yes db=DSNDB...
t OA1P.TQZ120DDLSEL o restrictDrop Y db=DSNDB...
v OA1P.VQZ120DDLCHEC8 s db=DSNDB...
v OA1P.VQZ120DDLCHECK s db=DSNDB...
v OA1P.VQZ120DDLCHESUM s db=DSNDB...
v OA1P.VQZ120DDLCHESU8 s db=DSNDB...
v OA1P.VQZ120DDLCHES8 s db=DSNDB...
v OA1P.VQZ120DDLCHESZ s db=DSNDB...
ts QZ01A1P.A006A s db=QZ01A...
ts QZ01A1P.A006A p encoding U EBCDIC db=QZ01A...
t OA1P.TQZ006GBGRTSSTATS s db=QZ01A...
t OA1P.TQZ006GBGRTSSTATS n name TQZ006GBGRTSSTATS TQZ006A% db=QZ01A...
t OA1P.TQZ006GBGRTSSTATS o restrictDrop Y db=QZ01A...
i OA1P.IQZ006A1 s db=QZ01A...
i OA1P.IQZ006A1 n name IQZ006A1 IQZ006G% db=QZ01A...
i OA1P.IQZ006A2 s db=QZ01A...
i OA1P.IQZ006A2 n name IQZ006A2 IQZ006G% db=QZ01A...
v OA1P.VQZ006GBGRENZE s db=QZ01A...
ts QZ01A1P.A050A s db=QZ01A...
ts QZ01A1P.A050A p encoding U EBCDIC db=QZ01A...
tp QZ01A1P.A050A o pctFree 10 5 db=QZ01A...
ts QZ01A1P.A050A p type classic UTS db=QZ01A...
t OA1P.TQZ050CMD s db=QZ01A...
t OA1P.TQZ050CMD p append Y N db=QZ01A...
t OA1P.TQZ050CMD p clusterIndex no ifIndexes db=QZ01A...
t OA1P.TQZ050CMD n name TQZ050CMD TQZ050A% db=QZ01A...
t OA1P.TQZ050CMD a primKeyConst no yes db=QZ01A...
t OA1P.TQZ050CMD o restrictDrop Y db=QZ01A...
i OA1P.IQZ050A1 s db=QZ01A...
i OA1P.IQZ050A1 n name IQZ050A1 IQZ050C% db=QZ01A...
i OA1P.IQZ050A2 s db=QZ01A...
i OA1P.IQZ050A2 n name IQZ050A2 IQZ050C% db=QZ01A...
48 rows fetched: with std (std, mbrClu, app, pFree) as ( select ' ', ' ', ...
$#out 20160617 13:14:31
$#out 20160617 13:13:32
$#out 20160617 10:42:26
$#out 20160617 10:38:13
$#out 20160617 10:37:05
$#out 20160616 21:34:06
$#out 20160616 08:37:26
$#out 20160616 08:37:07
$#out 20160612 12:24:35
}¢--- A540769.WK.SQL(DDLCHSEL) cre=2013-06-11 mod=2015-11-18-21.12.19 A540769 ---
set current path = 'OA1P';
insert into oa1p.tQZ120DDLsel
select 'ts', dbName , name
from sysibm.sysTableSpace
where name = 'VDPS026'
-- and ( name like 'A010A%')
;
insert into oa1p.tQZ120DDLsel (ty, qu, nm)
select 't', creator , Name
from sysibm.sysTables
where -- type = 'T'
name in ( 'TQZ120DDLSEL'
, 'TQZ006GBGRTSSTATS'
, 'TQZ050CMD'
) ;
insert into oa1p.tQZ120DDLsel (ty, qu, nm)
values ('v', 'OA1P', 'VQZ040REBIND') ;
insert into oa1p.tQZ120DDLsel (ty, qu, nm)
values ('t', 'OA1P', 'TQZ040BINDPGM') ;
select *
from oa1p.vQZ120DDLChec8
order by pa, att
;
select *
from oa1p.vQZ120DDLCheS8
order by pa, att
;
select *
from oa1p.vQZ120DDLCheSu8
order by pa, att
;x;
select ty, substr(qu || '.' || nm, 1, 30), cat, err, pa
from oa1p.vQZ120DDLCheSum
-- where cat not like 'i%'
-- group by std
order by pa
; x
/*
insert into oa1p.tQZ120DDLsel (ty, gp, qu, nm)
select 't', '', creator , name
from sysibm.sysTables
where name like 'TMF150%'
-- and ( name like 'A010A%')
insert into oa1p.tQZ120DDLsel
select 'ts', dbName, name, ''
from sysibm.systablespace
where dbName like 'MF04A1T' and name = 'A010A'
union all select 't', creator, name, ''
from sysibm.systables
where creator like 'OA1%' and name like 'TMF%' and type = 'T'
union all select 'ts', dbName, name, ''
from sysibm.systablespace
where dbName = 'BE%' -- and name like 'A40%'
union all select 'v', creator, name, ''
from sysibm.systables
where creator = 'GDB9998' and name like 'WK947NU%'
and type = 'V'
; */
with t as
(
select * from oa1p.vQZ120DDLCheck
)
, u (ty, qu, nm, cat, err, pa) as
(
select * from t
union all select ty, '', '', '*s', count(*) || ' * ' || ty
|| ': ' || min(qu || '.' || nm) || ' - ' || min(qu || '.' || nm)
, '*ty ' || ty
from t
where cat = 's'
group by ty
union all select ty, '', '', '*' || cat, count(*) || ' * ' || err
, '*tyCatErr ' || ty || cat || err
from t
where cat <> 's'
group by ty, cat, err
)
select ty, substr(qu || '.' || nm, 1, 30), cat, err, pa
from u
-- where cat not like 'i%'
-- group by std
order by pa
; x
select * from oa1p.vQZ120DDLCheck -- where cat = 'n'
;x;
select count(*), ty, cat, min(err), max(err)
from oa1p.vQZ120DDLCheSz
-- where cat not like 'i%'
group by ty, cat
order by ty, cat
;
select * from oa1p.vQZ120DDLCheSz order by pa, err
}¢--- A540769.WK.SQL(DDLCHSTD) cre=2013-05-13 mod=2016-06-17-10.45.52 A540769 ---
17. 6.16
ty cat ap std remark
tablespace ts
ts n name %
ts p nTables 1
ts p type PBR = UTS partitioned by Range
PBG = UTS partitioned by Growth
ts p partitions <= 200 for PBR
ts p maxParts 10 for PBG
ts o bufferpool bp2,pb32k
ts pq ccsid ebcdic
ts o * close yes
ts oq dsSize 16GB for PBR, but use only 4GB of it
4GB for PBG (will be used completely)
ts o * erase no
ts oq* lockmax system
ts oq* locksize any
ts o * logged yes
ts o * maxrows 255
ts pq memberCluster x yes
* no
ts o segsize 64
ts p * clone N
tablePart tp
tp o compress yes
tp o stoGroup x GSMS1/2/3/4
GSMS
tp o * priQty -1
tp o * secQty -1
tp oq* freepage 0
tp oq* pctfree x 0
5
tp o * gbpCache changed
table t
t n creator x BUA
t n OA1P,OA1P99 .
t n name x 'XB' || substr(tsName, 2,6)
t n T || substr(db,1,2) || substr(ts,2,4) %
t p ts implicit no
t p append x yes
p * no
t p * audit none
t o datacapture changes
t o restrictDrop yes
t p volatile x yes
no
t p clusterIndex obligatory if there are indexes
t p partitioning table based
t p primKeyConst obligatory if there are unique indexes
t p tableStatus ok
column c
c p type disallowed: xml, lob, tst with zone, decFloat...
c p hidden disallowd
index i
i n creator = tbCreator
i n name I || substr(tb, 2, 6) %
i p type disallowed: on expression
i p * padded no
i a partitioned for PBR (if possible and performant)
i p * piecesize 4GB (in not partitioned)
indexPart ip specify on index level not on part level
ip o * close yes
ip o * compress no
ip o * copy no
ip o * erase no
ip o stoGroup x GSMS1/2/3/4
GSMS
ip o * priQty -1
ip o * secQty -1
ip oq* freepage 0
ip oq* pctfree 10
ip o * gbpCache changed
view
v n name V || substr(db, 1, 2) || substr(ts, 2, 3) %
v n creator x BUA
OA1P,OA1P99
}¢--- A540769.WK.SQL(DDLCHUWE) cre=2013-05-10 mod=2013-05-10-17.09.04 A540769 ---
-- ### INFO Version 1.3 ### 00010000
-- Author: A559315, Uwe Toepperwien (TCG) 00020000
-- 00030000
-- DDL Checker für partitionierte Datenbanken ELAR. In ELAR ist nur 00040000
-- Table controlled Partition zulässig, folglich werden Non partition 00050000
-- Tables und Index controlled Partition nicht verifiziert. 00060000
-- Grundlage sind die DDL Vereinbarungen vom 10/2010 00070000
-- Nachfolgende DB2 Objekte werden geprüft: 00080000
-- (1) Datenbank 00090000
-- (2) Tablespaces 00100000
-- (3) Tabeles 00110000
-- (4) Indexspaces 00120000
-- (5) Index(e) Primary DPSI/ DPSI 00130000
-- 00140000
-- Ein DDL Check ist möglich durch Angabe der ELAR Familie und/ oder 00150000
-- der Datenbank. 00160000
-- 00170000
-- Ist das Result des DDL Checkers "empty", dann sind alle vereinbarten 00180000
-- DDL Parameter eingehalten. 00190000
-- 00200000
-- Ist das Result des DDL Checkers nicht "empty", dann 00210000
-- (a) werden alle DDL Parameter Abweichungen ausgewiesen, wenn die 00220000
-- Familie/ Datenbank vom Typ Table Controlled Partition ist 00230000
-- (b) der Fehler "DatabaseImplementation" zeigt an, das die Familie/ 00240000
-- Datenbank nicht vom Typ Table Controlled Partition ist. 00250000
-- 00260000
-- Die nachfolgenden zwei INSERT's zeigen exemplarisch die Möglichkeiten00270000
-- der Parameterzuordnung für den DDL Checker. 00280000
-- Die Datenbank XBA06004 ist nicht partitioniert und die Familie 00290000
-- entspricht in Teilen nicht DDL Vereinbarungen. 00300000
-- 00310000
-- Parameterwert fuer maximale Anzahl Partition festlegen 00320000
-- Die maximale Anzahl Partitionen ist für Table- und Indexcontrolled 00330000
-- Partitioning vorzugeben. 00340000
-- 00350000
-- Update: 10.05.2012, TCG 00360000
-- (1) New Bufferpool assignment (BP2 and BP1) 00370000
-- (2) Check Bufferpool BP8 for LOB 00380000
-- (3) De-activate Partition and Index Columun check 00390000
-- for database with prefix DXB (Elar Metadata) 00400000
-- (4) Result set order changed to family, database, tablespace, 00410000
-- table, indexspace and index. 00420000
-- (5) Defined more and detailed messages. 00430000
-- 00440000
-- Update: 17.05.2012, TCG 00450000
-- (1) Find database name for migrated families (migrated families 00460000
-- have a symbolic name like FAMnnmm where nn is multipler 1000 00470000
-- and mm is the family number. Exp. FAM1015 is family 15 that is 00480000
-- family DEVI.IF) 00490000
-- (2) New column COMMENT describes the family 00500000
-- (3) Result shows first families from migration and all other 00510000
-- families. 00520000
-- (4) Correction of text mistakes. 00530000
-- 00540000
-- ============ Start of Check sequence ============ 00550000
-- 00560000
-- Zwischenspeicher der zu untersuchenden Datenbanken 00570000
-- 00580000
DECLARE GLOBAL TEMPORARY TABLE FAMLISTE 00590000
( FAMILY CHAR(20) NOT NULL 00600000
, DBNAME CHAR(08) NOT NULL 00610000
, STORAR CHAR(03) 00620000
, ENSEG CHAR(03) 00630000
, STORAR_N INTEGER 00640000
, ENSEG_N SMALLINT 00650000
) 00660000
; 00670000
--- ===> Hier ELAR Familie und/ oder Datenbanknamen eingeben. 00680000
--- Sample 1: Vorgabe Familie, dann Datenbank uuf '?' setzen 00690000
INSERT INTO SESSION.FAMLISTE ( FAMILY, DBNAME ) 00700000
VALUES ( '?', 'XBFQ1001') 00710000
--- Sample 2: Vorgabe Datenbank, dann Familie auf '?' setzen 00720000
--INSERT INTO SESSION.FAMLISTE ( FAMILY, DBNAME ) 00730000
-- VALUES ( '?', 'XBD2R001') 00740000
; 00750000
--- Definition of partition limit for table- and indexspace 00760000
DECLARE GLOBAL TEMPORARY TABLE MAXPART 00770000
( PARTYPE CHAR(05) NOT NULL 00780000
, MAXPART INTEGER NOT NULL 00790000
) 00800000
; 00810000
INSERT INTO SESSION.MAXPART ( PARTYPE, MAXPART ) 00820000
VALUES ( 'Table', 200 ) 00830000
; 00840000
INSERT INTO SESSION.MAXPART ( PARTYPE, MAXPART ) 00850000
VALUES ( 'Index', 128 ) 00860000
; 00870000
UPDATE SESSION.FAMLISTE 00880000
SET STORAR = SUBSTR(DBNAME,3,3) 00890000
, ENSEG = SUBSTR(DBNAME,6,3) 00900000
WHERE SUBSTR(DBNAME,1,2) = 'XB' 00910000
; 00920000
UPDATE SESSION.FAMLISTE 00930000
SET STORAR_N = (SELECT XBA510_STORAGE_ARN 00940000
FROM BUA.TXBA510 00950000
WHERE XBA510_STORAGE_ARC = STORAR 00960000
) 00970000
, ENSEG_N = (SELECT XBA510_STORAGE_ARN 00980000
FROM BUA.TXBA510 00990000
WHERE XBA510_STORAGE_ARC = ENSEG 01000000
) 01010000
; 01020000
DECLARE GLOBAL TEMPORARY TABLE ELAR 01030000
( FAMILY CHAR(20) NOT NULL 01040000
, STORAR CHAR(08) NOT NULL 01050000
, COMMENT CHAR(20) NOT NULL WITH DEFAULT 01060000
) 01070000
; 01080000
INSERT INTO SESSION.ELAR 01090000
WITH TESLA ( FAMILY 01100000
, STORAR 01110000
, COMMENT 01120000
) 01130000
-- 01140000
-- Search over family name and retrieve database name(s) 01150000
-- 1) Import run time tables 01160000
-- 2) Time range run time table and family configuration 01170000
-- (no data available over(1) 01180000
-- 3) Migration protocol (no data available over (1) and (2) 01190000
-- 4) Family number control table. Last change to find a family, 01200000
-- while all run time and meta data are broken (broken links) 01210000
-- 01220000
AS (SELECT C071.EAOF 01230000
, CAST ( C071.EYPREF || 01240000
C111.ENSTORAR || 01250000
C111.ENSEG AS CHAR(08) 01260000
) 01270000
, ' ' AS COMMENT 01280000
FROM BUA.TXBC111 C111 01290000
FULL OUTER JOIN BUA.TXBC071 C071 01300000
ON C111.ENSTORAR = C071.ENSTORAR 01310000
INNER JOIN SESSION.FAMLISTE FL 01320000
ON FL.FAMILY = C071.EAOF 01330000
WHERE C111.ENSTORAR IS NOT NULL 01340000
AND C111.ENSEG IS NOT NULL 01350000
AND C071.EYPREF IS NOT NULL 01360000
UNION DISTINCT 01370000
SELECT BE051.EAOF 01380000
, FL.DBNAME 01390000
, ' ' AS COMMENT 01400000
FROM BUA.TXBE051 BE051 01410000
INNER JOIN BUA.TXBA201 BA201 01420000
ON BE051.ENLIBENG = BA201.ENSTORAR 01430000
INNER JOIN SESSION.FAMLISTE FL 01440000
ON FL.FAMILY = BE051.EAOF 01450000
UNION DISTINCT 01460000
SELECT T504.XBA501_FAMNAME 01470000
, XBA504_DB 01480000
, '-- old Migration --' AS COMMENT 01490000
FROM BUA.TXBA504 T504 01500000
LEFT JOIN BUA.TXBA511 T511 01510000
ON T504.XBA501_FAMNAME = T511.XBA501_FAMNAME 01520000
AND T504.XBA504_TABLE = T511.XBA504_TABLE 01530000
INNER JOIN SESSION.FAMLISTE FL 01540000
ON FL.FAMILY = T504.XBA501_FAMNAME 01550000
UNION DISTINCT 01560000
SELECT STRIP(BA131.EAOF) 01570000
, SUBSTR(MG103.EANTABNAME,1,8) 01580000
, '-- new Migration --' AS COMMENT 01590000
FROM BUA.TXBMG103 MG103 01600000
INNER JOIN BUA.TXBA131 BA131 01610000
ON MG103.ENOF = BA131.ENOF 01620000
INNER JOIN SESSION.FAMLISTE FL 01630000
ON UCASE(BA131.EAOF) = FL.FAMILY 01640000
-- 01650000
-- Search over Database Name and retrieve family name 01660000
-- In general same processing like search over family, but other 01670000
-- columns are relevant. 01680000
-- 01690000
UNION DISTINCT 01700000
SELECT C071.EAOF 01710000
, FL.DBNAME 01720000
, ' ' AS COMMENT 01730000
FROM BUA.TXBC111 C111 01740000
FULL OUTER JOIN BUA.TXBC071 C071 01750000
ON C111.ENSTORAR = C071.ENSTORAR 01760000
INNER JOIN SESSION.FAMLISTE FL 01770000
ON FL.STORAR = C111.ENSTORAR 01780000
AND FL.ENSEG = C111.ENSEG 01790000
UNION DISTINCT 01800000
SELECT BE051.EAOF AS FAMILY 01810000
, FL.DBNAME 01820000
, ' ' AS COMMENT 01830000
FROM BUA.TXBE051 BE051 01840000
INNER JOIN BUA.TXBA201 BA201 01850000
ON BE051.ENLIBENG = BA201.ENSTORAR 01860000
INNER JOIN SESSION.FAMLISTE FL 01870000
ON FL.STORAR_N = BA201.ENSTORAR 01880000
AND FL.ENSEG_N = BA201.ENSEG 01890000
UNION DISTINCT 01900000
SELECT T504.XBA501_FAMNAME 01910000
, XBA504_DB 01920000
, ' ' AS COMMENT 01930000
FROM BUA.TXBA504 T504 01940000
LEFT JOIN BUA.TXBA511 T511 01950000
ON T504.XBA501_FAMNAME = T511.XBA501_FAMNAME 01960000
AND T504.XBA504_TABLE = T511.XBA504_TABLE 01970000
INNER JOIN SESSION.FAMLISTE FL 01980000
ON FL.DBNAME = T504.XBA504_DB 01990000
UNION DISTINCT 02000000
SELECT UCASE(BA131.EAOF) 02010000
, FL.DBNAME 02020000
, ' ' AS COMMENT 02030000
FROM BUA.TXBA131 BA131 02040000
INNER JOIN BUA.TXBG081 BG181 02050000
ON BA131.ENOF = BG181.ENOF 02060000
INNER JOIN SESSION.FAMLISTE FL 02070000
ON BG181.ENSTORAR = FL.STORAR_N 02080000
UNION DISTINCT 02090000
SELECT UCASE(BA131.EAOF) 02100000
, FL.DBNAME 02110000
, ' ' AS COMMENT 02120000
FROM BUA.TXBA131 BA131 02130000
INNER JOIN BUA.TXBG081X BG181 02140000
ON BA131.ENOF = BG181.ENOF 02150000
INNER JOIN SESSION.FAMLISTE FL 02160000
ON BG181.ENSTORAR = FL.STORAR_N 02170000
UNION DISTINCT 02180000
SELECT 'ELAR Repo. / Base' 02190000
, DBNAME 02200000
, ' ' AS COMMENT 02210000
FROM SESSION.FAMLISTE 02220000
WHERE SUBSTR(DBNAME,1,3) = 'DXB' 02230000
) 02240000
SELECT FAMILY 02250000
, STORAR 02260000
, COMMENT 02270000
FROM TESLA 02280000
; 02290000
-- Add database without ELAR meta data into checklist 02300000
-- 02310000
INSERT INTO SESSION.ELAR 02320000
SELECT DBNAME 02330000
, DBNAME 02340000
, ' ' 02350000
FROM SESSION.FAMLISTE 02360000
WHERE DBNAME NOT IN (SELECT STORAR FROM SESSION.ELAR) 02370000
AND DBNAME <> '?' 02380000
; 02390000
DECLARE GLOBAL TEMPORARY TABLE TEMP 02400000
( SNUM CHAR(0013) FOR BIT DATA NOT NULL 02410000
, CRITERIA CHAR(0030) NOT NULL 02420000
, FAMILY CHAR(0030) NOT NULL 02430000
, COMMENT CHAR(0020) NOT NULL 02440000
, OBJECT CHAR(0060) NOT NULL 02450000
, OPTVALUE VARCHAR(1024) NOT NULL 02460000
) 02470000
; 02480000
INSERT INTO SESSION.TEMP 02490000
WITH DBDDL ( FAMILY 02500000
, DATABASE 02510000
, BUFFERPOOL 02520000
, INDEXPOOL 02530000
, STOGROUP 02540000
, CCID 02550000
, DBID 02560000
, COMMENT 02570000
) 02580000
AS (SELECT DISTINCT 02590000
EL.FAMILY 02600000
, DB.NAME 02610000
, DB.BPOOL 02620000
, DB.INDEXBP 02630000
, DB.STGROUP 02640000
, DB.ENCODING_SCHEME 02650000
, DB.DBID 02660000
, EL.COMMENT 02670000
FROM SESSION.ELAR EL 02680000
INNER JOIN SYSIBM.SYSDATABASE DB 02690000
ON EL.STORAR = DB.NAME 02700000
INNER JOIN SYSIBM.SYSTABLESPACE TS 02710000
ON DB.DBID = TS.DBID 02720000
) 02730000
, RDB ( FAMILY 02740000
, COMMENT 02750000
, OBJECT 02760000
, OPTVALUE 02770000
) 02780000
AS (SELECT DISTINCT 02790000
FAMILY 02800000
, COMMENT 02810000
, CAST(DATABASE AS CHAR(08)) 02820000
, 'Bufferpool_DB=' 02830000
|| CASE WHEN BUFFERPOOL = 'BP2' 02840000
THEN 'OK' 02850000
ELSE 'NOK' 02860000
END 02870000
|| ';' 02880000
|| 'Bufferpool_DB_IX=' 02890000
|| CASE WHEN INDEXPOOL = 'BP1' 02900000
THEN 'OK' 02910000
ELSE 'NOK' 02920000
END 02930000
|| ';' 02940000
|| 'StorageGroup=' 02950000
|| CASE STOGROUP 02960000
WHEN 'GSMS1' THEN 'OK' 02970000
WHEN 'GSMS2' THEN 'OK' 02980000
WHEN 'GSMS3' THEN 'OK' 02990000
WHEN 'GSMS4' THEN 'OK' 03000000
ELSE CASE WHEN SUBSTR(DATABASE,1,3) = 'DXB' 03010000
THEN CASE WHEN STOGROUP = 'GSMS' 03020000
THEN 'OK' 03030000
ELSE 'NOK' 03040000
END 03050000
ELSE 'NOK' 03060000
END 03070000
END 03080000
|| ';' 03090000
|| 'EncodingScheme=' 03100000
|| CASE WHEN CCID = 'E' 03110000
THEN 'OK' 03120000
ELSE 'NOK' 03130000
END 03140000
FROM DBDDL 03150000
) 03160000
SELECT GENERATE_UNIQUE() 03170000
, '1Database Option Check' 03180000
, FAMILY 03190000
, COMMENT 03200000
, OBJECT 03210000
, OPTVALUE 03220000
FROM RDB 03230000
ORDER BY FAMILY 03240000
, OBJECT 03250000
; 03260000
INSERT INTO SESSION.TEMP 03270000
WITH TSDDL ( FAMILY 03280000
, DATABASE 03290000
, BPOOL_T 03300000
, TSNAME 03310000
, PARTITION 03320000
, STOGROUP 03330000
, PRIQTY 03340000
, SECQTY 03350000
, GBPCACHE 03360000
, TRACKMODE 03370000
, LOGGED 03380000
, DSSIZE 03390000
, LOCKSIZE 03400000
, LOCKMAX 03410000
, CLOSE 03420000
, COMPRESS 03430000
, CCID 03440000
, DEFINE 03450000
, MAXROWS 03460000
, TPIXNAME 03470000
, AUXTBNAME 03480000
, COMMENT 03490000
) 03500000
AS (SELECT DISTINCT 03510000
EL.FAMILY AS FAMILY 03520000
, DB.NAME AS DATABASE 03530000
, TS.BPOOL AS BPOOL_T 03540000
, TS.NAME AS TSNAME 03550000
, TS.PARTITIONS AS PARTITION 03560000
, TP.STORNAME AS STOGROUP 03570000
, TP.PQTY AS PRIQTY 03580000
, TP.SQTY AS SECQTY 03590000
, TP.GBPCACHE AS GBPCACHE 03600000
, TP.TRACKMOD AS TRACKMODE 03610000
, TS.LOG AS LOGGED 03620000
, TS.DSSIZE AS DSSIZE 03630000
, TS.LOCKRULE AS LOCKSIZE 03640000
, TS.LOCKMAX AS LOCKMAX 03650000
, TS.CLOSERULE AS CLOSE 03660000
, TP.COMPRESS AS COMPRESS 03670000
, TS.ENCODING_SCHEME AS CCID 03680000
, TP.SPACE AS DEFINE 03690000
, TS.MAXROWS AS MAXROWS 03700000
, TP.IXNAME AS TPIXNAME 03710000
, TB.TYPE AS AUXTBNAME 03720000
, EL.COMMENT AS COMMENT 03730000
FROM SESSION.ELAR EL 03740000
INNER JOIN SYSIBM.SYSDATABASE DB 03750000
ON EL.STORAR = DB.NAME 03760000
INNER JOIN SYSIBM.SYSTABLESPACE TS 03770000
ON DB.DBID = TS.DBID 03780000
INNER JOIN SYSIBM.SYSTABLEPART TP 03790000
ON TS.NAME = TP.TSNAME 03800000
AND TS.DBNAME = TP.DBNAME 03810000
INNER JOIN SYSIBM.SYSTABLES TB 03820000
ON TP.DBNAME = TB.DBNAME 03830000
AND TP.TSNAME = TB.TSNAME 03840000
) 03850000
, RTS ( FAMILY 03860000
, COMMENT 03870000
, OBJECT 03880000
, OPTVALUE 03890000
) 03900000
AS (SELECT DISTINCT 03910000
FAMILY 03920000
, COMMENT 03930000
, CAST(DATABASE AS CHAR(08)) 03940000
|| ' ' 03950000
|| TSNAME 03960000
|| ' ' 03970000
, CASE WHEN PARTITION > 0 03980000
THEN CASE WHEN LENGTH(STRIP(TPIXNAME)) = 0 03990000
THEN 'InfoTCP=OK' 04000000
ELSE 'InfoICP=OK' 04010000
END 04020000
ELSE 'InfoTSS=OK' 04030000
END 04040000
|| ';' 04050000
|| 'TablePartLimit=' 04060000
|| CASE WHEN PARTITION > (SELECT MAXPART 04070000
FROM SESSION.MAXPART 04080000
WHERE PARTYPE = 'Table' 04090000
) 04100000
THEN 'NOK' 04110000
ELSE 'OK' 04120000
END 04130000
|| ';' 04140000
|| 'Bufferpool' 04150000
|| CASE BPOOL_T 04160000
WHEN 'BP2' THEN 04170000
CASE WHEN SUBSTR(TSNAME,1,3)='SHS' 04180000
THEN '_SHS=NOK' 04190000
ELSE '=OK' 04200000
END 04210000
WHEN 'BP32K' THEN 04220000
CASE WHEN SUBSTR(TSNAME,1,3)='SHS' 04230000
THEN '=OK' 04240000
ELSE CASE WHEN LENGTH(TSNAME) = 8 04250000
THEN CASE WHEN SUBSTR(TSNAME,8,1)04260000
= 'H' 04270000
THEN '=OK' 04280000
ELSE '_SHS=NOK' 04290000
END 04300000
ELSE '_SHS=NOK' 04310000
END 04320000
END 04330000
WHEN 'BP8' THEN 04340000
CASE WHEN AUXTBNAME = 'X' 04350000
THEN '=OK' 04360000
ELSE '_LOB=NOK' 04370000
END 04380000
ELSE '_TS=NOK' 04390000
END 04400000
|| ';' 04410000
|| 'Groupbufferpool=' 04420000
|| CASE GBPCACHE 04430000
WHEN ' ' THEN 'OK' 04440000
ELSE 'NOK' 04450000
END 04460000
|| ';' 04470000
|| 'Trackmode=' 04480000
|| CASE TRACKMODE 04490000
WHEN 'N' THEN 'OK' 04500000
ELSE 'NOK' 04510000
END 04520000
|| ';' 04530000
|| 'LoggedOption=' 04540000
|| CASE LOGGED 04550000
WHEN 'Y' THEN 'OK' 04560000
ELSE 'NOK' 04570000
END 04580000
|| ';' 04590000
|| 'DSSIZE=' 04600000
|| CASE WHEN PARTITION > 0 04610000
THEN CASE DSSIZE 04620000
WHEN 16777216 THEN 'OK' 04630000
ELSE 'NOK' 04640000
END 04650000
ELSE 'OK' 04660000
END 04670000
|| ';' 04680000
|| 'Locksize=' 04690000
|| CASE LOCKSIZE 04700000
WHEN 'A' THEN 'OK' 04710000
ELSE 'NOK' 04720000
END 04730000
|| ';' 04740000
|| 'LockMax=' 04750000
|| CASE LOCKMAX 04760000
WHEN -1 THEN 'OK' 04770000
ELSE 'NOK' 04780000
END 04790000
|| ';' 04800000
|| 'CloseOption=' 04810000
|| CASE CLOSE 04820000
WHEN 'Y' THEN 'OK' 04830000
ELSE 'NOK' 04840000
END 04850000
|| ';' 04860000
|| 'TblCompressOption=' 04870000
|| CASE COMPRESS 04880000
WHEN 'Y' THEN 'OK' 04890000
ELSE 'NOK' 04900000
END 04910000
|| ';' 04920000
|| 'StorageGroup=' 04930000
|| CASE STOGROUP 04940000
WHEN 'GSMS1' THEN 'OK' 04950000
WHEN 'GSMS2' THEN 'OK' 04960000
WHEN 'GSMS3' THEN 'OK' 04970000
WHEN 'GSMS4' THEN 'OK' 04980000
ELSE CASE WHEN SUBSTR(DATABASE,1,3) = 'DXB' 04990000
THEN CASE WHEN STOGROUP = 'GSMS' 05000000
THEN 'OK' 05010000
ELSE 'NOK' 05020000
END 05030000
ELSE 'NOK' 05040000
END 05050000
END 05060000
|| ';' 05070000
|| 'PrimaryQuantity=' 05080000
|| CASE PRIQTY 05090000
WHEN -1 THEN 'OK' 05100000
ELSE 'NOK' 05110000
END 05120000
|| ';' 05130000
|| 'SecondaryQuantity=' 05140000
|| CASE SECQTY 05150000
WHEN -1 THEN 'OK' 05160000
ELSE 'NOK' 05170000
END 05180000
|| ';' 05190000
|| 'EncodingScheme=' 05200000
|| CASE WHEN CCID = 'E' THEN 'OK' 05210000
ELSE 'NOK' 05220000
END 05230000
|| ';' 05240000
|| 'DefineOption=' 05250000
|| CASE DEFINE 05260000
WHEN -1 THEN 'NOK' 05270000
ELSE 'OK' 05280000
END 05290000
|| ';' 05300000
|| 'MaxRowsPerPage=' 05310000
|| CASE MAXROWS 05320000
WHEN 255 THEN 'OK' 05330000
ELSE 'NOK' 05340000
END 05350000
FROM TSDDL 05360000
) 05370000
SELECT GENERATE_UNIQUE() 05380000
, '2Tablespace Option Check' 05390000
, FAMILY 05400000
, COMMENT 05410000
, OBJECT 05420000
, OPTVALUE 05430000
FROM RTS 05440000
ORDER BY FAMILY 05450000
, OBJECT 05460000
; 05470000
INSERT INTO SESSION.TEMP 05480000
WITH TBDDL ( FAMILY 05490000
, DATABASE 05500000
, TSNAME 05510000
, TBNAME 05520000
, AUDIT 05530000
, DATA_CAPTURE 05540000
, RESTRICT_DROP 05550000
, CCID 05560000
, VOLATILE 05570000
, APPEND 05580000
, PART_NAME 05590000
, PART_TYPE 05600000
, PART_SEQ 05610000
, PART_ORDER 05620000
, PARTITION 05630000
, PART_LIMITKEY 05640000
, PART_LOGICALKEY 05650000
, COLNO 05660000
, COMMENT 05670000
) 05680000
AS (SELECT EL.FAMILY 05690000
, CAST(TB.DBNAME AS CHAR(08)) 05700000
, TB.TSNAME 05710000
, TB.NAME 05720000
, TB.AUDITING 05730000
, TB.DATACAPTURE 05740000
, TB.CLUSTERTYPE 05750000
, TB.ENCODING_SCHEME 05760000
, TB.SPLIT_ROWS 05770000
, TB.APPEND 05780000
, TC.NAME 05790000
, TC.COLTYPE 05800000
, TC.PARTKEY_COLSEQ 05810000
, CAST(CASE WHEN TS.PARTITIONS = 0 05820000
THEN ' ' 05830000
ELSE TC.PARTKEY_ORDERING 05840000
END AS CHAR(01)) 05850000
, CAST(TP.PARTITION AS INTEGER) 05860000
, CAST(CASE WHEN TS.PARTITIONS = 0 05870000
THEN '0' 05880000
ELSE STRIP(TP.LIMITKEY) 05890000
END AS VARCHAR(765)) 05900000
, CAST(CASE WHEN TS.PARTITIONS = 0 05910000
THEN 0 05920000
ELSE TP.LOGICAL_PART 05930000
END AS INTEGER) 05940000
, COLNO 05950000
, EL.COMMENT 05960000
FROM SESSION.ELAR EL 05970000
INNER JOIN SYSIBM.SYSDATABASE DB 05980000
ON EL.STORAR = DB.NAME 05990000
INNER JOIN SYSIBM.SYSTABLES TB 06000000
ON TB.DBNAME = DB.NAME 06010000
AND TB.TYPE = 'T' 06020000
INNER JOIN SYSIBM.SYSCOLUMNS TC 06030000
ON TB.NAME = TC.TBNAME 06040000
AND TB.CREATOR = TC.TBCREATOR 06050000
INNER JOIN SYSIBM.SYSTABLESPACE TS 06060000
ON TB.TSNAME = TS.NAME 06070000
AND TB.DBID = TS.DBID 06080000
AND TS.DBID = DB.DBID 06090000
INNER JOIN SYSIBM.SYSTABLEPART TP 06100000
ON TS.NAME = TP.TSNAME 06110000
AND TS.DBNAME = TP.DBNAME 06120000
WHERE SUBSTR(EL.STORAR,1,3) <> 'DXB' 06130000
ORDER BY TB.DBNAME, TB.TSNAME 06140000
, TC.COLNO , TC.PARTKEY_COLSEQ 06150000
) 06160000
, RTB ( FAMILY 06170000
, COMMENT 06180000
, OBJECT 06190000
, OPTVALUE 06200000
) 06210000
AS (SELECT DISTINCT 06220000
FAMILY 06230000
, COMMENT 06240000
, CAST(DATABASE AS CHAR(08)) 06250000
|| ' ' 06260000
|| TSNAME 06270000
|| ' ' 06280000
|| TBNAME 06290000
, 'Audit=' 06300000
|| CASE AUDIT 06310000
WHEN ' ' THEN 'OK' 06320000
ELSE 'NOK' 06330000
END 06340000
|| ';' 06350000
|| 'DataCapture=' 06360000
|| CASE DATA_CAPTURE 06370000
WHEN ' ' THEN 'OK' 06380000
ELSE 'NOK' 06390000
END 06400000
|| ';' 06410000
|| 'RestrictOnDrop=' 06420000
|| CASE RESTRICT_DROP 06430000
WHEN 'Y' THEN 'OK' 06440000
ELSE 'NOK' 06450000
END 06460000
|| ';' 06470000
|| 'EncodingScheme=' 06480000
|| CASE CCID 06490000
WHEN 'E' THEN 'OK' 06500000
ELSE 'NOK' 06510000
END 06520000
|| ';' 06530000
|| 'Volatile=' 06540000
|| CASE VOLATILE 06550000
WHEN 'Y' THEN 'OK' 06560000
ELSE 'NOK' 06570000
END 06580000
|| ';' 06590000
|| 'Append=' 06600000
|| CASE APPEND 06610000
WHEN 'N' THEN 'OK' 06620000
ELSE 'NOK' 06630000
END 06640000
|| ';' 06650000
|| 'PartKeyName=' 06660000
|| CASE WHEN PART_SEQ > 0 06670000
THEN CASE PART_NAME 06680000
WHEN 'EN1PART' THEN 'OK' 06690000
ELSE 'NOK' 06700000
END 06710000
ELSE 'N/A' 06720000
END 06730000
|| ';' 06740000
|| 'PartKeyType=' 06750000
|| CASE WHEN PART_SEQ > 0 06760000
THEN CASE PART_TYPE 06770000
WHEN 'INTEGER' THEN 'OK' 06780000
ELSE 'NOK' 06790000
END 06800000
ELSE 'N/A' 06810000
END 06820000
|| ';' 06830000
|| 'PartKeyPosition=' 06840000
|| CASE WHEN PART_SEQ > 0 06850000
THEN CASE PART_SEQ 06860000
WHEN 1 THEN 'OK' 06870000
ELSE 'NOK' 06880000
END 06890000
ELSE 'N/A' 06900000
END 06910000
|| ';' 06920000
|| 'PartKeyOrder=' 06930000
|| CASE WHEN PART_SEQ > 0 06940000
THEN CASE PART_ORDER 06950000
WHEN 'A' THEN 'OK' 06960000
ELSE 'NOK' 06970000
END 06980000
ELSE 'N/A' 06990000
END 07000000
|| ';' 07010000
|| 'PartKeyValue(s)=' 07020000
|| CASE WHEN PART_SEQ > 0 07030000
THEN CASE WHEN CHAR(PARTITION) = PART_LIMITKEY 07040000
THEN CASE WHEN PART_LIMITKEY 07050000
= CHAR(PART_LOGICALKEY)07060000
THEN 'OK' 07070000
ELSE 'NOK' 07080000
END 07090000
ELSE 'NOK' 07100000
END 07110000
ELSE 'N/A' 07120000
END 07130000
AS OPTVALUE 07140000
FROM TBDDL 07150000
) 07160000
SELECT GENERATE_UNIQUE() 07170000
, '3Table Option Check' 07180000
, FAMILY 07190000
, COMMENT 07200000
, OBJECT 07210000
, OPTVALUE 07220000
FROM RTB 07230000
ORDER BY FAMILY 07240000
, OBJECT 07250000
; 07260000
INSERT INTO SESSION.TEMP 07270000
WITH XSTMP ( FAMILY 07280000
, DATABASE 07290000
, TBNAME 07300000
, IXNAME 07310000
, IXCREATOR 07320000
, BPOOL_I 07330000
, INDEXTYPE 07340000
, PARTITION 07350000
, STOGROUP 07360000
, PRIQTY 07370000
, SECQTY 07380000
, GBPCACHE 07390000
, PGSIZE 07400000
, FREEPAGE 07410000
, PCTFREE 07420000
, COMPRESS 07430000
, CLOSE 07440000
, COPY 07450000
, DEFINE 07460000
, CLUSTERING 07470000
, TSPARTITION 07480000
, TPIXNAME 07490000
, PIECESIZE 07500000
, COMMENT 07510000
) 07520000
AS (SELECT DISTINCT 07530000
EL.FAMILY 07540000
, DB.NAME 07550000
, IX.TBNAME 07560000
, IX.NAME 07570000
, IX.CREATOR 07580000
, IX.BPOOL 07590000
, IX.INDEXTYPE 07600000
, (SELECT MAX(TMP.PARTITION) 07610000
FROM SYSIBM.SYSINDEXPART TMP 07620000
WHERE TMP.IXNAME = IX.NAME 07630000
AND TMP.IXCREATOR = IX.CREATOR 07640000
) 07650000
, XP.STORNAME 07660000
, XP.PQTY 07670000
, XP.SQTY 07680000
, XP.GBPCACHE 07690000
, IX.PGSIZE 07700000
, XP.FREEPAGE 07710000
, XP.PCTFREE 07720000
, IX.COMPRESS 07730000
, IX.CLOSERULE 07740000
, IX.COPY 07750000
, XP.SPACE 07760000
, IX.CLUSTERING 07770000
, (SELECT TMP.PARTITIONS 07780000
FROM SYSIBM.SYSTABLESPACE TMP 07790000
WHERE TMP.DBID = DB.DBID 07800000
AND TMP.DBID = IX.DBID 07810000
AND TMP.NAME = TB.TSNAME 07820000
) 07830000
, (SELECT TMP.IXNAME 07840000
FROM SYSIBM.SYSTABLEPART TMP 07850000
WHERE TMP.TSNAME = TS.NAME 07860000
AND TMP.DBNAME = TS.DBNAME 07870000
FETCH FIRST 1 ROW ONLY 07880000
) 07890000
, IX.PIECESIZE 07900000
, EL.COMMENT 07910000
FROM SESSION.ELAR EL 07920000
INNER JOIN SYSIBM.SYSDATABASE DB 07930000
ON EL.STORAR = DB.NAME 07940000
INNER JOIN SYSIBM.SYSINDEXES IX 07950000
ON DB.DBID = IX.DBID 07960000
INNER JOIN SYSIBM.SYSTABLES TB 07970000
ON IX.TBNAME = TB.NAME 07980000
AND IX.DBNAME = TB.DBNAME 07990000
AND IX.DBID = TB.DBID 08000000
AND TB.DBID = DB.DBID 08010000
INNER JOIN SYSIBM.SYSTABLESPACE TS 08020000
ON TB.TSNAME = TS.NAME 08030000
AND TS.DBID = TB.DBID 08040000
AND TS.DBID = IX.DBID 08050000
AND TS.DBID = DB.DBID 08060000
INNER JOIN SYSIBM.SYSINDEXPART XP 08070000
ON IX.NAME = XP.IXNAME 08080000
AND IX.CREATOR = XP.IXCREATOR 08090000
WHERE SUBSTR(EL.STORAR,1,3) <> 'DXB' 08100000
) 08110000
, IXDDL ( FAMILY 08120000
, DATABASE 08130000
, TBNAME 08140000
, IXNAME 08150000
, BPOOL_I 08160000
, INDEXTYPE 08170000
, PARTITION 08180000
, STOGROUP 08190000
, PRIQTY 08200000
, SECQTY 08210000
, GBPCACHE 08220000
, PGSIZE 08230000
, FREEPAGE 08240000
, PCTFREE 08250000
, COMPRESS 08260000
, CLOSE 08270000
, COPY 08280000
, DEFINE 08290000
, CLUSTERING 08300000
, CNT_KEYS 08310000
, CLUSTERKEY 08320000
, TSPARTITION 08330000
, TPIXNAME 08340000
, PIECESIZE 08350000
, COMMENT 08360000
) 08370000
AS (SELECT T1.FAMILY 08380000
, T1.DATABASE 08390000
, T1.TBNAME 08400000
, T1.IXNAME 08410000
, T1.BPOOL_I 08420000
, T1.INDEXTYPE 08430000
, T1.PARTITION 08440000
, T1.STOGROUP 08450000
, T1.PRIQTY 08460000
, T1.SECQTY 08470000
, T1.GBPCACHE 08480000
, T1.PGSIZE 08490000
, T1.FREEPAGE 08500000
, T1.PCTFREE 08510000
, T1.COMPRESS 08520000
, T1.CLOSE 08530000
, T1.COPY 08540000
, T1.DEFINE 08550000
, T1.CLUSTERING 08560000
, (SELECT MAX(SK.COLSEQ) 08570000
FROM SYSIBM.SYSKEYS SK 08580000
WHERE T1.IXCREATOR = SK.IXCREATOR 08590000
AND T1.IXNAME = SK.IXNAME 08600000
AND T1.CLUSTERING = 'Y' 08610000
AND SK.COLSEQ = 1 08620000
) AS CNT_KEYS 08630000
, (SELECT SK.COLNAME 08640000
FROM SYSIBM.SYSKEYS SK 08650000
WHERE T1.IXCREATOR = SK.IXCREATOR 08660000
AND T1.IXNAME = SK.IXNAME 08670000
AND T1.CLUSTERING = 'Y' 08680000
AND SK.COLSEQ = 1 08690000
) AS CLUSTERKEY 08700000
, T1.TSPARTITION 08710000
, T1.TPIXNAME 08720000
, T1.PIECESIZE 08730000
, T1.COMMENT 08740000
FROM XSTMP T1 08750000
) 08760000
, RXS ( FAMILY 08770000
, COMMENT 08780000
, OBJECT 08790000
, OPTVALUE 08800000
) 08810000
AS (SELECT DISTINCT 08820000
FAMILY 08830000
, COMMENT 08840000
, CAST(DATABASE AS CHAR(08)) 08850000
|| ' ' 08860000
|| IXNAME 08870000
|| ' ' 08880000
|| TBNAME 08890000
, 'NoIndexExists=' 08900000
|| CASE WHEN LENGTH(STRIP(IXNAME)) = 0 08910000
THEN 'NOK' 08920000
ELSE 'OK' 08930000
END 08940000
|| ';' 08950000
|| 'NPI=' 08960000
|| CASE WHEN PARTITION + TSPARTITION = 0 08970000
THEN 'OK' 08980000
ELSE CASE WHEN TSPARTITION > 0 AND PIECESIZE = 0 08990000
THEN 'OK' 09000000
ELSE CASE WHEN PARTITION > 0 AND 09010000
PIECESIZE > 0 09020000
THEN 'OK' 09030000
ELSE 'NOK' 09040000
END 09050000
END 09060000
END 09070000
|| ';' 09080000
|| 'Indextype=' 09090000
|| CASE INDEXTYPE 09100000
WHEN 'D' then case when tspartition > 0 09110000
then 'OK' 09120000
else 'NOK' 09130000
end 09140000
WHEN 'P' then case when tspartition > 0 09150000
then 'OK' 09160000
else 'NOK' 09170000
end 09180000
WHEN ' ' then case when tspartition > 0 09190000
then 'NOK' 09200000
else 'OK' 09210000
end 09220000
WHEN '2' then case when tspartition > 0 09230000
then 'NOK' 09240000
else 'OK' 09250000
end 09260000
ELSE 'NOK' 09270000
END 09280000
|| ';' 09290000
|| 'IndexPartLimit=' 09300000
|| CASE WHEN PARTITION > (SELECT MAXPART 09310000
FROM SESSION.MAXPART 09320000
WHERE PARTYPE = 'Index' 09330000
) 09340000
THEN 'NOK' 09350000
ELSE 'OK' 09360000
END 09370000
|| ';' 09380000
|| 'Bufferpool=' 09390000
|| CASE BPOOL_I 09400000
WHEN 'BP1' THEN 'OK' 09410000
ELSE 'NOK' 09420000
END 09430000
|| ';' 09440000
|| 'GroupBufferPool=' 09450000
|| CASE GBPCACHE 09460000
WHEN ' ' THEN 'OK' 09470000
ELSE 'NOK' 09480000
END 09490000
|| ';' 09500000
|| 'Pagesize=' 09510000
|| 'OK' 09520000
|| ';' 09530000
|| 'CloseOption=' 09540000
|| CASE CLOSE 09550000
WHEN 'Y' THEN 'OK' 09560000
ELSE 'NOK' 09570000
END 09580000
|| ';' 09590000
|| 'IdxCompressOption=' 09600000
|| CASE COMPRESS 09610000
WHEN 'N' THEN 'OK' 09620000
ELSE 'NOK' 09630000
END 09640000
|| ';' 09650000
|| 'StorageGroup=' 09660000
|| CASE STOGROUP 09670000
WHEN 'GSMS1' THEN 'OK' 09680000
WHEN 'GSMS2' THEN 'OK' 09690000
WHEN 'GSMS3' THEN 'OK' 09700000
WHEN 'GSMS4' THEN 'OK' 09710000
ELSE CASE WHEN SUBSTR(DATABASE,1,3) = 'DXB' 09720000
THEN CASE WHEN STOGROUP = 'GSMS' 09730000
THEN 'OK' 09740000
ELSE 'NOK' 09750000
END 09760000
ELSE 'NOK' 09770000
END 09780000
END 09790000
|| ';' 09800000
|| 'PrimaryQuantity=' 09810000
|| CASE PRIQTY 09820000
WHEN -1 THEN 'OK' 09830000
ELSE 'NOK' 09840000
END 09850000
|| ';' 09860000
|| 'SecondaryQuantity=' 09870000
|| CASE SECQTY 09880000
WHEN -1 THEN 'OK' 09890000
ELSE 'NOK' 09900000
END 09910000
|| ';' 09920000
|| 'Define=' 09930000
|| CASE DEFINE 09940000
WHEN -1 THEN 'NOK' 09950000
ELSE 'OK' 09960000
END 09970000
|| ';' 09980000
|| 'FreePage' 09990000
|| CASE WHEN CLUSTERING = 'Y' 10000000
THEN CASE WHEN CNT_KEYS = 1 10010000
THEN CASE WHEN CLUSTERKEY = 'EN1PART' 10020000
THEN CASE WHEN FREEPAGE = 0 10030000
THEN '_Cluster=OK' 10040000
ELSE '_Cluster=NOK' 10050000
END 10060000
ELSE '_Cluster_Key=NOK' 10070000
END 10080000
ELSE '_Cluster_Key=NOK' 10090000
END 10100000
ELSE CASE FREEPAGE 10110000
WHEN 10 THEN '=OK' 10120000
ELSE '=NOK' 10130000
END 10140000
END 10150000
|| ';' 10160000
|| 'PctFree' 10170000
|| CASE WHEN CLUSTERING = 'Y' 10180000
THEN CASE WHEN CNT_KEYS = 1 10190000
THEN CASE WHEN CLUSTERKEY = 'EN1PART' 10200000
THEN CASE WHEN PCTFREE = 0 10210000
THEN '_Cluster=OK' 10220000
ELSE '_Cluster=NOK' 10230000
END 10240000
ELSE '_Cluster_Key=NOK' 10250000
END 10260000
ELSE '_Cluster_Key=NOK' 10270000
END 10280000
ELSE CASE PCTFREE 10290000
WHEN 10 THEN '=OK' 10300000
ELSE '=NOK' 10310000
END 10320000
END 10330000
|| ';' 10340000
|| 'Copy=' 10350000
|| CASE COPY 10360000
WHEN 'N' THEN 'OK' 10370000
ELSE 'NOK' 10380000
END 10390000
FROM IXDDL 10400000
) 10410000
SELECT GENERATE_UNIQUE() 10420000
, '4Indexspace Option Check' 10430000
, FAMILY 10440000
, COMMENT 10450000
, OBJECT 10460000
, OPTVALUE 10470000
FROM RXS 10480000
ORDER BY FAMILY 10490000
, OBJECT 10500000
; 10510000
INSERT INTO SESSION.TEMP 10520000
WITH IXTYPE ( INDEXTYPE 10530000
) 10540000
AS ( SELECT 'D' 10550000
FROM SYSIBM.SYSDUMMY1 10560000
UNION ALL 10570000
SELECT 'U' 10580000
FROM SYSIBM.SYSDUMMY1 10590000
) 10600000
, IXLST ( FAMILY 10610000
, DATABASE 10620000
, TBNAME 10630000
, IXNAME 10640000
, IXCREATOR 10650000
, ELAR_TYPE 10660000
, ELAR_ORDER 10670000
, UNIQUERULE 10680000
, MAXCOL 10690000
, EN1ENTERTAG 10700000
, ET1LOGPROD 10710000
, EN1PART 10720000
, COMMENT 10730000
) 10740000
AS (SELECT DISTINCT 10750000
EL.FAMILY 10760000
, DB.NAME 10770000
, TB.NAME 10780000
, IFNULL(IX.NAME,'NOK') 10790000
, IX.CREATOR 10800000
, CAST(CASE SUBSTR(TB.NAME,9,2) 10810000
WHEN 'HS' THEN 'SIGNATUR' 10820000
WHEN 'IT' THEN 'BODY ' 10830000
WHEN 'PM' THEN 'MULTIPLE' 10840000
ELSE CASE SUBSTR(TB.NAME,9,5) 10850000
WHEN 'PS001' THEN 'AOP ' 10860000
WHEN 'PS002' THEN 'SEP ' 10870000
WHEN 'PS003' THEN 'SEP_2 ' 10880000
ELSE '??????? ' 10890000
END 10900000
END 10910000
AS CHAR(08) 10920000
) 10930000
, CAST(CASE SUBSTR(TB.NAME,9,2) 10940000
WHEN 'HS' THEN '6' 10950000
WHEN 'IT' THEN '4' 10960000
WHEN 'PM' THEN '5' 10970000
ELSE CASE SUBSTR(TB.NAME,9,5) 10980000
WHEN 'PS001' THEN '1' 10990000
WHEN 'PS002' THEN '2' 11000000
WHEN 'PS003' THEN '3' 11010000
ELSE '7' 11020000
END 11030000
END 11040000
AS CHAR(01) 11050000
) 11060000
, IFNULL(IX.UNIQUERULE,'NOK') 11070000
, (SELECT COUNT(*) 11080000
FROM SYSIBM.SYSKEYS SK 11090000
WHERE IX.NAME = SK.IXNAME 11100000
AND IX.CREATOR = SK.IXCREATOR 11110000
) 11120000
, IFNULL((SELECT SK.COLSEQ 11130000
FROM SYSIBM.SYSKEYS SK 11140000
WHERE IX.NAME = SK.IXNAME 11150000
AND IX.CREATOR = SK.IXCREATOR 11160000
AND SK.COLNAME = 'EN1ENTERTAG' 11170000
), -1) 11180000
, IFNULL((SELECT SK.COLSEQ 11190000
FROM SYSIBM.SYSKEYS SK 11200000
WHERE IX.NAME = SK.IXNAME 11210000
AND IX.CREATOR = SK.IXCREATOR 11220000
AND SK.COLNAME = 'ET1LOGPROD' 11230000
), -1) 11240000
, IFNULL((SELECT SK.COLSEQ 11250000
FROM SYSIBM.SYSKEYS SK 11260000
WHERE IX.NAME = SK.IXNAME 11270000
AND IX.CREATOR = SK.IXCREATOR 11280000
AND SK.COLNAME = 'EN1PART' 11290000
), -1) 11300000
, EL.COMMENT 11310000
FROM SESSION.ELAR EL 11320000
INNER JOIN SYSIBM.SYSDATABASE DB 11330000
ON EL.STORAR = DB.NAME 11340000
INNER JOIN SYSIBM.SYSTABLES TB 11350000
ON TB.DBNAME = DB.NAME 11360000
AND TB.TYPE = 'T' 11370000
INNER JOIN SYSIBM.SYSTABLESPACE TS 11380000
ON TB.TSNAME = TS.NAME 11390000
AND TB.DBID = TS.DBID 11400000
AND TS.DBID = DB.DBID 11410000
LEFT OUTER JOIN SYSIBM.SYSINDEXES IX 11420000
ON IX.TBNAME = TB.NAME 11430000
LEFT OUTER JOIN IXTYPE TY 11440000
ON IX.INDEXTYPE = TY.INDEXTYPE 11450000
) 11460000
, RXI ( FAMILY 11470000
, COMMENT 11480000
, OBJECT 11490000
, OPTVALUE 11500000
) 11510000
AS (SELECT FAMILY 11520000
, COMMENT 11530000
, CAST(DATABASE AS CHAR(08)) 11540000
|| ' ' 11550000
|| TBNAME 11560000
|| ' ' 11570000
, 'No' 11580000
|| ' ' 11590000
|| 'Index' 11600000
|| ' ' 11610000
|| 'exists=NOK' 11620000
|| ';' 11630000
FROM IXLST 11640000
WHERE UNIQUERULE = 'NOK' 11650000
UNION ALL 11660000
SELECT FAMILY 11670000
, COMMENT 11680000
, CAST(DATABASE AS CHAR(08)) 11690000
|| ' ' 11700000
|| IXNAME 11710000
|| ' ' 11720000
|| TBNAME 11730000
|| ' ' 11740000
|| 'IndexRule=Unique' 11750000
, CASE WHEN EN1ENTERTAG = -1 11760000
THEN 'EN1ENTERTAG_MIS=NOK' 11770000
ELSE CASE WHEN EN1ENTERTAG = (MAXCOL - 2) 11780000
THEN 'EN1ENTERTAG=OK' 11790000
ELSE 'EN1ENTERTAG_POSAOP=NOK' 11800000
END 11810000
END 11820000
|| ';' 11830000
|| 'ET1LOGPROD' 11840000
|| CASE WHEN ET1LOGPROD = -1 11850000
THEN '_MISAOP=NOK' 11860000
ELSE CASE WHEN ET1LOGPROD = (MAXCOL - 1) 11870000
THEN '=OK' 11880000
ELSE '_POSAOP=NOK' 11890000
END 11900000
END 11910000
|| ';' 11920000
|| 'EN1PART' 11930000
|| CASE WHEN EN1PART = -1 11940000
THEN '_MIS=NOK' 11950000
ELSE CASE WHEN EN1PART = MAXCOL 11960000
THEN '_POSAOP=OK' 11970000
ELSE '_POSAOP=NOK' 11980000
END 11990000
END 12000000
FROM IXLST 12010000
WHERE ELAR_TYPE = 'AOP' 12020000
AND UNIQUERULE = 'U' 12030000
UNION ALL 12040000
SELECT FAMILY 12050000
, COMMENT 12060000
, CAST(DATABASE AS CHAR(08)) 12070000
|| ' ' 12080000
|| IXNAME 12090000
|| ' ' 12100000
|| TBNAME 12110000
|| ' ' 12120000
|| 'IndexRule=Duplicate' 12130000
, CASE WHEN EN1ENTERTAG = -1 12140000
THEN 'EN1ENTERTAG_MIS=NOK' 12150000
ELSE CASE WHEN EN1ENTERTAG = (MAXCOL - 1) 12160000
THEN 'EN1ENTERTAG=OK' 12170000
ELSE 'EN1ENTERTAG_POSAOP=NOK' 12180000
END 12190000
END 12200000
|| ';' 12210000
|| 'ET1LOGPROD' 12220000
|| CASE WHEN ET1LOGPROD = -1 12230000
THEN '_MISAOP=NOK' 12240000
ELSE CASE WHEN ET1LOGPROD = MAXCOL 12250000
THEN '=OK' 12260000
ELSE '_POSAOP=NOK' 12270000
END 12280000
END 12290000
|| ';' 12300000
|| 'EN1PART' 12310000
|| CASE WHEN EN1PART = -1 12320000
THEN '=OK' 12330000
ELSE '_POSAOP=NOK' 12340000
END 12350000
FROM IXLST 12360000
WHERE ELAR_TYPE = 'AOP' 12370000
AND UNIQUERULE = 'D' 12380000
UNION ALL 12390000
SELECT FAMILY 12400000
, COMMENT 12410000
, CAST(DATABASE AS CHAR(08)) 12420000
|| ' ' 12430000
|| IXNAME 12440000
|| ' ' 12450000
|| TBNAME 12460000
|| ' ' 12470000
|| 'IndexRule=Unique' 12480000
, CASE WHEN EN1ENTERTAG = -1 12490000
THEN 'EN1ENTERTAG=OK' 12500000
ELSE 'EN1ENTERTAG_POSSEP=NOK' 12510000
END 12520000
|| ';' 12530000
|| 'ET1LOGPROD_MIS=' 12540000
|| CASE WHEN ET1LOGPROD = -1 12550000
THEN 'OK' 12560000
ELSE 'NOK' 12570000
END 12580000
|| ';' 12590000
|| 'EN1PART' 12600000
|| CASE WHEN EN1PART = -1 12610000
THEN '=NOK' 12620000
ELSE CASE WHEN EN1PART = MAXCOL 12630000
THEN '=OK' 12640000
ELSE '_POSSEP=NOK' 12650000
END 12660000
END 12670000
FROM IXLST 12680000
WHERE ELAR_TYPE IN ('SEP', 'SEP_2') 12690000
AND UNIQUERULE = 'U' 12700000
UNION ALL 12710000
SELECT FAMILY 12720000
, COMMENT 12730000
, CAST(DATABASE AS CHAR(08)) 12740000
|| ' ' 12750000
|| IXNAME 12760000
|| ' ' 12770000
|| TBNAME 12780000
|| ' ' 12790000
|| 'IndexRule=Duplicate' 12800000
, CASE WHEN EN1ENTERTAG = -1 12810000
THEN 'EN1ENTERTAG=OK' 12820000
ELSE 'EN1ENTERTAG_POSSEP=NOK' 12830000
END 12840000
|| ';' 12850000
|| 'ET1LOGPROD_MIS=' 12860000
|| CASE WHEN ET1LOGPROD = -1 12870000
THEN 'OK' 12880000
ELSE 'NOK' 12890000
END 12900000
|| ';' 12910000
|| 'EN1PART_ALLOW=' 12920000
|| CASE WHEN EN1PART = -1 12930000
THEN 'OK' 12940000
ELSE 'NOK' 12950000
END 12960000
FROM IXLST 12970000
WHERE ELAR_TYPE IN ('SEP', 'SEP_2') 12980000
AND UNIQUERULE = 'D' 12990000
UNION ALL 13000000
SELECT FAMILY 13010000
, COMMENT 13020000
, CAST(DATABASE AS CHAR(08)) 13030000
|| ' ' 13040000
|| IXNAME 13050000
|| ' ' 13060000
|| TBNAME 13070000
|| ' ' 13080000
|| 'IndexRule=Unique' 13090000
, CASE WHEN EN1ENTERTAG = -1 13100000
THEN 'EN1ENTERTAG_MIS=NOK' 13110000
ELSE CASE WHEN EN1ENTERTAG = 2 13120000
THEN 'EN1ENTERTAG=OK' 13130000
ELSE 'EN1ENTERTAG_POS=NOK' 13140000
END 13150000
END 13160000
|| ';' 13170000
|| 'ET1LOGPROD_BODY=' 13180000
|| CASE WHEN ET1LOGPROD = -1 13190000
THEN 'OK' 13200000
ELSE 'NOK' 13210000
END 13220000
|| ';' 13230000
|| 'EN1PART_POS=' 13240000
|| CASE WHEN EN1PART = 5 13250000
THEN 'OK' 13260000
ELSE 'NOK' 13270000
END 13280000
FROM IXLST 13290000
WHERE ELAR_TYPE = 'BODY' 13300000
AND UNIQUERULE = 'U' 13310000
UNION ALL 13320000
SELECT FAMILY 13330000
, COMMENT 13340000
, CAST(DATABASE AS CHAR(08)) 13350000
|| ' ' 13360000
|| IXNAME 13370000
|| ' ' 13380000
|| TBNAME 13390000
|| ' ' 13400000
|| 'IndexRule=Duplicate' 13410000
, CASE WHEN EN1ENTERTAG = -1 13420000
THEN 'EN1ENTERTAG_MIS=NOK' 13430000
ELSE CASE WHEN EN1ENTERTAG = 2 13440000
THEN 'EN1ENTERTAG=OK' 13450000
ELSE 'EN1ENTERTAG_POS=NOK' 13460000
END 13470000
END 13480000
|| ';' 13490000
|| 'ET1LOGPROD_MIS=' 13500000
|| CASE WHEN ET1LOGPROD = -1 13510000
THEN 'OK' 13520000
ELSE 'NOK' 13530000
END 13540000
|| ';' 13550000
|| 'EN1PART_POS=' 13560000
|| CASE WHEN EN1PART = -1 13570000
THEN 'OK' 13580000
ELSE 'NOK' 13590000
END 13600000
FROM IXLST 13610000
WHERE ELAR_TYPE = 'BODY' 13620000
AND UNIQUERULE = 'D' 13630000
UNION ALL 13640000
SELECT FAMILY 13650000
, COMMENT 13660000
, CAST(DATABASE AS CHAR(08)) 13670000
|| ' ' 13680000
|| IXNAME 13690000
|| ' ' 13700000
|| TBNAME 13710000
|| ' ' 13720000
|| 'IndexRule=Unique' 13730000
, CASE WHEN EN1ENTERTAG = -1 13740000
THEN 'EN1ENTERTAG_MIS=NOK' 13750000
ELSE CASE WHEN EN1ENTERTAG = (MAXCOL - 1) 13760000
THEN 'EN1ENTERTAG=OK' 13770000
ELSE 'EN1ENTERTAG_POSMULT=NOK' 13780000
END 13790000
END 13800000
|| ';' 13810000
|| 'ET1LOGPROD_MIS=' 13820000
|| CASE WHEN ET1LOGPROD = -1 13830000
THEN 'OK' 13840000
ELSE 'NOK' 13850000
END 13860000
|| ';' 13870000
|| 'EN1PART_POSMULT=' 13880000
|| CASE WHEN EN1PART = MAXCOL 13890000
THEN 'OK' 13900000
ELSE 'NOK' 13910000
END 13920000
FROM IXLST 13930000
WHERE ELAR_TYPE = 'MULTIPLE' 13940000
AND UNIQUERULE = 'U' 13950000
UNION ALL 13960000
SELECT FAMILY 13970000
, COMMENT 13980000
, CAST(DATABASE AS CHAR(08)) 13990000
|| ' ' 14000000
|| IXNAME 14010000
|| ' ' 14020000
|| TBNAME 14030000
|| ' ' 14040000
|| 'IndexRule=Duplicate' 14050000
, CASE WHEN EN1ENTERTAG = -1 14060000
THEN 'EN1ENTERTAG_MIS=NOK' 14070000
ELSE CASE WHEN EN1ENTERTAG = MAXCOL 14080000
THEN 'EN1ENTERTAG=OK' 14090000
ELSE 'EN1ENTERTAG_POSMULT=NOK' 14100000
END 14110000
END 14120000
|| ';' 14130000
|| 'ET1LOGPROD_MIS=' 14140000
|| CASE WHEN ET1LOGPROD = -1 14150000
THEN 'OK' 14160000
ELSE 'NOK' 14170000
END 14180000
|| ';' 14190000
|| 'EN1PART_MISMULT=' 14200000
|| CASE WHEN EN1PART = -1 14210000
THEN 'OK' 14220000
ELSE 'NOK' 14230000
END 14240000
FROM IXLST 14250000
WHERE ELAR_TYPE = 'MULTIPLE' 14260000
AND UNIQUERULE = 'D' 14270000
UNION ALL 14280000
SELECT FAMILY 14290000
, COMMENT 14300000
, CAST(DATABASE AS CHAR(08)) 14310000
|| ' ' 14320000
|| IXNAME 14330000
|| ' ' 14340000
|| TBNAME 14350000
|| ' ' 14360000
|| 'IndexRule=Unique' 14370000
, CASE WHEN EN1ENTERTAG = -1 14380000
THEN 'EN1ENTERTAG_MIS=NOK' 14390000
ELSE CASE WHEN EN1ENTERTAG = (MAXCOL - 2) 14400000
THEN 'EN1ENTERTAG=OK' 14410000
ELSE 'EN1ENTERTAG_POSAOP=NOK' 14420000
END 14430000
END 14440000
|| ';' 14450000
|| 'ET1LOGPROD=' 14460000
|| CASE WHEN ET1LOGPROD IS NULL 14470000
THEN 'OK' 14480000
ELSE 'NOK' 14490000
END 14500000
|| ';' 14510000
|| 'EN1PART' 14520000
|| CASE WHEN EN1PART = -1 14530000
THEN '_MISSIG=NOK' 14540000
ELSE CASE WHEN EN1PART = MAXCOL 14550000
THEN '=OK' 14560000
ELSE '_POSSIG=NOK' 14570000
END 14580000
END 14590000
FROM IXLST 14600000
WHERE ELAR_TYPE = 'SIGNATUR' 14610000
AND UNIQUERULE = 'U' 14620000
UNION ALL 14630000
SELECT FAMILY 14640000
, COMMENT 14650000
, CAST(DATABASE AS CHAR(08)) 14660000
|| ' ' 14670000
|| IXNAME 14680000
|| ' ' 14690000
|| TBNAME 14700000
|| ' ' 14710000
|| 'IndexRule=Duplicate' 14720000
, 'EN1ENTERTAG=' 14730000
|| CASE WHEN EN1ENTERTAG = MAXCOL 14740000
THEN 'OK' 14750000
ELSE 'NOK' 14760000
END 14770000
|| ';' 14780000
|| 'ET1LOGPROD_MIS=' 14790000
|| CASE WHEN ET1LOGPROD = -1 14800000
THEN 'OK' 14810000
ELSE 'NOK' 14820000
END 14830000
|| ';' 14840000
|| 'EN1PART_MISSIG=' 14850000
|| CASE WHEN EN1PART = -1 14860000
THEN 'OK' 14870000
ELSE 'NOK' 14880000
END 14890000
FROM IXLST 14900000
WHERE ELAR_TYPE = 'SIGNATUR' 14910000
AND UNIQUERULE = 'D' 14920000
UNION ALL 14930000
SELECT FAMILY 14940000
, COMMENT 14950000
, CAST(DATABASE AS CHAR(08)) 14960000
|| ' ' 14970000
|| IXNAME 14980000
|| ' ' 14990000
|| TBNAME 15000000
|| ' ' 15010000
|| 'IndexRule=Unknown' 15020000
, 'Index_Rule=NOK;' 15030000
FROM IXLST 15040000
WHERE ELAR_TYPE = 'unknown ' 15050000
) 15060000
SELECT GENERATE_UNIQUE() 15070000
, '5Index Option Check' 15080000
, FAMILY 15090000
, COMMENT 15100000
, OBJECT 15110000
, OPTVALUE 15120000
FROM RXI 15130000
ORDER BY FAMILY 15140000
, OBJECT 15150000
; 15160000
INSERT INTO SESSION.TEMP 15170000
SELECT GENERATE_UNIQUE() 15180000
, '6ELAR meta data mismatch' 15190000
, FAMILY 15200000
, ' ' 15210000
, FAMILY 15220000
, 'NoDatabaseExists=NOK;' 15230000
FROM SESSION.FAMLISTE 15240000
WHERE STORAR_N IS NULL 15250000
AND ENSEG_N IS NULL 15260000
AND SUBSTR(DBNAME,1,3) <> 'DXB' 15270000
AND SUBSTR(FAMILY,1,1) <> '?' 15280000
UNION ALL 15290000
SELECT GENERATE_UNIQUE() 15300000
, '7ELAR meta data mismatch' 15310000
, DBNAME 15320000
, ' ' 15330000
, DBNAME 15340000
, 'DatabaseNoFamily=NOK;' 15350000
FROM SESSION.FAMLISTE 15360000
WHERE DBNAME NOT IN (SELECT STORAR 15370000
FROM SESSION.ELAR 15380000
) 15390000
AND SUBSTR(DBNAME,1,1) <> '?' 15400000
; 15410000
DECLARE GLOBAL TEMPORARY TABLE PARMVALUE 15420000
( OPTION CHAR(025) NOT NULL 15430000
, VALUE CHAR(120) NOT NULL 15440000
, SUBORD INTEGER NOT NULL 15450000
) 15460000
; 15470000
INSERT INTO SESSION.PARMVALUE 15480000
VALUES ( 'InfoTCP' 15490000
, 'Info: Table Controlled Partition' 15500000
, 0 15510000
) 15520000
; 15530000
INSERT INTO SESSION.PARMVALUE 15540000
VALUES ( 'NPI' 15550000
, 'on partitioned Object (table/Index) ' 15560000
|| 'not allowed' 15570000
, 0 15580000
) 15590000
; 15600000
INSERT INTO SESSION.PARMVALUE 15610000
VALUES ( 'InfoTSS' 15620000
, 'Info: Segmented or Simple Table' 15630000
, 0 15640000
) 15650000
; 15660000
INSERT INTO SESSION.PARMVALUE 15670000
VALUES ( 'InfoICP' 15680000
, 'Info: Index Controlled Partition' 15690000
, 0 15700000
) 15710000
; 15720000
INSERT INTO SESSION.PARMVALUE 15730000
VALUES ( 'InfoNPI' 15740000
, 'Info: Non partitioned Index' 15750000
, 0 15760000
) 15770000
; 15780000
INSERT INTO SESSION.PARMVALUE 15790000
VALUES ( 'StorageGroup' 15800000
, 'GSMS1, GSMS2, GSMS3 or GSMS4 for XB Databases ' 15810000
|| 'GSMS for ELAR Metadata allowed' 15820000
, 3 15830000
) 15840000
; 15850000
INSERT INTO SESSION.PARMVALUE 15860000
VALUES ( 'Bufferpool_DB' 15870000
,'BP2 allowed on Datasbase definition level' 15880000
, 0 15890000
) 15900000
; 15910000
INSERT INTO SESSION.PARMVALUE 15920000
VALUES ( 'Bufferpool_DB_IX' 15930000
,'BP1 allowed on Datasbase definition level' 15940000
, 1 15950000
) 15960000
; 15970000
INSERT INTO SESSION.PARMVALUE 15980000
VALUES ( 'Bufferpool_TS' 15990000
,'Only BP2, BP8 and BP32K allowed for Tablespaces' 16000000
, 2 16010000
) 16020000
; 16030000
INSERT INTO SESSION.PARMVALUE 16040000
VALUES ( 'Bufferpool_SHS' 16050000
,'Only BP32K for this Tablespaces allowed' 16060000
, 2 16070000
) 16080000
; 16090000
INSERT INTO SESSION.PARMVALUE 16100000
VALUES ( 'Bufferpool_LOB' 16110000
,'Only BP8 for LOB Tablespaces allowed' 16120000
, 2 16130000
) 16140000
; 16150000
INSERT INTO SESSION.PARMVALUE 16160000
VALUES ( 'IndexBufferpool', 'BP1' 16170000
, 3 16180000
) 16190000
; 16200000
INSERT INTO SESSION.PARMVALUE 16210000
VALUES ( 'EncodingScheme', 'EBCDIC' 16220000
, 4 16230000
) 16240000
; 16250000
INSERT INTO SESSION.PARMVALUE 16260000
VALUES ( 'Groupbufferpool', 'Changed' 16270000
, 5 16280000
) 16290000
; 16300000
INSERT INTO SESSION.PARMVALUE 16310000
VALUES ( 'LOB Bufferpool', 'BP8' 16320000
, 6 16330000
) 16340000
; 16350000
INSERT INTO SESSION.PARMVALUE 16360000
VALUES ( 'Trackmode', 'No', 10 16370000
) 16380000
; 16390000
INSERT INTO SESSION.PARMVALUE 16400000
VALUES ( 'LoggedOption', 'Yes', 11 16410000
) 16420000
; 16430000
INSERT INTO SESSION.PARMVALUE 16440000
VALUES ( 'DSSIZE', '16GB', 12 16450000
) 16460000
; 16470000
INSERT INTO SESSION.PARMVALUE 16480000
VALUES ( 'Locksize', 'Any', 13 16490000
) 16500000
; 16510000
INSERT INTO SESSION.PARMVALUE 16520000
VALUES ( 'LockMax', 'System', 14 16530000
) 16540000
; 16550000
INSERT INTO SESSION.PARMVALUE 16560000
VALUES ( 'CloseOption', 'Yes', 17 16570000
) 16580000
; 16590000
INSERT INTO SESSION.PARMVALUE 16600000
VALUES ( 'TblCompressOption', 'Yes', 27 16610000
) 16620000
; 16630000
INSERT INTO SESSION.PARMVALUE 16640000
VALUES ( 'IdxCompressOption', 'No', 29 16650000
) 16660000
; 16670000
INSERT INTO SESSION.PARMVALUE 16680000
VALUES ( 'PrimaryQuantity', 'Only value -1 allowed' 16690000
, 8 16700000
) 16710000
; 16720000
INSERT INTO SESSION.PARMVALUE 16730000
VALUES ( 'SecondaryQuantity', 'Only value -1 allowed' 16740000
, 9 16750000
) 16760000
; 16770000
INSERT INTO SESSION.PARMVALUE 16780000
VALUES ( 'DefineOption', 'Yes', 23 16790000
) 16800000
; 16810000
INSERT INTO SESSION.PARMVALUE 16820000
VALUES ( 'MaxRowsPerPage', '255', 24 16830000
) 16840000
; 16850000
INSERT INTO SESSION.PARMVALUE 16860000
VALUES ( 'Audit', 'None', 18 16870000
) 16880000
; 16890000
INSERT INTO SESSION.PARMVALUE 16900000
VALUES ( 'DataCapture', 'None', 19 16910000
) 16920000
; 16930000
INSERT INTO SESSION.PARMVALUE 16940000
VALUES ( 'RestrictOnDrop' 16950000
, 'Missing Option With Restrict on Drop' 16960000
, 20 16970000
) 16980000
; 16990000
INSERT INTO SESSION.PARMVALUE 17000000
VALUES ( 'Volatile', 'correct value is Yes', 21 17010000
) 17020000
; 17030000
INSERT INTO SESSION.PARMVALUE 17040000
VALUES ( 'Append', 'correct value is No', 22 17050000
) 17060000
; 17070000
INSERT INTO SESSION.PARMVALUE 17080000
VALUES ( 'PartKeyName', 'EN1PART', 30 17090000
) 17100000
; 17110000
INSERT INTO SESSION.PARMVALUE 17120000
VALUES ( 'PartKeyType', 'Integer', 31 17130000
) 17140000
; 17150000
INSERT INTO SESSION.PARMVALUE 17160000
VALUES ( 'PartKeyPosition', 'First Column of Table', 32 17170000
) 17180000
; 17190000
INSERT INTO SESSION.PARMVALUE 17200000
VALUES ( 'TablePartLimit', 'Partition limit exceeded (' || 17210000
(SELECT STRIP(CAST(MAXPART AS 17220000
CHAR(06) 17230000
) 17240000
) 17250000
FROM SESSION.MAXPART 17260000
WHERE PARTYPE = 'Table' 17270000
) || ' Partition allowed)' 17280000
, 39 17290000
) 17300000
; 17310000
INSERT INTO SESSION.PARMVALUE 17320000
VALUES ( 'IndexPartLimit', 'Maximum of ' || 17330000
(SELECT CAST(MAXPART AS CHAR(06)) 17340000
FROM SESSION.MAXPART 17350000
WHERE PARTYPE = 'Index' 17360000
) || ' Partition exceeded ' 17370000
, 40 17380000
) 17390000
; 17400000
INSERT INTO SESSION.PARMVALUE 17410000
VALUES ( 'PartKeyValue(s)' 17420000
, 'only natural Numbers and one value allowed' 17430000
, 34 17440000
) 17450000
; 17460000
INSERT INTO SESSION.PARMVALUE 17470000
VALUES ( 'Indextype' 17480000
, 'Unique DPSI, when Primary Index all other are DPSI' 17490000
, 28 17500000
) 17510000
; 17520000
INSERT INTO SESSION.PARMVALUE 17530000
VALUES ( 'Pagesize', '4KB', 16 17540000
) 17550000
; 17560000
INSERT INTO SESSION.PARMVALUE 17570000
VALUES ( 'FreePage' 17580000
, 'Value is not 10' 17590000
, 7 17600000
) 17610000
; 17620000
INSERT INTO SESSION.PARMVALUE 17630000
VALUES ( 'FreePage_Cluster' 17640000
, 'Value is not 0' 17650000
, 7 17660000
) 17670000
; 17680000
INSERT INTO SESSION.PARMVALUE 17690000
VALUES ( 'FreePage_Cluster_Key' 17700000
, 'only EN1PART allowed for cluster index ' 17710000
|| '(see Guideline). FREEPAGE not checked' 17720000
, 7 17730000
) 17740000
; 17750000
INSERT INTO SESSION.PARMVALUE 17760000
VALUES ( 'PctFree' 17770000
, 'Value is not 10' 17780000
, 6 17790000
) 17800000
; 17810000
INSERT INTO SESSION.PARMVALUE 17820000
VALUES ( 'PctFree_Cluster' 17830000
, 'Value is not 0' 17840000
, 6 17850000
) 17860000
; 17870000
INSERT INTO SESSION.PARMVALUE 17880000
VALUES ( 'PctFree_Cluster_Key' 17890000
, 'only EN1PART allowed for cluster index ' 17900000
|| '(see Guideline). PCTFREE not checked' 17910000
, 6 17920000
) 17930000
; 17940000
INSERT INTO SESSION.PARMVALUE 17950000
VALUES ( 'Copy', 'No', 26 17960000
) 17970000
; 17980000
INSERT INTO SESSION.PARMVALUE 17990000
VALUES ( 'No Index exists' 18000000
, 'verify and implement an Index. Access path for all ' 18010000
|| 'queries are Tablespace Scans| (Proof Monitor)' 18020000
, 50 18030000
) 18040000
; 18050000
INSERT INTO SESSION.PARMVALUE 18060000
VALUES ( 'EN1PART' 18070000
, 'Partition criteria not part of index. For ' 18080000
|| 'unique index is important (see Guideline)' 18090000
, 51 18100000
) 18110000
; 18120000
INSERT INTO SESSION.PARMVALUE 18130000
VALUES ( 'EN1PART_POS' 18140000
, 'not on Position 5 (see Guideline, ' 18150000
|| 'table pattern XBsss001ITnnnmmm)' 18160000
, 51 18170000
) 18180000
; 18190000
INSERT INTO SESSION.PARMVALUE 18200000
VALUES ( 'EN1PART_POSAOP' 18210000
, 'for non unique indexes column not allowed. ' 18220000
|| '(see Guideline table pattern XBsss001PSnnnmmm)' 18230000
, 51 18240000
) 18250000
; 18260000
INSERT INTO SESSION.PARMVALUE 18270000
VALUES ( 'EN1PART_POSMULT' 18280000
, 'not on last position (see Guideline, ' 18290000
|| 'table pattern XBsss001PMnnnmmm)' 18300000
, 51 18310000
) 18320000
; 18330000
INSERT INTO SESSION.PARMVALUE 18340000
VALUES ( 'EN1PART_POSSIG' 18350000
, 'not on last position (see Guideline, ' 18360000
|| 'table pattern XBsss001HSnnnmmm)' 18370000
, 51 18380000
) 18390000
; 18400000
INSERT INTO SESSION.PARMVALUE 18410000
VALUES ( 'EN1PART_POSSEP' 18420000
, 'not on last position (see Guideline, ' 18430000
|| 'table pattern XBsss001PS002mmm)' 18440000
, 51 18450000
) 18460000
; 18470000
INSERT INTO SESSION.PARMVALUE 18480000
VALUES ( 'EN1PART_ALLOW' 18490000
, 'not allowed as part of index see Guideline, ' 18500000
|| 'table pattern XBsss001PS002mmm)' 18510000
, 51 18520000
) 18530000
; 18540000
INSERT INTO SESSION.PARMVALUE 18550000
VALUES ( 'EN1PART_MISMULT' 18560000
, 'not on allowed (see Guideline, table pattern ' 18570000
|| 'XBsss001PMnnnmmm, non unique index)' 18580000
, 51 18590000
) 18600000
; 18610000
INSERT INTO SESSION.PARMVALUE 18620000
VALUES ( 'EN1PART_MISSIG' 18630000
, 'not on allowed (see Guideline, table pattern ' 18640000
|| 'XBsss001HSnnnmmm)' 18650000
, 51 18660000
) 18670000
; 18680000
INSERT INTO SESSION.PARMVALUE 18690000
VALUES ( 'EN1ENTERTAG_POS' 18700000
, 'not on Position 2. ' 18710000
|| 'Check Index Column Order (see Guideline)' 18720000
, 52 18730000
) 18740000
; 18750000
INSERT INTO SESSION.PARMVALUE 18760000
VALUES ( 'EN1ENTERTAG_POSMULT' 18770000
, 'not on last position when unique or next to last ' 18780000
|| 'position when non unique Index (see Guideline)' 18790000
, 52 18800000
) 18810000
; 18820000
INSERT INTO SESSION.PARMVALUE 18830000
VALUES ( 'EN1ENTERTAG_POSAOP' 18840000
, 'not on last but two position when unique or ' 18850000
|| 'next to last position when non unique index ' 18860000
|| '(see Guideline)' 18870000
, 52 18880000
) 18890000
; 18900000
INSERT INTO SESSION.PARMVALUE 18910000
VALUES ( 'EN1ENTERTAG_POSSEP' 18920000
, 'not allowed as part of index ' 18930000
|| '(see Guideline, table pattern ' 18940000
|| 'XBsss001PS002mmm)' 18950000
, 52 18960000
) 18970000
; 18980000
INSERT INTO SESSION.PARMVALUE 18990000
VALUES ( 'EN1ENTERTAG_MIS' 19000000
, 'Missing column. High risk for a non matching ' 19010000
|| 'index scan. Reason: Poor filtering (see Guideline)' 19020000
, 52 19030000
) 19040000
; 19050000
INSERT INTO SESSION.PARMVALUE 19060000
VALUES ( 'ET1LOGPROD_POSAOP' 19070000
, 'not on next to last position when unique or last ' 19080000
|| 'position when non unique Index (see Guideline)' 19090000
, 53 19100000
) 19110000
; 19120000
INSERT INTO SESSION.PARMVALUE 19130000
VALUES ( 'ET1LOGPROD_MIS' 19140000
, 'ET1LOGPROD not allowed on this table, allowed for ' 19150000
|| 'XBsss001PS001mmm' 19160000
, 53 19170000
) 19180000
; 19190000
INSERT INTO SESSION.PARMVALUE 19200000
VALUES ( 'ET1LOGPROD_MISPOS' 19210000
, 'missing, it is essential for table with pattern ' 19220000
|| 'XBsss001PS001mmm' 19230000
, 53 19240000
) 19250000
; 19260000
INSERT INTO SESSION.PARMVALUE 19270000
VALUES ( 'ET1LOGPROD_POS' 19280000
, 'not on next to last position when unique or ' 19290000
|| 'last position when non unique index' 19300000
, 53 19310000
) 19320000
; 19330000
INSERT INTO SESSION.PARMVALUE 19340000
VALUES ( 'Index_Rule' 19350000
, 'no rules are defined. REASON: Unknown ELAR ' 19360000
|| 'table type (not documented, experimental type' 19370000
, 53 19380000
) 19390000
; 19400000
INSERT INTO SESSION.PARMVALUE 19410000
VALUES ( 'NoDatabaseExists' 19420000
, 'No DB2 Objects exists for DDL Check' 19430000
, 0 19440000
) 19450000
; 19460000
INSERT INTO SESSION.PARMVALUE 19470000
VALUES ( 'DatabaseNoFamily' 19480000
, 'DB2 Objects exists but no ELAR Meta data available' 19490000
, 0 19500000
) 19510000
; 19520000
-- Preperation of result list splitting complete string into option name19530000
-- and option value. Options separated by semicolon. Option and value 19540000
-- separated by equal sign. Elimination of duplicate entries and store 19550000
-- only entries with NOK in temporary table exception. 19560000
DECLARE GLOBAL TEMPORARY TABLE EXCEPTION 19570000
( 19580000
OBJECT CHAR(60) NOT NULL 19590000
, OPTION CHAR(24) NOT NULL 19600000
, CORRECT_VALUES CHAR(120) NOT NULL 19610000
, FAMILY CHAR(30) NOT NULL 19620000
, CRITERIA CHAR(30) NOT NULL 19630000
, OPTIONNUM INTEGER NOT NULL 19640000
, SUBORD INTEGER NOT NULL 19650000
, COMMENT CHAR(20) NOT NULL WITH DEFAULT 19660000
) 19670000
; 19680000
INSERT INTO SESSION.EXCEPTION ( 19690000
OBJECT 19700000
, OPTION 19710000
, CORRECT_VALUES 19720000
, FAMILY 19730000
, CRITERIA 19740000
, OPTIONNUM 19750000
, SUBORD 19760000
, COMMENT 19770000
) 19780000
WITH RESULT ( SNUM 19790000
, CRITERIA 19800000
, FAMILY 19810000
, OBJECT 19820000
, OPTIONNUM 19830000
, OPTION 19840000
, OVALUE 19850000
, CHECKVALUE 19860000
, COMMENT 19870000
) 19880000
AS (SELECT T0.SNUM 19890000
, T0.CRITERIA 19900000
, T0.FAMILY 19910000
, T0.OBJECT 19920000
, 1 19930000
, CASE WHEN LOCATE('=', T0.OPTVALUE) > 0 19940000
THEN SUBSTR( T0.OPTVALUE 19950000
, 1 19960000
, LOCATE('=', T0.OPTVALUE) - 1 19970000
) 19980000
ELSE OPTVALUE 19990000
END AS OPTION 20000000
, CASE WHEN LOCATE('=', T0.OPTVALUE) > 0 20010000
THEN SUBSTR( T0.OPTVALUE 20020000
, LOCATE('=', T0.OPTVALUE) + 1 20030000
, LOCATE(';', T0.OPTVALUE) - 20040000
LOCATE('=', T0.OPTVALUE) - 1 20050000
) 20060000
ELSE OPTVALUE 20070000
END AS OVALUE 20080000
, CASE WHEN LOCATE(';', T0.OPTVALUE) > 0 20090000
THEN SUBSTR( T0.OPTVALUE 20100000
, LOCATE(';', T0.OPTVALUE) + 1 20110000
) 20120000
ELSE NULL 20130000
END AS OPTVALUE 20140000
, COMMENT 20150000
FROM SESSION.TEMP T0 20160000
UNION ALL 20170000
SELECT T1.SNUM 20180000
, T1.CRITERIA 20190000
, T1.FAMILY 20200000
, T1.OBJECT 20210000
, T1.OPTIONNUM + 1 20220000
, CASE WHEN LOCATE('=', T1.CHECKVALUE) > 0 20230000
THEN SUBSTR( T1.CHECKVALUE 20240000
, 1 20250000
, LOCATE('=', T1.CHECKVALUE) - 1 20260000
) 20270000
ELSE CHECKVALUE 20280000
END AS OPTION 20290000
, CASE WHEN LOCATE('=', T1.CHECKVALUE) > 0 20300000
THEN CASE WHEN LOCATE(';', T1.CHECKVALUE) > 0 20310000
THEN SUBSTR( T1.CHECKVALUE 20320000
, LOCATE('=', T1.CHECKVALUE) 20330000
+ 1 20340000
, LOCATE(';', T1.CHECKVALUE) 20350000
- LOCATE('=', T1.CHECKVALUE) 20360000
- 1 20370000
) 20380000
ELSE SUBSTR( T1.CHECKVALUE 20390000
, LOCATE('=', T1.CHECKVALUE) 20400000
+ 1 20410000
) 20420000
END 20430000
ELSE CHECKVALUE 20440000
END AS OVALUE 20450000
, CASE WHEN LOCATE(';', T1.CHECKVALUE) > 0 20460000
THEN SUBSTR( T1.CHECKVALUE 20470000
, LOCATE(';', T1.CHECKVALUE) + 1 20480000
) 20490000
ELSE NULL 20500000
END AS OPTVALUE 20510000
, COMMENT 20520000
FROM RESULT T1 20530000
WHERE T1.CHECKVALUE IS NOT NULL 20540000
) 20550000
SELECT DISTINCT 20560000
RE.OBJECT 20570000
, CAST(RE.OPTION AS CHAR(24)) AS OPTION 20580000
, PV.VALUE AS CORRECT_VALUES 20590000
, RE.FAMILY 20600000
, RE.CRITERIA 20610000
, RE.OPTIONNUM 20620000
, PV.SUBORD 20630000
, RE.COMMENT 20640000
FROM RESULT RE 20650000
INNER JOIN SESSION.PARMVALUE PV 20660000
ON RE.OPTION = PV.OPTION 20670000
WHERE RE.OVALUE = 'NOK' 20680000
; 20690000
-- 20700000
-- Generate Report 20710000
-- DDL-Report (Display migrated families first) 20720000
-- 20730000
SELECT OBJECT AS OBJECT 20740000
, OPTION AS OPTION 20750000
, CORRECT_VALUES AS CORRECT_VALUES 20760000
, CASE WHEN SUBSTR(FAMILY,1,3) = 'FAM' 20770000
THEN ( SELECT UCASE(EAOF) 20780000
FROM BUA.TXBA131 20790000
WHERE ENOF 20800000
= CAST(SUBSTR(T1.FAMILY,4,4) AS INT) - 1000 20810000
) 20820000
ELSE FAMILY 20830000
END AS FAMILY 20840000
, COMMENT AS COMMENT 20850000
, CRITERIA AS CRITERIA 20860000
FROM (SELECT OBJECT 20870000
, CASE WHEN LOCATE('_', OPTION) > 0 20880000
THEN SUBSTR(OPTION,1,LOCATE('_',OPTION) - 1) 20890000
ELSE OPTION 20900000
END AS OPTION 20910000
, CORRECT_VALUES 20920000
, UCASE(FAMILY) AS FAMILY 20930000
, SUBSTR(CRITERIA,2) AS CRITERIA 20940000
, SUBSTR(CRITERIA,1,1) AS ORD1 20950000
, LENGTH(STRIP(OBJECT)) AS ORD2 20960000
, SUBORD AS ORD3 20970000
, COMMENT 20980000
, CASE WHEN COMMENT <> ' ' 20990000
THEN 0 21000000
ELSE 1 21010000
END AS ORD0 21020000
FROM (SELECT OBJECT 21030000
, OPTION 21040000
, CORRECT_VALUES 21050000
, FAMILY 21060000
, CRITERIA 21070000
, SUBORD 21080000
, COMMENT 21090000
FROM SESSION.EXCEPTION 21100000
UNION ALL 21110000
SELECT OBJECT || ' No Database found' AS OBJECT 21120000
, '' AS OPTION 21130000
, '' AS CORRECT_VALUES 21140000
, '' AS FAMILY 21150000
, '9Database not exists' AS CRITERIA 21160000
, 999 AS SUBORD 21170000
, ' ' AS COMMENT 21180000
FROM (SELECT DBNAME AS OBJECT 21190000
FROM SESSION.FAMLISTE 21200000
EXCEPT ALL 21210000
SELECT SUBSTR(OBJECT, 1, 8) AS OBJECT 21220000
FROM SESSION.EXCEPTION 21230000
) AS T3 21240000
) AS T2 21250000
) AS T1 21260000
WHERE SUBSTR(OBJECT,1,1) <> '?' 21270000
AND STRIP(OBJECT) <> FAMILY 21280000
ORDER BY FAMILY 21290000
, ORD0 21300000
, ORD1 21310000
, ORD2 21320000
, ORD3 21330000
WITH UR 21340000
; 21350000
}¢--- A540769.WK.SQL(DDLCH2) cre=2013-05-14 mod=2013-05-16-12.16.52 A540769 ----
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
with u (ty, qu, nm) as
(
select 'ts', dbName, name from sysibm.sysTablespace
/*??union all select 't', creator, name from sysibm.sysTables
union all select 'i', creator, name from sysibm.sysIndexes
??*/)
select * from u
where (ty = 'ts' and qu like 'MF03%')
or (ty = 't' and qu = 'A540769' and nm like 'TWK99%')
or (ty = 'i' and qu = 'A540769' and nm like 'IWK40%')
group by ty, qu, nm
;
select * from plan_view1
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by --collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
rollback
;;;;
;x;
set current sqlid = 'S100447';
create global temporary table S100447.objs (
ty char(3), qu varchar(50), nm varChar(50))
;
delete from S100447.objs;
insert into S100447.objs values('ts', 'VV24A1A','VDPS168');
insert into S100447.objs
select 'ts', dbName, name
from sysibm.systablespace where dbName = 'VV24A1A'
;
select * from S100447.objs
;
create view S100447.exObjs (ty, qu, nmv) as
with ts (ty, qu, nm) as
(
select * from S100447.objs where ty = 'ts'
)
, t (ty, qu, nm) as
(
select * from S100447.objs where ty = 't'
union all select 't', t.creator, t.name
from sysibm.sysTables t where type = 'T' and (dbName, tsName)
in (select qu, nm from ts)
)
, i (ty, qu, nm) as
(
select * from S100447.objs where ty = 'i'
union all select 'i', i.creator, i.name
from sysibm.sysIndexes i where (tbCreator, tbName)
in (select qu, nm from t)
)
, v1 (ty, qu, nm, lv) as
(
select o.*, 0 from S100447.objs o where ty = 'v'
union all select t.*, 0 from t
union all select dType, dCreator, dName, lv+1
from v1 join sysibm.sysViewDep d
on d.bCreator = v1.qu and d.bName = v1.nm
where lv < 1000
)
, v (ty, qu, nm) as
( select 'v', qu, nm
from v1 where ty in ('v', 'V')
)
, u as
(
select * from ts
union all select * from t
union all select * from i
union all select * from v
)
select * from u
group by ty, qu, nm
;
select * from S100447.exObjs
;
rollback
;x;
with ts as
(
select dbName db, name ts, 'ts' ty, dbName qu, name nm
, strip(dbName) || '.' || strip(name) pa
, ts.*
from sysibm.sysTablespace ts
)
, tp as
(
select dbName db, tsName ts, 'tp' ty, dbName qu, tsName nm
, strip(dbName) || '.' || strip(tsName) pa
, tp.*
from sysibm.sysTablePart tp
)
, t as
(
select dbName db, tsName ts, 't' ty, creator qu, name nm
, strip(dbName) || '.' || strip(tsName)
|| '.' || strip(creator) || '.' || strip(name) pa
, tb.*
from sysibm.sysTables tb
where type not in ('A', 'V')
)
, c as
(
select db, ts, 'c' ty, c.tbName qu, c.name nm
, pa || '.' || strip(c.name) pa
, c.*
from t join sysibm.sysColumns c
on qu = c.tbCreator and nm = c.tbName
)
, i as
(
select db, ts, 'i' ty, ix.creator qu, ix.name nm
, pa || '.' || strip(ix.creator) ||'.'|| strip(ix.name) pa
, ix.*
from t join sysibm.sysIndexes ix
on qu = ix.tbCreator and nm = ix.tbName
)
, ip as
(
select db, ts, 'ip' ty, ix.creator qu, ix.name nm
, pa || '.' || strip(ix.creator) ||'.'|| strip(ix.name) pa
, ip.*
from t join sysibm.sysIndexes ix
on qu = ix.tbCreator and nm = ix.tbName
join sysibm.sysIndexPart ip
on ip.ixCreator = ix.creator and ip.ixName = ix.name
)
, v1 (db, ts, ty, qu, nm, pa, lv) as
(
select db, ts, ty, qu, nm, varchar(pa, 200), 0
from t
union all select db, ts, dType, dCreator, dName
, case when length(pa) < 70 then pa || '.'
else left(pa, 65) || '.....' end
|| strip(dCreator) || '.' || strip(dName)
, lv+1
from v1 join sysibm.sysViewDep d
on d.bCreator = v1.qu and d.bName = v1.nm
where lv < 1000
)
, v as
( select db, ts, 'v' ty, qu, nm, pa
from v1
where ty = 'V'
)
, eTs (db, ts, ty, qu, nm, pa, err) as
(
select db, ts, ty, qu, nm, pa, 'psimple TableSpace'
from ts
where partitions = 0 and segSize = 0
union all select db, ts, ty, qu, nm, pa, 'ppartition by growth'
from ts
where maxPartitions > 0
union all select db, ts, ty, qu, nm, pa, 'puniversal TableSpace'
from ts
where partitions > 0 and segSize > 0
union all select db, ts, ty, qu, nm, pa,
'ptables=' || strip(char(nTables)) || ', <> 1'
from ts
where nTables <> 1
union all select db, ts, ty, qu, nm, pa,
'partitions=' || strip(char(partitions)) || ', > 512'
from ts
where partitions > 512
union all select db, ts, ty, qu, nm, pa, 'obufferPool=' || bPool
from ts
where bPool not in('BP2', 'BP8K1', 'BP16K1', 'BP32K')
union all select db, ts, ty, qu, nm, pa,
'pEncoding=' || encoding_scheme || ', not EBCDIC'
from ts
where encoding_scheme <> 'E'
union all select db, ts, ty, qu, nm, pa,
'oclose=' || closeRule || ', not Y'
from ts
where closeRule <> 'Y'
union all select db, ts, ty, qu, nm, pa,
'odssize=' || strip(char(dsSize)) || ' tables, not 16GB'
from ts
where nTables <> 1
union all select db, ts, ty, qu, nm, pa, 'oerase=' || eraseRule
from ts
where eraseRule <> 'N'
union all select db, ts, ty, qu, nm, pa, 'pimplicit=' || implicit
from ts
where implicit <> 'N'
union all select db, ts, ty, qu, nm, pa,
'olockmax=' || strip(char(lockmax)) || ', not system'
from ts
where lockMax <> -1
union all select db, ts, ty, qu, nm, pa,
'olockSize=' || strip(char(lockRule)) || ', not any, page'
from ts
where lockRule not in ('A', 'P', 'L')
union all select db, ts, ty, qu, nm, pa, 'onot Logged'
from ts
where log <> 'Y'
union all select db, ts, ty, qu, nm, pa,
'omaxrows=' || strip(char(maxrows)) || ', not 256'
from ts
where segsize not in (0, 64)
union all select db, ts, ty, qu, nm, pa, 'pmembercluster'
from ts
where member_cluster <> ' '
union all select db, ts, ty, qu, nm, pa,
'osegsize=' || strip(char(segsize)) || ', not 64'
from ts
where segsize not in (0, 64)
)
, eTP (db, ts, ty, qu, nm, pa, err) as
(
select db, ts, ty, qu, nm, pa, 'ocompress=' || compress
from tp
where tp.compress <> 'Y'
union all select db, ts, ty, qu, nm, pa, 'ostorName not GSMS?'
from tp
where ( left(db, 2) <> 'XB' and storName <> 'GSMS')
or (left(db, 2) = 'XB' and storName not in
('GSMS1', 'GSMS2', 'GSMS3', 'GSMS4'))
union all select db, ts, ty, qu, nm, pa, 'opriQty <> -1'
from tp
where pqty <> -1
union all select db, ts, ty, qu, nm, pa, 'osecQty <> -1'
from tp
where sqty <> -1
union all select db, ts, ty, qu, nm, pa,
'ofreepage=' || strip(char(freepage)) || ', not 0'
from tp
where freepage <> 0
union all select db, ts, ty, qu, nm, pa,
'opctFree=' || strip(char(pctFree)) || ', > 20'
from tp
where pctFree > 20
union all select db, ts, ty, qu, nm, pa,
'ogbpCache=' || gbpCache || ', not changed'
from tp
where gbpCache <> ' '
)
, eT (db, ts, ty, qu, nm, pa, err) as
(
select db, ts, ty, qu, nm, pa,
'ncreator not like oa1' || substr(db, 7, 1) || '%'
from t
where not (left(qu, 4) = 'OA1' || substr(db, 7, 1)
or (left(db, 2) = 'VV' and qu = 'VDPS2'))
union all select db, ts, ty, qu, nm, pa,
'nname not like t' || left(db, 2) || substr(ts, 2, 3) || '%'
from t
where not (left(nm, 6) = 'T' || left(db, 2) || substr(ts, 2, 3)
or (left(db, 2) = 'VV' and left(nm, 3) = 'TVV'))
union all select db, ts, ty, qu, nm, pa,
case when tableStatus = 'L' then 'pauxilary index oder table fehlt'
when tableStatus = 'P' then 'pprimary index fehlt'
when tableStatus = 'R' then 'pindex auf Row ID fehlt'
when tableStatus = 'U' then 'pindex auf unique key fehlt'
when tableStatus = 'V' then 'pFehler interne ViewDarstellung'
else 'ptableStatus=' || tableStatus
end
from t
where tablestatus <> ' '
union all select db, ts, ty, qu, nm, pa, 'pappend=' || append
from t
where append <> 'N'
union all select db, ts, ty, qu, nm, pa, 'paudit=' || auditing
from t
where auditing <> ' '
union all select db, ts, ty, qu, nm, pa, 'pdataCapture' || dataCapture
from t
where dataCapture <> ' '
union all select db, ts, ty, qu, nm, pa, 'odrop not restricted'
from t
where clusterType <> 'Y'
union all select db, ts, ty, qu, nm, pa, 'pno Clustering Index'
from t
where (select max(clustering) from sysibm.sysIndexes i
where i.tbCreator = t.qu and i.tbName = t.nm)
not in ('Y', case when 1=1 then 'x' else null end)
union all select db, ts, ty, qu, nm, pa, 'pindexed based partitioning'
from t join sysibm.sysTablespace ts
on t.db = ts.dbName and t.ts = ts.name
and ts.partitions > 0 and partKeyColNum < 1
union all select db, ts, ty, qu, nm, pa, 'ano primary key constraint'
from t
where keyObid <> 0
)
, eC (db, ts, ty, qu, nm, pa, err) as
(
select db, ts, ty, qu, nm, pa, 'pcolType=' || colType
from c
where coltype not in('INTEGER', 'SMALLINT', 'FLOAT', 'CHAR'
, 'VARCHAR', 'DECIMAL', 'DATE', 'TIME', 'TIMESTMP'
, 'ROWID', 'BIGINT', 'BINARY')
union all select db, ts, ty, qu, nm, pa, 'pon update'
from c
where default in ('E','F')
union all select db, ts, ty, qu, nm, pa, 'phidden=' || hidden
from c
where hidden <> 'N'
union all select db, ts, ty, qu, nm, pa, 'pperiod=' || period
from c
where period <> ' '
)
, eI (db, ts, ty, qu, nm, pa, err) as
(
select db, ts, ty, qu, nm, pa,
'ncreator <> tbCreator=' || tbCreator
from i
where creator <> tbCreator
union all select db, ts, ty, qu, nm, pa,
'nname not like i' || substr(tbName, 2, 5) || '%'
from i
where not (left(nm, 6) = 'I' || substr(tbName, 2, 5)
or qu = 'VDPS2')
union all select db, ts, ty, qu, nm, pa,
case when ix_extension_type = 'S' then 'pindex on expression'
else 'ix_extension_type=' || ix_extension_type
end
from i
where ix_extension_type <> ''
union all select db, ts, ty, qu, nm, pa, 'obufferpool=' || bPool
from i
where bPool <> 'BP1'
union all select db, ts, ty, qu, nm, pa, 'oclose=' || closeRule
from i
where closeRule <> 'Y'
union all select db, ts, ty, qu, nm, pa, 'ocompress=' || compress
from i
where compress <> 'N'
union all select db, ts, ty, qu, nm, pa, 'ocopy=' || copy
from i
where copy <> 'N'
union all select db, ts, ty, qu, nm, pa, 'oerase=' || eraseRule
from i
where eraseRule <> 'N'
union all select db, ts, ty, qu, nm, pa, 'include columns'
from i
where unique_count <> 0
union all select db, ts, ty, qu, nm, pa, 'opadded=' || padded
from i
where padded not in (' ', 'N')
union all select db, ts, ty, qu, nm, pa, 'anot partitioned'
from i join sysibm.sysTables t
on i.tbCreator = t.creator and i.tbName = t.name
join sysibm.sysTableSpace ts
on ts.dbName = t.dbName and t.tsName = ts.name
and ts.partitions > 0
join sysibm.sysIndexPart ip
on ip.ixCreator = i.creator and ip.ixName = i.name
and ip.partition = 1
union all select db, ts, ty, qu, nm, pa, 'ppiecesize=' || padded
from i
where piecesize <> 0 and piecesize < 2097152
)
, eIP (db, ts, ty, qu, nm, pa, err) as
(
select db, ts, ty, qu, nm, pa, 'ostorName not GSMS?'
from ip
where ( left(db, 2) <> 'XB' and storName <> 'GSMS')
or (left(db, 2) = 'XB' and storName not in
('GSMS1', 'GSMS2', 'GSMS3', 'GSMS4'))
union all select db, ts, ty, qu, nm, pa, 'opriQty <> -1'
from ip
where pqty <> -1
union all select db, ts, ty, qu, nm, pa, 'osecQty <> -1'
from ip
where sqty <> -1
union all select db, ts, ty, qu, nm, pa,
'ofreepage=' || strip(char(freepage)) || ', not 0'
from ip
where freepage <> 0
union all select db, ts, ty, qu, nm, pa,
'opctFree=' || strip(char(pctFree)) || ', > 20'
from ip
where pctFree > 20
union all select db, ts, ty, qu, nm, pa,
'ogbpCache=' || gbpCache || ', not changed'
from ip
where gbpCache <> ' '
)
, eV (db, ts, ty, qu, nm, pa, err) as
(
select db, ts, ty, qu, nm, pa, 'ncreator'
from v
where left(qu, 4) <> 'OA1' || substr(db, 7, 1)
union all select db, ts, ty, qu, nm, pa, 'nname'
from v
where left(nm, 3) <> 'V' || left(db, 2)
)
, eU as
(
select * from eTs
union all select * from eTp
group by ty, qu, nm, err, pa, db,ts
union all select * from eT
union all select * from eC
union all select * from eI
union all (select * from eIp
group by ty, qu, nm, err, pa, db,ts)
union all select * from eV
)
, u as
(
select ty, qu, nm, err, pa, db, ts from ts
union all select ty, qu, nm, err, pa, db, ts from t
union all select ty, qu, nm, err, pa, db, ts from i
union all select ty, qu, nm, err, pa, db, ts from eU
)
, r as
(
select ty, substr(qu, 1, 12) qu, substr(nm, 1, 16) nm,
left(err, 1) cat, substr(err, 2) err, pa
from eU
where db like 'VV%' -- and ts like 'A97%'
)
select count(*), ty, cat, min(err), max(err)
, min(pa), max(pa)
from r
group by ty, cat, left(err, 10)
order by 3, 2, 4
;
-- where db = 'DGDB9998' -- and ts like 'A97%'
order by pa, err
;
select ty, substr(qu, 1, 12) qu, substr(nm, 1, 16) nm,
left(err, 1) cat, substr(err, 2) err, pa
from eU
where db like 'MF%' -- and ts like 'A97%'
-- where db = 'DGDB9998' -- and ts like 'A97%'
order by pa, err
;
select * from v
where db like 'VV24%' and ts like 'VDPS168%'
order by qu, nm, pa
;x;
}¢--- A540769.WK.SQL(DDLCH3) cre=2013-05-15 mod=2013-05-16-09.50.38 A540769 ----
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
with ts as
(
select 'ts' st, dbName sQ, name sN, 'ts' ty, dbName qu, name nm
, strip(dbName) || '.' || strip(name) pa
, ts.*
from sysibm.sysTablespace ts
union all select 't' st, t.creator sQ, t.name sN,
'ts' ty, ts.dbName qu, ts.name nm
, strip(ts.dbName) || '.' || strip(ts.name) pa
, ts.*
from sysibm.sysTables t join sysibm.sysTablespace ts
on t.dbName = ts.dbName and t.tsName = ts.name
and t.type not in ('A', 'V')
)
/*???
, tp as
(
select sT, sQ, sN, 'tp' ty, dbName qu, tsName nm, pa
, tp.*
from ts join sysibm.sysTablePart tp
on ts.qu = tp.dbName and ts.nm = tp.tsName
)
, t as
(
select sT, sQ, sN, 't' ty, t.creator qu, t.name nm
, pa || '.' || strip(t.creator) || '.' || strip(t.name) pa
, t.*
from ts join sysibm.sysTables t
on t.dbName = ts.qu and t.tsName = ts.nm
and t.type not in ('A', 'V')
)
, c as
(
select sT, sQ, sN, 'c' ty, c.tbName qu, c.name nm
, pa || '.' || strip(c.name) pa
, c.*
from t join sysibm.sysColumns c
on qu = c.tbCreator and nm = c.tbName
)
, i as
(
select sT, sQ, sN, 'i' ty, ix.creator qu, ix.name nm
, pa || '.' || strip(ix.creator) ||'.'|| strip(ix.name) pa
, ix.*
from t join sysibm.sysIndexes ix
on qu = ix.tbCreator and nm = ix.tbName
union all select 'i' sT, creator sQ, name sN
, 'i' ty, creator qu, name nm
, strip(creator) || '.' || strip(name) pa
, ix.*
from sysibm.sysIndexes ix
)
, ip as
(
select sT, sQ, sN, 'ip' ty, ix.creator qu, ix.name nm, pa
, ip.*
from i join sysibm.sysIndexPart ip
on ip.ixCreator = qu and ip.ixName = nm
)
, v1 (sT, sQ, sN, ty, qu, nm, pa, lv) as
(
select sT, sQ, sN, ty, qu, nm, pa, 0
from t
union all select 'v', t.creator, t.name, 'v', t.creator, t.name
, strip(t.creator) || '.' || strip(t.name) pa, 0
from sysibm.sysTables t
where type = 'V'
union all select sT, sQ, sN, dType, dCreator, dName
, case when length(pa) < 70 then pa || '.'
else left(pa, 65) || '.....' end
|| strip(dCreator) || '.' || strip(dName)
, lv+1
from v1 join sysibm.sysViewDep d
on d.bCreator = v1.qu and d.bName = v1.nm
where lv < 100
)
, v as
( select sT, sQ, sN, 'v' ty, qu, nm, pa
from v1
where ty in('v', 'V')
)
??????????*/
, u as
(
select sT, sQ, sN, ty, qu, nm, pa from ts
/*???
union all select sT, sQ, sN, ty, qu, nm, pa from t
union all select sT, sQ, sN, ty, qu, nm, pa from i
union all select sT, sQ, sN, ty, qu, nm, pa from v
???*/
)
select * from u
where (sT = 'ts' and sQ = 'DA540769' and sN like 'A40%')
or (sT = 't' and sQ = 'OA1A' and sN like 'TMF150%')
or (sT = 'v' and sQ = 'GDB9998' and sN like 'WK947NUL%')
;
select * from plan_view1
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by --collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
rollback
;;;;
;x;
, eTs (db, ts, ty, qu, nm, pa, err) as
(
select db, ts, ty, qu, nm, pa, 'psimple TableSpace'
from ts
where partitions = 0 and segSize = 0
union all select db, ts, ty, qu, nm, pa, 'ppartition by growth'
from ts
where maxPartitions > 0
union all select db, ts, ty, qu, nm, pa, 'puniversal TableSpace'
from ts
where partitions > 0 and segSize > 0
union all select db, ts, ty, qu, nm, pa,
'ptables=' || strip(char(nTables)) || ', <> 1'
from ts
where nTables <> 1
union all select db, ts, ty, qu, nm, pa,
'partitions=' || strip(char(partitions)) || ', > 512'
from ts
where partitions > 512
union all select db, ts, ty, qu, nm, pa, 'obufferPool=' || bPool
from ts
where bPool not in('BP2', 'BP8K1', 'BP16K1', 'BP32K')
union all select db, ts, ty, qu, nm, pa,
'pEncoding=' || encoding_scheme || ', not EBCDIC'
from ts
where encoding_scheme <> 'E'
union all select db, ts, ty, qu, nm, pa,
'oclose=' || closeRule || ', not Y'
from ts
where closeRule <> 'Y'
union all select db, ts, ty, qu, nm, pa,
'odssize=' || strip(char(dsSize)) || ' tables, not 16GB'
from ts
where nTables <> 1
union all select db, ts, ty, qu, nm, pa, 'oerase=' || eraseRule
from ts
where eraseRule <> 'N'
union all select db, ts, ty, qu, nm, pa, 'pimplicit=' || implicit
from ts
where implicit <> 'N'
union all select db, ts, ty, qu, nm, pa,
'olockmax=' || strip(char(lockmax)) || ', not system'
from ts
where lockMax <> -1
union all select db, ts, ty, qu, nm, pa,
'olockSize=' || strip(char(lockRule)) || ', not any, page'
from ts
where lockRule not in ('A', 'P', 'L')
union all select db, ts, ty, qu, nm, pa, 'onot Logged'
from ts
where log <> 'Y'
union all select db, ts, ty, qu, nm, pa,
'omaxrows=' || strip(char(maxrows)) || ', not 256'
from ts
where segsize not in (0, 64)
union all select db, ts, ty, qu, nm, pa, 'pmembercluster'
from ts
where member_cluster <> ' '
union all select db, ts, ty, qu, nm, pa,
'osegsize=' || strip(char(segsize)) || ', not 64'
from ts
where segsize not in (0, 64)
)
, eTP (db, ts, ty, qu, nm, pa, err) as
(
select db, ts, ty, qu, nm, pa, 'ocompress=' || compress
from tp
where tp.compress <> 'Y'
union all select db, ts, ty, qu, nm, pa, 'ostorName not GSMS?'
from tp
where ( left(db, 2) <> 'XB' and storName <> 'GSMS')
or (left(db, 2) = 'XB' and storName not in
('GSMS1', 'GSMS2', 'GSMS3', 'GSMS4'))
union all select db, ts, ty, qu, nm, pa, 'opriQty <> -1'
from tp
where pqty <> -1
union all select db, ts, ty, qu, nm, pa, 'osecQty <> -1'
from tp
where sqty <> -1
union all select db, ts, ty, qu, nm, pa,
'ofreepage=' || strip(char(freepage)) || ', not 0'
from tp
where freepage <> 0
union all select db, ts, ty, qu, nm, pa,
'opctFree=' || strip(char(pctFree)) || ', > 20'
from tp
where pctFree > 20
union all select db, ts, ty, qu, nm, pa,
'ogbpCache=' || gbpCache || ', not changed'
from tp
where gbpCache <> ' '
)
, eT (db, ts, ty, qu, nm, pa, err) as
(
select db, ts, ty, qu, nm, pa,
'ncreator not like oa1' || substr(db, 7, 1) || '%'
from t
where not (left(qu, 4) = 'OA1' || substr(db, 7, 1)
or (left(db, 2) = 'VV' and qu = 'VDPS2'))
union all select db, ts, ty, qu, nm, pa,
'nname not like t' || left(db, 2) || substr(ts, 2, 3) || '%'
from t
where not (left(nm, 6) = 'T' || left(db, 2) || substr(ts, 2, 3)
or (left(db, 2) = 'VV' and left(nm, 3) = 'TVV'))
union all select db, ts, ty, qu, nm, pa,
case when tableStatus = 'L' then 'pauxilary index oder table fehlt'
when tableStatus = 'P' then 'pprimary index fehlt'
when tableStatus = 'R' then 'pindex auf Row ID fehlt'
when tableStatus = 'U' then 'pindex auf unique key fehlt'
when tableStatus = 'V' then 'pFehler interne ViewDarstellung'
else 'ptableStatus=' || tableStatus
end
from t
where tablestatus <> ' '
union all select db, ts, ty, qu, nm, pa, 'pappend=' || append
from t
where append <> 'N'
union all select db, ts, ty, qu, nm, pa, 'paudit=' || auditing
from t
where auditing <> ' '
union all select db, ts, ty, qu, nm, pa, 'pdataCapture' || dataCapture
from t
where dataCapture <> ' '
union all select db, ts, ty, qu, nm, pa, 'odrop not restricted'
from t
where clusterType <> 'Y'
union all select db, ts, ty, qu, nm, pa, 'pno Clustering Index'
from t
where (select max(clustering) from sysibm.sysIndexes i
where i.tbCreator = t.qu and i.tbName = t.nm)
not in ('Y', case when 1=1 then 'x' else null end)
union all select db, ts, ty, qu, nm, pa, 'pindexed based partitioning'
from t join sysibm.sysTablespace ts
on t.db = ts.dbName and t.ts = ts.name
and ts.partitions > 0 and partKeyColNum < 1
union all select db, ts, ty, qu, nm, pa, 'ano primary key constraint'
from t
where keyObid <> 0
)
, eC (db, ts, ty, qu, nm, pa, err) as
(
select db, ts, ty, qu, nm, pa, 'pcolType=' || colType
from c
where coltype not in('INTEGER', 'SMALLINT', 'FLOAT', 'CHAR'
, 'VARCHAR', 'DECIMAL', 'DATE', 'TIME', 'TIMESTMP'
, 'ROWID', 'BIGINT', 'BINARY')
union all select db, ts, ty, qu, nm, pa, 'pon update'
from c
where default in ('E','F')
union all select db, ts, ty, qu, nm, pa, 'phidden=' || hidden
from c
where hidden <> 'N'
union all select db, ts, ty, qu, nm, pa, 'pperiod=' || period
from c
where period <> ' '
)
, eI (db, ts, ty, qu, nm, pa, err) as
(
select db, ts, ty, qu, nm, pa,
'ncreator <> tbCreator=' || tbCreator
from i
where creator <> tbCreator
union all select db, ts, ty, qu, nm, pa,
'nname not like i' || substr(tbName, 2, 5) || '%'
from i
where not (left(nm, 6) = 'I' || substr(tbName, 2, 5)
or qu = 'VDPS2')
union all select db, ts, ty, qu, nm, pa,
case when ix_extension_type = 'S' then 'pindex on expression'
else 'ix_extension_type=' || ix_extension_type
end
from i
where ix_extension_type <> ''
union all select db, ts, ty, qu, nm, pa, 'obufferpool=' || bPool
from i
where bPool <> 'BP1'
union all select db, ts, ty, qu, nm, pa, 'oclose=' || closeRule
from i
where closeRule <> 'Y'
union all select db, ts, ty, qu, nm, pa, 'ocompress=' || compress
from i
where compress <> 'N'
union all select db, ts, ty, qu, nm, pa, 'ocopy=' || copy
from i
where copy <> 'N'
union all select db, ts, ty, qu, nm, pa, 'oerase=' || eraseRule
from i
where eraseRule <> 'N'
union all select db, ts, ty, qu, nm, pa, 'include columns'
from i
where unique_count <> 0
union all select db, ts, ty, qu, nm, pa, 'opadded=' || padded
from i
where padded not in (' ', 'N')
union all select db, ts, ty, qu, nm, pa, 'anot partitioned'
from i join sysibm.sysTables t
on i.tbCreator = t.creator and i.tbName = t.name
join sysibm.sysTableSpace ts
on ts.dbName = t.dbName and t.tsName = ts.name
and ts.partitions > 0
join sysibm.sysIndexPart ip
on ip.ixCreator = i.creator and ip.ixName = i.name
and ip.partition = 1
union all select db, ts, ty, qu, nm, pa, 'ppiecesize=' || padded
from i
where piecesize <> 0 and piecesize < 2097152
)
, eIP (db, ts, ty, qu, nm, pa, err) as
(
select db, ts, ty, qu, nm, pa, 'ostorName not GSMS?'
from ip
where ( left(db, 2) <> 'XB' and storName <> 'GSMS')
or (left(db, 2) = 'XB' and storName not in
('GSMS1', 'GSMS2', 'GSMS3', 'GSMS4'))
union all select db, ts, ty, qu, nm, pa, 'opriQty <> -1'
from ip
where pqty <> -1
union all select db, ts, ty, qu, nm, pa, 'osecQty <> -1'
from ip
where sqty <> -1
union all select db, ts, ty, qu, nm, pa,
'ofreepage=' || strip(char(freepage)) || ', not 0'
from ip
where freepage <> 0
union all select db, ts, ty, qu, nm, pa,
'opctFree=' || strip(char(pctFree)) || ', > 20'
from ip
where pctFree > 20
union all select db, ts, ty, qu, nm, pa,
'ogbpCache=' || gbpCache || ', not changed'
from ip
where gbpCache <> ' '
)
, eV (db, ts, ty, qu, nm, pa, err) as
(
select db, ts, ty, qu, nm, pa, 'ncreator'
from v
where left(qu, 4) <> 'OA1' || substr(db, 7, 1)
union all select db, ts, ty, qu, nm, pa, 'nname'
from v
where left(nm, 3) <> 'V' || left(db, 2)
)
, eU as
(
select * from eTs
union all select * from eTp
group by ty, qu, nm, err, pa, db,ts
union all select * from eT
union all select * from eC
union all select * from eI
union all (select * from eIp
group by ty, qu, nm, err, pa, db,ts)
union all select * from eV
)
, r as
(
select ty, substr(qu, 1, 12) qu, substr(nm, 1, 16) nm,
left(err, 1) cat, substr(err, 2) err, pa
from eU
where db like 'VV%' -- and ts like 'A97%'
)
select count(*), ty, cat, min(err), max(err)
, min(pa), max(pa)
from r
group by ty, cat, left(err, 10)
order by 3, 2, 4
;
-- where db = 'DGDB9998' -- and ts like 'A97%'
order by pa, err
;
select ty, substr(qu, 1, 12) qu, substr(nm, 1, 16) nm,
left(err, 1) cat, substr(err, 2) err, pa
from eU
where db like 'MF%' -- and ts like 'A97%'
-- where db = 'DGDB9998' -- and ts like 'A97%'
order by pa, err
;
select * from v
where db like 'VV24%' and ts like 'VDPS168%'
order by qu, nm, pa
;x;
}¢--- A540769.WK.SQL(DDLCH4) cre=2013-05-16 mod=2013-05-16-12.35.16 A540769 ----
set current sqlid = 'S100447';
-- drop function A540769.fins;
create global temporary table A540769.tIns
(fl char(1), nu int);
--#SET TERMINATOR ?
create function A540769.fIns(c int) returns int
modifies sql data
begin
delete from A540769.tIns;
insert into A540769.tIns values('x', c);
insert into A540769.tIns values('x', c-1);
return c+ 1;
end
?
--#SET TERMINATOR ;
select * from final table (
update a540769.tIns set nu = A540769.fIns(12)
) x
;
select * from a540769.tIns
;
rollback
;
create function A540769.fChk(pty char(3)
, pqu varchar( 24) ccsid unicode for mixed data
, pnm varchar( 24) ccsid unicode for mixed data
)
returns table (ty char(3)
, qu varchar(128) --ccsid unicode
, nm varchar(128) --ccsid unicode
)
return select 'ts', dbName, name
from sysibm.sysTablespace
where dbName = pqu and name = pnm
union all select 't', creator, name
from sysibm.sysTables
where creator = pqu and name = pnm
;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
select * from table(A540769.fChk('ts', 'MF01A1A', 'A150A')) a
;
select * from plan_view1
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by --collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
rollback
;;;;
rollback
;x;
modifies sql data
begin
delete from A540769.tIns;
insert into A540769.tIns values('x', c);
insert into A540769.tIns values('x', c-1);
return c+ 1;
end
?
--#SET TERMINATOR ;
select y.* from final table (
insert into a540769.tIns values('a', A540769.fIns(12))
) x , a540769.tIns y
;
select * from a540769.tIns
;
rollback
;
--#SET TERMINATOR ?
create function A540769.fIns(c int) returns int
modifies sql data
begin
delete from A540769.tIns;
insert into A540769.tIns values('x', c);
insert into A540769.tIns values('x', c-1);
return c+ 1;
end
?
--#SET TERMINATOR ;
select y.* from final table (
insert into a540769.tIns values('a', A540769.fIns(12))
) x , a540769.tIns y
;
select * from a540769.tIns
;
rollback
;
}¢--- A540769.WK.SQL(DDLCH5) cre=2013-05-16 mod=2013-05-16-16.43.13 A540769 ----
set current sqlid = 'S100447';
drop table A540769.tSels;
create global temporary table A540769.tSels
(ty char(3), qu varchar(128), nm varchar(128), gp char(3))
;
insert into A540769.tSels
select 'ts', dbName, name, ''
from sysibm.systablespace
where dbName like 'NI%'
/*?? select 'ts', dbName, name, ''
from sysibm.systablespace
where dbName = 'DGDB9998' and name like 'A40%'
union all select 't', creator, name, ''
from sysibm.systables
where creator = 'OA1A' and name like 'TMF150%' and type = 'T'
union all select 'v', creator, name, ''
from sysibm.systables
where creator = 'GDB9998' and name like 'WK947NU%'
and type = 'V'
??*/
;
-- select * from A540769.tSels
--;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
with ts as
(
select 'ts' ty, dbName qu, name nm
, case when gp = '' then left(dbName, 2) || substr(dbName, 7, 1)
else gp end gp
, 'ts:' || strip(dbName) || '.' || strip(name) pa
, ts.*
from sysibm.sysTablespace ts join A540769.tSels s
on s.ty = 'ts' and s.qu = ts.dbName and s.nm = ts.name
union all select 'ts' ty, ts.dbName qu, ts.name nm
, case when gp = '' then left(t.dbName,2)||substr(t.dbName, 7, 1)
else gp end gp
, 't:' || strip(t.creator) || '.' || strip(t.name)
|| 'ts:' || strip(t.dbName) || '.' || strip(t.tsname) pa
, ts.*
from sysibm.sysTables t join A540769.tSels s
on s.ty = 't' and s.qu = t.creator and s.nm = t.name
join sysibm.sysTablespace ts
on ts.dbName = t.dbname and ts.name = t.tsname
)
, tp as
(
select 'tp' ty, qu, nm, gp, pa
, tp.*
from ts join sysibm.sysTablePart tp
on ts.qu = tp.dbName and ts.nm = tp.tsName
)
, t as
(
select 't' ty, t.creator qu, t.name nm, gp
, pa || ' t:' || strip(t.creator) || '.' || strip(t.name) pa
, t.*
from ts join sysibm.sysTables t
on t.dbName = ts.qu and t.tsName = ts.nm
and t.type not in ('A', 'V')
)
, c as
(
select 'c' ty, c.tbName qu, c.name nm, gp
, pa || ' c:' || strip(c.name) pa
, c.*
from t join sysibm.sysColumns c
on qu = c.tbCreator and nm = c.tbName
)
, i as
(
select 'i' ty, ix.creator qu, ix.name nm, gp
, pa || ' i:' || strip(ix.creator) ||'.'|| strip(ix.name) pa
, ix.*
from t join sysibm.sysIndexes ix
on qu = ix.tbCreator and nm = ix.tbName
union all select 'i' ty, ix.creator qu, ix.name nm
, case when gp='' then left(ix.dbName,2)||substr(ix.dbName, 7,1)
else gp end gp
, 'i:' || strip(creator) || '.' || strip(name) pa
, ix.*
from sysibm.sysIndexes ix join A540769.tSels s
on s.ty = 'i' and ix.creator = s.qu and ix.name = s.nm
)
, ip as
(
select 'ip' ty, qu, nm, gp, pa
, ip.*
from i join sysibm.sysIndexPart ip
on ip.ixCreator = qu and ip.ixName = nm
)
, v1 (ty, qu, nm, gp, tCr, pa, lv) as
(
select ty, qu, nm, gp, creator, pa, 0
from t
union all select s.*, '', 'v:' || strip(s.qu) ||'.'|| strip(s.nm), 0
from A540769.tSels s where ty = 'v'
union all select dType, dCreator, dName, gp, tCr
, case when length(pa) < 70 then pa
else left(pa, 65) || '.....' end
|| ' v:' || strip(dCreator) || '.' || strip(dName)
, lv+1
from v1 join sysibm.sysViewDep d
on d.bCreator = v1.qu and d.bName = v1.nm
where lv < 100
)
, v as
( select 'v' ty, qu, nm, gp, tCr, pa
from v1
where ty in('v', 'V')
)
, u as
(
select ty, qu, nm, pa from ts
union all select ty, qu, nm, pa from t
union all select ty, qu, nm, pa from i
union all select ty, qu, nm, pa from v
)
, eTs (ty, qu, nm, gp, pa, err) as
(
select ty, qu, nm, gp, pa, 'psimple TableSpace'
from ts
where partitions = 0 and segSize = 0
union all select ty, qu, nm, gp, pa, 'ppartition by growth'
from ts
where maxPartitions > 0
union all select ty, qu, nm, gp, pa, 'puniversal TableSpace'
from ts
where partitions > 0 and segSize > 0
union all select ty, qu, nm, gp, pa,
'ptables=' || strip(char(nTables)) || ', <> 1'
from ts
where nTables <> 1
union all select ty, qu, nm, gp, pa,
'partitions=' || strip(char(partitions)) || ', > 512'
from ts
where partitions > 512
union all select ty, qu, nm, gp, pa, 'obufferPool=' || bPool
from ts
where bPool not in('BP2', 'BP8K1', 'BP16K1', 'BP32K')
union all select ty, qu, nm, gp, pa,
'pEncoding=' || encoding_scheme || ', not EBCDIC'
from ts
where encoding_scheme <> 'E'
union all select ty, qu, nm, gp, pa,
'oclose=' || closeRule || ', not Y'
from ts
where closeRule <> 'Y'
union all select ty, qu, nm, gp, pa,
'odssize=' || strip(char(dsSize)) || ' tables, not 16GB'
from ts
where nTables <> 1
union all select ty, qu, nm, gp, pa, 'oerase=' || eraseRule
from ts
where eraseRule <> 'N'
union all select ty, qu, nm, gp, pa, 'pimplicit=' || implicit
from ts
where implicit <> 'N'
union all select ty, qu, nm, gp, pa,
'olockmax=' || strip(char(lockmax)) || ', not system'
from ts
where lockMax <> -1
union all select ty, qu, nm, gp, pa,
'olockSize=' || strip(char(lockRule)) || ', not any, page'
from ts
where lockRule not in ('A', 'P', 'L')
union all select ty, qu, nm, gp, pa, 'onot Logged'
from ts
where log <> 'Y'
union all select ty, qu, nm, gp, pa,
'omaxrows=' || strip(char(maxrows)) || ', not 256'
from ts
where segsize not in (0, 64)
union all select ty, qu, nm, gp, pa, 'pmembercluster'
from ts
where member_cluster <> ' '
union all select ty, qu, nm, gp, pa,
'osegsize=' || strip(char(segsize)) || ', not 64'
from ts
where segsize not in (0, 64)
)
, eTP (ty, qu, nm, gp, pa, err) as
(
select ty, qu, nm, gp, pa, 'ocompress=' || compress
from tp
where tp.compress <> 'Y'
union all select ty, qu, nm, gp, pa, 'ostorName not GSMS?'
from tp
where (left(gp, 2) <> 'XB' and storName <> 'GSMS')
or (left(gp, 2) = 'XB' and storName not in
('GSMS1', 'GSMS2', 'GSMS3', 'GSMS4'))
union all select ty, qu, nm, gp, pa, 'opriQty <> -1'
from tp
where pqty <> -1
union all select ty, qu, nm, gp, pa, 'osecQty <> -1'
from tp
where sqty <> -1
union all select ty, qu, nm, gp, pa,
'ofreepage=' || strip(char(freepage)) || ', not 0'
from tp
where freepage <> 0
union all select ty, qu, nm, gp, pa,
'opctFree=' || strip(char(pctFree)) || ', > 20'
from tp
where pctFree > 20
union all select ty, qu, nm, gp, pa,
'ogbpCache=' || gbpCache || ', not changed'
from tp
where gbpCache <> ' '
)
, eT (ty, qu, nm, gp, pa, err) as
(
select ty, qu, nm, gp, pa,
'ncreator not like oa1' || substr(gp, 3, 1) || '%'
from t
where not (left(qu, 4) = 'OA1' || substr(gp, 3, 1)
or (left(gp, 2) = 'VV' and qu = 'VDPS2'))
union all select ty, qu, nm, gp, pa
, 'nname not like t' || left(gp,2)
|| case when left(gp, 2) = 'VV' then ''
else substr(tsName,2,3) end || '%'
from t
where not (left(nm, 6) = 'T' || left(gp,2) || substr(tsName, 2, 3)
or (left(gp, 2) = 'VV' and left(nm, 3) = 'TVV'))
union all select ty, qu, nm, gp, pa,
case when tableStatus = 'L' then 'pauxilary index oder table fehlt'
when tableStatus = 'P' then 'pprimary index fehlt'
when tableStatus = 'R' then 'pindex auf Row ID fehlt'
when tableStatus = 'U' then 'pindex auf unique key fehlt'
when tableStatus = 'V' then 'pFehler interne ViewDarstellung'
else 'ptableStatus=' || tableStatus
end
from t
where tablestatus <> ' '
union all select ty, qu, nm, gp, pa, 'pappend=' || append
from t
where append <> 'N'
union all select ty, qu, nm, gp, pa, 'paudit=' || auditing
from t
where auditing <> ' '
union all select ty, qu, nm, gp, pa, 'pdataCapture' || dataCapture
from t
where dataCapture <> ' '
union all select ty, qu, nm, gp, pa, 'odrop not restricted'
from t
where clusterType <> 'Y'
union all select ty, qu, nm, gp, pa, 'pno Clustering Index'
from t
where (select max(clustering) from sysibm.sysIndexes i
where i.tbCreator = t.qu and i.tbName = t.nm)
not in ('Y', case when 1=1 then 'x' else null end)
union all select ty, qu, nm, gp, pa, 'pindexed based partitioning'
from t join sysibm.sysTablespace ts
on t.dbName = ts.dbName and t.tsName = ts.name
and ts.partitions > 0 and partKeyColNum < 1
union all select ty, qu, nm, gp, pa, 'ano primary key constraint'
from t
where keyObid <> 0
)
, eC (ty, qu, nm, gp, pa, err) as
(
select ty, qu, nm, gp, pa, 'pcolType=' || colType
from c
where coltype not in('INTEGER', 'SMALLINT', 'FLOAT', 'CHAR'
, 'VARCHAR', 'DECIMAL', 'DATE', 'TIME', 'TIMESTMP'
, 'ROWID', 'BIGINT', 'BINARY')
union all select ty, qu, nm, gp, pa, 'pon update'
from c
where default in ('E','F')
union all select ty, qu, nm, gp, pa, 'phidden=' || hidden
from c
where hidden <> 'N'
union all select ty, qu, nm, gp, pa, 'pperiod=' || period
from c
where period <> ' '
)
, eI (ty, qu, nm, gp, pa, err) as
(
select ty, qu, nm, gp, pa,
'ncreator <> tbCreator=' || tbCreator
from i
where creator <> tbCreator
union all select ty, qu, nm, gp, pa,
'nname not like i' || substr(tbName, 2, 5) || '%'
from i
where not (left(nm, 6) = 'I' || substr(tbName, 2, 5)
or qu = 'VDPS2')
union all select ty, qu, nm, gp, pa,
case when ix_extension_type = 'S' then 'pindex on expression'
else 'ix_extension_type=' || ix_extension_type
end
from i
where ix_extension_type <> ''
union all select ty, qu, nm, gp, pa, 'obufferpool=' || bPool
from i
where bPool <> 'BP1'
union all select ty, qu, nm, gp, pa, 'oclose=' || closeRule
from i
where closeRule <> 'Y'
union all select ty, qu, nm, gp, pa, 'ocompress=' || compress
from i
where compress <> 'N'
union all select ty, qu, nm, gp, pa, 'ocopy=' || copy
from i
where copy <> 'N'
union all select ty, qu, nm, gp, pa, 'oerase=' || eraseRule
from i
where eraseRule <> 'N'
union all select ty, qu, nm, gp, pa, 'include columns'
from i
where unique_count <> 0
union all select ty, qu, nm, gp, pa, 'opadded=' || padded
from i
where padded not in (' ', 'N')
union all select ty, qu, nm, gp, pa, 'anot partitioned'
from i join sysibm.sysTables t
on i.tbCreator = t.creator and i.tbName = t.name
join sysibm.sysTableSpace ts
on ts.dbName = t.dbName and t.tsName = ts.name
and ts.partitions > 0
join sysibm.sysIndexPart ip
on ip.ixCreator = i.creator and ip.ixName = i.name
and ip.partition = 1
union all select ty, qu, nm, gp, pa
, 'ppiecesize=' || strip(char(piecesize))
from i
where piecesize <> 0 and piecesize < 2097152
)
, eIP (ty, qu, nm, gp, pa, err) as
(
select ty, qu, nm, gp, pa, 'ostorName not GSMS?'
from ip
where ( left(gp, 2) <> 'XB' and storName <> 'GSMS')
or (left(gp, 2) = 'XB' and storName not in
('GSMS1', 'GSMS2', 'GSMS3', 'GSMS4'))
union all select ty, qu, nm, gp, pa, 'opriQty <> -1'
from ip
where pqty <> -1
union all select ty, qu, nm, gp, pa, 'osecQty <> -1'
from ip
where sqty <> -1
union all select ty, qu, nm, gp, pa,
'ofreepage=' || strip(char(freepage)) || ', not 0'
from ip
where freepage <> 0
union all select ty, qu, nm, gp, pa,
'opctFree=' || strip(char(pctFree)) || ', > 20'
from ip
where pctFree > 20
union all select ty, qu, nm, gp, pa,
'ogbpCache=' || gbpCache || ', not changed'
from ip
where gbpCache <> ' '
)
, eV (ty, qu, nm, gp, pa, err) as
(
select ty, qu, nm, gp, pa, 'ncreator'
from v
where not( (tCr <> '' and tCr = qu)
or ((tCr = '' or left(gp, 2) = 'VV')
and left(qu, 4) = 'OA1' || substr(gp, 3, 1)))
union all select ty, qu, nm, gp, pa, 'nname'
from v
where left(nm, 3) <> 'V' || left(gp, 2)
)
, eU as
(
select * from eTs
union all select * from eTp
group by ty, qu, nm, gp, err, pa
union all select * from eT
union all select * from eC
union all select * from eI
union all select * from eIp
group by ty, qu, nm, gp, err, pa
union all select * from eV
)
, r as
(
select ty, substr(qu, 1, 12) qu, substr(nm, 1, 16) nm,
substr(err, 1, 1) cat, substr(gp, 1, 3) gp,
substr(err, 2, 40) err, pa
from eU
)
-- select * from r order by pa ;x;
select count(*), ty, cat, min(err), max(err)
, min(pa), max(pa)
from r
group by ty, cat, left(err, 10)
order by 3, 2, 4
;
select * from plan_view1
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by --collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
rollback
;x;
-- where db = 'DGDB9998' -- and ts like 'A97%'
order by pa, err
;
select ty, substr(qu, 1, 12) qu, substr(nm, 1, 16) nm,
substr(err, 1, 1) cat, substr(err, 2, 40) err, pa
from eU
where db like 'MF%' -- and ts like 'A97%'
-- where db = 'DGDB9998' -- and ts like 'A97%'
order by pa, err
;
select * from v
where db like 'VV24%' and ts like 'VDPS168%'
order by qu, nm, pa
;x;
}¢--- A540769.WK.SQL(DDLCH6) cre=2013-05-23 mod=2013-05-31-14.13.52 A540769 ----
set current sqlid = 'S100447';
set current path oa1t;
--drop table A540769.tSels;
create global temporary table A540769.tSels
(ty char(3), qu varchar(128), nm varchar(128), gp char(3))
;
create view A540769.vDdlCheck as
with ts as
(
select 'ts' ty, dbName qu, name nm
, case when gp = '' then left(dbName, 2) || substr(dbName, 7, 1)
else gp end gp
, 'ts:' || strip(dbName) || '.' || strip(name) pa
, ts.*
from sysibm.sysTablespace ts join A540769.tSels s
on s.ty = 'ts' and s.qu = ts.dbName and s.nm = ts.name
union all select 'ts' ty, ts.dbName qu, ts.name nm
, case when gp = '' then left(t.dbName,2)||substr(t.dbName, 7, 1)
else gp end gp
, 't:' || strip(t.creator) || '.' || strip(t.name)
|| 'ts:' || strip(t.dbName) || '.' || strip(t.tsname) pa
, ts.*
from sysibm.sysTables t join A540769.tSels s
on s.ty = 't' and s.qu = t.creator and s.nm = t.name
join sysibm.sysTablespace ts
on ts.dbName = t.dbname and ts.name = t.tsname
)
, tp as
(
select 'tp' ty, qu, nm, gp, pa
, tp.*
from ts join sysibm.sysTablePart tp
on ts.qu = tp.dbName and ts.nm = tp.tsName
)
, t as
(
select 't' ty, t.creator qu, t.name nm, gp
, pa || ' t:' || strip(t.creator) || '.' || strip(t.name) pa
, t.*
from ts join sysibm.sysTables t
on t.dbName = ts.qu and t.tsName = ts.nm
and t.type not in ('A', 'V')
)
, c as
(
select 'c' ty, c.tbName qu, c.name nm, gp
, pa || ' c:' || strip(c.name) pa
, c.*
from t join sysibm.sysColumns c
on qu = c.tbCreator and nm = c.tbName
)
, i as
(
select 'i' ty, ix.creator qu, ix.name nm, gp
, pa || ' i:' || strip(ix.creator) ||'.'|| strip(ix.name) pa
, ix.*
from t join sysibm.sysIndexes ix
on qu = ix.tbCreator and nm = ix.tbName
union all select 'i' ty, ix.creator qu, ix.name nm
, case when gp='' then left(ix.dbName,2)||substr(ix.dbName, 7,1)
else gp end gp
, 'i:' || strip(creator) || '.' || strip(name) pa
, ix.*
from sysibm.sysIndexes ix join A540769.tSels s
on s.ty = 'i' and ix.creator = s.qu and ix.name = s.nm
)
, ip as
(
select 'ip' ty, qu, nm, gp, pa
, ip.*
from i join sysibm.sysIndexPart ip
on ip.ixCreator = qu and ip.ixName = nm
)
, v1 (ty, qu, nm, gp, tCr, pa, lv) as
(
select ty, qu, nm, gp, creator, pa, 0
from t
union all select s.*, '', 'v:' || strip(s.qu) ||'.'|| strip(s.nm), 0
from A540769.tSels s where ty = 'v'
union all select dType, dCreator, dName, gp, tCr
, case when length(pa) < 70 then pa
else left(pa, 65) || '.....' end
|| ' v:' || strip(dCreator) || '.' || strip(dName)
, lv+1
from v1 join sysibm.sysViewDep d
on d.bCreator = v1.qu and d.bName = v1.nm
where lv < 100
)
, v as
( select 'v' ty, qu, nm, gp, tCr, pa
from v1
where ty in('v', 'V')
)
, eTs (ty, qu, nm, pa, cat, att, val, std) as
(
select ty, qu, nm, pa, 'p', 'type', 'simple', ''
from ts
where partitions = 0 and segSize = 0
union all select ty, qu, nm, pa, 'p', 'type', 'partition by growth',''
from ts
where maxPartitions > 0
union all select ty, qu, nm, pa, 'p', 'type', 'universal', ''
from ts
where partitions > 0 and segSize > 0
union all select ty, qu, nm, pa, 'p', 'tables', char(nTables), '1'
from ts
where nTables <> 1
union all select ty, qu, nm, pa, 'p', 'partitions',
char(partitions), '<=512'
from ts
where partitions > 512
union all select ty, qu, nm, pa, 'o', 'bufferPool', bPool, 'bp2...'
from ts
where bPool not in('BP2', 'BP8K1', 'BP16K1', 'BP32K')
union all select ty, qu, nm, pa, 'p', 'encoding',
encoding_scheme, 'EBCDIC'
from ts
where encoding_scheme <> 'E'
union all select ty, qu, nm, pa, 'o', 'close', closeRule, 'Y'
from ts
where closeRule <> 'Y'
union all select ty, qu, nm, pa, 'oq', 'dssize', char(dsSize), '16GB'
from ts
where dssize <> 16777216 and partitions <> 0
union all select ty, qu, nm, pa, 'o', 'erase', eraseRule, 'N'
from ts
where eraseRule <> 'N'
union all select ty, qu, nm, pa, 'p', 'implicit', implicit, 'N'
from ts
where implicit <> 'N'
union all select ty, qu, nm, pa, 'o', 'lockmax',
char(lockmax), 'system'
from ts
where lockMax <> -1
union all select ty, qu, nm, pa, 'oq', 'locksize', lockRule, 'any'
from ts
where lockRule <> 'A'
union all select ty, qu, nm, pa, 'o', 'logged', log, 'Y'
from ts
where log <> 'Y'
union all select ty, qu, nm, pa, 'oq', 'maxrows', char(maxrows),'256'
from ts
where segsize not in (0, 64)
union all select ty, qu, nm, pa, 'pq', 'membercluster',
member_cluster, ' '
from ts
where member_cluster <> ' '
union all select ty, qu, nm, pa, 'o', 'segsize', char(segsize), '64'
from ts
where segsize not in (0, 64)
)
, eTP (ty, qu, nm, pa, cat, att, val, std) as
(
select ty, qu, nm, pa, 'o', 'compress', compress, 'Y'
from tp
where tp.compress <> 'Y'
union all select ty, qu, nm, pa, 'oq', 'storName',storName,'GSMS?'
from tp
where (left(gp, 2) <> 'XB' and storName <> 'GSMS')
or (left(gp, 2) = 'XB' and storName not in
('GSMS1', 'GSMS2', 'GSMS3', 'GSMS4'))
union all select ty, qu, nm, pa, 'o', 'priQty', char(pQty), '-1'
from tp
where pqty <> -1
union all select ty, qu, nm, pa, 'o', 'secQty', char(sQty), '-1'
from tp
where sqty <> -1
union all select ty, qu, nm, pa, 'oq', 'freePage',
char(freepage), '0'
from tp
where freepage <> 0
union all select ty, qu, nm, pa, 'oq', 'pctFree',
char(pctFree), '10'
from tp
where pctFree <> 10
union all select ty, qu, nm, pa, 'o', 'gbpCache',
gbpCache, 'changed'
from tp
where gbpCache <> ' '
)
, eT (ty, qu, nm, pa, cat, att, val, std) as
(
select ty, qu, nm, pa, 'n', 'creator', qu,
'oa1' || substr(gp, 3, 1) || '%'
from t
where not (left(qu, 4) = 'OA1' || substr(gp, 3, 1)
or (left(gp, 2) = 'VV' and qu = 'VDPS2'))
union all select ty, qu, nm, pa, 'n', 'name', nm,
't' || left(gp,2) || case when left(gp, 2) = 'VV' then ''
else substr(tsName,2,3) end || '%'
from t
where not (left(nm, 6) = 'T' || left(gp,2) || substr(tsName, 2, 3)
or (left(gp, 2) = 'VV' and left(nm, 3) = 'TVV'))
union all select ty, qu, nm, pa, 'p', 'tableStatus',
case when tableStatus = 'L' then 'pauxilary index oder table fehlt'
when tableStatus = 'P' then 'pprimary index fehlt'
when tableStatus = 'R' then 'pindex auf Row ID fehlt'
when tableStatus = 'U' then 'pindex auf unique key fehlt'
when tableStatus = 'V' then 'pFehler interne ViewDarstellung'
else 'ptableStatus=' || tableStatus
end, 'ok'
from t
where tablestatus <> ' '
union all select ty, qu, nm, pa, 'p', 'append', append, 'N'
from t
where append <> 'N'
union all select ty, qu, nm, pa, 'p', 'audit', auditing, 'no'
from t
where auditing <> ' '
union all select ty, qu, nm, pa, 'p', 'dataCapture',
dataCapture, 'no'
from t
where dataCapture <> ' '
union all select ty, qu, nm, pa, 'o', 'restrict on drop',
clustertype, 'Y'
from t
where clusterType <> 'Y'
union all select ty, qu, nm, pa, 'p', 'Clustering Index', 'none',
'required if any indexes'
from t
where (select max(clustering) from sysibm.sysIndexes i
where i.tbCreator = t.qu and i.tbName = t.nm)
not in ('Y', case when 1=1 then 'x' else null end)
union all select ty, qu, nm, pa, 'p', 'partitioning',
'indexed based', 'table based'
from t join sysibm.sysTablespace ts
on t.dbName = ts.dbName and t.tsName = ts.name
and ts.partitions > 0 and partKeyColNum < 1
union all select ty, qu, nm, pa, 'a', 'primary key constraint',
'none', 'adviced'
from t
where keyObid <> 0
)
, eC (ty, qu, nm, pa, cat, att, val, std) as
(
select ty, qu, nm, pa, 'p', 'colType', colType,
'only CS allowed'
from c
where coltype not in('INTEGER', 'SMALLINT', 'FLOAT', 'CHAR'
, 'VARCHAR', 'DECIMAL', 'DATE', 'TIME', 'TIMESTMP'
, 'ROWID', 'BIGINT', 'BINARY')
union all select ty, qu, nm, pa, 'p', 'on update', 'used', 'no'
from c
where default in ('E','F')
union all select ty, qu, nm, pa, 'p', 'hidden', hidden, 'N'
from c
where hidden <> 'N'
union all select ty, qu, nm, pa, 'p', 'period', period, 'no'
from c
where period <> ' '
)
, eI (ty, qu, nm, pa, cat, att, val, std) as
(
select ty, qu, nm, pa, 'n', 'creator', qu, tbCreator
from i
where creator <> tbCreator
union all select ty, qu, nm, pa, 'n', 'name', nm,
'i' || substr(tbName, 2, 5) || '%'
from i
where not (left(nm, 6) = 'I' || substr(tbName, 2, 5)
or qu = 'VDPS2')
union all select ty, qu, nm, pa, 'p', 'extensionType',
case when ix_extension_type = 'S' then 'index on expression'
else ix_extension_type end, 'no'
end
from i
where ix_extension_type <> ''
union all select ty, qu, nm, pa, 'o', 'bufferpool', bPool, 'BP1'
from i
where bPool <> 'BP1'
union all select ty, qu, nm, pa, 'o', 'close', closeRule, 'Y'
from i
where closeRule <> 'Y'
union all select ty, qu, nm, pa, 'o', 'compress', compress, 'N'
from i
where compress <> 'N'
union all select ty, qu, nm, pa, 'o', 'copy', copy, 'N'
from i
where copy <> 'N'
union all select ty, qu, nm, pa, 'o', 'erase', eraseRule, 'N'
from i
where eraseRule <> 'N'
union all select ty, qu, nm, pa, 'p', 'include columns', 'yes', 'no'
from i
where unique_count <> 0
union all select ty, qu, nm, pa, 'oq', 'padded', padded, 'N'
from i
where padded not in (' ', 'N')
union all select ty, qu, nm, pa, 'a', 'partitioned', 'no', 'yes'
from i join sysibm.sysTables t
on i.tbCreator = t.creator and i.tbName = t.name
join sysibm.sysTableSpace ts
on ts.dbName = t.dbName and t.tsName = ts.name
and ts.partitions > 0
join sysibm.sysIndexPart ip
on ip.ixCreator = i.creator and ip.ixName = i.name
and ip.partition = 1
union all select ty, qu, nm, pa,
case when piecesize between 1 and 2097152 then 'pq' else 'iq' end,
'piecesize', char(piecesize), '2GB'
from i
where piecesize <> 2097152
)
, eIP (ty, qu, nm, pa, cat, att, val, std) as
(
select ty, qu, nm, pa, 'oq', 'storName',
storName, 'GSMS?'
from ip
where ( left(gp, 2) <> 'XB' and storName <> 'GSMS')
or (left(gp, 2) = 'XB' and storName not in
('GSMS1', 'GSMS2', 'GSMS3', 'GSMS4'))
union all select ty, qu, nm, pa, 'o', 'priQty', char(pQty), '-1'
from ip
where pqty <> -1
union all select ty, qu, nm, pa, 'o', 'secQty', char(sQty), '-1'
from ip
where sqty <> -1
union all select ty, qu, nm, pa, 'oq', 'freePage', char(freePage), '0'
from ip
where freepage <> 0
union all select ty, qu, nm, pa, 'oq', 'pctFree', char(pctFree), '10'
from ip
where pctFree <> 10
union all select ty, qu, nm, pa, 'o', 'gbpCache', gbpCache, 'changed'
from ip
where gbpCache <> ' '
)
, eV (ty, qu, nm, pa, cat, att, val, std) as
(
select ty, qu, nm, pa, 'n', 'creator', qu,
'OA1' || substr(gp, 3, 1) || '%'
from v
where not( (tCr <> '' and tCr = qu)
or ((tCr = '' or left(gp, 2) = 'VV')
and left(qu, 4) = 'OA1' || substr(gp, 3, 1)))
union all select ty, qu, nm, pa, 'n', 'name',nm, 'V'||left(gp, 2)||'%'
from v
where left(nm, 3) <> 'V' || left(gp, 2)
)
, eU1 as
(
select * from eTs
union all select * from eTp
group by ty, qu, nm, cat, att, val, std, pa
union all select * from eT
union all select * from eC
union all select * from eI
union all select * from eIp
group by ty, qu, nm, cat, att, val, std, pa
union all select * from eV
)
, eU (ty, qu, nm, cat, err, pa) as
(
select ty, qu, nm, cat
, att || '='
|| case when length(val) = 0 then ''''''
when val = '' then ''' '''
else strip(val)
end
|| ', not std=' || std, pa
from eU1
)
, rt (ty, qu, nm, pa, rows, space) as
(
select ty, qu, nm, min(pa) pa
, real(sum(totalRows)) rows
, sum(ts.pgSize * real(r.nActive) * 1024) space
from ts left join sysibm.sysTablespaceStats r
on r.dbName = ts.dbName and r.name = ts.name
and r.dbid = ts.dbid and r.psid = ts.psid
group by ty, qu, nm
)
, ri (ty, qu, nm, pa, rows, space) as
(
select ty, qu, nm, min(pa)
, real(sum(totalEntries))
, sum(case when i.pgSize = 4096 then 4
else i.pgSize end
* real(r.nActive) * 1024)
from i left join sysibm.sysIndexspaceStats r
on r.creator= i.creator and r.name = i.name
and r.dbid = i.dbid and r.isobid = i.isobid
group by ty, qu, nm
)
, u1 (ty, qu, nm, cat, err, pa) as
(
select * from eU
union all select ty, qu, nm, 'ir'
, ' rows=' || fosFmtE7(rows)
|| ', space=' || fosFmtE7(space) || 'B'
, pa
from (select * from rt union all select * from ri) y
union all select ty, qu, nm, 'io', '', pa from t
union all select ty, qu, nm, 'io', '', pa from v
)
, u (ty, qu, nm, cat, err, pa) as
(
select ty, substr(qu, 1, 8), substr(nm, 1, 16), cat, err, pa
from u1
order by pa, err, cat
)
select * from u
;
insert into A540769.tSels
select 'ts', dbName, name, ''
from sysibm.systablespace
where dbName like 'NI%'
union all select 't', creator, name, ''
from sysibm.systables
where creator like 'OA1%' and name like 'TMF%' and type = 'T'
/* union all select 'ts', dbName, name, ''
from sysibm.systablespace
where dbName = 'DGDB9998' and name like 'A40%'
union all select 'v', creator, name, ''
from sysibm.systables
where creator = 'GDB9998' and name like 'WK947NU%'
and type = 'V' */
;
select count(*), ty, cat, err, min(pa), max(pa)
from A540769.vDDLCheck
where cat not like 'i%'
group by cat, err, ty
order by cat, err, ty
;
select * from A540769.vDDLCheck order by pa, err
;x;
-- select * from A540769.tSels
--;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
with ts as
(
select 'ts' ty, dbName qu, name nm
, case when gp = '' then left(dbName, 2) || substr(dbName, 7, 1)
else gp end gp
, 'ts:' || strip(dbName) || '.' || strip(name) pa
, ts.*
from sysibm.sysTablespace ts join A540769.tSels s
on s.ty = 'ts' and s.qu = ts.dbName and s.nm = ts.name
union all select 'ts' ty, ts.dbName qu, ts.name nm
, case when gp = '' then left(t.dbName,2)||substr(t.dbName, 7, 1)
else gp end gp
, 't:' || strip(t.creator) || '.' || strip(t.name)
|| 'ts:' || strip(t.dbName) || '.' || strip(t.tsname) pa
, ts.*
from sysibm.sysTables t join A540769.tSels s
on s.ty = 't' and s.qu = t.creator and s.nm = t.name
join sysibm.sysTablespace ts
on ts.dbName = t.dbname and ts.name = t.tsname
)
, tp as
(
select 'tp' ty, qu, nm, gp, pa
, tp.*
from ts join sysibm.sysTablePart tp
on ts.qu = tp.dbName and ts.nm = tp.tsName
)
, t as
(
select 't' ty, t.creator qu, t.name nm, gp
, pa || ' t:' || strip(t.creator) || '.' || strip(t.name) pa
, t.*
from ts join sysibm.sysTables t
on t.dbName = ts.qu and t.tsName = ts.nm
and t.type not in ('A', 'V')
)
, c as
(
select 'c' ty, c.tbName qu, c.name nm, gp
, pa || ' c:' || strip(c.name) pa
, c.*
from t join sysibm.sysColumns c
on qu = c.tbCreator and nm = c.tbName
)
, i as
(
select 'i' ty, ix.creator qu, ix.name nm, gp
, pa || ' i:' || strip(ix.creator) ||'.'|| strip(ix.name) pa
, ix.*
from t join sysibm.sysIndexes ix
on qu = ix.tbCreator and nm = ix.tbName
union all select 'i' ty, ix.creator qu, ix.name nm
, case when gp='' then left(ix.dbName,2)||substr(ix.dbName, 7,1)
else gp end gp
, 'i:' || strip(creator) || '.' || strip(name) pa
, ix.*
from sysibm.sysIndexes ix join A540769.tSels s
on s.ty = 'i' and ix.creator = s.qu and ix.name = s.nm
)
, ip as
(
select 'ip' ty, qu, nm, gp, pa
, ip.*
from i join sysibm.sysIndexPart ip
on ip.ixCreator = qu and ip.ixName = nm
)
, v1 (ty, qu, nm, gp, tCr, pa, lv) as
(
select ty, qu, nm, gp, creator, pa, 0
from t
union all select s.*, '', 'v:' || strip(s.qu) ||'.'|| strip(s.nm), 0
from A540769.tSels s where ty = 'v'
union all select dType, dCreator, dName, gp, tCr
, case when length(pa) < 70 then pa
else left(pa, 65) || '.....' end
|| ' v:' || strip(dCreator) || '.' || strip(dName)
, lv+1
from v1 join sysibm.sysViewDep d
on d.bCreator = v1.qu and d.bName = v1.nm
where lv < 100
)
, v as
( select 'v' ty, qu, nm, gp, tCr, pa
from v1
where ty in('v', 'V')
)
, u as
(
select ty, qu, nm, pa from ts
union all select ty, qu, nm, pa from t
union all select ty, qu, nm, pa from i
union all select ty, qu, nm, pa from v
)
, eTs (ty, qu, nm, gp, pa, err) as
(
select ty, qu, nm, gp, pa, 'psimple TableSpace'
from ts
where partitions = 0 and segSize = 0
union all select ty, qu, nm, gp, pa, 'ppartition by growth'
from ts
where maxPartitions > 0
union all select ty, qu, nm, gp, pa, 'puniversal TableSpace'
from ts
where partitions > 0 and segSize > 0
union all select ty, qu, nm, gp, pa,
'ptables=' || strip(char(nTables)) || ', <> 1'
from ts
where nTables <> 1
union all select ty, qu, nm, gp, pa,
'partitions=' || strip(char(partitions)) || ', > 512'
from ts
where partitions > 512
union all select ty, qu, nm, gp, pa, 'obufferPool=' || bPool
from ts
where bPool not in('BP2', 'BP8K1', 'BP16K1', 'BP32K')
union all select ty, qu, nm, gp, pa,
'pEncoding=' || encoding_scheme || ', not EBCDIC'
from ts
where encoding_scheme <> 'E'
union all select ty, qu, nm, gp, pa,
'oclose=' || closeRule || ', not Y'
from ts
where closeRule <> 'Y'
union all select ty, qu, nm, gp, pa,
'odssize=' || strip(char(dsSize)) || ' tables, not 16GB'
from ts
where nTables <> 1
union all select ty, qu, nm, gp, pa, 'oerase=' || eraseRule
from ts
where eraseRule <> 'N'
union all select ty, qu, nm, gp, pa, 'pimplicit=' || implicit
from ts
where implicit <> 'N'
union all select ty, qu, nm, gp, pa,
'olockmax=' || strip(char(lockmax)) || ', not system'
from ts
where lockMax <> -1
union all select ty, qu, nm, gp, pa,
'olockSize=' || strip(char(lockRule)) || ', not any, page'
from ts
where lockRule not in ('A', 'P', 'L')
union all select ty, qu, nm, gp, pa, 'onot Logged'
from ts
where log <> 'Y'
union all select ty, qu, nm, gp, pa,
'omaxrows=' || strip(char(maxrows)) || ', not 256'
from ts
where segsize not in (0, 64)
union all select ty, qu, nm, gp, pa, 'pmembercluster'
from ts
where member_cluster <> ' '
union all select ty, qu, nm, gp, pa,
'osegsize=' || strip(char(segsize)) || ', not 64'
from ts
where segsize not in (0, 64)
)
, eTP (ty, qu, nm, gp, pa, err) as
(
select ty, qu, nm, gp, pa, 'ocompress=' || compress
from tp
where tp.compress <> 'Y'
union all select ty, qu, nm, gp, pa, 'ostorName not GSMS?'
from tp
where (left(gp, 2) <> 'XB' and storName <> 'GSMS')
or (left(gp, 2) = 'XB' and storName not in
('GSMS1', 'GSMS2', 'GSMS3', 'GSMS4'))
union all select ty, qu, nm, gp, pa, 'opriQty <> -1'
from tp
where pqty <> -1
union all select ty, qu, nm, gp, pa, 'osecQty <> -1'
from tp
where sqty <> -1
union all select ty, qu, nm, gp, pa,
'ofreepage=' || strip(char(freepage)) || ', not 0'
from tp
where freepage <> 0
union all select ty, qu, nm, gp, pa,
'opctFree=' || strip(char(pctFree)) || ', > 20'
from tp
where pctFree > 20
union all select ty, qu, nm, gp, pa,
'ogbpCache=' || gbpCache || ', not changed'
from tp
where gbpCache <> ' '
)
, eT (ty, qu, nm, gp, pa, err) as
(
select ty, qu, nm, gp, pa,
'ncreator not like oa1' || substr(gp, 3, 1) || '%'
from t
where not (left(qu, 4) = 'OA1' || substr(gp, 3, 1)
or (left(gp, 2) = 'VV' and qu = 'VDPS2'))
union all select ty, qu, nm, gp, pa
, 'nname not like t' || left(gp,2)
|| case when left(gp, 2) = 'VV' then ''
else substr(tsName,2,3) end || '%'
from t
where not (left(nm, 6) = 'T' || left(gp,2) || substr(tsName, 2, 3)
or (left(gp, 2) = 'VV' and left(nm, 3) = 'TVV'))
union all select ty, qu, nm, gp, pa,
case when tableStatus = 'L' then 'pauxilary index oder table fehlt'
when tableStatus = 'P' then 'pprimary index fehlt'
when tableStatus = 'R' then 'pindex auf Row ID fehlt'
when tableStatus = 'U' then 'pindex auf unique key fehlt'
when tableStatus = 'V' then 'pFehler interne ViewDarstellung'
else 'ptableStatus=' || tableStatus
end
from t
where tablestatus <> ' '
union all select ty, qu, nm, gp, pa, 'pappend=' || append
from t
where append <> 'N'
union all select ty, qu, nm, gp, pa, 'paudit=' || auditing
from t
where auditing <> ' '
union all select ty, qu, nm, gp, pa, 'pdataCapture' || dataCapture
from t
where dataCapture <> ' '
union all select ty, qu, nm, gp, pa, 'odrop not restricted'
from t
where clusterType <> 'Y'
union all select ty, qu, nm, gp, pa, 'pno Clustering Index'
from t
where (select max(clustering) from sysibm.sysIndexes i
where i.tbCreator = t.qu and i.tbName = t.nm)
not in ('Y', case when 1=1 then 'x' else null end)
union all select ty, qu, nm, gp, pa, 'pindexed based partitioning'
from t join sysibm.sysTablespace ts
on t.dbName = ts.dbName and t.tsName = ts.name
and ts.partitions > 0 and partKeyColNum < 1
union all select ty, qu, nm, gp, pa, 'ano primary key constraint'
from t
where keyObid <> 0
)
, eC (ty, qu, nm, gp, pa, err) as
(
select ty, qu, nm, gp, pa, 'pcolType=' || colType
from c
where coltype not in('INTEGER', 'SMALLINT', 'FLOAT', 'CHAR'
, 'VARCHAR', 'DECIMAL', 'DATE', 'TIME', 'TIMESTMP'
, 'ROWID', 'BIGINT', 'BINARY')
union all select ty, qu, nm, gp, pa, 'pon update'
from c
where default in ('E','F')
union all select ty, qu, nm, gp, pa, 'phidden=' || hidden
from c
where hidden <> 'N'
union all select ty, qu, nm, gp, pa, 'pperiod=' || period
from c
where period <> ' '
)
, eI (ty, qu, nm, gp, pa, err) as
(
select ty, qu, nm, gp, pa,
'ncreator <> tbCreator=' || tbCreator
from i
where creator <> tbCreator
union all select ty, qu, nm, gp, pa,
'nname not like i' || substr(tbName, 2, 5) || '%'
from i
where not (left(nm, 6) = 'I' || substr(tbName, 2, 5)
or qu = 'VDPS2')
union all select ty, qu, nm, gp, pa,
case when ix_extension_type = 'S' then 'pindex on expression'
else 'ix_extension_type=' || ix_extension_type
end
from i
where ix_extension_type <> ''
union all select ty, qu, nm, gp, pa, 'obufferpool=' || bPool
from i
where bPool <> 'BP1'
union all select ty, qu, nm, gp, pa, 'oclose=' || closeRule
from i
where closeRule <> 'Y'
union all select ty, qu, nm, gp, pa, 'ocompress=' || compress
from i
where compress <> 'N'
union all select ty, qu, nm, gp, pa, 'ocopy=' || copy
from i
where copy <> 'N'
union all select ty, qu, nm, gp, pa, 'oerase=' || eraseRule
from i
where eraseRule <> 'N'
union all select ty, qu, nm, gp, pa, 'include columns'
from i
where unique_count <> 0
union all select ty, qu, nm, gp, pa, 'opadded=' || padded
from i
where padded not in (' ', 'N')
union all select ty, qu, nm, gp, pa, 'anot partitioned'
from i join sysibm.sysTables t
on i.tbCreator = t.creator and i.tbName = t.name
join sysibm.sysTableSpace ts
on ts.dbName = t.dbName and t.tsName = ts.name
and ts.partitions > 0
join sysibm.sysIndexPart ip
on ip.ixCreator = i.creator and ip.ixName = i.name
and ip.partition = 1
union all select ty, qu, nm, gp, pa
, 'ppiecesize=' || strip(char(piecesize))
from i
where piecesize <> 0 and piecesize < 2097152
)
, eIP (ty, qu, nm, gp, pa, err) as
(
select ty, qu, nm, gp, pa, 'ostorName not GSMS?'
from ip
where ( left(gp, 2) <> 'XB' and storName <> 'GSMS')
or (left(gp, 2) = 'XB' and storName not in
('GSMS1', 'GSMS2', 'GSMS3', 'GSMS4'))
union all select ty, qu, nm, gp, pa, 'opriQty <> -1'
from ip
where pqty <> -1
union all select ty, qu, nm, gp, pa, 'osecQty <> -1'
from ip
where sqty <> -1
union all select ty, qu, nm, gp, pa,
'ofreepage=' || strip(char(freepage)) || ', not 0'
from ip
where freepage <> 0
union all select ty, qu, nm, gp, pa,
'opctFree=' || strip(char(pctFree)) || ', > 20'
from ip
where pctFree > 20
union all select ty, qu, nm, gp, pa,
'ogbpCache=' || gbpCache || ', not changed'
from ip
where gbpCache <> ' '
)
, eV (ty, qu, nm, gp, pa, err) as
(
select ty, qu, nm, gp, pa, 'ncreator'
from v
where not( (tCr <> '' and tCr = qu)
or ((tCr = '' or left(gp, 2) = 'VV')
and left(qu, 4) = 'OA1' || substr(gp, 3, 1)))
union all select ty, qu, nm, gp, pa, 'nname'
from v
where left(nm, 3) <> 'V' || left(gp, 2)
)
, eU as
(
select * from eTs
union all select * from eTp
group by ty, qu, nm, gp, err, pa
union all select * from eT
union all select * from eC
union all select * from eI
union all select * from eIp
group by ty, qu, nm, gp, err, pa
union all select * from eV
)
, r as
(
select ty, substr(qu, 1, 12) qu, substr(nm, 1, 16) nm,
substr(err, 1, 1) cat, substr(gp, 1, 3) gp,
substr(err, 2, 40) err, pa
from eU
)
-- select * from r order by pa ;x;
select count(*), ty, cat, min(err), max(err)
, min(pa), max(pa)
from r
group by ty, cat, left(err, 10)
order by 3, 2, 4
;
select * from plan_view1
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by --collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
rollback
;x;
-- where db = 'DGDB9998' -- and ts like 'A97%'
order by pa, err
;
select ty, substr(qu, 1, 12) qu, substr(nm, 1, 16) nm,
substr(err, 1, 1) cat, substr(err, 2, 40) err, pa
from eU
where db like 'MF%' -- and ts like 'A97%'
-- where db = 'DGDB9998' -- and ts like 'A97%'
order by pa, err
;
select * from v
where db like 'VV24%' and ts like 'VDPS168%'
order by qu, nm, pa
;x;
}¢--- A540769.WK.SQL(DDLCH9) cre=2013-05-23 mod=2013-05-23-13.16.39 A540769 ----
set current sqlid = 'S100447';
set current path oa1t;
-- drop table A540769.tSels;
create global temporary table A540769.tSels
(ty char(3), qu varchar(128), nm varchar(128), gp char(3))
;
insert into A540769.tSels
select 'ts', dbName, name, ''
from sysibm.systablespace
where dbName like 'NI%'
/*?? select 'ts', dbName, name, ''
from sysibm.systablespace
where dbName = 'DGDB9998' and name like 'A40%'
union all select 't', creator, name, ''
from sysibm.systables
where creator = 'OA1A' and name like 'TMF150%' and type = 'T'
union all select 'v', creator, name, ''
from sysibm.systables
where creator = 'GDB9998' and name like 'WK947NU%'
and type = 'V'
??*/
;
with ts as
(
select 'ts' ty, dbName qu, name nm
, 'ts:' || strip(dbName) || '.' || strip(name) pa
, ts.*
from sysibm.sysTablespace ts join A540769.tSels s
on s.ty = 'ts' and s.qu = ts.dbName and s.nm = ts.name
union all select 'ts' ty, ts.dbName qu, ts.name nm
, 't:' || strip(t.creator) || '.' || strip(t.name)
|| 'ts:' || strip(t.dbName) || '.' || strip(t.tsname) pa
, ts.*
from sysibm.sysTables t join A540769.tSels s
on s.ty = 't' and s.qu = t.creator and s.nm = t.name
join sysibm.sysTablespace ts
on ts.dbName = t.dbname and ts.name = t.tsname
)
, rt as
(
select ty, qu, nm, min(pa) pa
, real(sum(totalRows)) rows
, sum(ts.pgSize * real(r.nActive)) spaceKB
from ts left join sysibm.sysTablespaceStats r
on r.dbName = ts.dbName and r.name = ts.name
and r.dbid = ts.dbid and r.psid = ts.psid
group by ty, qu, nm
)
, t as
(
select 't' ty, t.creator qu, t.name nm
, pa || ' t:' || strip(t.creator) || '.' || strip(t.name) pa
, t.*
from ts join sysibm.sysTables t
on t.dbName = ts.qu and t.tsName = ts.nm
and t.type not in ('A', 'V')
)
, i as
(
select 'i' ty, ix.creator qu, ix.name nm
, pa || ' i:' || strip(ix.creator) ||'.'|| strip(ix.name) pa
, ix.*
from t join sysibm.sysIndexes ix
on qu = ix.tbCreator and nm = ix.tbName
union all select 'i' ty, ix.creator qu, ix.name nm
, 'i:' || strip(creator) || '.' || strip(name) pa
, ix.*
from sysibm.sysIndexes ix join A540769.tSels s
on s.ty = 'i' and ix.creator = s.qu and ix.name = s.nm
)
, it as
(
select ty, qu, nm, min(pa) pa
, real(sum(totalEntries)) rows
, sum(case when i.pgSize = 4096 then 4
else i.pgSize end
* real(r.nActive)) spaceKB
from i left join sysibm.sysIndexspaceStats r
on r.creator= i.creator and r.name = i.name
and r.dbid = i.dbid and r.isobid = i.isobid
group by ty, qu, nm
)
, v1 (ty, qu, nm, gp, tCr, pa, lv) as
(
select ty, qu, nm, gp, creator, pa, 0
from t
union all select s.*, '', 'v:' || strip(s.qu) ||'.'|| strip(s.nm), 0
from A540769.tSels s where ty = 'v'
union all select dType, dCreator, dName, gp, tCr
, case when length(pa) < 70 then pa
else left(pa, 65) || '.....' end
|| ' v:' || strip(dCreator) || '.' || strip(dName)
, lv+1
from v1 join sysibm.sysViewDep d
on d.bCreator = v1.qu and d.bName = v1.nm
where lv < 100
)
, v as
( select 'v' ty, qu, nm, gp, tCr, pa
from v1
where ty in('v', 'V')
)
, u as
(
select ty, qu, nm, rows, spaceKb, pa from rt
union all select ty, qu, nm, rows, spaceKb, pa from it
-- union all select ty, qu, nm, pa from t
)
select ty, substr(qu, 1, 12) qu, substr(nm, 1, 16) nm
, fosFmtE7(rows) rows
, fosFmtE7(spaceKB) spaceKB
, pa
from U
order by pa, ty
;x;
-- select * from r order by pa ;x;
select count(*), ty, cat, min(err), max(err)
, min(pa), max(pa)
from r
group by ty, cat, left(err, 10)
order by 3, 2, 4
;
select * from plan_view1
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by --collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
rollback
;x;
-- where db = 'DGDB9998' -- and ts like 'A97%'
order by pa, err
;
select ty, substr(qu, 1, 12) qu, substr(nm, 1, 16) nm,
substr(err, 1, 1) cat, substr(err, 2, 40) err, pa
from eU
where db like 'MF%' -- and ts like 'A97%'
-- where db = 'DGDB9998' -- and ts like 'A97%'
order by pa, err
;
select * from v
where db like 'VV24%' and ts like 'VDPS168%'
order by qu, nm, pa
;x;
}¢--- A540769.WK.SQL(DEADLOCK) cre=2010-03-30 mod=2010-12-09-11.08.29 A540769 ---
select * 00001009
from oa1a.tadm60a1 00002009
where timestamp > '2010-12-01-00.00.00' 00003009
and name like '%FI04A1T%' 00004009
;; 00005009
select date(timestamp), count(*) "total dead/timeout" 00010006
, sum(case when reason_code = '00C900BA' then 1 else 0 end) 00011004
"drainTimeout" 00012001
, sum(case when reason_code = '00C9008E' then 1 else 0 end) 00013004
"lockTimeout" 00014003
, sum(case when reason_code = '00C90088' then 1 else 0 end) 00015005
"deadlock" 00016005
from oa1p.tadm60a1 00020000
where timestamp > '2009-01-01-00.00.00' 00030008
and ssid like 'DOF%' 00040000
group by date(timestamp) 00050006
order by date(timestamp) desc 00060007
with ur 00070000
}¢--- A540769.WK.SQL(DEC) cre=2008-10-21 mod=2008-10-21-18.04.30 F540769 -------
select decimal(123,10,2) * 123 / 100 from sysibm.sysDummy1
;
x
select 1 from sysibm.sysDummy1
where dec(1, 15, 5) / dec(1, 15, 5) > 0
;
select 1 from sysibm.sysDummy1
where dec(1, 15, 8) / dec(1, 15, 5) > 0
;
select 1 from sysibm.sysDummy1
where dec(1, 15, 2) / dec(1, 15, 5) > 0
;
select dec(1, 15, 5) / dec(1, 15, 5)
from sysibm.sysdummy1
;
select dec(1, 15, 8) / dec(1, 15, 5)
from sysibm.sysdummy1
;
select dec(1, 15, 2) / dec(1, 15, 5)
from sysibm.sysdummy1
;
}¢--- A540769.WK.SQL(DECIA) cre=2011-03-25 mod=2011-03-25-16.25.33 A540769 -----
call sqlConnect dvtb
GET_TAB_NAME = "SELECT 'AA' , 'BB' ",
"FROM BUA.TXBC071 " ,
"INNER JOIN SYSIBM.SYSTABLES A ",
"ON EAOWNER = A.CREATOR AND ",
"SUBSTR(A.NAME,1,5) = 'XB' || ENSTORAR ",
"WHERE EAOF IN ('INFO.WW.CS', 'INFO.WW.NAB', ",
"'INFO.WW.SKA', 'INFO.WW.CSFB', 'FP.TRN.LG', ",
"'FP.FXA','FP.LED', 'TREC.EDIFA.ORIG', ",
"'CIMA.BWTAG', 'DTA.LSV.INFRA', 'PSFI.TRN', ",
"'CL.SGK.MIGR' ,'EXTERNAL.STAFF' ,'VERF.DOKU') ",
"AND ECSTHT = 1 "
call sqlSel GET_TAB_NAME
}¢--- A540769.WK.SQL(DGMK) cre=2015-06-09 mod=2015-06-09-11.32.45 A540769 ------
set current sqlid = 'S100447';
drop index OA1P.IDG122A2;
-- I - OA1P.TDG210A0 OA1P.IDG210A1
-- I - OA1P.TDG210A0 OA1P.IDG210A2
-- D - OA1P.TDG210A0 OA1P.IDG210A1
rename index OA1P.IDG210A1 to IDG210A2;
CREATE INDEX OA1P.IDG210A1 ON OA1P.TDG210A0
( DG21001J ASC
, DG21001I ASC
, DG21001B ASC
, DG21001S ASC
, DG21001P ASC
, DG21001G ASC
, DG21001L ASC
, DG21002 ASC
, DG21003 ASC
)
DEFINE YES
USING STOGROUP GSMS
ERASE NO
FREEPAGE 0
PCTFREE 10
BUFFERPOOL BP1
CLOSE YES
DEFER YES
PIECESIZE 2G
;
-- I - OA1P.TDG310A0 OA1P.IDG310A3
-- I - OA1P.TDG310A0 OA1P.IDG310A4
-- D - OA1P.TDG310A0 OA1P.IDG310A3
rename index OA1P.IDG310A3 to IDG310A4;
CREATE INDEX OA1P.IDG310A3 ON OA1P.TDG310A0
( DG31001Y ASC
, DG31027 ASC
)
DEFINE NO
USING STOGROUP GSMS
ERASE NO
FREEPAGE 0
PCTFREE 10
BUFFERPOOL BP1
CLOSE YES
DEFER YES
PIECESIZE 2G
;
rollback
;
}¢--- A540769.WK.SQL(DGT) cre=2011-01-24 mod=2011-01-24-17.25.04 A540769 -------
declare global temporary table session.tDGT as 00001006
( select * from A540769.tPer08 00002006
) with no data 00003006
on commit delete rows 00004006
; 00005006
select current timestamp from sysibm.sysdummy1 00006006
; 00007006
insert into session.tDGT 00008006
select * from A540769.tPer08 fetch first 10 rows only 00009007
; 00010006
select current timestamp from sysibm.sysdummy1 00130001
; 00131003
insert into session.tDGT 00132007
select * from A540769.tPer08 fetch first 100 rows only 00133007
; 00134007
select current timestamp from sysibm.sysdummy1 00135007
; 00136007
insert into session.tDGT 00137007
select * from A540769.tPer08 fetch first 1000 rows only 00138007
; 00139007
select current timestamp from sysibm.sysdummy1 00139107
; 00139207
select count(*) from session.tDgt 00140001
; 00141003
select current timestamp from sysibm.sysdummy1 00150001
}¢--- A540769.WK.SQL(DG0121) cre=2012-02-03 mod=2012-02-03-10.58.14 A540769 ----
select DG121001, count(*)
from oa1t.tDG121A1
where DG121001 between '202' and '210'
group by DG121001
with ur
}¢--- A540769.WK.SQL(DG932) cre=2014-12-23 mod=2014-12-23-12.19.51 A540769 -----
//A540769V JOB (CP00,KE50), 00010000
// MSGCLASS=T,TIME=1440,SCHENV=DB2, 00020000
// NOTIFY=A540769 00030000
//*MAIN CLASS=LOG 00040000
//S01 EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99 00050000
//SYSTSIN DD * 00060000
DSN SYSTEM(DBOF) 00070000
RUN PROGRAM(DSNTEP2) PARMS('ALIGN(LHS)') PLAN(DSNTEP2) 00080000
//SYSTSPRT DD SYSOUT=* 00090000
//SYSPRINT DD SYSOUT=* 00100000
//SYSUDUMP DD SYSOUT=* 00110000
//SYSTERM DD DUMMY 00120000
//SYSI2 DD * 00130000
SET CURRENT SQLID = 'S100447'; 00140000
00150000
00160000
CREATE INDEX OA1P.IDG932A2 00170000
ON OA1P.TDG932A1 00180000
(DG932007 ASC 00190000
,DG932005 ASC 00200000
) 00210000
PARTITIONED 00220000
DEFINE YES 00230000
COMPRESS NO 00240000
BUFFERPOOL BP1 00250000
CLOSE YES 00260000
DEFER YES 00270000
COPY NO 00280000
USING STOGROUP GSMS 00290000
PRIQTY -1 00300000
SECQTY -1 00310000
; 00320000
COMMIT 00330000
}¢--- A540769.WK.SQL(DIRLGRN) cre=2014-10-13 mod=2016-09-23-09.52.58 A540769 ---
set current path oa1p;
select hex(LGRDBID) , fosC2I2(LGRDBID) dbid
, hex(LGRpsID) , fosC2I2(LGRpsID) psid
, lgrPart
, lgrUcDT
, lgrUcTM
, hex(lgrMemb) member
, timestamp(translate('20yz-mn-de-', LGRUCDT, 'mndeyz')
|| translate('hi.mn.st.uv', lgructm, 'himnstuv'))
, timestamp(substr(LGRSLRSN, 2, 8)) "startLrsn"
, timestamp(substr(LGRELRSN, 2, 8)) "endLrsn"
, hex(LGRSLRSN) sLrsnHex
, hex(LGRELRSN) eLrsnHex
-- , fosC2I8(LGRSRBA)
-- , fosC2I8(LGRSPBA)
-- , fosC2I8(LGRSPBA) - fosC2I8(LGRSRBA) rbaDelta
from sysibm.sysLgRnX
where lgrelrsn = x'00000000000000000000'
order by "startLrsn"
;x;
(select fqzI2c2(dbid), fqzI2C2(psid)
from sysibm.sysTablespace
where dbName = 'QZ01A1P' and name like 'A006A'
)
order by lgrslrsn desc
fetch first 100 rows only
}¢--- A540769.WK.SQL(DIRLGRNG) cre=2015-09-10 mod=2015-09-10-12.40.10 A540769 ---
set current path oa1p;
with g as
(
select fosC2I2(lgrDBID)dbId, fosC2i2(lgrPSID) psid, lgrPart pa
, max(timestamp(translate('20yz-mn-de-', LGRUCDT, 'mndeyz')
|| translate('hi.mn.st.uv', lgructm, 'himnstuv'))) beg
from sysibm.sysLgRnX
group by lgrDBID, lgrPSID, lgrPart
)
, j as
(
select g.*, dbName db, name ts
from g
full outer join sysIbm.sysTableSpace s
on g.dbId = s.dbid and g.psid = s.psid
)
select count(*), min(db), max(beg)
, avg(float(days(beg))), avg(float(days(current timestamp)))
from j
group by case when dbid is null then 0 else 1 end
, case when db is null then 0 else 1 end
; x
select hex(LGRDBID) , fosC2I2(LGRDBID) dbid
, hex(LGRpsID) , fosC2I2(LGRpsID) psid
, lgrPart
, lgrUcDT
, lgrUcTM
, hex(lgrMemb) member
, timestamp(translate('20yz-mn-de-', LGRUCDT, 'mndeyz')
|| translate('hi.mn.st.uv', lgructm, 'himnstuv'))
, timestamp(substr(LGRSLRSN, 2, 8)) "startLrsn"
, timestamp(substr(LGRELRSN, 2, 8)) "endLrsn"
-- , fosC2I8(LGRSRBA)
-- , fosC2I8(LGRSPBA)
-- , fosC2I8(LGRSPBA) - fosC2I8(LGRSRBA) rbaDelta
from sysibm.sysLgRnX
where (lgrDbId, lgrPsId) in
(select fqzI2c2(dbid), fqzI2C2(psid)
from sysibm.sysTablespace
where dbName = 'QZ01A1P' and name like 'A006A'
)
order by lgrslrsn desc
fetch first 100 rows only
}¢--- A540769.WK.SQL(DIRLGRNO) cre=2015-10-09 mod=2015-10-09-16.41.59 A540769 ---
-- logRange orphans
WITH G AS
(
SELECT OA1P.FQZC2I2(LGRDBID)DBID
, OA1P.FQZC2I2(LGRPSID) PSID
, count(distinct LGRPART) PArts
, COUNT(*) CNT
, MAX(TIMESTAMP(TRANSLATE('20YZ-MN-DE-', LGRUCDT, 'MNDEYZ')
|| TRANSLATE('HI.MN.ST.UV', LGRUCTM, 'HIMNSTUV'))) START
, MAX(TIMESTAMP(SUBSTR(LGRSLRSN, 2, 8))) SLRSN
FROM SYSIBM.SYSLGRNX
GROUP BY LGRDBID, LGRPSID
)
SELECT substr(value(s.DBNAME, d.name), 1, 8) DB
, substr(s.NAME, 1, 8) TS
, g.dbid, g.psid
, Parts, cnt
, VALUE(START, '1111-11-11-11.11.11') START
, VALUE(SLRSN, '1111-11-11-11.11.11') SLRSN
FROM G
left JOIN SYSIBM.SYSTABLESPACE S
ON G.DBID = S.DBID AND G.PSID = S.PSID
left JOIN SYSIBM.SYSDatabase d
ON G.DBID = d.DBID AND s.dbname is null
order by value(s.dbName, d.name, ' ' || g.dbid)
, value(s.name, ' ' || g.psid)
WITH UR
}¢--- A540769.WK.SQL(DIRLGRNV) cre=2016-09-13 mod=2016-09-14-14.35.10 A540769 ---
with g as
(
select lgrdbid, lgrpsid, lgrPart
, oa1p.fqzC2I2(LGRPSID) psID
, LGRPART PA
, count(*) cnt
, sum(case when lgrelrsn = x'00000000000000000000'
then 1 else 0 end) cntOpen
, max(translate('20yz-mn-de-', lgrucdt, 'mndeyz')
|| translate('hi.mn.st.uv', lgructm, 'himnstuv')) modMax
, min(lgrslrsn) sLrsnMin
, max(lgrslrsn) sLrsnMax
, max(case when lgrelrsn = x'00000000000000000000'
then lgrslrsn
else x'00000000000000000000' end) sOpenMax
, max(lgrElrsn) eLrsnMax
from sysibm.syslgrnx l
group by lgrdbid, lgrpsid, lgrPart
)
, h as
(
select oa1p.fqzC2I2(LGRDBID) dbID
, oa1p.fqzC2I2(LGRPSID) psID
, LGRPART PA
, cnt, cntOpen
, timestamp(modMax) modMax
, timestamp(substr(slrsnMin, 2, 8)) + 7174 seconds slrsnMin
, timestamp(substr(slrsnMax, 2, 8)) + 7174 seconds slrsnMax
, timestamp(substr(sOpenMax, 2, 8)) + 7174 seconds sOpenMax
, timestamp(substr(eLrsnMax, 2, 8)) + 7174 seconds elrsnMax
from g
)
, l as
(
select h.*
, case when cntOpen = 0 then eLrsnMax
else current timestamp end lgrLast
from h
)
select s.dbName, s.name, p.partition, l.*
, (days(lgrLast) - days(lastDataChange)) * 86400
+ midnight_seconds(lgrLast) - midnight_seconds(lastDataChange)
+ (microsecond(lgrLast) - microsecond(lastDataChange))
/ float(1e6) diff
, r.lastDataChange
, r.*
from sysibm.sysTableSpace s
join sysibm.sysTablePart p
on s.dbName = p.dbName and s.name = p.tsName
left join l
on l.dbid = s.dbid and l.psid = s.psid and l.pa = p.partition
left join sysibm.sysTableSpaceStats r
on s.dbid = r.dbid and s.psId = r.psId
and p.partition = r.partition
where s.dbName like '%'
and lastDataChange > '2016-04-01-00.00.00'
and sLrsnMax is not null
order by diff desc -- 1, 2, 3
fetch first 1000 rows only
with ur
;x;
;x;
with r as
(
SELECT l.*
,row_number() over(partition by lgrdbid, lgrpsid, lgrpart
order by lgrSlrsn desc) rSt
,row_number() over(partition by lgrdbid, lgrpsid, lgrpart
order by lgrElrsn desc) rEn
from sysibm.syslgrnx l
)
, s as
(
select oa1p.fqzC2I2(LGRDBID) dbID
, oa1p.fqzC2I2(LGRPSID) psID
, LGRPART PA
, TRANSLATE('20YZ-MN-DE-', LGRUCDT, 'MNDEYZ')
|| TRANSLATE('HI.MN.ST.UV', LGRUCTM, 'HIMNSTUV') mod
, timestamp(substr(lgrslrsn, 2, 8)) slrsn
, timestamp(substr(lgrElrsn, 2, 8)) elrsn
, rSt, rEn, hex(lgrslrsn) lgrslrsn
, hex(lgrElrsn) lgrElrsn
, case when lgrelrsn = x'00000000000000000000'
then 'zero' else 'notZ' end eZero
, case when lgrelrsn = ''
then 'empt' else 'notE' end eEmpty
from r
where rSt = 1 or rEn = 1
)
select * from s
where rst <> ren
order by dbId, psId, pa
;x;
select s.dbid, s.psid, pa mod, sLrsn, eLrsn, lastDataChange
from s
left join sysibm.sysTableSpaceStats r
on s.dbid = r.dbid and s.psId = r.psId and s.pa = r.partition
order by dbId, psId, pa
;x;
(
SELECT LGRDBID, lgrpsid
, LGRPART PA
, COUNT(*) CNT
, MAX(TRANSLATE('20YZ-MN-DE-', LGRUCDT, 'MNDEYZ')
|| TRANSLATE('HI.MN.ST.UV', LGRUCTM, 'HIMNSTUV')) lgrUcTm
, MAX(LGRSLRSN) lgrSLrsn
FROM SYSIBM.SYSLGRNX
GROUP BY LGRDBID, LGRPSID, LGRPART
)
, h as
(
select oa1p.fqzC2I2(LGRDBID)dbID
, oa1p.fqzC2I2(LGRPSID) psID
, pa
, cnt
, timestamp(lgrUcTm) start
, TIMESTAMP(SUBSTR(lgrSLrsn, 2, 8)) sLrsn
from g
)
SELECT DBNAME DB, NAME TS, PA
, VALUE(START, '1111-11-11-11.11.11') START
, VALUE(SLRSN, '1111-11-11-11.11.11') SLRSN
, CNT
FROM h
JOIN SYSIBM.SYSTABLESPACE S
ON h.dbID = S.dbID AND h.psID = s.psID
WITH UR
;x;
with w as
(
select timestamp, icType
, ( timestamp(substr(start_rba, 2, 8))
+ current time zone) - 26 seconds start
from sysibm.sysCopy
where timestamp > '2016-04-01-00.00.00'
)
, d as
(
select icType
, (days(timestamp) - days(start)) * 86400
+ midnight_seconds(timestamp) - midnight_seconds(start)
+ (microsecond(timestamp) - microsecond(start)) / float(1e6)
dSta
from w
)
select count(*), icType, min(dSta) staMin, max(dSta) staMax
from d
group by ictype
with ur
;x;
select current timestamp, current time zone
, current timestamp - current time zone
from sysibm.sysDummy1
;
select current timestamp, current time zone
, current timestamp - current time zone
, count(*)
, max(translate('20yz-mn-de-', lgrucdt, 'mndeyz')
|| translate('hi.mn.st.uv', lgructm, 'himnstuv')) modMax
, timestamp(substr(max(lgrslrsn), 2, 8)) slrsn
, timestamp(substr(max(lgrElrsn), 2, 8)) elrsn
from sysibm.syslgrnx l
with ur
;
select current timestamp, current time zone
, current timestamp - current time zone
from sysibm.sysDummy1
;
;x;
select current timestamp, count(*)
, max(updatestatstime), max(lastDataChange)
from sysibm.sysTableSpaceStats
;x;
}¢--- A540769.WK.SQL(DIV) cre=2008-06-24 mod=2008-06-24-11.08.06 F540769 -------
SELECT INT(4) / INT(4), INT(5) / INT(4), INT(6) / INT(4),
INT(7) / INT(4), INT(8) / INT(4)
FROM Sysibm.sysDummy1
}¢--- A540769.WK.SQL(DIVCAST) cre=2016-01-15 mod=2016-02-10-10.30.49 A540769 ---
-- cast between integer and character
-- convert chars to the corresponding integer value
--
-- OA1P.fqzCastSmall2C(15 ) --> x'000f'
-- OA1P.fqzCastSmall2C(-1 ) --> x'ffff'
-- OA1P.fqzCastI2C (258) --> x'00000102'
-- OA1P.fqzCastI2C (-2 ) --> x'fffffffe'
-- OA1P.fqzCastBig2C (527) --> x'000000000000020f'
-- OA1P.fqzCastBig2C (-4 ) --> x'fffffffffffffffc'
-- OA1P.fqzCastC2Small(x'0c') --> 12
-- OA1P.fqzCastC2Small(x'ff') --> 255
-- OA1P.fqzCastC2Small(x'0100') --> 256
-- OA1P.fqzCastC2Small(x'ffff') --> -1
-- OA1P.fqzCastC2Small(x'8000') --> -32768
-- OA1P.fqzCastC2I (x'8000') --> 32768
-- OA1P.fqzCastC2I (x'7fffffff') --> 2147483647
-- OA1P.fqzCastC2I (x'ffffffff') --> -1
-- OA1P.fqzCastC2Big (x'ffffffff') --> 4294967295
-- OA1P.fqzCastC2Big (x'0c') --> 12
-- OA1P.fqzCastC2Big (x'ffffffffffffffff') --> -1
--
--14. 1.16 W. Keller rename auf ...Cast... und korrekte Vorzeichen
-- 8. 1.10 W. Keller neu
--
set current sqlid = 'S100447';
drop function OA1P.c2d8;
drop function OA1P.c2d4;
drop function OA1P.c2d2;
drop function OA1P.c2d1;
drop function OA1P.fosC2I8;
drop function OA1P.fosC2I4;
drop function OA1P.fosC2I2;
drop function OA1P.fosC2I1;
drop function OA1P.fqzCastBig2C(bigint);
drop function OA1P.fqzCastBig2C(int, bigint);
drop function OA1P.fqzCastI2C(int);
drop function OA1P.fqzCastI2C(smallInt, int);
drop function OA1P.fqzCastSmall2C(smallInt);
drop function OA1P.fqzCastc2Big(varchar(8));
drop function OA1P.fqzCastc2i(varchar(4));
drop function OA1P.fqzCastc2small(varchar(2));
drop function OA1P.fqzCastc1i(char(1));
create function OA1P.fqzCastC1I(c char(1)) returns smallInt
deterministic no external action contains sql
return posStr(x'000102030405060708090A0B0C0D0E0F'
|| x'101112131415161718191A1B1C1D1E1F'
|| x'202122232425262728292A2B2C2D2E2F'
|| x'303132333435363738393A3B3C3D3E3F'
|| x'404142434445464748494A4B4C4D4E4F'
|| x'505152535455565758595A5B5C5D5E5F'
|| x'606162636465666768696A6B6C6D6E6F'
|| x'707172737475767778797A7B7C7D7E7F'
|| x'808182838485868788898A8B8C8D8E8F'
|| x'909192939495969798999A9B9C9D9E9F'
|| x'A0A1A2A3A4A5A6A7A8A9AAABACADAEAF'
|| x'B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF'
|| x'C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF'
|| x'D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF'
|| x'E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF'
|| x'F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF', c) - 1
;
create function OA1P.fqzCastC2Small(c varChar(2) for bit data)
returns smallInt
deterministic no external action contains sql
return case when length(c) = 2
then (mod(oa1p.fqzCastC1I(left(c, 1))
+ 128, 256) - 128) * 256
else 0 end
+ case when length(c) >= 1
then oa1p.fqzCastC1I(right(c, 1))
else 0 end
;
create function OA1P.fqzCastC2I(c varChar(4) for bit data)
returns int
deterministic no external action contains sql
return ( case when length(c) >= 3
then int(oa1p.fqzCastC2Small(left(c, length(c)-2)))*256
else 0 end
+ case when length(c) >= 2
then oa1p.fqzCastC1I(substr(c, length(c)-1, 1))
else 0 end
) * 256
+ case when length(c) >= 1
then oa1p.fqzCastC1I(right(c, 1))
else 0 end
;
create function OA1P.fqzCastC2Big(c varChar(8) for bit data)
returns bigint
deterministic no external action contains sql
return ((( case when length(c) > 4
then bigInt(oa1p.fqzCastC2I(left(c, length(c)-4)))*256
else 0 end
+ case when length(c) >= 4
then oa1p.fqzCastC1I(substr(c, length(c)-3, 1))
else 0 end
) * 256
+ case when length(c) >= 3
then oa1p.fqzCastC1I(substr(c, length(c)-2, 1))
else 0 end
) * 256
+ case when length(c) >= 2
then oa1p.fqzCastC1I(substr(c, length(c)-1, 1))
else 0 end
) * 256
+ case when length(c) >= 1
then oa1p.fqzCastC1I(right(c, 1))
else 0 end
;
create function OA1P.fqzCastSmall2C(i smallInt)
returns char(2) for bit data
deterministic no external action contains sql
return case when i >= 0
then ebcdic_chr(i / 256) || ebcdic_chr(mod(i, 256))
else ebcdic_chr((1 + i ) / 256 + 255)
||ebcdic_chr(mod(1+i , 256) + 255)
end
;
create function OA1P.fqzCastI2C(l smallInt, r int)
returns char(4) for bit data
specific "FQZCASTI2C(S,I)"
deterministic no external action contains sql
return oa1p.fqzCastSmall2c(l)
|| ebcdic_chr(r / 256)
|| ebcdic_chr(mod(r, 256))
;
create function OA1P.fqzCastI2C(i int) returns char(4) for bit data
specific "FQZCASTI2C(I)"
deterministic no external action contains sql
return case when i >= 0
then oa1p.fqzCastI2C(i / 65536, mod(i, 65536))
else oa1p.fqzCastI2C((1 + i ) / 65536 - 1
, mod(1+i , 65536) + 65535)
end
;
create function OA1P.fqzCastBig2C(l int, r bigInt)
returns char(8) for bit data
specific "FQZCASTBIG2C(S,I)"
deterministic no external action contains sql
return OA1P.fqzCastI2C(l)
|| ebcdic_chr(r / 16777216)
|| ebcdic_chr(mod(r, 16777216) / 65536)
|| ebcdic_chr(mod(r, 65536) / 256)
|| ebcdic_chr(mod(r, 256))
;
create function OA1P.fqzCastBig2C(i bigInt)
returns char(8) for bit data
specific "FQZCASTBIG2C(I)"
deterministic no external action contains sql
return case when i >= 0
then oa1p.fqzCastBig2C(i / 4294967296
, mod(i, 4294967296))
else oa1p.fqzCastBig2C((1 + i ) / 4294967296 - 1
, mod(1+i , 4294967296) + 4294967295)
end
;
-- compatibility: old names
create function OA1P.fosC2I2(c varchar(4) for bit data) returns int
deterministic no external action contains sql
return oa1p.fqzCastc2i(c)
;
create function OA1P.fosC2I4(c varchar(8) for bit data) returns bigInt
deterministic no external action contains sql
return oa1p.fqzCastc2Big(c)
;
with n (n) as (
select 0 from sysIbm.sysDummy1
union all select 1 from sysIbm.sysDummy1
union all select 5 from sysIbm.sysDummy1
union all select 17 from sysIbm.sysDummy1
union all select 254 from sysIbm.sysDummy1
union all select 255 from sysIbm.sysDummy1
)
, m (n) as
(
select int(n1.n) * 256 + n2.n
from n n1, n n2
)
, o (n) as
(
select bigint(n1.n) * 256 *256 + n2.n
from m n1, m n2
)
, p2 (n, e) as
(
select bigInt(1), 0 from sysibm.sysDummy1
union all select 2*n, e+1 from p2 where e < 62
)
, u(b) as
(
select n from o
union all select 9223372036854775807 from sysibm.sysDummy1
union all select 9223372036854775806 from sysibm.sysDummy1
union all select - n from o
union all select -9223372036854775808 from sysibm.sysDummy1
union all select -9223372036854775807 from sysibm.sysDummy1
union all select n from p2
union all select n-1 from p2
union all select n+1 from p2
union all select -n from p2
union all select -n-1 from p2
union all select -n+1 from p2
)
, v as
(
select int(max(min(b, 2147483647), -2147483648)) i, b
from u
)
, r2 as
(
select i, oa1p.fqzCastI2c(i) i2c
, oa1p.fqzCastc2i(oa1p.fqzCastI2c(i)) c2iI2c
, b, oa1p.fqzCastBig2c(b) big2c
, oa1p.fqzCastc2big(oa1p.fqzCastBig2c(b)) c2bigBig2c
from v
)
, r as
(
select r2.*
, case when i2c is null then 'i2c=null'
when hex(i2c) = hex(i) then 'i2c=i'
else 'i2c<>i' end
||case when c2ii2c is null then ' c2ii2c=null'
when c2ii2c = i then ' c2ii2c=i'
else ' c2ii2c<>i' end
||case when big2c is null then ' big2c=null'
when hex(big2c) = hex(b) then ' big2c=b'
else 'big2c<>b' end
||case when c2bigbig2c is null then ' c2bigbig2c=null'
when c2bigbig2c = b then ' c2bigbig2c=b'
else ' c2bigbig2c<>b' end res
from r2
)
select count(*), res, min(i), min(b)
from r
group by res
;
}¢--- A540769.WK.SQL(DIVCATTI) cre=2016-01-15 mod=2016-01-15-17.37.04 A540769 ---
$#@
call sqlConnect
$=cnt= 100000
$$- timing()
$@% tst1
$@% tst1 oa1p.fqzCastI2cPack( )
$@% tst1 oa1p.fqzCastI2c( )
$@% tst1 oa1p.fqzI2c4( )
$@% tst1 oa1p.fqzc2i4(oa1p.fqzI2c4( ))
$proc $@/tst1/
$arg fuL fuR
$<>
$<=¢
with n (n) as (
select 0 from sysIbm.sysDummy1
union all select n+1 from n where n < $cnt
)
, i as
( select int(n) n from n )
, m as
(
select n, case when hex(n) = hex( $fuL n $fuR )
then 'pos eq' else 'pos <>' end pos
, case when hex(-n) = hex( $fuL -n $fuR )
then 'neg eq' else 'neq <>' end neg
from i
)
select count(*), pos, neg
from m
group by pos, neg
$!
call sqlStmts
$$- timing() $fuL $fuR
$/tst1/
$#out 20160115 17:34:51
17:34:51 ela= 0 cpu= 219.990 su= 15487481
COL1 POS NEG
100001 pos eq neg eq
1 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
17:34:51 ela= 0 cpu= 220.190 su= 15501686 oa1p.fqzCastI2cPack( )
COL1 POS NEG
100001 pos eq neg eq
1 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
17:34:54 ela= 0 cpu= 222.530 su= 15666241 oa1p.fqzCastI2c( )
COL1 POS NEG
1 pos eq neg eq
100000 pos eq neq <>
2 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
17:34:54 ela= 0 cpu= 223.090 su= 15705532 oa1p.fqzI2c4( )
COL1 POS NEG
100001 pos <> neq <>
1 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
17:34:56 ela= 0 cpu= 224.420 su= 15799266 oa1p.fqzc2i4(oa1p.fqzI2c4( ))
$#out 20160115 17:33:15
17:33:15 ela= 0 cpu= 219.380 su= 15444444
COL1 POS NEG
10001 pos eq neg eq
1 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
17:33:15 ela= 0 cpu= 219.410 su= 15446793 oa1p.fqzCastI2cPack( )
COL1 POS NEG
10001 pos eq neg eq
1 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
17:33:16 ela= 0 cpu= 219.660 su= 15463972 oa1p.fqzCastI2c( )
COL1 POS NEG
1 pos eq neg eq
10000 pos eq neq <>
2 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
17:33:16 ela= 0 cpu= 219.720 su= 15468602 oa1p.fqzI2c4( )
COL1 POS NEG
10001 pos <> neq <>
1 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
17:33:16 ela= 0 cpu= 219.870 su= 15479221 oa1p.fqzc2i4(oa1p.fqzI2c4( ))
$#out 20160115 17:32:37
17:32:37 ela= 0 cpu= 219.170 su= 15429984
COL1 POS NEG
1001 pos eq neg eq
1 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
17:32:37 ela= 0 cpu= 219.180 su= 15430782 oa1p.fqzCastI2cPack( )
COL1 POS NEG
1001 pos eq neg eq
1 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
17:32:37 ela= 0 cpu= 219.220 su= 15432959 oa1p.fqzCastI2c( )
COL1 POS NEG
1 pos eq neg eq
1000 pos eq neq <>
2 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
17:32:37 ela= 0 cpu= 219.230 su= 15433736 oa1p.fqzI2c4( )
COL1 POS NEG
1001 pos <> neq <>
1 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
17:32:37 ela= 0 cpu= 219.260 su= 15436072 oa1p.fqzc2i4(oa1p.fqzI2c4( ))
$#out 20160115 17:32:01
17:32:01 ela= 0 cpu= 218.980 su= 15416191
COL1 POS NEG
1001 pos eq neg eq
1 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
17:32:01 ela= 0 cpu= 218.990 su= 15417099 oa1p.fqzCastI2cPack( )
COL1 POS NEG
1001 pos eq neg eq
1 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
17:32:02 ela= 0 cpu= 219.030 su= 15419622 oa1p.fqzCastI2c( )
COL1 POS NEG
1 pos eq neg eq
1000 pos eq neq <>
2 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
17:32:02 ela= 0 cpu= 219.050 su= 15420885 oa1p.fqzI2c4( )
*** run error ***
SQLCODE = -199: ILLEGAL USE OF KEYWORD THEN. TOKEN OVER
CONCAT ¨¨ / MICROSECONDS MICROSECOND SECONDS SECOND WAS EXPECTED
src ...m sysIbm.sysDummy1 union all select n+1 from n where n < 1000 ) ,
+ i as ( select int(n) n from n ) , m as ( select n, case when hex(n)
+ = hex( oa1p(fqzc2i4(oa1p.fqzI2c4( n )) ) then 'pos eq' else 'pos...
> >>>pos 673 of 1173>>>
sql = with n (n) as (
stmt = prepare s10 into :M.SQL.10.D from :src
with into :M.SQL.10.D = M.SQL.10.D
$#out 20160115 17:31:38
17:31:38 ela= 0 cpu= 218.830 su= 15405598
COL1 POS NEG
1001 pos eq neg eq
1 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
*** run error ***
undefined var fun
$#out 20160115 16:24:09
16:24:09 ela= 0 cpu= 213.640 su= 15039116
COL1 POS NEG
100001 pos eq neg eq
1 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
16:24:09 ela= 0 cpu= 213.840 su= 15053023 fqzCastI2cPack
COL1 POS NEG
100001 pos eq neg eq
1 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
16:24:11 ela= 0 cpu= 216.100 su= 15212182 fqzCastI2c
COL1 POS NEG
1 pos eq neg eq
100000 pos eq neq <>
2 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
16:24:12 ela= 0 cpu= 216.640 su= 15250283 fqzI2c4
$#out 20160115 16:20:03
16:20:03 ela= 0 cpu= 209.120 su= 14720949
COL1 POS NEG
100001 pos eq neg eq
1 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
16:20:04 ela= 0 cpu= 210.190 su= 14796161 fqzCastI2cPack
COL1 POS NEG
100001 pos eq neg eq
1 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
16:20:07 ela= 0 cpu= 212.410 su= 14952721 fqzCastI2c
COL1 POS NEG
1 pos eq neg eq
100000 pos eq neq <>
2 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
16:20:07 ela= 0 cpu= 212.960 su= 14991178 fqzI2c4
$#out 20160115 16:18:04
}¢--- A540769.WK.SQL(DIVFMT) cre=2016-01-11 mod=2016-02-10-09.19.44 A540769 ----
--
-- format to the e8/e7 format
--
-- the e8 format is a short representation (8 byte)
-- of a possibly very large number with
-- precision better than 1% between 9e99 and 1e-9
-- examples ' 1.23e12', '-4.56e-3' ' 0.00e00'
-- the e7 format is even shorter (7 byte):
-- non negative numbers are the e8 format without leading space
-- negative numbers have only one digit less in the mantissa
-- examples '1.23e12', '-4.5e-3' '0.00e00'
-- binary suffix format -9999.99T mit oder ohne Nachkommastellen
--
-- decimal binary
-- k kilo 10e03 2**10 1.02e3 1024
-- M Mega 10e06 2**20 1.05e06 1048576
-- G Giga 10e09 2**30 1.07e09 1073741824
-- T Tera 10e12 2**40 1.10e12 1099511627776
-- P Peta 10e15 2**50 1.13e15 1125899906842624
-- E Exa 10e18 2**60 1.15e18 1152921504606846976
--
-- 4 predefined formats for bin and for dec
-- fqzFmtDec4 fqzFmtBin4 '123k' '-###'
-- fqzFmtDec5 fqzFmtBin5 ' 456k' '-456k'
-- fqzFmtDec7 fqzFmtBin7 '789.01 ' '-789.0 '
-- fqzFmtDec8 fqzFmtBin8 ' 789.01M' '-789.01M'
-- attention 1010 ==> 0.99k (binary)
--
-- time: format seconds to time: ---- 1s45, 12m13, 13h45 17d15 1234d
-- no error for underflow or overflow wich sometimes shows as ####
--
-- on a unicode table the result of the function is translated
-- and gets longer (3 times). to truncate back
-- either use substring around the function or preJoin sysDummyE
--
--
-- attention inline sql does not support versioning
-- you cannot drop a function if used in view or other function
-- to drop, change functions, recreate use
-- planTb: fun=vfD ... vfC
-- ddlChddl: drop ... recreate
-- prFunWai: drop ... recreate
--
-- 8.2.16 W. Keller rename to qz, incl fmTime, add um Bin und dec
-- 7.1.10 W. Keller neu
--
set current sqlid = 'S100447';
$@ if 1 then $@=/drop/
drop function oa1p.fosFmTime(s real) ;
drop function oa1p.fosFmtE7(r real);
drop function oa1p.fosFmtE8(r real);
drop function oa1p.fqzFmTime(s real) ;
drop function oa1p.fqzFmtInt2(v int, m int, c varchar(1));
drop function oa1p.fqzFmtE7(r real);
drop function oa1p.fqzFmtE8(r real);
drop function oa1p.fqzFmtEU(r real, decP Int);
drop function OA1P.fqzFmtE(ma real, ex int) ;
drop function OA1P.fqzFmtE(ma real, ex int, decP int) ;
drop function oa1p.fqzFmtDec8(i real);
drop function oa1p.fqzFmtDec7(i real);
drop function oa1p.fqzFmtDec5(i real);
drop function oa1p.fqzFmtDec4(i real);
drop function oa1p.fqzFmtBin8(i real);
drop function oa1p.fqzFmtBin7(i real);
drop function oa1p.fqzFmtBin5(i real);
drop function oa1p.fqzFmtBin4(i real);
drop function oa1p.fqzFmtSuf(i real, s int, decR int, b real);
drop function oa1p.fqzFmtLR(i real, decL int, decR int) ;
commit;
$/drop/
-- return a string -999.999 with - or ' ' as sign
-- decL leading digits (leading 0 to ' ', but ' 0.3'
-- a decimal point if decR > 0
-- and decR trailing digits, rounded ----------------------
create function oa1p.fqzFmtLR(i real, decL int, decR int)
returns varchar(20)
deterministic no external action contains sql
return varchar_format(i, substr('9999999990.999999999'
, 11 - decL , decL + decR + min(1, decR)))
;
--#SET TERMINATOR #
-- format with suffix for k,M etc, 3 digits before dec Point
-- i input
-- s 1 = extra character for sign, 0 = truncate dec places for '-'
-- decR decimal places right of decPoint. omit decPoint if 0
-- b base 1000 ==> decimal, 1024 == binary
create function oa1p.fqzFmtSuf(i real, s int, decR int, b real)
returns varchar(15)
deterministic no external action contains sql
begin
declare dR, e int;
declare j real;
declare res varchar(15);
set dR = decR;
if s = 0 and i < 0 then
if decR <= 0 then
return '-###';
end if;
set dR = dR-1;
end if;
set e = floor(ln(max(1, abs(i)))/ln(b));
if e > 6 then
set e = 6;
-- elseIf round(j, dR) >= 1000 then ==> this better code
-- set j = j / b; ==> need reads sql err.ec65
-- set e = e + 1; ==> instead we use like
-- end if;
end if;
set j = i / power(b, e);
set res = oa1p.fqzFmtLR(j, 3, dR);
if res like '#%' and e < 6 then
set e = e + 1;
set res = oa1p.fqzFmtLR(j / b, 3, dR);
end if;
return case when s <> 0 then res
when i >= 0 then substr(res, 2)
else right(' ' || res, 4+decR)
end || substr(' kMGTPE', e+1, 1);
end
#
--#SET TERMINATOR ;
--- 990G: binary suffix no dec digits -------------------------------
create function oa1p.fqzFmtBin4(i real)
returns char(4)
deterministic no external action contains sql
return oa1p.fqzFmtSuf(i, 0, 0, 1024);
;
--- -990G: binary suffix no dec digits -------------------------------
create function oa1p.fqzFmtBin5(i real)
returns char(5)
deterministic no external action contains sql
return oa1p.fqzFmtSuf(i, 1, 0, 1024);
;
--- 990.99G: binary suffix 2 dec digits ---------------------------
create function oa1p.fqzFmtBin7(i real)
returns char(7)
deterministic no external action contains sql
return oa1p.fqzFmtSuf(i, 0, 2, 1024);
;
--- -990.99G: binary suffix 2 dec digits -----------------------------
create function oa1p.fqzFmtBin8(i real)
returns char(8)
deterministic no external action contains sql
return oa1p.fqzFmtSuf(i, 1, 2, 1024);
;
--- 990G: decimal suffix no dec digits -------------------------------
create function oa1p.fqzFmtDec4(i real)
returns char(4)
deterministic no external action contains sql
return oa1p.fqzFmtSuf(i, 0, 0, 1000);
;
--- -990G: decimal suffix no dec digits -------------------------------
create function oa1p.fqzFmtDec5(i real)
returns char(5)
deterministic no external action contains sql
return oa1p.fqzFmtSuf(i, 1, 0, 1000);
;
--- 990.99G: decimal suffix 2 dec digits ---------------------------
create function oa1p.fqzFmtDec7(i real)
returns char(7)
deterministic no external action contains sql
return oa1p.fqzFmtSuf(i, 0, 2, 1000);
;
--- -990.99G: decimal suffix 2 dec digits -----------------------------
create function oa1p.fqzFmtDec8(i real)
returns char(8)
deterministic no external action contains sql
return oa1p.fqzFmtSuf(i, 1, 2, 1000);
;
-- move exponent to ¢-9, 99! and mantissa to 1 digit before point -----
create function oa1p.fqzFmtE(ma real, ex int, decP int)
returns varchar(20)
specific "FQZFMTE(R,I,I)"
deterministic no external action contains sql
return case when ex < -9
then oa1p.fqzFmtLR(ma / power(10, -9-ex),1,decP)||'e-9'
when abs(round(ma, decP)) < 10 -- exponent is alwys < 99
then oa1p.fqzFmtLR(ma, 1, decP)
|| 'e' || right('0' || ex, 2)
else oa1p.fqzFmtLR(ma / 10, 1, decP)
|| 'e' || right('0' || (ex+1), 2)
end
;
--- split mantissa and exponent ---------------------------------------
create function oa1p.fqzFmtE(r real, decP int)
returns varchar(20)
specific "FQZFMTE(R,I)"
deterministic no external action contains sql
return oa1p.fqzFmtE(
real(left(char(r), posstr(char(r), 'E') - 1)),
int(substr(char(r), posstr(char(r), 'E') + 1))
, decP)
--- handle sign '' for + decrease precision for - --------------------
create function oa1p.fqzFmtEU(r real, decP int)
returns varchar(20)
deterministic no external action contains sql
return case when r >= 0 then substr(oa1p.fqzFmtE(r, decp), 2)
when decP < 1 then '-e##'
else oa1p.fqzFmtE(r, decp-1)
end
;
--- e8 format +=' ', 2 decimals, totalLen=8 ---------------------------
create function oa1p.fqzFmtE8(r real)
returns char(8)
deterministic no external action contains sql
return oa1p.fqzFmtE(r, 2)
;
--- e7 format +='', 2 decimals, totalLen=7 ----------------------------
create function oa1p.fqzFmtE7(r real)
returns char(7)
deterministic no external action contains sql
return oa1p.fqzFmtEU(r, 2)
;
create function oa1p.fqzFmtInt2(v int, m int, c varchar(1))
returns char(5)
deterministic no external action contains sql
return right(' ' || strip(char(v/m)), 2) || c
|| right(digits(mod(v, m)), 2)
;
create function oa1p.fqzFmTime(s real) returns char(5)
deterministic no external action contains sql
-- convert integer seconds s to a time string
return case
when s < 0 then '-----'
when round(s*100, 0) < 6000 then
oa1p.fqzFmtInt2(int(round(s*100, 0)), 100, 's')
when round(s, 0) < 3600 then
oa1p.fqzFmtInt2(int(round(s, 0)), 60, 'm')
when round(s / 60, 0) < 1440 then
oa1p.fqzFmtInt2(int(round(s / 60, 0)), 60, 'h')
when round(s/3600, 0) < 2400 then
oa1p.fqzFmtInt2(int(round(s/3600, 0)), 24, 'd')
when round(s/86400, 0) < 10000 then
right(' ' || int(round(s/86400, 0)), 4)
|| 'd'
when s is null then null
else '+++++'
end
;
-- compatibility: old names
--- e8 format +=' ', 2 decimals, totalLen=8 ---------------------------
create function oa1p.fosFmtE8(r real)
returns char(8)
deterministic no external action contains sql
return oa1p.fqzFmtE(r, 2)
;
--- e7 format +='', 2 decimals, totalLen=7 ----------------------------
create function oa1p.fosFmtE7(r real)
returns char(7)
deterministic no external action contains sql
return oa1p.fqzFmtEU(r, 2)
;
create function oa1p.fosFmTime(s real) returns char(5)
deterministic no external action contains sql
return oa1p.fqzFmTime(s)
;
commit
;
$@ if 1 then $@=/test/
with reals (r ) as
(
select real(0)+0 from sysibm.sysDummy1
union select real(123.456) from sysibm.sysDummy1
union select real(999.456) from sysibm.sysDummy1
union select real(1005.456) from sysibm.sysDummy1
union select real(1015.456) from sysibm.sysDummy1
union select real(1024.456) from sysibm.sysDummy1
union select real(-23.446) from sysibm.sysDummy1
union select real(-23.456e7) from sysibm.sysDummy1
union select real(-23.436e67) from sysibm.sysDummy1
union select real(+23.456e57) from sysibm.sysDummy1
union select real(-23.476e17) from sysibm.sysDummy1
union select real(-23.556e-6) from sysibm.sysDummy1
union select real( 1090000000000) from sysibm.sysDummy1
union select real(-1090000000000) from sysibm.sysDummy1
union select real(-23.456e-16) from sysibm.sysDummy1
union select real(+99.999e9 ) from sysibm.sysDummy1
union select real(-99.999e-2 ) from sysibm.sysDummy1
union select real(-10000)/7 from sysibm.sysDummy1
union select real(3e-10) from sysibm.sysDummy1
)
select r
-- , '<' || oa1p.fqzFmtE8(r) || '>'
-- , '<' || oa1p.fqzFmtE7(r) || '>'
-- , case when right(oa1p.fqzFmtE8(r), 1) = '-' then '--'
-- when abs(abs(real(uCase(oa1p.fqzFmtE8(r))))-abs(r))
-- > .004 * abs(r)
-- then 'e8' else '' end
-- , case when right(oa1p.fqzFmtE7(r), 1) = '-' then '--'
-- when abs(abs(real(uCase(oa1p.fqzFmtE7(r))))-abs(r))
-- > .04 * abs(r)
-- then 'e7' else '' end
, '<' || oa1p.fqzFmtBin4(r) || '>' FmtBin4
, '<' || oa1p.fqzFmtBin5(r) || '>' FmtBin5
, '<' || oa1p.fqzFmtBin7(r) || '>' FmtBin7
, '<' || oa1p.fqzFmtBin8(r) || '>' FmtBin8
, '<' || oa1p.fqzFmtDec4(r) || '>' FmtDec4
, '<' || oa1p.fqzFmtDec5(r) || '>' FmtDec5
, '<' || oa1p.fqzFmtDec7(r) || '>' FmtDec7
, '<' || oa1p.fqzFmtDec8(r) || '>' FmtDec8
, '<' || oa1p.fqzFmtE7(r) || '>'
, '<' || oa1p.fqzFmtE8(r) || '>'
-- , round(r,2)
-- , '<' || char(real(r)) || '>', length(char(r))
from reals
;
with r(r) as
(
select real(123.45) from sysibm.sysDummy1
union select -123.45 from sysibm.sysDummy1
union select 67.894 from sysibm.sysDummy1
union select 4.566 from sysibm.sysDummy1
union select 2 from sysibm.sysDummy1
union select 0.127 from sysibm.sysDummy1
union select 0.07 from sysibm.sysDummy1
union select 0 from sysibm.sysDummy1
union select -0.341 from sysibm.sysDummy1
union select -0.087 from sysibm.sysDummy1
union select 5432.19 from sysibm.sysDummy1
union select-5432.19 from sysibm.sysDummy1
)
select '<' || r || '>' chr
, '<' || decfloat(r) || '>' decFlo
, '<' || dec(r, 6, 2) || '>' dec
, '<' || varchar_Format(r, '990.99') || '>' varchar
from r
;
select power(3,3), power(3.0,-3) from sysibm.sysDummy1;
;
select '<' || oa1p.fqzFmtLR(2.34e2, 1, 2)||'>'from sysibm.sysdummy1;
select '<' || oa1p.fqzFmtLR(real(2.34e2),1,2)||'>'from sysibm.sysdummy1;
select oa1p.fqzFmtE8(real(2.34)) from sysibm.sysdummy1;
select oa1p.fqzFmtE7(real(2.34)) from sysibm.sysdummy1;
with v(v) as
(
select 0 from sysibm.sysDummy1
union all select -1 from sysibm.sysDummy1
union all select -1 from sysibm.sysDummy1
union all select -0.0000375 from sysibm.sysDummy1
union all select +432109.5 from sysibm.sysDummy1
)
, r(r) as
(
select real(v) from v
)
select r, '<' || char(r) || '>' chr
, '<' || dec(r, 12,5) || '>' deci
, '<' || varchar_Format(r, 'S990.99999') || '>' deci
, insert('abc', 2, 0, 'fifi')
from r
;
$/test/
}¢--- A540769.WK.SQL(DI002IX) cre=2014-11-03 mod=2014-11-03-15.24.13 A540769 ---
SET CURRENT SQLID = 'S100447';
DROP INDEX "OA1P ".IDI002A2$X;
CREATE INDEX "OA1P ".IDI002A2$X
ON "OA1P ".TDI002A1
(DI00205 ASC
,DI00202 ASC
,DI00203 ASC
,DI00200 ASC
,DI00201 DESC
,DI00204 DESC
,DI00206 ASC
,DI00207 ASC
)
NOT CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE YES
DEFER YES
COPY NO
USING STOGROUP "GSMS "
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 5
PCTFREE 20
GBPCACHE CHANGED
PIECESIZE 2097152K;
}¢--- A540769.WK.SQL(DODEXT) cre= mod= -----------------------------------------
select 100 * month(tid150tst - 8 months)
+ dayOfMonth(tid150tst - 8 months) TID150MD,
strip(char(tid150tst - 8 months)) tid150tst,
tid150uui,
tid150cha,
tid150lnr,
tid150vrs,
tid150cre,
tid150idt,
tid150ide,
tid150adt,
tid150adr,
tid150bu,
tid150bks,
tid150are,
tid150cbe,
tid150ins
from oa1a.tid150a1 a
-- where tid150tst < '2004-10-14-13.21.33.989033'
order by tid150tst, tid150uui
;
}¢--- A540769.WK.SQL(DORNBIER) cre=2006-09-01 mod=2006-09-01-11.21.18 F540769 ---
SELECT BUSINESSENTITY, POSTALNUMBER, INTERNALNUMBER, VALIDFROMTS,
VALIDTOTS, RECEIPTACCOUNT, TRANSFERACCOUNT, STANDARD,
RECEIVERCIF, FILENAME, DLFLAG, EBFLAG, ZPFLAG, BBFLAG,
EUFLAG, IFFLAG, KAFLAG, SVFLAG, VAFLAG, VDFLAG, R1FLAG,
R2FLAG, R3FLAG, STATE, BUSINESSSTATE, INTERNALNOTICE, BRANCH,
OLDACCOUNT, ADDINFO, CREATETS, CREATEPID, UPDATETS, UPDATEPID
FROM GDB0132.TZV005A1
WHERE BUSINESSENTITY = :TZV005.BUSINESSENTITY
AND RECEIVERCIF = :TZV005.RECEIVERCIF
-- AND FILENAME = :ABC
}¢--- A540769.WK.SQL(DROP) cre=2006-03-01 mod=2015-10-23-13.25.43 A540769 ------
set current sqlid = 'S100447';
drop database QTXDBX ; commit;
drop database QTXDBY ; commit;
}¢--- A540769.WK.SQL(DROPBIG) cre=2007-12-18 mod=2016-09-09-10.15.23 A540769 ---
$#:
dbSys = DBOL
<>
$>. fEdit()
$<=¢
select s.dbname db, s.name ts, sum(r.totalrows) rows
, sum(r.nActive) active, sum(real(r.space)) space
, count(*) count
, min(r.updatestatstime) updMin
, max(R.updatestatstime) updMax
from sysibm.sysTablespace s
left join sysibm.sysTablespaceStats r
on r.dbName = s.dbName and r.name = s.name
and r.dbid = s.dbid and r.psId = s.psid
where s.dbname = 'SU01A1P'
group by s.dbName, s.name
order by updMax desc
$** order by 1, 2
$!
@ call sqlConnect $dbSys
@. sqlRdr()
|
@=¢
//A540769D JOB (CP00,KE50),'DB2 REO',
// MSGCLASS=T,TIME=1440,
// NOTIFY=&SYSUID,REGION=0M,
// SCHENV=DB2,CLASS=M1
//*
//DROP EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99,
// PARM='%WSH s $dbSys'
//SYSPROC DD DSN=DSN.DB2.EXEC,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD DUMMY
//WSH DD *
$!
forWith $@=¢
drop tablespace $DB.$TS; -- $-¢f('%kd', $ROWS) 'rows,' $*+
f('%kb', $SPACE * 1024)'iB'$! $UPDMAX
commit;
$!
$#out 20160909 09:18:00
$#out 20160909 09:17:22
$#out 20160909 09:16:39
$#out 20160905 17:06:48
$#out 20160905 16:48:33
$#out 20160905 16:47:36
}¢--- A540769.WK.SQL(DROPDB) cre=2009-08-06 mod=2009-08-07-10.17.54 A540769 ----
$*(
dbDrop: generate jobs to delete many Databases:
each job consists of
stepgroups which drop a number of databases
each stepgroup consist of
a utility step to cleanup logrange and copy
each TS of each DB
an sql step to drop each DB
a sleep step to decrease catalog contingency
usage:
fill configuration paramters below
delete lines after $***out line
wsh
the jobs are appended after the $***out line
copy the jobs, verify them and sub
$*)
$***** configuration begin
$=subSys=DBAF
$=dbs=BJAA% $***** pattern for DB names
$=dbCnt = 1000 $***** how many DB's to drop
$=dbProStep = 10 $***** how many DB's a step
$=stepProJob = 10 $***** how many steps a job
$=sleep = 60 $***** how long to sleep after
$***** start of generation
call sqlConnect $subSys
$***** select $cnt databases
call sqlPreOpen 1, "select strip(dbName), strip(name)" ,
"from sysIbm.sysTablespace" ,
"where dbName like '"$dbs"'",
"order by dbName, name",
"with ur"
cDb = 0
cTs = 0
$***** read first ts
m.fe = sqlFetchInto(1, ':m.db, :m.ts')
do cJo = 1 while m.fe $***** each job
$@¢ $***** job header
//A540769D JOB (CP00,KE50),
// 'CATALOG',MSGCLASS=T,TIME=1440,
// NOTIFY=&SYSUID,REGION=0M
//*MAIN CLASS=LOG
//*
$!
do cStep=1 to $stepProJob while m.fe
$***** each stepGroup
$=cStep % right(cStep, 3, 0)
$@¢ $***** utility step
// IF RC = 0 OR RC = 4 THEN
//UTI$cStep EXEC PGM=DSNUTILB,TIME=1440,
// PARM=($subSys,'A540769D'),
// REGION=0M
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//UTPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSTEMPL DD DISP=SHR,DSN=$subSys.DBAA.LISTDEF(TEMPL)
//SYSIN DD *
LISTDEF C#LIST
$!
call mCut d, 0
do while m.fe & m.d.0 < $dbProStep
$***** each db
cDb = cDb + 1
oldDb = m.db
call mAdd d, oldDb
do while m.fe & m.db = oldDb
$***** each ts
cTs = cTs + 1
$***** include ts in listdef
$% ' INCLUDE TABLESPACE' m.db'.'m.ts
m.fe = sqlFetchInto(1, ':m.db, :m.ts')
end $***** each ts
if cDb >= $dbCnt then
m.fe = 0
end $***** each db
$@¢ $***** continue utility input
$' QUIESCE LIST C#LIST'
MODIFY RECOVERY
LIST C#LIST
DELETE AGE (*)
COPY
LIST C#LIST
COPYDDN(TCOPYD) FULL YES
PARALLEL
// ENDIF
// IF RC = 0 OR RC = 4 THEN
$***** sql step to drop db's
//DROP$cStep EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99
//SYSTSIN DD *
DSN SYSTEM($subSys)
RUN PROGRAM(DSNTEP2) PARMS('ALIGN(LHS)') PLAN(DSNTEP2)
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSTERM DD DUMMY
//SYSIN DD *
set current sqlid = 'S100447';
$!
do dx=1 to m.d.0
$@¢ $***** sql statments
drop database $(m.d.dx$);
commit;
$!
end
$@¢
// ENDIF
$***** sleep step to decrease
$***** catalog contention
//SLEE$cStep EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99,
// PARM='WSH s'
//SYSIN DD DUMMY
//SYSTSIN DD DUMMY
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSTERM DD DUMMY
//SYSPROC DD DISP=SHR,DSN=A540769.WK.REXX
//WSH DD *
call sleep $sleep, 1
//OUT DD SYSOUT=*
$!
end $***** each stepGroup
say 'endJob' cJo', db' cDb', ts' cTs
end $***** each job
call sqlDisconnect $subSys
$***out 20090807 10:16:11
}¢--- A540769.WK.SQL(DROPMAZZ) cre=2006-03-28 mod=2006-03-28-13.37.25 F540769 ---
DROP VIEW OA1Z.VBP00011 ; 00010002
DROP VIEW OA1Z.VBP121A ; 00020002
DROP VIEW OA1Z.VBP121A1V ; 00030002
DROP VIEW OA1Z.VBP171A2R ; 00040002
}¢--- A540769.WK.SQL(DSLOCATE) cre=2013-09-30 mod=2013-09-30-15.33.53 A540769 ---
set current path = 'S100447';
select dsLocate('A540769.WK.REXX')
from sysibm.sysDummy1
}¢--- A540769.WK.SQL(DSNACE11) cre=2015-01-29 mod=2015-01-30-10.56.57 A540769 ---
dsnaccox v11 00010000
( ( (QueryType= REORG OR QueryType= ALL ) AND 00020001
(ObjectType= TS OR ObjectType= ALL )) AND 00030001
(Object is not in Persistent Read Only (PRO) status) AND 00040001
( REORGLASTTIME IS NULL AND LOADRLASTTIME IS NULL) OR 00050001
(NACTIVE IS NULL OR NACTIVE > 5) AND 00060001
( ( ( (REORGINSERTS×100)/TOTALROWS>RRTInsertsPct) AND 00070001
REORGINSERTS>RRTInsertsAbs) OR 00080001
( ( (REORGDELETE×100)/TOTALROWS>RRTDeletesPct) AND 00090001
REORGDELETE>RRTDeletesAbs) OR 00100001
( REORGCLUSTERSENS > 0 AND (REORGUNCLUSTINS×100) 00110001
/TOTALROWS>RRTUnclustInsPct) OR 00111001
( REORGDISORGLOB×100)/TOTALROWS>RRTDisorgLOBPct OR 00120001
( SPACE×1024)/DATASIZE>RRTDataSpaceRat OR 00130001
( (REORGNEARINDREF+REORGFARINDREF)×100) 00140001
/TOTALROWS>RRTIndRefLimit OR 00141001
REORGMASSDELETE>RRTMassDelLimit OR 00150001
EXTENTS>ExtentLimit) ) OR 00160001
( (QueryType= REORG OR QueryType= ALL ) AND 00170001
ObjectType= ALL AND 00180001
overflow index for hash access is used2, and 00190001
( overflow index TOTALENTRY x 100) 00200001
/ TOTALROWS > RRTHashOvrFlwRatio) OR 00201001
( ( QueryType= RESTRICT OR QueryType= ALL OR QueryType= REORG ) AND 00210001
( ObjectType= TS OR ObjectType= ALL ) AND 00220001
The table space is in advisory or informational reorg pending status) 00230001
}¢--- A540769.WK.SQL(DUMMY1) cre=2006-05-08 mod=2006-05-08-16.41.44 F540769 ----
select * from sysibm.sysdummy1;
}¢--- A540769.WK.SQL(EINS) cre= mod= -------------------------------------------
SELECT 00010000
CHAR(2003), 00011008
'X' || RTRIM(CHAR(2004)) || 'Y', 00012011
DATE(RTRIM(CHAR(2004)) || '-01-01') 00020017
+ 30 DAYS 00020118
+ (2-1) MONTHS, 00021019
DATE('15.12.2004'), 00022019
DATE('2004-12-15'), 00023024
TIME('09.28.10') 00024023
-- TIME('19.28.10.125533') 00025022
-- TIME('9.28.10.125533') 00026021
FROM SYSIBM.SYSTABLES 00030000
FETCH FIRST 2 ROWS ONLY; 00040000
}¢--- A540769.WK.SQL(ELARCHK0) cre=2014-12-15 mod=2014-12-15-10.45.27 A540769 ---
-- Zwischenspeicher der zu untersuchenden Datenbanken 00010000
-- 00020000
DECLARE GLOBAL TEMPORARY TABLE FAMLISTE 00030000
( FAMILY CHAR(20) 00040000
, DBNAME CHAR(08) 00050000
, STORAR CHAR(03) 00060000
, ENSEG CHAR(03) 00070000
, STORAR_N INTEGER 00080000
, ENSEG_N SMALLINT 00090000
, CREATE_FROM DATE 00100000
, CREATE_TO DATE 00110000
) 00120000
; 00130000
-- 00140000
-- Define with INSERT statement full or partial ddl check 00150000
-- (Description see input section description) 00160000
-- 00170000
INSERT INTO SESSION.FAMLISTE ( FAMILY 00180000
, DBNAME 00190000
, CREATE_FROM 00200000
, CREATE_TO 00210000
) 00220000
VALUES ( &FAMILY 00230000
, &DBNAME 00240000
, &CREATE_FROM 00250000
, &CREATE_TO 00260000
) 00270000
; 00280000
-- ============ Parameter section ============ 00290000
-- 00300000
-- Definition of partition limit for table- and indexspace 00310000
DECLARE GLOBAL TEMPORARY TABLE MAXPART 00320000
( PARTYPE CHAR(05) NOT NULL 00330000
, MAXPART INTEGER NOT NULL 00340000
) 00350000
; 00360000
INSERT INTO SESSION.MAXPART ( PARTYPE, MAXPART ) 00370000
VALUES ( 'Table', 200 ) 00380000
; 00390000
INSERT INTO SESSION.MAXPART ( PARTYPE, MAXPART ) 00400000
VALUES ( 'Index', 200 ) 00410000
; 00420000
-- ============ Input section description ============ 00430000
-- Full Check for a database 00440000
-- (1) Column FAMILY holds a question mark (Sample '?'). 00450000
-- (2) Column DBNAME holds the elar database name (Sample 'XBFRB001')00460000
-- (3) Column CREATE_FROM has no value (Sample NULL) 00470000
-- (4) Column CREATE_RO has no value (Sample NULL) 00480000
-- 00490000
-- Partial check for a database 00500000
-- (1) COLUMN FAMILY holds a question mark or is NULL 00510000
-- (2) COLUMN DBNAME has no value (Sample NULL) 00520000
-- (3) COLUMN CREATE_FROM holds a valid date value 00530000
-- (Sample: '01.10.2013' or current date - 1 days) 00540000
-- 00550000
-- (4) COLUMN CREATE_TO holds a valid date value 00560000
-- (Sample: '31.10.2013' or current date + 21 days) 00570000
-- 00580000
-- 00590000
-- ============ Release notes/ documentation section ============ 00600000
-- 00610000
-- ### INFO Version 2.3, Date: 05.12.2013 00620000
-- ### INFO Library: actual Version only available in DSN.GENERAL.SQL 00630000
-- ### Author: A559315, Uwe Toepperwien (TCG), KIDI 61 00640000
-- 00650000
-- ============ Documentation section ============ 00660000
-- 00670000
-- DDL Checker für partitionierte Datenbanken ELAR. In ELAR ist nur 00680000
-- Table controlled Partition zulässig, folglich werden Non partition 00690000
-- Tables und Index controlled Partition nicht verifiziert. 00700000
-- Grundlage sind die DDL Vereinbarungen vom 10/2010 00710000
-- Nachfolgende DB2 Objekte werden geprüft: 00720000
-- (1) Datenbank 00730000
-- (2) Tablespaces 00740000
-- (3) Tabeles 00750000
-- (4) Indexspaces 00760000
-- (5) Index(e) Primary DPSI/ DPSI 00770000
-- 00780000
-- Ein DDL Check ist möglich durch Angabe der ELAR Familie und/ oder 00790000
-- der Datenbank. 00800000
-- 00810000
-- Ist das Result des DDL Checkers "empty", dann sind alle vereinbarten 00820000
-- DDL Parameter eingehalten. 00830000
-- 00840000
-- Ist das Result des DDL Checkers nicht "empty", dann 00850000
-- (a) werden alle DDL Parameter Abweichungen ausgewiesen, wenn die 00860000
-- Familie/ Datenbank vom Typ Table Controlled Partition ist 00870000
-- (b) der Fehler "DatabaseImplementation" zeigt an, das die Familie/ 00880000
-- Datenbank nicht vom Typ Table Controlled Partition ist. 00890000
-- 00900000
-- Parameterwert fuer maximale Anzahl Partition festlegen 00910000
-- Die maximale Anzahl Partitionen ist für Table- und Indexcontrolled 00920000
-- Partitioning vorzugeben. 00930000
-- 00940000
-- Update: 28.11.2013, TCG 00950000
-- Partial check possible, when create_from and create_to is not null 00960000
-- 00970000
-- Update: 08.07.2013, TCG 00980000
-- Generating final message which describe the state of a cekced 00990000
-- database. 01000000
-- Check pctfree for technical/ business indexes use wrong 01010000
-- catalog table (sysibm.syscolumns instead of syskeys) 01020000
-- 01030000
-- Update: 01.07.2013, TCG (new agreement KIDI63/ ELAR for NDBS) 01040000
-- (see Mail from 01.07.2013 M.Streit) 01050000
-- Tablespace Option Check 01060000
-- (1) Check FREEPAGE, PCTFREE 01070000
-- (2) PARTITION = 0 not allowed for XB databases 01080000
-- Table Option Check 01090000
-- (1) option APPEND changed from NO to YES 01100000
-- (2) no check of EN1ENTERTAG, ET1LOGPROD 01110000
-- (3) Check on table the type of partitioning (classic) 01120000
-- (4) Check if index is index controlled partitioning (antique) 01130000
-- (5) Extend index type check, only D, U and P are allowed 01140000
-- (6) Check that EN1PART is in keylist of unique/ primary index 01150000
-- (7) Check that every table has only one unique/ primary index 01160000
-- (8) Check that cluster index based on correct columns 01170000
-- (9) Check that key columns on correct position 01180000
-- 01190000
-- Update: 17.05.2012, TCG 01200000
-- (1) Find database name for migrated families (migrated families 01210000
-- have a symbolic name like FAMnnmm where nn is multipler 1000 01220000
-- and mm is the family number. Exp. FAM1015 is family 15 that is 01230000
-- family DEVI.IF) 01240000
-- (2) New column COMMENT describes the family 01250000
-- (3) Result shows first families from migration and all other 01260000
-- families. 01270000
-- (4) Correction of text mistakes. 01280000
-- 01290000
-- Update: 10.05.2012, TCG 01300000
-- (1) New Bufferpool assignment (BP2 and BP1) 01310000
-- (2) Check Bufferpool BP8 for LOB 01320000
-- (3) De-activate Partition and Index Columun check 01330000
-- for database with prefix DXB (Elar Metadata) 01340000
-- (4) Result set order changed to family, database, tablespace, 01350000
-- table, indexspace and index. 01360000
-- (5) Defined more and detailed messages. 01370000
-- 01380000
-- ============ Processing section ============ 01390000
-- 01400000
UPDATE SESSION.FAMLISTE 01410000
SET STORAR = SUBSTR(DBNAME,3,3) 01420000
, ENSEG = SUBSTR(DBNAME,6,3) 01430000
WHERE SUBSTR(DBNAME,1,2) = 'XB' 01440000
AND CREATE_FROM IS NULL 01450000
AND CREATE_TO IS NULL 01460000
; 01470000
UPDATE SESSION.FAMLISTE 01480000
SET STORAR_N = (SELECT XBA510_STORAGE_ARN 01490000
FROM BUA.TXBA510 01500000
WHERE XBA510_STORAGE_ARC = STORAR 01510000
) 01520000
, ENSEG_N = (SELECT XBA510_STORAGE_ARN 01530000
FROM BUA.TXBA510 01540000
WHERE XBA510_STORAGE_ARC = ENSEG 01550000
) 01560000
WHERE CREATE_FROM IS NULL 01570000
AND CREATE_TO IS NULL 01580000
; 01590000
DECLARE GLOBAL TEMPORARY TABLE ELAR 01600000
( FAMILY CHAR(20) 01610000
, STORAR CHAR(08) 01620000
, COMMENT CHAR(40) 01630000
) 01640000
; 01650000
INSERT INTO SESSION.ELAR 01660000
WITH TESLA ( FAMILY 01670000
, STORAR 01680000
, COMMENT 01690000
) 01700000
-- 01710000
-- Search over family name and retrieve database name(s) 01720000
-- 1) Import run time tables 01730000
-- 2) Time range run time table and family configuration 01740000
-- (no data available over(1) 01750000
-- 3) Migration protocol (no data available over (1) and (2) 01760000
-- 4) Family number control table. Last change to find a family, 01770000
-- while all run time and meta data are broken (broken links) 01780000
-- 01790000
AS (SELECT C071.EAOF 01800000
, CAST ( C071.EYPREF || 01810000
C111.ENSTORAR || 01820000
C111.ENSEG AS CHAR(08) 01830000
) 01840000
, ' ' AS COMMENT 01850000
FROM BUA.TXBC111 C111 01860000
FULL OUTER JOIN BUA.TXBC071 C071 01870000
ON C111.ENSTORAR = C071.ENSTORAR 01880000
INNER JOIN SESSION.FAMLISTE FL 01890000
ON FL.FAMILY = C071.EAOF 01900000
WHERE C111.ENSTORAR IS NOT NULL 01910000
AND C111.ENSEG IS NOT NULL 01920000
AND C071.EYPREF IS NOT NULL 01930000
UNION DISTINCT 01940000
SELECT BE051.EAOF 01950000
, FL.DBNAME 01960000
, ' ' AS COMMENT 01970000
FROM BUA.TXBE051 BE051 01980000
INNER JOIN BUA.TXBA201 BA201 01990000
ON BE051.ENLIBENG = BA201.ENSTORAR 02000000
INNER JOIN SESSION.FAMLISTE FL 02010000
ON FL.FAMILY = BE051.EAOF 02020000
UNION DISTINCT 02030000
SELECT T504.XBA501_FAMNAME 02040000
, XBA504_DB 02050000
, '>> old Migration <<' AS COMMENT 02060000
FROM BUA.TXBA504 T504 02070000
LEFT JOIN BUA.TXBA511 T511 02080000
ON T504.XBA501_FAMNAME = T511.XBA501_FAMNAME 02090000
AND T504.XBA504_TABLE = T511.XBA504_TABLE 02100000
INNER JOIN SESSION.FAMLISTE FL 02110000
ON FL.FAMILY = T504.XBA501_FAMNAME 02120000
UNION DISTINCT 02130000
SELECT STRIP(BA131.EAOF) 02140000
, SUBSTR(MG103.EANTABNAME,1,8) 02150000
, '>> new Migration <<' AS COMMENT 02160000
FROM BUA.TXBMG103 MG103 02170000
INNER JOIN BUA.TXBA131 BA131 02180000
ON MG103.ENOF = BA131.ENOF 02190000
INNER JOIN SESSION.FAMLISTE FL 02200000
ON UCASE(BA131.EAOF) = FL.FAMILY 02210000
-- 02220000
-- Search over Database Name and retrieve family name 02230000
-- In general same processing like search over family, but other 02240000
-- columns are relevant. 02250000
-- 02260000
UNION DISTINCT 02270000
SELECT C071.EAOF 02280000
, FL.DBNAME 02290000
, ' ' AS COMMENT 02300000
FROM BUA.TXBC111 C111 02310000
FULL OUTER JOIN BUA.TXBC071 C071 02320000
ON C111.ENSTORAR = C071.ENSTORAR 02330000
INNER JOIN SESSION.FAMLISTE FL 02340000
ON FL.STORAR = C111.ENSTORAR 02350000
AND FL.ENSEG = C111.ENSEG 02360000
UNION DISTINCT 02370000
SELECT BE051.EAOF AS FAMILY 02380000
, FL.DBNAME 02390000
, ' ' AS COMMENT 02400000
FROM BUA.TXBE051 BE051 02410000
INNER JOIN BUA.TXBA201 BA201 02420000
ON BE051.ENLIBENG = BA201.ENSTORAR 02430000
INNER JOIN SESSION.FAMLISTE FL 02440000
ON FL.STORAR_N = BA201.ENSTORAR 02450000
AND FL.ENSEG_N = BA201.ENSEG 02460000
UNION DISTINCT 02470000
SELECT T504.XBA501_FAMNAME 02480000
, XBA504_DB 02490000
, ' ' AS COMMENT 02500000
FROM BUA.TXBA504 T504 02510000
LEFT JOIN BUA.TXBA511 T511 02520000
ON T504.XBA501_FAMNAME = T511.XBA501_FAMNAME 02530000
AND T504.XBA504_TABLE = T511.XBA504_TABLE 02540000
INNER JOIN SESSION.FAMLISTE FL 02550000
ON FL.DBNAME = T504.XBA504_DB 02560000
UNION DISTINCT 02570000
SELECT UCASE(BA131.EAOF) 02580000
, FL.DBNAME 02590000
, ' ' AS COMMENT 02600000
FROM BUA.TXBA131 BA131 02610000
INNER JOIN BUA.TXBG081 BG181 02620000
ON BA131.ENOF = BG181.ENOF 02630000
INNER JOIN SESSION.FAMLISTE FL 02640000
ON BG181.ENSTORAR = FL.STORAR_N 02650000
UNION DISTINCT 02660000
SELECT UCASE(BA131.EAOF) 02670000
, FL.DBNAME 02680000
, ' ' AS COMMENT 02690000
FROM BUA.TXBA131 BA131 02700000
INNER JOIN BUA.TXBG081X BG181 02710000
ON BA131.ENOF = BG181.ENOF 02720000
INNER JOIN SESSION.FAMLISTE FL 02730000
ON BG181.ENSTORAR = FL.STORAR_N 02740000
UNION DISTINCT 02750000
SELECT 'ELAR Repo. / Base' 02760000
, DBNAME 02770000
, ' ' AS COMMENT 02780000
FROM SESSION.FAMLISTE 02790000
WHERE SUBSTR(DBNAME,1,3) = 'DXB' 02800000
) 02810000
SELECT FAMILY 02820000
, STORAR 02830000
, COMMENT 02840000
FROM TESLA 02850000
WHERE (SELECT CREATE_FROM FROM SESSION.FAMLISTE) IS NULL 02860000
AND (SELECT CREATE_TO FROM SESSION.FAMLISTE) IS NULL 02870000
; 02880000
-- Add database without ELAR meta data into checklist 02890000
-- 02900000
INSERT INTO SESSION.ELAR 02910000
SELECT DBNAME 02920000
, DBNAME 02930000
, ' ' 02940000
FROM SESSION.FAMLISTE 02950000
WHERE DBNAME NOT IN (SELECT STORAR FROM SESSION.ELAR) 02960000
AND DBNAME <> '?' 02970000
AND (SELECT CREATE_FROM FROM SESSION.FAMLISTE) IS NULL 02980000
AND (SELECT CREATE_TO FROM SESSION.FAMLISTE) IS NULL 02990000
; 03000000
INSERT INTO SESSION.ELAR 03010000
SELECT DISTINCT 03020000
'?' 03030000
, DBNAME 03040000
, DBNAME 03050000
FROM SYSIBM.SYSTABLESPACE 03060000
WHERE (SELECT CREATE_FROM FROM SESSION.FAMLISTE ) IS NOT NULL 03070000
AND (SELECT CREATE_TO FROM SESSION.FAMLISTE ) IS NOT NULL 03080000
AND DATE(CREATEDTS) >= (SELECT CREATE_FROM FROM SESSION.FAMLISTE ) 03090000
AND DATE(CREATEDTS) <= (SELECT CREATE_TO FROM SESSION.FAMLISTE ) 03100000
AND DBNAME LIKE 'XB%' 03110000
; 03120000
UPDATE SESSION.FAMLISTE 03130000
SET CREATE_FROM = '01.01.0001' 03140000
, CREATE_TO = '31.12.9999' 03150000
WHERE CREATE_FROM IS NULL 03160000
AND CREATE_TO IS NULL 03170000
; 03180000
DECLARE GLOBAL TEMPORARY TABLE TEMP 03190000
( SNUM CHAR(0013) FOR BIT DATA 03200000
, CRITERIA CHAR(0030) 03210000
, FAMILY CHAR(0030) 03220000
, COMMENT CHAR(0040) 03230000
, OBJECT CHAR(0060) 03240000
, OPTVALUE VARCHAR(1024) 03250000
, CREATEDTS TIMESTAMP(6) 03260000
) 03270000
; 03280000
INSERT INTO SESSION.TEMP 03290000
WITH DBDDL ( FAMILY 03300000
, DATABASE 03310000
, BUFFERPOOL 03320000
, INDEXPOOL 03330000
, STOGROUP 03340000
, CCID 03350000
, DBID 03360000
, COMMENT 03370000
, CREATEDTS 03380000
) 03390000
AS (SELECT DISTINCT 03400000
EL.FAMILY 03410000
, DB.NAME 03420000
, DB.BPOOL 03430000
, DB.INDEXBP 03440000
, DB.STGROUP 03450000
, DB.ENCODING_SCHEME 03460000
, DB.DBID 03470000
, EL.COMMENT 03480000
, DB.CREATEDTS 03490000
FROM SESSION.ELAR EL 03500000
INNER JOIN SYSIBM.SYSDATABASE DB 03510000
ON EL.STORAR = DB.NAME 03520000
INNER JOIN SYSIBM.SYSTABLESPACE TS 03530000
ON DB.DBID = TS.DBID 03540000
WHERE DATE(DB.CREATEDTS) 03550000
>= (SELECT CREATE_FROM FROM SESSION.FAMLISTE) 03560000
AND DATE(DB.CREATEDTS) 03570000
<= (SELECT CREATE_TO FROM SESSION.FAMLISTE) 03580000
) 03590000
, RDB ( FAMILY 03600000
, COMMENT 03610000
, OBJECT 03620000
, OPTVALUE 03630000
, CREATEDTS 03640000
) 03650000
AS (SELECT DISTINCT 03660000
FAMILY 03670000
, COMMENT 03680000
, CAST(DATABASE AS CHAR(08)) 03690000
, 'Bufferpool_DB=' 03700000
|| CASE WHEN BUFFERPOOL = 'BP2' 03710000
THEN 'OK' 03720000
ELSE 'NOK' 03730000
END 03740000
|| ';' 03750000
|| 'Bufferpool_DB_IX=' 03760000
|| CASE WHEN INDEXPOOL = 'BP1' 03770000
THEN 'OK' 03780000
ELSE 'NOK' 03790000
END 03800000
|| ';' 03810000
|| 'StorageGroup=' 03820000
|| CASE STOGROUP 03830000
WHEN 'GSMS1' THEN 'OK' 03840000
WHEN 'GSMS2' THEN 'OK' 03850000
WHEN 'GSMS3' THEN 'OK' 03860000
WHEN 'GSMS4' THEN 'OK' 03870000
ELSE CASE WHEN SUBSTR(DATABASE,1,3) = 'DXB' 03880000
THEN CASE WHEN STOGROUP = 'GSMS' 03890000
THEN 'OK' 03900000
ELSE 'NOK' 03910000
END 03920000
ELSE 'NOK' 03930000
END 03940000
END 03950000
|| ';' 03960000
|| 'EncodingScheme=' 03970000
|| CASE WHEN CCID = 'E' 03980000
THEN 'OK' 03990000
ELSE 'NOK' 04000000
END 04010000
, CREATEDTS 04020000
FROM DBDDL 04030000
) 04040000
SELECT GENERATE_UNIQUE() 04050000
, '1Database Option Check' 04060000
, FAMILY 04070000
, COMMENT 04080000
, OBJECT 04090000
, OPTVALUE 04100000
, CREATEDTS 04110000
FROM RDB 04120000
ORDER BY FAMILY 04130000
, OBJECT 04140000
; 04150000
INSERT INTO SESSION.TEMP 04160000
WITH TSDDL ( FAMILY 04170000
, DATABASE 04180000
, BPOOL_T 04190000
, TSNAME 04200000
, PARTITION 04210000
, STOGROUP 04220000
, PRIQTY 04230000
, SECQTY 04240000
, GBPCACHE 04250000
, TRACKMODE 04260000
, LOGGED 04270000
, DSSIZE 04280000
, LOCKSIZE 04290000
, LOCKMAX 04300000
, CLOSE 04310000
, COMPRESS 04320000
, CCID 04330000
, DEFINE 04340000
, MAXROWS 04350000
, TPIXNAME 04360000
, AUXTBNAME 04370000
, FREEPAGE 04380000
, PCTFREE 04390000
, COMMENT 04400000
, CREATEDTS 04410000
, ELAR_TB_TYPE 04420000
) 04430000
AS (SELECT DISTINCT 04440000
EL.FAMILY AS FAMILY 04450000
, DB.NAME AS DATABASE 04460000
, TS.BPOOL AS BPOOL_T 04470000
, TS.NAME AS TSNAME 04480000
, TS.PARTITIONS AS PARTITION 04490000
, TP.STORNAME AS STOGROUP 04500000
, TP.PQTY AS PRIQTY 04510000
, TP.SQTY AS SECQTY 04520000
, TP.GBPCACHE AS GBPCACHE 04530000
, TP.TRACKMOD AS TRACKMODE 04540000
, TS.LOG AS LOGGED 04550000
, TS.DSSIZE AS DSSIZE 04560000
, TS.LOCKRULE AS LOCKSIZE 04570000
, TS.LOCKMAX AS LOCKMAX 04580000
, TS.CLOSERULE AS CLOSE 04590000
, TP.COMPRESS AS COMPRESS 04600000
, TS.ENCODING_SCHEME AS CCID 04610000
, TP.SPACE AS DEFINE 04620000
, TS.MAXROWS AS MAXROWS 04630000
, TP.IXNAME AS TPIXNAME 04640000
, TB.TYPE AS AUXTBNAME 04650000
, TP.FREEPAGE AS FREEPAGE 04660000
, TP.PCTFREE AS PCTFREE 04670000
, EL.COMMENT AS COMMENT 04680000
, TP.CREATEDTS AS CREATEDTS 04690000
, SUBSTR(TB.NAME, 9, 2) AS ELAR_TB_TYPE 04700000
FROM SESSION.ELAR EL 04710000
INNER JOIN SYSIBM.SYSDATABASE DB 04720000
ON EL.STORAR = DB.NAME 04730000
INNER JOIN SYSIBM.SYSTABLESPACE TS 04740000
ON DB.DBID = TS.DBID 04750000
INNER JOIN SYSIBM.SYSTABLEPART TP 04760000
ON TS.NAME = TP.TSNAME 04770000
AND TS.DBNAME = TP.DBNAME 04780000
INNER JOIN SYSIBM.SYSTABLES TB 04790000
ON TP.DBNAME = TB.DBNAME 04800000
AND TP.TSNAME = TB.TSNAME 04810000
WHERE DATE(TP.CREATEDTS) 04820000
>= (SELECT CREATE_FROM FROM SESSION.FAMLISTE) 04830000
AND DATE(TP.CREATEDTS) 04840000
<= (SELECT CREATE_TO FROM SESSION.FAMLISTE) 04850000
) 04860000
, RTS ( FAMILY 04870000
, COMMENT 04880000
, OBJECT 04890000
, OPTVALUE 04900000
, CREATEDTS 04910000
) 04920000
AS (SELECT DISTINCT 04930000
FAMILY 04940000
, COMMENT 04950000
, CAST(DATABASE AS CHAR(08)) 04960000
|| ' ' 04970000
|| TSNAME 04980000
|| ' ' 04990000
, CASE WHEN PARTITION > 0 05000000
THEN CASE WHEN LENGTH(STRIP(TPIXNAME)) = 0 05010000
THEN 'InfoTCP=OK' 05020000
ELSE 'InfoICP=OK' 05030000
END 05040000
ELSE 'InfoTSS=OK' 05050000
END 05060000
|| ';' 05070000
|| 'TablePartLimit=' 05080000
|| CASE WHEN (SELECT DISTINCT SUBSTR(DATABASE,1,2) 05090000
FROM TSDDL 05100000
) = 'XB' 05110000
THEN CASE WHEN PARTITION > (SELECT MAXPART 05120000
FROM SESSION.MAXPART 05130000
WHERE PARTYPE = 'Table' 05140000
) 05150000
THEN 'NOK' 05160000
ELSE 'OK' 05170000
END 05180000
ELSE 'OK' 05190000
END 05200000
|| ';' 05210000
|| 'Bufferpool' 05220000
|| CASE BPOOL_T 05230000
WHEN 'BP2' THEN CASE WHEN ELAR_TB_TYPE = 'HS' 05240000
THEN '_FHS=NOK' 05250000
ELSE '=OK' 05260000
END 05270000
WHEN 'BP32K' THEN CASE WHEN ELAR_TB_TYPE = 'HS' 05280000
THEN '=OK' 05290000
ELSE '_FTB=NOK' 05300000
END 05310000
WHEN 'BP8' THEN 05320000
CASE WHEN AUXTBNAME = 'X' 05330000
THEN '=OK' 05340000
ELSE '_LOB=NOK' 05350000
END 05360000
ELSE '_TS=NOK' 05370000
END 05380000
|| ';' 05390000
|| 'Groupbufferpool=' 05400000
|| CASE GBPCACHE 05410000
WHEN ' ' THEN 'OK' 05420000
ELSE 'NOK' 05430000
END 05440000
|| ';' 05450000
|| 'Trackmode=' 05460000
|| CASE TRACKMODE 05470000
WHEN 'N' THEN 'OK' 05480000
ELSE 'NOK' 05490000
END 05500000
|| ';' 05510000
|| 'LoggedOption=' 05520000
|| CASE LOGGED 05530000
WHEN 'Y' THEN 'OK' 05540000
ELSE 'NOK' 05550000
END 05560000
|| ';' 05570000
|| 'DSSIZE=' 05580000
|| CASE WHEN PARTITION > 0 05590000
THEN CASE DSSIZE 05600000
WHEN 16777216 THEN 'OK' 05610000
ELSE 'NOK' 05620000
END 05630000
ELSE 'OK' 05640000
END 05650000
|| ';' 05660000
|| 'Locksize=' 05670000
|| CASE LOCKSIZE 05680000
WHEN 'A' THEN 'OK' 05690000
ELSE 'NOK' 05700000
END 05710000
|| ';' 05720000
|| 'LockMax=' 05730000
|| CASE LOCKMAX 05740000
WHEN -1 THEN 'OK' 05750000
ELSE 'NOK' 05760000
END 05770000
|| ';' 05780000
|| 'CloseOption=' 05790000
|| CASE CLOSE 05800000
WHEN 'Y' THEN 'OK' 05810000
ELSE 'NOK' 05820000
END 05830000
|| ';' 05840000
|| 'TblCompressOption=' 05850000
|| CASE COMPRESS 05860000
WHEN 'Y' THEN 'OK' 05870000
ELSE 'NOK' 05880000
END 05890000
|| ';' 05900000
|| 'StorageGroup=' 05910000
|| CASE STOGROUP 05920000
WHEN 'GSMS1' THEN 'OK' 05930000
WHEN 'GSMS2' THEN 'OK' 05940000
WHEN 'GSMS3' THEN 'OK' 05950000
WHEN 'GSMS4' THEN 'OK' 05960000
ELSE CASE WHEN SUBSTR(DATABASE,1,3) = 'DXB' 05970000
THEN CASE WHEN STOGROUP = 'GSMS' 05980000
THEN 'OK' 05990000
ELSE 'NOK' 06000000
END 06010000
ELSE 'NOK' 06020000
END 06030000
END 06040000
|| ';' 06050000
|| 'PrimaryQuantity=' 06060000
|| CASE PRIQTY 06070000
WHEN -1 THEN 'OK' 06080000
ELSE 'NOK' 06090000
END 06100000
|| ';' 06110000
|| 'SecondaryQuantity=' 06120000
|| CASE SECQTY 06130000
WHEN -1 THEN 'OK' 06140000
ELSE 'NOK' 06150000
END 06160000
|| ';' 06170000
|| 'EncodingScheme=' 06180000
|| CASE WHEN CCID = 'E' THEN 'OK' 06190000
ELSE 'NOK' 06200000
END 06210000
|| ';' 06220000
|| 'DefineOption=' 06230000
|| CASE DEFINE 06240000
WHEN -1 THEN 'NOK' 06250000
ELSE 'OK' 06260000
END 06270000
|| ';' 06280000
|| 'MaxRowsPerPage=' 06290000
|| CASE MAXROWS 06300000
WHEN 255 THEN 'OK' 06310000
ELSE 'NOK' 06320000
END 06330000
|| ';' 06340000
|| 'TSFreepage=' 06350000
|| CASE FREEPAGE 06360000
WHEN 0 THEN 'OK' 06370000
ELSE 'NOK' 06380000
END 06390000
|| ';' 06400000
|| 'TSPctfree=' 06410000
|| CASE PCTFREE 06420000
WHEN 0 THEN 'OK' 06430000
ELSE 'NOK' 06440000
END 06450000
, CREATEDTS 06460000
FROM TSDDL 06470000
) 06480000
SELECT GENERATE_UNIQUE() 06490000
, '2Tablespace Option Check' 06500000
, FAMILY 06510000
, COMMENT 06520000
, OBJECT 06530000
, OPTVALUE 06540000
, CREATEDTS 06550000
FROM RTS 06560000
ORDER BY FAMILY 06570000
, OBJECT 06580000
; 06590000
INSERT INTO SESSION.TEMP 06600000
WITH TBDDL ( FAMILY 06610000
, DATABASE 06620000
, TSNAME 06630000
, TBNAME 06640000
, AUDIT 06650000
, DATA_CAPTURE 06660000
, RESTRICT_DROP 06670000
, CCID 06680000
, VOLATILE 06690000
, APPEND 06700000
, PART_NAME 06710000
, PART_TYPE 06720000
, PART_SEQ 06730000
, PART_ORDER 06740000
, PARTITION 06750000
, PART_LIMITKEY 06760000
, PART_LOGICALKEY 06770000
, COLNO 06780000
, PARTKEYCOLNUM 06790000
, COMMENT 06800000
, CREATEDTS 06810000
) 06820000
AS (SELECT EL.FAMILY 06830000
, CAST(TB.DBNAME AS CHAR(08)) 06840000
, TB.TSNAME 06850000
, TB.NAME 06860000
, TB.AUDITING 06870000
, TB.DATACAPTURE 06880000
, TB.CLUSTERTYPE 06890000
, TB.ENCODING_SCHEME 06900000
, TB.SPLIT_ROWS 06910000
, TB.APPEND 06920000
, TC.NAME 06930000
, TC.COLTYPE 06940000
, TC.PARTKEY_COLSEQ 06950000
, CAST(CASE WHEN TS.PARTITIONS = 0 06960000
THEN ' ' 06970000
ELSE TC.PARTKEY_ORDERING 06980000
END AS CHAR(01)) 06990000
, CAST(TP.PARTITION AS INTEGER) 07000000
, CAST(CASE WHEN TS.PARTITIONS = 0 07010000
THEN '0' 07020000
ELSE STRIP(TP.LIMITKEY) 07030000
END AS VARCHAR(765)) 07040000
, CAST(CASE WHEN TS.PARTITIONS = 0 07050000
THEN 0 07060000
ELSE TP.LOGICAL_PART 07070000
END AS INTEGER) 07080000
, COLNO 07090000
, TB.PARTKEYCOLNUM 07100000
, EL.COMMENT 07110000
, TP.CREATEDTS 07120000
FROM SESSION.ELAR EL 07130000
INNER JOIN SYSIBM.SYSDATABASE DB 07140000
ON EL.STORAR = DB.NAME 07150000
INNER JOIN SYSIBM.SYSTABLES TB 07160000
ON TB.DBNAME = DB.NAME 07170000
AND TB.TYPE = 'T' 07180000
INNER JOIN SYSIBM.SYSCOLUMNS TC 07190000
ON TB.NAME = TC.TBNAME 07200000
AND TB.CREATOR = TC.TBCREATOR 07210000
INNER JOIN SYSIBM.SYSTABLESPACE TS 07220000
ON TB.TSNAME = TS.NAME 07230000
AND TB.DBID = TS.DBID 07240000
AND TS.DBID = DB.DBID 07250000
INNER JOIN SYSIBM.SYSTABLEPART TP 07260000
ON TS.NAME = TP.TSNAME 07270000
AND TS.DBNAME = TP.DBNAME 07280000
WHERE TC.PARTKEY_COLSEQ > 0 07290000
AND DATE(TP.CREATEDTS) 07300000
>= (SELECT CREATE_FROM FROM SESSION.FAMLISTE) 07310000
AND DATE(TP.CREATEDTS) 07320000
<= (SELECT CREATE_TO FROM SESSION.FAMLISTE) 07330000
ORDER BY TB.DBNAME, TB.TSNAME 07340000
, TC.COLNO , TC.PARTKEY_COLSEQ 07350000
) 07360000
, RTB ( FAMILY 07370000
, COMMENT 07380000
, OBJECT 07390000
, OPTVALUE 07400000
, CREATEDTS 07410000
) 07420000
AS (SELECT DISTINCT 07430000
FAMILY 07440000
, COMMENT 07450000
, CAST(DATABASE AS CHAR(08)) 07460000
|| ' ' 07470000
|| TSNAME 07480000
|| ' ' 07490000
|| TBNAME 07500000
, 'Audit=' 07510000
|| CASE AUDIT 07520000
WHEN ' ' THEN 'OK' 07530000
ELSE 'NOK' 07540000
END 07550000
|| ';' 07560000
|| 'DataCapture=' 07570000
|| CASE DATA_CAPTURE 07580000
WHEN 'Y' THEN 'OK' 07590000
ELSE 'NOK' 07600000
END 07610000
|| ';' 07620000
|| 'RestrictOnDrop=' 07630000
|| CASE RESTRICT_DROP 07640000
WHEN 'Y' THEN 'OK' 07650000
ELSE 'NOK' 07660000
END 07670000
|| ';' 07680000
|| 'EncodingScheme=' 07690000
|| CASE CCID 07700000
WHEN 'E' THEN 'OK' 07710000
ELSE 'NOK' 07720000
END 07730000
|| ';' 07740000
|| 'Volatile=' 07750000
|| CASE VOLATILE 07760000
WHEN 'Y' THEN 'OK' 07770000
ELSE 'NOK' 07780000
END 07790000
|| ';' 07800000
|| 'Append=' 07810000
|| CASE APPEND 07820000
WHEN 'Y' THEN 'OK' 07830000
ELSE 'NOK' 07840000
END 07850000
|| ';' 07860000
|| 'PartKeyName=' 07870000
|| CASE WHEN SUBSTR(DATABASE,1,2) = 'XB' 07880000
THEN CASE WHEN PART_SEQ > 0 07890000
THEN CASE PART_NAME 07900000
WHEN 'EN1PART' THEN 'OK' 07910000
ELSE 'NOK' 07920000
END 07930000
ELSE 'NOK' 07940000
END 07950000
ELSE 'OK' 07960000
END 07970000
|| ';' 07980000
|| 'PartKeyType=' 07990000
|| CASE WHEN SUBSTR(DATABASE,1,2) = 'XB' 08000000
THEN CASE WHEN PART_SEQ > 0 08010000
THEN CASE PART_TYPE 08020000
WHEN 'INTEGER' THEN 'OK' 08030000
ELSE 'NOK' 08040000
END 08050000
ELSE 'NOK' 08060000
END 08070000
ELSE 'OK' 08080000
END 08090000
|| ';' 08100000
|| 'PartKeyPosition=' 08110000
|| CASE WHEN SUBSTR(DATABASE,1,2) = 'XB' 08120000
THEN CASE WHEN PART_SEQ > 0 08130000
THEN CASE PART_SEQ 08140000
WHEN 1 THEN 'OK' 08150000
ELSE 'NOK' 08160000
END 08170000
ELSE 'NOK' 08180000
END 08190000
ELSE 'OK' 08200000
END 08210000
|| ';' 08220000
|| 'PartKeyOrder=' 08230000
|| CASE WHEN SUBSTR(DATABASE,1,2) = 'XB' 08240000
THEN CASE WHEN PART_SEQ > 0 08250000
THEN CASE PART_ORDER 08260000
WHEN 'A' THEN 'OK' 08270000
ELSE 'NOK' 08280000
END 08290000
ELSE 'NOK' 08300000
END 08310000
ELSE 'OK' 08320000
END 08330000
|| ';' 08340000
|| 'PartKeyValue(s)=' 08350000
|| CASE 08360000
WHEN SUBSTR(DATABASE,1,2) = 'XB' 08370000
THEN CASE 08380000
WHEN PART_SEQ > 0 08390000
THEN CASE 08400000
WHEN CHAR(PARTITION) = PART_LIMITKEY 08410000
THEN CASE 08420000
WHEN PART_LIMITKEY 08430000
= CHAR(PART_LOGICALKEY) 08440000
THEN 'OK' 08450000
ELSE 'NOK' 08460000
END 08470000
ELSE 'NOK' 08480000
END 08490000
ELSE 'NOK' 08500000
END 08510000
ELSE 'OK' 08520000
END 08530000
|| ';' 08540000
|| 'PartKeyColNum=' 08550000
|| CASE WHEN SUBSTR(DATABASE,1,2) = 'XB' 08560000
THEN CASE WHEN PARTKEYCOLNUM = 1 08570000
THEN 'OK' 08580000
ELSE 'NOK' 08590000
END 08600000
ELSE 'OK' 08610000
END 08620000
AS OPTVALUE 08630000
, CREATEDTS 08640000
FROM TBDDL 08650000
) 08660000
SELECT GENERATE_UNIQUE() 08670000
, '3Table Option Check' 08680000
, FAMILY 08690000
, COMMENT 08700000
, OBJECT 08710000
, OPTVALUE 08720000
, CREATEDTS 08730000
FROM RTB 08740000
ORDER BY FAMILY 08750000
, OBJECT 08760000
; 08770000
INSERT INTO SESSION.TEMP 08780000
WITH XSTMP ( FAMILY 08790000
, DATABASE 08800000
, TBNAME 08810000
, IXNAME 08820000
, IXCREATOR 08830000
, BPOOL_I 08840000
, INDEXTYPE 08850000
, PARTITION 08860000
, STOGROUP 08870000
, PRIQTY 08880000
, SECQTY 08890000
, GBPCACHE 08900000
, PGSIZE 08910000
, FREEPAGE 08920000
, PCTFREE 08930000
, COMPRESS 08940000
, CLOSE 08950000
, COPY 08960000
, DEFINE 08970000
, CLUSTERING 08980000
, TSPARTITION 08990000
, TPIXNAME 09000000
, PIECESIZE 09010000
, TSPGSIZE 09020000
, COMMENT 09030000
, CREATEDTS 09040000
) 09050000
AS (SELECT DISTINCT 09060000
EL.FAMILY 09070000
, DB.NAME 09080000
, IX.TBNAME 09090000
, IX.NAME 09100000
, IX.CREATOR 09110000
, IX.BPOOL 09120000
, IX.INDEXTYPE 09130000
, (SELECT MAX(TMP.PARTITION) 09140000
FROM SYSIBM.SYSINDEXPART TMP 09150000
WHERE TMP.IXNAME = IX.NAME 09160000
AND TMP.IXCREATOR = IX.CREATOR 09170000
) 09180000
, XP.STORNAME 09190000
, XP.PQTY 09200000
, XP.SQTY 09210000
, XP.GBPCACHE 09220000
, IX.PGSIZE 09230000
, XP.FREEPAGE 09240000
, XP.PCTFREE 09250000
, IX.COMPRESS 09260000
, IX.CLOSERULE 09270000
, IX.COPY 09280000
, XP.SPACE 09290000
, IX.CLUSTERING 09300000
, (SELECT TMP.PARTITIONS 09310000
FROM SYSIBM.SYSTABLESPACE TMP 09320000
WHERE TMP.DBID = DB.DBID 09330000
AND TMP.DBID = IX.DBID 09340000
AND TMP.NAME = TB.TSNAME 09350000
) 09360000
, (SELECT TMP.IXNAME 09370000
FROM SYSIBM.SYSTABLEPART TMP 09380000
WHERE TMP.TSNAME = TS.NAME 09390000
AND TMP.DBNAME = TS.DBNAME 09400000
FETCH FIRST 1 ROW ONLY 09410000
) 09420000
, IX.PIECESIZE 09430000
, TS.PGSIZE 09440000
, EL.COMMENT 09450000
, XP.CREATEDTS 09460000
FROM SESSION.ELAR EL 09470000
INNER JOIN SYSIBM.SYSDATABASE DB 09480000
ON EL.STORAR = DB.NAME 09490000
INNER JOIN SYSIBM.SYSINDEXES IX 09500000
ON DB.DBID = IX.DBID 09510000
INNER JOIN SYSIBM.SYSTABLES TB 09520000
ON IX.TBNAME = TB.NAME 09530000
AND IX.DBNAME = TB.DBNAME 09540000
AND IX.DBID = TB.DBID 09550000
AND TB.DBID = DB.DBID 09560000
INNER JOIN SYSIBM.SYSTABLESPACE TS 09570000
ON TB.TSNAME = TS.NAME 09580000
AND TS.DBID = TB.DBID 09590000
AND TS.DBID = IX.DBID 09600000
AND TS.DBID = DB.DBID 09610000
INNER JOIN SYSIBM.SYSINDEXPART XP 09620000
ON IX.NAME = XP.IXNAME 09630000
AND IX.CREATOR = XP.IXCREATOR 09640000
WHERE DATE(XP.CREATEDTS) 09650000
>= (SELECT CREATE_FROM FROM SESSION.FAMLISTE) 09660000
AND DATE(XP.CREATEDTS) 09670000
<= (SELECT CREATE_TO FROM SESSION.FAMLISTE) 09680000
) 09690000
, IXDDL ( FAMILY 09700000
, DATABASE 09710000
, TBNAME 09720000
, IXNAME 09730000
, BPOOL_I 09740000
, INDEXTYPE 09750000
, PARTITION 09760000
, STOGROUP 09770000
, PRIQTY 09780000
, SECQTY 09790000
, GBPCACHE 09800000
, PGSIZE 09810000
, FREEPAGE 09820000
, PCTFREE 09830000
, COMPRESS 09840000
, CLOSE 09850000
, COPY 09860000
, DEFINE 09870000
, CLUSTERING 09880000
, CNT_KEYS 09890000
, CLUSTERKEY 09900000
, TSPARTITION 09910000
, TPIXNAME 09920000
, PIECESIZE 09930000
, TSPGSIZE 09940000
, IXTECHBUSINESS 09950000
, COMMENT 09960000
, CREATEDTS 09970000
) 09980000
AS (SELECT T1.FAMILY 09990000
, T1.DATABASE 10000000
, T1.TBNAME 10010000
, T1.IXNAME 10020000
, T1.BPOOL_I 10030000
, T1.INDEXTYPE 10040000
, T1.PARTITION 10050000
, T1.STOGROUP 10060000
, T1.PRIQTY 10070000
, T1.SECQTY 10080000
, T1.GBPCACHE 10090000
, T1.PGSIZE 10100000
, T1.FREEPAGE 10110000
, T1.PCTFREE 10120000
, T1.COMPRESS 10130000
, T1.CLOSE 10140000
, T1.COPY 10150000
, T1.DEFINE 10160000
, T1.CLUSTERING 10170000
, (SELECT MAX(SK.COLSEQ) 10180000
FROM SYSIBM.SYSKEYS SK 10190000
WHERE T1.IXCREATOR = SK.IXCREATOR 10200000
AND T1.IXNAME = SK.IXNAME 10210000
AND T1.CLUSTERING = 'Y' 10220000
AND SK.COLSEQ = 1 10230000
) AS CNT_KEYS 10240000
, (SELECT SK.COLNAME 10250000
FROM SYSIBM.SYSKEYS SK 10260000
WHERE T1.IXCREATOR = SK.IXCREATOR 10270000
AND T1.IXNAME = SK.IXNAME 10280000
AND T1.CLUSTERING = 'Y' 10290000
AND SK.COLSEQ = 1 10300000
) AS CLUSTERKEY 10310000
, T1.TSPARTITION 10320000
, T1.TPIXNAME 10330000
, T1.PIECESIZE 10340000
, T1.TSPGSIZE 10350000
, (SELECT COUNT(*) 10360000
FROM SYSIBM.SYSKEYS IK 10370000
WHERE IK.IXNAME = T1.IXNAME 10380000
AND ( IK.COLNAME LIKE '%ATRN%' 10390000
OR IK.COLNAME LIKE '%STRN%' 10400000
) 10410000
) AS IXTECHBUSINESS 10420000
, T1.COMMENT 10430000
, T1.CREATEDTS 10440000
FROM XSTMP T1 10450000
) 10460000
, RXS ( FAMILY 10470000
, COMMENT 10480000
, OBJECT 10490000
, OPTVALUE 10500000
, CREATEDTS 10510000
) 10520000
AS (SELECT DISTINCT 10530000
FAMILY 10540000
, COMMENT 10550000
, CAST(DATABASE AS CHAR(08)) 10560000
|| ' ' 10570000
|| IXNAME 10580000
|| ' ' 10590000
|| TBNAME 10600000
, 'NoIndexExists=' 10610000
|| CASE WHEN LENGTH(STRIP(IXNAME)) = 0 10620000
THEN 'NOK' 10630000
ELSE 'OK' 10640000
END 10650000
|| ';' 10660000
|| 'NPI=' 10670000
|| CASE WHEN PARTITION + TSPARTITION = 0 10680000
THEN 'OK' 10690000
ELSE CASE WHEN TSPARTITION > 0 AND PIECESIZE = 0 10700000
THEN 'OK' 10710000
ELSE CASE WHEN PARTITION > 0 AND 10720000
PIECESIZE > 0 10730000
THEN 'OK' 10740000
ELSE 'NOK' 10750000
END 10760000
END 10770000
END 10780000
|| ';' 10790000
|| 'Indextype=' 10800000
|| CASE INDEXTYPE 10810000
WHEN 'D' then case when tspartition > 0 10820000
then 'OK' 10830000
else 'NOK' 10840000
end 10850000
WHEN 'P' then case when tspartition > 0 10860000
then 'OK' 10870000
else 'NOK' 10880000
end 10890000
WHEN ' ' then case when tspartition > 0 10900000
then 'NOK' 10910000
else 'OK' 10920000
end 10930000
WHEN '2' then case when tspartition > 0 10940000
then 'NOK' 10950000
else 'OK' 10960000
end 10970000
ELSE 'NOK' 10980000
END 10990000
|| ';' 11000000
|| 'IndexPartLimit=' 11010000
|| CASE WHEN PARTITION > (SELECT MAXPART 11020000
FROM SESSION.MAXPART 11030000
WHERE PARTYPE = 'Index' 11040000
) 11050000
THEN 'NOK' 11060000
ELSE 'OK' 11070000
END 11080000
|| ';' 11090000
|| 'Bufferpool=' 11100000
|| CASE BPOOL_I 11110000
WHEN 'BP1' THEN 'OK' 11120000
ELSE 'NOK' 11130000
END 11140000
|| ';' 11150000
|| 'GroupBufferPool=' 11160000
|| CASE GBPCACHE 11170000
WHEN ' ' THEN 'OK' 11180000
ELSE 'NOK' 11190000
END 11200000
|| ';' 11210000
|| 'Pagesize=' 11220000
|| CASE WHEN TSPGSIZE = PGSIZE 11230000
THEN 'OK' 11240000
ELSE 'OK' 11250000
END 11260000
|| ';' 11270000
|| 'CloseOption=' 11280000
|| CASE CLOSE 11290000
WHEN 'Y' THEN 'OK' 11300000
ELSE 'NOK' 11310000
END 11320000
|| ';' 11330000
|| 'IdxCompressOption=' 11340000
|| CASE COMPRESS 11350000
WHEN 'N' THEN 'OK' 11360000
ELSE 'NOK' 11370000
END 11380000
|| ';' 11390000
|| 'StorageGroup=' 11400000
|| CASE STOGROUP 11410000
WHEN 'GSMS1' THEN 'OK' 11420000
WHEN 'GSMS2' THEN 'OK' 11430000
WHEN 'GSMS3' THEN 'OK' 11440000
WHEN 'GSMS4' THEN 'OK' 11450000
ELSE CASE WHEN SUBSTR(DATABASE,1,3) = 'DXB' 11460000
THEN CASE WHEN STOGROUP = 'GSMS' 11470000
THEN 'OK' 11480000
ELSE 'NOK' 11490000
END 11500000
ELSE 'NOK' 11510000
END 11520000
END 11530000
|| ';' 11540000
|| 'PrimaryQuantity=' 11550000
|| CASE PRIQTY 11560000
WHEN -1 THEN 'OK' 11570000
ELSE 'NOK' 11580000
END 11590000
|| ';' 11600000
|| 'SecondaryQuantity=' 11610000
|| CASE SECQTY 11620000
WHEN -1 THEN 'OK' 11630000
ELSE 'NOK' 11640000
END 11650000
|| ';' 11660000
|| 'Define=' 11670000
|| CASE DEFINE 11680000
WHEN -1 THEN 'NOK' 11690000
ELSE 'OK' 11700000
END 11710000
|| ';' 11720000
|| 'FreePage' 11730000
|| CASE FREEPAGE 11740000
WHEN 0 THEN '=OK' 11750000
ELSE '=NOK' 11760000
END 11770000
|| ';' 11780000
|| 'PctFree' 11790000
|| CASE WHEN SUBSTR(DATABASE,1,3) = 'DXB' 11800000
THEN '_Metadata=OK' 11810000
ELSE 11820000
CASE WHEN IXTECHBUSINESS > 0 11830000
THEN CASE PCTFREE 11840000
WHEN 0 THEN '_Technical=OK' 11850000
ELSE '_Technical=NOK' 11860000
END 11870000
ELSE CASE PCTFREE 11880000
WHEN 10 THEN '_Business=OK' 11890000
ELSE '_Business=NOK' 11900000
END 11910000
END 11920000
END 11930000
|| ';' 11940000
|| 'Copy=' 11950000
|| CASE COPY 11960000
WHEN 'N' THEN 'OK' 11970000
ELSE 'NOK' 11980000
END 11990000
, CREATEDTS 12000000
FROM IXDDL 12010000
) 12020000
SELECT GENERATE_UNIQUE() 12030000
, '4Indexspace Option Check' 12040000
, FAMILY 12050000
, COMMENT 12060000
, OBJECT 12070000
, OPTVALUE 12080000
, CREATEDTS 12090000
FROM RXS 12100000
ORDER BY FAMILY 12110000
, OBJECT 12120000
; 12130000
INSERT INTO SESSION.TEMP 12140000
WITH IXTYPE_FAILURE ( INDEXTYPE 12150000
) 12160000
AS ( SELECT 'C' 12170000
FROM SYSIBM.SYSDUMMY1 12180000
UNION ALL 12190000
SELECT 'N' 12200000
FROM SYSIBM.SYSDUMMY1 12210000
UNION ALL 12220000
SELECT 'R' 12230000
FROM SYSIBM.SYSDUMMY1 12240000
UNION ALL 12250000
SELECT 'G' 12260000
FROM SYSIBM.SYSDUMMY1 12270000
UNION ALL 12280000
SELECT 'X' 12290000
FROM SYSIBM.SYSDUMMY1 12300000
) 12310000
, IXTYPE_UNIQUE ( INDEXTYPE 12320000
) 12330000
AS ( SELECT 'P' 12340000
FROM SYSIBM.SYSDUMMY1 12350000
UNION ALL 12360000
SELECT 'U' 12370000
FROM SYSIBM.SYSDUMMY1 12380000
) 12390000
, IXTYPE ( INDEXTYPE 12400000
) 12410000
AS ( SELECT 'C' 12420000
FROM SYSIBM.SYSDUMMY1 12430000
UNION ALL 12440000
SELECT 'D' 12450000
FROM SYSIBM.SYSDUMMY1 12460000
UNION ALL 12470000
SELECT 'U' 12480000
FROM SYSIBM.SYSDUMMY1 12490000
UNION ALL 12500000
SELECT 'P' 12510000
FROM SYSIBM.SYSDUMMY1 12520000
UNION ALL 12530000
SELECT 'N' 12540000
FROM SYSIBM.SYSDUMMY1 12550000
UNION ALL 12560000
SELECT 'R' 12570000
FROM SYSIBM.SYSDUMMY1 12580000
UNION ALL 12590000
SELECT 'G' 12600000
FROM SYSIBM.SYSDUMMY1 12610000
UNION ALL 12620000
SELECT 'X' 12630000
FROM SYSIBM.SYSDUMMY1 12640000
) 12650000
, IXLST ( FAMILY 12660000
, DATABASE 12670000
, TBNAME 12680000
, IXNAME 12690000
, IXCREATOR 12700000
, ELAR_TYPE 12710000
, ELAR_ORDER 12720000
, UNIQUERULE 12730000
, CLUSTERING 12740000
, MAXCOL 12750000
, EN1PART 12760000
, EA1ATRN 12770000
, EA1STRN 12780000
, EN1STK1 12790000
, EN1STK2 12800000
, EATRNVON 12810000
, EATRNBIS 12820000
, COMMENT 12830000
, CREATEDTS 12840000
) 12850000
AS (SELECT DISTINCT 12860000
EL.FAMILY 12870000
, DB.NAME 12880000
, TB.NAME 12890000
, IFNULL(IX.NAME,'NOK') 12900000
, IX.CREATOR 12910000
, CAST(CASE SUBSTR(TB.NAME,9,2) 12920000
WHEN 'HS' THEN 'SIGNATUR' 12930000
WHEN 'IT' THEN 'BODY ' 12940000
WHEN 'PM' THEN 'MULTIPLE' 12950000
ELSE CASE SUBSTR(TB.NAME,9,5) 12960000
WHEN 'PS001' THEN 'AOP ' 12970000
WHEN 'PS002' THEN 'SEP ' 12980000
WHEN 'PS003' THEN 'SEP_2 ' 12990000
ELSE '??????? ' 13000000
END 13010000
END 13020000
AS CHAR(08) 13030000
) 13040000
, CAST(CASE SUBSTR(TB.NAME,9,2) 13050000
WHEN 'HS' THEN '6' 13060000
WHEN 'IT' THEN '4' 13070000
WHEN 'PM' THEN '5' 13080000
ELSE CASE SUBSTR(TB.NAME,9,5) 13090000
WHEN 'PS001' THEN '1' 13100000
WHEN 'PS002' THEN '2' 13110000
WHEN 'PS003' THEN '3' 13120000
ELSE '7' 13130000
END 13140000
END 13150000
AS CHAR(01) 13160000
) 13170000
, IFNULL(IX.UNIQUERULE,'NOK') AS UNIQUERULE 13180000
, IFNULL(IX.CLUSTERING,'NOK') AS CLUSTERING 13190000
, (SELECT COUNT(*) 13200000
FROM SYSIBM.SYSKEYS SK 13210000
WHERE IX.NAME = SK.IXNAME 13220000
AND IX.CREATOR = SK.IXCREATOR 13230000
) AS MAXCOL 13240000
, IFNULL((SELECT SK.COLSEQ 13250000
FROM SYSIBM.SYSKEYS SK 13260000
WHERE IX.NAME = SK.IXNAME 13270000
AND IX.CREATOR = SK.IXCREATOR 13280000
AND SK.COLNAME = 'EN1PART' 13290000
), -1) AS EN1PART 13300000
, IFNULL((SELECT SK.COLSEQ 13310000
FROM SYSIBM.SYSKEYS SK 13320000
WHERE IX.NAME = SK.IXNAME 13330000
AND IX.CREATOR = SK.IXCREATOR 13340000
AND SK.COLNAME = 'EA1ATRN' 13350000
), -1) AS EA1ATRN 13360000
, IFNULL((SELECT SK.COLSEQ 13370000
FROM SYSIBM.SYSKEYS SK 13380000
WHERE IX.NAME = SK.IXNAME 13390000
AND IX.CREATOR = SK.IXCREATOR 13400000
AND SK.COLNAME = 'EA1STRN' 13410000
), -1) AS EA1STRN 13420000
, IFNULL((SELECT SK.COLSEQ 13430000
FROM SYSIBM.SYSKEYS SK 13440000
WHERE IX.NAME = SK.IXNAME 13450000
AND IX.CREATOR = SK.IXCREATOR 13460000
AND SK.COLNAME = 'EN1STK1' 13470000
), -1) AS EN1STK1 13480000
, IFNULL((SELECT SK.COLSEQ 13490000
FROM SYSIBM.SYSKEYS SK 13500000
WHERE IX.NAME = SK.IXNAME 13510000
AND IX.CREATOR = SK.IXCREATOR 13520000
AND SK.COLNAME = 'EN1STK2' 13530000
), -1) AS EN1STK2 13540000
, IFNULL((SELECT SK.COLSEQ 13550000
FROM SYSIBM.SYSKEYS SK 13560000
WHERE IX.NAME = SK.IXNAME 13570000
AND IX.CREATOR = SK.IXCREATOR 13580000
AND SK.COLNAME = 'EATRNVON' 13590000
), -1) AS EATRNVON 13600000
, IFNULL((SELECT SK.COLSEQ 13610000
FROM SYSIBM.SYSKEYS SK 13620000
WHERE IX.NAME = SK.IXNAME 13630000
AND IX.CREATOR = SK.IXCREATOR 13640000
AND SK.COLNAME = 'EATRNBIS' 13650000
), -1) AS EATRNBIS 13660000
, EL.COMMENT 13670000
, IFNULL(IX.CREATEDTS, '0001-01-01-00.00.00.000000') 13680000
--- ProblemProblem 13690000
FROM SESSION.ELAR EL 13700000
INNER JOIN SYSIBM.SYSDATABASE DB 13710000
ON EL.STORAR = DB.NAME 13720000
INNER JOIN SYSIBM.SYSTABLES TB 13730000
ON TB.DBNAME = DB.NAME 13740000
AND TB.TYPE = 'T' 13750000
INNER JOIN SYSIBM.SYSTABLESPACE TS 13760000
ON TB.TSNAME = TS.NAME 13770000
AND TB.DBID = TS.DBID 13780000
AND TS.DBID = DB.DBID 13790000
LEFT OUTER JOIN SYSIBM.SYSINDEXES IX 13800000
ON IX.TBNAME = TB.NAME 13810000
LEFT OUTER JOIN IXTYPE TY 13820000
ON IX.INDEXTYPE = TY.INDEXTYPE 13830000
WHERE DATE(DB.CREATEDTS) 13840000
>= (SELECT CREATE_FROM FROM SESSION.FAMLISTE ) 13850000
AND DATE(DB.CREATEDTS) 13860000
<= (SELECT CREATE_TO FROM SESSION.FAMLISTE ) 13870000
AND DATE(TB.CREATEDTS) 13880000
>= (SELECT CREATE_FROM FROM SESSION.FAMLISTE ) 13890000
AND DATE(TB.CREATEDTS) 13900000
<= (SELECT CREATE_TO FROM SESSION.FAMLISTE ) 13910000
AND DATE(TS.CREATEDTS) 13920000
>= (SELECT CREATE_FROM FROM SESSION.FAMLISTE ) 13930000
AND DATE(TS.CREATEDTS) 13940000
<= (SELECT CREATE_TO FROM SESSION.FAMLISTE ) 13950000
AND DATE(IX.CREATEDTS) 13960000
>= (SELECT CREATE_FROM FROM SESSION.FAMLISTE ) 13970000
AND DATE(IX.CREATEDTS) 13980000
<= (SELECT CREATE_TO FROM SESSION.FAMLISTE ) 13990000
) 14000000
, RXI ( FAMILY 14010000
, COMMENT 14020000
, OBJECT 14030000
, OPTVALUE 14040000
, CREATEDTS 14050000
) 14060000
AS (SELECT FAMILY 14070000
, COMMENT 14080000
, CAST(DATABASE AS CHAR(08)) 14090000
|| ' ' 14100000
|| TBNAME 14110000
|| ' ' 14120000
, 'No' 14130000
|| ' ' 14140000
|| 'Index' 14150000
|| ' ' 14160000
|| 'exists=NOK' 14170000
|| ';' 14180000
, CREATEDTS 14190000
FROM IXLST 14200000
WHERE UNIQUERULE = 'NOK' 14210000
UNION ALL 14220000
SELECT FAMILY 14230000
, COMMENT 14240000
, CAST(DATABASE AS CHAR(08)) 14250000
|| ' ' 14260000
|| IXNAME 14270000
|| ' ' 14280000
|| TBNAME 14290000
|| ' ' 14300000
|| 'IndexType_Failure' 14310000
, 'IndexType_Failure=NOK' 14320000
|| ';' 14330000
, CREATEDTS 14340000
FROM IXLST 14350000
WHERE UNIQUERULE IN (SELECT INDEXTYPE 14360000
FROM IXTYPE_FAILURE 14370000
) 14380000
UNION ALL 14390000
SELECT FAMILY 14400000
, COMMENT 14410000
, CAST(DATABASE AS CHAR(08)) 14420000
|| ' ' 14430000
|| IXNAME 14440000
|| ' ' 14450000
|| TBNAME 14460000
|| ' ' 14470000
|| 'IndexRule=Unique' 14480000
, 'EN1PART_MIS=' 14490000
|| CASE WHEN EN1PART = -1 14500000
THEN 'NOK' 14510000
ELSE 'OK' 14520000
END 14530000
|| ';' 14540000
|| 'EN1PART_WPOS=' 14550000
|| CASE WHEN EN1PART = 2 14560000
THEN 'OK' 14570000
ELSE 'NOK' 14580000
END 14590000
|| ';' 14600000
|| 'EA1ARTN_MIS=' 14610000
|| CASE WHEN EA1ATRN = -1 14620000
THEN 'NOK' 14630000
ELSE 'OK' 14640000
END 14650000
|| ';' 14660000
|| 'EA1ARTN_WPOS=' 14670000
|| CASE WHEN EA1ATRN = 1 14680000
THEN 'OK' 14690000
ELSE 'NOK' 14700000
END 14710000
|| ';' 14720000
|| 'CLUSTER_DEF=' 14730000
|| CASE CLUSTERING 14740000
WHEN 'Y' THEN 'OK' 14750000
ELSE 'NOK' 14760000
END 14770000
|| ';' 14780000
|| 'TooManyCols=' 14790000
|| CASE MAXCOL 14800000
WHEN 2 THEN 'OK' 14810000
ELSE 'NOK' 14820000
END 14830000
|| ';' 14840000
, CREATEDTS 14850000
FROM IXLST 14860000
WHERE ELAR_TYPE = 'AOP' 14870000
AND UNIQUERULE IN (SELECT INDEXTYPE 14880000
FROM IXTYPE_UNIQUE 14890000
) 14900000
AND SUBSTR(DATABASE,1,2) = 'XB' 14910000
UNION ALL 14920000
SELECT FAMILY 14930000
, COMMENT 14940000
, CAST(DATABASE AS CHAR(08)) 14950000
|| ' ' 14960000
|| IXNAME 14970000
|| ' ' 14980000
|| TBNAME 14990000
|| ' ' 15000000
|| 'IndexRule=Unique' 15010000
, 'EN1PART_MIS=' 15020000
|| CASE WHEN EN1PART = -1 15030000
THEN 'NOK' 15040000
ELSE 'OK' 15050000
END 15060000
|| ';' 15070000
|| 'EA1STRN_MIS=' 15080000
|| CASE WHEN EA1STRN = -1 15090000
THEN 'NOK' 15100000
ELSE 'OK' 15110000
END 15120000
|| ';' 15130000
|| 'EN1PART_WPOS=' 15140000
|| CASE WHEN EN1PART = 2 15150000
THEN 'OK' 15160000
ELSE 'NOK' 15170000
END 15180000
|| ';' 15190000
|| 'EA1STRN_WPOS=' 15200000
|| CASE WHEN EA1STRN = 1 15210000
THEN 'OK' 15220000
ELSE 'NOK' 15230000
END 15240000
|| ';' 15250000
|| 'CLUSTER_DEF=' 15260000
|| CASE CLUSTERING 15270000
WHEN 'Y' THEN 'OK' 15280000
ELSE 'NOK' 15290000
END 15300000
|| ';' 15310000
|| 'TooManyCols=' 15320000
|| CASE MAXCOL 15330000
WHEN 2 THEN 'OK' 15340000
ELSE 'NOK' 15350000
END 15360000
|| ';' 15370000
, CREATEDTS 15380000
FROM IXLST 15390000
WHERE ELAR_TYPE IN ('SEP', 'SEP_2') 15400000
AND UNIQUERULE IN (SELECT INDEXTYPE 15410000
FROM IXTYPE_UNIQUE 15420000
) 15430000
AND SUBSTR(DATABASE,1,2) = 'XB' 15440000
UNION ALL 15450000
SELECT FAMILY 15460000
, COMMENT 15470000
, CAST(DATABASE AS CHAR(08)) 15480000
|| ' ' 15490000
|| IXNAME 15500000
|| ' ' 15510000
|| TBNAME 15520000
|| ' ' 15530000
|| 'IndexRule=Unique' 15540000
, 'EN1PART_MIS=' 15550000
|| CASE WHEN EN1PART = -1 15560000
THEN 'NOK' 15570000
ELSE 'OK' 15580000
END 15590000
|| ';' 15600000
|| 'EA1STRN_MIS=' 15610000
|| CASE WHEN EA1STRN = -1 15620000
THEN 'NOK' 15630000
ELSE 'OK' 15640000
END 15650000
|| ';' 15660000
|| 'EN1STK1_MIS=' 15670000
|| CASE WHEN EN1STK1 = -1 15680000
THEN 'NOK' 15690000
ELSE 'OK' 15700000
END 15710000
|| ';' 15720000
|| 'EN1STK2_MIS=' 15730000
|| CASE WHEN EN1STK2 = -1 15740000
THEN 'NOK' 15750000
ELSE 'OK' 15760000
END 15770000
|| ';' 15780000
|| 'EN1PART_WPOS=' 15790000
|| CASE WHEN EN1PART = 4 15800000
THEN 'OK' 15810000
ELSE 'NOK' 15820000
END 15830000
|| ';' 15840000
|| 'EA1STRN_WPOS=' 15850000
|| CASE WHEN EA1STRN = 1 15860000
THEN 'OK' 15870000
ELSE 'NOK' 15880000
END 15890000
|| ';' 15900000
|| 'EN1STK1_WPOS=' 15910000
|| CASE WHEN EN1STK1 = 2 15920000
THEN 'OK' 15930000
ELSE 'NOK' 15940000
END 15950000
|| ';' 15960000
|| 'EN1STK2_WPOS=' 15970000
|| CASE WHEN EN1STK2 = 3 15980000
THEN 'OK' 15990000
ELSE 'NOK' 16000000
END 16010000
|| ';' 16020000
|| 'CLUSTER_DEF=' 16030000
|| CASE CLUSTERING 16040000
WHEN 'Y' THEN 'OK' 16050000
ELSE 'NOK' 16060000
END 16070000
|| ';' 16080000
|| 'TooManyCols=' 16090000
|| CASE MAXCOL 16100000
WHEN 4 THEN 'OK' 16110000
ELSE 'NOK' 16120000
END 16130000
|| ';' 16140000
, CREATEDTS 16150000
FROM IXLST 16160000
WHERE ELAR_TYPE = 'BODY' 16170000
AND UNIQUERULE IN (SELECT INDEXTYPE 16180000
FROM IXTYPE_UNIQUE 16190000
) 16200000
AND SUBSTR(DATABASE,1,2) = 'XB' 16210000
UNION ALL 16220000
SELECT FAMILY 16230000
, COMMENT 16240000
, CAST(DATABASE AS CHAR(08)) 16250000
|| ' ' 16260000
|| IXNAME 16270000
|| ' ' 16280000
|| TBNAME 16290000
|| ' ' 16300000
|| 'IndexRule=Unique' 16310000
, 'EN1PART_MIS=' 16320000
|| CASE WHEN EN1PART = -1 16330000
THEN 'NOK' 16340000
ELSE 'OK' 16350000
END 16360000
|| ';' 16370000
|| 'EA1ATRN_MIS=' 16380000
|| CASE WHEN EA1ATRN = -1 16390000
THEN 'NOK' 16400000
ELSE 'OK' 16410000
END 16420000
|| ';' 16430000
|| 'EN1PART_WPOS=' 16440000
|| CASE WHEN EN1PART = 2 16450000
THEN 'OK' 16460000
ELSE 'NOK' 16470000
END 16480000
|| ';' 16490000
|| 'EA1ATRN_MIS=' 16500000
|| CASE WHEN EA1ATRN = 1 16510000
THEN 'OK' 16520000
ELSE 'NOK' 16530000
END 16540000
|| ';' 16550000
|| 'CLUSTER_DEF=' 16560000
|| CASE CLUSTERING 16570000
WHEN 'N' THEN 'OK' 16580000
ELSE 'NOK' 16590000
END 16600000
|| ';' 16610000
|| 'TooManyCols=' 16620000
|| CASE MAXCOL 16630000
WHEN 2 THEN 'OK' 16640000
ELSE 'NOK' 16650000
END 16660000
|| ';' 16670000
, CREATEDTS 16680000
FROM IXLST 16690000
WHERE ELAR_TYPE = 'MULTIPLE' 16700000
AND UNIQUERULE IN (SELECT INDEXTYPE 16710000
FROM IXTYPE_UNIQUE 16720000
) 16730000
AND SUBSTR(DATABASE,1,2) = 'XB' 16740000
UNION ALL 16750000
SELECT FAMILY 16760000
, COMMENT 16770000
, CAST(DATABASE AS CHAR(08)) 16780000
|| ' ' 16790000
|| IXNAME 16800000
|| ' ' 16810000
|| TBNAME 16820000
|| ' ' 16830000
|| 'IndexRule=Unique' 16840000
, 'EN1PART_MIS=' 16850000
|| CASE WHEN EN1PART = -1 16860000
THEN 'NOK' 16870000
ELSE 'OK' 16880000
END 16890000
|| ';' 16900000
|| 'EATRNVON_MIS=' 16910000
|| CASE WHEN EATRNVON = -1 16920000
THEN 'NOK' 16930000
ELSE 'OK' 16940000
END 16950000
|| ';' 16960000
|| 'EATRNBIS_MIS=' 16970000
|| CASE WHEN EATRNBIS = -1 16980000
THEN 'NOK' 16990000
ELSE 'OK' 17000000
END 17010000
|| ';' 17020000
|| 'EN1PART_WPOS=' 17030000
|| CASE WHEN EN1PART = 3 17040000
THEN 'OK' 17050000
ELSE 'NOK' 17060000
END 17070000
|| ';' 17080000
|| 'EATRNVON_WPOS=' 17090000
|| CASE WHEN EATRNVON = 1 17100000
THEN 'OK' 17110000
ELSE 'NOK' 17120000
END 17130000
|| ';' 17140000
|| 'EATRNBIS_MIS=' 17150000
|| CASE WHEN EATRNBIS = 2 17160000
THEN 'OK' 17170000
ELSE 'NOK' 17180000
END 17190000
|| ';' 17200000
|| 'TooManyCols=' 17210000
|| CASE MAXCOL 17220000
WHEN 3 THEN 'OK' 17230000
ELSE 'NOK' 17240000
END 17250000
|| ';' 17260000
|| 'CLUSTER_DEF=' 17270000
|| CASE CLUSTERING 17280000
WHEN 'N' THEN 'OK' 17290000
ELSE 'NOK' 17300000
END 17310000
|| ';' 17320000
, CREATEDTS 17330000
FROM IXLST 17340000
WHERE ELAR_TYPE = 'SIGNATUR' 17350000
AND UNIQUERULE IN (SELECT INDEXTYPE 17360000
FROM IXTYPE_UNIQUE 17370000
) 17380000
AND SUBSTR(DATABASE,1,2) = 'XB' 17390000
UNION ALL 17400000
SELECT FAMILY 17410000
, COMMENT 17420000
, CAST(DATABASE AS CHAR(08)) 17430000
|| ' ' 17440000
|| IXNAME 17450000
|| ' ' 17460000
|| TBNAME 17470000
|| ' ' 17480000
|| 'IndexRule=Duplicate' 17490000
, 'EN1PART_FAIL=' 17500000
|| CASE WHEN EN1PART > -1 17510000
THEN 'NOK' 17520000
ELSE 'OK' 17530000
END 17540000
|| ';' 17550000
|| 'EA1ATRN_MIS=' 17560000
|| CASE WHEN EA1ATRN = -1 17570000
THEN 'NOK' 17580000
ELSE 'OK' 17590000
END 17600000
|| ';' 17610000
|| 'EA1ATRN_WPOS=' 17620000
|| CASE WHEN EA1ATRN = 1 17630000
THEN 'NOK' 17640000
ELSE 'OK' 17650000
END 17660000
|| ';' 17670000
|| 'TooManyCols=' 17680000
|| CASE MAXCOL 17690000
WHEN 1 THEN 'OK' 17700000
ELSE 'NOK' 17710000
END 17720000
|| ';' 17730000
|| 'CLUSTER_DEF=' 17740000
|| CASE CLUSTERING 17750000
WHEN 'Y' THEN 'OK' 17760000
ELSE 'NOK' 17770000
END 17780000
|| ';' 17790000
, CREATEDTS 17800000
FROM IXLST 17810000
WHERE ELAR_TYPE = 'MULTIPLE' 17820000
AND UNIQUERULE IN (SELECT INDEXTYPE 17830000
FROM IXTYPE_UNIQUE 17840000
) 17850000
AND SUBSTR(DATABASE,1,2) = 'XB' 17860000
UNION ALL 17870000
SELECT FAMILY 17880000
, COMMENT 17890000
, CAST(DATABASE AS CHAR(08)) 17900000
|| ' ' 17910000
|| IXNAME 17920000
|| ' ' 17930000
|| TBNAME 17940000
|| ' ' 17950000
|| 'IndexRule=Duplicate' 17960000
, 'EN1PART_FIAL=' 17970000
|| CASE WHEN EN1PART > -1 17980000
THEN 'NOK' 17990000
ELSE 'OK' 18000000
END 18010000
|| ';' 18020000
|| 'EATRNVON_MIS=' 18030000
|| CASE WHEN EATRNVON = -1 18040000
THEN 'NOK' 18050000
ELSE 'OK' 18060000
END 18070000
|| ';' 18080000
|| 'EATRNBIS_MIS=' 18090000
|| CASE WHEN EATRNBIS = -1 18100000
THEN 'NOK' 18110000
ELSE 'OK' 18120000
END 18130000
|| ';' 18140000
|| 'EATRNVON_WPOS=' 18150000
|| CASE WHEN EATRNVON = 1 18160000
THEN 'OK' 18170000
ELSE 'NOK' 18180000
END 18190000
|| ';' 18200000
|| 'EATRNBIS_MIS=' 18210000
|| CASE WHEN EATRNBIS = 2 18220000
THEN 'OK' 18230000
ELSE 'NOK' 18240000
END 18250000
|| ';' 18260000
|| 'TooManyCols=' 18270000
|| CASE MAXCOL 18280000
WHEN 2 THEN 'OK' 18290000
ELSE 'NOK' 18300000
END 18310000
|| ';' 18320000
|| 'CLUSTER_DEF=' 18330000
|| CASE CLUSTERING 18340000
WHEN 'Y' THEN 'OK' 18350000
ELSE 'NOK' 18360000
END 18370000
|| ';' 18380000
, CREATEDTS 18390000
FROM IXLST 18400000
WHERE ELAR_TYPE = 'SIGNATUR' 18410000
AND UNIQUERULE IN (SELECT INDEXTYPE 18420000
FROM IXTYPE_UNIQUE 18430000
) 18440000
AND SUBSTR(DATABASE,1,2) = 'XB' 18450000
UNION ALL 18460000
SELECT FAMILY 18470000
, COMMENT 18480000
, CAST(DATABASE AS CHAR(08)) 18490000
|| ' ' 18500000
|| IXNAME 18510000
|| ' ' 18520000
|| TBNAME 18530000
|| ' ' 18540000
|| 'IndexRule=Unknown' 18550000
, 'Index_Rule=NOK;' 18560000
, CREATEDTS 18570000
FROM IXLST 18580000
WHERE ELAR_TYPE = 'unknown ' 18590000
AND SUBSTR(DATABASE,1,2) = 'XB' 18600000
) 18610000
SELECT GENERATE_UNIQUE() 18620000
, '5Index Option Check' 18630000
, FAMILY 18640000
, COMMENT 18650000
, OBJECT 18660000
, OPTVALUE 18670000
, CREATEDTS 18680000
FROM RXI 18690000
ORDER BY FAMILY 18700000
, OBJECT 18710000
; 18720000
INSERT INTO SESSION.TEMP 18730000
SELECT GENERATE_UNIQUE() 18740000
, '6ELAR meta data mismatch' 18750000
, FAMILY 18760000
, ' ' 18770000
, FAMILY 18780000
, 'NoDatabaseExists=NOK;' 18790000
, '0001-01-01-00.00.00.000000' 18800000
FROM SESSION.FAMLISTE 18810000
WHERE STORAR_N IS NULL 18820000
AND ENSEG_N IS NULL 18830000
AND SUBSTR(DBNAME,1,3) <> 'DXB' 18840000
AND SUBSTR(FAMILY,1,1) <> '?' 18850000
UNION ALL 18860000
SELECT GENERATE_UNIQUE() 18870000
, '7ELAR meta data mismatch' 18880000
, DBNAME 18890000
, ' ' 18900000
, DBNAME 18910000
, 'DatabaseNoFamily=NOK;' 18920000
, '0001-01-01-00.00.00.000000' 18930000
FROM SESSION.FAMLISTE 18940000
WHERE DBNAME NOT IN (SELECT STORAR 18950000
FROM SESSION.ELAR 18960000
) 18970000
AND SUBSTR(DBNAME,1,1) <> '?' 18980000
; 18990000
DECLARE GLOBAL TEMPORARY TABLE PARMVALUE 19000000
( OPTION CHAR(025) 19010000
, VALUE CHAR(120) 19020000
, SUBORD INTEGER 19030000
) 19040000
; 19050000
INSERT INTO SESSION.PARMVALUE 19060000
VALUES ( 'InfoTCP' 19070000
, 'Info: Table Controlled Partition' 19080000
, 0 19090000
) 19100000
; 19110000
INSERT INTO SESSION.PARMVALUE 19120000
VALUES ( 'NPI' 19130000
, 'on partitioned Object (table/Index) ' 19140000
|| 'not allowed' 19150000
, 0 19160000
) 19170000
; 19180000
INSERT INTO SESSION.PARMVALUE 19190000
VALUES ( 'InfoTSS' 19200000
, 'Info: Segmented or Simple Table' 19210000
, 0 19220000
) 19230000
; 19240000
INSERT INTO SESSION.PARMVALUE 19250000
VALUES ( 'InfoICP' 19260000
, 'Info: Index Controlled Partition' 19270000
, 0 19280000
) 19290000
; 19300000
INSERT INTO SESSION.PARMVALUE 19310000
VALUES ( 'InfoNPI' 19320000
, 'Info: Non partitioned Index' 19330000
, 0 19340000
) 19350000
; 19360000
INSERT INTO SESSION.PARMVALUE 19370000
VALUES ( 'StorageGroup' 19380000
, 'GSMS1, GSMS2, GSMS3 or GSMS4 for XB Databases ' 19390000
|| 'GSMS for ELAR Metadata allowed' 19400000
, 3 19410000
) 19420000
; 19430000
INSERT INTO SESSION.PARMVALUE 19440000
VALUES ( 'Bufferpool_DB' 19450000
,'BP2 allowed on Datasbase definition level' 19460000
, 0 19470000
) 19480000
; 19490000
INSERT INTO SESSION.PARMVALUE 19500000
VALUES ( 'Bufferpool_DB_IX' 19510000
,'BP1 allowed on Datasbase definition level' 19520000
, 1 19530000
) 19540000
; 19550000
INSERT INTO SESSION.PARMVALUE 19560000
VALUES ( 'Bufferpool_TS' 19570000
,'Only BP2, BP8 and BP32K allowed for Tablespaces' 19580000
, 2 19590000
) 19600000
; 19610000
INSERT INTO SESSION.PARMVALUE 19620000
VALUES ( 'Bufferpool_FHS' 19630000
, 'Signature table space need table space with ' 19640000
||'BP32K buffer pool assignment ' 19650000
, 2 19660000
) 19670000
; 19680000
INSERT INTO SESSION.PARMVALUE 19690000
VALUES ( 'Bufferpool_FTB' 19700000
, 'Non signature table use bufferpool BP32K ' 19710000
||'these bufferpool only allowed for signature tables'19720000
, 2 19730000
) 19740000
; 19750000
INSERT INTO SESSION.PARMVALUE 19760000
VALUES ( 'Bufferpool_LOB' 19770000
,'Only BP8 for LOB Tablespaces allowed' 19780000
, 2 19790000
) 19800000
; 19810000
INSERT INTO SESSION.PARMVALUE 19820000
VALUES ( 'IndexBufferpool', 'BP1' 19830000
, 3 19840000
) 19850000
; 19860000
INSERT INTO SESSION.PARMVALUE 19870000
VALUES ( 'EncodingScheme', 'EBCDIC' 19880000
, 4 19890000
) 19900000
; 19910000
INSERT INTO SESSION.PARMVALUE 19920000
VALUES ( 'Groupbufferpool', 'Changed' 19930000
, 5 19940000
) 19950000
; 19960000
INSERT INTO SESSION.PARMVALUE 19970000
VALUES ( 'LOB Bufferpool', 'BP8' 19980000
, 6 19990000
) 20000000
; 20010000
INSERT INTO SESSION.PARMVALUE 20020000
VALUES ( 'Trackmode', 'No', 10 20030000
) 20040000
; 20050000
INSERT INTO SESSION.PARMVALUE 20060000
VALUES ( 'LoggedOption', 'Yes', 11 20070000
) 20080000
; 20090000
INSERT INTO SESSION.PARMVALUE 20100000
VALUES ( 'DSSIZE' 20110000
, 'DSSIZE must be 16GB. No other values allowed' 20120000
, 12 20130000
) 20140000
; 20150000
INSERT INTO SESSION.PARMVALUE 20160000
VALUES ( 'Locksize', 'Any', 13 20170000
) 20180000
; 20190000
INSERT INTO SESSION.PARMVALUE 20200000
VALUES ( 'LockMax', 'System', 14 20210000
) 20220000
; 20230000
INSERT INTO SESSION.PARMVALUE 20240000
VALUES ( 'CloseOption', 'Yes', 17 20250000
) 20260000
; 20270000
INSERT INTO SESSION.PARMVALUE 20280000
VALUES ( 'TblCompressOption', 'Yes', 27 20290000
) 20300000
; 20310000
INSERT INTO SESSION.PARMVALUE 20320000
VALUES ( 'IdxCompressOption', 'No', 29 20330000
) 20340000
; 20350000
INSERT INTO SESSION.PARMVALUE 20360000
VALUES ( 'PrimaryQuantity', 'Only value -1 allowed' 20370000
, 8 20380000
) 20390000
; 20400000
INSERT INTO SESSION.PARMVALUE 20410000
VALUES ( 'SecondaryQuantity', 'Only value -1 allowed' 20420000
, 9 20430000
) 20440000
; 20450000
INSERT INTO SESSION.PARMVALUE 20460000
VALUES ( 'DefineOption', 'Yes', 23 20470000
) 20480000
; 20490000
INSERT INTO SESSION.PARMVALUE 20500000
VALUES ( 'MaxRowsPerPage', '255', 24 20510000
) 20520000
; 20530000
INSERT INTO SESSION.PARMVALUE 20540000
VALUES ( 'Audit', 'None', 18 20550000
) 20560000
; 20570000
INSERT INTO SESSION.PARMVALUE 20580000
VALUES ( 'DataCapture', 'must be CHANGES', 19 20590000
) 20600000
; 20610000
INSERT INTO SESSION.PARMVALUE 20620000
VALUES ( 'RestrictOnDrop' 20630000
, 'Missing Option With Restrict on Drop' 20640000
, 20 20650000
) 20660000
; 20670000
INSERT INTO SESSION.PARMVALUE 20680000
VALUES ( 'Volatile', 'correct value is Yes', 21 20690000
) 20700000
; 20710000
INSERT INTO SESSION.PARMVALUE 20720000
VALUES ( 'Append', 'Current value is not YES', 22 20730000
) 20740000
; 20750000
INSERT INTO SESSION.PARMVALUE 20760000
VALUES ( 'PartKeyName', 'EN1PART', 30 20770000
) 20780000
; 20790000
INSERT INTO SESSION.PARMVALUE 20800000
VALUES ( 'PartKeyType', 'Integer', 31 20810000
) 20820000
; 20830000
INSERT INTO SESSION.PARMVALUE 20840000
VALUES ( 'PartKeyPosition', 'First Column of Table', 32 20850000
) 20860000
; 20870000
INSERT INTO SESSION.PARMVALUE 20880000
VALUES ( 'EN1PART_MIS' 20890000
, 'EN1PART missing in Index', 33 20900000
) 20910000
; 20920000
INSERT INTO SESSION.PARMVALUE 20930000
VALUES ( 'EA1ARTN_MIS' 20940000
, 'EA1ATRN missing in Index', 33 20950000
) 20960000
; 20970000
INSERT INTO SESSION.PARMVALUE 20980000
VALUES ( 'EA1STRN_MIS' 20990000
, 'EA1STRN missing in Index', 33 21000000
) 21010000
; 21020000
INSERT INTO SESSION.PARMVALUE 21030000
VALUES ( 'EN1STK1_MIS' 21040000
, 'EN1STK1 missing in Index', 33 21050000
) 21060000
; 21070000
INSERT INTO SESSION.PARMVALUE 21080000
VALUES ( 'EN1STK2_MIS' 21090000
, 'EN1STK2 missing in Index', 33 21100000
) 21110000
; 21120000
INSERT INTO SESSION.PARMVALUE 21130000
VALUES ( 'EATRNVON_MIS' 21140000
, 'EATRNVON missing in Index', 33 21150000
) 21160000
; 21170000
INSERT INTO SESSION.PARMVALUE 21180000
VALUES ( 'EATRNBIS_MIS' 21190000
, 'EATRNBIS missing in Index', 33 21200000
) 21210000
; 21220000
INSERT INTO SESSION.PARMVALUE 21230000
VALUES ( 'EN1PART_WPOS' 21240000
, 'EN1PART wrong position in index', 33 21250000
) 21260000
; 21270000
INSERT INTO SESSION.PARMVALUE 21280000
VALUES ( 'EA1ARTN_WPOS' 21290000
, 'EA1ATRN wrong position in index', 33 21300000
) 21310000
; 21320000
INSERT INTO SESSION.PARMVALUE 21330000
VALUES ( 'EA1STRN_WPOS' 21340000
, 'EA1STRN wrong position in index', 33 21350000
) 21360000
; 21370000
INSERT INTO SESSION.PARMVALUE 21380000
VALUES ( 'EN1STK1_WPOS' 21390000
, 'EN1STK1 wrong position in index', 33 21400000
) 21410000
; 21420000
INSERT INTO SESSION.PARMVALUE 21430000
VALUES ( 'EN1STK2_WPOS' 21440000
, 'EN1STK2 wrong position in index', 33 21450000
) 21460000
; 21470000
INSERT INTO SESSION.PARMVALUE 21480000
VALUES ( 'EATRNVON_WPOS' 21490000
, 'EATRNVO wrong position in index', 33 21500000
) 21510000
; 21520000
INSERT INTO SESSION.PARMVALUE 21530000
VALUES ( 'EATRNBIS_WPOS' 21540000
, 'EATRNBIS wrong position in index', 33 21550000
) 21560000
; 21570000
INSERT INTO SESSION.PARMVALUE 21580000
VALUES ( 'EN1PART_FAIL' 21590000
, 'EN1PART not allowed for the index', 34 21600000
) 21610000
; 21620000
INSERT INTO SESSION.PARMVALUE 21630000
VALUES ( 'CLUSTER_DEF' 21640000
, 'Cluster definition not allowed, wrong context', 35 21650000
) 21660000
; 21670000
INSERT INTO SESSION.PARMVALUE 21680000
VALUES ( 'TooManyCols' 21690000
, 'Number of key columns not correct. Number depends' 21700000
||'on ELAR table type' 21710000
, 35 21720000
) 21730000
; 21740000
INSERT INTO SESSION.PARMVALUE 21750000
VALUES ( 'TablePartLimit', 'Partition limit exceeded (' || 21760000
(SELECT STRIP(CAST(MAXPART AS 21770000
CHAR(06) 21780000
) 21790000
) 21800000
FROM SESSION.MAXPART 21810000
WHERE PARTYPE = 'Table' 21820000
) || ' Partition allowed)' 21830000
, 39 21840000
) 21850000
; 21860000
INSERT INTO SESSION.PARMVALUE 21870000
VALUES ( 'IndexPartLimit', 'Maximum of ' || 21880000
(SELECT CAST(MAXPART AS CHAR(06)) 21890000
FROM SESSION.MAXPART 21900000
WHERE PARTYPE = 'Index' 21910000
) || ' Partition exceeded ' 21920000
, 40 21930000
) 21940000
; 21950000
INSERT INTO SESSION.PARMVALUE 21960000
VALUES ( 'PartKeyValue(s)' 21970000
, 'only natural Numbers and one value allowed' 21980000
, 34 21990000
) 22000000
; 22010000
INSERT INTO SESSION.PARMVALUE 22020000
VALUES ( 'PartKeyColNum' 22030000
, 'Wrong partitioning, use classic partitioning' 22040000
, 35 22050000
) 22060000
; 22070000
INSERT INTO SESSION.PARMVALUE 22080000
VALUES ( 'Indextype' 22090000
, 'Unique DPSI, when Primary Index all other are DPSI' 22100000
, 28 22110000
) 22120000
; 22130000
INSERT INTO SESSION.PARMVALUE 22140000
VALUES ( 'Pagesize' 22150000
, 'Pagesize Tablespace <> Pagesize Indexspace' 22160000
, 16 22170000
) 22180000
; 22190000
INSERT INTO SESSION.PARMVALUE 22200000
VALUES ( 'FreePage' 22210000
, 'Value must be 0 for technical/business indexes' 22220000
, 7 22230000
) 22240000
; 22250000
INSERT INTO SESSION.PARMVALUE 22260000
VALUES ( 'TSFreepage' 22270000
, 'Value is not 0' 22280000
, 7 22290000
) 22300000
; 22310000
INSERT INTO SESSION.PARMVALUE 22320000
VALUES ( 'PctFree_Business' 22330000
, 'Value must be 10 for business Indexes' 22340000
, 6 22350000
) 22360000
; 22370000
INSERT INTO SESSION.PARMVALUE 22380000
VALUES ( 'PctFree_Technical' 22390000
, 'Value must be 0 for technical indexes' 22400000
, 6 22410000
) 22420000
; 22430000
INSERT INTO SESSION.PARMVALUE 22440000
VALUES ( 'TSPctfree' 22450000
, 'Value is not 0' 22460000
, 6 22470000
) 22480000
; 22490000
INSERT INTO SESSION.PARMVALUE 22500000
VALUES ( 'Copy', 'No', 26 22510000
) 22520000
; 22530000
INSERT INTO SESSION.PARMVALUE 22540000
VALUES ( 'No Index exists' 22550000
, 'verify and implement an Index. Access path for all ' 22560000
|| 'queries are Tablespace Scans| (Proof Monitor)' 22570000
, 50 22580000
) 22590000
; 22600000
INSERT INTO SESSION.PARMVALUE 22610000
VALUES ( 'IndexType_Failure' 22620000
, 'Only index type DPSI (D), Unique (U) and ' 22630000
|| 'Primary (P) are allowed' 22640000
, 50 22650000
) 22660000
; 22670000
INSERT INTO SESSION.PARMVALUE 22680000
VALUES ( 'EN1PART_MIS' 22690000
, 'Missing EN1PART. Must be part of PRIMARY ' 22700000
|| 'or UNIQUE INDEX (see Guideline 01.07.2013' 22710000
, 51 22720000
) 22730000
; 22740000
INSERT INTO SESSION.PARMVALUE 22750000
VALUES ( 'Index_Rule' 22760000
, 'no rules are defined. REASON: Unknown ELAR ' 22770000
|| 'table type (not documented, experimental type' 22780000
, 53 22790000
) 22800000
; 22810000
INSERT INTO SESSION.PARMVALUE 22820000
VALUES ( 'NoDatabaseExists' 22830000
, 'No DB2 Objects exists for DDL Check' 22840000
, 0 22850000
) 22860000
; 22870000
INSERT INTO SESSION.PARMVALUE 22880000
VALUES ( 'DatabaseNoFamily' 22890000
, 'DB2 Objects exists but no ELAR Meta data available' 22900000
, 0 22910000
) 22920000
; 22930000
-- Preperation of result list splitting complete string into option name22940000
-- and option value. Options separated by semicolon. Option and value 22950000
-- separated by equal sign. Elimination of duplicate entries and store 22960000
-- only entries with NOK in temporary table exception. 22970000
DECLARE GLOBAL TEMPORARY TABLE EXCEPTION 22980000
( OBJECT CHAR(60) 22990000
, OPTION CHAR(24) 23000000
, CORRECT_VALUES CHAR(120) 23010000
, FAMILY CHAR(30) 23020000
, CRITERIA CHAR(30) 23030000
, OPTIONNUM INTEGER 23040000
, SUBORD INTEGER 23050000
, COMMENT CHAR(40) 23060000
, OVALUE CHAR(03) 23070000
, CREATEDTS TIMESTAMP(6) 23080000
) 23090000
; 23100000
INSERT INTO SESSION.EXCEPTION ( 23110000
OBJECT 23120000
, OPTION 23130000
, CORRECT_VALUES 23140000
, FAMILY 23150000
, CRITERIA 23160000
, OPTIONNUM 23170000
, SUBORD 23180000
, COMMENT 23190000
, OVALUE 23200000
, CREATEDTS 23210000
) 23220000
WITH RESULT ( SNUM 23230000
, CRITERIA 23240000
, FAMILY 23250000
, OBJECT 23260000
, OPTIONNUM 23270000
, OPTION 23280000
, OVALUE 23290000
, CHECKVALUE 23300000
, COMMENT 23310000
, CREATEDTS 23320000
) 23330000
AS (SELECT T0.SNUM 23340000
, T0.CRITERIA 23350000
, T0.FAMILY 23360000
, T0.OBJECT 23370000
, 1 23380000
, CASE WHEN LOCATE('=', T0.OPTVALUE) > 0 23390000
THEN SUBSTR( T0.OPTVALUE 23400000
, 1 23410000
, LOCATE('=', T0.OPTVALUE) - 1 23420000
) 23430000
ELSE OPTVALUE 23440000
END AS OPTION 23450000
, CASE WHEN LOCATE('=', T0.OPTVALUE) > 0 23460000
THEN SUBSTR( T0.OPTVALUE 23470000
, LOCATE('=', T0.OPTVALUE) + 1 23480000
, LOCATE(';', T0.OPTVALUE) - 23490000
LOCATE('=', T0.OPTVALUE) - 1 23500000
) 23510000
ELSE OPTVALUE 23520000
END AS OVALUE 23530000
, CASE WHEN LOCATE(';', T0.OPTVALUE) > 0 23540000
THEN SUBSTR( T0.OPTVALUE 23550000
, LOCATE(';', T0.OPTVALUE) + 1 23560000
) 23570000
ELSE NULL 23580000
END AS OPTVALUE 23590000
, T0.COMMENT 23600000
, T0.CREATEDTS 23610000
FROM SESSION.TEMP T0 23620000
UNION ALL 23630000
SELECT T1.SNUM 23640000
, T1.CRITERIA 23650000
, T1.FAMILY 23660000
, T1.OBJECT 23670000
, T1.OPTIONNUM + 1 23680000
, CASE WHEN LOCATE('=', T1.CHECKVALUE) > 0 23690000
THEN SUBSTR( T1.CHECKVALUE 23700000
, 1 23710000
, LOCATE('=', T1.CHECKVALUE) - 1 23720000
) 23730000
ELSE CHECKVALUE 23740000
END AS OPTION 23750000
, CASE WHEN LOCATE('=', T1.CHECKVALUE) > 0 23760000
THEN CASE WHEN LOCATE(';', T1.CHECKVALUE) > 0 23770000
THEN SUBSTR( T1.CHECKVALUE 23780000
, LOCATE('=', T1.CHECKVALUE) 23790000
+ 1 23800000
, LOCATE(';', T1.CHECKVALUE) 23810000
- LOCATE('=', T1.CHECKVALUE) 23820000
- 1 23830000
) 23840000
ELSE SUBSTR( T1.CHECKVALUE 23850000
, LOCATE('=', T1.CHECKVALUE) 23860000
+ 1 23870000
) 23880000
END 23890000
ELSE CHECKVALUE 23900000
END AS OVALUE 23910000
, CASE WHEN LOCATE(';', T1.CHECKVALUE) > 0 23920000
THEN SUBSTR( T1.CHECKVALUE 23930000
, LOCATE(';', T1.CHECKVALUE) + 1 23940000
) 23950000
ELSE NULL 23960000
END AS OPTVALUE 23970000
, T1.COMMENT 23980000
, T1.CREATEDTS 23990000
FROM RESULT T1 24000000
WHERE T1.CHECKVALUE IS NOT NULL 24010000
) 24020000
SELECT DISTINCT 24030000
RE.OBJECT 24040000
, CAST(RE.OPTION AS CHAR(24)) AS OPTION 24050000
, PV.VALUE AS CORRECT_VALUES 24060000
, RE.FAMILY 24070000
, RE.CRITERIA 24080000
, RE.OPTIONNUM 24090000
, PV.SUBORD 24100000
, RE.COMMENT 24110000
, RE.OVALUE 24120000
, RE.CREATEDTS 24130000
FROM RESULT RE 24140000
INNER JOIN SESSION.PARMVALUE PV 24150000
ON RE.OPTION = PV.OPTION 24160000
WHERE RE.OVALUE = 'NOK' 24170000
; 24180000
-- 24190000
-- Generate final message. Three different message possible: 24200000
-- (1) Database not found => Database not created and 24210000
-- (2) No failures found => All check passed without failures 24220000
-- (3) Failuers found => Not all ckecks passed without failures 24230000
-- 24240000
INSERT INTO SESSION.EXCEPTION ( 24250000
OBJECT 24260000
, OPTION 24270000
, CORRECT_VALUES 24280000
, FAMILY 24290000
, CRITERIA 24300000
, OPTIONNUM 24310000
, SUBORD 24320000
, COMMENT 24330000
, OVALUE 24340000
, CREATEDTS 24350000
) 24360000
SELECT 'Database not found => no check possible' 24370000
, ' ' 24380000
, ' ' 24390000
, ' ' 24400000
, ' ' 24410000
, -100 24420000
, -100 24430000
, ' ' 24440000
, ' ' 24450000
, CURRENT TIMESTAMP 24460000
FROM SYSIBM.SYSDUMMY1 24470000
WHERE (SELECT COUNT(*) 24480000
FROM SESSION.FAMLISTE FAM 24490000
INNER JOIN SYSIBM.SYSDATABASE DB 24500000
ON FAM.DBNAME = DB.NAME 24510000
) = 0 24520000
AND (SELECT DBNAME FROM SESSION.FAMLISTE) IS NOT NULL 24530000
; 24540000
INSERT INTO SESSION.EXCEPTION ( 24550000
OBJECT 24560000
, OPTION 24570000
, CORRECT_VALUES 24580000
, FAMILY 24590000
, CRITERIA 24600000
, OPTIONNUM 24610000
, SUBORD 24620000
, COMMENT 24630000
, OVALUE 24640000
, CREATEDTS 24650000
) 24660000
SELECT 'No failures found' 24670000
, ' ' 24680000
, ' ' 24690000
, ' ' 24700000
, ' ' 24710000
, -101 24720000
, -101 24730000
, 'DDL Checker finished at' 24740000
, ' ' 24750000
, CURRENT TIMESTAMP 24760000
FROM SYSIBM.SYSDUMMY1 24770000
WHERE (SELECT COUNT(*) FROM SESSION.EXCEPTION) = 0 24780000
; 24790000
INSERT INTO SESSION.EXCEPTION ( 24800000
OBJECT 24810000
, OPTION 24820000
, CORRECT_VALUES 24830000
, FAMILY 24840000
, CRITERIA 24850000
, OPTIONNUM 24860000
, SUBORD 24870000
, COMMENT 24880000
, OVALUE 24890000
, CREATEDTS 24900000
) 24910000
SELECT 'Failure(s) found, send list to elar' 24920000
, ' ' 24930000
, ' ' 24940000
, ' ' 24950000
, ' ' 24960000
, 0 24970000
, 0 24980000
, 'DDL Checker finished at' 24990000
, ' ' 25000000
, CURRENT TIMESTAMP 25010000
FROM SYSIBM.SYSDUMMY1 25020000
WHERE (SELECT COUNT(*) 25030000
FROM SESSION.EXCEPTION 25040000
WHERE OPTIONNUM NOT IN ( -100, -101 ) 25050000
AND SUBORD NOT IN ( -100, -101 ) 25060000
) > 0 25070000
; 25080000
INSERT INTO SESSION.EXCEPTION ( 25090000
OBJECT 25100000
, OPTION 25110000
, CORRECT_VALUES 25120000
, FAMILY 25130000
, CRITERIA 25140000
, OPTIONNUM 25150000
, SUBORD 25160000
, COMMENT 25170000
, OVALUE 25180000
, CREATEDTS 25190000
) 25200000
SELECT 'Actual Version 2.3 from 05.12.2013' 25210000
, ' ' 25220000
, ' ' 25230000
, ' ' 25240000
, ' ' 25250000
, -999 25260000
, -999 25270000
, ' ' 25280000
, ' ' 25290000
, CURRENT TIMESTAMP 25300000
FROM SYSIBM.SYSDUMMY1 25310000
; 25320000
-- 25330000
-- Generate Report 25340000
-- DDL-Report (Display migrated families first) 25350000
-- 25360000
SELECT OBJECT 25370000
, OPTION 25380000
, CORRECT_VALUES 25390000
, FAMILY 25400000
, COMMENT 25410000
, CRITERIA 25420000
, 'Object was created at '||CAST(CREATEDTS AS CHAR(26)) 25430000
FROM (SELECT OBJECT AS OBJECT 25440000
, OPTION AS OPTION 25450000
, CORRECT_VALUES AS CORRECT_VALUES 25460000
, CASE WHEN SUBSTR(FAMILY,1,3) = 'FAM' 25470000
THEN ( SELECT UCASE(EAOF) 25480000
FROM BUA.TXBA131 25490000
WHERE ENOF = CAST( SUBSTR(T1.FAMILY,4,4) 25500000
AS INT 25510000
) - 1000 25520000
) 25530000
ELSE FAMILY 25540000
END AS FAMILY 25550000
, COMMENT AS COMMENT 25560000
, CRITERIA AS CRITERIA 25570000
, CREATEDTS AS CREATEDTS 25580000
, ORD0 25590000
, ORD1 25600000
, ORD2 25610000
, ORD3 25620000
FROM (SELECT OBJECT 25630000
, CASE WHEN LOCATE('_', OPTION) > 0 25640000
THEN SUBSTR( OPTION 25650000
, 1 25660000
, LOCATE('_',OPTION) - 1 25670000
) 25680000
ELSE OPTION 25690000
END AS OPTION 25700000
, CORRECT_VALUES 25710000
, UCASE(FAMILY) AS FAMILY 25720000
, SUBSTR(CRITERIA,2) AS CRITERIA 25730000
, SUBSTR(CRITERIA,1,1) AS ORD1 25740000
, LENGTH(STRIP(OBJECT)) AS ORD2 25750000
, SUBORD AS ORD3 25760000
, COMMENT 25770000
, CASE WHEN COMMENT <> ' ' 25780000
THEN 0 25790000
ELSE 1 25800000
END AS ORD0 25810000
, CHECK 25820000
, CREATEDTS 25830000
FROM (SELECT OVALUE AS CHECK 25840000
, OBJECT 25850000
, OPTION 25860000
, CORRECT_VALUES 25870000
, FAMILY 25880000
, CRITERIA 25890000
, SUBORD 25900000
, COMMENT 25910000
, CREATEDTS 25920000
FROM SESSION.EXCEPTION 25930000
) AS T2 25940000
) AS T1 25950000
) AS FINAL 25960000
ORDER BY FAMILY 25970000
, ORD0 25980000
, ORD1 25990000
, ORD2 26000000
, ORD3 26010000
WITH UR 26020000
; 26030000
}¢--- A540769.WK.SQL(ELARDDL) cre=2013-11-29 mod=2013-11-29-12.22.38 A540769 ---
-- Zwischenspeicher der zu untersuchenden Datenbanken 00010000
-- 00020000
DECLARE GLOBAL TEMPORARY TABLE FAMLISTE 00030000
( FAMILY CHAR(20) 00040000
, DBNAME CHAR(08) 00050000
, STORAR CHAR(03) 00060000
, ENSEG CHAR(03) 00070000
, STORAR_N INTEGER 00080000
, ENSEG_N SMALLINT 00090000
, CREATE_FROM DATE 00100000
, CREATE_TO DATE 00110000
) 00120000
; 00130000
-- ============ Input section (full check) ============ 00140000
-- Full check (database, table space etc.) when create_from and 00150000
-- create_to have value NULL 00160000
-- 00170000
-- Partial check on table space level when create_from and 00180000
-- create_to have not NULL value and the values are valid date 00190000
-- 00200000
INSERT INTO SESSION.FAMLISTE ( FAMILY 00210000
, DBNAME 00220000
, CREATE_FROM 00230000
, CREATE_TO 00240000
) 00250000
VALUES ( '?' 00260000
, NULL 00270000
, current date - 1 days 00280000
, '31.12.9999' 00290000
) 00300000
; 00310000
-- 00320000
-- ============ Release notes/ documentation section ============ 00330000
-- 00340000
-- ### INFO Version 2.3, Date: 28.11.2013 00350000
-- ### INFO Library: actual Version only available in DSN.GENERAL.SQL 00360000
-- ### Author: A559315, Uwe Toepperwien (TCG), KIDI 61 00370000
-- 00380000
-- ============ Documentation section ============ 00390000
-- 00400000
-- DDL Checker für partitionierte Datenbanken ELAR. In ELAR ist nur 00410000
-- Table controlled Partition zulässig, folglich werden Non partition 00420000
-- Tables und Index controlled Partition nicht verifiziert. 00430000
-- Grundlage sind die DDL Vereinbarungen vom 10/2010 00440000
-- Nachfolgende DB2 Objekte werden geprüft: 00450000
-- (1) Datenbank 00460000
-- (2) Tablespaces 00470000
-- (3) Tabeles 00480000
-- (4) Indexspaces 00490000
-- (5) Index(e) Primary DPSI/ DPSI 00500000
-- 00510000
-- Ein DDL Check ist möglich durch Angabe der ELAR Familie und/ oder 00520000
-- der Datenbank. 00530000
-- 00540000
-- Ist das Result des DDL Checkers "empty", dann sind alle vereinbarten 00550000
-- DDL Parameter eingehalten. 00560000
-- 00570000
-- Ist das Result des DDL Checkers nicht "empty", dann 00580000
-- (a) werden alle DDL Parameter Abweichungen ausgewiesen, wenn die 00590000
-- Familie/ Datenbank vom Typ Table Controlled Partition ist 00600000
-- (b) der Fehler "DatabaseImplementation" zeigt an, das die Familie/ 00610000
-- Datenbank nicht vom Typ Table Controlled Partition ist. 00620000
-- 00630000
-- Parameterwert fuer maximale Anzahl Partition festlegen 00640000
-- Die maximale Anzahl Partitionen ist für Table- und Indexcontrolled 00650000
-- Partitioning vorzugeben. 00660000
-- 00670000
-- Update: 28.11.2013, TCG 00680000
-- Partial check possible, when create_from and create_to is not null 00690000
-- 00700000
-- Update: 08.07.2013, TCG 00710000
-- Generating final message which describe the state of a cekced 00720000
-- database. 00730000
-- Check pctfree for technical/ business indexes use wrong 00740000
-- catalog table (sysibm.syscolumns instead of syskeys) 00750000
-- 00760000
-- Update: 01.07.2013, TCG (new agreement KIDI63/ ELAR for NDBS) 00770000
-- (see Mail from 01.07.2013 M.Streit) 00780000
-- Tablespace Option Check 00790000
-- (1) Check FREEPAGE, PCTFREE 00800000
-- (2) PARTITION = 0 not allowed for XB databases 00810000
-- Table Option Check 00820000
-- (1) option APPEND changed from NO to YES 00830000
-- (2) no check of EN1ENTERTAG, ET1LOGPROD 00840000
-- (3) Check on table the type of partitioning (classic) 00850000
-- (4) Check if index is index controlled partitioning (antique) 00860000
-- (5) Extend index type check, only D, U and P are allowed 00870000
-- (6) Check that EN1PART is in keylist of unique/ primary index 00880000
-- (7) Check that every table has only one unique/ primary index 00890000
-- (8) Check that cluster index based on correct columns 00900000
-- (9) Check that key columns on correct position 00910000
-- 00920000
-- Update: 17.05.2012, TCG 00930000
-- (1) Find database name for migrated families (migrated families 00940000
-- have a symbolic name like FAMnnmm where nn is multipler 1000 00950000
-- and mm is the family number. Exp. FAM1015 is family 15 that is 00960000
-- family DEVI.IF) 00970000
-- (2) New column COMMENT describes the family 00980000
-- (3) Result shows first families from migration and all other 00990000
-- families. 01000000
-- (4) Correction of text mistakes. 01010000
-- 01020000
-- Update: 10.05.2012, TCG 01030000
-- (1) New Bufferpool assignment (BP2 and BP1) 01040000
-- (2) Check Bufferpool BP8 for LOB 01050000
-- (3) De-activate Partition and Index Columun check 01060000
-- for database with prefix DXB (Elar Metadata) 01070000
-- (4) Result set order changed to family, database, tablespace, 01080000
-- table, indexspace and index. 01090000
-- (5) Defined more and detailed messages. 01100000
-- 01110000
-- ============ Processing section ============ 01120000
-- 01130000
--- Definition of partition limit for table- and indexspace 01140000
DECLARE GLOBAL TEMPORARY TABLE MAXPART 01150000
( PARTYPE CHAR(05) NOT NULL 01160000
, MAXPART INTEGER NOT NULL 01170000
) 01180000
; 01190000
INSERT INTO SESSION.MAXPART ( PARTYPE, MAXPART ) 01200000
VALUES ( 'Table', 200 ) 01210000
; 01220000
INSERT INTO SESSION.MAXPART ( PARTYPE, MAXPART ) 01230000
VALUES ( 'Index', 200 ) 01240000
; 01250000
UPDATE SESSION.FAMLISTE 01260000
SET STORAR = SUBSTR(DBNAME,3,3) 01270000
, ENSEG = SUBSTR(DBNAME,6,3) 01280000
WHERE SUBSTR(DBNAME,1,2) = 'XB' 01290000
AND CREATE_FROM IS NULL 01300000
AND CREATE_TO IS NULL 01310000
; 01320000
UPDATE SESSION.FAMLISTE 01330000
SET STORAR_N = (SELECT XBA510_STORAGE_ARN 01340000
FROM BUA.TXBA510 01350000
WHERE XBA510_STORAGE_ARC = STORAR 01360000
) 01370000
, ENSEG_N = (SELECT XBA510_STORAGE_ARN 01380000
FROM BUA.TXBA510 01390000
WHERE XBA510_STORAGE_ARC = ENSEG 01400000
) 01410000
WHERE CREATE_FROM IS NULL 01420000
AND CREATE_TO IS NULL 01430000
; 01440000
DECLARE GLOBAL TEMPORARY TABLE ELAR 01450000
( FAMILY CHAR(20) 01460000
, STORAR CHAR(08) 01470000
, COMMENT CHAR(20) 01480000
) 01490000
; 01500000
INSERT INTO SESSION.ELAR 01510000
WITH TESLA ( FAMILY 01520000
, STORAR 01530000
, COMMENT 01540000
) 01550000
-- 01560000
-- Search over family name and retrieve database name(s) 01570000
-- 1) Import run time tables 01580000
-- 2) Time range run time table and family configuration 01590000
-- (no data available over(1) 01600000
-- 3) Migration protocol (no data available over (1) and (2) 01610000
-- 4) Family number control table. Last change to find a family, 01620000
-- while all run time and meta data are broken (broken links) 01630000
-- 01640000
AS (SELECT C071.EAOF 01650000
, CAST ( C071.EYPREF || 01660000
C111.ENSTORAR || 01670000
C111.ENSEG AS CHAR(08) 01680000
) 01690000
, ' ' AS COMMENT 01700000
FROM BUA.TXBC111 C111 01710000
FULL OUTER JOIN BUA.TXBC071 C071 01720000
ON C111.ENSTORAR = C071.ENSTORAR 01730000
INNER JOIN SESSION.FAMLISTE FL 01740000
ON FL.FAMILY = C071.EAOF 01750000
WHERE C111.ENSTORAR IS NOT NULL 01760000
AND C111.ENSEG IS NOT NULL 01770000
AND C071.EYPREF IS NOT NULL 01780000
UNION DISTINCT 01790000
SELECT BE051.EAOF 01800000
, FL.DBNAME 01810000
, ' ' AS COMMENT 01820000
FROM BUA.TXBE051 BE051 01830000
INNER JOIN BUA.TXBA201 BA201 01840000
ON BE051.ENLIBENG = BA201.ENSTORAR 01850000
INNER JOIN SESSION.FAMLISTE FL 01860000
ON FL.FAMILY = BE051.EAOF 01870000
UNION DISTINCT 01880000
SELECT T504.XBA501_FAMNAME 01890000
, XBA504_DB 01900000
, '-- old Migration --' AS COMMENT 01910000
FROM BUA.TXBA504 T504 01920000
LEFT JOIN BUA.TXBA511 T511 01930000
ON T504.XBA501_FAMNAME = T511.XBA501_FAMNAME 01940000
AND T504.XBA504_TABLE = T511.XBA504_TABLE 01950000
INNER JOIN SESSION.FAMLISTE FL 01960000
ON FL.FAMILY = T504.XBA501_FAMNAME 01970000
UNION DISTINCT 01980000
SELECT STRIP(BA131.EAOF) 01990000
, SUBSTR(MG103.EANTABNAME,1,8) 02000000
, '-- new Migration --' AS COMMENT 02010000
FROM BUA.TXBMG103 MG103 02020000
INNER JOIN BUA.TXBA131 BA131 02030000
ON MG103.ENOF = BA131.ENOF 02040000
INNER JOIN SESSION.FAMLISTE FL 02050000
ON UCASE(BA131.EAOF) = FL.FAMILY 02060000
-- 02070000
-- Search over Database Name and retrieve family name 02080000
-- In general same processing like search over family, but other 02090000
-- columns are relevant. 02100000
-- 02110000
UNION DISTINCT 02120000
SELECT C071.EAOF 02130000
, FL.DBNAME 02140000
, ' ' AS COMMENT 02150000
FROM BUA.TXBC111 C111 02160000
FULL OUTER JOIN BUA.TXBC071 C071 02170000
ON C111.ENSTORAR = C071.ENSTORAR 02180000
INNER JOIN SESSION.FAMLISTE FL 02190000
ON FL.STORAR = C111.ENSTORAR 02200000
AND FL.ENSEG = C111.ENSEG 02210000
UNION DISTINCT 02220000
SELECT BE051.EAOF AS FAMILY 02230000
, FL.DBNAME 02240000
, ' ' AS COMMENT 02250000
FROM BUA.TXBE051 BE051 02260000
INNER JOIN BUA.TXBA201 BA201 02270000
ON BE051.ENLIBENG = BA201.ENSTORAR 02280000
INNER JOIN SESSION.FAMLISTE FL 02290000
ON FL.STORAR_N = BA201.ENSTORAR 02300000
AND FL.ENSEG_N = BA201.ENSEG 02310000
UNION DISTINCT 02320000
SELECT T504.XBA501_FAMNAME 02330000
, XBA504_DB 02340000
, ' ' AS COMMENT 02350000
FROM BUA.TXBA504 T504 02360000
LEFT JOIN BUA.TXBA511 T511 02370000
ON T504.XBA501_FAMNAME = T511.XBA501_FAMNAME 02380000
AND T504.XBA504_TABLE = T511.XBA504_TABLE 02390000
INNER JOIN SESSION.FAMLISTE FL 02400000
ON FL.DBNAME = T504.XBA504_DB 02410000
UNION DISTINCT 02420000
SELECT UCASE(BA131.EAOF) 02430000
, FL.DBNAME 02440000
, ' ' AS COMMENT 02450000
FROM BUA.TXBA131 BA131 02460000
INNER JOIN BUA.TXBG081 BG181 02470000
ON BA131.ENOF = BG181.ENOF 02480000
INNER JOIN SESSION.FAMLISTE FL 02490000
ON BG181.ENSTORAR = FL.STORAR_N 02500000
UNION DISTINCT 02510000
SELECT UCASE(BA131.EAOF) 02520000
, FL.DBNAME 02530000
, ' ' AS COMMENT 02540000
FROM BUA.TXBA131 BA131 02550000
INNER JOIN BUA.TXBG081X BG181 02560000
ON BA131.ENOF = BG181.ENOF 02570000
INNER JOIN SESSION.FAMLISTE FL 02580000
ON BG181.ENSTORAR = FL.STORAR_N 02590000
UNION DISTINCT 02600000
SELECT 'ELAR Repo. / Base' 02610000
, DBNAME 02620000
, ' ' AS COMMENT 02630000
FROM SESSION.FAMLISTE 02640000
WHERE SUBSTR(DBNAME,1,3) = 'DXB' 02650000
) 02660000
SELECT FAMILY 02670000
, STORAR 02680000
, COMMENT 02690000
FROM TESLA 02700000
WHERE (SELECT CREATE_FROM FROM SESSION.FAMLISTE) IS NULL 02710000
AND (SELECT CREATE_TO FROM SESSION.FAMLISTE) IS NULL 02720000
; 02730000
-- Add database without ELAR meta data into checklist 02740000
-- 02750000
INSERT INTO SESSION.ELAR 02760000
SELECT DBNAME 02770000
, DBNAME 02780000
, ' ' 02790000
FROM SESSION.FAMLISTE 02800000
WHERE DBNAME NOT IN (SELECT STORAR FROM SESSION.ELAR) 02810000
AND DBNAME <> '?' 02820000
AND (SELECT CREATE_FROM FROM SESSION.FAMLISTE) IS NULL 02830000
AND (SELECT CREATE_TO FROM SESSION.FAMLISTE) IS NULL 02840000
; 02850000
INSERT INTO SESSION.ELAR 02860000
SELECT DISTINCT 02870000
'?' 02880000
, DBNAME 02890000
, DBNAME 02900000
FROM SYSIBM.SYSTABLESPACE 02910000
WHERE (SELECT CREATE_FROM FROM SESSION.FAMLISTE ) IS NOT NULL 02920000
AND (SELECT CREATE_TO FROM SESSION.FAMLISTE ) IS NOT NULL 02930000
AND DATE(CREATEDTS) >= (SELECT CREATE_FROM FROM SESSION.FAMLISTE ) 02940000
AND DATE(CREATEDTS) <= (SELECT CREATE_TO FROM SESSION.FAMLISTE ) 02950000
AND DBNAME LIKE 'XB%' 02960000
; 02970000
UPDATE SESSION.FAMLISTE 02980000
SET CREATE_FROM = '01.01.0001' 02990000
, CREATE_TO = '31.12.9999' 03000000
WHERE CREATE_FROM IS NULL 03010000
AND CREATE_TO IS NULL 03020000
; 03030000
DECLARE GLOBAL TEMPORARY TABLE TEMP 03040000
( SNUM CHAR(0013) FOR BIT DATA 03050000
, CRITERIA CHAR(0030) 03060000
, FAMILY CHAR(0030) 03070000
, COMMENT CHAR(0020) 03080000
, OBJECT CHAR(0060) 03090000
, OPTVALUE VARCHAR(1024) 03100000
, CREATEDTS TIMESTAMP(6) 03110000
) 03120000
; 03130000
INSERT INTO SESSION.TEMP 03140000
WITH DBDDL ( FAMILY 03150000
, DATABASE 03160000
, BUFFERPOOL 03170000
, INDEXPOOL 03180000
, STOGROUP 03190000
, CCID 03200000
, DBID 03210000
, COMMENT 03220000
, CREATEDTS 03230000
) 03240000
AS (SELECT DISTINCT 03250000
EL.FAMILY 03260000
, DB.NAME 03270000
, DB.BPOOL 03280000
, DB.INDEXBP 03290000
, DB.STGROUP 03300000
, DB.ENCODING_SCHEME 03310000
, DB.DBID 03320000
, EL.COMMENT 03330000
, DB.CREATEDTS 03340000
FROM SESSION.ELAR EL 03350000
INNER JOIN SYSIBM.SYSDATABASE DB 03360000
ON EL.STORAR = DB.NAME 03370000
INNER JOIN SYSIBM.SYSTABLESPACE TS 03380000
ON DB.DBID = TS.DBID 03390000
WHERE DATE(DB.CREATEDTS) 03400000
>= (SELECT CREATE_FROM FROM SESSION.FAMLISTE) 03410000
AND DATE(DB.CREATEDTS) 03420000
<= (SELECT CREATE_TO FROM SESSION.FAMLISTE) 03430000
) 03440000
, RDB ( FAMILY 03450000
, COMMENT 03460000
, OBJECT 03470000
, OPTVALUE 03480000
, CREATEDTS 03490000
) 03500000
AS (SELECT DISTINCT 03510000
FAMILY 03520000
, COMMENT 03530000
, CAST(DATABASE AS CHAR(08)) 03540000
, 'Bufferpool_DB=' 03550000
|| CASE WHEN BUFFERPOOL = 'BP2' 03560000
THEN 'OK' 03570000
ELSE 'NOK' 03580000
END 03590000
|| ';' 03600000
|| 'Bufferpool_DB_IX=' 03610000
|| CASE WHEN INDEXPOOL = 'BP1' 03620000
THEN 'OK' 03630000
ELSE 'NOK' 03640000
END 03650000
|| ';' 03660000
|| 'StorageGroup=' 03670000
|| CASE STOGROUP 03680000
WHEN 'GSMS1' THEN 'OK' 03690000
-- WHEN 'GSMS2' THEN 'OK' 03700099
WHEN 'GSMS3' THEN 'OK' 03710000
WHEN 'GSMS4' THEN 'OK' 03720000
ELSE CASE WHEN SUBSTR(DATABASE,1,3) = 'DXB' 03730000
THEN CASE WHEN STOGROUP = 'GSMS' 03740000
THEN 'OK' 03750000
ELSE 'NOK' 03760000
END 03770000
ELSE 'NOK' 03780000
END 03790000
END 03800000
|| ';' 03810000
|| 'EncodingScheme=' 03820000
|| CASE WHEN CCID = 'E' 03830000
THEN 'OK' 03840000
ELSE 'NOK' 03850000
END 03860000
, CREATEDTS 03870000
FROM DBDDL 03880000
) 03890000
SELECT GENERATE_UNIQUE() 03900000
, '1Database Option Check' 03910000
, FAMILY 03920000
, COMMENT 03930000
, OBJECT 03940000
, OPTVALUE 03950000
, CREATEDTS 03960000
FROM RDB 03970000
ORDER BY FAMILY 03980000
, OBJECT 03990000
; 04000000
INSERT INTO SESSION.TEMP 04010000
WITH TSDDL ( FAMILY 04020000
, DATABASE 04030000
, BPOOL_T 04040000
, TSNAME 04050000
, PARTITION 04060000
, STOGROUP 04070000
, PRIQTY 04080000
, SECQTY 04090000
, GBPCACHE 04100000
, TRACKMODE 04110000
, LOGGED 04120000
, DSSIZE 04130000
, LOCKSIZE 04140000
, LOCKMAX 04150000
, CLOSE 04160000
, COMPRESS 04170000
, CCID 04180000
, DEFINE 04190000
, MAXROWS 04200000
, TPIXNAME 04210000
, AUXTBNAME 04220000
, FREEPAGE 04230000
, PCTFREE 04240000
, COMMENT 04250000
, CREATEDTS 04260000
) 04270000
AS (SELECT DISTINCT 04280000
EL.FAMILY AS FAMILY 04290000
, DB.NAME AS DATABASE 04300000
, TS.BPOOL AS BPOOL_T 04310000
, TS.NAME AS TSNAME 04320000
, TS.PARTITIONS AS PARTITION 04330000
, TP.STORNAME AS STOGROUP 04340000
, TP.PQTY AS PRIQTY 04350000
, TP.SQTY AS SECQTY 04360000
, TP.GBPCACHE AS GBPCACHE 04370000
, TP.TRACKMOD AS TRACKMODE 04380000
, TS.LOG AS LOGGED 04390000
, TS.DSSIZE AS DSSIZE 04400000
, TS.LOCKRULE AS LOCKSIZE 04410000
, TS.LOCKMAX AS LOCKMAX 04420000
, TS.CLOSERULE AS CLOSE 04430000
, TP.COMPRESS AS COMPRESS 04440000
, TS.ENCODING_SCHEME AS CCID 04450000
, TP.SPACE AS DEFINE 04460000
, TS.MAXROWS AS MAXROWS 04470000
, TP.IXNAME AS TPIXNAME 04480000
, TB.TYPE AS AUXTBNAME 04490000
, TP.FREEPAGE AS FREEPAGE 04500000
, TP.PCTFREE AS PCTFREE 04510000
, EL.COMMENT AS COMMENT 04520000
, TP.CREATEDTS AS CREATEDTS 04530000
FROM SESSION.ELAR EL 04540000
INNER JOIN SYSIBM.SYSDATABASE DB 04550000
ON EL.STORAR = DB.NAME 04560000
INNER JOIN SYSIBM.SYSTABLESPACE TS 04570000
ON DB.DBID = TS.DBID 04580000
INNER JOIN SYSIBM.SYSTABLEPART TP 04590000
ON TS.NAME = TP.TSNAME 04600000
AND TS.DBNAME = TP.DBNAME 04610000
INNER JOIN SYSIBM.SYSTABLES TB 04620000
ON TP.DBNAME = TB.DBNAME 04630000
AND TP.TSNAME = TB.TSNAME 04640000
WHERE DATE(TP.CREATEDTS) 04650000
>= (SELECT CREATE_FROM FROM SESSION.FAMLISTE) 04660000
AND DATE(TP.CREATEDTS) 04670000
<= (SELECT CREATE_TO FROM SESSION.FAMLISTE) 04680000
) 04690000
, RTS ( FAMILY 04700000
, COMMENT 04710000
, OBJECT 04720000
, OPTVALUE 04730000
, CREATEDTS 04740000
) 04750000
AS (SELECT DISTINCT 04760000
FAMILY 04770000
, COMMENT 04780000
, CAST(DATABASE AS CHAR(08)) 04790000
|| ' ' 04800000
|| TSNAME 04810000
|| ' ' 04820000
, CASE WHEN PARTITION > 0 04830000
THEN CASE WHEN LENGTH(STRIP(TPIXNAME)) = 0 04840000
THEN 'InfoTCP=OK' 04850000
ELSE 'InfoICP=OK' 04860000
END 04870000
ELSE 'InfoTSS=OK' 04880000
END 04890000
|| ';' 04900000
|| 'TablePartLimit=' 04910000
|| CASE WHEN (SELECT DISTINCT SUBSTR(DATABASE,1,2) 04920000
FROM TSDDL 04930000
) = 'XB' 04940000
THEN CASE WHEN PARTITION > (SELECT MAXPART 04950000
FROM SESSION.MAXPART 04960000
WHERE PARTYPE = 'Table' 04970000
) 04980000
THEN 'NOK' 04990000
ELSE 'OK' 05000000
END 05010000
ELSE 'OK' 05020000
END 05030000
|| ';' 05040000
|| 'Bufferpool' 05050000
|| CASE BPOOL_T 05060000
WHEN 'BP2' THEN 05070000
CASE WHEN SUBSTR(TSNAME,1,1) 05080000
|| SUBSTR( TSNAME 05090000
, (LENGTH(TSNAME)-1)05100000
, 1 05110000
) 05120000
= 'SH' 05130000
THEN '_SHS=NOK' 05140000
ELSE '=OK' 05150000
END 05160000
WHEN 'BP32K' THEN 05170000
CASE WHEN SUBSTR(TSNAME,1,1) 05180000
|| SUBSTR( TSNAME 05190000
, (LENGTH(TSNAME)-1)05200000
, 1 05210000
) 05220000
= 'SH' 05230000
THEN '=OK' 05240000
ELSE CASE WHEN LENGTH(TSNAME) = 8 05250000
THEN CASE WHEN SUBSTR(TSNAME,8,1)05260000
= 'H' 05270000
THEN '=OK' 05280000
ELSE '_SHS=NOK' 05290000
END 05300000
ELSE '_SHS=NOK' 05310000
END 05320000
END 05330000
WHEN 'BP8' THEN 05340000
CASE WHEN AUXTBNAME = 'X' 05350000
THEN '=OK' 05360000
ELSE '_LOB=NOK' 05370000
END 05380000
ELSE '_TS=NOK' 05390000
END 05400000
|| ';' 05410000
|| 'Groupbufferpool=' 05420000
|| CASE GBPCACHE 05430000
WHEN ' ' THEN 'OK' 05440000
ELSE 'NOK' 05450000
END 05460000
|| ';' 05470000
|| 'Trackmode=' 05480000
|| CASE TRACKMODE 05490000
WHEN 'N' THEN 'OK' 05500000
ELSE 'NOK' 05510000
END 05520000
|| ';' 05530000
|| 'LoggedOption=' 05540000
|| CASE LOGGED 05550000
WHEN 'Y' THEN 'OK' 05560000
ELSE 'NOK' 05570000
END 05580000
|| ';' 05590000
|| 'DSSIZE=' 05600000
|| CASE WHEN PARTITION > 0 05610000
THEN CASE DSSIZE 05620000
WHEN 16777216 THEN 'OK' 05630000
ELSE 'NOK' 05640000
END 05650000
ELSE 'OK' 05660000
END 05670000
|| ';' 05680000
|| 'Locksize=' 05690000
|| CASE LOCKSIZE 05700000
WHEN 'A' THEN 'OK' 05710000
ELSE 'NOK' 05720000
END 05730000
|| ';' 05740000
|| 'LockMax=' 05750000
|| CASE LOCKMAX 05760000
WHEN -1 THEN 'OK' 05770000
ELSE 'NOK' 05780000
END 05790000
|| ';' 05800000
|| 'CloseOption=' 05810000
|| CASE CLOSE 05820000
WHEN 'Y' THEN 'OK' 05830000
ELSE 'NOK' 05840000
END 05850000
|| ';' 05860000
|| 'TblCompressOption=' 05870000
|| CASE COMPRESS 05880000
WHEN 'Y' THEN 'OK' 05890000
ELSE 'NOK' 05900000
END 05910000
|| ';' 05920000
|| 'StorageGroup=' 05930000
|| CASE STOGROUP 05940000
WHEN 'GSMS1' THEN 'OK' 05950000
-- WHEN 'GSMS2' THEN 'OK' 05960099
WHEN 'GSMS3' THEN 'OK' 05970000
WHEN 'GSMS4' THEN 'OK' 05980000
ELSE CASE WHEN SUBSTR(DATABASE,1,3) = 'DXB' 05990000
THEN CASE WHEN STOGROUP = 'GSMS' 06000000
THEN 'OK' 06010000
ELSE 'NOK' 06020000
END 06030000
ELSE 'NOK' 06040000
END 06050000
END 06060000
|| ';' 06070000
|| 'PrimaryQuantity=' 06080000
|| CASE PRIQTY 06090000
WHEN -1 THEN 'OK' 06100000
ELSE 'NOK' 06110000
END 06120000
|| ';' 06130000
|| 'SecondaryQuantity=' 06140000
|| CASE SECQTY 06150000
WHEN -1 THEN 'OK' 06160000
ELSE 'NOK' 06170000
END 06180000
|| ';' 06190000
|| 'EncodingScheme=' 06200000
|| CASE WHEN CCID = 'E' THEN 'OK' 06210000
ELSE 'NOK' 06220000
END 06230000
|| ';' 06240000
|| 'DefineOption=' 06250000
|| CASE DEFINE 06260000
WHEN -1 THEN 'NOK' 06270000
ELSE 'OK' 06280000
END 06290000
|| ';' 06300000
|| 'MaxRowsPerPage=' 06310000
|| CASE MAXROWS 06320000
WHEN 255 THEN 'OK' 06330000
ELSE 'NOK' 06340000
END 06350000
|| ';' 06360000
|| 'TSFreepage=' 06370000
|| CASE FREEPAGE 06380000
WHEN 0 THEN 'OK' 06390000
ELSE 'NOK' 06400000
END 06410000
|| ';' 06420000
|| 'TSPctfree=' 06430000
|| CASE PCTFREE 06440000
WHEN 0 THEN 'OK' 06450000
ELSE 'NOK' 06460000
END 06470000
, CREATEDTS 06480000
FROM TSDDL 06490000
) 06500000
SELECT GENERATE_UNIQUE() 06510000
, '2Tablespace Option Check' 06520000
, FAMILY 06530000
, COMMENT 06540000
, OBJECT 06550000
, OPTVALUE 06560000
, CREATEDTS 06570000
FROM RTS 06580000
ORDER BY FAMILY 06590000
, OBJECT 06600000
; 06610000
INSERT INTO SESSION.TEMP 06620000
WITH TBDDL ( FAMILY 06630000
, DATABASE 06640000
, TSNAME 06650000
, TBNAME 06660000
, AUDIT 06670000
, DATA_CAPTURE 06680000
, RESTRICT_DROP 06690000
, CCID 06700000
, VOLATILE 06710000
, APPEND 06720000
, PART_NAME 06730000
, PART_TYPE 06740000
, PART_SEQ 06750000
, PART_ORDER 06760000
, PARTITION 06770000
, PART_LIMITKEY 06780000
, PART_LOGICALKEY 06790000
, COLNO 06800000
, PARTKEYCOLNUM 06810000
, COMMENT 06820000
, CREATEDTS 06830000
) 06840000
AS (SELECT EL.FAMILY 06850000
, CAST(TB.DBNAME AS CHAR(08)) 06860000
, TB.TSNAME 06870000
, TB.NAME 06880000
, TB.AUDITING 06890000
, TB.DATACAPTURE 06900000
, TB.CLUSTERTYPE 06910000
, TB.ENCODING_SCHEME 06920000
, TB.SPLIT_ROWS 06930000
, TB.APPEND 06940000
, TC.NAME 06950000
, TC.COLTYPE 06960000
, TC.PARTKEY_COLSEQ 06970000
, CAST(CASE WHEN TS.PARTITIONS = 0 06980000
THEN ' ' 06990000
ELSE TC.PARTKEY_ORDERING 07000000
END AS CHAR(01)) 07010000
, CAST(TP.PARTITION AS INTEGER) 07020000
, CAST(CASE WHEN TS.PARTITIONS = 0 07030000
THEN '0' 07040000
ELSE STRIP(TP.LIMITKEY) 07050000
END AS VARCHAR(765)) 07060000
, CAST(CASE WHEN TS.PARTITIONS = 0 07070000
THEN 0 07080000
ELSE TP.LOGICAL_PART 07090000
END AS INTEGER) 07100000
, COLNO 07110000
, TB.PARTKEYCOLNUM 07120000
, EL.COMMENT 07130000
, TP.CREATEDTS 07140000
FROM SESSION.ELAR EL 07150000
INNER JOIN SYSIBM.SYSDATABASE DB 07160000
ON EL.STORAR = DB.NAME 07170000
INNER JOIN SYSIBM.SYSTABLES TB 07180000
ON TB.DBNAME = DB.NAME 07190000
AND TB.TYPE = 'T' 07200000
INNER JOIN SYSIBM.SYSCOLUMNS TC 07210000
ON TB.NAME = TC.TBNAME 07220000
AND TB.CREATOR = TC.TBCREATOR 07230000
INNER JOIN SYSIBM.SYSTABLESPACE TS 07240000
ON TB.TSNAME = TS.NAME 07250000
AND TB.DBID = TS.DBID 07260000
AND TS.DBID = DB.DBID 07270000
INNER JOIN SYSIBM.SYSTABLEPART TP 07280000
ON TS.NAME = TP.TSNAME 07290000
AND TS.DBNAME = TP.DBNAME 07300000
WHERE TC.PARTKEY_COLSEQ > 0 07310000
AND DATE(TP.CREATEDTS) 07320000
>= (SELECT CREATE_FROM FROM SESSION.FAMLISTE) 07330000
AND DATE(TP.CREATEDTS) 07340000
<= (SELECT CREATE_TO FROM SESSION.FAMLISTE) 07350000
ORDER BY TB.DBNAME, TB.TSNAME 07360000
, TC.COLNO , TC.PARTKEY_COLSEQ 07370000
) 07380000
, RTB ( FAMILY 07390000
, COMMENT 07400000
, OBJECT 07410000
, OPTVALUE 07420000
, CREATEDTS 07430000
) 07440000
AS (SELECT DISTINCT 07450000
FAMILY 07460000
, COMMENT 07470000
, CAST(DATABASE AS CHAR(08)) 07480000
|| ' ' 07490000
|| TSNAME 07500000
|| ' ' 07510000
|| TBNAME 07520000
, 'Audit=' 07530000
|| CASE AUDIT 07540000
WHEN ' ' THEN 'OK' 07550000
ELSE 'NOK' 07560000
END 07570000
|| ';' 07580000
|| 'DataCapture=' 07590000
|| CASE DATA_CAPTURE 07600000
WHEN ' ' THEN 'OK' 07610000
ELSE 'NOK' 07620000
END 07630000
|| ';' 07640000
|| 'RestrictOnDrop=' 07650000
|| CASE RESTRICT_DROP 07660000
WHEN 'Y' THEN 'OK' 07670000
ELSE 'NOK' 07680000
END 07690000
|| ';' 07700000
|| 'EncodingScheme=' 07710000
|| CASE CCID 07720000
WHEN 'E' THEN 'OK' 07730000
ELSE 'NOK' 07740000
END 07750000
|| ';' 07760000
|| 'Volatile=' 07770000
|| CASE VOLATILE 07780000
WHEN 'Y' THEN 'OK' 07790000
ELSE 'NOK' 07800000
END 07810000
|| ';' 07820000
|| 'Append=' 07830000
|| CASE APPEND 07840000
WHEN 'Y' THEN 'OK' 07850000
ELSE 'NOK' 07860000
END 07870000
|| ';' 07880000
|| 'PartKeyName=' 07890000
|| CASE WHEN SUBSTR(DATABASE,1,2) = 'XB' 07900000
THEN CASE WHEN PART_SEQ > 0 07910000
THEN CASE PART_NAME 07920000
WHEN 'EN1PART' THEN 'OK' 07930000
ELSE 'NOK' 07940000
END 07950000
ELSE 'NOK' 07960000
END 07970000
ELSE 'OK' 07980000
END 07990000
|| ';' 08000000
|| 'PartKeyType=' 08010000
|| CASE WHEN SUBSTR(DATABASE,1,2) = 'XB' 08020000
THEN CASE WHEN PART_SEQ > 0 08030000
THEN CASE PART_TYPE 08040000
WHEN 'INTEGER' THEN 'OK' 08050000
ELSE 'NOK' 08060000
END 08070000
ELSE 'NOK' 08080000
END 08090000
ELSE 'OK' 08100000
END 08110000
|| ';' 08120000
|| 'PartKeyPosition=' 08130000
|| CASE WHEN SUBSTR(DATABASE,1,2) = 'XB' 08140000
THEN CASE WHEN PART_SEQ > 0 08150000
THEN CASE PART_SEQ 08160000
WHEN 1 THEN 'OK' 08170000
ELSE 'NOK' 08180000
END 08190000
ELSE 'NOK' 08200000
END 08210000
ELSE 'OK' 08220000
END 08230000
|| ';' 08240000
|| 'PartKeyOrder=' 08250000
|| CASE WHEN SUBSTR(DATABASE,1,2) = 'XB' 08260000
THEN CASE WHEN PART_SEQ > 0 08270000
THEN CASE PART_ORDER 08280000
WHEN 'A' THEN 'OK' 08290000
ELSE 'NOK' 08300000
END 08310000
ELSE 'NOK' 08320000
END 08330000
ELSE 'OK' 08340000
END 08350000
|| ';' 08360000
|| 'PartKeyValue(s)=' 08370000
|| CASE 08380000
WHEN SUBSTR(DATABASE,1,2) = 'XB' 08390000
THEN CASE 08400000
WHEN PART_SEQ > 0 08410000
THEN CASE 08420000
WHEN CHAR(PARTITION) = PART_LIMITKEY 08430000
THEN CASE 08440000
WHEN PART_LIMITKEY 08450000
= CHAR(PART_LOGICALKEY) 08460000
THEN 'OK' 08470000
ELSE 'NOK' 08480000
END 08490000
ELSE 'NOK' 08500000
END 08510000
ELSE 'NOK' 08520000
END 08530000
ELSE 'OK' 08540000
END 08550000
|| ';' 08560000
|| 'PartKeyColNum=' 08570000
|| CASE WHEN SUBSTR(DATABASE,1,2) = 'XB' 08580000
THEN CASE WHEN PARTKEYCOLNUM = 1 08590000
THEN 'OK' 08600000
ELSE 'NOK' 08610000
END 08620000
ELSE 'OK' 08630000
END 08640000
AS OPTVALUE 08650000
, CREATEDTS 08660000
FROM TBDDL 08670000
) 08680000
SELECT GENERATE_UNIQUE() 08690000
, '3Table Option Check' 08700000
, FAMILY 08710000
, COMMENT 08720000
, OBJECT 08730000
, OPTVALUE 08740000
, CREATEDTS 08750000
FROM RTB 08760000
ORDER BY FAMILY 08770000
, OBJECT 08780000
; 08790000
INSERT INTO SESSION.TEMP 08800000
WITH XSTMP ( FAMILY 08810000
, DATABASE 08820000
, TBNAME 08830000
, IXNAME 08840000
, IXCREATOR 08850000
, BPOOL_I 08860000
, INDEXTYPE 08870000
, PARTITION 08880000
, STOGROUP 08890000
, PRIQTY 08900000
, SECQTY 08910000
, GBPCACHE 08920000
, PGSIZE 08930000
, FREEPAGE 08940000
, PCTFREE 08950000
, COMPRESS 08960000
, CLOSE 08970000
, COPY 08980000
, DEFINE 08990000
, CLUSTERING 09000000
, TSPARTITION 09010000
, TPIXNAME 09020000
, PIECESIZE 09030000
, TSPGSIZE 09040000
, COMMENT 09050000
, CREATEDTS 09060000
) 09070000
AS (SELECT DISTINCT 09080000
EL.FAMILY 09090000
, DB.NAME 09100000
, IX.TBNAME 09110000
, IX.NAME 09120000
, IX.CREATOR 09130000
, IX.BPOOL 09140000
, IX.INDEXTYPE 09150000
, (SELECT MAX(TMP.PARTITION) 09160000
FROM SYSIBM.SYSINDEXPART TMP 09170000
WHERE TMP.IXNAME = IX.NAME 09180000
AND TMP.IXCREATOR = IX.CREATOR 09190000
) 09200000
, XP.STORNAME 09210000
, XP.PQTY 09220000
, XP.SQTY 09230000
, XP.GBPCACHE 09240000
, IX.PGSIZE 09250000
, XP.FREEPAGE 09260000
, XP.PCTFREE 09270000
, IX.COMPRESS 09280000
, IX.CLOSERULE 09290000
, IX.COPY 09300000
, XP.SPACE 09310000
, IX.CLUSTERING 09320000
, (SELECT TMP.PARTITIONS 09330000
FROM SYSIBM.SYSTABLESPACE TMP 09340000
WHERE TMP.DBID = DB.DBID 09350000
AND TMP.DBID = IX.DBID 09360000
AND TMP.NAME = TB.TSNAME 09370000
) 09380000
, (SELECT TMP.IXNAME 09390000
FROM SYSIBM.SYSTABLEPART TMP 09400000
WHERE TMP.TSNAME = TS.NAME 09410000
AND TMP.DBNAME = TS.DBNAME 09420000
FETCH FIRST 1 ROW ONLY 09430000
) 09440000
, IX.PIECESIZE 09450000
, TS.PGSIZE 09460000
, EL.COMMENT 09470000
, XP.CREATEDTS 09480000
FROM SESSION.ELAR EL 09490000
INNER JOIN SYSIBM.SYSDATABASE DB 09500000
ON EL.STORAR = DB.NAME 09510000
INNER JOIN SYSIBM.SYSINDEXES IX 09520000
ON DB.DBID = IX.DBID 09530000
INNER JOIN SYSIBM.SYSTABLES TB 09540000
ON IX.TBNAME = TB.NAME 09550000
AND IX.DBNAME = TB.DBNAME 09560000
AND IX.DBID = TB.DBID 09570000
AND TB.DBID = DB.DBID 09580000
INNER JOIN SYSIBM.SYSTABLESPACE TS 09590000
ON TB.TSNAME = TS.NAME 09600000
AND TS.DBID = TB.DBID 09610000
AND TS.DBID = IX.DBID 09620000
AND TS.DBID = DB.DBID 09630000
INNER JOIN SYSIBM.SYSINDEXPART XP 09640000
ON IX.NAME = XP.IXNAME 09650000
AND IX.CREATOR = XP.IXCREATOR 09660000
WHERE DATE(XP.CREATEDTS) 09670000
>= (SELECT CREATE_FROM FROM SESSION.FAMLISTE) 09680000
AND DATE(XP.CREATEDTS) 09690000
<= (SELECT CREATE_TO FROM SESSION.FAMLISTE) 09700000
) 09710000
, IXDDL ( FAMILY 09720000
, DATABASE 09730000
, TBNAME 09740000
, IXNAME 09750000
, BPOOL_I 09760000
, INDEXTYPE 09770000
, PARTITION 09780000
, STOGROUP 09790000
, PRIQTY 09800000
, SECQTY 09810000
, GBPCACHE 09820000
, PGSIZE 09830000
, FREEPAGE 09840000
, PCTFREE 09850000
, COMPRESS 09860000
, CLOSE 09870000
, COPY 09880000
, DEFINE 09890000
, CLUSTERING 09900000
, CNT_KEYS 09910000
, CLUSTERKEY 09920000
, TSPARTITION 09930000
, TPIXNAME 09940000
, PIECESIZE 09950000
, TSPGSIZE 09960000
, IXTECHBUSINESS 09970000
, COMMENT 09980000
, CREATEDTS 09990000
) 10000000
AS (SELECT T1.FAMILY 10010000
, T1.DATABASE 10020000
, T1.TBNAME 10030000
, T1.IXNAME 10040000
, T1.BPOOL_I 10050000
, T1.INDEXTYPE 10060000
, T1.PARTITION 10070000
, T1.STOGROUP 10080000
, T1.PRIQTY 10090000
, T1.SECQTY 10100000
, T1.GBPCACHE 10110000
, T1.PGSIZE 10120000
, T1.FREEPAGE 10130000
, T1.PCTFREE 10140000
, T1.COMPRESS 10150000
, T1.CLOSE 10160000
, T1.COPY 10170000
, T1.DEFINE 10180000
, T1.CLUSTERING 10190000
, (SELECT MAX(SK.COLSEQ) 10200000
FROM SYSIBM.SYSKEYS SK 10210000
WHERE T1.IXCREATOR = SK.IXCREATOR 10220000
AND T1.IXNAME = SK.IXNAME 10230000
AND T1.CLUSTERING = 'Y' 10240000
AND SK.COLSEQ = 1 10250000
) AS CNT_KEYS 10260000
, (SELECT SK.COLNAME 10270000
FROM SYSIBM.SYSKEYS SK 10280000
WHERE T1.IXCREATOR = SK.IXCREATOR 10290000
AND T1.IXNAME = SK.IXNAME 10300000
AND T1.CLUSTERING = 'Y' 10310000
AND SK.COLSEQ = 1 10320000
) AS CLUSTERKEY 10330000
, T1.TSPARTITION 10340000
, T1.TPIXNAME 10350000
, T1.PIECESIZE 10360000
, T1.TSPGSIZE 10370000
, (SELECT COUNT(*) 10380000
FROM SYSIBM.SYSKEYS IK 10390000
WHERE IK.IXNAME = T1.IXNAME 10400000
AND ( IK.COLNAME LIKE '%ATRN%' 10410000
OR IK.COLNAME LIKE '%STRN%' 10420000
) 10430000
) AS IXTECHBUSINESS 10440000
, T1.COMMENT 10450000
, T1.CREATEDTS 10460000
FROM XSTMP T1 10470000
) 10480000
, RXS ( FAMILY 10490000
, COMMENT 10500000
, OBJECT 10510000
, OPTVALUE 10520000
, CREATEDTS 10530000
) 10540000
AS (SELECT DISTINCT 10550000
FAMILY 10560000
, COMMENT 10570000
, CAST(DATABASE AS CHAR(08)) 10580000
|| ' ' 10590000
|| IXNAME 10600000
|| ' ' 10610000
|| TBNAME 10620000
, 'NoIndexExists=' 10630000
|| CASE WHEN LENGTH(STRIP(IXNAME)) = 0 10640000
THEN 'NOK' 10650000
ELSE 'OK' 10660000
END 10670000
|| ';' 10680000
|| 'NPI=' 10690000
|| CASE WHEN PARTITION + TSPARTITION = 0 10700000
THEN 'OK' 10710000
ELSE CASE WHEN TSPARTITION > 0 AND PIECESIZE = 0 10720000
THEN 'OK' 10730000
ELSE CASE WHEN PARTITION > 0 AND 10740000
PIECESIZE > 0 10750000
THEN 'OK' 10760000
ELSE 'NOK' 10770000
END 10780000
END 10790000
END 10800000
|| ';' 10810000
|| 'Indextype=' 10820000
|| CASE INDEXTYPE 10830000
WHEN 'D' then case when tspartition > 0 10840000
then 'OK' 10850000
else 'NOK' 10860000
end 10870000
WHEN 'P' then case when tspartition > 0 10880000
then 'OK' 10890000
else 'NOK' 10900000
end 10910000
WHEN ' ' then case when tspartition > 0 10920000
then 'NOK' 10930000
else 'OK' 10940000
end 10950000
WHEN '2' then case when tspartition > 0 10960000
then 'NOK' 10970000
else 'OK' 10980000
end 10990000
ELSE 'NOK' 11000000
END 11010000
|| ';' 11020000
|| 'IndexPartLimit=' 11030000
|| CASE WHEN PARTITION > (SELECT MAXPART 11040000
FROM SESSION.MAXPART 11050000
WHERE PARTYPE = 'Index' 11060000
) 11070000
THEN 'NOK' 11080000
ELSE 'OK' 11090000
END 11100000
|| ';' 11110000
|| 'Bufferpool=' 11120000
|| CASE BPOOL_I 11130000
WHEN 'BP1' THEN 'OK' 11140000
ELSE 'NOK' 11150000
END 11160000
|| ';' 11170000
|| 'GroupBufferPool=' 11180000
|| CASE GBPCACHE 11190000
WHEN ' ' THEN 'OK' 11200000
ELSE 'NOK' 11210000
END 11220000
|| ';' 11230000
|| 'Pagesize=' 11240000
|| CASE WHEN TSPGSIZE = PGSIZE 11250000
THEN 'OK' 11260000
ELSE 'OK' 11270000
END 11280000
|| ';' 11290000
|| 'CloseOption=' 11300000
|| CASE CLOSE 11310000
WHEN 'Y' THEN 'OK' 11320000
ELSE 'NOK' 11330000
END 11340000
|| ';' 11350000
|| 'IdxCompressOption=' 11360000
|| CASE COMPRESS 11370000
WHEN 'N' THEN 'OK' 11380000
ELSE 'NOK' 11390000
END 11400000
|| ';' 11410000
|| 'StorageGroup=' 11420000
|| CASE STOGROUP 11430000
WHEN 'GSMS1' THEN 'OK' 11440000
-- WHEN 'GSMS2' THEN 'OK' 11450099
WHEN 'GSMS3' THEN 'OK' 11460000
WHEN 'GSMS4' THEN 'OK' 11470000
ELSE CASE WHEN SUBSTR(DATABASE,1,3) = 'DXB' 11480000
THEN CASE WHEN STOGROUP = 'GSMS' 11490000
THEN 'OK' 11500000
ELSE 'NOK' 11510000
END 11520000
ELSE 'NOK' 11530000
END 11540000
END 11550000
|| ';' 11560000
|| 'PrimaryQuantity=' 11570000
|| CASE PRIQTY 11580000
WHEN -1 THEN 'OK' 11590000
ELSE 'NOK' 11600000
END 11610000
|| ';' 11620000
|| 'SecondaryQuantity=' 11630000
|| CASE SECQTY 11640000
WHEN -1 THEN 'OK' 11650000
ELSE 'NOK' 11660000
END 11670000
|| ';' 11680000
|| 'Define=' 11690000
|| CASE DEFINE 11700000
WHEN -1 THEN 'NOK' 11710000
ELSE 'OK' 11720000
END 11730000
|| ';' 11740000
|| 'FreePage' 11750000
|| CASE FREEPAGE 11760000
WHEN 0 THEN '=OK' 11770000
ELSE '=NOK' 11780000
END 11790000
|| ';' 11800000
|| 'PctFree' 11810000
|| CASE WHEN SUBSTR(DATABASE,1,3) = 'DXB' 11820000
THEN '_Metadata=OK' 11830000
ELSE 11840000
CASE WHEN IXTECHBUSINESS > 0 11850000
THEN CASE PCTFREE 11860000
WHEN 0 THEN '_Technical=OK' 11870000
ELSE '_Technical=NOK' 11880000
END 11890000
ELSE CASE PCTFREE 11900000
WHEN 10 THEN '_Business=OK' 11910000
ELSE '_Business=NOK' 11920000
END 11930000
END 11940000
END 11950000
|| ';' 11960000
|| 'Copy=' 11970000
|| CASE COPY 11980000
WHEN 'N' THEN 'OK' 11990000
ELSE 'NOK' 12000000
END 12010000
, CREATEDTS 12020000
FROM IXDDL 12030000
) 12040000
SELECT GENERATE_UNIQUE() 12050000
, '4Indexspace Option Check' 12060000
, FAMILY 12070000
, COMMENT 12080000
, OBJECT 12090000
, OPTVALUE 12100000
, CREATEDTS 12110000
FROM RXS 12120000
ORDER BY FAMILY 12130000
, OBJECT 12140000
; 12150000
INSERT INTO SESSION.TEMP 12160000
WITH IXTYPE_FAILURE ( INDEXTYPE 12170000
) 12180000
AS ( SELECT 'C' 12190000
FROM SYSIBM.SYSDUMMY1 12200000
UNION ALL 12210000
SELECT 'N' 12220000
FROM SYSIBM.SYSDUMMY1 12230000
UNION ALL 12240000
SELECT 'R' 12250000
FROM SYSIBM.SYSDUMMY1 12260000
UNION ALL 12270000
SELECT 'G' 12280000
FROM SYSIBM.SYSDUMMY1 12290000
UNION ALL 12300000
SELECT 'X' 12310000
FROM SYSIBM.SYSDUMMY1 12320000
) 12330000
, IXTYPE_UNIQUE ( INDEXTYPE 12340000
) 12350000
AS ( SELECT 'P' 12360000
FROM SYSIBM.SYSDUMMY1 12370000
UNION ALL 12380000
SELECT 'U' 12390000
FROM SYSIBM.SYSDUMMY1 12400000
) 12410000
, IXTYPE ( INDEXTYPE 12420000
) 12430000
AS ( SELECT 'C' 12440000
FROM SYSIBM.SYSDUMMY1 12450000
UNION ALL 12460000
SELECT 'D' 12470000
FROM SYSIBM.SYSDUMMY1 12480000
UNION ALL 12490000
SELECT 'U' 12500000
FROM SYSIBM.SYSDUMMY1 12510000
UNION ALL 12520000
SELECT 'P' 12530000
FROM SYSIBM.SYSDUMMY1 12540000
UNION ALL 12550000
SELECT 'N' 12560000
FROM SYSIBM.SYSDUMMY1 12570000
UNION ALL 12580000
SELECT 'R' 12590000
FROM SYSIBM.SYSDUMMY1 12600000
UNION ALL 12610000
SELECT 'G' 12620000
FROM SYSIBM.SYSDUMMY1 12630000
UNION ALL 12640000
SELECT 'X' 12650000
FROM SYSIBM.SYSDUMMY1 12660000
) 12670000
, IXLST ( FAMILY 12680000
, DATABASE 12690000
, TBNAME 12700000
, IXNAME 12710000
, IXCREATOR 12720000
, ELAR_TYPE 12730000
, ELAR_ORDER 12740000
, UNIQUERULE 12750000
, CLUSTERING 12760000
, MAXCOL 12770000
, EN1PART 12780000
, EA1ATRN 12790000
, EA1STRN 12800000
, EN1STK1 12810000
, EN1STK2 12820000
, EATRNVON 12830000
, EATRNBIS 12840000
, COMMENT 12850000
, CREATEDTS 12860000
) 12870000
AS (SELECT DISTINCT 12880000
EL.FAMILY 12890000
, DB.NAME 12900000
, TB.NAME 12910000
, IFNULL(IX.NAME,'NOK') 12920000
, IX.CREATOR 12930000
, CAST(CASE SUBSTR(TB.NAME,9,2) 12940000
WHEN 'HS' THEN 'SIGNATUR' 12950000
WHEN 'IT' THEN 'BODY ' 12960000
WHEN 'PM' THEN 'MULTIPLE' 12970000
ELSE CASE SUBSTR(TB.NAME,9,5) 12980000
WHEN 'PS001' THEN 'AOP ' 12990000
WHEN 'PS002' THEN 'SEP ' 13000000
WHEN 'PS003' THEN 'SEP_2 ' 13010000
ELSE '??????? ' 13020000
END 13030000
END 13040000
AS CHAR(08) 13050000
) 13060000
, CAST(CASE SUBSTR(TB.NAME,9,2) 13070000
WHEN 'HS' THEN '6' 13080000
WHEN 'IT' THEN '4' 13090000
WHEN 'PM' THEN '5' 13100000
ELSE CASE SUBSTR(TB.NAME,9,5) 13110000
WHEN 'PS001' THEN '1' 13120000
WHEN 'PS002' THEN '2' 13130000
WHEN 'PS003' THEN '3' 13140000
ELSE '7' 13150000
END 13160000
END 13170000
AS CHAR(01) 13180000
) 13190000
, IFNULL(IX.UNIQUERULE,'NOK') AS UNIQUERULE 13200000
, IFNULL(IX.CLUSTERING,'NOK') AS CLUSTERING 13210000
, (SELECT COUNT(*) 13220000
FROM SYSIBM.SYSKEYS SK 13230000
WHERE IX.NAME = SK.IXNAME 13240000
AND IX.CREATOR = SK.IXCREATOR 13250000
) AS MAXCOL 13260000
, IFNULL((SELECT SK.COLSEQ 13270000
FROM SYSIBM.SYSKEYS SK 13280000
WHERE IX.NAME = SK.IXNAME 13290000
AND IX.CREATOR = SK.IXCREATOR 13300000
AND SK.COLNAME = 'EN1PART' 13310000
), -1) AS EN1PART 13320000
, IFNULL((SELECT SK.COLSEQ 13330000
FROM SYSIBM.SYSKEYS SK 13340000
WHERE IX.NAME = SK.IXNAME 13350000
AND IX.CREATOR = SK.IXCREATOR 13360000
AND SK.COLNAME = 'EA1ATRN' 13370000
), -1) AS EA1ATRN 13380000
, IFNULL((SELECT SK.COLSEQ 13390000
FROM SYSIBM.SYSKEYS SK 13400000
WHERE IX.NAME = SK.IXNAME 13410000
AND IX.CREATOR = SK.IXCREATOR 13420000
AND SK.COLNAME = 'EA1STRN' 13430000
), -1) AS EA1STRN 13440000
, IFNULL((SELECT SK.COLSEQ 13450000
FROM SYSIBM.SYSKEYS SK 13460000
WHERE IX.NAME = SK.IXNAME 13470000
AND IX.CREATOR = SK.IXCREATOR 13480000
AND SK.COLNAME = 'EN1STK1' 13490000
), -1) AS EN1STK1 13500000
, IFNULL((SELECT SK.COLSEQ 13510000
FROM SYSIBM.SYSKEYS SK 13520000
WHERE IX.NAME = SK.IXNAME 13530000
AND IX.CREATOR = SK.IXCREATOR 13540000
AND SK.COLNAME = 'EN1STK2' 13550000
), -1) AS EN1STK2 13560000
, IFNULL((SELECT SK.COLSEQ 13570000
FROM SYSIBM.SYSKEYS SK 13580000
WHERE IX.NAME = SK.IXNAME 13590000
AND IX.CREATOR = SK.IXCREATOR 13600000
AND SK.COLNAME = 'EATRNVON' 13610000
), -1) AS EATRNVON 13620000
, IFNULL((SELECT SK.COLSEQ 13630000
FROM SYSIBM.SYSKEYS SK 13640000
WHERE IX.NAME = SK.IXNAME 13650000
AND IX.CREATOR = SK.IXCREATOR 13660000
AND SK.COLNAME = 'EATRNBIS' 13670000
), -1) AS EATRNBIS 13680000
, EL.COMMENT 13690000
, IFNULL(IX.CREATEDTS, '0001-01-01-00.00.00.000000') 13700000
FROM SESSION.ELAR EL 13710000
INNER JOIN SYSIBM.SYSDATABASE DB 13720000
ON EL.STORAR = DB.NAME 13730000
INNER JOIN SYSIBM.SYSTABLES TB 13740000
ON TB.DBNAME = DB.NAME 13750000
AND TB.TYPE = 'T' 13760000
INNER JOIN SYSIBM.SYSTABLESPACE TS 13770000
ON TB.TSNAME = TS.NAME 13780000
AND TB.DBID = TS.DBID 13790000
AND TS.DBID = DB.DBID 13800000
LEFT OUTER JOIN SYSIBM.SYSINDEXES IX 13810000
ON IX.TBNAME = TB.NAME 13820000
LEFT OUTER JOIN IXTYPE TY 13830000
ON IX.INDEXTYPE = TY.INDEXTYPE 13840000
) 13850000
, RXI ( FAMILY 13860000
, COMMENT 13870000
, OBJECT 13880000
, OPTVALUE 13890000
, CREATEDTS 13900000
) 13910000
AS (SELECT FAMILY 13920000
, COMMENT 13930000
, CAST(DATABASE AS CHAR(08)) 13940000
|| ' ' 13950000
|| TBNAME 13960000
|| ' ' 13970000
, 'No' 13980000
|| ' ' 13990000
|| 'Index' 14000000
|| ' ' 14010000
|| 'exists=NOK' 14020000
|| ';' 14030000
, CREATEDTS 14040000
FROM IXLST 14050000
WHERE UNIQUERULE = 'NOK' 14060000
UNION ALL 14070000
SELECT FAMILY 14080000
, COMMENT 14090000
, CAST(DATABASE AS CHAR(08)) 14100000
|| ' ' 14110000
|| IXNAME 14120000
|| ' ' 14130000
|| TBNAME 14140000
|| ' ' 14150000
|| 'IndexType_Failure' 14160000
, 'IndexType_Failure=NOK' 14170000
|| ';' 14180000
, CREATEDTS 14190000
FROM IXLST 14200000
WHERE UNIQUERULE IN (SELECT INDEXTYPE 14210000
FROM IXTYPE_FAILURE 14220000
) 14230000
UNION ALL 14240000
SELECT FAMILY 14250000
, COMMENT 14260000
, CAST(DATABASE AS CHAR(08)) 14270000
|| ' ' 14280000
|| IXNAME 14290000
|| ' ' 14300000
|| TBNAME 14310000
|| ' ' 14320000
|| 'IndexRule=Unique' 14330000
, 'EN1PART_MIS=' 14340000
|| CASE WHEN EN1PART = -1 14350000
THEN 'NOK' 14360000
ELSE 'OK' 14370000
END 14380000
|| ';' 14390000
|| 'EN1PART_WPOS=' 14400000
|| CASE WHEN EN1PART = 2 14410000
THEN 'OK' 14420000
ELSE 'NOK' 14430000
END 14440000
|| ';' 14450000
|| 'EA1ARTN_MIS=' 14460000
|| CASE WHEN EA1ATRN = -1 14470000
THEN 'NOK' 14480000
ELSE 'OK' 14490000
END 14500000
|| ';' 14510000
|| 'EA1ARTN_WPOS=' 14520000
|| CASE WHEN EA1ATRN = 1 14530000
THEN 'OK' 14540000
ELSE 'NOK' 14550000
END 14560000
|| ';' 14570000
|| 'CLUSTER_DEF=' 14580000
|| CASE CLUSTERING 14590000
WHEN 'Y' THEN 'OK' 14600000
ELSE 'NOK' 14610000
END 14620000
|| ';' 14630000
|| 'TooManyCols=' 14640000
|| CASE MAXCOL 14650000
WHEN 2 THEN 'OK' 14660000
ELSE 'NOK' 14670000
END 14680000
|| ';' 14690000
, CREATEDTS 14700000
FROM IXLST 14710000
WHERE ELAR_TYPE = 'AOP' 14720000
AND UNIQUERULE IN (SELECT INDEXTYPE 14730000
FROM IXTYPE_UNIQUE 14740000
) 14750000
AND SUBSTR(DATABASE,1,2) = 'XB' 14760000
UNION ALL 14770000
SELECT FAMILY 14780000
, COMMENT 14790000
, CAST(DATABASE AS CHAR(08)) 14800000
|| ' ' 14810000
|| IXNAME 14820000
|| ' ' 14830000
|| TBNAME 14840000
|| ' ' 14850000
|| 'IndexRule=Unique' 14860000
, 'EN1PART_MIS=' 14870000
|| CASE WHEN EN1PART = -1 14880000
THEN 'NOK' 14890000
ELSE 'OK' 14900000
END 14910000
|| ';' 14920000
|| 'EA1SRTN_MIS=' 14930000
|| CASE WHEN EA1STRN = -1 14940000
THEN 'NOK' 14950000
ELSE 'OK' 14960000
END 14970000
|| ';' 14980000
|| 'EN1PART_WPOS=' 14990000
|| CASE WHEN EN1PART = 2 15000000
THEN 'OK' 15010000
ELSE 'NOK' 15020000
END 15030000
|| ';' 15040000
|| 'EA1SRTN_WPOS=' 15050000
|| CASE WHEN EA1STRN = 1 15060000
THEN 'OK' 15070000
ELSE 'NOK' 15080000
END 15090000
|| ';' 15100000
|| 'CLUSTER_DEF=' 15110000
|| CASE CLUSTERING 15120000
WHEN 'Y' THEN 'OK' 15130000
ELSE 'NOK' 15140000
END 15150000
|| ';' 15160000
|| 'TooManyCols=' 15170000
|| CASE MAXCOL 15180000
WHEN 2 THEN 'OK' 15190000
ELSE 'NOK' 15200000
END 15210000
|| ';' 15220000
, CREATEDTS 15230000
FROM IXLST 15240000
WHERE ELAR_TYPE IN ('SEP', 'SEP_2') 15250000
AND UNIQUERULE IN (SELECT INDEXTYPE 15260000
FROM IXTYPE_UNIQUE 15270000
) 15280000
AND SUBSTR(DATABASE,1,2) = 'XB' 15290000
UNION ALL 15300000
SELECT FAMILY 15310000
, COMMENT 15320000
, CAST(DATABASE AS CHAR(08)) 15330000
|| ' ' 15340000
|| IXNAME 15350000
|| ' ' 15360000
|| TBNAME 15370000
|| ' ' 15380000
|| 'IndexRule=Unique' 15390000
, 'EN1PART_MIS=' 15400000
|| CASE WHEN EN1PART = -1 15410000
THEN 'NOK' 15420000
ELSE 'OK' 15430000
END 15440000
|| ';' 15450000
|| 'EA1STRN_MIS=' 15460000
|| CASE WHEN EA1STRN = -1 15470000
THEN 'NOK' 15480000
ELSE 'OK' 15490000
END 15500000
|| ';' 15510000
|| 'EN1STK1_MIS=' 15520000
|| CASE WHEN EN1STK1 = -1 15530000
THEN 'NOK' 15540000
ELSE 'OK' 15550000
END 15560000
|| ';' 15570000
|| 'EN1STK2_MIS=' 15580000
|| CASE WHEN EN1STK2 = -1 15590000
THEN 'NOK' 15600000
ELSE 'OK' 15610000
END 15620000
|| ';' 15630000
|| 'EN1PART_WPOS=' 15640000
|| CASE WHEN EN1PART = 4 15650000
THEN 'OK' 15660000
ELSE 'NOK' 15670000
END 15680000
|| ';' 15690000
|| 'EA1STRN_WPOS=' 15700000
|| CASE WHEN EA1STRN = 1 15710000
THEN 'OK' 15720000
ELSE 'NOK' 15730000
END 15740000
|| ';' 15750000
|| 'EN1STK1_WPOS=' 15760000
|| CASE WHEN EN1STK1 = 2 15770000
THEN 'OK' 15780000
ELSE 'NOK' 15790000
END 15800000
|| ';' 15810000
|| 'EN1STK2_WPOS=' 15820000
|| CASE WHEN EN1STK2 = 3 15830000
THEN 'OK' 15840000
ELSE 'NOK' 15850000
END 15860000
|| ';' 15870000
|| 'CLUSTER_DEF=' 15880000
|| CASE CLUSTERING 15890000
WHEN 'Y' THEN 'OK' 15900000
ELSE 'NOK' 15910000
END 15920000
|| ';' 15930000
|| 'TooManyCols=' 15940000
|| CASE MAXCOL 15950000
WHEN 4 THEN 'OK' 15960000
ELSE 'NOK' 15970000
END 15980000
|| ';' 15990000
, CREATEDTS 16000000
FROM IXLST 16010000
WHERE ELAR_TYPE = 'BODY' 16020000
AND UNIQUERULE IN (SELECT INDEXTYPE 16030000
FROM IXTYPE_UNIQUE 16040000
) 16050000
AND SUBSTR(DATABASE,1,2) = 'XB' 16060000
UNION ALL 16070000
SELECT FAMILY 16080000
, COMMENT 16090000
, CAST(DATABASE AS CHAR(08)) 16100000
|| ' ' 16110000
|| IXNAME 16120000
|| ' ' 16130000
|| TBNAME 16140000
|| ' ' 16150000
|| 'IndexRule=Unique' 16160000
, 'EN1PART_MIS=' 16170000
|| CASE WHEN EN1PART = -1 16180000
THEN 'NOK' 16190000
ELSE 'OK' 16200000
END 16210000
|| ';' 16220000
|| 'EA1ATRN_MIS=' 16230000
|| CASE WHEN EA1ATRN = -1 16240000
THEN 'NOK' 16250000
ELSE 'OK' 16260000
END 16270000
|| ';' 16280000
|| 'EN1PART_WPOS=' 16290000
|| CASE WHEN EN1PART = 2 16300000
THEN 'OK' 16310000
ELSE 'NOK' 16320000
END 16330000
|| ';' 16340000
|| 'EA1ATRN_MIS=' 16350000
|| CASE WHEN EA1ATRN = 1 16360000
THEN 'OK' 16370000
ELSE 'NOK' 16380000
END 16390000
|| ';' 16400000
|| 'CLUSTER_DEF=' 16410000
|| CASE CLUSTERING 16420000
WHEN 'N' THEN 'OK' 16430000
ELSE 'NOK' 16440000
END 16450000
|| ';' 16460000
|| 'TooManyCols=' 16470000
|| CASE MAXCOL 16480000
WHEN 2 THEN 'OK' 16490000
ELSE 'NOK' 16500000
END 16510000
|| ';' 16520000
, CREATEDTS 16530000
FROM IXLST 16540000
WHERE ELAR_TYPE = 'MULTIPLE' 16550000
AND UNIQUERULE IN (SELECT INDEXTYPE 16560000
FROM IXTYPE_UNIQUE 16570000
) 16580000
AND SUBSTR(DATABASE,1,2) = 'XB' 16590000
UNION ALL 16600000
SELECT FAMILY 16610000
, COMMENT 16620000
, CAST(DATABASE AS CHAR(08)) 16630000
|| ' ' 16640000
|| IXNAME 16650000
|| ' ' 16660000
|| TBNAME 16670000
|| ' ' 16680000
|| 'IndexRule=Unique' 16690000
, 'EN1PART_MIS=' 16700000
|| CASE WHEN EN1PART = -1 16710000
THEN 'NOK' 16720000
ELSE 'OK' 16730000
END 16740000
|| ';' 16750000
|| 'EATRNVON_MIS=' 16760000
|| CASE WHEN EATRNVON = -1 16770000
THEN 'NOK' 16780000
ELSE 'OK' 16790000
END 16800000
|| ';' 16810000
|| 'EATRNBIS_MIS=' 16820000
|| CASE WHEN EATRNBIS = -1 16830000
THEN 'NOK' 16840000
ELSE 'OK' 16850000
END 16860000
|| ';' 16870000
|| 'EN1PART_WPOS=' 16880000
|| CASE WHEN EN1PART = 3 16890000
THEN 'OK' 16900000
ELSE 'NOK' 16910000
END 16920000
|| ';' 16930000
|| 'EATRNVON_WPOS=' 16940000
|| CASE WHEN EATRNVON = 1 16950000
THEN 'OK' 16960000
ELSE 'NOK' 16970000
END 16980000
|| ';' 16990000
|| 'EATRNBIS_MIS=' 17000000
|| CASE WHEN EATRNBIS = 2 17010000
THEN 'OK' 17020000
ELSE 'NOK' 17030000
END 17040000
|| ';' 17050000
|| 'TooManyCols=' 17060000
|| CASE MAXCOL 17070000
WHEN 3 THEN 'OK' 17080000
ELSE 'NOK' 17090000
END 17100000
|| ';' 17110000
|| 'CLUSTER_DEF=' 17120000
|| CASE CLUSTERING 17130000
WHEN 'N' THEN 'OK' 17140000
ELSE 'NOK' 17150000
END 17160000
|| ';' 17170000
, CREATEDTS 17180000
FROM IXLST 17190000
WHERE ELAR_TYPE = 'SIGNATUR' 17200000
AND UNIQUERULE IN (SELECT INDEXTYPE 17210000
FROM IXTYPE_UNIQUE 17220000
) 17230000
AND SUBSTR(DATABASE,1,2) = 'XB' 17240000
UNION ALL 17250000
SELECT FAMILY 17260000
, COMMENT 17270000
, CAST(DATABASE AS CHAR(08)) 17280000
|| ' ' 17290000
|| IXNAME 17300000
|| ' ' 17310000
|| TBNAME 17320000
|| ' ' 17330000
|| 'IndexRule=Duplicate' 17340000
, 'EN1PART_FAIL=' 17350000
|| CASE WHEN EN1PART > -1 17360000
THEN 'NOK' 17370000
ELSE 'OK' 17380000
END 17390000
|| ';' 17400000
|| 'EA1ATRN_MIS=' 17410000
|| CASE WHEN EA1ATRN = -1 17420000
THEN 'NOK' 17430000
ELSE 'OK' 17440000
END 17450000
|| ';' 17460000
|| 'EA1ATRN_WPOS=' 17470000
|| CASE WHEN EA1ATRN = 1 17480000
THEN 'NOK' 17490000
ELSE 'OK' 17500000
END 17510000
|| ';' 17520000
|| 'TooManyCols=' 17530000
|| CASE MAXCOL 17540000
WHEN 1 THEN 'OK' 17550000
ELSE 'NOK' 17560000
END 17570000
|| ';' 17580000
|| 'CLUSTER_DEF=' 17590000
|| CASE CLUSTERING 17600000
WHEN 'Y' THEN 'OK' 17610000
ELSE 'NOK' 17620000
END 17630000
|| ';' 17640000
, CREATEDTS 17650000
FROM IXLST 17660000
WHERE ELAR_TYPE = 'MULTIPLE' 17670000
AND UNIQUERULE IN (SELECT INDEXTYPE 17680000
FROM IXTYPE_UNIQUE 17690000
) 17700000
AND SUBSTR(DATABASE,1,2) = 'XB' 17710000
UNION ALL 17720000
SELECT FAMILY 17730000
, COMMENT 17740000
, CAST(DATABASE AS CHAR(08)) 17750000
|| ' ' 17760000
|| IXNAME 17770000
|| ' ' 17780000
|| TBNAME 17790000
|| ' ' 17800000
|| 'IndexRule=Duplicate' 17810000
, 'EN1PART_FIAL=' 17820000
|| CASE WHEN EN1PART > -1 17830000
THEN 'NOK' 17840000
ELSE 'OK' 17850000
END 17860000
|| ';' 17870000
|| 'EATRNVON_MIS=' 17880000
|| CASE WHEN EATRNVON = -1 17890000
THEN 'NOK' 17900000
ELSE 'OK' 17910000
END 17920000
|| ';' 17930000
|| 'EATRNBIS_MIS=' 17940000
|| CASE WHEN EATRNBIS = -1 17950000
THEN 'NOK' 17960000
ELSE 'OK' 17970000
END 17980000
|| ';' 17990000
|| 'EATRNVON_WPOS=' 18000000
|| CASE WHEN EATRNVON = 1 18010000
THEN 'OK' 18020000
ELSE 'NOK' 18030000
END 18040000
|| ';' 18050000
|| 'EATRNBIS_MIS=' 18060000
|| CASE WHEN EATRNBIS = 2 18070000
THEN 'OK' 18080000
ELSE 'NOK' 18090000
END 18100000
|| ';' 18110000
|| 'TooManyCols=' 18120000
|| CASE MAXCOL 18130000
WHEN 2 THEN 'OK' 18140000
ELSE 'NOK' 18150000
END 18160000
|| ';' 18170000
|| 'CLUSTER_DEF=' 18180000
|| CASE CLUSTERING 18190000
WHEN 'Y' THEN 'OK' 18200000
ELSE 'NOK' 18210000
END 18220000
|| ';' 18230000
, CREATEDTS 18240000
FROM IXLST 18250000
WHERE ELAR_TYPE = 'SIGNATUR' 18260000
AND UNIQUERULE IN (SELECT INDEXTYPE 18270000
FROM IXTYPE_UNIQUE 18280000
) 18290000
AND SUBSTR(DATABASE,1,2) = 'XB' 18300000
UNION ALL 18310000
SELECT FAMILY 18320000
, COMMENT 18330000
, CAST(DATABASE AS CHAR(08)) 18340000
|| ' ' 18350000
|| IXNAME 18360000
|| ' ' 18370000
|| TBNAME 18380000
|| ' ' 18390000
|| 'IndexRule=Unknown' 18400000
, 'Index_Rule=NOK;' 18410000
, CREATEDTS 18420000
FROM IXLST 18430000
WHERE ELAR_TYPE = 'unknown ' 18440000
AND SUBSTR(DATABASE,1,2) = 'XB' 18450000
) 18460000
SELECT GENERATE_UNIQUE() 18470000
, '5Index Option Check' 18480000
, FAMILY 18490000
, COMMENT 18500000
, OBJECT 18510000
, OPTVALUE 18520000
, CREATEDTS 18530000
FROM RXI 18540000
ORDER BY FAMILY 18550000
, OBJECT 18560000
; 18570000
INSERT INTO SESSION.TEMP 18580000
SELECT GENERATE_UNIQUE() 18590000
, '6ELAR meta data mismatch' 18600000
, FAMILY 18610000
, ' ' 18620000
, FAMILY 18630000
, 'NoDatabaseExists=NOK;' 18640000
, '0001-01-01-00.00.00.000000' 18650000
FROM SESSION.FAMLISTE 18660000
WHERE STORAR_N IS NULL 18670000
AND ENSEG_N IS NULL 18680000
AND SUBSTR(DBNAME,1,3) <> 'DXB' 18690000
AND SUBSTR(FAMILY,1,1) <> '?' 18700000
UNION ALL 18710000
SELECT GENERATE_UNIQUE() 18720000
, '7ELAR meta data mismatch' 18730000
, DBNAME 18740000
, ' ' 18750000
, DBNAME 18760000
, 'DatabaseNoFamily=NOK;' 18770000
, '0001-01-01-00.00.00.000000' 18780000
FROM SESSION.FAMLISTE 18790000
WHERE DBNAME NOT IN (SELECT STORAR 18800000
FROM SESSION.ELAR 18810000
) 18820000
AND SUBSTR(DBNAME,1,1) <> '?' 18830000
; 18840000
DECLARE GLOBAL TEMPORARY TABLE PARMVALUE 18850000
( OPTION CHAR(025) 18860000
, VALUE CHAR(120) 18870000
, SUBORD INTEGER 18880000
) 18890000
; 18900000
INSERT INTO SESSION.PARMVALUE 18910000
VALUES ( 'InfoTCP' 18920000
, 'Info: Table Controlled Partition' 18930000
, 0 18940000
) 18950000
; 18960000
INSERT INTO SESSION.PARMVALUE 18970000
VALUES ( 'NPI' 18980000
, 'on partitioned Object (table/Index) ' 18990000
|| 'not allowed' 19000000
, 0 19010000
) 19020000
; 19030000
INSERT INTO SESSION.PARMVALUE 19040000
VALUES ( 'InfoTSS' 19050000
, 'Info: Segmented or Simple Table' 19060000
, 0 19070000
) 19080000
; 19090000
INSERT INTO SESSION.PARMVALUE 19100000
VALUES ( 'InfoICP' 19110000
, 'Info: Index Controlled Partition' 19120000
, 0 19130000
) 19140000
; 19150000
INSERT INTO SESSION.PARMVALUE 19160000
VALUES ( 'InfoNPI' 19170000
, 'Info: Non partitioned Index' 19180000
, 0 19190000
) 19200000
; 19210000
INSERT INTO SESSION.PARMVALUE 19220000
VALUES ( 'StorageGroup' 19230000
, 'GSMS1, GSMS3 or GSMS4 for XB Databases ' 19240099
|| 'GSMS for ELAR Metadata allowed' 19250000
, 3 19260000
) 19270000
; 19280000
INSERT INTO SESSION.PARMVALUE 19290000
VALUES ( 'Bufferpool_DB' 19300000
,'BP2 allowed on Datasbase definition level' 19310000
, 0 19320000
) 19330000
; 19340000
INSERT INTO SESSION.PARMVALUE 19350000
VALUES ( 'Bufferpool_DB_IX' 19360000
,'BP1 allowed on Datasbase definition level' 19370000
, 1 19380000
) 19390000
; 19400000
INSERT INTO SESSION.PARMVALUE 19410000
VALUES ( 'Bufferpool_TS' 19420000
,'Only BP2, BP8 and BP32K allowed for Tablespaces' 19430000
, 2 19440000
) 19450000
; 19460000
INSERT INTO SESSION.PARMVALUE 19470000
VALUES ( 'Bufferpool_SHS' 19480000
,'Only BP32K for this Tablespaces allowed' 19490000
, 2 19500000
) 19510000
; 19520000
INSERT INTO SESSION.PARMVALUE 19530000
VALUES ( 'Bufferpool_LOB' 19540000
,'Only BP8 for LOB Tablespaces allowed' 19550000
, 2 19560000
) 19570000
; 19580000
INSERT INTO SESSION.PARMVALUE 19590000
VALUES ( 'IndexBufferpool', 'BP1' 19600000
, 3 19610000
) 19620000
; 19630000
INSERT INTO SESSION.PARMVALUE 19640000
VALUES ( 'EncodingScheme', 'EBCDIC' 19650000
, 4 19660000
) 19670000
; 19680000
INSERT INTO SESSION.PARMVALUE 19690000
VALUES ( 'Groupbufferpool', 'Changed' 19700000
, 5 19710000
) 19720000
; 19730000
INSERT INTO SESSION.PARMVALUE 19740000
VALUES ( 'LOB Bufferpool', 'BP8' 19750000
, 6 19760000
) 19770000
; 19780000
INSERT INTO SESSION.PARMVALUE 19790000
VALUES ( 'Trackmode', 'No', 10 19800000
) 19810000
; 19820000
INSERT INTO SESSION.PARMVALUE 19830000
VALUES ( 'LoggedOption', 'Yes', 11 19840000
) 19850000
; 19860000
INSERT INTO SESSION.PARMVALUE 19870000
VALUES ( 'DSSIZE' 19880000
, 'DSSIZE must be 16GB. No other values allowed' 19890000
, 12 19900000
) 19910000
; 19920000
INSERT INTO SESSION.PARMVALUE 19930000
VALUES ( 'Locksize', 'Any', 13 19940000
) 19950000
; 19960000
INSERT INTO SESSION.PARMVALUE 19970000
VALUES ( 'LockMax', 'System', 14 19980000
) 19990000
; 20000000
INSERT INTO SESSION.PARMVALUE 20010000
VALUES ( 'CloseOption', 'Yes', 17 20020000
) 20030000
; 20040000
INSERT INTO SESSION.PARMVALUE 20050000
VALUES ( 'TblCompressOption', 'Yes', 27 20060000
) 20070000
; 20080000
INSERT INTO SESSION.PARMVALUE 20090000
VALUES ( 'IdxCompressOption', 'No', 29 20100000
) 20110000
; 20120000
INSERT INTO SESSION.PARMVALUE 20130000
VALUES ( 'PrimaryQuantity', 'Only value -1 allowed' 20140000
, 8 20150000
) 20160000
; 20170000
INSERT INTO SESSION.PARMVALUE 20180000
VALUES ( 'SecondaryQuantity', 'Only value -1 allowed' 20190000
, 9 20200000
) 20210000
; 20220000
INSERT INTO SESSION.PARMVALUE 20230000
VALUES ( 'DefineOption', 'Yes', 23 20240000
) 20250000
; 20260000
INSERT INTO SESSION.PARMVALUE 20270000
VALUES ( 'MaxRowsPerPage', '255', 24 20280000
) 20290000
; 20300000
INSERT INTO SESSION.PARMVALUE 20310000
VALUES ( 'Audit', 'None', 18 20320000
) 20330000
; 20340000
INSERT INTO SESSION.PARMVALUE 20350000
VALUES ( 'DataCapture', 'None', 19 20360000
) 20370000
; 20380000
INSERT INTO SESSION.PARMVALUE 20390000
VALUES ( 'RestrictOnDrop' 20400000
, 'Missing Option With Restrict on Drop' 20410000
, 20 20420000
) 20430000
; 20440000
INSERT INTO SESSION.PARMVALUE 20450000
VALUES ( 'Volatile', 'correct value is Yes', 21 20460000
) 20470000
; 20480000
INSERT INTO SESSION.PARMVALUE 20490000
VALUES ( 'Append', 'Current value is not YES', 22 20500000
) 20510000
; 20520000
INSERT INTO SESSION.PARMVALUE 20530000
VALUES ( 'PartKeyName', 'EN1PART', 30 20540000
) 20550000
; 20560000
INSERT INTO SESSION.PARMVALUE 20570000
VALUES ( 'PartKeyType', 'Integer', 31 20580000
) 20590000
; 20600000
INSERT INTO SESSION.PARMVALUE 20610000
VALUES ( 'PartKeyPosition', 'First Column of Table', 32 20620000
) 20630000
; 20640000
INSERT INTO SESSION.PARMVALUE 20650000
VALUES ( 'EN1PART_MIS' 20660000
, 'EN1PART missing in Index', 33 20670000
) 20680000
; 20690000
INSERT INTO SESSION.PARMVALUE 20700000
VALUES ( 'EA1ARTN_MIS' 20710000
, 'EA1ATRN missing in Index', 33 20720000
) 20730000
; 20740000
INSERT INTO SESSION.PARMVALUE 20750000
VALUES ( 'EA1SRTN_MIS' 20760000
, 'EA1STRN missing in Index', 33 20770000
) 20780000
; 20790000
INSERT INTO SESSION.PARMVALUE 20800000
VALUES ( 'EN1STK1_MIS' 20810000
, 'EN1STK1 missing in Index', 33 20820000
) 20830000
; 20840000
INSERT INTO SESSION.PARMVALUE 20850000
VALUES ( 'EN1STK2_MIS' 20860000
, 'EN1STK2 missing in Index', 33 20870000
) 20880000
; 20890000
INSERT INTO SESSION.PARMVALUE 20900000
VALUES ( 'EATRNVON_MIS' 20910000
, 'EATRNVON missing in Index', 33 20920000
) 20930000
; 20940000
INSERT INTO SESSION.PARMVALUE 20950000
VALUES ( 'EATRNBIS_MIS' 20960000
, 'EATRNBIS missing in Index', 33 20970000
) 20980000
; 20990000
INSERT INTO SESSION.PARMVALUE 21000000
VALUES ( 'EN1PART_WPOS' 21010000
, 'EN1PART wrong position in index', 33 21020000
) 21030000
; 21040000
INSERT INTO SESSION.PARMVALUE 21050000
VALUES ( 'EA1ARTN_WPOS' 21060000
, 'EA1ATRN wrong position in index', 33 21070000
) 21080000
; 21090000
INSERT INTO SESSION.PARMVALUE 21100000
VALUES ( 'EA1SRTN_WPOS' 21110000
, 'EA1STRN wrong position in index', 33 21120000
) 21130000
; 21140000
INSERT INTO SESSION.PARMVALUE 21150000
VALUES ( 'EN1STK1_WPOS' 21160000
, 'EN1STK1 wrong position in index', 33 21170000
) 21180000
; 21190000
INSERT INTO SESSION.PARMVALUE 21200000
VALUES ( 'EN1STK2_WPOS' 21210000
, 'EN1STK2 wrong position in index', 33 21220000
) 21230000
; 21240000
INSERT INTO SESSION.PARMVALUE 21250000
VALUES ( 'EATRNVON_WPOS' 21260000
, 'EATRNVO wrong position in index', 33 21270000
) 21280000
; 21290000
INSERT INTO SESSION.PARMVALUE 21300000
VALUES ( 'EATRNBIS_WPOS' 21310000
, 'EATRNBIS wrong position in index', 33 21320000
) 21330000
; 21340000
INSERT INTO SESSION.PARMVALUE 21350000
VALUES ( 'EN1PART_FAIL' 21360000
, 'EN1PART not allowed for the index', 34 21370000
) 21380000
; 21390000
INSERT INTO SESSION.PARMVALUE 21400000
VALUES ( 'CLUSTER_DEF' 21410000
, 'Cluster definition not allowed, wrong context', 35 21420000
) 21430000
; 21440000
INSERT INTO SESSION.PARMVALUE 21450000
VALUES ( 'TooManyCols' 21460000
, 'Number of key columns not correct. Number depends' 21470000
||'on ELAR table type' 21480000
, 35 21490000
) 21500000
; 21510000
INSERT INTO SESSION.PARMVALUE 21520000
VALUES ( 'TablePartLimit', 'Partition limit exceeded (' || 21530000
(SELECT STRIP(CAST(MAXPART AS 21540000
CHAR(06) 21550000
) 21560000
) 21570000
FROM SESSION.MAXPART 21580000
WHERE PARTYPE = 'Table' 21590000
) || ' Partition allowed)' 21600000
, 39 21610000
) 21620000
; 21630000
INSERT INTO SESSION.PARMVALUE 21640000
VALUES ( 'IndexPartLimit', 'Maximum of ' || 21650000
(SELECT CAST(MAXPART AS CHAR(06)) 21660000
FROM SESSION.MAXPART 21670000
WHERE PARTYPE = 'Index' 21680000
) || ' Partition exceeded ' 21690000
, 40 21700000
) 21710000
; 21720000
INSERT INTO SESSION.PARMVALUE 21730000
VALUES ( 'PartKeyValue(s)' 21740000
, 'only natural Numbers and one value allowed' 21750000
, 34 21760000
) 21770000
; 21780000
INSERT INTO SESSION.PARMVALUE 21790000
VALUES ( 'PartKeyColNum' 21800000
, 'Wrong partitioning, use classic partitioning' 21810000
, 35 21820000
) 21830000
; 21840000
INSERT INTO SESSION.PARMVALUE 21850000
VALUES ( 'Indextype' 21860000
, 'Unique DPSI, when Primary Index all other are DPSI' 21870000
, 28 21880000
) 21890000
; 21900000
INSERT INTO SESSION.PARMVALUE 21910000
VALUES ( 'Pagesize' 21920000
, 'Pagesize Tablespace <> Pagesize Indexspace' 21930000
, 16 21940000
) 21950000
; 21960000
INSERT INTO SESSION.PARMVALUE 21970000
VALUES ( 'FreePage' 21980000
, 'Value must be 0 for technical/business indexes' 21990000
, 7 22000000
) 22010000
; 22020000
INSERT INTO SESSION.PARMVALUE 22030000
VALUES ( 'TSFreepage' 22040000
, 'Value is not 0' 22050000
, 7 22060000
) 22070000
; 22080000
INSERT INTO SESSION.PARMVALUE 22090000
VALUES ( 'PctFree_Business' 22100000
, 'Value must be 10 for business Indexes' 22110000
, 6 22120000
) 22130000
; 22140000
INSERT INTO SESSION.PARMVALUE 22150000
VALUES ( 'PctFree_Technical' 22160000
, 'Value must be 0 for technical indexes' 22170000
, 6 22180000
) 22190000
; 22200000
INSERT INTO SESSION.PARMVALUE 22210000
VALUES ( 'TSPctfree' 22220000
, 'Value is not 0' 22230000
, 6 22240000
) 22250000
; 22260000
INSERT INTO SESSION.PARMVALUE 22270000
VALUES ( 'Copy', 'No', 26 22280000
) 22290000
; 22300000
INSERT INTO SESSION.PARMVALUE 22310000
VALUES ( 'No Index exists' 22320000
, 'verify and implement an Index. Access path for all ' 22330000
|| 'queries are Tablespace Scans| (Proof Monitor)' 22340000
, 50 22350000
) 22360000
; 22370000
INSERT INTO SESSION.PARMVALUE 22380000
VALUES ( 'IndexType_Failure' 22390000
, 'Only index type DPSI (D), Unique (U) and ' 22400000
|| 'Primary (P) are allowed' 22410000
, 50 22420000
) 22430000
; 22440000
INSERT INTO SESSION.PARMVALUE 22450000
VALUES ( 'EN1PART_MIS' 22460000
, 'Missing EN1PART. Must be part of PRIMARY ' 22470000
|| 'or UNIQUE INDEX (see Guideline 01.07.2013' 22480000
, 51 22490000
) 22500000
; 22510000
INSERT INTO SESSION.PARMVALUE 22520000
VALUES ( 'Index_Rule' 22530000
, 'no rules are defined. REASON: Unknown ELAR ' 22540000
|| 'table type (not documented, experimental type' 22550000
, 53 22560000
) 22570000
; 22580000
INSERT INTO SESSION.PARMVALUE 22590000
VALUES ( 'NoDatabaseExists' 22600000
, 'No DB2 Objects exists for DDL Check' 22610000
, 0 22620000
) 22630000
; 22640000
INSERT INTO SESSION.PARMVALUE 22650000
VALUES ( 'DatabaseNoFamily' 22660000
, 'DB2 Objects exists but no ELAR Meta data available' 22670000
, 0 22680000
) 22690000
; 22700000
-- Preperation of result list splitting complete string into option name22710000
-- and option value. Options separated by semicolon. Option and value 22720000
-- separated by equal sign. Elimination of duplicate entries and store 22730000
-- only entries with NOK in temporary table exception. 22740000
DECLARE GLOBAL TEMPORARY TABLE EXCEPTION 22750000
( OBJECT CHAR(60) 22760000
, OPTION CHAR(24) 22770000
, CORRECT_VALUES CHAR(120) 22780000
, FAMILY CHAR(30) 22790000
, CRITERIA CHAR(30) 22800000
, OPTIONNUM INTEGER 22810000
, SUBORD INTEGER 22820000
, COMMENT CHAR(20) 22830000
, OVALUE CHAR(03) 22840000
, CREATEDTS TIMESTAMP(6) 22850000
) 22860000
; 22870000
INSERT INTO SESSION.EXCEPTION ( 22880000
OBJECT 22890000
, OPTION 22900000
, CORRECT_VALUES 22910000
, FAMILY 22920000
, CRITERIA 22930000
, OPTIONNUM 22940000
, SUBORD 22950000
, COMMENT 22960000
, OVALUE 22970000
, CREATEDTS 22980000
) 22990000
WITH RESULT ( SNUM 23000000
, CRITERIA 23010000
, FAMILY 23020000
, OBJECT 23030000
, OPTIONNUM 23040000
, OPTION 23050000
, OVALUE 23060000
, CHECKVALUE 23070000
, COMMENT 23080000
, CREATEDTS 23090000
) 23100000
AS (SELECT T0.SNUM 23110000
, T0.CRITERIA 23120000
, T0.FAMILY 23130000
, T0.OBJECT 23140000
, 1 23150000
, CASE WHEN LOCATE('=', T0.OPTVALUE) > 0 23160000
THEN SUBSTR( T0.OPTVALUE 23170000
, 1 23180000
, LOCATE('=', T0.OPTVALUE) - 1 23190000
) 23200000
ELSE OPTVALUE 23210000
END AS OPTION 23220000
, CASE WHEN LOCATE('=', T0.OPTVALUE) > 0 23230000
THEN SUBSTR( T0.OPTVALUE 23240000
, LOCATE('=', T0.OPTVALUE) + 1 23250000
, LOCATE(';', T0.OPTVALUE) - 23260000
LOCATE('=', T0.OPTVALUE) - 1 23270000
) 23280000
ELSE OPTVALUE 23290000
END AS OVALUE 23300000
, CASE WHEN LOCATE(';', T0.OPTVALUE) > 0 23310000
THEN SUBSTR( T0.OPTVALUE 23320000
, LOCATE(';', T0.OPTVALUE) + 1 23330000
) 23340000
ELSE NULL 23350000
END AS OPTVALUE 23360000
, T0.COMMENT 23370000
, T0.CREATEDTS 23380000
FROM SESSION.TEMP T0 23390000
UNION ALL 23400000
SELECT T1.SNUM 23410000
, T1.CRITERIA 23420000
, T1.FAMILY 23430000
, T1.OBJECT 23440000
, T1.OPTIONNUM + 1 23450000
, CASE WHEN LOCATE('=', T1.CHECKVALUE) > 0 23460000
THEN SUBSTR( T1.CHECKVALUE 23470000
, 1 23480000
, LOCATE('=', T1.CHECKVALUE) - 1 23490000
) 23500000
ELSE CHECKVALUE 23510000
END AS OPTION 23520000
, CASE WHEN LOCATE('=', T1.CHECKVALUE) > 0 23530000
THEN CASE WHEN LOCATE(';', T1.CHECKVALUE) > 0 23540000
THEN SUBSTR( T1.CHECKVALUE 23550000
, LOCATE('=', T1.CHECKVALUE) 23560000
+ 1 23570000
, LOCATE(';', T1.CHECKVALUE) 23580000
- LOCATE('=', T1.CHECKVALUE) 23590000
- 1 23600000
) 23610000
ELSE SUBSTR( T1.CHECKVALUE 23620000
, LOCATE('=', T1.CHECKVALUE) 23630000
+ 1 23640000
) 23650000
END 23660000
ELSE CHECKVALUE 23670000
END AS OVALUE 23680000
, CASE WHEN LOCATE(';', T1.CHECKVALUE) > 0 23690000
THEN SUBSTR( T1.CHECKVALUE 23700000
, LOCATE(';', T1.CHECKVALUE) + 1 23710000
) 23720000
ELSE NULL 23730000
END AS OPTVALUE 23740000
, T1.COMMENT 23750000
, T1.CREATEDTS 23760000
FROM RESULT T1 23770000
WHERE T1.CHECKVALUE IS NOT NULL 23780000
) 23790000
SELECT DISTINCT 23800000
RE.OBJECT 23810000
, CAST(RE.OPTION AS CHAR(24)) AS OPTION 23820000
, PV.VALUE AS CORRECT_VALUES 23830000
, RE.FAMILY 23840000
, RE.CRITERIA 23850000
, RE.OPTIONNUM 23860000
, PV.SUBORD 23870000
, RE.COMMENT 23880000
, RE.OVALUE 23890000
, RE.CREATEDTS 23900000
FROM RESULT RE 23910000
INNER JOIN SESSION.PARMVALUE PV 23920000
ON RE.OPTION = PV.OPTION 23930000
WHERE RE.OVALUE = 'NOK' 23940000
; 23950000
-- 23960000
-- Generate final message. Three different message possible: 23970000
-- (1) Database not found => Database not created and 23980000
-- (2) No failures found => All check passed without failures 23990000
-- (3) Failuers found => Not all ckecks passed without failures 24000000
-- 24010000
INSERT INTO SESSION.EXCEPTION ( 24020000
OBJECT 24030000
, OPTION 24040000
, CORRECT_VALUES 24050000
, FAMILY 24060000
, CRITERIA 24070000
, OPTIONNUM 24080000
, SUBORD 24090000
, COMMENT 24100000
, OVALUE 24110000
, CREATEDTS 24120000
) 24130000
SELECT 'Database not found => no check possible' 24140000
, ' ' 24150000
, ' ' 24160000
, ' ' 24170000
, ' ' 24180000
, -100 24190000
, -100 24200000
, ' ' 24210000
, ' ' 24220000
, '0001-01-01-00.00.00.000000' 24230000
FROM SYSIBM.SYSDUMMY1 24240000
WHERE (SELECT COUNT(*) 24250000
FROM SESSION.FAMLISTE FAM 24260000
INNER JOIN SYSIBM.SYSDATABASE DB 24270000
ON FAM.DBNAME = DB.NAME 24280000
) = 0 24290000
AND (SELECT DBNAME FROM SESSION.FAMLISTE) IS NOT NULL 24291000
; 24300000
INSERT INTO SESSION.EXCEPTION ( 24310000
OBJECT 24320000
, OPTION 24330000
, CORRECT_VALUES 24340000
, FAMILY 24350000
, CRITERIA 24360000
, OPTIONNUM 24370000
, SUBORD 24380000
, COMMENT 24390000
, OVALUE 24400000
, CREATEDTS 24410000
) 24420000
SELECT 'No failures found' 24430000
, ' ' 24440000
, ' ' 24450000
, ' ' 24460000
, ' ' 24470000
, -101 24480000
, -101 24490000
, ' ' 24500000
, ' ' 24510000
, '0001-01-01-00.00.00.000000' 24520000
FROM SYSIBM.SYSDUMMY1 24530000
WHERE (SELECT COUNT(*) FROM SESSION.EXCEPTION) = 0 24540000
; 24550000
INSERT INTO SESSION.EXCEPTION ( 24560000
OBJECT 24570000
, OPTION 24580000
, CORRECT_VALUES 24590000
, FAMILY 24600000
, CRITERIA 24610000
, OPTIONNUM 24620000
, SUBORD 24630000
, COMMENT 24640000
, OVALUE 24650000
, CREATEDTS 24660000
) 24670000
SELECT 'Failure found, send list to elar' 24680000
, ' ' 24690000
, ' ' 24700000
, ' ' 24710000
, ' ' 24720000
, 0 24730000
, 0 24740000
, ' ' 24750000
, ' ' 24760000
, '0001-01-01-00.00.00.000000' 24770000
FROM SYSIBM.SYSDUMMY1 24780000
WHERE (SELECT COUNT(*) 24790000
FROM SESSION.EXCEPTION 24800000
WHERE OPTIONNUM NOT IN ( -100, -101 ) 24810000
AND SUBORD NOT IN ( -100, -101 ) 24820000
) > 0 24830000
; 24840000
-- 24850000
-- Generate Report 24860000
-- DDL-Report (Display migrated families first) 24870000
-- 24880000
SELECT OBJECT 24890000
, OPTION 24900000
, CORRECT_VALUES 24910000
, FAMILY 24920000
, COMMENT 24930000
, CRITERIA 24940000
, CREATEDTS 24950000
FROM (SELECT OBJECT AS OBJECT 24960000
, OPTION AS OPTION 24970000
, CORRECT_VALUES AS CORRECT_VALUES 24980000
, CASE WHEN SUBSTR(FAMILY,1,3) = 'FAM' 24990000
THEN ( SELECT UCASE(EAOF) 25000000
FROM BUA.TXBA131 25010000
WHERE ENOF = CAST( SUBSTR(T1.FAMILY,4,4) 25020000
AS INT 25030000
) - 1000 25040000
) 25050000
ELSE FAMILY 25060000
END AS FAMILY 25070000
, COMMENT AS COMMENT 25080000
, CRITERIA AS CRITERIA 25090000
, CREATEDTS AS CREATEDTS 25100000
, ORD0 25110000
, ORD1 25120000
, ORD2 25130000
, ORD3 25140000
FROM (SELECT OBJECT 25150000
, CASE WHEN LOCATE('_', OPTION) > 0 25160000
THEN SUBSTR( OPTION 25170000
, 1 25180000
, LOCATE('_',OPTION) - 1 25190000
) 25200000
ELSE OPTION 25210000
END AS OPTION 25220000
, CORRECT_VALUES 25230000
, UCASE(FAMILY) AS FAMILY 25240000
, SUBSTR(CRITERIA,2) AS CRITERIA 25250000
, SUBSTR(CRITERIA,1,1) AS ORD1 25260000
, LENGTH(STRIP(OBJECT)) AS ORD2 25270000
, SUBORD AS ORD3 25280000
, COMMENT 25290000
, CASE WHEN COMMENT <> ' ' 25300000
THEN 0 25310000
ELSE 1 25320000
END AS ORD0 25330000
, CHECK 25340000
, CREATEDTS 25350000
FROM (SELECT OVALUE AS CHECK 25360000
, OBJECT 25370000
, OPTION 25380000
, CORRECT_VALUES 25390000
, FAMILY 25400000
, CRITERIA 25410000
, SUBORD 25420000
, COMMENT 25430000
, CREATEDTS 25440000
FROM SESSION.EXCEPTION 25450000
) AS T2 25460000
) AS T1 25470000
) AS FINAL 25480000
ORDER BY FAMILY 25490000
, ORD0 25500000
, ORD1 25510000
, ORD2 25520000
, ORD3 25530000
WITH UR 25540000
; 25550000
}¢--- A540769.WK.SQL(ELARDDL2) cre=2013-11-28 mod=2013-11-28-16.25.52 A540769 ---
-- Zwischenspeicher der zu untersuchenden Datenbanken 00010000
-- 00020000
DECLARE GLOBAL TEMPORARY TABLE FAMLISTE 00030000
( FAMILY CHAR(20) 00040000
, DBNAME CHAR(08) 00050000
, STORAR CHAR(03) 00060000
, ENSEG CHAR(03) 00070000
, STORAR_N INTEGER 00080000
, ENSEG_N SMALLINT 00090000
, CREATE_FROM DATE 00100000
, CREATE_TO DATE 00110000
) 00120000
; 00130000
-- ============ Input section (full check) ============ 00140000
-- Full check (database, table space etc.) when create_from and 00150000
-- create_to have value NULL 00160000
-- 00170000
-- Partial check on table space level when create_from and 00180000
-- create_to have not NULL value and the values are valid date 00190000
-- 00200000
INSERT INTO SESSION.FAMLISTE ( FAMILY 00210000
, DBNAME 00220000
, CREATE_FROM 00230000
, CREATE_TO 00240000
) 00250000
VALUES ( NULL 00260000
, NULL 00270000
, '01.10.2013' 00280000
, NULL 00290000
) 00300000
; 00310000
-- 00320000
-- ============ Release notes/ documentation section ============ 00330000
-- 00340000
-- ### INFO Version 2.3, Date: 28.11.2013 00350000
-- ### INFO Library: actual Version only available in DSN.GENERAL.SQL 00360000
-- ### Author: A559315, Uwe Toepperwien (TCG), KIDI 61 00370000
-- 00380000
-- ============ Documentation section ============ 00390000
-- 00400000
-- DDL Checker für partitionierte Datenbanken ELAR. In ELAR ist nur 00410000
-- Table controlled Partition zulässig, folglich werden Non partition 00420000
-- Tables und Index controlled Partition nicht verifiziert. 00430000
-- Grundlage sind die DDL Vereinbarungen vom 10/2010 00440000
-- Nachfolgende DB2 Objekte werden geprüft: 00450000
-- (1) Datenbank 00460000
-- (2) Tablespaces 00470000
-- (3) Tabeles 00480000
-- (4) Indexspaces 00490000
-- (5) Index(e) Primary DPSI/ DPSI 00500000
-- 00510000
-- Ein DDL Check ist möglich durch Angabe der ELAR Familie und/ oder 00520000
-- der Datenbank. 00530000
-- 00540000
-- Ist das Result des DDL Checkers "empty", dann sind alle vereinbarten 00550000
-- DDL Parameter eingehalten. 00560000
-- 00570000
-- Ist das Result des DDL Checkers nicht "empty", dann 00580000
-- (a) werden alle DDL Parameter Abweichungen ausgewiesen, wenn die 00590000
-- Familie/ Datenbank vom Typ Table Controlled Partition ist 00600000
-- (b) der Fehler "DatabaseImplementation" zeigt an, das die Familie/ 00610000
-- Datenbank nicht vom Typ Table Controlled Partition ist. 00620000
-- 00630000
-- Parameterwert fuer maximale Anzahl Partition festlegen 00640000
-- Die maximale Anzahl Partitionen ist für Table- und Indexcontrolled 00650000
-- Partitioning vorzugeben. 00660000
-- 00670000
-- Update: 28.11.2013, TCG 00680000
-- Partial check possible, when create_from and create_to is not null 00690000
-- 00700000
-- Update: 08.07.2013, TCG 00710000
-- Generating final message which describe the state of a cekced 00720000
-- database. 00730000
-- Check pctfree for technical/ business indexes use wrong 00740000
-- catalog table (sysibm.syscolumns instead of syskeys) 00750000
-- 00760000
-- Update: 01.07.2013, TCG (new agreement KIDI63/ ELAR for NDBS) 00770000
-- (see Mail from 01.07.2013 M.Streit) 00780000
-- Tablespace Option Check 00790000
-- (1) Check FREEPAGE, PCTFREE 00800000
-- (2) PARTITION = 0 not allowed for XB databases 00810000
-- Table Option Check 00820000
-- (1) option APPEND changed from NO to YES 00830000
-- (2) no check of EN1ENTERTAG, ET1LOGPROD 00840000
-- (3) Check on table the type of partitioning (classic) 00850000
-- (4) Check if index is index controlled partitioning (antique) 00860000
-- (5) Extend index type check, only D, U and P are allowed 00870000
-- (6) Check that EN1PART is in keylist of unique/ primary index 00880000
-- (7) Check that every table has only one unique/ primary index 00890000
-- (8) Check that cluster index based on correct columns 00900000
-- (9) Check that key columns on correct position 00910000
-- 00920000
-- Update: 17.05.2012, TCG 00930000
-- (1) Find database name for migrated families (migrated families 00940000
-- have a symbolic name like FAMnnmm where nn is multipler 1000 00950000
-- and mm is the family number. Exp. FAM1015 is family 15 that is 00960000
-- family DEVI.IF) 00970000
-- (2) New column COMMENT describes the family 00980000
-- (3) Result shows first families from migration and all other 00990000
-- families. 01000000
-- (4) Correction of text mistakes. 01010000
-- 01020000
-- Update: 10.05.2012, TCG 01030000
-- (1) New Bufferpool assignment (BP2 and BP1) 01040000
-- (2) Check Bufferpool BP8 for LOB 01050000
-- (3) De-activate Partition and Index Columun check 01060000
-- for database with prefix DXB (Elar Metadata) 01070000
-- (4) Result set order changed to family, database, tablespace, 01080000
-- table, indexspace and index. 01090000
-- (5) Defined more and detailed messages. 01100000
-- 01110000
-- ============ Processing section ============ 01120000
-- 01130000
--- Definition of partition limit for table- and indexspace 01140000
DECLARE GLOBAL TEMPORARY TABLE MAXPART 01150000
( PARTYPE CHAR(05) NOT NULL 01160000
, MAXPART INTEGER NOT NULL 01170000
) 01180000
; 01190000
INSERT INTO SESSION.MAXPART ( PARTYPE, MAXPART ) 01200000
VALUES ( 'Table', 200 ) 01210000
; 01220000
INSERT INTO SESSION.MAXPART ( PARTYPE, MAXPART ) 01230000
VALUES ( 'Index', 200 ) 01240000
; 01250000
UPDATE SESSION.FAMLISTE 01260000
SET STORAR = SUBSTR(DBNAME,3,3) 01270000
, ENSEG = SUBSTR(DBNAME,6,3) 01280000
WHERE SUBSTR(DBNAME,1,2) = 'XB' 01290000
AND CREATE_FROM IS NULL 01300000
AND CREATE_TO IS NULL 01310000
; 01320000
UPDATE SESSION.FAMLISTE 01330000
SET STORAR_N = (SELECT XBA510_STORAGE_ARN 01340000
FROM BUA.TXBA510 01350000
WHERE XBA510_STORAGE_ARC = STORAR 01360000
) 01370000
, ENSEG_N = (SELECT XBA510_STORAGE_ARN 01380000
FROM BUA.TXBA510 01390000
WHERE XBA510_STORAGE_ARC = ENSEG 01400000
) 01410000
WHERE CREATE_FROM IS NULL 01420000
AND CREATE_TO IS NULL 01430000
; 01440000
DECLARE GLOBAL TEMPORARY TABLE ELAR 01450000
( FAMILY CHAR(20) 01460000
, STORAR CHAR(08) 01470000
, COMMENT CHAR(20) 01480000
) 01490000
; 01500000
INSERT INTO SESSION.ELAR 01510000
WITH TESLA ( FAMILY 01520000
, STORAR 01530000
, COMMENT 01540000
) 01550000
-- 01560000
-- Search over family name and retrieve database name(s) 01570000
-- 1) Import run time tables 01580000
-- 2) Time range run time table and family configuration 01590000
-- (no data available over(1) 01600000
-- 3) Migration protocol (no data available over (1) and (2) 01610000
-- 4) Family number control table. Last change to find a family, 01620000
-- while all run time and meta data are broken (broken links) 01630000
-- 01640000
AS (SELECT C071.EAOF 01650000
, CAST ( C071.EYPREF || 01660000
C111.ENSTORAR || 01670000
C111.ENSEG AS CHAR(08) 01680000
) 01690000
, ' ' AS COMMENT 01700000
FROM BUA.TXBC111 C111 01710000
FULL OUTER JOIN BUA.TXBC071 C071 01720000
ON C111.ENSTORAR = C071.ENSTORAR 01730000
INNER JOIN SESSION.FAMLISTE FL 01740000
ON FL.FAMILY = C071.EAOF 01750000
WHERE C111.ENSTORAR IS NOT NULL 01760000
AND C111.ENSEG IS NOT NULL 01770000
AND C071.EYPREF IS NOT NULL 01780000
UNION DISTINCT 01790000
SELECT BE051.EAOF 01800000
, FL.DBNAME 01810000
, ' ' AS COMMENT 01820000
FROM BUA.TXBE051 BE051 01830000
INNER JOIN BUA.TXBA201 BA201 01840000
ON BE051.ENLIBENG = BA201.ENSTORAR 01850000
INNER JOIN SESSION.FAMLISTE FL 01860000
ON FL.FAMILY = BE051.EAOF 01870000
UNION DISTINCT 01880000
SELECT T504.XBA501_FAMNAME 01890000
, XBA504_DB 01900000
, '-- old Migration --' AS COMMENT 01910000
FROM BUA.TXBA504 T504 01920000
LEFT JOIN BUA.TXBA511 T511 01930000
ON T504.XBA501_FAMNAME = T511.XBA501_FAMNAME 01940000
AND T504.XBA504_TABLE = T511.XBA504_TABLE 01950000
INNER JOIN SESSION.FAMLISTE FL 01960000
ON FL.FAMILY = T504.XBA501_FAMNAME 01970000
UNION DISTINCT 01980000
SELECT STRIP(BA131.EAOF) 01990000
, SUBSTR(MG103.EANTABNAME,1,8) 02000000
, '-- new Migration --' AS COMMENT 02010000
FROM BUA.TXBMG103 MG103 02020000
INNER JOIN BUA.TXBA131 BA131 02030000
ON MG103.ENOF = BA131.ENOF 02040000
INNER JOIN SESSION.FAMLISTE FL 02050000
ON UCASE(BA131.EAOF) = FL.FAMILY 02060000
-- 02070000
-- Search over Database Name and retrieve family name 02080000
-- In general same processing like search over family, but other 02090000
-- columns are relevant. 02100000
-- 02110000
UNION DISTINCT 02120000
SELECT C071.EAOF 02130000
, FL.DBNAME 02140000
, ' ' AS COMMENT 02150000
FROM BUA.TXBC111 C111 02160000
FULL OUTER JOIN BUA.TXBC071 C071 02170000
ON C111.ENSTORAR = C071.ENSTORAR 02180000
INNER JOIN SESSION.FAMLISTE FL 02190000
ON FL.STORAR = C111.ENSTORAR 02200000
AND FL.ENSEG = C111.ENSEG 02210000
UNION DISTINCT 02220000
SELECT BE051.EAOF AS FAMILY 02230000
, FL.DBNAME 02240000
, ' ' AS COMMENT 02250000
FROM BUA.TXBE051 BE051 02260000
INNER JOIN BUA.TXBA201 BA201 02270000
ON BE051.ENLIBENG = BA201.ENSTORAR 02280000
INNER JOIN SESSION.FAMLISTE FL 02290000
ON FL.STORAR_N = BA201.ENSTORAR 02300000
AND FL.ENSEG_N = BA201.ENSEG 02310000
UNION DISTINCT 02320000
SELECT T504.XBA501_FAMNAME 02330000
, XBA504_DB 02340000
, ' ' AS COMMENT 02350000
FROM BUA.TXBA504 T504 02360000
LEFT JOIN BUA.TXBA511 T511 02370000
ON T504.XBA501_FAMNAME = T511.XBA501_FAMNAME 02380000
AND T504.XBA504_TABLE = T511.XBA504_TABLE 02390000
INNER JOIN SESSION.FAMLISTE FL 02400000
ON FL.DBNAME = T504.XBA504_DB 02410000
UNION DISTINCT 02420000
SELECT UCASE(BA131.EAOF) 02430000
, FL.DBNAME 02440000
, ' ' AS COMMENT 02450000
FROM BUA.TXBA131 BA131 02460000
INNER JOIN BUA.TXBG081 BG181 02470000
ON BA131.ENOF = BG181.ENOF 02480000
INNER JOIN SESSION.FAMLISTE FL 02490000
ON BG181.ENSTORAR = FL.STORAR_N 02500000
UNION DISTINCT 02510000
SELECT UCASE(BA131.EAOF) 02520000
, FL.DBNAME 02530000
, ' ' AS COMMENT 02540000
FROM BUA.TXBA131 BA131 02550000
INNER JOIN BUA.TXBG081X BG181 02560000
ON BA131.ENOF = BG181.ENOF 02570000
INNER JOIN SESSION.FAMLISTE FL 02580000
ON BG181.ENSTORAR = FL.STORAR_N 02590000
UNION DISTINCT 02600000
SELECT 'ELAR Repo. / Base' 02610000
, DBNAME 02620000
, ' ' AS COMMENT 02630000
FROM SESSION.FAMLISTE 02640000
WHERE SUBSTR(DBNAME,1,3) = 'DXB' 02650000
) 02660000
SELECT FAMILY 02670000
, STORAR 02680000
, COMMENT 02690000
FROM TESLA 02700000
WHERE (SELECT CREATE_FROM FROM SESSION.FAMLISTE) IS NULL 02710000
AND (SELECT CREATE_TO FROM SESSION.FAMLISTE) IS NULL 02720000
; 02730000
-- Add database without ELAR meta data into checklist 02740000
-- 02750000
INSERT INTO SESSION.ELAR 02760000
SELECT DBNAME 02770000
, DBNAME 02780000
, ' ' 02790000
FROM SESSION.FAMLISTE 02800000
WHERE DBNAME NOT IN (SELECT STORAR FROM SESSION.ELAR) 02810000
AND DBNAME <> '?' 02820000
AND (SELECT CREATE_FROM FROM SESSION.FAMLISTE) IS NULL 02830000
AND (SELECT CREATE_TO FROM SESSION.FAMLISTE) IS NULL 02840000
; 02850000
INSERT INTO SESSION.ELAR 02860000
SELECT DISTINCT 02870000
'?' 02880000
, DBNAME 02890000
, DBNAME 02900000
FROM SYSIBM.SYSTABLESPACE 02910000
WHERE (SELECT CREATE_FROM FROM SESSION.FAMLISTE ) IS NOT NULL 02920000
AND (SELECT CREATE_TO FROM SESSION.FAMLISTE ) IS NOT NULL 02930000
AND DATE(CREATEDTS) >= (SELECT CREATE_FROM FROM SESSION.FAMLISTE ) 02940000
AND DATE(CREATEDTS) <= (SELECT CREATE_TO FROM SESSION.FAMLISTE ) 02950000
AND DBNAME LIKE 'XB%' 02960000
; 02970000
DECLARE GLOBAL TEMPORARY TABLE TEMP 02980000
( SNUM CHAR(0013) FOR BIT DATA 02990000
, CRITERIA CHAR(0030) 03000000
, FAMILY CHAR(0030) 03010000
, COMMENT CHAR(0020) 03020000
, OBJECT CHAR(0060) 03030000
, OPTVALUE VARCHAR(1024) 03040000
, CREATEDTS TIMESTAMP(6) 03050000
) 03060000
; 03070000
INSERT INTO SESSION.TEMP 03080000
WITH DBDDL ( FAMILY 03090000
, DATABASE 03100000
, BUFFERPOOL 03110000
, INDEXPOOL 03120000
, STOGROUP 03130000
, CCID 03140000
, DBID 03150000
, COMMENT 03160000
, CREATEDTS 03170000
) 03180000
AS (SELECT DISTINCT 03190000
EL.FAMILY 03200000
, DB.NAME 03210000
, DB.BPOOL 03220000
, DB.INDEXBP 03230000
, DB.STGROUP 03240000
, DB.ENCODING_SCHEME 03250000
, DB.DBID 03260000
, EL.COMMENT 03270000
, DB.CREATEDTS 03280000
FROM SESSION.ELAR EL 03290000
INNER JOIN SYSIBM.SYSDATABASE DB 03300000
ON EL.STORAR = DB.NAME 03310000
INNER JOIN SYSIBM.SYSTABLESPACE TS 03320000
ON DB.DBID = TS.DBID 03330000
) 03340000
, RDB ( FAMILY 03350000
, COMMENT 03360000
, OBJECT 03370000
, OPTVALUE 03380000
, CREATEDTS 03390000
) 03400000
AS (SELECT DISTINCT 03410000
FAMILY 03420000
, COMMENT 03430000
, CAST(DATABASE AS CHAR(08)) 03440000
, 'Bufferpool_DB=' 03450000
|| CASE WHEN BUFFERPOOL = 'BP2' 03460000
THEN 'OK' 03470000
ELSE 'NOK' 03480000
END 03490000
|| ';' 03500000
|| 'Bufferpool_DB_IX=' 03510000
|| CASE WHEN INDEXPOOL = 'BP1' 03520000
THEN 'OK' 03530000
ELSE 'NOK' 03540000
END 03550000
|| ';' 03560000
|| 'StorageGroup=' 03570000
|| CASE STOGROUP 03580000
WHEN 'GSMS1' THEN 'OK' 03590000
WHEN 'GSMS2' THEN 'OK' 03600000
WHEN 'GSMS3' THEN 'OK' 03610000
WHEN 'GSMS4' THEN 'OK' 03620000
ELSE CASE WHEN SUBSTR(DATABASE,1,3) = 'DXB' 03630000
THEN CASE WHEN STOGROUP = 'GSMS' 03640000
THEN 'OK' 03650000
ELSE 'NOK' 03660000
END 03670000
ELSE 'NOK' 03680000
END 03690000
END 03700000
|| ';' 03710000
|| 'EncodingScheme=' 03720000
|| CASE WHEN CCID = 'E' 03730000
THEN 'OK' 03740000
ELSE 'NOK' 03750000
END 03760000
, CREATEDTS 03770000
FROM DBDDL 03780000
) 03790000
SELECT GENERATE_UNIQUE() 03800000
, '1Database Option Check' 03810000
, FAMILY 03820000
, COMMENT 03830000
, OBJECT 03840000
, OPTVALUE 03850000
, CREATEDTS 03860000
FROM RDB 03870000
ORDER BY FAMILY 03880000
, OBJECT 03890000
; 03900000
INSERT INTO SESSION.TEMP 03910000
WITH TSDDL ( FAMILY 03920000
, DATABASE 03930000
, BPOOL_T 03940000
, TSNAME 03950000
, PARTITION 03960000
, STOGROUP 03970000
, PRIQTY 03980000
, SECQTY 03990000
, GBPCACHE 04000000
, TRACKMODE 04010000
, LOGGED 04020000
, DSSIZE 04030000
, LOCKSIZE 04040000
, LOCKMAX 04050000
, CLOSE 04060000
, COMPRESS 04070000
, CCID 04080000
, DEFINE 04090000
, MAXROWS 04100000
, TPIXNAME 04110000
, AUXTBNAME 04120000
, FREEPAGE 04130000
, PCTFREE 04140000
, COMMENT 04150000
, CREATEDTS 04160000
) 04170000
AS (SELECT DISTINCT 04180000
EL.FAMILY AS FAMILY 04190000
, DB.NAME AS DATABASE 04200000
, TS.BPOOL AS BPOOL_T 04210000
, TS.NAME AS TSNAME 04220000
, TS.PARTITIONS AS PARTITION 04230000
, TP.STORNAME AS STOGROUP 04240000
, TP.PQTY AS PRIQTY 04250000
, TP.SQTY AS SECQTY 04260000
, TP.GBPCACHE AS GBPCACHE 04270000
, TP.TRACKMOD AS TRACKMODE 04280000
, TS.LOG AS LOGGED 04290000
, TS.DSSIZE AS DSSIZE 04300000
, TS.LOCKRULE AS LOCKSIZE 04310000
, TS.LOCKMAX AS LOCKMAX 04320000
, TS.CLOSERULE AS CLOSE 04330000
, TP.COMPRESS AS COMPRESS 04340000
, TS.ENCODING_SCHEME AS CCID 04350000
, TP.SPACE AS DEFINE 04360000
, TS.MAXROWS AS MAXROWS 04370000
, TP.IXNAME AS TPIXNAME 04380000
, TB.TYPE AS AUXTBNAME 04390000
, TP.FREEPAGE AS FREEPAGE 04400000
, TP.PCTFREE AS PCTFREE 04410000
, EL.COMMENT AS COMMENT 04420000
, TP.CREATEDTS AS CREATEDTS 04430000
FROM SESSION.ELAR EL 04440000
INNER JOIN SYSIBM.SYSDATABASE DB 04450000
ON EL.STORAR = DB.NAME 04460000
INNER JOIN SYSIBM.SYSTABLESPACE TS 04470000
ON DB.DBID = TS.DBID 04480000
INNER JOIN SYSIBM.SYSTABLEPART TP 04490000
ON TS.NAME = TP.TSNAME 04500000
AND TS.DBNAME = TP.DBNAME 04510000
INNER JOIN SYSIBM.SYSTABLES TB 04520000
ON TP.DBNAME = TB.DBNAME 04530000
AND TP.TSNAME = TB.TSNAME 04540000
) 04550000
, RTS ( FAMILY 04560000
, COMMENT 04570000
, OBJECT 04580000
, OPTVALUE 04590000
, CREATEDTS 04600000
) 04610000
AS (SELECT DISTINCT 04620000
FAMILY 04630000
, COMMENT 04640000
, CAST(DATABASE AS CHAR(08)) 04650000
|| ' ' 04660000
|| TSNAME 04670000
|| ' ' 04680000
, CASE WHEN PARTITION > 0 04690000
THEN CASE WHEN LENGTH(STRIP(TPIXNAME)) = 0 04700000
THEN 'InfoTCP=OK' 04710000
ELSE 'InfoICP=OK' 04720000
END 04730000
ELSE 'InfoTSS=OK' 04740000
END 04750000
|| ';' 04760000
|| 'TablePartLimit=' 04770000
|| CASE WHEN (SELECT DISTINCT SUBSTR(DATABASE,1,2) 04780000
FROM TSDDL 04790000
) = 'XB' 04800000
THEN CASE WHEN PARTITION > (SELECT MAXPART 04810000
FROM SESSION.MAXPART 04820000
WHERE PARTYPE = 'Table' 04830000
) 04840000
THEN 'NOK' 04850000
ELSE 'OK' 04860000
END 04870000
ELSE 'OK' 04880000
END 04890000
|| ';' 04900000
|| 'Bufferpool' 04910000
|| CASE BPOOL_T 04920000
WHEN 'BP2' THEN 04930000
CASE WHEN SUBSTR(TSNAME,1,1) 04940000
|| SUBSTR( TSNAME 04950000
, (LENGTH(TSNAME)-1)04960000
, 1 04970000
) 04980000
= 'SH' 04990000
THEN '_SHS=NOK' 05000000
ELSE '=OK' 05010000
END 05020000
WHEN 'BP32K' THEN 05030000
CASE WHEN SUBSTR(TSNAME,1,1) 05040000
|| SUBSTR( TSNAME 05050000
, (LENGTH(TSNAME)-1)05060000
, 1 05070000
) 05080000
= 'SH' 05090000
THEN '=OK' 05100000
ELSE CASE WHEN LENGTH(TSNAME) = 8 05110000
THEN CASE WHEN SUBSTR(TSNAME,8,1)05120000
= 'H' 05130000
THEN '=OK' 05140000
ELSE '_SHS=NOK' 05150000
END 05160000
ELSE '_SHS=NOK' 05170000
END 05180000
END 05190000
WHEN 'BP8' THEN 05200000
CASE WHEN AUXTBNAME = 'X' 05210000
THEN '=OK' 05220000
ELSE '_LOB=NOK' 05230000
END 05240000
ELSE '_TS=NOK' 05250000
END 05260000
|| ';' 05270000
|| 'Groupbufferpool=' 05280000
|| CASE GBPCACHE 05290000
WHEN ' ' THEN 'OK' 05300000
ELSE 'NOK' 05310000
END 05320000
|| ';' 05330000
|| 'Trackmode=' 05340000
|| CASE TRACKMODE 05350000
WHEN 'N' THEN 'OK' 05360000
ELSE 'NOK' 05370000
END 05380000
|| ';' 05390000
|| 'LoggedOption=' 05400000
|| CASE LOGGED 05410000
WHEN 'Y' THEN 'OK' 05420000
ELSE 'NOK' 05430000
END 05440000
|| ';' 05450000
|| 'DSSIZE=' 05460000
|| CASE WHEN PARTITION > 0 05470000
THEN CASE DSSIZE 05480000
WHEN 16777216 THEN 'OK' 05490000
ELSE 'NOK' 05500000
END 05510000
ELSE 'OK' 05520000
END 05530000
|| ';' 05540000
|| 'Locksize=' 05550000
|| CASE LOCKSIZE 05560000
WHEN 'A' THEN 'OK' 05570000
ELSE 'NOK' 05580000
END 05590000
|| ';' 05600000
|| 'LockMax=' 05610000
|| CASE LOCKMAX 05620000
WHEN -1 THEN 'OK' 05630000
ELSE 'NOK' 05640000
END 05650000
|| ';' 05660000
|| 'CloseOption=' 05670000
|| CASE CLOSE 05680000
WHEN 'Y' THEN 'OK' 05690000
ELSE 'NOK' 05700000
END 05710000
|| ';' 05720000
|| 'TblCompressOption=' 05730000
|| CASE COMPRESS 05740000
WHEN 'Y' THEN 'OK' 05750000
ELSE 'NOK' 05760000
END 05770000
|| ';' 05780000
|| 'StorageGroup=' 05790000
|| CASE STOGROUP 05800000
WHEN 'GSMS1' THEN 'OK' 05810000
WHEN 'GSMS2' THEN 'OK' 05820000
WHEN 'GSMS3' THEN 'OK' 05830000
WHEN 'GSMS4' THEN 'OK' 05840000
ELSE CASE WHEN SUBSTR(DATABASE,1,3) = 'DXB' 05850000
THEN CASE WHEN STOGROUP = 'GSMS' 05860000
THEN 'OK' 05870000
ELSE 'NOK' 05880000
END 05890000
ELSE 'NOK' 05900000
END 05910000
END 05920000
|| ';' 05930000
|| 'PrimaryQuantity=' 05940000
|| CASE PRIQTY 05950000
WHEN -1 THEN 'OK' 05960000
ELSE 'NOK' 05970000
END 05980000
|| ';' 05990000
|| 'SecondaryQuantity=' 06000000
|| CASE SECQTY 06010000
WHEN -1 THEN 'OK' 06020000
ELSE 'NOK' 06030000
END 06040000
|| ';' 06050000
|| 'EncodingScheme=' 06060000
|| CASE WHEN CCID = 'E' THEN 'OK' 06070000
ELSE 'NOK' 06080000
END 06090000
|| ';' 06100000
|| 'DefineOption=' 06110000
|| CASE DEFINE 06120000
WHEN -1 THEN 'NOK' 06130000
ELSE 'OK' 06140000
END 06150000
|| ';' 06160000
|| 'MaxRowsPerPage=' 06170000
|| CASE MAXROWS 06180000
WHEN 255 THEN 'OK' 06190000
ELSE 'NOK' 06200000
END 06210000
|| ';' 06220000
|| 'TSFreepage=' 06230000
|| CASE FREEPAGE 06240000
WHEN 0 THEN 'OK' 06250000
ELSE 'NOK' 06260000
END 06270000
|| ';' 06280000
|| 'TSPctfree=' 06290000
|| CASE PCTFREE 06300000
WHEN 0 THEN 'OK' 06310000
ELSE 'NOK' 06320000
END 06330000
, CREATEDTS 06340000
FROM TSDDL 06350000
) 06360000
SELECT GENERATE_UNIQUE() 06370000
, '2Tablespace Option Check' 06380000
, FAMILY 06390000
, COMMENT 06400000
, OBJECT 06410000
, OPTVALUE 06420000
, CREATEDTS 06430000
FROM RTS 06440000
ORDER BY FAMILY 06450000
, OBJECT 06460000
; 06470000
INSERT INTO SESSION.TEMP 06480000
WITH TBDDL ( FAMILY 06490000
, DATABASE 06500000
, TSNAME 06510000
, TBNAME 06520000
, AUDIT 06530000
, DATA_CAPTURE 06540000
, RESTRICT_DROP 06550000
, CCID 06560000
, VOLATILE 06570000
, APPEND 06580000
, PART_NAME 06590000
, PART_TYPE 06600000
, PART_SEQ 06610000
, PART_ORDER 06620000
, PARTITION 06630000
, PART_LIMITKEY 06640000
, PART_LOGICALKEY 06650000
, COLNO 06660000
, PARTKEYCOLNUM 06670000
, COMMENT 06680000
, CREATEDTS 06690000
) 06700000
AS (SELECT EL.FAMILY 06710000
, CAST(TB.DBNAME AS CHAR(08)) 06720000
, TB.TSNAME 06730000
, TB.NAME 06740000
, TB.AUDITING 06750000
, TB.DATACAPTURE 06760000
, TB.CLUSTERTYPE 06770000
, TB.ENCODING_SCHEME 06780000
, TB.SPLIT_ROWS 06790000
, TB.APPEND 06800000
, TC.NAME 06810000
, TC.COLTYPE 06820000
, TC.PARTKEY_COLSEQ 06830000
, CAST(CASE WHEN TS.PARTITIONS = 0 06840000
THEN ' ' 06850000
ELSE TC.PARTKEY_ORDERING 06860000
END AS CHAR(01)) 06870000
, CAST(TP.PARTITION AS INTEGER) 06880000
, CAST(CASE WHEN TS.PARTITIONS = 0 06890000
THEN '0' 06900000
ELSE STRIP(TP.LIMITKEY) 06910000
END AS VARCHAR(765)) 06920000
, CAST(CASE WHEN TS.PARTITIONS = 0 06930000
THEN 0 06940000
ELSE TP.LOGICAL_PART 06950000
END AS INTEGER) 06960000
, COLNO 06970000
, TB.PARTKEYCOLNUM 06980000
, EL.COMMENT 06990000
, TP.CREATEDTS 07000000
FROM SESSION.ELAR EL 07010000
INNER JOIN SYSIBM.SYSDATABASE DB 07020000
ON EL.STORAR = DB.NAME 07030000
INNER JOIN SYSIBM.SYSTABLES TB 07040000
ON TB.DBNAME = DB.NAME 07050000
AND TB.TYPE = 'T' 07060000
INNER JOIN SYSIBM.SYSCOLUMNS TC 07070000
ON TB.NAME = TC.TBNAME 07080000
AND TB.CREATOR = TC.TBCREATOR 07090000
INNER JOIN SYSIBM.SYSTABLESPACE TS 07100000
ON TB.TSNAME = TS.NAME 07110000
AND TB.DBID = TS.DBID 07120000
AND TS.DBID = DB.DBID 07130000
INNER JOIN SYSIBM.SYSTABLEPART TP 07140000
ON TS.NAME = TP.TSNAME 07150000
AND TS.DBNAME = TP.DBNAME 07160000
WHERE TC.PARTKEY_COLSEQ > 0 07170000
ORDER BY TB.DBNAME, TB.TSNAME 07180000
, TC.COLNO , TC.PARTKEY_COLSEQ 07190000
) 07200000
, RTB ( FAMILY 07210000
, COMMENT 07220000
, OBJECT 07230000
, OPTVALUE 07240000
, CREATEDTS 07250000
) 07260000
AS (SELECT DISTINCT 07270000
FAMILY 07280000
, COMMENT 07290000
, CAST(DATABASE AS CHAR(08)) 07300000
|| ' ' 07310000
|| TSNAME 07320000
|| ' ' 07330000
|| TBNAME 07340000
, 'Audit=' 07350000
|| CASE AUDIT 07360000
WHEN ' ' THEN 'OK' 07370000
ELSE 'NOK' 07380000
END 07390000
|| ';' 07400000
|| 'DataCapture=' 07410000
|| CASE DATA_CAPTURE 07420000
WHEN ' ' THEN 'OK' 07430000
ELSE 'NOK' 07440000
END 07450000
|| ';' 07460000
|| 'RestrictOnDrop=' 07470000
|| CASE RESTRICT_DROP 07480000
WHEN 'Y' THEN 'OK' 07490000
ELSE 'NOK' 07500000
END 07510000
|| ';' 07520000
|| 'EncodingScheme=' 07530000
|| CASE CCID 07540000
WHEN 'E' THEN 'OK' 07550000
ELSE 'NOK' 07560000
END 07570000
|| ';' 07580000
|| 'Volatile=' 07590000
|| CASE VOLATILE 07600000
WHEN 'Y' THEN 'OK' 07610000
ELSE 'NOK' 07620000
END 07630000
|| ';' 07640000
|| 'Append=' 07650000
|| CASE APPEND 07660000
WHEN 'Y' THEN 'OK' 07670000
ELSE 'NOK' 07680000
END 07690000
|| ';' 07700000
|| 'PartKeyName=' 07710000
|| CASE WHEN SUBSTR(DATABASE,1,2) = 'XB' 07720000
THEN CASE WHEN PART_SEQ > 0 07730000
THEN CASE PART_NAME 07740000
WHEN 'EN1PART' THEN 'OK' 07750000
ELSE 'NOK' 07760000
END 07770000
ELSE 'NOK' 07780000
END 07790000
ELSE 'OK' 07800000
END 07810000
|| ';' 07820000
|| 'PartKeyType=' 07830000
|| CASE WHEN SUBSTR(DATABASE,1,2) = 'XB' 07840000
THEN CASE WHEN PART_SEQ > 0 07850000
THEN CASE PART_TYPE 07860000
WHEN 'INTEGER' THEN 'OK' 07870000
ELSE 'NOK' 07880000
END 07890000
ELSE 'NOK' 07900000
END 07910000
ELSE 'OK' 07920000
END 07930000
|| ';' 07940000
|| 'PartKeyPosition=' 07950000
|| CASE WHEN SUBSTR(DATABASE,1,2) = 'XB' 07960000
THEN CASE WHEN PART_SEQ > 0 07970000
THEN CASE PART_SEQ 07980000
WHEN 1 THEN 'OK' 07990000
ELSE 'NOK' 08000000
END 08010000
ELSE 'NOK' 08020000
END 08030000
ELSE 'OK' 08040000
END 08050000
|| ';' 08060000
|| 'PartKeyOrder=' 08070000
|| CASE WHEN SUBSTR(DATABASE,1,2) = 'XB' 08080000
THEN CASE WHEN PART_SEQ > 0 08090000
THEN CASE PART_ORDER 08100000
WHEN 'A' THEN 'OK' 08110000
ELSE 'NOK' 08120000
END 08130000
ELSE 'NOK' 08140000
END 08150000
ELSE 'OK' 08160000
END 08170000
|| ';' 08180000
|| 'PartKeyValue(s)=' 08190000
|| CASE 08200000
WHEN SUBSTR(DATABASE,1,2) = 'XB' 08210000
THEN CASE 08220000
WHEN PART_SEQ > 0 08230000
THEN CASE 08240000
WHEN CHAR(PARTITION) = PART_LIMITKEY 08250000
THEN CASE 08260000
WHEN PART_LIMITKEY 08270000
= CHAR(PART_LOGICALKEY) 08280000
THEN 'OK' 08290000
ELSE 'NOK' 08300000
END 08310000
ELSE 'NOK' 08320000
END 08330000
ELSE 'NOK' 08340000
END 08350000
ELSE 'OK' 08360000
END 08370000
|| ';' 08380000
|| 'PartKeyColNum=' 08390000
|| CASE WHEN SUBSTR(DATABASE,1,2) = 'XB' 08400000
THEN CASE WHEN PARTKEYCOLNUM = 1 08410000
THEN 'OK' 08420000
ELSE 'NOK' 08430000
END 08440000
ELSE 'OK' 08450000
END 08460000
AS OPTVALUE 08470000
, CREATEDTS 08480000
FROM TBDDL 08490000
) 08500000
SELECT GENERATE_UNIQUE() 08510000
, '3Table Option Check' 08520000
, FAMILY 08530000
, COMMENT 08540000
, OBJECT 08550000
, OPTVALUE 08560000
, CREATEDTS 08570000
FROM RTB 08580000
ORDER BY FAMILY 08590000
, OBJECT 08600000
; 08610000
INSERT INTO SESSION.TEMP 08620000
WITH XSTMP ( FAMILY 08630000
, DATABASE 08640000
, TBNAME 08650000
, IXNAME 08660000
, IXCREATOR 08670000
, BPOOL_I 08680000
, INDEXTYPE 08690000
, PARTITION 08700000
, STOGROUP 08710000
, PRIQTY 08720000
, SECQTY 08730000
, GBPCACHE 08740000
, PGSIZE 08750000
, FREEPAGE 08760000
, PCTFREE 08770000
, COMPRESS 08780000
, CLOSE 08790000
, COPY 08800000
, DEFINE 08810000
, CLUSTERING 08820000
, TSPARTITION 08830000
, TPIXNAME 08840000
, PIECESIZE 08850000
, TSPGSIZE 08860000
, COMMENT 08870000
, CREATEDTS 08880000
) 08890000
AS (SELECT DISTINCT 08900000
EL.FAMILY 08910000
, DB.NAME 08920000
, IX.TBNAME 08930000
, IX.NAME 08940000
, IX.CREATOR 08950000
, IX.BPOOL 08960000
, IX.INDEXTYPE 08970000
, (SELECT MAX(TMP.PARTITION) 08980000
FROM SYSIBM.SYSINDEXPART TMP 08990000
WHERE TMP.IXNAME = IX.NAME 09000000
AND TMP.IXCREATOR = IX.CREATOR 09010000
) 09020000
, XP.STORNAME 09030000
, XP.PQTY 09040000
, XP.SQTY 09050000
, XP.GBPCACHE 09060000
, IX.PGSIZE 09070000
, XP.FREEPAGE 09080000
, XP.PCTFREE 09090000
, IX.COMPRESS 09100000
, IX.CLOSERULE 09110000
, IX.COPY 09120000
, XP.SPACE 09130000
, IX.CLUSTERING 09140000
, (SELECT TMP.PARTITIONS 09150000
FROM SYSIBM.SYSTABLESPACE TMP 09160000
WHERE TMP.DBID = DB.DBID 09170000
AND TMP.DBID = IX.DBID 09180000
AND TMP.NAME = TB.TSNAME 09190000
) 09200000
, (SELECT TMP.IXNAME 09210000
FROM SYSIBM.SYSTABLEPART TMP 09220000
WHERE TMP.TSNAME = TS.NAME 09230000
AND TMP.DBNAME = TS.DBNAME 09240000
FETCH FIRST 1 ROW ONLY 09250000
) 09260000
, IX.PIECESIZE 09270000
, TS.PGSIZE 09280000
, EL.COMMENT 09290000
, XP.CREATEDTS 09300000
FROM SESSION.ELAR EL 09310000
INNER JOIN SYSIBM.SYSDATABASE DB 09320000
ON EL.STORAR = DB.NAME 09330000
INNER JOIN SYSIBM.SYSINDEXES IX 09340000
ON DB.DBID = IX.DBID 09350000
INNER JOIN SYSIBM.SYSTABLES TB 09360000
ON IX.TBNAME = TB.NAME 09370000
AND IX.DBNAME = TB.DBNAME 09380000
AND IX.DBID = TB.DBID 09390000
AND TB.DBID = DB.DBID 09400000
INNER JOIN SYSIBM.SYSTABLESPACE TS 09410000
ON TB.TSNAME = TS.NAME 09420000
AND TS.DBID = TB.DBID 09430000
AND TS.DBID = IX.DBID 09440000
AND TS.DBID = DB.DBID 09450000
INNER JOIN SYSIBM.SYSINDEXPART XP 09460000
ON IX.NAME = XP.IXNAME 09470000
AND IX.CREATOR = XP.IXCREATOR 09480000
) 09490000
, IXDDL ( FAMILY 09500000
, DATABASE 09510000
, TBNAME 09520000
, IXNAME 09530000
, BPOOL_I 09540000
, INDEXTYPE 09550000
, PARTITION 09560000
, STOGROUP 09570000
, PRIQTY 09580000
, SECQTY 09590000
, GBPCACHE 09600000
, PGSIZE 09610000
, FREEPAGE 09620000
, PCTFREE 09630000
, COMPRESS 09640000
, CLOSE 09650000
, COPY 09660000
, DEFINE 09670000
, CLUSTERING 09680000
, CNT_KEYS 09690000
, CLUSTERKEY 09700000
, TSPARTITION 09710000
, TPIXNAME 09720000
, PIECESIZE 09730000
, TSPGSIZE 09740000
, IXTECHBUSINESS 09750000
, COMMENT 09760000
, CREATEDTS 09770000
) 09780000
AS (SELECT T1.FAMILY 09790000
, T1.DATABASE 09800000
, T1.TBNAME 09810000
, T1.IXNAME 09820000
, T1.BPOOL_I 09830000
, T1.INDEXTYPE 09840000
, T1.PARTITION 09850000
, T1.STOGROUP 09860000
, T1.PRIQTY 09870000
, T1.SECQTY 09880000
, T1.GBPCACHE 09890000
, T1.PGSIZE 09900000
, T1.FREEPAGE 09910000
, T1.PCTFREE 09920000
, T1.COMPRESS 09930000
, T1.CLOSE 09940000
, T1.COPY 09950000
, T1.DEFINE 09960000
, T1.CLUSTERING 09970000
, (SELECT MAX(SK.COLSEQ) 09980000
FROM SYSIBM.SYSKEYS SK 09990000
WHERE T1.IXCREATOR = SK.IXCREATOR 10000000
AND T1.IXNAME = SK.IXNAME 10010000
AND T1.CLUSTERING = 'Y' 10020000
AND SK.COLSEQ = 1 10030000
) AS CNT_KEYS 10040000
, (SELECT SK.COLNAME 10050000
FROM SYSIBM.SYSKEYS SK 10060000
WHERE T1.IXCREATOR = SK.IXCREATOR 10070000
AND T1.IXNAME = SK.IXNAME 10080000
AND T1.CLUSTERING = 'Y' 10090000
AND SK.COLSEQ = 1 10100000
) AS CLUSTERKEY 10110000
, T1.TSPARTITION 10120000
, T1.TPIXNAME 10130000
, T1.PIECESIZE 10140000
, T1.TSPGSIZE 10150000
, (SELECT COUNT(*) 10160000
FROM SYSIBM.SYSKEYS IK 10170000
WHERE IK.IXNAME = T1.IXNAME 10180000
AND ( IK.COLNAME LIKE '%ATRN%' 10190000
OR IK.COLNAME LIKE '%STRN%' 10200000
) 10210000
) AS IXTECHBUSINESS 10220000
, T1.COMMENT 10230000
, T1.CREATEDTS 10240000
FROM XSTMP T1 10250000
) 10260000
, RXS ( FAMILY 10270000
, COMMENT 10280000
, OBJECT 10290000
, OPTVALUE 10300000
, CREATEDTS 10310000
) 10320000
AS (SELECT DISTINCT 10330000
FAMILY 10340000
, COMMENT 10350000
, CAST(DATABASE AS CHAR(08)) 10360000
|| ' ' 10370000
|| IXNAME 10380000
|| ' ' 10390000
|| TBNAME 10400000
, 'NoIndexExists=' 10410000
|| CASE WHEN LENGTH(STRIP(IXNAME)) = 0 10420000
THEN 'NOK' 10430000
ELSE 'OK' 10440000
END 10450000
|| ';' 10460000
|| 'NPI=' 10470000
|| CASE WHEN PARTITION + TSPARTITION = 0 10480000
THEN 'OK' 10490000
ELSE CASE WHEN TSPARTITION > 0 AND PIECESIZE = 0 10500000
THEN 'OK' 10510000
ELSE CASE WHEN PARTITION > 0 AND 10520000
PIECESIZE > 0 10530000
THEN 'OK' 10540000
ELSE 'NOK' 10550000
END 10560000
END 10570000
END 10580000
|| ';' 10590000
|| 'Indextype=' 10600000
|| CASE INDEXTYPE 10610000
WHEN 'D' then case when tspartition > 0 10620000
then 'OK' 10630000
else 'NOK' 10640000
end 10650000
WHEN 'P' then case when tspartition > 0 10660000
then 'OK' 10670000
else 'NOK' 10680000
end 10690000
WHEN ' ' then case when tspartition > 0 10700000
then 'NOK' 10710000
else 'OK' 10720000
end 10730000
WHEN '2' then case when tspartition > 0 10740000
then 'NOK' 10750000
else 'OK' 10760000
end 10770000
ELSE 'NOK' 10780000
END 10790000
|| ';' 10800000
|| 'IndexPartLimit=' 10810000
|| CASE WHEN PARTITION > (SELECT MAXPART 10820000
FROM SESSION.MAXPART 10830000
WHERE PARTYPE = 'Index' 10840000
) 10850000
THEN 'NOK' 10860000
ELSE 'OK' 10870000
END 10880000
|| ';' 10890000
|| 'Bufferpool=' 10900000
|| CASE BPOOL_I 10910000
WHEN 'BP1' THEN 'OK' 10920000
ELSE 'NOK' 10930000
END 10940000
|| ';' 10950000
|| 'GroupBufferPool=' 10960000
|| CASE GBPCACHE 10970000
WHEN ' ' THEN 'OK' 10980000
ELSE 'NOK' 10990000
END 11000000
|| ';' 11010000
|| 'Pagesize=' 11020000
|| CASE WHEN TSPGSIZE = PGSIZE 11030000
THEN 'OK' 11040000
ELSE 'OK' 11050000
END 11060000
|| ';' 11070000
|| 'CloseOption=' 11080000
|| CASE CLOSE 11090000
WHEN 'Y' THEN 'OK' 11100000
ELSE 'NOK' 11110000
END 11120000
|| ';' 11130000
|| 'IdxCompressOption=' 11140000
|| CASE COMPRESS 11150000
WHEN 'N' THEN 'OK' 11160000
ELSE 'NOK' 11170000
END 11180000
|| ';' 11190000
|| 'StorageGroup=' 11200000
|| CASE STOGROUP 11210000
WHEN 'GSMS1' THEN 'OK' 11220000
WHEN 'GSMS2' THEN 'OK' 11230000
WHEN 'GSMS3' THEN 'OK' 11240000
WHEN 'GSMS4' THEN 'OK' 11250000
ELSE CASE WHEN SUBSTR(DATABASE,1,3) = 'DXB' 11260000
THEN CASE WHEN STOGROUP = 'GSMS' 11270000
THEN 'OK' 11280000
ELSE 'NOK' 11290000
END 11300000
ELSE 'NOK' 11310000
END 11320000
END 11330000
|| ';' 11340000
|| 'PrimaryQuantity=' 11350000
|| CASE PRIQTY 11360000
WHEN -1 THEN 'OK' 11370000
ELSE 'NOK' 11380000
END 11390000
|| ';' 11400000
|| 'SecondaryQuantity=' 11410000
|| CASE SECQTY 11420000
WHEN -1 THEN 'OK' 11430000
ELSE 'NOK' 11440000
END 11450000
|| ';' 11460000
|| 'Define=' 11470000
|| CASE DEFINE 11480000
WHEN -1 THEN 'NOK' 11490000
ELSE 'OK' 11500000
END 11510000
|| ';' 11520000
|| 'FreePage' 11530000
|| CASE FREEPAGE 11540000
WHEN 0 THEN '=OK' 11550000
ELSE '=NOK' 11560000
END 11570000
|| ';' 11580000
|| 'PctFree' 11590000
|| CASE WHEN SUBSTR(DATABASE,1,3) = 'DXB' 11600000
THEN '_Metadata=OK' 11610000
ELSE 11620000
CASE WHEN IXTECHBUSINESS > 0 11630000
THEN CASE PCTFREE 11640000
WHEN 0 THEN '_Technical=OK' 11650000
ELSE '_Technical=NOK' 11660000
END 11670000
ELSE CASE PCTFREE 11680000
WHEN 10 THEN '_Business=OK' 11690000
ELSE '_Business=NOK' 11700000
END 11710000
END 11720000
END 11730000
|| ';' 11740000
|| 'Copy=' 11750000
|| CASE COPY 11760000
WHEN 'N' THEN 'OK' 11770000
ELSE 'NOK' 11780000
END 11790000
, CREATEDTS 11800000
FROM IXDDL 11810000
) 11820000
SELECT GENERATE_UNIQUE() 11830000
, '4Indexspace Option Check' 11840000
, FAMILY 11850000
, COMMENT 11860000
, OBJECT 11870000
, OPTVALUE 11880000
, CREATEDTS 11890000
FROM RXS 11900000
ORDER BY FAMILY 11910000
, OBJECT 11920000
; 11930000
INSERT INTO SESSION.TEMP 11940000
WITH IXTYPE_FAILURE ( INDEXTYPE 11950000
) 11960000
AS ( SELECT 'C' 11970000
FROM SYSIBM.SYSDUMMY1 11980000
UNION ALL 11990000
SELECT 'N' 12000000
FROM SYSIBM.SYSDUMMY1 12010000
UNION ALL 12020000
SELECT 'R' 12030000
FROM SYSIBM.SYSDUMMY1 12040000
UNION ALL 12050000
SELECT 'G' 12060000
FROM SYSIBM.SYSDUMMY1 12070000
UNION ALL 12080000
SELECT 'X' 12090000
FROM SYSIBM.SYSDUMMY1 12100000
) 12110000
, IXTYPE_UNIQUE ( INDEXTYPE 12120000
) 12130000
AS ( SELECT 'P' 12140000
FROM SYSIBM.SYSDUMMY1 12150000
UNION ALL 12160000
SELECT 'U' 12170000
FROM SYSIBM.SYSDUMMY1 12180000
) 12190000
, IXTYPE ( INDEXTYPE 12200000
) 12210000
AS ( SELECT 'C' 12220000
FROM SYSIBM.SYSDUMMY1 12230000
UNION ALL 12240000
SELECT 'D' 12250000
FROM SYSIBM.SYSDUMMY1 12260000
UNION ALL 12270000
SELECT 'U' 12280000
FROM SYSIBM.SYSDUMMY1 12290000
UNION ALL 12300000
SELECT 'P' 12310000
FROM SYSIBM.SYSDUMMY1 12320000
UNION ALL 12330000
SELECT 'N' 12340000
FROM SYSIBM.SYSDUMMY1 12350000
UNION ALL 12360000
SELECT 'R' 12370000
FROM SYSIBM.SYSDUMMY1 12380000
UNION ALL 12390000
SELECT 'G' 12400000
FROM SYSIBM.SYSDUMMY1 12410000
UNION ALL 12420000
SELECT 'X' 12430000
FROM SYSIBM.SYSDUMMY1 12440000
) 12450000
, IXLST ( FAMILY 12460000
, DATABASE 12470000
, TBNAME 12480000
, IXNAME 12490000
, IXCREATOR 12500000
, ELAR_TYPE 12510000
, ELAR_ORDER 12520000
, UNIQUERULE 12530000
, CLUSTERING 12540000
, MAXCOL 12550000
, EN1PART 12560000
, EA1ATRN 12570000
, EA1STRN 12580000
, EN1STK1 12590000
, EN1STK2 12600000
, EATRNVON 12610000
, EATRNBIS 12620000
, COMMENT 12630000
, CREATEDTS 12640000
) 12650000
AS (SELECT DISTINCT 12660000
EL.FAMILY 12670000
, DB.NAME 12680000
, TB.NAME 12690000
, IFNULL(IX.NAME,'NOK') 12700000
, IX.CREATOR 12710000
, CAST(CASE SUBSTR(TB.NAME,9,2) 12720000
WHEN 'HS' THEN 'SIGNATUR' 12730000
WHEN 'IT' THEN 'BODY ' 12740000
WHEN 'PM' THEN 'MULTIPLE' 12750000
ELSE CASE SUBSTR(TB.NAME,9,5) 12760000
WHEN 'PS001' THEN 'AOP ' 12770000
WHEN 'PS002' THEN 'SEP ' 12780000
WHEN 'PS003' THEN 'SEP_2 ' 12790000
ELSE '??????? ' 12800000
END 12810000
END 12820000
AS CHAR(08) 12830000
) 12840000
, CAST(CASE SUBSTR(TB.NAME,9,2) 12850000
WHEN 'HS' THEN '6' 12860000
WHEN 'IT' THEN '4' 12870000
WHEN 'PM' THEN '5' 12880000
ELSE CASE SUBSTR(TB.NAME,9,5) 12890000
WHEN 'PS001' THEN '1' 12900000
WHEN 'PS002' THEN '2' 12910000
WHEN 'PS003' THEN '3' 12920000
ELSE '7' 12930000
END 12940000
END 12950000
AS CHAR(01) 12960000
) 12970000
, IFNULL(IX.UNIQUERULE,'NOK') AS UNIQUERULE 12980000
, IFNULL(IX.CLUSTERING,'NOK') AS CLUSTERING 12990000
, (SELECT COUNT(*) 13000000
FROM SYSIBM.SYSKEYS SK 13010000
WHERE IX.NAME = SK.IXNAME 13020000
AND IX.CREATOR = SK.IXCREATOR 13030000
) AS MAXCOL 13040000
, IFNULL((SELECT SK.COLSEQ 13050000
FROM SYSIBM.SYSKEYS SK 13060000
WHERE IX.NAME = SK.IXNAME 13070000
AND IX.CREATOR = SK.IXCREATOR 13080000
AND SK.COLNAME = 'EN1PART' 13090000
), -1) AS EN1PART 13100000
, IFNULL((SELECT SK.COLSEQ 13110000
FROM SYSIBM.SYSKEYS SK 13120000
WHERE IX.NAME = SK.IXNAME 13130000
AND IX.CREATOR = SK.IXCREATOR 13140000
AND SK.COLNAME = 'EA1ATRN' 13150000
), -1) AS EA1ATRN 13160000
, IFNULL((SELECT SK.COLSEQ 13170000
FROM SYSIBM.SYSKEYS SK 13180000
WHERE IX.NAME = SK.IXNAME 13190000
AND IX.CREATOR = SK.IXCREATOR 13200000
AND SK.COLNAME = 'EA1STRN' 13210000
), -1) AS EA1STRN 13220000
, IFNULL((SELECT SK.COLSEQ 13230000
FROM SYSIBM.SYSKEYS SK 13240000
WHERE IX.NAME = SK.IXNAME 13250000
AND IX.CREATOR = SK.IXCREATOR 13260000
AND SK.COLNAME = 'EN1STK1' 13270000
), -1) AS EN1STK1 13280000
, IFNULL((SELECT SK.COLSEQ 13290000
FROM SYSIBM.SYSKEYS SK 13300000
WHERE IX.NAME = SK.IXNAME 13310000
AND IX.CREATOR = SK.IXCREATOR 13320000
AND SK.COLNAME = 'EN1STK2' 13330000
), -1) AS EN1STK2 13340000
, IFNULL((SELECT SK.COLSEQ 13350000
FROM SYSIBM.SYSKEYS SK 13360000
WHERE IX.NAME = SK.IXNAME 13370000
AND IX.CREATOR = SK.IXCREATOR 13380000
AND SK.COLNAME = 'EATRNVON' 13390000
), -1) AS EATRNVON 13400000
, IFNULL((SELECT SK.COLSEQ 13410000
FROM SYSIBM.SYSKEYS SK 13420000
WHERE IX.NAME = SK.IXNAME 13430000
AND IX.CREATOR = SK.IXCREATOR 13440000
AND SK.COLNAME = 'EATRNBIS' 13450000
), -1) AS EATRNBIS 13460000
, EL.COMMENT 13470000
, IFNULL(IX.CREATEDTS, '0001-01-01-00.00.00.000000') 13480000
FROM SESSION.ELAR EL 13490000
INNER JOIN SYSIBM.SYSDATABASE DB 13500000
ON EL.STORAR = DB.NAME 13510000
INNER JOIN SYSIBM.SYSTABLES TB 13520000
ON TB.DBNAME = DB.NAME 13530000
AND TB.TYPE = 'T' 13540000
INNER JOIN SYSIBM.SYSTABLESPACE TS 13550000
ON TB.TSNAME = TS.NAME 13560000
AND TB.DBID = TS.DBID 13570000
AND TS.DBID = DB.DBID 13580000
LEFT OUTER JOIN SYSIBM.SYSINDEXES IX 13590000
ON IX.TBNAME = TB.NAME 13600000
LEFT OUTER JOIN IXTYPE TY 13610000
ON IX.INDEXTYPE = TY.INDEXTYPE 13620000
) 13630000
, RXI ( FAMILY 13640000
, COMMENT 13650000
, OBJECT 13660000
, OPTVALUE 13670000
, CREATEDTS 13680000
) 13690000
AS (SELECT FAMILY 13700000
, COMMENT 13710000
, CAST(DATABASE AS CHAR(08)) 13720000
|| ' ' 13730000
|| TBNAME 13740000
|| ' ' 13750000
, 'No' 13760000
|| ' ' 13770000
|| 'Index' 13780000
|| ' ' 13790000
|| 'exists=NOK' 13800000
|| ';' 13810000
, CREATEDTS 13820000
FROM IXLST 13830000
WHERE UNIQUERULE = 'NOK' 13840000
UNION ALL 13850000
SELECT FAMILY 13860000
, COMMENT 13870000
, CAST(DATABASE AS CHAR(08)) 13880000
|| ' ' 13890000
|| IXNAME 13900000
|| ' ' 13910000
|| TBNAME 13920000
|| ' ' 13930000
|| 'IndexType_Failure' 13940000
, 'IndexType_Failure=NOK' 13950000
|| ';' 13960000
, CREATEDTS 13970000
FROM IXLST 13980000
WHERE UNIQUERULE IN (SELECT INDEXTYPE 13990000
FROM IXTYPE_FAILURE 14000000
) 14010000
UNION ALL 14020000
SELECT FAMILY 14030000
, COMMENT 14040000
, CAST(DATABASE AS CHAR(08)) 14050000
|| ' ' 14060000
|| IXNAME 14070000
|| ' ' 14080000
|| TBNAME 14090000
|| ' ' 14100000
|| 'IndexRule=Unique' 14110000
, 'EN1PART_MIS=' 14120000
|| CASE WHEN EN1PART = -1 14130000
THEN 'NOK' 14140000
ELSE 'OK' 14150000
END 14160000
|| ';' 14170000
|| 'EN1PART_WPOS=' 14180000
|| CASE WHEN EN1PART = 2 14190000
THEN 'OK' 14200000
ELSE 'NOK' 14210000
END 14220000
|| ';' 14230000
|| 'EA1ARTN_MIS=' 14240000
|| CASE WHEN EA1ATRN = -1 14250000
THEN 'NOK' 14260000
ELSE 'OK' 14270000
END 14280000
|| ';' 14290000
|| 'EA1ARTN_WPOS=' 14300000
|| CASE WHEN EA1ATRN = 1 14310000
THEN 'OK' 14320000
ELSE 'NOK' 14330000
END 14340000
|| ';' 14350000
|| 'CLUSTER_DEF=' 14360000
|| CASE CLUSTERING 14370000
WHEN 'Y' THEN 'OK' 14380000
ELSE 'NOK' 14390000
END 14400000
|| ';' 14410000
|| 'TooManyCols=' 14420000
|| CASE MAXCOL 14430000
WHEN 2 THEN 'OK' 14440000
ELSE 'NOK' 14450000
END 14460000
|| ';' 14470000
, CREATEDTS 14480000
FROM IXLST 14490000
WHERE ELAR_TYPE = 'AOP' 14500000
AND UNIQUERULE IN (SELECT INDEXTYPE 14510000
FROM IXTYPE_UNIQUE 14520000
) 14530000
AND SUBSTR(DATABASE,1,2) = 'XB' 14540000
UNION ALL 14550000
SELECT FAMILY 14560000
, COMMENT 14570000
, CAST(DATABASE AS CHAR(08)) 14580000
|| ' ' 14590000
|| IXNAME 14600000
|| ' ' 14610000
|| TBNAME 14620000
|| ' ' 14630000
|| 'IndexRule=Unique' 14640000
, 'EN1PART_MIS=' 14650000
|| CASE WHEN EN1PART = -1 14660000
THEN 'NOK' 14670000
ELSE 'OK' 14680000
END 14690000
|| ';' 14700000
|| 'EA1SRTN_MIS=' 14710000
|| CASE WHEN EA1STRN = -1 14720000
THEN 'NOK' 14730000
ELSE 'OK' 14740000
END 14750000
|| ';' 14760000
|| 'EN1PART_WPOS=' 14770000
|| CASE WHEN EN1PART = 2 14780000
THEN 'OK' 14790000
ELSE 'NOK' 14800000
END 14810000
|| ';' 14820000
|| 'EA1SRTN_WPOS=' 14830000
|| CASE WHEN EA1STRN = 1 14840000
THEN 'OK' 14850000
ELSE 'NOK' 14860000
END 14870000
|| ';' 14880000
|| 'CLUSTER_DEF=' 14890000
|| CASE CLUSTERING 14900000
WHEN 'Y' THEN 'OK' 14910000
ELSE 'NOK' 14920000
END 14930000
|| ';' 14940000
|| 'TooManyCols=' 14950000
|| CASE MAXCOL 14960000
WHEN 2 THEN 'OK' 14970000
ELSE 'NOK' 14980000
END 14990000
|| ';' 15000000
, CREATEDTS 15010000
FROM IXLST 15020000
WHERE ELAR_TYPE IN ('SEP', 'SEP_2') 15030000
AND UNIQUERULE IN (SELECT INDEXTYPE 15040000
FROM IXTYPE_UNIQUE 15050000
) 15060000
AND SUBSTR(DATABASE,1,2) = 'XB' 15070000
UNION ALL 15080000
SELECT FAMILY 15090000
, COMMENT 15100000
, CAST(DATABASE AS CHAR(08)) 15110000
|| ' ' 15120000
|| IXNAME 15130000
|| ' ' 15140000
|| TBNAME 15150000
|| ' ' 15160000
|| 'IndexRule=Unique' 15170000
, 'EN1PART_MIS=' 15180000
|| CASE WHEN EN1PART = -1 15190000
THEN 'NOK' 15200000
ELSE 'OK' 15210000
END 15220000
|| ';' 15230000
|| 'EA1STRN_MIS=' 15240000
|| CASE WHEN EA1STRN = -1 15250000
THEN 'NOK' 15260000
ELSE 'OK' 15270000
END 15280000
|| ';' 15290000
|| 'EN1STK1_MIS=' 15300000
|| CASE WHEN EN1STK1 = -1 15310000
THEN 'NOK' 15320000
ELSE 'OK' 15330000
END 15340000
|| ';' 15350000
|| 'EN1STK2_MIS=' 15360000
|| CASE WHEN EN1STK2 = -1 15370000
THEN 'NOK' 15380000
ELSE 'OK' 15390000
END 15400000
|| ';' 15410000
|| 'EN1PART_WPOS=' 15420000
|| CASE WHEN EN1PART = 4 15430000
THEN 'OK' 15440000
ELSE 'NOK' 15450000
END 15460000
|| ';' 15470000
|| 'EA1STRN_WPOS=' 15480000
|| CASE WHEN EA1STRN = 1 15490000
THEN 'OK' 15500000
ELSE 'NOK' 15510000
END 15520000
|| ';' 15530000
|| 'EN1STK1_WPOS=' 15540000
|| CASE WHEN EN1STK1 = 2 15550000
THEN 'OK' 15560000
ELSE 'NOK' 15570000
END 15580000
|| ';' 15590000
|| 'EN1STK2_WPOS=' 15600000
|| CASE WHEN EN1STK2 = 3 15610000
THEN 'OK' 15620000
ELSE 'NOK' 15630000
END 15640000
|| ';' 15650000
|| 'CLUSTER_DEF=' 15660000
|| CASE CLUSTERING 15670000
WHEN 'Y' THEN 'OK' 15680000
ELSE 'NOK' 15690000
END 15700000
|| ';' 15710000
|| 'TooManyCols=' 15720000
|| CASE MAXCOL 15730000
WHEN 4 THEN 'OK' 15740000
ELSE 'NOK' 15750000
END 15760000
|| ';' 15770000
, CREATEDTS 15780000
FROM IXLST 15790000
WHERE ELAR_TYPE = 'BODY' 15800000
AND UNIQUERULE IN (SELECT INDEXTYPE 15810000
FROM IXTYPE_UNIQUE 15820000
) 15830000
AND SUBSTR(DATABASE,1,2) = 'XB' 15840000
UNION ALL 15850000
SELECT FAMILY 15860000
, COMMENT 15870000
, CAST(DATABASE AS CHAR(08)) 15880000
|| ' ' 15890000
|| IXNAME 15900000
|| ' ' 15910000
|| TBNAME 15920000
|| ' ' 15930000
|| 'IndexRule=Unique' 15940000
, 'EN1PART_MIS=' 15950000
|| CASE WHEN EN1PART = -1 15960000
THEN 'NOK' 15970000
ELSE 'OK' 15980000
END 15990000
|| ';' 16000000
|| 'EA1ATRN_MIS=' 16010000
|| CASE WHEN EA1ATRN = -1 16020000
THEN 'NOK' 16030000
ELSE 'OK' 16040000
END 16050000
|| ';' 16060000
|| 'EN1PART_WPOS=' 16070000
|| CASE WHEN EN1PART = 2 16080000
THEN 'OK' 16090000
ELSE 'NOK' 16100000
END 16110000
|| ';' 16120000
|| 'EA1ATRN_MIS=' 16130000
|| CASE WHEN EA1ATRN = 1 16140000
THEN 'OK' 16150000
ELSE 'NOK' 16160000
END 16170000
|| ';' 16180000
|| 'CLUSTER_DEF=' 16190000
|| CASE CLUSTERING 16200000
WHEN 'N' THEN 'OK' 16210000
ELSE 'NOK' 16220000
END 16230000
|| ';' 16240000
|| 'TooManyCols=' 16250000
|| CASE MAXCOL 16260000
WHEN 2 THEN 'OK' 16270000
ELSE 'NOK' 16280000
END 16290000
|| ';' 16300000
, CREATEDTS 16310000
FROM IXLST 16320000
WHERE ELAR_TYPE = 'MULTIPLE' 16330000
AND UNIQUERULE IN (SELECT INDEXTYPE 16340000
FROM IXTYPE_UNIQUE 16350000
) 16360000
AND SUBSTR(DATABASE,1,2) = 'XB' 16370000
UNION ALL 16380000
SELECT FAMILY 16390000
, COMMENT 16400000
, CAST(DATABASE AS CHAR(08)) 16410000
|| ' ' 16420000
|| IXNAME 16430000
|| ' ' 16440000
|| TBNAME 16450000
|| ' ' 16460000
|| 'IndexRule=Unique' 16470000
, 'EN1PART_MIS=' 16480000
|| CASE WHEN EN1PART = -1 16490000
THEN 'NOK' 16500000
ELSE 'OK' 16510000
END 16520000
|| ';' 16530000
|| 'EATRNVON_MIS=' 16540000
|| CASE WHEN EATRNVON = -1 16550000
THEN 'NOK' 16560000
ELSE 'OK' 16570000
END 16580000
|| ';' 16590000
|| 'EATRNBIS_MIS=' 16600000
|| CASE WHEN EATRNBIS = -1 16610000
THEN 'NOK' 16620000
ELSE 'OK' 16630000
END 16640000
|| ';' 16650000
|| 'EN1PART_WPOS=' 16660000
|| CASE WHEN EN1PART = 3 16670000
THEN 'OK' 16680000
ELSE 'NOK' 16690000
END 16700000
|| ';' 16710000
|| 'EATRNVON_WPOS=' 16720000
|| CASE WHEN EATRNVON = 1 16730000
THEN 'OK' 16740000
ELSE 'NOK' 16750000
END 16760000
|| ';' 16770000
|| 'EATRNBIS_MIS=' 16780000
|| CASE WHEN EATRNBIS = 2 16790000
THEN 'OK' 16800000
ELSE 'NOK' 16810000
END 16820000
|| ';' 16830000
|| 'TooManyCols=' 16840000
|| CASE MAXCOL 16850000
WHEN 3 THEN 'OK' 16860000
ELSE 'NOK' 16870000
END 16880000
|| ';' 16890000
|| 'CLUSTER_DEF=' 16900000
|| CASE CLUSTERING 16910000
WHEN 'N' THEN 'OK' 16920000
ELSE 'NOK' 16930000
END 16940000
|| ';' 16950000
, CREATEDTS 16960000
FROM IXLST 16970000
WHERE ELAR_TYPE = 'SIGNATUR' 16980000
AND UNIQUERULE IN (SELECT INDEXTYPE 16990000
FROM IXTYPE_UNIQUE 17000000
) 17010000
AND SUBSTR(DATABASE,1,2) = 'XB' 17020000
UNION ALL 17030000
SELECT FAMILY 17040000
, COMMENT 17050000
, CAST(DATABASE AS CHAR(08)) 17060000
|| ' ' 17070000
|| IXNAME 17080000
|| ' ' 17090000
|| TBNAME 17100000
|| ' ' 17110000
|| 'IndexRule=Duplicate' 17120000
, 'EN1PART_FAIL=' 17130000
|| CASE WHEN EN1PART > -1 17140000
THEN 'NOK' 17150000
ELSE 'OK' 17160000
END 17170000
|| ';' 17180000
|| 'EA1ATRN_MIS=' 17190000
|| CASE WHEN EA1ATRN = -1 17200000
THEN 'NOK' 17210000
ELSE 'OK' 17220000
END 17230000
|| ';' 17240000
|| 'EA1ATRN_WPOS=' 17250000
|| CASE WHEN EA1ATRN = 1 17260000
THEN 'NOK' 17270000
ELSE 'OK' 17280000
END 17290000
|| ';' 17300000
|| 'TooManyCols=' 17310000
|| CASE MAXCOL 17320000
WHEN 1 THEN 'OK' 17330000
ELSE 'NOK' 17340000
END 17350000
|| ';' 17360000
|| 'CLUSTER_DEF=' 17370000
|| CASE CLUSTERING 17380000
WHEN 'Y' THEN 'OK' 17390000
ELSE 'NOK' 17400000
END 17410000
|| ';' 17420000
, CREATEDTS 17430000
FROM IXLST 17440000
WHERE ELAR_TYPE = 'MULTIPLE' 17450000
AND UNIQUERULE IN (SELECT INDEXTYPE 17460000
FROM IXTYPE_UNIQUE 17470000
) 17480000
AND SUBSTR(DATABASE,1,2) = 'XB' 17490000
UNION ALL 17500000
SELECT FAMILY 17510000
, COMMENT 17520000
, CAST(DATABASE AS CHAR(08)) 17530000
|| ' ' 17540000
|| IXNAME 17550000
|| ' ' 17560000
|| TBNAME 17570000
|| ' ' 17580000
|| 'IndexRule=Duplicate' 17590000
, 'EN1PART_FIAL=' 17600000
|| CASE WHEN EN1PART > -1 17610000
THEN 'NOK' 17620000
ELSE 'OK' 17630000
END 17640000
|| ';' 17650000
|| 'EATRNVON_MIS=' 17660000
|| CASE WHEN EATRNVON = -1 17670000
THEN 'NOK' 17680000
ELSE 'OK' 17690000
END 17700000
|| ';' 17710000
|| 'EATRNBIS_MIS=' 17720000
|| CASE WHEN EATRNBIS = -1 17730000
THEN 'NOK' 17740000
ELSE 'OK' 17750000
END 17760000
|| ';' 17770000
|| 'EATRNVON_WPOS=' 17780000
|| CASE WHEN EATRNVON = 1 17790000
THEN 'OK' 17800000
ELSE 'NOK' 17810000
END 17820000
|| ';' 17830000
|| 'EATRNBIS_MIS=' 17840000
|| CASE WHEN EATRNBIS = 2 17850000
THEN 'OK' 17860000
ELSE 'NOK' 17870000
END 17880000
|| ';' 17890000
|| 'TooManyCols=' 17900000
|| CASE MAXCOL 17910000
WHEN 2 THEN 'OK' 17920000
ELSE 'NOK' 17930000
END 17940000
|| ';' 17950000
|| 'CLUSTER_DEF=' 17960000
|| CASE CLUSTERING 17970000
WHEN 'Y' THEN 'OK' 17980000
ELSE 'NOK' 17990000
END 18000000
|| ';' 18010000
, CREATEDTS 18020000
FROM IXLST 18030000
WHERE ELAR_TYPE = 'SIGNATUR' 18040000
AND UNIQUERULE IN (SELECT INDEXTYPE 18050000
FROM IXTYPE_UNIQUE 18060000
) 18070000
AND SUBSTR(DATABASE,1,2) = 'XB' 18080000
UNION ALL 18090000
SELECT FAMILY 18100000
, COMMENT 18110000
, CAST(DATABASE AS CHAR(08)) 18120000
|| ' ' 18130000
|| IXNAME 18140000
|| ' ' 18150000
|| TBNAME 18160000
|| ' ' 18170000
|| 'IndexRule=Unknown' 18180000
, 'Index_Rule=NOK;' 18190000
, CREATEDTS 18200000
FROM IXLST 18210000
WHERE ELAR_TYPE = 'unknown ' 18220000
AND SUBSTR(DATABASE,1,2) = 'XB' 18230000
) 18240000
SELECT GENERATE_UNIQUE() 18250000
, '5Index Option Check' 18260000
, FAMILY 18270000
, COMMENT 18280000
, OBJECT 18290000
, OPTVALUE 18300000
, CREATEDTS 18310000
FROM RXI 18320000
ORDER BY FAMILY 18330000
, OBJECT 18340000
; 18350000
INSERT INTO SESSION.TEMP 18360000
SELECT GENERATE_UNIQUE() 18370000
, '6ELAR meta data mismatch' 18380000
, FAMILY 18390000
, ' ' 18400000
, FAMILY 18410000
, 'NoDatabaseExists=NOK;' 18420000
, '0001-01-01-00.00.00.000000' 18430000
FROM SESSION.FAMLISTE 18440000
WHERE STORAR_N IS NULL 18450000
AND ENSEG_N IS NULL 18460000
AND SUBSTR(DBNAME,1,3) <> 'DXB' 18470000
AND SUBSTR(FAMILY,1,1) <> '?' 18480000
UNION ALL 18490000
SELECT GENERATE_UNIQUE() 18500000
, '7ELAR meta data mismatch' 18510000
, DBNAME 18520000
, ' ' 18530000
, DBNAME 18540000
, 'DatabaseNoFamily=NOK;' 18550000
, '0001-01-01-00.00.00.000000' 18560000
FROM SESSION.FAMLISTE 18570000
WHERE DBNAME NOT IN (SELECT STORAR 18580000
FROM SESSION.ELAR 18590000
) 18600000
AND SUBSTR(DBNAME,1,1) <> '?' 18610000
; 18620000
DECLARE GLOBAL TEMPORARY TABLE PARMVALUE 18630000
( OPTION CHAR(025) 18640000
, VALUE CHAR(120) 18650000
, SUBORD INTEGER 18660000
) 18670000
; 18680000
INSERT INTO SESSION.PARMVALUE 18690000
VALUES ( 'InfoTCP' 18700000
, 'Info: Table Controlled Partition' 18710000
, 0 18720000
) 18730000
; 18740000
INSERT INTO SESSION.PARMVALUE 18750000
VALUES ( 'NPI' 18760000
, 'on partitioned Object (table/Index) ' 18770000
|| 'not allowed' 18780000
, 0 18790000
) 18800000
; 18810000
INSERT INTO SESSION.PARMVALUE 18820000
VALUES ( 'InfoTSS' 18830000
, 'Info: Segmented or Simple Table' 18840000
, 0 18850000
) 18860000
; 18870000
INSERT INTO SESSION.PARMVALUE 18880000
VALUES ( 'InfoICP' 18890000
, 'Info: Index Controlled Partition' 18900000
, 0 18910000
) 18920000
; 18930000
INSERT INTO SESSION.PARMVALUE 18940000
VALUES ( 'InfoNPI' 18950000
, 'Info: Non partitioned Index' 18960000
, 0 18970000
) 18980000
; 18990000
INSERT INTO SESSION.PARMVALUE 19000000
VALUES ( 'StorageGroup' 19010000
, 'GSMS1, GSMS2, GSMS3 or GSMS4 for XB Databases ' 19020000
|| 'GSMS for ELAR Metadata allowed' 19030000
, 3 19040000
) 19050000
; 19060000
INSERT INTO SESSION.PARMVALUE 19070000
VALUES ( 'Bufferpool_DB' 19080000
,'BP2 allowed on Datasbase definition level' 19090000
, 0 19100000
) 19110000
; 19120000
INSERT INTO SESSION.PARMVALUE 19130000
VALUES ( 'Bufferpool_DB_IX' 19140000
,'BP1 allowed on Datasbase definition level' 19150000
, 1 19160000
) 19170000
; 19180000
INSERT INTO SESSION.PARMVALUE 19190000
VALUES ( 'Bufferpool_TS' 19200000
,'Only BP2, BP8 and BP32K allowed for Tablespaces' 19210000
, 2 19220000
) 19230000
; 19240000
INSERT INTO SESSION.PARMVALUE 19250000
VALUES ( 'Bufferpool_SHS' 19260000
,'Only BP32K for this Tablespaces allowed' 19270000
, 2 19280000
) 19290000
; 19300000
INSERT INTO SESSION.PARMVALUE 19310000
VALUES ( 'Bufferpool_LOB' 19320000
,'Only BP8 for LOB Tablespaces allowed' 19330000
, 2 19340000
) 19350000
; 19360000
INSERT INTO SESSION.PARMVALUE 19370000
VALUES ( 'IndexBufferpool', 'BP1' 19380000
, 3 19390000
) 19400000
; 19410000
INSERT INTO SESSION.PARMVALUE 19420000
VALUES ( 'EncodingScheme', 'EBCDIC' 19430000
, 4 19440000
) 19450000
; 19460000
INSERT INTO SESSION.PARMVALUE 19470000
VALUES ( 'Groupbufferpool', 'Changed' 19480000
, 5 19490000
) 19500000
; 19510000
INSERT INTO SESSION.PARMVALUE 19520000
VALUES ( 'LOB Bufferpool', 'BP8' 19530000
, 6 19540000
) 19550000
; 19560000
INSERT INTO SESSION.PARMVALUE 19570000
VALUES ( 'Trackmode', 'No', 10 19580000
) 19590000
; 19600000
INSERT INTO SESSION.PARMVALUE 19610000
VALUES ( 'LoggedOption', 'Yes', 11 19620000
) 19630000
; 19640000
INSERT INTO SESSION.PARMVALUE 19650000
VALUES ( 'DSSIZE' 19660000
, 'DSSIZE must be 16GB. No other values allowed' 19670000
, 12 19680000
) 19690000
; 19700000
INSERT INTO SESSION.PARMVALUE 19710000
VALUES ( 'Locksize', 'Any', 13 19720000
) 19730000
; 19740000
INSERT INTO SESSION.PARMVALUE 19750000
VALUES ( 'LockMax', 'System', 14 19760000
) 19770000
; 19780000
INSERT INTO SESSION.PARMVALUE 19790000
VALUES ( 'CloseOption', 'Yes', 17 19800000
) 19810000
; 19820000
INSERT INTO SESSION.PARMVALUE 19830000
VALUES ( 'TblCompressOption', 'Yes', 27 19840000
) 19850000
; 19860000
INSERT INTO SESSION.PARMVALUE 19870000
VALUES ( 'IdxCompressOption', 'No', 29 19880000
) 19890000
; 19900000
INSERT INTO SESSION.PARMVALUE 19910000
VALUES ( 'PrimaryQuantity', 'Only value -1 allowed' 19920000
, 8 19930000
) 19940000
; 19950000
INSERT INTO SESSION.PARMVALUE 19960000
VALUES ( 'SecondaryQuantity', 'Only value -1 allowed' 19970000
, 9 19980000
) 19990000
; 20000000
INSERT INTO SESSION.PARMVALUE 20010000
VALUES ( 'DefineOption', 'Yes', 23 20020000
) 20030000
; 20040000
INSERT INTO SESSION.PARMVALUE 20050000
VALUES ( 'MaxRowsPerPage', '255', 24 20060000
) 20070000
; 20080000
INSERT INTO SESSION.PARMVALUE 20090000
VALUES ( 'Audit', 'None', 18 20100000
) 20110000
; 20120000
INSERT INTO SESSION.PARMVALUE 20130000
VALUES ( 'DataCapture', 'None', 19 20140000
) 20150000
; 20160000
INSERT INTO SESSION.PARMVALUE 20170000
VALUES ( 'RestrictOnDrop' 20180000
, 'Missing Option With Restrict on Drop' 20190000
, 20 20200000
) 20210000
; 20220000
INSERT INTO SESSION.PARMVALUE 20230000
VALUES ( 'Volatile', 'correct value is Yes', 21 20240000
) 20250000
; 20260000
INSERT INTO SESSION.PARMVALUE 20270000
VALUES ( 'Append', 'Current value is not YES', 22 20280000
) 20290000
; 20300000
INSERT INTO SESSION.PARMVALUE 20310000
VALUES ( 'PartKeyName', 'EN1PART', 30 20320000
) 20330000
; 20340000
INSERT INTO SESSION.PARMVALUE 20350000
VALUES ( 'PartKeyType', 'Integer', 31 20360000
) 20370000
; 20380000
INSERT INTO SESSION.PARMVALUE 20390000
VALUES ( 'PartKeyPosition', 'First Column of Table', 32 20400000
) 20410000
; 20420000
INSERT INTO SESSION.PARMVALUE 20430000
VALUES ( 'EN1PART_MIS' 20440000
, 'EN1PART missing in Index', 33 20450000
) 20460000
; 20470000
INSERT INTO SESSION.PARMVALUE 20480000
VALUES ( 'EA1ARTN_MIS' 20490000
, 'EA1ATRN missing in Index', 33 20500000
) 20510000
; 20520000
INSERT INTO SESSION.PARMVALUE 20530000
VALUES ( 'EA1SRTN_MIS' 20540000
, 'EA1STRN missing in Index', 33 20550000
) 20560000
; 20570000
INSERT INTO SESSION.PARMVALUE 20580000
VALUES ( 'EN1STK1_MIS' 20590000
, 'EN1STK1 missing in Index', 33 20600000
) 20610000
; 20620000
INSERT INTO SESSION.PARMVALUE 20630000
VALUES ( 'EN1STK2_MIS' 20640000
, 'EN1STK2 missing in Index', 33 20650000
) 20660000
; 20670000
INSERT INTO SESSION.PARMVALUE 20680000
VALUES ( 'EATRNVON_MIS' 20690000
, 'EATRNVON missing in Index', 33 20700000
) 20710000
; 20720000
INSERT INTO SESSION.PARMVALUE 20730000
VALUES ( 'EATRNBIS_MIS' 20740000
, 'EATRNBIS missing in Index', 33 20750000
) 20760000
; 20770000
INSERT INTO SESSION.PARMVALUE 20780000
VALUES ( 'EN1PART_WPOS' 20790000
, 'EN1PART wrong position in index', 33 20800000
) 20810000
; 20820000
INSERT INTO SESSION.PARMVALUE 20830000
VALUES ( 'EA1ARTN_WPOS' 20840000
, 'EA1ATRN wrong position in index', 33 20850000
) 20860000
; 20870000
INSERT INTO SESSION.PARMVALUE 20880000
VALUES ( 'EA1SRTN_WPOS' 20890000
, 'EA1STRN wrong position in index', 33 20900000
) 20910000
; 20920000
INSERT INTO SESSION.PARMVALUE 20930000
VALUES ( 'EN1STK1_WPOS' 20940000
, 'EN1STK1 wrong position in index', 33 20950000
) 20960000
; 20970000
INSERT INTO SESSION.PARMVALUE 20980000
VALUES ( 'EN1STK2_WPOS' 20990000
, 'EN1STK2 wrong position in index', 33 21000000
) 21010000
; 21020000
INSERT INTO SESSION.PARMVALUE 21030000
VALUES ( 'EATRNVON_WPOS' 21040000
, 'EATRNVO wrong position in index', 33 21050000
) 21060000
; 21070000
INSERT INTO SESSION.PARMVALUE 21080000
VALUES ( 'EATRNBIS_WPOS' 21090000
, 'EATRNBIS wrong position in index', 33 21100000
) 21110000
; 21120000
INSERT INTO SESSION.PARMVALUE 21130000
VALUES ( 'EN1PART_FAIL' 21140000
, 'EN1PART not allowed for the index', 34 21150000
) 21160000
; 21170000
INSERT INTO SESSION.PARMVALUE 21180000
VALUES ( 'CLUSTER_DEF' 21190000
, 'Cluster definition not allowed, wrong context', 35 21200000
) 21210000
; 21220000
INSERT INTO SESSION.PARMVALUE 21230000
VALUES ( 'TooManyCols' 21240000
, 'Number of key columns not correct. Number depends' 21250000
||'on ELAR table type' 21260000
, 35 21270000
) 21280000
; 21290000
INSERT INTO SESSION.PARMVALUE 21300000
VALUES ( 'TablePartLimit', 'Partition limit exceeded (' || 21310000
(SELECT STRIP(CAST(MAXPART AS 21320000
CHAR(06) 21330000
) 21340000
) 21350000
FROM SESSION.MAXPART 21360000
WHERE PARTYPE = 'Table' 21370000
) || ' Partition allowed)' 21380000
, 39 21390000
) 21400000
; 21410000
INSERT INTO SESSION.PARMVALUE 21420000
VALUES ( 'IndexPartLimit', 'Maximum of ' || 21430000
(SELECT CAST(MAXPART AS CHAR(06)) 21440000
FROM SESSION.MAXPART 21450000
WHERE PARTYPE = 'Index' 21460000
) || ' Partition exceeded ' 21470000
, 40 21480000
) 21490000
; 21500000
INSERT INTO SESSION.PARMVALUE 21510000
VALUES ( 'PartKeyValue(s)' 21520000
, 'only natural Numbers and one value allowed' 21530000
, 34 21540000
) 21550000
; 21560000
INSERT INTO SESSION.PARMVALUE 21570000
VALUES ( 'PartKeyColNum' 21580000
, 'Wrong partitioning, use classic partitioning' 21590000
, 35 21600000
) 21610000
; 21620000
INSERT INTO SESSION.PARMVALUE 21630000
VALUES ( 'Indextype' 21640000
, 'Unique DPSI, when Primary Index all other are DPSI' 21650000
, 28 21660000
) 21670000
; 21680000
INSERT INTO SESSION.PARMVALUE 21690000
VALUES ( 'Pagesize' 21700000
, 'Pagesize Tablespace <> Pagesize Indexspace' 21710000
, 16 21720000
) 21730000
; 21740000
INSERT INTO SESSION.PARMVALUE 21750000
VALUES ( 'FreePage' 21760000
, 'Value must be 0 for technical/business indexes' 21770000
, 7 21780000
) 21790000
; 21800000
INSERT INTO SESSION.PARMVALUE 21810000
VALUES ( 'TSFreepage' 21820000
, 'Value is not 0' 21830000
, 7 21840000
) 21850000
; 21860000
INSERT INTO SESSION.PARMVALUE 21870000
VALUES ( 'PctFree_Business' 21880000
, 'Value must be 10 for business Indexes' 21890000
, 6 21900000
) 21910000
; 21920000
INSERT INTO SESSION.PARMVALUE 21930000
VALUES ( 'PctFree_Technical' 21940000
, 'Value must be 0 for technical indexes' 21950000
, 6 21960000
) 21970000
; 21980000
INSERT INTO SESSION.PARMVALUE 21990000
VALUES ( 'TSPctfree' 22000000
, 'Value is not 0' 22010000
, 6 22020000
) 22030000
; 22040000
INSERT INTO SESSION.PARMVALUE 22050000
VALUES ( 'Copy', 'No', 26 22060000
) 22070000
; 22080000
INSERT INTO SESSION.PARMVALUE 22090000
VALUES ( 'No Index exists' 22100000
, 'verify and implement an Index. Access path for all ' 22110000
|| 'queries are Tablespace Scans| (Proof Monitor)' 22120000
, 50 22130000
) 22140000
; 22150000
INSERT INTO SESSION.PARMVALUE 22160000
VALUES ( 'IndexType_Failure' 22170000
, 'Only index type DPSI (D), Unique (U) and ' 22180000
|| 'Primary (P) are allowed' 22190000
, 50 22200000
) 22210000
; 22220000
INSERT INTO SESSION.PARMVALUE 22230000
VALUES ( 'EN1PART_MIS' 22240000
, 'Missing EN1PART. Must be part of PRIMARY ' 22250000
|| 'or UNIQUE INDEX (see Guideline 01.07.2013' 22260000
, 51 22270000
) 22280000
; 22290000
INSERT INTO SESSION.PARMVALUE 22300000
VALUES ( 'Index_Rule' 22310000
, 'no rules are defined. REASON: Unknown ELAR ' 22320000
|| 'table type (not documented, experimental type' 22330000
, 53 22340000
) 22350000
; 22360000
INSERT INTO SESSION.PARMVALUE 22370000
VALUES ( 'NoDatabaseExists' 22380000
, 'No DB2 Objects exists for DDL Check' 22390000
, 0 22400000
) 22410000
; 22420000
INSERT INTO SESSION.PARMVALUE 22430000
VALUES ( 'DatabaseNoFamily' 22440000
, 'DB2 Objects exists but no ELAR Meta data available' 22450000
, 0 22460000
) 22470000
; 22480000
-- Preperation of result list splitting complete string into option name22490000
-- and option value. Options separated by semicolon. Option and value 22500000
-- separated by equal sign. Elimination of duplicate entries and store 22510000
-- only entries with NOK in temporary table exception. 22520000
DECLARE GLOBAL TEMPORARY TABLE EXCEPTION 22530000
( OBJECT CHAR(60) 22540000
, OPTION CHAR(24) 22550000
, CORRECT_VALUES CHAR(120) 22560000
, FAMILY CHAR(30) 22570000
, CRITERIA CHAR(30) 22580000
, OPTIONNUM INTEGER 22590000
, SUBORD INTEGER 22600000
, COMMENT CHAR(20) 22610000
, OVALUE CHAR(03) 22620000
, CREATEDTS TIMESTAMP(6) 22630000
) 22640000
; 22650000
INSERT INTO SESSION.EXCEPTION ( 22660000
OBJECT 22670000
, OPTION 22680000
, CORRECT_VALUES 22690000
, FAMILY 22700000
, CRITERIA 22710000
, OPTIONNUM 22720000
, SUBORD 22730000
, COMMENT 22740000
, OVALUE 22750000
, CREATEDTS 22760000
) 22770000
WITH RESULT ( SNUM 22780000
, CRITERIA 22790000
, FAMILY 22800000
, OBJECT 22810000
, OPTIONNUM 22820000
, OPTION 22830000
, OVALUE 22840000
, CHECKVALUE 22850000
, COMMENT 22860000
, CREATEDTS 22870000
) 22880000
AS (SELECT T0.SNUM 22890000
, T0.CRITERIA 22900000
, T0.FAMILY 22910000
, T0.OBJECT 22920000
, 1 22930000
, CASE WHEN LOCATE('=', T0.OPTVALUE) > 0 22940000
THEN SUBSTR( T0.OPTVALUE 22950000
, 1 22960000
, LOCATE('=', T0.OPTVALUE) - 1 22970000
) 22980000
ELSE OPTVALUE 22990000
END AS OPTION 23000000
, CASE WHEN LOCATE('=', T0.OPTVALUE) > 0 23010000
THEN SUBSTR( T0.OPTVALUE 23020000
, LOCATE('=', T0.OPTVALUE) + 1 23030000
, LOCATE(';', T0.OPTVALUE) - 23040000
LOCATE('=', T0.OPTVALUE) - 1 23050000
) 23060000
ELSE OPTVALUE 23070000
END AS OVALUE 23080000
, CASE WHEN LOCATE(';', T0.OPTVALUE) > 0 23090000
THEN SUBSTR( T0.OPTVALUE 23100000
, LOCATE(';', T0.OPTVALUE) + 1 23110000
) 23120000
ELSE NULL 23130000
END AS OPTVALUE 23140000
, T0.COMMENT 23150000
, T0.CREATEDTS 23160000
FROM SESSION.TEMP T0 23170000
UNION ALL 23180000
SELECT T1.SNUM 23190000
, T1.CRITERIA 23200000
, T1.FAMILY 23210000
, T1.OBJECT 23220000
, T1.OPTIONNUM + 1 23230000
, CASE WHEN LOCATE('=', T1.CHECKVALUE) > 0 23240000
THEN SUBSTR( T1.CHECKVALUE 23250000
, 1 23260000
, LOCATE('=', T1.CHECKVALUE) - 1 23270000
) 23280000
ELSE CHECKVALUE 23290000
END AS OPTION 23300000
, CASE WHEN LOCATE('=', T1.CHECKVALUE) > 0 23310000
THEN CASE WHEN LOCATE(';', T1.CHECKVALUE) > 0 23320000
THEN SUBSTR( T1.CHECKVALUE 23330000
, LOCATE('=', T1.CHECKVALUE) 23340000
+ 1 23350000
, LOCATE(';', T1.CHECKVALUE) 23360000
- LOCATE('=', T1.CHECKVALUE) 23370000
- 1 23380000
) 23390000
ELSE SUBSTR( T1.CHECKVALUE 23400000
, LOCATE('=', T1.CHECKVALUE) 23410000
+ 1 23420000
) 23430000
END 23440000
ELSE CHECKVALUE 23450000
END AS OVALUE 23460000
, CASE WHEN LOCATE(';', T1.CHECKVALUE) > 0 23470000
THEN SUBSTR( T1.CHECKVALUE 23480000
, LOCATE(';', T1.CHECKVALUE) + 1 23490000
) 23500000
ELSE NULL 23510000
END AS OPTVALUE 23520000
, T1.COMMENT 23530000
, T1.CREATEDTS 23540000
FROM RESULT T1 23550000
WHERE T1.CHECKVALUE IS NOT NULL 23560000
) 23570000
SELECT DISTINCT 23580000
RE.OBJECT 23590000
, CAST(RE.OPTION AS CHAR(24)) AS OPTION 23600000
, PV.VALUE AS CORRECT_VALUES 23610000
, RE.FAMILY 23620000
, RE.CRITERIA 23630000
, RE.OPTIONNUM 23640000
, PV.SUBORD 23650000
, RE.COMMENT 23660000
, RE.OVALUE 23670000
, RE.CREATEDTS 23680000
FROM RESULT RE 23690000
INNER JOIN SESSION.PARMVALUE PV 23700000
ON RE.OPTION = PV.OPTION 23710000
WHERE RE.OVALUE = 'NOK' 23720000
; 23730000
-- 23740000
-- Generate final message. Three different message possible: 23750000
-- (1) Database not found => Database not created and 23760000
-- (2) No failures found => All check passed without failures 23770000
-- (3) Failuers found => Not all ckecks passed without failures 23780000
-- 23790000
INSERT INTO SESSION.EXCEPTION ( 23800000
OBJECT 23810000
, OPTION 23820000
, CORRECT_VALUES 23830000
, FAMILY 23840000
, CRITERIA 23850000
, OPTIONNUM 23860000
, SUBORD 23870000
, COMMENT 23880000
, OVALUE 23890000
, CREATEDTS 23900000
) 23910000
SELECT 'Database not found => no check possible' 23920000
, ' ' 23930000
, ' ' 23940000
, ' ' 23950000
, ' ' 23960000
, -100 23970000
, -100 23980000
, ' ' 23990000
, ' ' 24000000
, '0001-01-01-00.00.00.000000' 24010000
FROM SYSIBM.SYSDUMMY1 24020000
WHERE (SELECT COUNT(*) 24030000
FROM SESSION.FAMLISTE FAM 24040000
INNER JOIN SYSIBM.SYSDATABASE DB 24050000
ON FAM.DBNAME = DB.NAME 24060000
) = 0 24070000
; 24080000
INSERT INTO SESSION.EXCEPTION ( 24090000
OBJECT 24100000
, OPTION 24110000
, CORRECT_VALUES 24120000
, FAMILY 24130000
, CRITERIA 24140000
, OPTIONNUM 24150000
, SUBORD 24160000
, COMMENT 24170000
, OVALUE 24180000
, CREATEDTS 24190000
) 24200000
SELECT 'No failures found' 24210000
, ' ' 24220000
, ' ' 24230000
, ' ' 24240000
, ' ' 24250000
, -101 24260000
, -101 24270000
, ' ' 24280000
, ' ' 24290000
, '0001-01-01-00.00.00.000000' 24300000
FROM SYSIBM.SYSDUMMY1 24310000
WHERE (SELECT COUNT(*) FROM SESSION.EXCEPTION) = 0 24320000
; 24330000
INSERT INTO SESSION.EXCEPTION ( 24340000
OBJECT 24350000
, OPTION 24360000
, CORRECT_VALUES 24370000
, FAMILY 24380000
, CRITERIA 24390000
, OPTIONNUM 24400000
, SUBORD 24410000
, COMMENT 24420000
, OVALUE 24430000
, CREATEDTS 24440000
) 24450000
SELECT 'Failure found, send list to elar' 24460000
, ' ' 24470000
, ' ' 24480000
, ' ' 24490000
, ' ' 24500000
, 0 24510000
, 0 24520000
, ' ' 24530000
, ' ' 24540000
, '0001-01-01-00.00.00.000000' 24550000
FROM SYSIBM.SYSDUMMY1 24560000
WHERE (SELECT COUNT(*) 24570000
FROM SESSION.EXCEPTION 24580000
WHERE OPTIONNUM NOT IN ( -100, -101 ) 24590000
AND SUBORD NOT IN ( -100, -101 ) 24600000
) > 0 24610000
; 24620000
-- 24630000
-- Generate Report 24640000
-- DDL-Report (Display migrated families first) 24650000
-- 24660000
SELECT OBJECT 24670000
, OPTION 24680000
, CORRECT_VALUES 24690000
, FAMILY 24700000
, COMMENT 24710000
, CRITERIA 24720000
, CREATEDTS 24730000
FROM (SELECT OBJECT AS OBJECT 24740000
, OPTION AS OPTION 24750000
, CORRECT_VALUES AS CORRECT_VALUES 24760000
, CASE WHEN SUBSTR(FAMILY,1,3) = 'FAM' 24770000
THEN ( SELECT UCASE(EAOF) 24780000
FROM BUA.TXBA131 24790000
WHERE ENOF = CAST( SUBSTR(T1.FAMILY,4,4) 24800000
AS INT 24810000
) - 1000 24820000
) 24830000
ELSE FAMILY 24840000
END AS FAMILY 24850000
, COMMENT AS COMMENT 24860000
, CRITERIA AS CRITERIA 24870000
, CREATEDTS AS CREATEDTS 24880000
, ORD0 24890000
, ORD1 24900000
, ORD2 24910000
, ORD3 24920000
FROM (SELECT OBJECT 24930000
, CASE WHEN LOCATE('_', OPTION) > 0 24940000
THEN SUBSTR( OPTION 24950000
, 1 24960000
, LOCATE('_',OPTION) - 1 24970000
) 24980000
ELSE OPTION 24990000
END AS OPTION 25000000
, CORRECT_VALUES 25010000
, UCASE(FAMILY) AS FAMILY 25020000
, SUBSTR(CRITERIA,2) AS CRITERIA 25030000
, SUBSTR(CRITERIA,1,1) AS ORD1 25040000
, LENGTH(STRIP(OBJECT)) AS ORD2 25050000
, SUBORD AS ORD3 25060000
, COMMENT 25070000
, CASE WHEN COMMENT <> ' ' 25080000
THEN 0 25090000
ELSE 1 25100000
END AS ORD0 25110000
, CHECK 25120000
, CREATEDTS 25130000
FROM (SELECT OVALUE AS CHECK 25140000
, OBJECT 25150000
, OPTION 25160000
, CORRECT_VALUES 25170000
, FAMILY 25180000
, CRITERIA 25190000
, SUBORD 25200000
, COMMENT 25210000
, CREATEDTS 25220000
FROM SESSION.EXCEPTION 25230000
) AS T2 25240000
) AS T1 25250000
WHERE (SELECT CREATE_FROM FROM SESSION.FAMLISTE) IS NULL 25260000
AND (SELECT CREATE_TO FROM SESSION.FAMLISTE) IS NULL 25270000
UNION ALL 25280000
SELECT OBJECT AS OBJECT 25290000
, OPTION AS OPTION 25300000
, CORRECT_VALUES AS CORRECT_VALUES 25310000
, CASE WHEN SUBSTR(FAMILY,1,3) = 'FAM' 25320000
THEN ( SELECT UCASE(EAOF) 25330000
FROM BUA.TXBA131 25340000
WHERE ENOF = CAST( SUBSTR(T1.FAMILY,4,4) 25350000
AS INT 25360000
) - 1000 25370000
) 25380000
ELSE FAMILY 25390000
END AS FAMILY 25400000
, COMMENT AS COMMENT 25410000
, CRITERIA AS CRITERIA 25420000
, CREATEDTS AS CREATEDTS 25430000
, ORD0 25440000
, ORD1 25450000
, ORD2 25460000
, ORD3 25470000
FROM (SELECT OBJECT 25480000
, CASE WHEN LOCATE('_', OPTION) > 0 25490000
THEN SUBSTR( OPTION 25500000
, 1 25510000
, LOCATE('_',OPTION) - 1 25520000
) 25530000
ELSE OPTION 25540000
END AS OPTION 25550000
, CORRECT_VALUES 25560000
, UCASE(FAMILY) AS FAMILY 25570000
, SUBSTR(CRITERIA,2) AS CRITERIA 25580000
, SUBSTR(CRITERIA,1,1) AS ORD1 25590000
, LENGTH(STRIP(OBJECT)) AS ORD2 25600000
, SUBORD AS ORD3 25610000
, COMMENT 25620000
, CASE WHEN COMMENT <> ' ' 25630000
THEN 0 25640000
ELSE 1 25650000
END AS ORD0 25660000
, CHECK 25670000
, CREATEDTS 25680000
FROM (SELECT OVALUE AS CHECK 25690000
, OBJECT 25700000
, OPTION 25710000
, CORRECT_VALUES 25720000
, FAMILY 25730000
, CRITERIA 25740000
, SUBORD 25750000
, COMMENT 25760000
, CREATEDTS 25770000
FROM SESSION.EXCEPTION 25780000
) AS T2 25790000
) AS T1 25800000
WHERE (SELECT CREATE_FROM FROM SESSION.FAMLISTE) IS NOT NULL 25810000
AND (SELECT CREATE_TO FROM SESSION.FAMLISTE) IS NOT NULL 25820000
AND DATE(CREATEDTS) 25830000
>= (SELECT CREATE_FROM FROM SESSION.FAMLISTE) 25840000
AND DATE(CREATEDTS) 25850000
<= (SELECT CREATE_FROM FROM SESSION.FAMLISTE) 25860000
) AS FINAL 25870000
ORDER BY FAMILY 25880000
, ORD0 25890000
, ORD1 25900000
, ORD2 25910000
, ORD3 25920000
WITH UR 25930000
; 25940000
}¢--- A540769.WK.SQL(ELARIX) cre=2011-02-04 mod=2011-02-04-15.34.27 A540769 ----
-- find tables with columns EN1CIFINH, EN1VALOR, ET1LOGPROD
-- but no index with these columns in the beginning
-- we select these table and the best index
-- #k = number of these columns in index
--
with t (tc, tb) as
( select creator, name
from sysibm.sysTables t
where 3 = ( select count(distinct name)
from sysibm.sysColumns c
where c.tbCreator = t.creator
and c.tbName = t.name
and c.name
in ('EN1CIFINH','EN1VALOR','ET1LOGPROD')
)
)
, k (tc, tb, cr, ix, sq, ky) as
( select t.*, i.creator, i.name, 0, varchar('',100)
from t
left join sysibm.sysIndexes i
on i.tbCreator = t.tc
and i.tbName = t.tb
union all select tc, tb, cr, ix, sq+1, ky || ' ' || strip(y.colName)
from sysibm.sysKeys y, k
where y.ixCreator = k.cr
and y.ixName = k.ix
and y.colSeq = k.sq + 1
and y.colName in ('EN1CIFINH','EN1VALOR','ET1LOGPROD')
and k.sq < 999
)
select max(right(' ' || strip(char(sq)), 3) || ' '
|| left(strip(tc) || '.' || tb, 30)
|| left(strip(cr) || '.' || ix, 30)
|| ky) " #k tb best index"
from k
group by tc, tb
order by 1 asc
;
-- find tables with columns in ('EN1TRANSACTNO', 'ET1LOGPROD')
-- but no index with these columns in the beginning
-- we select these table and the best index
-- #k = number of these columns in index
--
with t (tc, tb) as
( select creator, name
from sysibm.sysTables t
where 2 = ( select count(distinct name)
from sysibm.sysColumns c
where c.tbCreator = t.creator
and c.tbName = t.name
and c.name
in ('EN1TRANSACTNO', 'ET1LOGPROD')
)
)
, k (tc, tb, cr, ix, sq, ky) as
( select t.*, i.creator, i.name, 0, varchar('',100)
from t
left join sysibm.sysIndexes i
on i.tbCreator = t.tc
and i.tbName = t.tb
union all select tc, tb, cr, ix, sq+1, ky || ' ' || strip(y.colName)
from sysibm.sysKeys y, k
where y.ixCreator = k.cr
and y.ixName = k.ix
and y.colSeq = k.sq + 1
and y.colName in ('EN1TRANSACTNO', 'ET1LOGPROD')
and k.sq < 999
)
select max(right(' ' || strip(char(sq)), 3) || ' '
|| left(strip(tc) || '.' || tb, 30)
|| left(strip(cr) || '.' || ix, 30)
|| ky) " #k tb best index"
from k
group by tc, tb
order by 1 asc
;
}¢--- A540769.WK.SQL(ELARIXOL) cre=2010-06-01 mod=2011-02-04-15.34.31 A540769 ---
-- find tables with columns EN1CIFINH, EN1VALOR, ET1LOGPROD
-- but no index with these columns in the beginning
-- we select these table and the best index
-- #k = number of these columns in index
-- sq = 100 - max(colSeq of these columns in index)
--
with ix as
( select ( select substr(
right(' '||strip(char(count(distinct k.colName))),3)
|| right(' ' || strip(char( 100-max(k.colSeq))), 3)
,1 , 6)
from SYSIBM.SYSKEYS K
where K.IXCREATOR = I.CREATOR
and K.IXNAME = I.NAME
and k.colNAME
in ('EN1CIFINH','EN1VALOR','ET1LOGPROD')
) ks, i.*
from SYSIBM.SYSINDEXES I
)
select SUBSTR(STRIP(T.CREATOR) ||'.'|| T.NAME, 1, 30) "table",
max(substr(ks || ' ' || strip(ix.creator) ||'.'|| ix.name
, 1, 40)) " #k sq bestIndex"
FROM SYSIBM.SYSTABLES T, ix
WHERE 1=1
-- and T.CREATOR = 'BUA' AND T.NAME = 'XBCGZ064PS001001'
AND 3 <= (select count(distinct c1.name)
FROM SYSIBM.SYSCOLUMNS C1
WHERE C1.NAME in ('EN1CIFINH','EN1VALOR','ET1LOGPROD')
AND C1.TBNAME = T.NAME
AND C1.TBCREATOR = T.CREATOR )
and ix.tbCreator = t.creator
and ix.tbName = t.name
group by t.creator, t.name
ORDER BY value(max(left(ks, 6)), ''), t.CREATOR, t.NAME
with ur
;
-- find tables with columns EN1TRANSACTNO, ET1LOGPROD
-- but no index with these columns in the beginning
-- we select these table and the best index
-- #k = number of these columns in index
-- sq = 100 - max(colSeq of these columns in index)
--
with ix as
( select ( select substr(
right(' '||strip(char(count(distinct k.colName))),3)
|| right(' ' || strip(char( 100-max(k.colSeq))), 3)
,1 , 6)
from SYSIBM.SYSKEYS K
where K.IXCREATOR = I.CREATOR
and K.IXNAME = I.NAME
and k.colNAME in ('EN1TRANSACTNO', 'ET1LOGPROD')
) ks, i.*
from SYSIBM.SYSINDEXES I
)
select SUBSTR(STRIP(T.CREATOR) ||'.'|| T.NAME, 1, 30) "table",
max(substr(ks || ' ' || strip(ix.creator) ||'.'|| ix.name
, 1, 40)) " #k sq bestIndex"
FROM SYSIBM.SYSTABLES T, ix
WHERE 1=1
-- and T.CREATOR = 'BUA' AND T.NAME = 'XBCGZ064PS001001'
AND 2 <= (select count(distinct c1.name)
FROM SYSIBM.SYSCOLUMNS C1
WHERE C1.NAME in ('EN1TRANSACTNO', 'ET1LOGPROD')
AND C1.TBNAME = T.NAME
AND C1.TBCREATOR = T.CREATOR )
and ix.tbCreator = t.creator
and ix.tbName = t.name
group by t.creator, t.name
ORDER BY value(max(left(ks, 6)), ''), t.CREATOR, t.NAME
with ur
;x;
-- alte Version, nur auf hdb abfragen
SELECT SUBSTR(STRIP(CREATOR) ||'.'|| STRIP(NAME),1,30)
, CREATEDTS
FROM SYSIBM.SYSTABLES T
WHERE 1=1
AND EXISTS
(SELECT 1 FROM SYSIBM.SYSCOLUMNS C1
WHERE C1.NAME = 'EN1TRANSACTNO'
AND C1.TBNAME = T.NAME
AND C1.TBCREATOR = T.CREATOR )
AND EXISTS
(SELECT 1 FROM SYSIBM.SYSCOLUMNS C2
WHERE C2.NAME = 'ET1LOGPROD'
AND C2.TBNAME = T.NAME
AND C2.TBCREATOR = T.CREATOR )
AND NOT EXISTS
(SELECT 1 FROM SYSIBM.SYSINDEXES I
WHERE I.NAME = T.NAME || '_HBD'
AND I.TBNAME = T.NAME
AND I.TBCREATOR = T.CREATOR )
-- AND T.CREATEDTS > CURRENT TIMESTAMP - 9 MONTHS
-- AND T.CREATEDTS < CURRENT TIMESTAMP - 8 MONTHS
-- AND T.NAME LIKE 'XBCVK%'
-- AND T.NAME NOT LIKE 'XBAOV007%'
ORDER BY 1
-- FETCH FIRST 10 ROWS ONLY
;
}¢--- A540769.WK.SQL(ELAR200) cre=2014-07-17 mod=2014-07-17-13.04.48 A540769 ---
SELECT DBNAME, NAME, PARTITIONS
FROM SYSIBM.SYSTABLESPACE
WHERE PARTITIONS > 200
AND DBNAME not LIKE 'XB%'
ORDER BY PARTITIONS DESC
WITH UR
;
}¢--- A540769.WK.SQL(ELCOMA2) cre=2011-03-11 mod=2011-02-11-20.11.05 A540769 ---
SET CURRENT SQLID='S100447';
--
CREATE INDEX OA1P.iElKs835A10c4
ON OA1P.telks835c4
(KS835030 ASC,
KS835040 ASC,
KS835010 ASC,
KS835080 ASC)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
NOT CLUSTER
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
COPY NO
DEFER YES
DEFINE YES
PIECESIZE 2 G;
--
--
CREATE INDEX OA1P.iElKs835A4c4
ON OA1P.telks835c4
(KS835020 ASC)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 8 PCTFREE 30
GBPCACHE CHANGED
NOT CLUSTER
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
COPY NO
DEFER YES
DEFINE YES;
--
COMMIT;
--
CREATE INDEX OA1P.iElKs835A9TEMPc4
ON OA1P.telks835c4
(KS835070 ASC)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 8 PCTFREE 30
GBPCACHE CHANGED
NOT CLUSTER
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
COPY NO
DEFER YES
DEFINE YES
PIECESIZE 2 G;
--
COMMIT;
--
CREATE INDEX OA1P.iElKs838A2c4
ON OA1P.telks838c4
(KS838080 ASC)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 8 PCTFREE 30
GBPCACHE CHANGED
NOT CLUSTER
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
COPY NO
DEFER YES
DEFINE YES;
--
COMMIT;
--
CREATE INDEX OA1P.iElKs846A4c4
ON OA1P.telks846c4
(KS846006 ASC,
KS846003 ASC)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 2 PCTFREE 50
GBPCACHE CHANGED
NOT CLUSTER
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
COPY NO
DEFER YES
DEFINE YES;
--
COMMIT;
--
}¢--- A540769.WK.SQL(ELCOMP) cre=2011-03-11 mod=2011-02-11-20.13.16 A540769 ----
-- show index with list of columns
-- plus hexKey for colDist etc.
with t (tc , tb) as
( select creator, name
from sysibm.sysTables
where Creator = 'OA1P'
and (name like 'TKS%A%' or Name like 'TELKS%')
)
, i (tc, tb, cr, ix, colC, seq, keys, kHex) as
( select tc, tb, value(creator, 'noIndex'), value(name, 'noIndex'),
colCount, 0, varchar('',999), varchar('',999)
from t left join sysibm.sysindexes i
on tbCreator = tc and tbName = tb
union all select tc, tb, cr, ix, colC, seq+1,
keys || case when length(strip(k.colName)) <= 15
then strip(k.colName)
else strip(char(k.colNo)) end || ' ',
kHex || hex(k.colNo)
from i join sysibm.sysKeys k
on k.ixCreator = i.cr and k.ixName = i.ix
and k.colSeq = i.seq + 1 and i.seq < i.colC
and i.seq < 999
)
, j as
(
select strip(tc) || '.' || strip(tb) || ' '
|| strip(cr) || '.' || strip(ix)|| ' ' || keys tx, i.*
from i
where seq = colc or colc is null
)
, e as
( select 'e' ty, tb eTb, j.*
from j where tb like 'TELKS%'
)
, k as
(
select 'k' ty, 'TELKS' || substr(tb,4,3) || 'C4' eTb, j.*
from j
where (cr, 'TELKS' || substr(tb,4,3) || 'C4')
in (select cr, tb from e)
)
select case when e.ty is null then k.ty
when k.ty is null then e.ty
else 'b' end ty,
substr(value(strip(e.tc) || '.' || strip(e.tb),
strip(k.tc) || '.' || strip(k.tb)), 1, 20) tb,
substr(value(strip(e.cr) || '.' || strip(e.ix),
strip(k.cr) || '.' || strip(k.ix)), 1, 20) ix,
value(e.keys, k.keys) keys,
e.*, k.*
from e
full join k
on e.cr = k.cr and e.eTb = k.eTb and e.keys = k.keys
order by 1 desc, 2, 3, 4
;
}¢--- A540769.WK.SQL(ELENA) cre=2012-08-28 mod=2012-08-28-11.11.20 A540769 -----
select FileGroupID
, RegisterTime
, DSNPrio
, DSNEnv
, DSNApplQual1
, DSNApplQual2
, DSNDateQual
, DSNTimeQual
, DSNSecurity
from oa1t.TPV601A1
where FileID = ?
for read only
;
select FileGroupID
, RegisterTime
, DSNPrio
, DSNEnv
, DSNApplQual1
, DSNApplQual2
, DSNDateQual
, DSNTimeQual
, DSNSecurity
into :TPV601A1_FileGroupID
, :TPV601A1_RegisterTime
, :TPV601A1_DSNPrio
, :TPV601A1_DSNEnv
, :TPV601A1_DSNApplQual1
, :TPV601A1_DSNApplQual2
, :TPV601A1_DSNDateQual
, :TPV601A1_DSNTimeQual
, :TPV601A1_DSNSecurity
from oa1t.TPV601A1
where FileID = :TPV601A1_ParentFileID
for read only
}¢--- A540769.WK.SQL(ELSER) cre= mod= ------------------------------------------
------------------------------------------------------------------------
-- --
-- Database 2 Administration Tool (DB2 Admin) , program 5697-L90 (C) --
-- --
-- ADB2GEN - Extract object definitions from the DB2 Catalog tables --
-- --
-- Input prepared on : DBAF (810) Extract time : 2006-12-12 14:29 --
-- --
-- Catalog values overridden : none
-- --
-- Generate : SG=N DB=Y TS=Y TB=Y VW=Y IX=Y SY=Y AL=Y LB=Y CM=Y FK=Y --
-- TG=Y UT=N UF=N SP=N SQ=N --
-- Grants : SG=N DB=Y TS=Y TB=N VW=N SC=N UT=N UF=N SP=N SQ=N --
-- --
------------------------------------------------------------------------
--
SET CURRENT SQLID='S100447';
------------------------------------------------------------------------
-- --
-- ADB2GEN: Generate DDL for Tablespace=S100A In Database DGDB0338 --
-- --
------------------------------------------------------------------------
--
------------------------------------------------------------------------
-- Database=CW10A1A Stogroup=GSMS
-- Tablespace=CW10A1A.A100A
------------------------------------------------------------------------
--
CREATE TABLESPACE A100A
IN CW10A1A
USING STOGROUP GSMS
PRIQTY 12 SECQTY 12
ERASE NO
FREEPAGE 0 PCTFREE 15
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 8
BUFFERPOOL BP0
LOCKSIZE PAGE
LOCKMAX 0
CLOSE YES
COMPRESS NO
CCSID EBCDIC
DEFINE YES
MAXROWS 3;
--
------------------------------------------------------------------------
-- Table=OA1A.TCW100A1 In CW10A1A.A100A
------------------------------------------------------------------------
--
CREATE TABLE OA1A.TCW100A1
(CW10000 INTEGER NOT NULL,
CW10001 CHAR(4) FOR SBCS DATA NOT NULL,
CW10002 CHAR(20) FOR SBCS DATA NOT NULL,
CW10003 CHAR(18) FOR SBCS DATA NOT NULL,
CW10004 CHAR(16) FOR SBCS DATA NOT NULL,
CW10005 CHAR(3) FOR SBCS DATA NOT NULL,
CW10006 CHAR(3) FOR SBCS DATA NOT NULL,
CW10007 CHAR(4) FOR SBCS DATA NOT NULL,
CW10008 CHAR(4) FOR SBCS DATA NOT NULL,
CW10009 TIMESTAMP NOT NULL,
CW10010 TIMESTAMP NOT NULL,
CW10011 INTEGER NOT NULL,
CW10012 INTEGER NOT NULL,
CW10013 INTEGER NOT NULL,
CW10014 CHAR(10) FOR SBCS DATA NOT NULL,
CW10015D TIMESTAMP NOT NULL,
CW10016D TIMESTAMP NOT NULL,
CW10017D TIMESTAMP NOT NULL,
CW10018D TIMESTAMP NOT NULL,
CW10019D TIMESTAMP NOT NULL,
CW10020D TIMESTAMP NOT NULL,
CW10021D TIMESTAMP NOT NULL,
CW10022D TIMESTAMP NOT NULL,
CW10023D TIMESTAMP NOT NULL,
CW10024D TIMESTAMP NOT NULL,
CW10025 CHAR(12) FOR SBCS DATA NOT NULL,
CW10026 CHAR(5) FOR SBCS DATA NOT NULL,
CW10027 CHAR(1) FOR SBCS DATA NOT NULL,
CW10028 DECIMAL(15, 3) NOT NULL,
CW10029 CHAR(3) FOR SBCS DATA NOT NULL,
CW10030 CHAR(3) FOR SBCS DATA NOT NULL,
CW10031 CHAR(12) FOR SBCS DATA NOT NULL,
CW10032 DECIMAL(15, 3) NOT NULL,
CW10033 CHAR(18) FOR SBCS DATA NOT NULL,
CW10034 CHAR(8) FOR SBCS DATA NOT NULL,
CONSTRAINT CW10000
PRIMARY KEY (CW10000))
IN CW10A1A.A100A
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE;
--
LABEL ON TABLE OA1A.TCW100A1 IS 'STEUERUNGSDATEN CW2-AUFTR_MAN';
--
LABEL ON OA1A.TCW100A1
(CW10033 IS 'DATUM POSITIONSEROEFFNUNG ',
CW10032 IS 'CASH-ABRECHNUNG ',
CW10031 IS 'CIF-NUMMER ',
CW10030 IS 'DEPOTART ',
CW10029 IS 'TITELART ',
CW10028 IS 'BESTAND NOMINAL/STÜCK ',
CW10027 IS 'POSITIONSKATEGORIE ',
CW10026 IS 'POSITIONSSEQUENZ ',
CW10025 IS 'VALORENNUMMER ',
CW10024D IS 'SERVICE 10 VERARB.-TIMESTAMP ',
CW10023D IS 'SERVICE 09 VERARB.-TIMESTAMP ',
CW10022D IS 'SERVICE 08 VERARB.-TIMESTAMP ',
CW10021D IS 'SERVICE 07 VERARB.-TIMESTAMP ',
CW10020D IS 'SERVICE 06 VERARB.-TIMESTAMP ',
CW10019D IS 'SERVICE 05 VERARB.-TIMESTAMP ',
CW10018D IS 'SERVICE 04 VERARB.-TIMESTAMP ',
CW10017D IS 'SERVICE 03 VERARB.-TIMESTAMP ',
CW10016D IS 'SERVICE 02 VERARB.-TIMESTAMP ',
CW10015D IS 'SERVICE 01 VERARB.-TIMESTAMP ',
CW10014 IS 'SERVICES ZEIGER ',
CW10013 IS 'TYP DES DB2-EINTRAGES ',
CW10012 IS 'BESTAND-MERKMALE ',
CW10011 IS 'PROZESS-MERKMALE ',
CW10010 IS 'MUTATIONS TIMESTAMP ',
CW10009 IS 'ERSTELLUNGS TIMESTAMP ',
CW10008 IS 'RUBRIK ',
CW10007 IS 'DEPOTSTELLE ',
CW10006 IS 'KUNDENDOMIZIL ',
CW10005 IS 'KUNDENART ',
CW10004 IS 'DEPOTNUMMER ',
CW10003 IS 'AUFTRAGSNR ',
CW10002 IS 'AKTIONSHEADERNR ',
CW10001 IS 'MANDANT ',
CW10000 IS 'ZUFALLSZAHL ');
--
------------------------------------------------------------------------
-- Database=CW10A1A
-- Index=OA1A.ICW100A6 On OA1A.TCW100A1
------------------------------------------------------------------------
--
CREATE INDEX OA1A.ICW100A6
ON OA1A.TCW100A1
(CW10031 ASC,
CW10012 ASC,
CW10014 ASC)
USING STOGROUP GSMS
PRIQTY 100 SECQTY 152
ERASE NO
FREEPAGE 10 PCTFREE 10
GBPCACHE CHANGED
NOT CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
--
------------------------------------------------------------------------
-- Database=CW10A1A
-- Index=OA1A.ICW100A5 On OA1A.TCW100A1
------------------------------------------------------------------------
--
CREATE INDEX OA1A.ICW100A5
ON OA1A.TCW100A1
(CW10002 ASC,
CW10012 ASC,
CW10014 ASC)
USING STOGROUP GSMS
PRIQTY 100 SECQTY 152
ERASE NO
FREEPAGE 10 PCTFREE 10
GBPCACHE CHANGED
NOT CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
--
------------------------------------------------------------------------
-- Database=CW10A1A
-- Index=OA1A.ICW100A3 On OA1A.TCW100A1
------------------------------------------------------------------------
--
CREATE INDEX OA1A.ICW100A3
ON OA1A.TCW100A1
(CW10009 ASC)
USING STOGROUP GSMS
PRIQTY 100 SECQTY 152
ERASE NO
FREEPAGE 10 PCTFREE 10
GBPCACHE CHANGED
NOT CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
--
------------------------------------------------------------------------
-- Database=CW10A1A
-- Index=OA1A.ICW100A2 On OA1A.TCW100A1
------------------------------------------------------------------------
--
CREATE INDEX OA1A.ICW100A2
ON OA1A.TCW100A1
(CW10002 ASC,
CW10004 ASC)
USING STOGROUP GSMS
PRIQTY 100 SECQTY 152
ERASE NO
FREEPAGE 10 PCTFREE 10
GBPCACHE CHANGED
NOT CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
--
------------------------------------------------------------------------
-- Database=CW10A1A
-- Index=OA1A.ICW100A1 On OA1A.TCW100A1
------------------------------------------------------------------------
--
CREATE INDEX OA1A.ICW100A1
ON OA1A.TCW100A1
(CW10003 ASC)
USING STOGROUP GSMS
PRIQTY 100 SECQTY 152
ERASE NO
FREEPAGE 10 PCTFREE 10
GBPCACHE CHANGED
NOT CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
--
------------------------------------------------------------------------
-- Database=CW10A1A
-- Index=OA1A.ICW100A0 On OA1A.TCW100A1
------------------------------------------------------------------------
--
CREATE UNIQUE INDEX OA1A.ICW100A0
ON OA1A.TCW100A1
(CW10000 ASC)
USING STOGROUP GSMS
PRIQTY 100 SECQTY 152
ERASE NO
FREEPAGE 10 PCTFREE 10
GBPCACHE CHANGED
CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
--
COMMIT;
--
------------------------------------------------------------------------
-- ADB2GEN - End of generated DDL --
------------------------------------------------------------------------
--
}¢--- A540769.WK.SQL(EL013) cre=2011-07-28 mod=2011-07-28-12.54.22 A540769 -----
select date(EL013CTS), count(*)
FROM oa1t.tel013a1
group by date(el013cts)
order by 1 desc
with ur
}¢--- A540769.WK.SQL(ER910) cre=2009-08-21 mod=2009-08-21-09.24.54 A540769 -----
set current sqlid = 's100447';
set current path = sysibm, sysproc;
create view a540769.er910Spufi as select * from sysibm.sysDummy1;
commit
}¢--- A540769.WK.SQL(EUREBIND) cre=2012-04-11 mod=2012-04-11-15.18.48 A540769 ---
$#@
call sqlConnect dbof
$;
$>.fEdit(':v')
$<=¢
-- extract sql statement text from sysPackStmt
-- concatenate statement texts if split in multiple junks
-- (up to 29000 bytes)
-- convert from utf8 to ebcdic if necessary
-- (we simply check first character for >='a')
-- attention:
-- where clause cannot be moved from recursive tableExpr stT
-- because optimizer doesn't optimize it as needed|
-- DSNTIAUL gets an error on this view, and
-- SPUFI does not handle so long characters,
-- thus, use WSH catStmtW in a DSN with very long recSize
--
set current sqlid = 'S100447';
set current path = 'OA1P';
with p as
( -- select newest packages --------------------------------------------
select 'rebind package(' || collid || '.' || name
|| '(' || version || '))' rb, n.*
from sysibm.sysPackage n
-- select here |
where location = '' and name in ('YCDSGET'
,'YCDX011'
,'YCDX031'
,'YCIG600'
,'YDIEURE'
,'YDIT001'
,'YDIT002'
,'YDIT003'
,'YDIT004'
,'YGMSTEU'
,'YGMTXIO'
,'YOE2BU '
,'YOE2GET'
,'YOOAIE3'
,'YSVEUTV'
,'YSVG502'
,'YSVIDAT'
,'YVVSQLE'
,'YWPRCBX'
,'YWPR1B2'
,'YWPR2D1'
,'YWPR7HX'
,'YWUPARM'
,'YWUPUT '
,'YWUSTEU'
,'YYCRCXE'
)
and ( pcTimestamp = (select max(pcTimestamp)
from sysibm.sysPackage a
where a.location = n.location
and a.collid = n.collid and a.name = n.name
)
or pcTimestamp = (select max(pcTimestamp)
from sysibm.sysPackage a
where a.location = n.location
and a.collid = n.collid and a.name = n.name
and a.version not like '%MVS%'
)
or pcTimestamp = (select max(pcTimestamp)
from sysibm.sysPackage a
where a.location = n.location
and a.collid = n.collid and a.name = n.name
and a.version not like '%CICS%'
)
or pcTimestamp = (select max(pcTimestamp)
from sysibm.sysPackage a
where a.location = n.location
and a.collid = n.collid and a.name = n.name
and a.version not like '%CICS%'
and a.version not like '%MVS%'
) )
)
select * from p
$! call sqlStmts
$#out 20120411 15:17:17
$#out 20120411 15:16:38
$#out 20120411 15:14:48
$#out 20120411 15:12:45
$#out 20120411 15:10:07
$#out 20120411 15:09:46
$#out 20120411 15:07:49
$#out 20120411 15:07:35
*** run error ***
tsoAlloc rc 12 for alloc dd(CAT1) NEW recfm(V b) lrecl(32756) block(32760) mgmt
$#out 20120411 15:07:23
*** run error ***
scanErr ending Apostroph(') missing
last token scanPosition '%MVS%
pos 47 in line 53: and n.version not like '%MVS%
$#out 20120411 15:05:17
$#out 20120411 14:05:03
$#out 20120411 14:04:49
*** run error ***
SQLCODE = -440: NO AUTHORIZED FUNCTION NAMED FOSC2I4 HAVING
COMPATIBLE ARGUMENTS WAS FOUND
stmt = execSql prepare s11 into :M.SQL.11.D from :src
with into :M.SQL.11.D = M.SQL.11.D
from :src = with p as
$#out 20120411 14:04:41
*** run error ***
tsoAlloc rc 12 for alloc dd(CAT1) NEW recfm(V b) lrecl(32756) block(32760) mgmt
$#out 20120411 13:44:11
*** run error ***
tsoAlloc rc 12 for alloc dd(CAT1) NEW recfm(V b) lrecl(32756) block(32760) mgmt
$#out 20120411 13:44:04
*** run error ***
SQLCODE = -440: NO AUTHORIZED FUNCTION NAMED FOSC2I4 HAVING
COMPATIBLE ARGUMENTS WAS FOUND
stmt = execSql prepare s11 into :M.SQL.11.D from :src
with into :M.SQL.11.D = M.SQL.11.D
from :src = with p as
$#out 20120411 13:43:48
*** run error ***
SQLCODE = -924: DB2 CONNECTION INTERNAL ERROR, 00000002,
0000000C, 00F30006
stmt = connect DBXF
$#out 20120411 13:43:45
*** run error ***
SQLCODE = -924: DB2 CONNECTION INTERNAL ERROR, 00000002,
0000000C, 00F30006
stmt = connect DBXF
$#out 20120411 13:40:34
$#out 20120411 13:40:26
*** run error ***
tsoAlloc rc 12 for alloc dd(CAT1) NEW recfm(V b) lrecl(32756) block(32760) mgmt
$#out 20120411 13:40:08
*** run error ***
SQLCODE = -440: NO AUTHORIZED FUNCTION NAMED FOSC2I4 HAVING
COMPATIBLE ARGUMENTS WAS FOUND
stmt = execSql prepare s11 into :M.SQL.11.D from :src
with into :M.SQL.11.D = M.SQL.11.D
from :src = with p as
$#out 20120411 13:39:58
*** run error ***
tsoAlloc rc 12 for alloc dd(CAT1) NEW recfm(V b) lrecl(32756) block(32760) mgmt
$#out 20120411 13:39:51
*** run error ***
SQLCODE = -440: NO AUTHORIZED FUNCTION NAMED FOSC2I4 HAVING
COMPATIBLE ARGUMENTS WAS FOUND
stmt = execSql prepare s11 into :M.SQL.11.D from :src
with into :M.SQL.11.D = M.SQL.11.D
from :src = with p as
$#out 20120307 13:38:24
$#out 20120307 13:35:51
$#out 20120307 13:31:10
$#out 20120307 13:30:58
}¢--- A540769.WK.SQL(EW43) cre=2013-05-13 mod=2013-05-13-20.05.58 A540769 ------
set current sqlid = 'S100447';
select substr(strip(dbName) || '.' || strip(tsName), 1, 15), partition,
row_number() over(partition by dbName, tsName
order by partition desc) rn
from sysibm.systablepart
where dbName like 'MF%' and partition < 10
;
with ts as
(
select dbName db, name ts
, 'ts' ty, dbName qu, name nm, '' err
, strip(dbName) || '.' || strip(name) pa
, ts.*
from sysibm.sysTablespace ts
)
, t as
(
select dbName db, tsName ts, 't' ty, creator qu, name nm, '' err
, strip(dbName) || '.' || strip(tsName)
|| '.' || strip(creator) || '.' || strip(name) pa
, tb.*
from sysibm.sysTables tb
where type not in ('A', 'V')
)
, v1 (db, ts, ty, qu, nm, pa, lv) as
(
select db, ts, ty, qu, nm, varchar(pa, 200), 0
from t
union all select db, ts, dType, dCreator, dName
, case when length(pa) < 70 then pa || '.'
else left(pa, 65) || '.....' end
|| strip(dCreator) || '.' || strip(dName)
, lv+1
from v1 join sysibm.sysViewDep d
on d.bCreator = v1.qu and d.bName = v1.nm
where lv < 1000
)
, v2 as
(
select row_number() over (partition by qu, nm
order by lv, pa) rn
, v1.*
from v1
)
select * from v2
where db like 'VV24%' and ts like 'VDPS168%'
-- order by qu, nm, lv, pa
;
}¢--- A540769.WK.SQL(EW65) cre=2016-02-08 mod=2016-02-08-07.56.57 A540769 ------
-- error ew65 if left(...) erroneously fails
-- with sqlcode=-579 FUNCTION ATTEMPTED TO READ DATA
--
set current sqlid = 'S100447';
drop function oa1p.ew65(i varchar(10));
drop function oa1p.ew65ca(i varchar(10));
--#SET TERMINATOR #
create function oa1p.ew65(i varchar(10))
returns varchar(5)
deterministic no external action contains sql
begin
if i like 'l%' then
return left(i, 5);
elseif left(i, 1) = 'r' then
return right(i, 5);
else
return 'else';
end if;
end #
create function oa1p.ew65ca(i varchar(10))
returns varchar(5)
deterministic no external action contains sql
begin
return case when i like 'l%' then left(i, 5)
when left(i, 1) = 'r' then right(i, 5)
else 'else' end;
end #
--#SET TERMINATOR ;
select oa1p.ew65ca('l234567890') from sysibm.sysDummy1;
select oa1p.ew65ca('r234567890') from sysibm.sysDummy1;
select oa1p.ew65ca('1234567890') from sysibm.sysDummy1;
select oa1p.ew65('l234567890') from sysibm.sysDummy1;
select oa1p.ew65('r234567890') from sysibm.sysDummy1;
select oa1p.ew65('1234567890') from sysibm.sysDummy1;
}¢--- A540769.WK.SQL(EXARCHIV) cre=2015-09-01 mod=2015-09-01-11.29.51 A540769 ---
set current application compatibility 'V11R1';
SELECT SYSIBMADM.MOVE_TO_ARCHIVE FROM SYSIBM.SYSDUMMY1;
}¢--- A540769.WK.SQL(EXCAST) cre=2013-08-19 mod=2013-08-19-10.40.50 A540769 ----
with a as
(
select cast(x'85828384F1F2F340' as char(8) for bit data) bitEbc
, cast(x'756E696331323320' as char(8) for bit data) bitUni
from sysibm.sysDummy1
)
select bitEbc, hex(bitEbc)
, cast(bitebc as char(8) ccsid ebcdic) ebcBitEbc
, cast(bitEbc as char(8) ccsid unicode) uniBitEbc
, cast(bitEbc as char(8) ccsid 500 ) "500BitEbc"
, cast(bitEbc as char(8) ccsid 1208) "1208BitEbc"
, bitUni, hex(bitUni)
, cast(bitUni as char(8) ccsid ebcdic) ebcBitUni
, cast(bitUni as char(8) ccsid unicode) uniBitUni
, CAST(bitUni AS CHAR(8) CCSID 500) "500BitUni"
, CAST(bitUni AS CHAR(8) CCSID 1208) "1208BitUni"
, CCSID_ENCODING(1208) enc1208
, CCSID_ENCODING(500) enc500
from a
;
with a as
( select 'abcXYZ' a from sysibm.sysDummyE)
, b as
( select
cast( a as char(6) ccsid ebcdic ) ebc
, cast( a as char(6) ccsid unicode) uni
from a
)
, c as
( select ebc, uni
, cast( ebc as binary(6)) binEbc
, cast( uni as binary(6)) binUni
from b
)
select 'ebc=ebc', l.ebc, r.ebc
from c l left join c r on l.ebc = r.ebc
union all select 'ebc=uni', l.ebc, r.ebc
from c l left join c r on l.ebc = r.uni
union all select 'ebc=binEbc', l.ebc, r.ebc
from c l left join c r on binary(l.ebc) = r.binEbc
union all select 'ebc=binUni', l.ebc, r.ebc
from c l left join c r on binary(l.ebc) = r.binUni
;
with a as
( select 'abcXYZ' a from sysibm.sysDummyE)
, b as
( select
cast( a as char(6) ccsid ebcdic ) ebc
, cast( a as char(6) ccsid unicode) uni
from a
)
, c as
( select ebc, uni
, cast( ebc as binary(6)) binEbc
, cast( uni as binary(6)) binUni
, cast( ebc as char(6) for bit data) bitEbc
, cast( uni as char(6) for bit data) bitUni
from b
)
select ebc, hex(ebc), uni, hex(uni)
, binebc, hex(binebc)
, binuni, hex(binuni)
, bitebc, hex(bitebc)
, bituni, hex(bituni)
, cast(bitEbc as char(6) ccsid ebcdic ) ebcBitEbc
, cast(bitEbc as char(6) ccsid unicode) uniBitEbc
, cast(bitUni as char(6) ccsid ebcdic ) ebcBitUni
, cast(bitUni as char(6) ccsid unicode) uniBitUni
from c
;x;
select hex(cast('ebcdic 12' as char(12) ccsid ebcdic))
, hex(cast('unicode 12' as char(12) ccsid unicode))
from sysibm.sysDummy1
;x;
;;
}¢--- A540769.WK.SQL(EXCCSID) cre=2015-11-18 mod=2015-11-18-10.15.36 A540769 ---
with u (a) as
(
select 'a' from sysibm.sysDummy1
union all select 'A' from sysibm.sysDummy1
union all select '2' from sysibm.sysDummy1
)
select * from u
order by cast(a as varchar(100) ccsid ebcdic )
}¢--- A540769.WK.SQL(EXCEP) cre=2007-12-18 mod=2007-12-18-15.12.48 F540769 -----
SET CURRENT SQLID='S100447';
drop tablespace dgdb9998.except;
--drop tablespace DA540769.except;
commit;
CREATE TABLESPACE except
IN DGDB9998
USING STOGROUP GSMS
PRIQTY 48 SECQTY 100
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 8
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID EBCDIC
DEFINE YES
MAXROWS 255;
--
CREATE TABLE GDB9998.except
(pri smallint not null with default 20,
db char(8) not null,
ts char(8) not null,
ix char(16) not null with default ,
fun char(8) not null,
code char(8) not null,
wert float not null with default -1,
info char(50) not null with default
)
IN DGDB9998.except
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE;
--
}¢--- A540769.WK.SQL(EXCEPINS) cre=2007-12-18 mod=2007-12-18-17.51.43 F540769 ---
delete from gdb9998.except;
insert into gdb9998.except values(
10, 'DGDB9998', 'EXCEPT', '', 'GB64', 'a', 17, '10== = a 17');
insert into gdb9998.except values(
10, 'DGDB9998', 'EXCEPT', '', 'GB*', 'a', 17, '10== * a 18');
insert into gdb9998.except values(
77, 'DGDB9998', '* ', '', 'GB64', 'a', 17, '10=* = a 19');
insert into gdb9998.except values(
10, 'DGDB9* ', 'EXCEPT', '', 'GB64', 'a', 17, '10*= = a 19');
insert into gdb9998.except values(
51, 'DGDB9998', 'EXCEPT', '', 'GB64', 'a', 17, '10== = a 99');
}¢--- A540769.WK.SQL(EXCEPSEL) cre=2007-12-18 mod=2007-12-18-17.50.51 F540769 ---
with ex as
( select pri,
db, case when posstr(db, '*') > 0
then posstr(db, '*') - 1 else 8 end dbLen,
ts, case when posstr(ts, '*') > 0
then posstr(ts, '*') - 1 else 8 end tsLen,
ix, case when posstr(ix, '*') > 0
then posstr(ix, '*') - 1 else 16 end ixLen,
fun, case when posstr(fun, '*') > 0
then posstr(fun, '*') else 8 end funLen,
code, wert, info,
char(right('000' || strip(char(pri)), 4) || ' '
|| translate(db || ts || ix || fun, x'01', '*') , 44) cat
from gdb9998.except
)
select e.*, s.*
from sysibm.systablespace s, ex e
where s.dbName = 'DGDB9998' and
e.cat = (select max(cat) from ex f where
left(f.db, f.dbLen) = left(s.dbName, f.dbLen)
and left(f.ts, f.tsLen) = left(s.Name, f.tsLen)
and f.ix = ''
and f.fun like 'GB%'
)
order by cat
}¢--- A540769.WK.SQL(EXCEPSE0) cre=2007-12-18 mod=2007-12-18-17.50.04 F540769 ---
--select hex(' -@_#*%''') " -@_#*%'",
-- hex(' ') sp,hex('*') "*", hex('a') "a", hex('A') A, hex('0') "0"
-- from sysibm.sysDummyU;
with l1 as
( select pri,
db, case when posstr(db, '*') > 0
then posstr(db, '*') - 1 else 8 end dbLen,
ts, case when posstr(ts, '*') > 0
then posstr(ts, '*') - 1 else 8 end tsLen,
ix, case when posstr(ix, '*') > 0
then posstr(ix, '*') - 1 else 16 end ixLen,
fun, case when posstr(fun, '*') > 0
then posstr(fun, '*') else 8 end funLen,
code, wert, info,
char(right('000' || strip(char(pri)), 4) || ' '
|| translate(db || ts || ix || fun, x'01', '*') , 44) cat
from gdb9998.except
),
l2 as
( select (((pri*100+dbLen) *10+tsLen) *100+ixLen) *10+funLen priLen,
char(substr('abcdefghijklmnopqrstuvwxyz'
|| 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 1 + pri, 1)
||substr('abcdefghijklmnopqrstuvwxyz', 1 + dbLen, 1)
||substr('abcdefghijklmnopqrstuvwxyz', 1 + tsLen, 1)
||substr('abcdefghijklmnopqrstuvwxyz', 1 + ixLen, 1)
||substr('abcdefghijklmnopqrstuvwxyz', 1 + funLen, 1), 5) priTot,
l1.*
from l1
),
l3 as
( select char(priTot || db || ts || ix || fun, 50) cat, l2.*
from l2
),
l4 as
( select char(
right('000' || strip(char(pri)), 4) || ' '
|| translate(db || ts || ix || fun, x'00', '*') , 50) cat,
l1.*
from l1
)
select e.*, s.*
from sysibm.systablespace s, l1 e
where s.dbName = 'DGDB9998' and
e.cat = (select max(cat) from l1 f where
left(f.db, f.dbLen) = left(s.dbName, f.dbLen)
and left(f.ts, f.tsLen) = left(s.Name, f.tsLen)
and f.ix = ''
and f.fun like 'GB%'
)
order by cat
}¢--- A540769.WK.SQL(EXCEPSTS) cre=2007-12-21 mod=2007-12-21-15.41.10 F540769 ---
select * from A540769.vExceptions_TS
;
select s.dbName, s.tsname, s.partition, remark, e.*
from sysibm.sysTablePart s, A540769.vExceptions_TS e
where (s.dbName like 'MF%' or dbName = 'MC03A1A')
and s.partition < 20
and e.key = (select max(key) from A540769.vExceptions_TS f
where left(f.db, f.dbLen) = left(s.dbName, f.dbLen)
and left(f.ts, f.tsLen) = left(s.tsName, f.tsLen)
and left(f.part, f.partLen) =
left(right('00000' || strip(char(s.partition)), 5)
, f.partLen)
and guVon <= current date
and guBis >= current date
)
order by s.dbName, s.tsName, s.partition, e.key
;
select s.dbName, s.name, remark, e.*
from sysibm.sysTablespace s, A540769.vExceptions_TS e
where (s.dbName like 'MF%' or dbName = 'MC03A1A')
and e.key = (select max(key) from A540769.vExceptions_TS f
where left(f.db, f.dbLen) = left(s.dbName, f.dbLen)
and left(f.ts, f.tsLen) = left(s.Name, f.tsLen)
and f.part = '*'
and guVon <= current date
and guBis >= current date
)
order by s.dbName, s.Name, e.key
;
}¢--- A540769.WK.SQL(EXCEPTS) cre=2007-12-21 mod=2007-12-21-15.27.45 F540769 ---
set current sqlid = 'S100447';
drop VIEW A540769.VEXCEPTIONS_TS ;
CREATE VIEW A540769.VEXCEPTIONS_TS as
SELECT prio, db, ts, part, REORG, REMARK, UNCLUST, FARINDREF,
NEARINDREF, EXTENTS, REORGDAYS, INSERTS, UPDATES, DELETES,
case when posstr(db, '*') > 0
then posstr(db, '*') - 1 else 8 end dbLen,
case when posstr(ts, '*') > 0
then posstr(ts, '*') - 1 else 8 end tsLen,
case when posstr(part, '*') > 0
then posstr(part, '*') - 1 else 5 end partLen,
char(right('00' || strip(char(prio)), 3) || ' '
|| translate(db || ts || part , x'01', '*') , 25) key,
guVon, guBis,
INSERTTIMESTAMP
FROM A540769.TEXCEPTIONS_TS ;
--
LABEL ON TABLE A540769.VEXCEPTIONS_TS IS 'RTS TABLESPACE EXCEPTIONS';
--
COMMENT ON TABLE A540769.VEXCEPTIONS_TS
IS 'RTS TABLESPACE EXCEPTIONS';
--
LABEL ON A540769.VEXCEPTIONS_TS
(INSERTTIMESTAMP IS 'INSERT TIMESTAMP',
DELETES IS 'SCHWELLWERT FÜR DELETES %',
UPDATES IS 'SCHWELLWERT FÜR UPDATES %',
INSERTS IS 'SCHWELLWERT FÜR INSERTS %',
REORGDAYS IS 'NACH X DAYS REORG',
EXTENTS IS 'EXTENTS PRO TS/PARTITION',
NEARINDREF IS 'OVERFLOW NEAR (<16 PAGES)',
FARINDREF IS 'OVERFLOW FAR (>16 PAGES)',
UNCLUST IS 'SCHWELLWERT FÜR CLUSTERING %',
REMARK IS 'BESCHREIBUNG',
REORG IS 'ALWAYS,NEVER,THRESHOLD,DEFAULT',
ts IS 'TABLESPACENAME',
db IS 'DATENBANKNAME');
--
COMMIT;
x
--drop TABLESPACE dA540769.EXCEpTTS;
commit;
CREATE TABLESPACE EXCEpTTS
IN DA540769
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID EBCDIC
DEFINE YES
MAXROWS 255;
--
COMMIT;
--
------------------------------------------------------------------------
-- Table=A540769.TEXCEPTIONS_TS In DA540769.EXCEpTTS
------------------------------------------------------------------------
--
CREATE TABLE A540769.TEXCEPTIONS_TS
(prio smallint not null default 0,
db CHAR(8) FOR SBCS DATA NOT NULL
WITH DEFAULT,
ts CHAR(8) FOR SBCS DATA NOT NULL
WITH DEFAULT,
part CHAR(5) FOR SBCS DATA NOT NULL
WITH DEFAULT '*',
guVon date not null with default '01.01.2000',
guBis date not null with default '01.01.9999',
REORG CHAR(12) FOR SBCS DATA NOT NULL
WITH DEFAULT 'THRESHOLD',
UNCLUST INTEGER WITH DEFAULT NULL,
INSERTS INTEGER WITH DEFAULT NULL,
UPDATES INTEGER WITH DEFAULT NULL,
DELETES INTEGER WITH DEFAULT NULL,
FARINDREF INTEGER WITH DEFAULT NULL,
NEARINDREF INTEGER WITH DEFAULT NULL,
EXTENTS SMALLINT WITH DEFAULT NULL,
INSERTTIMESTAMP TIMESTAMP NOT NULL WITH DEFAULT,
REMARK CHAR(150) FOR SBCS DATA NOT NULL
WITH DEFAULT,
REORGDAYS INTEGER WITH DEFAULT NULL,
CONSTRAINT REORG
CHECK (REORG='ALWAYS' OR REORG='NEVER' OR REORG='THRESHOLD'OR RE
ORG='DEFAULT'),
CONSTRAINT PRIO
CHECK (prio >= 0 and prio <= 999),
CONSTRAINT guBis
check (guBis >= guVon)
)
IN DA540769.EXCEpTTS
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE;
--
LABEL ON TABLE A540769.TEXCEPTIONS_TS
IS 'AUSNAHMEN FüR REORGS MIT RTS';
--
COMMENT ON TABLE A540769.TEXCEPTIONS_TS
IS 'IN DIESER TABELLE MüSSEN ALLE TABLESPACES AUFGEFüHRT WERDEN, DIE
NICHT MIT STANDARD-SCHWELLWERTEN REORGANISIERT WERDEN SOLLEN.';
--
COMMENT ON A540769.TEXCEPTIONS_TS
(EXTENTS IS 'EXTENTS PRO TS/PARTITION > NN',
NEARINDREF IS '((REORGNEARINDREF*100)/TOTALROWS) > NN',
FARINDREF IS '((REORGFARINDREF*100)/TOTALROWS) > NN',
DELETES IS '((REORGDELETES*100)/TOTALROWS) > NN',
UPDATES IS '((REORGUPDATES*100)/TOTALROWS) > NN',
INSERTS IS '((REORGINSERTS*100)/TOTALROWS) > NN',
UNCLUST IS '((REORGUNCLUSTINS*100)/TOTALROWS) > NN',
REORG IS 'ALWAYS,NEVER,TRESHHOLD,DEFAULT');
--
LABEL ON A540769.TEXCEPTIONS_TS
(REORGDAYS IS 'NACH X DAYS REORG',
REMARK IS 'BESCHREIBUNG',
INSERTTIMESTAMP IS 'INSERT TIMESTAMP',
EXTENTS IS 'EXTENTS PRO TS/PARTITION',
NEARINDREF IS 'OVERFLOW NEAR (<16 PAGES)',
FARINDREF IS 'OVERFLOW FAR (>16 PAGES)',
DELETES IS 'SCHWELLWERT FÜR DELETES %',
UPDATES IS 'SCHWELLWERT FÜR UPDATES %',
INSERTS IS 'SCHWELLWERT FÜR DELETES %',
UNCLUST IS 'SCHWELLWERT FÜR CLUSTERING %',
REORG IS 'ALWAYS,NEVER,THRESHOLD,DEFAULT',
ts IS 'TABLESPACENAME',
db IS 'DATENBANKNAME');
--
COMMIT;
--
------------------------------------------------------------------------
-- Database=DA540769
-- Index=A540769.IEXCEPTIONS_TS On A540769.TEXCEPTIONS_TS
------------------------------------------------------------------------
--
CREATE UNIQUE INDEX A540769.IEXCEPTIONS_TS
ON A540769.TEXCEPTIONS_TS
(prio ASC,
db ASC,
ts ASC,
part asc)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
--
COMMIT;
--
------------------------------------------------------------------------
-- View=A540769.VEXCEPTIONS_TS
------------------------------------------------------------------------
--
--
}¢--- A540769.WK.SQL(EXCEPTSI) cre=2007-12-21 mod=2007-12-21-13.07.54 F540769 ---
insert into A540769.TEXCEPTIONS_TS
(prio, db, ts, reorg, unclust, inserts,updates, deletes,
farindRef, nearIndRef, extents, remark, reorgdays)
select
10, dbName, tsName, reorg, unclust, inserts,updates, deletes,
farindRef, nearIndRef, extents, remark, reorgdays
from s100447.texceptions_ts;
}¢--- A540769.WK.SQL(EXCEPTSS) cre=2007-12-21 mod=2007-12-21-13.09.16 F540769 ---
select * from s100447.vExceptions_TS;
}¢--- A540769.WK.SQL(EXDATE) cre=2012-01-25 mod=2012-01-25-08.29.12 A540769 ----
select current date
, char(current date, local) local
, char(current date, iso ) iso
, char(current date, eur ) eur
, char(current date, jis ) jis
, char(current date, usa ) usa
from sysibm.sysdummy1
}¢--- A540769.WK.SQL(EXDB2SEL) cre=2012-07-26 mod=2012-07-27-23.20.41 A540769 ---
with f (fr, to) as
( select min(timestamp), max(timestamp)
from A540769.tadm60a1
)
, a as
(
select a.*, row_number() over(order by ssid, timestamp) ano
from oa1a.tadm60a1 a join f
on a.timestamp >= f.fr and a.timestamp <= f.to
where ssid like 'DTB%'
)
, w as
(
select w.*, row_number() over(order by ssid, timestamp) wno
from A540769.tadm60a1 w
)
select aNo, wNo,
case when a.event_Type = w.event_type then 't' else '|' end
|| case when a.victim_plan = w.victim_plan then 'p' else '|' end
|| case when a.VICTIM_CORR_ID=w.VICTIM_CORR_ID then 'r' else '|' end
|| case when a.VICTIM_CONN_ID=w.VICTIM_CONN_ID then 'n' else '|' end
|| case when a.source_plan = w.source_plan then 'P' else '|' end
|| case when a.source_CORR_ID=w.source_CORR_ID then 'R' else '|' end
|| case when a.source_CONN_ID=w.source_CONN_ID then 'N' else '|' end
|| case when a.reason_COde = w.reason_code then 'e'
when a.reason_COde = '' then '+' else '|' end
|| case when a.type = w.type then 't'
when a.type = '' then '+' else '|' end
|| case when a.name = w.name then 'n'
when a.name = left(w.name, length(strip(a.name))) then '+'
else '|' end
, a.*, w.*
from w full outer join a
on w.ssid = a.ssid and w.timestamp = a.timestamp
and w.VICTIM_CORR_ID = a.VICTIM_CORR_ID
and w.source_CORR_ID = a.source_CORR_ID
and w.VICTIM_COnn_ID = a.VICTIM_COnn_ID
and w.source_COnn_ID = a.source_COnn_ID
order by value(w.ssid, a.ssid)
, value(w.timestamp, a.timestamp)
, value(w.VICTIM_CORR_ID, a.VICTIM_CORR_ID)
, value(w.source_CORR_ID, a.source_CORR_ID)
, value(w.VICTIM_COnn_ID, a.VICTIM_COnn_ID)
, value(w.source_COnn_ID, a.source_COnn_ID)
;x;
select count(*)
from A540769.tadm60a1;
select *
from A540769.tadm60a1;
delete
from A540769.tadm60a1;
}¢--- A540769.WK.SQL(EXDRDA) cre=2007-06-23 mod=2016-08-03-14.15.25 A540769 ----
select location from sysibm.locations
;
select current server, count(*), max(name)
from sysibm.systables
;
select current server, count(*), max(name)
from chroi00zde0g.sysibm.systables
;
select current server, count(*), max(name)
from chroi00zdevg.sysibm.systables
;
select current server, count(*), max(name)
from CHSKA000DP4G.sysibm.systables
;
$#out 20160803 14:14:28
LOCATION
CHSKA000DBII
CHSKA000DBOF
CHSKA000DP2G
CHSKA000DVBP
GR01A1P
L204AI1
L204AI5
L50A0I5
L568BI1
L6E73I1
L9517I1
LA5B8I1
LC501I1
X6482I1
XB128I1
XB129I1
XB129I2
XB129I3
XB129I4
XC930I1
20 rows fetched: select location from sysibm.locations
COL1 COL2 COL3
CHSKA000DBOL 2194 XXRVSMS
1 rows fetched: select current server, count(*), max(name) from sysibm.sys...
fatal error in WSH: SQLCODE = -950: THE LOCATION NAME SPECIFIED IN THE CONNECT
STATEMENT IS INVALID OR NOT LISTED IN THE COMMUNICATIONS DATABASE
sql = select current server, count(*), max(name) ...
stmt = prepare s49 into :M.SQL.49.D from :src
with into :M.SQL.49.D = M.SQL.49.D
sqlCode 0: rollback
$#out 20160803 14:14:02
LOCATION
IDAA7001
1 rows fetched: select location from sysibm.locations
COL1 COL2 COL3
CHSKA000DP4G 4476 XXRTSUB
1 rows fetched: select current server, count(*), max(name) from sysibm.sys...
fatal error in WSH: SQLCODE = -950: THE LOCATION NAME SPECIFIED IN THE CONNECT
STATEMENT IS INVALID OR NOT LISTED IN THE COMMUNICATIONS DATABASE
sql = select current server, count(*), max(name) ...
stmt = prepare s49 into :M.SQL.49.D from :src
with into :M.SQL.49.D = M.SQL.49.D
sqlCode 0: rollback
$#out 20160803 14:13:51
LOCATION
IDAA7001
1 rows fetched: select location from sysibm.locations
COL1 COL2 COL3
CHSKA000DP4G 4476 XXRTSUB
1 rows fetched: select current server, count(*), max(name) from sysibm.sys...
fatal error in WSH: SQLCODE = -950: THE LOCATION NAME SPECIFIED IN THE CONNECT
STATEMENT IS INVALID OR NOT LISTED IN THE COMMUNICATIONS DATABASE
sql = select current server, count(*), max(name) ...
stmt = prepare s49 into :M.SQL.49.D from :src
with into :M.SQL.49.D = M.SQL.49.D
sqlCode 0: rollback
$#out 20160729 12:58:04
LOCATION
CHROI00ZDE0G
CHROI00ZDEVG
2 rows fetched: select location from sysibm.locations
COL1 COL2 COL3
CHROI00ZDE0G 21296 YBWAHDUTDG031
1 rows fetched: select current server, count(*), max(name) from sysibm.sys...
COL1 COL2 COL3
CHROI00ZDE0G 21296 YBWAHDUTDG031
1 rows fetched: select current server, count(*), max(name) from chroi00zde...
COL1 COL2 COL3
CHROI00ZDEVG 10457 XSRPROPERTY
1 rows fetched: select current server, count(*), max(name) from chroi00zde...
fatal error in WST: SQLCODE = -950: THE LOCATION NAME SPECIFIED IN THE CONNECT
STATEMENT IS INVALID OR NOT LISTED IN THE COMMUNICATIONS DATABASE
sql = select current server, count(*), max(name) ...
stmt = prepare s49 into :M.SQL.49.D from :src
with into :M.SQL.49.D = M.SQL.49.D
sqlCode 0: rollback
from RZZ Z24 DE0G
$#out 20160729 12:57:46
LOCATION
IDAA7001
1 rows fetched: select location from sysibm.locations
COL1 COL2 COL3
CHSKA000DP4G 4512 XXRTSUB
1 rows fetched: select current server, count(*), max(name) from sysibm.sys...
fatal error in WST: SQLCODE = -950: THE LOCATION NAME SPECIFIED IN THE CONNECT
STATEMENT IS INVALID OR NOT LISTED IN THE COMMUNICATIONS DATABASE
sql = select current server, count(*), max(name) ...
stmt = prepare s49 into :M.SQL.49.D from :src
with into :M.SQL.49.D = M.SQL.49.D
sqlCode 0: rollback
$#out
}¢--- A540769.WK.SQL(EXENCRY) cre=2011-12-06 mod=2011-12-06-11.49.56 A540769 ---
set encryption password = 'geheim' ;
with e as
(
select encrypt_tdes('abc', 'geheim', 'versteckt') e
from sysibm.sysdummy1
union all select encrypt_tdes('123abc', 'GeheiM', 'versteckt') e
from sysibm.sysdummy1
)
select getHint(e), decrypt_char(e, 'geheim') dr
, decrypt_char(e ) do
, decrypt_char(e, 'falsch') df
, e
from e
}¢--- A540769.WK.SQL(EXFEFIDE) cre=2011-11-11 mod=2011-11-14-16.39.37 A540769 ---
select count(*) from A540769.TWK600A021
; -- beschränktes delete 1
delete from A540769.TWK600A021
where (i1, v2) in
(select r.i1, r.v2
from A540769.TWK600A021 r
order by r.i1, r.v2
fetch first 100 rows only
)
;
select count(*) from A540769.TWK600A021
;
delete from A540769.TWK600A021
where (i1, v2) in
(select r.i1, r.v2
from A540769.TWK600A021 r
order by r.i1, r.v2
fetch first 100 rows only
)
;
select count(*) from A540769.TWK600A021
;
rollback;
}¢--- A540769.WK.SQL(EXFEFIRS) cre=2011-11-11 mod=2011-11-14-16.37.24 A540769 ---
}¢--- A540769.WK.SQL(EXFINAL) cre=2011-11-14 mod=2011-11-14-17.58.06 A540769 ---
select * -- final table
from final table
(
insert into A540769.twk600a011 (PART, i1, i2, v2, v3)
select PART, i1, i2, v2, v3
from A540769.twk600a011
where part = 7
fetch first 5 rows only
)
;
select * -- final table with include
from final table
(
insert into A540769.twk600a011 (PART, i1, i2, v2, v3)
include(frueher date, v1Old varchar(1000))
select PART, i1, i2, v2, v3
, current date - row_number() over () days, v1
from A540769.twk600a011
where part = 7
fetch first 5 rows only
)
;
select * -- old table
from old table
(
delete from A540769.twk600a011
where part = 7 and v1 is null
)
}¢--- A540769.WK.SQL(EXFUTB) cre=2013-08-02 mod=2013-08-05-13.57.02 A540769 ----
set current sqlid = 'S100447';
drop function A540769.tst012(timestamp, timestamp)
;
create function A540769.tst012(t1 timestamp, t2 timestamp)
returns table (t timestamp)
language sql deterministic called on null input
reads sql data
return
select t1 from sysibm.sysDummy1 where t1 is not null
union all select t2 from sysibm.sysDummy1 where t2 is not null
;
select * from table(
A540769.tst012(current timestamp, current timestamp + 1 month)
) a
;
select * from table(
A540769.tst012(timestamp(current date), current timestamp + 1 month)
) a
;
select * from table(
A540769.tst012(timestamp(current date), case when 1=0
then current timestamp else null end)
) a
;x;
drop function A540769.one2n( int);
create function A540769.one2n(cnt int)
returns table (n int)
language sql deterministic reads sql data
return
with rr (n) as
(
select 1 from sysibm.sysDummy1 where cnt >= 1
union all select n+1 from rr where n < cnt
)
select * from rr
;
select * from table(A540769.one2n(5)) a ;
select * from table(A540769.one2n(0)) a ;
select * from table(A540769.one2n(1)) a ;
with view infinite loop ||||||||||||||||
with rr (n) as
(
select 1 from sysibm.sysDummy1
union all select n+1 from rr
)
select * from rr where n < 5
}¢--- A540769.WK.SQL(EXGLOVAR) cre=2016-04-14 mod=2016-04-15-10.36.01 A540769 ---
set current application compatibility 'V11R1';
select SYSIBMADM.GET_ARCHIVE
from sysibm.sysdummy1
;
select SYSIBMADM.move_to_archive
from sysibm.sysdummy1
;
set SYSIBMADM.move_to_archive = 'Y';
select SYSIBMADM.move_to_archive
from sysibm.sysdummy1
;
}¢--- A540769.WK.SQL(EXGROUP) cre=2015-07-08 mod=2015-10-23-14.27.39 A540769 ---
-- example group by rollup/cube/grouping sets
-- ein klassische group by
select tsName, count(*) cnt, sum(spaceF) spc
from sysibm.sysTablePart
where dbName = 'QZ01A1P' and tsname < 'A02'
group by tsName
;
-- eine total Zeile waere doch schoen
-- das braucht aber DB2 V11 Kompatibilitaet
set current application compatibility 'V11R1';
select tsName, count(*) cnt, sum(spaceF) spc
from sysibm.sysTablePart
where dbName = 'QZ01A1P' and tsname < 'A02'
group by rollup (tsName)
;
-- das geht auch mehrstufig mit ZwischenTotalen
select left(tsName, 3), tsName, partition
, count(*) cnt, sum(spaceF) spc
from sysibm.sysTablePart
where dbName = 'QZ01A1P' and tsname < 'A02'
and partition < 5
group by rollup ( left(tsName, 3), tsName, partition )
;
-- mit ORDER kriegen wir die Zwischentotale
-- direkt hinter die summierten Daten
select left(tsName, 3), tsName, partition
, count(*) cnt, sum(spaceF) spc
from sysibm.sysTablePart
where dbName = 'QZ01A1P' and tsname < 'A02'
and partition < 5
group by rollup ( left(tsName, 3), tsName, partition )
order by left(tsName, 3)
, value(tsName, x'ff')
, value(partition, 9999)
;
-- mit ORDER kriegen wir die Zwischentotale
-- oder auch vor die summierten Daten
select left(tsName, 3), tsName, partition
, count(*) cnt, sum(spaceF) spc
from sysibm.sysTablePart
where dbName = 'QZ01A1P' and tsname < 'A02'
and partition < 5
group by rollup ( left(tsName, 3), tsName, partition )
order by value(left(tsName, 3), '')
, value(tsName, '')
, value(partition, -9999)
;
-- mit rollup kriegten wir 3+1 =4 Total Kombinationen
-- mit cube aber 2**3=8 Total Kombinationen
select left(tsName, 3), tsName, partition
, count(*) cnt, sum(spaceF) spc
from sysibm.sysTablePart
where dbName = 'QZ01A1P' and tsname < 'A02'
and partition < 5
group by cube ( left(tsName, 3), tsName, partition )
;
-- wir können die Kombinationen aber auch explizit schreiben
select left(tsName, 3), partition
, count(*) cnt, sum(spaceF) spc
from sysibm.sysTablePart
where dbName = 'QZ01A1P' and tsname < 'A02'
and partition < 5
group by grouping sets ( (left(tsName, 3)), (partition) )
;
-- ein () liefert noch das grand total
select left(tsName, 3), partition
, count(*) cnt, sum(spaceF) spc
from sysibm.sysTablePart
where dbName = 'QZ01A1P' and tsname < 'A02'
and partition < 5
group by grouping sets ( (left(tsName, 3)), (partition), () )
;
-- group by expressions, rollup, cube, und grouping sets
-- können kombiniert und verschachtelt werden
select dbName, left(tsName, 3), tsName, partition
, count(*) cnt, sum(spaceF) spc
from sysibm.sysTablePart
where dbName = 'QZ01A1P' and tsname < 'A02'
and partition < 5
group by dbName, grouping sets(rollup(left(tsName, 3), tsName)
, (partition ))
;
-- noch ein cube
select left(tsName, 3), s.type, partition
, count(*) cnt, sum(p.spaceF) spc
from sysibm.sysTablePart p join sysibm.sysTablespace s
on p.dbName = s.dbName and p.tsName = s.name
where p.dbName = 'QZ01A1P' and p.tsname < 'A02'
and p.partition < 5
group by cube( left(tsName, 3), partition, s.type)
;
-- und verschiedene Kombinationen
with a (a, b, c) as
(
select 'A', 'b', 1 from sysibm.sysDummy1
union all select 'A', 'c', 2 from sysibm.sysDummy1
union all select 'A', 'c', 3 from sysibm.sysDummy1
union all select 'B', 'd', 14 from sysibm.sysDummy1
union all select 'B', 'e', 15 from sysibm.sysDummy1
union all select 'B', 'f', 16 from sysibm.sysDummy1
union all select 'B', 'g', 17 from sysibm.sysDummy1
)
select a, b, sum(c) sumC, '1 set: ((a, b))'
from a
group by grouping sets ((a, b))
union all select a, b, sum(c) sumC, 'sets : ((a, b), a, b, ())'
from a
group by grouping sets ((a, b), a, b, ())
union all select a, b, sum(c) sumC, 'rollU: (rollup (a, b))'
from a
group by grouping sets (rollup (a, b))
union all select a, b, sum(c) sumC, 'cube : (cube (a, b))'
from a
group by grouping sets (cube (a, b))
}¢--- A540769.WK.SQL(EXHANOI) cre=2011-11-21 mod=2011-11-24-11.06.08 A540769 ---
-- tower of hanoi 00010060
-- 00020060
-- 1 1 00030060
-- 222 =====> 222 00040060
-- 33333 33333 00050060
-- *links* *mitte* *rechts* *links* *mitte* *rechts* 00060060
-- 00070060
-- Regeln: immer nur ein Scheibe bewegen, immer auf grössere legen 00080060
-- 00090060
-- Lösung wir benutzen Rekursion mit From, To und Help Stapel 00100061
-- 1: rekursiv die n-1 obersten Scheiben von From auf Help Stapel 00110064
-- 2: die jetzt oberste (ursprünglich n.) Scheibe vom From auf To 00120064
-- 3: (rekursiv) die n-1 obersten Scheiben von Help auf To Stapel 00130064
-- erst am Schluss schauen wir, was Links Mitte und Rechts war 00140064
-- (Trick: zuunterst in jedem Stapel fixe Scheibe l, m, bzw. r) 00141065
-- 00150064
with h (f, t, h, anz, seq, lev) as 00160064
( -- start: 00170064
select cast('123456l' as varchar(9)), 00180064
cast('m' as varchar(9)), 00190064
cast('r' as varchar(9)), 00200064
5, cast('' as varchar(9)), 0 00210064
from sysibm.sysDummy1 00220064
-- Schritt 1 : 00230064
-- rekursiv anz-1 Scheiben von f auf h00240064
union all select f, h, t, anz-1, seq || 'x', lev+1 00250064
from h 00260064
where anz > 1 and lev < 9 00270064
-- Schritt 2+3 : 00280064
-- anz-te Scheibe von f nach t 00290064
-- rekursiv anz-1 Scheiben von h auf t00300064
union all select left(f, anz-1) || h, 00310064
substr(f, anz, 1) || t, 00320064
substr(f, anz+1), 00330064
anz-1, seq || 'y', lev+1 00340064
from h 00350064
where anz > 0 and lev < 9 00360060
) --- f,t,h auf Links Mitte Rechts legen 00370060
, lmr as 00380054
( select case when right(f, 1) = 'l' then f 00390054
when right(t, 1) = 'l' then t 00400054
when right(h, 1) = 'l' then h else '?' end l, 00410054
case when right(f, 1) = 'm' then f 00420054
when right(t, 1) = 'm' then t 00430054
when right(h, 1) = 'm' then h else '?' end m, 00440054
case when right(f, 1) = 'r' then f 00450054
when right(t, 1) = 'r' then t 00460054
when right(h, 1) = 'r' then h else '?' end r, 00470054
h.* 00480037
from h 00490037
) --- l,m,r rechtsbündig anzeigen 00500061
select substr(' ' || l, length(l), 9) l, 00510059
substr(' ' || m, length(m), 9) m, 00520059
substr(' ' || r, length(r), 9) r, 00530059
anz, seq, lev, f, t, h 00540058
from lmr 00550055
where right(seq, 1) <> 'x' 00560053
order by seq 00570037
; 00580062
-- 00590062
-- tower of hanoi 00600061
-- muehsamere Lösung: wir arbeiten mit Links Mitte und Rechts 00610061
-- und müssen in der Rekursion alle Permutationen ausprogrammieren 00620061
-- 00630061
with h (l, m, r, fth, anz, seq, lev) as 00640061
( -- start bewege Turm von links -> Mitte 00650063
select cast('123456' as varchar(9)), 00660037
cast('' as varchar(9)), 00670037
cast('' as varchar(9)), 00680037
'lmr', 4, 00690061
cast('' as varchar(9)), 0 00700037
from sysibm.sysDummy1 00710037
union all select l, m, r , -- Schritt 1 anz-1 Scheiben von f auf h 00720063
translate('132', fth, '123'), 00730037
anz-1, seq || 'x', lev+1 00740037
from h 00750037
where anz > 1 and lev < 9 00760037
-- Schritt f -> t und h -> t für lmr 00770063
union all select substr(l, anz+1), 00780061
substr(l, anz, 1) || m, 00790061
left(l, anz-1) || r, 00800061
00810037
'rml', anz-1, seq || 'y', lev+1 00820061
from h 00830037
where anz > 0 and lev < 9 and fth = 'lmr' 00840061
-- Schritt f -> t und h -> t für lrm 00850063
union all select substr(l, anz+1), 00860061
left(l, anz-1) || m, 00870061
substr(l, anz, 1) || r, 00880061
'mrl', anz-1, seq || 'y', lev+1 00890061
from h 00900037
where anz > 0 and lev < 9 and fth = 'lrm' 00910061
-- Schritt f -> t und h -> t für mlr 00920063
union all select substr(m, anz, 1) || l, 00930061
substr(m, anz+1), 00940061
left(m, anz-1) || r, 00950061
'rlm', anz-1, seq || 'y', lev+1 00960061
from h 00970037
where anz > 0 and lev < 9 and fth = 'mlr' 00980061
-- Schritt f -> t und h -> t für mrl 00990063
union all select left(m, anz-1) || l, 01000061
substr(m, anz+1), 01010061
substr(m, anz, 1) || r, 01020061
'lrm', anz-1, seq || 'y', lev+1 01030061
from h 01040037
where anz > 0 and lev < 9 and fth = 'mrl' 01050061
-- Schritt f -> t und h -> t für rlm 01060063
union all select substr(r, anz, 1) || l, 01070061
left(r, anz-1) || m, 01080061
substr(r, anz+1), 01090061
'mlr', anz-1, seq || 'y', lev+1 01100061
from h 01110037
where anz > 0 and lev < 9 and fth = 'rlm' 01120061
-- Schritt f -> t und h -> t für rml 01130063
union all select left(r, anz-1) || l, 01140061
substr(r, anz, 1) || m, 01150061
substr(r, anz+1), 01160061
'lmr', anz-1, seq || 'y', lev+1 01170061
from h 01180037
where anz > 0 and lev < 9 and fth = 'rml' 01190061
) 01200037
select substr(' ' || l, 1+length(l), 9) l, 01210061
substr(' ' || m, 1+length(m), 9) m, 01220061
substr(' ' || r, 1+length(r), 9) r, 01230061
fth, anz, seq, lev 01240037
from h 01250037
-- where right(seq, 1) <> 'x' 01260041
order by seq 01270037
}¢--- A540769.WK.SQL(EXHEX) cre=2015-06-17 mod=2015-06-17-17.15.27 A540769 -----
select hex(257), hex(-7) from sysibm.sysDummy1
}¢--- A540769.WK.SQL(EXLIKE) cre=2009-07-10 mod=2015-07-02-13.38.39 A540769 ----
with d (d) as 00001004
( 00002004
select 'ab%cd_ef' from sysibm.sysDummy1 00003004
union all select 'ab?cd?ef' from sysibm.sysDummy1 00004004
) 00005004
select d 00006004
, case when d like 'ab%' then 'ab% Li' else 'ab% No' end 00007004
, case when d like 'ab\%c%f' escape '\' 00008004
then 'ab\%c%f Li' else 'ab\%c%f No' end 00009004
, case when d like 'a%\__f' escape '\' 00009104
then 'a%\__f Li' else 'a%\__f No' end 00009204
from d 00009304
;xx; 00009404
select name 00010000
from sysibm.sysTables 00020000
where dbName = 'DGDB9998' 00030001
and name like strip('TWK4% ') 00040003
order by name 00050000
}¢--- A540769.WK.SQL(EXLOB) cre=2014-02-03 mod=2014-02-03-11.34.06 A540769 -----
SET CURRENT SQLID = 'S100447';
drop tablespace dA540769.exloblob;
commit;
CREATE LOB TABLESPACE EXLOBLOB
IN DA540769
USING STOGROUP "GSMS "
PRIQTY -1
SECQTY -1
ERASE NO
BUFFERPOOL BP8
DSSIZE 4G
CLOSE YES
LOCKMAX 0
GBPCACHE CHANGED
DEFINE YES
LOGGED
LOCKSIZE LOB;
CREATE TABLESPACE EXLOBNTR
IN DA540769
USING STOGROUP "GSMS "
PRIQTY -1
SECQTY -1
ERASE NO
BUFFERPOOL BP2
CLOSE NO
LOCKMAX SYSTEM
SEGSIZE 32
FREEPAGE 5
PCTFREE 20
GBPCACHE CHANGED
DEFINE YES
LOGGED
TRACKMOD YES
COMPRESS NO
LOCKSIZE ANY
MAXROWS 255
CCSID EBCDIC;
CREATE TABLE A540769.EXLOBNTRIES
(BROKERUUID CHARACTER(16) FOR BIT DATA
NOT NULL
,ACCESSID CHARACTER(60) FOR BIT DATA
NOT NULL
,QOPLEVEL CHARACTER(2) FOR BIT DATA
WITH DEFAULT NULL
,PERMISSIONS INTEGER
WITH DEFAULT NULL
,EXLOBNTRIES_ROWID ROWID
NOT NULL
GENERATED ALWAYS
,TOPIC BLOB(1G)
WITH DEFAULT NULL
,PRINCIPAL VARCHAR(128) FOR BIT DATA
NOT NULL
,CONSTRAINT BROKERUUID PRIMARY KEY
(BROKERUUID
,ACCESSID
)
)
IN DA540769.EXLOBNTR
APPEND NO
NOT VOLATILE CARDINALITY
DATA CAPTURE NONE
AUDIT NONE
CCSID EBCDIC;
CREATE UNIQUE INDEX A540769.EXLOBNTRIES
ON A540769.EXLOBNTRIES
(BROKERUUID ASC
,ACCESSID ASC
)
CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
DEFER NO
COPY NO
USING STOGROUP "GSMS "
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 5
PCTFREE 30
GBPCACHE CHANGED
PIECESIZE 2097152K;
CREATE AUXILIARY TABLE A540769.EXLOBNTRIES_LOBAUX
IN DA540769.EXLOBLOB
STORES A540769.EXLOBNTRIES
APPEND NO
COLUMN TOPIC;
CREATE UNIQUE INDEX A540769.EXLOBNTRIES_LOB_I2
ON A540769.EXLOBNTRIES_LOBAUX
PADDED
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE YES
COPY NO
USING STOGROUP "GSMS "
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
PIECESIZE 4194304K;
}¢--- A540769.WK.SQL(EXLOBINS) cre=2014-02-03 mod=2014-02-03-13.05.12 A540769 ---
call sqlConnect dp4g
call sqlUpdate , "delete from A540769.EXLOBNTRIES"
do ix = 0 to 10
call sqlUpdate , "insert into A540769.EXLOBNTRIES" ,
"(brokeruuid, accessid, qoplevel, permissions, topic, principal)",
"values('uuid"ix"', 'acces"ix"', 'qo'," ix,
", blob(repeat('topic" ix" '," 2**ix"))" ,
" || blob(repeat('topi2" ix" '," 2**ix"))" ,
" || blob(repeat('topi3" ix" '," 2**ix"))" ,
" || blob(repeat('topi4" ix" '," 2**ix"))" ,
" || blob(repeat('topi5" ix" '," 2**ix"))" ,
" || blob(repeat('topi6" ix" '," 2**ix"))" ,
" || blob(repeat('topi7" ix "'," 2**ix")), 'principal"ix"')"
end
call sqlCommit
$#out 20140203 13:05:08
SQLCODE = 000, SUCCESSFUL EXECUTION
warnings 4=W no where
sql = delete from A540769.EXLOBNTRIES
$#out 20140203 12:21:50
SQLCODE = 000, SUCCESSFUL EXECUTION
warnings 4=W no where
sql = delete from A540769.EXLOBNTRIES
$#out 20140203 12:14:32
SQLCODE = 000, SUCCESSFUL EXECUTION
warnings 4=W no where
sql = delete from A540769.EXLOBNTRIES
$#out 20140203 12:09:04
SQLCODE = 000, SUCCESSFUL EXECUTION
warnings 4=W no where
sql = delete from A540769.EXLOBNTRIES
$#out 20140203 12:08:28
SQLCODE = 000, SUCCESSFUL EXECUTION
warnings 4=W no where
sql = delete from A540769.EXLOBNTRIES
$#out 20140203 12:07:09
}¢--- A540769.WK.SQL(EXLOBIN2) cre=2014-02-03 mod=2014-02-03-13.34.25 A540769 ---
delete from A540769.EXLOBNTRIES;
insert into A540769.EXLOBNTRIES
(brokeruuid, accessid, qoplevel, permissions, topic, principal)
with u (ix, ll) as
(
select -1, cast(null as blob) from sysibm.sysDummy1
union all select 0, cast('' as blob) from sysibm.sysDummy1
union all select ix+1
, ll || blob(' <<< cat ix ' || char(ix) || ' >>> ') || ll
from u where ix < 22 and ix >= 0
)
select 'uuid ' || strip(ix)
, 'acce ' || strip(ix)
, 'qo', ix, ll
, 'princ ' || strip(ix)
from u
;
commit
;
call sqlUpdate , "insert into A540769.EXLOBNTRIES" ,
"(brokeruuid, accessid, qoplevel, permissions, topic, principal)",
"values('uuid"ix"', 'acces"ix"', 'qo'," ix,
", blob(repeat('topic" ix" '," 2**ix"))" ,
" || blob(repeat('topi2" ix" '," 2**ix"))" ,
" || blob(repeat('topi3" ix" '," 2**ix"))" ,
" || blob(repeat('topi4" ix" '," 2**ix"))" ,
" || blob(repeat('topi5" ix" '," 2**ix"))" ,
" || blob(repeat('topi6" ix" '," 2**ix"))" ,
" || blob(repeat('topi7" ix "'," 2**ix")), 'principal"ix"')"
end
call sqlCommit
$#out 20140203 13:33:45
}¢--- A540769.WK.SQL(EXLOBLOA) cre=2014-02-03 mod=2014-02-03-13.21.28 A540769 ---
//A540769L JOB (CP00,KE50),
// 'CATALOG',MSGCLASS=T,TIME=1440,
// NOTIFY=&SYSUID,REGION=0M
//*MAIN CLASS=LOG
//*
//***************************************************
//* UNLOAD COPY
//***************************************************
//STEP1 EXEC PGM=DSNUTILB,TIME=1440,
// PARM=(DP4G,'A540769L.LOAD'),
// REGION=0M
//*DSSPRINT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//UTPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSTEMPL DD DSN=DP4G.DBAA.LISTDEF(TEMPL),DISP=SHR
//SYSIN DD *
TEMPLATE INP
DSN('DP4G.DA540769.EXLOBNTR.P00000.D140203.REC')
DISP(OLD,KEEP,KEEP)
LISTDEF LST
INCLUDE TABLESPACE DA540769.EXLOBNTR PARTLEVEL ALL
LOAD DATA LOG NO RESUME NO REPLACE
SORTKEYS
-- ENFORCE NO
SORTDEVT DISK
WORKDDN(TSYUTD,TSOUTD)
INDDN INP
EBCDIC CCSID(00500,00000,00000)
FORMAT SPANNED YES
INTO TABLE
"A540769".
"EXLOBNTRIES"
WHEN(00001:00002) = X'0027'
NUMRECS 11
IGNOREFIELDS YES
( "BROKERUUID"
POSITION( 00003:00018) CHAR(00016)
, "ACCESSID"
POSITION( 00019:00078) CHAR(00060)
, "QOPLEVEL"
POSITION( 00080:00081) CHAR(00002)
NULLIF(00079)=X'FF'
, "PERMISSIONS"
POSITION( 00083:00086) INTEGER
NULLIF(00082)=X'FF'
, "PRINCIPAL"
POSITION( 00087) VARCHAR
, "DSN_NULL_IND_00006" POSITION( *) CHAR(1)
, "TOPIC"
POSITION( *) BLOB
NULLIF(DSN_NULL_IND_00006)=X'FF'
)
COPY LIST LST COPYDDN(TCOPYD)
PARALLEL
SHRLEVEL CHANGE
//*
}¢--- A540769.WK.SQL(EXLOBSEL) cre=2014-02-03 mod=2014-02-03-11.51.28 A540769 ---
select length(topic) toplen
, length(principal) prinlen
, principal
, substr(topic, 1, 100)
from A540769.EXLOBNTRIES
;
}¢--- A540769.WK.SQL(EXLOBUNL) cre=2014-02-03 mod=2014-02-03-17.20.25 A540769 ---
//A540769V JOB (CP00,KE50),
// 'CATALOG',MSGCLASS=T,TIME=1440,
// NOTIFY=&SYSUID,REGION=0M
//*MAIN CLASS=LOG
//*
//***************************************************
//* UNLOAD COPY
//***************************************************
//STEP1 EXEC PGM=DSNUTILB,TIME=1440,
// PARM=(DP4G,'A540769V.UNLOAC'),
// REGION=0M
//*DSSPRINT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//UTPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSTEMPL DD DSN=DP4G.DBAA.LISTDEF(TEMPL),DISP=SHR
//SYSIN DD *
UNLOAD DATA
PUNCHDDN TPUNCH UNLDDN TSRECD SPANNED YES MAXERR 20
SHRLEVEL CHANGE
FROM TABLE A540769.EXLOBNTRIES
( BROKERUUID
, ACCESSID
, QOPLEVEL
, PERMISSIONS
, PRINCIPAL
, TOPIC BLOB
)
}¢--- A540769.WK.SQL(EXLPAD) cre=2014-09-29 mod=2014-09-29-10.34.16 A540769 ----
with l (t, l) as
( select 'eins', 0 from sysibm.sysDummy1
union all select t, l+1 from l where l < 8
)
select t, l
,'<' || lPad(t, l) || '>'
from l
}¢--- A540769.WK.SQL(EXNULL) cre=2014-11-15 mod=2014-11-18-13.42.12 A540769 ----
with u (u) as
( select 1 from sysibm.sysdummy1
union all select 9 from sysibm.sysdummy1
union all select cast( null as int) from sysibm.sysdummy1
)
select u
, case when u in (1,5) then 'in' else 'in else' end
, case when u not in (1,5) then 'not in' else 'not in else' end
, case when 1=0 or u in (1,5) then 'or in' else 'or in else' end
from u
-- where u not in (1,5)
;x;
}¢--- A540769.WK.SQL(EXOLAP) cre=2011-11-11 mod=2013-07-16-17.06.48 A540769 ----
with d(a, rest, lev) as
( select ' ', 'abccdefffgh', 0 from sysibm.sysDummy1
union all select substr(rest, lev+1, 1), rest, lev+1
from d where lev < 999 and lev < length(rest)
)
select a
, row_number() over(order by a) "rowNum"
, rank () over(order by a) "rank"
, dense_rank() over(order by a) "denseRank"
from d
;x;
-- row_number
select row_number() over ()
, card, strip(creator) || '.' || name
from sysibm.sysTables
where dbName like 'U%'
order by dbName, name
with ur
;
with t as -- row_number in Select
( -- braucht with
select row_number() over () row
, strip(creator) || '.' || strip(name) tb
from sysibm.sysTables
where dbName like 'U%'
order by creator, name
)
select *
from t
where mod(row, 20) = 0
with ur
;
with t as -- vergleich in %
( -- mit nächst kleinerem
select row_number() over (partition by dbName order by card desc) row
, card, dbName db, name tb
from sysibm.sysTables
where dbName like 'U%'
)
select case when k.db is null or k.card < 1 then null
else smallint(real(g.card)*100/k.card) end
, g.*
from t g
left join t k
on g.db = k.db and g.row+1 = k.row
order by g.db, g.row
with ur
}¢--- A540769.WK.SQL(EXOLAP1) cre=2011-11-09 mod=2011-11-09-18.05.47 A540769 ---
with a (n,s,r, rdb, rts, aas, ade, chtst, db) as
(
select substr(name,1, 12) tb, real(spacef) spacef
, int(row_number () over ())
, smallint(row_number () over (partition by dbname
order by spacef desc))
, smallint(row_number () over (partition by tsname
order by spacef desc ))
, smallint(rank () over (partition by dbname
order by spacef asc))
, smallint(rank () over (partition by dbname
order by spacef desc ))
, row change timestamp for t
, dbName
from sysibm.systables t
where dbName like 'M%' and type = 'T'
)
select * from a
where rdb < 5
order by db, s
fetch first 100 rows only
;
}¢--- A540769.WK.SQL(EXOLAP2) cre=2011-11-11 mod=2011-11-14-17.56.52 A540769 ---
select substr(dbName, 1, 8) db
, substr(name, 1, 10) tb
, card
, smallint(row_number() over (partition by dbName
order by dbName, card desc nulls last)) row
, smallint(rank () over (partition by dbName
order by dbName, card desc nulls last)) rnk
, smallint(dense_rank() over (partition by dbName
order by dbName, card desc nulls last)) den
from sysibm.sysTables
where dbName like 'U%'
order by dbName, card desc
;;
, smallint(row_number() over (
order by dbName, card desc nulls last)) trow
, smallint(rank () over (
order by dbName, card desc nulls last)) trnk
, smallint(dense_rank() over (
order by dbName, card desc nulls last)) tden
}¢--- A540769.WK.SQL(EXPACK) cre=2014-02-14 mod=2014-02-14-13.16.38 A540769 ----
declare global temporary table session.p(p varbinary(1000));
insert into session.p values(
pack(ccsid 1208, 'ein name', 123, 'und etwas mehr text'));
select unpack(p).*
as (name char(16) ccsid unicode
, num int, text varchar(30) ccsid unicode)
, hex(p)
, hex(cast('ein name' as char(10) ccsid unicode))
from session.p
;
select unpack(p).*
as (name char(16)
, num int, text varchar(30) )
from session.p
}¢--- A540769.WK.SQL(EXPLAGRO) cre=2008-11-28 mod=2008-11-28-11.54.15 F540769 ---
select max(bind_time) from cmnbatch.plan_table
where progName = 'YAVX016'
;
select * from cmnbatch.plan_view5a
where progName = 'YAVX016'
and queryno in (159)
and bind_time = '2008-11-17-16.51.59.801961'
order by applname, progname, queryNo, qblockno, planno
;
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 111 for
SELECT h_res1.h_code as h_analyse
,sum(h_res1.h_val) as h_valReprt
,sum(h_res1.h_valComp) as h_valComp
,round(float(sum(h_res1.h_val))
/ float(4.23)
* 100,2) as h_perc
from
(select AssetMainClass as h_code
,coalesce(MktValInCompCcy,0)
+ AccrIntInCompCcy as h_valComp
,coalesce(MktValInReprtCcy,0)
+ AccrIntInReprtCcy as h_val
from oa1t.VAV150A2
Where ReprtUuid = ?
And PartitionId = ?
And ObjectTypeCd NOT IN(131,141)
And ((coalesce(MktValInReprtCcy,0)
+ AccrIntInReprtCcy) > 0)) as h_res1
group by h_res1.h_code
order by h_valComp desc
for fetch only
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
}¢--- A540769.WK.SQL(EXPLAHAR) cre=2008-09-18 mod=2008-09-18-12.32.47 F540769 ---
set current sqlId = 'A540769';
select char(left(v.version, 10), 10), v.* from cmnbatch.plan_view5a v
where v.progName = 'YYWM05E'
and v.version in ('A18Q002827','WSIN000043','WSIN000056')
and v.bind_time in
('2008-09-11-13.36.40.058999',
'2008-02-07-15.41.51.027494')
order by v.applname, v.progname,
v.queryNo, v.version, v.qblockno, v.planno
with ur
;
;
x
select * from cmnbatch.plan_view5
where progName = 'YUU1022'
-- and stmt = '000982'
-- and version = 'WS8B000620'
-- and bind_time = '2008-05-19-08.34.31.808699'
order by applname, progname, timestamp ,
queryNo, qblockno, planno
;
sdf
xelect PROCMS, PROCSU, float(procSu) / float(procMs) * 1000
from cmnbatch.dsn_statemnt_table
-- where progname = 'MF7270' and queryNo = 149
where group_member = 'DOF1' and procMS > 1000
fetch first 100 rows only
;
x
delete from A540769.plan_table
;
explain plan for -- set queryno = 149 for
SELECT count(*)
FROM oa1p.TWM005A1
WHERE D$GUEA <= ? AND D$GUEB >= ?
AND CSTAT BETWEEN ? AND ? AND CDEFAULT BETWEEN ? AND ?
AND CKAT = ? AND NVALOR = ? QUERYNO 149
for fetch only
;
select * from plan_view5
where queryno in ( 149, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
x
select * from cmnbatch.plan_view5
where progName = 'YYWM51E'
and stmt = '000149'
-- and version = 'WS8B000620'
-- and bind_time = '2008-05-19-08.34.31.808699'
order by applname, progname, timestamp ,
queryNo, qblockno, planno
;
------- dangelmeier
xelect * from cmnbatch.plan_view5a
where progName = 'YDWGBG'-- and timestamp > '200802'
and stmt = '000754'
and version = 'DEPO0000535AA7DD34MVS'
order by applname, progname, timestamp ,
queryNo, qblockno, planno
;
xelect *
from sysibm.syscoldist
where tbname like 'TWU11%'
-- and name = 'WU111003'
;
xelect a.* , b.*
from
(select case when 1=0 then 1 else null end k, 'a' t
from sysibm.sysdummy1 ) a
join
(select case when 1=0 then 1 else null end k, 'b' t
from sysibm.sysdummy1 ) b
on a.k = b.k --or (a.k is null and b.k is null)
;
x
select count(*), wu110021
from oa1p.twu110a1
group by wu110021
order by 1 desc
with ur
;
xelect count(*), wu111003
from oa1p.twu111a1
group by wu111003
order by 1 desc
with ur
;
x
set current sqlId = 'A540769';
delete from A540769.plan_table
;
explain plan set queryno = 111 for
select T111.auftrnr, -- /* Alle Daten */
t111.rectyp,
t111.ahnr,
t111.shlnr,
t111.shbu,
t111.uuid,
t111.bestauftr,
t111.briefnr,
t111.briefvar,
t111.antnr,
t111.antvar,
t111.antterm,
t111.sprache,
t111.verarbstat,
t111.ausgrund,
t110.paketid
from oa1p.VWU110A1V T110, -- /* Bestandestable */
oa1p.VWU111A1V T111 -- /* Auftragstable */
where t110.auftrnr = t111.auftrnr -- /* Auftragsnummer */
and t111.ahnr = 'abcdefgh' -- /* Aktionsheader */
and t110.paketid = 'abcedef' -- Paket-Nummer */
and t111.verarbstat = 123 -- /* Status */
group by T111.auftrnr, -- je Gruppe einmal
t111.rectyp,
t111.ahnr,
t111.shlnr,
t111.shbu,
t111.uuid,
t111.bestauftr,
t111.briefnr,
t111.briefvar,
t111.antnr,
t111.antvar,
t111.antterm,
t111.sprache,
t111.verarbstat,
t111.ausgrund,
t110.paketid
order by t111.ahnr, -- Sortierreihenfolge
t111.shlnr,
t111.shbu,
t111.auftrnr
for fetch only
;
select * from plan_view5
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
xelect queryNo, qBlockno, planno, timestamp, bind_time, version
from cmnbatch.plan_table
where progName = 'YDWGBG'-- and timestamp > '200802'
-- and stmt = '000754'
order by applname, progname, version , timestamp ,
queryNo, qblockno, planno
;
select * from cmnbatch.plan_view5
where progName = 'YDWGBG'-- and timestamp > '200802'
-- and stmt = '000754'
order by applname, progname, timestamp ,
queryNo, qblockno, planno
;
x -- Härdi 16.5.08
select * from cmnbatch.plan_view5
where progName = 'YYWM51E'-- and timestamp > '200802'
and stmt = '000153'
order by applname, progname, timestamp ,
queryNo, qblockno, planno
;
x
select ckat, count(*) from oa1p.tWM005A1
group by ckat
order by 2 desc
;
set current sqlId = 'A540769';
delete from A540769.plan_table
;
explain plan set queryno = 111 for
select
c.dbname, c.tsName, c.dsNum, s.pgSize,
icType, copyPagesf, dsName, timestamp,
case when timestamp > current timestamp - 24 hours then 'h'
else 'g' end gest
from sysibm.syscopy c, sysibm.systablespace s
where icType in ('F', 'I') and c.dbName like 'M%'
and s.dbName = c.dbName and s.name = c.tsName
;
explain plan set queryno = 222 for
select
c.dbname, c.tsName, c.dsNum, s.pgSize,
icType, copyPagesf, dsName, timestamp,
case when timestamp > current timestamp - 24 hours then 'h'
else 'g' end gest
from sysibm.syscopy c, sysibm.systablespace s
where icType in ('F', 'I') and c.dbName like 'M%'
and s.dbName = c.dbName and s.name = c.tsName
order by 1, 2,3, timestamp desc
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
select count(*), jobname, max(partition), min(partition)
from sysibm.syscopy c, sysibm.systablepart p
where c.dbName = p.dbName and c.tsName = p.tsname
and c.dsNum in (0, p.partition)
group by jobName
order by 1 desc
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
xelect *
from CMNBATCH.plan_view5
where progName = 'DBWK3'
order by applname, progname, queryNo, qblockno, planno
;
xelect count(*), auftrags_nummer, pm_id
from oa1t.vpw210a1V
group by auftrags_nummer, pm_id
order by 1 desc
;
--select count(*) from oa1t.TSN100A1
-- with ur
-- ;
select *
from CMNBATCH.plan_view5
where progName = 'YPW2KPI' and queryNo = 4235
order by applname, progname, queryNo, qblockno, planno
;
x
set current sqlid = 'A540769'
;
delete from plan_table where queryno in (111, 222)
;
select current timestamp from sysibm.sysdummy1
;
explain plan set queryno = 111 for
SELECT T.* FROM oa1t.VNI600A101A C
, oa1t.VNI203A101A T
WHERE T.PERENDDT >= DATE(C.CTRLTIMESTMPFROM)
AND C.CTRLID = 'NI6220R'
;
select current timestamp from sysibm.sysdummy1
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
explain plan set queryno = 222 for
WITH NI600 (PERENDDT) AS
(SELECT DATE(C.CTRLTIMESTMPFROM) AS ENDDT
FROM oa1t.VNI600A101A C
WHERE C.CTRLID = 'NI6220R'
)
SELECT T.* FROM NI600
,oa1t.VNI203A101A T
WHERE T.PERENDDT >= NI600.PERENDDT
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
select * from plan_view5
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
x
select *
from cmnbatch.plan_view5
where progName = 'YRPNIMP' and queryNo = 866
order by applname, progname, queryNo, qblockno, planno
;
x
d.bType, p.collid, p.Name, p.version,
p.conToken, p.timeStamp, p.type,
p.validate, p.isolation, p.valid, p.operative,
p.owner, p.qualifier
m sysibm.syspackdep d join sysibm.syspackage p
on p.location = d.dLocation and p.collid = d.dCollid
and p.name = d.dName and p.conToken = d.dConToken 2.22.129867'
re
(bQualifier, bName, bType) in
( select dbName, name, 'R'
from sysIbm.sysTablespace
where dbName in ('NF01A1A', 'NF02A1A', 'NF03A1A')
)
from gdb0283.vnz240a1v
where SearchValue01 = ?
-- dec(SearchValue01,15,3) = ?
and CreateDateTime < ?
and dec(SearchValue02,15,3) >= ?
and dec(SearchValue02,15,3) <= ?
and Objtype ^= 'PORDSPLT'
order by CreateDateTime
fetch first 101 rows only
optimize for 101 rows
with ur
;
select * from plan_view5A
where queryno = 999
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
select * from plan_table
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
}¢--- A540769.WK.SQL(EXPLAIBP) cre=2011-01-19 mod=2014-08-05-18.13.58 A540769 ---
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 713 for
SELECT A.BP20401, A.BP20404, A.BP20410, A.BP20411, B.BP20004,
B.BP20017, B.BP20013, B.BP20022, C.BP20501, C.BP20504, C.BP20509,
C.BP20510, C.BP20512
FROM oa1p.TBP204A1 A, oa1p.TBP200A1 B, oa1p.TBP205A1 c
WHERE A.BP20401 = ? AND A.BP20402 <= ? AND A.BP20403 >= ?
AND A.BP20405 = ? AND A.BP20409 = 'A' AND
B.BP20001 = A.BP20411 AND B.BP20002 <= ? AND B.BP20005 = ?
AND B.BP20003 >= ? AND C.BP20501 = A.BP20411 AND
C.BP20502 <= ? AND C.BP20503 >= ? AND C.BP20505 = ?
AND ( ( C.BP20508 = 1 AND C.BP20513 <> 'LAE ' ) OR (
C.BP20508 = 3 AND C.BP20513 = 'LAE ' ) )
;
explain plan set queryno = 1 for
select *
FROM
oa1t.TBP200A1 A,
oa1t.TBP204A1 B,
oa1t.TBP205A1 C
WHERE
BP20001=BP20411
AND BP20501=BP20411
AND BP20002<=?
AND BP20003>=?
AND BP20005=?
AND BP20402<=?
AND BP20403>=?
AND BP20405=?
AND BP20502<=?
AND BP20503>=?
AND BP20505=?
AND BP20401 BETWEEN ? AND ?
AND BP20409=?
AND BP20508=?
AND BP20509=X'000E55C8B07D169CF6B85C8360409021C8E90001'
ORDER BY
BP20401,
BP20508 FOR FETCH ONLY WITH UR
;
select * from plan_view2
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
set current path oa1t;
select n, max(c) max, fosFmtE7(avg(real(c))) avg,
sum(c) card, count(*) dist
from
(
select 'bp205.5.9' n, count(*) c
from oa1t.TBP205A1 C
group by BP20505, BP20509
union all select 'bp200.1' n, count(*) c
from oa1t.TBP200A1
group by BP20001
union all select 'bp204.11.5' n, count(*) c
from oa1t.TBP204A1 C
group by BP20411, BP20405
) x
group by n
with ur
;;;
;;;
select count(*), BP20505, BP20509
from oa1t.TBP205A1 C
group by BP20505, BP20509
order by 1 desc
fetch first 10 rows only
with ur
;;;
select count(*), BP20411, BP20405
from oa1t.TBP204A1 C
group by BP20411, BP20405
order by 1 desc
fetch first 10 rows only
with ur
;;;
}¢--- A540769.WK.SQL(EXPLAIBS) cre=2012-09-05 mod=2012-10-30-12.31.06 A540769 ---
with cx as
(
select dbName db, tsName ts, dsNum part, instance
, count(*) cnt
, max(case when ICTYPE IN ('F','R','X')
then char(timestamp) || icType || strip(dsNum)
else '' end) laFu
, max(case when ICTYPE IN ('I')
then char(timestamp) || icType || strip(dsNum)
else '' end) laInc
from sysibm.sysCopy
where ICTYPE IN ('F','R','X', 'I')
group by dbName, tsName, dsNum, instance
)
, c as
(
select max(c1.laFu, coalesce(c0.laFu, '')) laFu,
max(c1.laInc, coalesce(c0.laInc, '')) laInc,
c1.db, c1.ts, c1.part, c1.instance
from cx c1
left join cx c0
on c0.db = c1.db and c0.ts = c1.ts
and c1.part <> 0 and c0.part = 0
)
select * from c
;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
with ci(c, i) as
( select 'N', 1 from sysibm.sysDummy1
union all select 'Y', 1 from sysibm.sysDummy1
union all select 'Y', 2 from sysibm.sysDummy1
)
, p as
(
SELECT PT.DBNAME, pt.tsName, pt.partition, ci.i, ts.clone, ts.instance,
case when ts.instance = i then 'base' else 'clone' end baCl,
( SELECT char(timestamp) || icType
FROM SYSIBM.SYSCOPY CP
WHERE PT.DBNAME = CP.DBNAME
AND PT.TSNAME = CP.TSNAME
AND cp.dsNum in (PT.PARTITION, 0)
AND cp.instance = ci.i
AND CP.ICTYPE IN ('F','R','X')
order by timestamp desc
fetch first 1 row only
) laFull,
r.nActive,
COPYLASTTIME,
COPYUPDATEDPAGES,
COPYCHANGES,
COPYUPDATETIME
---- end @proc selIncrCopy: select fullcopy etc. --------------------
FROM SYSIBM.SYSDATABASE DB
join SYSIBM.SYSTABLESPACE TS
on DB.NAME = PT.DBNAME
join SYSIBM.SYSTABLEPART PT
on DB.NAME = TS.DBNAME
AND TS.NAME = PT.TSNAME
join ci on ci.c=ts.clone
left join SYSIBM.SYSTABLESpaceStats r
on r.dbid = db.dbid
and r.psid = ts.psid
and r.partition = pt.partition
and r.instance = ci.i
WHERE 0 = 0
---- end @proc missFUllcopies1: fehlende Fullcopies -----------------
---- begin @proc exclude ----------------------------------------------
----- begin @proc exclGen: gemeinsame excludes -------------------------
AND NOT (PT.DBNAME like 'DSNDB%') -- DB2 CATALOG
AND NOT (PT.DBNAME LIKE 'DSN8%') -- IBM TEST DB
AND NOT (PT.DBNAME LIKE 'WKDBD%') -- DB2 WORK DATABASE
AND NOT (PT.DBNAME = 'DSNTESQ') -- DB2 CATALOG CLONE
AND NOT (PT.DBNAME LIKE 'DB2MAPP%') -- REORG MAPPING TABLES
AND NOT (PT.DBNAME LIKE 'DB2PLAN%') -- explain tables
and not translate(PT.dbName, '999999999AAAAAA', '012345678FISWXY')
= 'DA999999' -- user datenbanken
AND NOT (PT.DBNAME LIKE 'DB2ALA%') -- marec generated
AND NOT (PT.DBNAME LIKE '%MAREC%') -- marec generated
AND NOT (PT.DBNAME LIKE 'DACME%') -- Mail Heinz Bühler
AND NOT (PT.DBNAME LIKE 'DGDB%') -- PROTOTYPEN
AND NOT (PT.DBNAME LIKE 'DGO%') -- PROTOTYPEN
AND NOT (PT.DBNAME LIKE '%A1X%') -- Neue Prototypen
AND NOT (PT.DBNAME LIKE 'DAU%') -- Schulung Gerrit
AND NOT (PT.DBNAME LIKE 'IDT%') -- ibm tools
---- end @proc exclGen: gemeinsame excludes ------------------------
AND NOT (PT.DBNAME LIKE 'OE02%') -- Mail Ivo Eichmann
AND NOT (PT.DBNAME LIKE 'CSQ%') -- M-QUEUE DATENBANK
---- end @proc exclude ---------------------------------------------
---- end @proc exclGen: gemeinsame excludes -------------------------
AND NOT (PT.DBNAME = 'XC01A1P' AND PT.TSNAME LIKE 'A2%' )
-- EOS: Armin Breyer
AND NOT (PT.DBNAME = 'XR01A1P' AND PT.TSNAME LIKE 'A2%' )
-- ERET: Armin Breyer
AND NOT (PT.DBNAME = 'CSQDBOC' AND PT.TSNAME like 'TSBLOB%' )
---- end @proc exclude ----------------------------------------------
AND DB.TYPE NOT IN ('T','W')
---- begin @proc missFUllcopies2: fehlende Fullcopies -----------------
AND TS.NTABLES <> 0
AND PT.SPACEF <> -1 -- attention space is sometimes wrong|
)
, q as
(
select case when laFull < char(current timestamp - 171 hours)
then 'full old'
when copyUpdateTime > current timestamp - 3 hours
then 'no newUpd'
when nActive * 0.1 <= COPYUPDATEDPAGES then 'full upda'
when COPYUPDATEDPAGES <> 0 or copyChanges <> 0 then 'inc'
else 'no changes'
end copy,
p.*
from p
)
select *
from q
where left(copy, 2) <> 'no'
ORDER BY DBNAME, TSNAME, PARTITION, i
WITH UR
;
select * from plan_view1
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by --collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAIBV) cre=2012-07-25 mod=2012-07-25-12.06.25 A540769 ---
--- versionen, compiles und explains eines packages -------------------
select *
from cmnbatch.plan_view0
where collid = 'BV'
and prog = 'YBVPUTS'
order by pcBi desc, bind_Time desc
with ur
;x;
--- ausgewählte Explains analysieren
select *
-- from cmnbatch.plan_view1
from cmnbatch.plan_view2
-- from cmnbatch.plan_view2Det
where collid = 'MF'
and progName = 'MF7010'
and bind_time = '2011-08-30-14.14.59.234601'
order by collid, progName, version, bind_time,
queryno, qBlockNo, planno, mixopSeq
with ur
;
select *
from cmnbatch.plan_viewPred
where collid = 'MF'
and progName = 'MF7010'
and bind_time = '2011-08-30-14.14.59.234601'
order by collid, progName, applName, bind_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
}¢--- A540769.WK.SQL(EXPLAICD) cre=2014-05-26 mod=2014-05-26-17.10.15 A540769 ---
--- versionen, compiles und explains eines packages -------------------
select *
from cmnbatch.plan_view0
where collid = 'CD'
and prog = 'YCDPUT3'
order by pcBi desc, bind_Time desc
with ur
;x;
--- ausgewählte Explains analysieren
select *
-- from cmnbatch.plan_view1
from cmnbatch.plan_view2
-- from cmnbatch.plan_view2Det
where collid = 'MF'
and progName = 'MF7010'
and bind_time = '2011-08-30-14.14.59.234601'
order by collid, progName, version, bind_time,
queryno, qBlockNo, planno, mixopSeq
with ur
;
select *
from cmnbatch.plan_viewPred
where collid = 'MF'
and progName = 'MF7010'
and bind_time = '2011-08-30-14.14.59.234601'
order by collid, progName, applName, bind_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
}¢--- A540769.WK.SQL(EXPLAICM) cre=2015-05-29 mod=2015-05-29-10.27.21 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
SELECT DISTINCT ROLE_KEY FROM SSXX28Q0.SCM_ORG_ROLE
WHERE ROLE_TYPE = 'CMN-ACF-RULE'
AND ROLE_KEY_TYPE LIKE 'USER%'
AND ROLE_PID = 'F325756'
UNION SELECT DISTINCT ROLE_KEY FROM SSXX28Q0.SCM_ORG_ROLE
WHERE ROLE_TYPE = 'CMN-ACF-RULE'
AND ROLE_KEY_TYPE LIKE 'ORG%'
AND ROLE_PID IN ('K','KG','KGO','KGOU','KGOU3','KGOU32','KGOU322')
;
explain plan set queryno = 5 for
SELECT DISTINCT ROLE_KEY FROM SSXX28QS.SCM_ORG_ROLE
WHERE ROLE_TYPE = 'CMN-ACF-RULE'
AND ROLE_KEY_TYPE LIKE 'USER%'
AND ROLE_PID = 'F325756'
UNION SELECT DISTINCT ROLE_KEY FROM SSXX28QS.SCM_ORG_ROLE
WHERE ROLE_TYPE = 'CMN-ACF-RULE'
AND ROLE_KEY_TYPE LIKE 'ORG%'
AND ROLE_PID IN ('K','KG','KGO','KGOU','KGOU3','KGOU32','KGOU322')
;
explain plan set queryno = 13 for
SELECT DISTINCT ROLE_KEY FROM SSXX28Q0.SCM_ORG_ROLE
WHERE '' || ROLE_TYPE = 'CMN-ACF-RULE'
AND ((ROLE_KEY_TYPE LIKE 'USER%'
AND ROLE_PID = 'F325756'
) or
( ROLE_KEY_TYPE LIKE 'ORG%'
AND ROLE_PID
IN ('K','KG','KGO','KGOU','KGOU3','KGOU32','KGOU322')
))
;
explain plan set queryno = 14 for
SELECT DISTINCT ROLE_KEY FROM SSXX28Q0.SCM_ORG_ROLE r
where (role_type, role_key_type, role_key)
in ( select role_type, role_key_type, role_key
FROM SSXX28Q0.SCM_ORG_ROLE s
WHERE ROLE_TYPE = 'CMN-ACF-RULE'
AND ((ROLE_KEY_TYPE LIKE 'USER%'
AND ROLE_PID = 'F325756'
) or
( ROLE_KEY_TYPE LIKE 'ORG%'
AND ROLE_PID
IN ('K','KG','KGO','KGOU','KGOU3','KGOU32','KGOU322')
)))
;
select * from plan_view1
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
with ur
;
rollback
;;;;
select count(*), role_type, min(role_key_type)
, max(role_key_type)
from SSXX28QS.SCM_ORG_ROLE
group by role_type, left(role_key_type, 3)
order by 1 desc
fetch first 100 rows only
with ur
;x;
}¢--- A540769.WK.SQL(EXPLAICO) cre=2010-06-09 mod=2013-11-08-13.55.45 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 1 for
select * from sysibm.sysCopy c
where rid(c) = (select rid(n)
from sysibm.sysCopy n
where n.dbName = 'DSNDB06' and tsName like '%TB%'
order by timestamp desc
fetch first row only
)
;
explain plan set queryno = 2 for
with a as
(
select strip(dbName) || '.' || strip(name) ts
, (select rid(n)
from sysibm.sysCopy n
where n.dbName = s.dbName and tsName = s.name
order by timestamp desc
fetch first row only
) coRid
from sysibm.sysTablespace s
where dbName = 'DSNDB06'
)
select ts, c.*
from a join sysibm.sysCopy c
on rid(c) = a.coRid
;
explain plan set queryno = 3 for
SELECT 'DI,PI,PA,IN' , DBID , PSID , PARTITION , INST
from
( select s.dbName, s.name, p.partition
, c.inst, s.dbid, s.psid
, case when c.inst is null
then raise_Error(70001, 'c.inst null '
|| s.dbName || '.' || s.name)
when s.nTables < 1 then 'n noTables ' || s.nTables
when p.space < 0 then 'n defineNo ' || s.space
when f.icType is null then 'f f.icType null'
when f.icType <> 'F' then 'f f.logDiscontinuity'
when f.timestamp < current timestamp-7 days then 'f week'
when i.icType is null then 'f i.icType null'
when i.icType not in ('I','F') then 'f i.logDiscontinuity'
when r.updateStatsTime is null then 'f noRts'
when r.copyLastTime is null then 'f r.copyLast null'
when i.timestamp < r.copyLastTime - 60 seconds
then 'f i << r.copyLast'
when r.nactive * 0.1 <= r.copyupdatedpages
then 'f updates'
when r.copyupdatedpages > 0 then 'i updates'
when r.copyChanges > 0 then 'i changes'
when r.copyUpdateLRSN is not null then 'i openUpdate'
else 'n noUpdates'
end what
from sysibm.sysTablespace s
left join -- clone handling: add instances
( select 'N', 1, 1, '-' from sysibm.sysDummy1
union all select 'Y', 1, 1, 'B' cl from sysibm.sysDummy1
union all select 'Y', 1, 2, 'C' cl from sysibm.sysDummy1
union all select 'Y', 2, 1, 'C' cl from sysibm.sysDummy1
union all select 'Y', 2, 2, 'B' cl from sysibm.sysDummy1
) c (sC, sI, inst, cln)
on s.clone = c.sC and s.instance = c.sI
join sysibm.sysTablePart p
on s.dbName = p.dbName and s.name = p.tsName
left join sysibm.sysTableSpaceStats r
on s.dbName = r.dbName and s.name = r.name
and s.dbid = r.dbid and s.psid = r.psid
and p.partition = r.partition and r.instance = c.inst
left join -- newest incremental or full copy or log discontinuity
( select c.*
, row_number() over(partition by dbName, tsName, dsNum
-- , instance
order by timestamp desc) rn
from sysibm.sysCopy c
where c.icType not in ('D', 'M', 'Q', 'R', 'T', 'X', 'Z')
) i on i.rn = 1
and s.dbName = i.dbName and s.Name = i.tsName
and p.partition = i.dsNum
-- and i.instance = c.inst
left join -- newest full copy or log discontinuity
( select c.*
, row_number() over(partition by dbName, tsName, dsNum
, instance
order by timestamp desc) rn
from sysibm.sysCopy c
where c.icType not in ('D','I','M','Q', 'R', 'T', 'X', 'Z')
) f on f.rn = 1
and s.dbName = f.dbName and s.Name = f.tsName
and p.partition = f.dsNum
and f.instance = c.inst
) q
where what like 'f%%'
; /*
explain plan set queryno = 7 for
SELECT 'DI,PI,PA,IN' , DBID , PSID , PARTITION , INST
from
( select s.dbName, s.name, p.partition
, c.inst, s.dbid, s.psid
, case when c.inst is null
then raise_Error(70001, 'c.inst null '
|| s.dbName || '.' || s.name)
when s.nTables < 1 then 'n noTables ' || s.nTables
when p.space < 0 then 'n defineNo ' || s.space
when f.icType is null then 'f f.icType null'
when f.icType <> 'F' then 'f f.logDiscontinuity'
when f.timestamp < current timestamp-7 days then 'f week'
when i.icType is null then 'f i.icType null'
when i.icType not in ('I','F') then 'f i.logDiscontinuity'
when r.updateStatsTime is null then 'f noRts'
when r.copyLastTime is null then 'f r.copyLast null'
when i.timestamp < r.copyLastTime - 60 seconds
then 'f i << r.copyLast'
when r.nactive * 0.1 <= r.copyupdatedpages
then 'f updates'
when r.copyupdatedpages > 0 then 'i updates'
when r.copyChanges > 0 then 'i changes'
when r.copyUpdateLRSN is not null then 'i openUpdate'
else 'n noUpdates'
end what
from sysibm.sysTablespace s
left join -- clone handling: add instances
( select 'N', 1, 1, '-' from sysibm.sysDummy1
union all select 'Y', 1, 1, 'B' cl from sysibm.sysDummy1
union all select 'Y', 1, 2, 'C' cl from sysibm.sysDummy1
union all select 'Y', 2, 1, 'C' cl from sysibm.sysDummy1
union all select 'Y', 2, 2, 'B' cl from sysibm.sysDummy1
) c (sC, sI, inst, cln)
on s.clone = c.sC and s.instance = c.sI
join sysibm.sysTablePart p
on s.dbName = p.dbName and s.name = p.tsName
left join sysibm.sysTableSpaceStats r
on s.dbName = r.dbName and s.name = r.name
and s.dbid = r.dbid and s.psid = r.psid
and p.partition = r.partition and r.instance = c.inst
-- newest incremental or full copy or log discontinuity
left join sysibm.sysCopy i
on rid(i) = (select rid(j)
from sysibm.sysCopy j
where s.dbName = j.dbName and s.Name = j.tsName
and p.partition = j.dsNum
and j.instance = c.inst
and j.icType not in ('D', 'M', 'Q', 'R', 'T', 'X', 'Z')
order by timestamp desc
fetch first row only
)
left join -- newest full copy or log discontinuity
( select c.*
, row_number() over(partition by dbName, tsName, dsNum
, instance
order by timestamp desc) rn
from sysibm.sysCopy c
where c.icType not in ('D','I','M','Q', 'R', 'T', 'X', 'Z')
) f on f.rn = 1
and s.dbName = f.dbName and s.Name = f.tsName
and p.partition = f.dsNum
and f.instance = c.inst
) q
where what like 'f%%'
; */
select * from plan_view1
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by --collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAICT) cre=2012-06-25 mod=2012-06-25-07.31.23 A540769 ---
--- versionen, compiles und explains eines packages ---
select *
from cmnbatch.plan_view0
where collid = 'CZ'
and prog = 'YCTS100'
order by pcBi desc, bind_Time desc
with ur
;
--- ausgewählte Explains analysieren
select *
from cmnbatch.plan_view1
-- from cmnbatch.plan_view2
-- from cmnbatch.plan_view2Det
where collid = 'CZ'
and progName = 'YCTS100'
and bind_time in ( '2012-05-10-12.20.00.991461'
,'2010-11-11-15.02.50.081875'
)
order by collid, progName, version,
bind_time,
queryno,
qBlockNo, planno, mixopSeq
with ur
}¢--- A540769.WK.SQL(EXPLAICY) cre=2011-09-21 mod=2011-09-21-20.46.09 A540769 ---
SET CURRENT SQLID='s100447';
DROP INDEX OA1T.ICZ323$A3$wk;
COMMIT;
CREATE unique INDEX OA1T.ICZ323$A3$wk
ON OA1T.TCZ323A1
(CZ32301 ASC,
CZ32313 ASC)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
NOT CLUSTER
PARTITIONED
COMPRESS NO
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFER yes
DEFINE YES
;
COMMIT;
}¢--- A540769.WK.SQL(EXPLAICZ) cre=2011-09-07 mod=2011-09-22-08.41.10 A540769 ---
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_FILTER_TABLE ;
delete from A540769.DSN_STRUCT_TABLE ;
delete from A540769.DSN_PREDICAT_TABLE ;
explain plan set queryno = 0 for
SELECT Q323.I_DCMNTN_ITEM
, Q323.I_DOCUMENT_T
, Q323.I_DCMNT_ARCHIVE_T
, Q323.D_LEGAL
FROM oa1t.VCZ431A1V Q431
, oa1t.VCZ323A1V Q323
WHERE Q431.I_OBJECT = ?
AND Q431.D_EFFECTIVE <= CURRENT DATE
AND Q431.D_END > CURRENT DATE
AND Q431.I_IDENTIFIER_T = 22
AND Q431.I_DCMNTN_ITEM = Q323.I_DCMNTN_ITEM
AND Q323.D_EFFECTIVE <= CURRENT DATE
AND Q323.D_END > CURRENT DATE
AND Q323.I_DOCUMENT_T IN (445, 446, 447, 448,
454, 455, 491, 492)
;
explain plan set queryno = 4 for
SELECT Q323.I_DCMNTN_ITEM, Q323.D_LEGAL,
Q323.D_EXPIRATION, Q323.D_EFFECTIVE, Q323.D_TIME_CREATED
FROM oa1t.VCZ431A1V Q431, oa1t.VCZ323A1V Q323
WHERE Q431.I_OBJECT = ? AND Q431.I_IDENTIFIER_T =
23 AND Q431.I_DCMNTN_ITEM = Q323.I_DCMNTN_ITEM AND Q431.D_EFFECTIVE <=
CURRENT DATE AND Q431.D_END > CURRENT DATE AND Q323.I_DOCUMENT_T = 341
AND Q323.D_EFFECTIVE <= CURRENT DATE AND Q323.D_END > CURRENT DATE AND
Q323.D_EXPIRATION >= CURRENT DATE ORDER BY Q323.D_LEGAL DESC,
Q323.D_EFFECTIVE DESC, Q323.D_TIME_CREATED DESC FOR FETCH ONLY
;
explain plan set queryno = 14 for
SELECT Q323.I_DCMNTN_ITEM, Q323.D_LEGAL,
Q323.D_EXPIRATION, Q323.D_EFFECTIVE, Q323.D_TIME_CREATED
FROM ( select q.*, smallint(341 + 0 * I_IDENTIFIER_T) kSI
from oa1t.VCZ431A1V q) Q431
join oa1t.VCZ323A1V Q323
on Q431.I_DCMNTN_ITEM = Q323.I_DCMNTN_ITEM
AND Q323.I_DOCUMENT_T = q431.kSI
WHERE Q431.I_OBJECT = ? AND Q431.I_IDENTIFIER_T =
23 AND Q431.D_EFFECTIVE <=
CURRENT DATE AND Q431.D_END > CURRENT DATE
AND Q323.D_EFFECTIVE <= CURRENT DATE AND Q323.D_END > CURRENT DATE AND
Q323.D_EXPIRATION >= CURRENT DATE ORDER BY Q323.D_LEGAL DESC,
Q323.D_EFFECTIVE DESC, Q323.D_TIME_CREATED DESC FOR FETCH ONLY
;
explain plan set queryno = 15 for
SELECT Q323.I_DCMNTN_ITEM, Q323.D_LEGAL,
Q323.D_EXPIRATION, Q323.D_EFFECTIVE, Q323.D_TIME_CREATED
from oa1t.VCZ431A1V Q431
join (select * from oa1t.VCZ323A1V
where I_DOCUMENT_T = 431) q323
on Q431.I_DCMNTN_ITEM = Q323.I_DCMNTN_ITEM
WHERE Q431.I_OBJECT = ? AND Q431.I_IDENTIFIER_T =
23 AND Q431.D_EFFECTIVE <=
CURRENT DATE AND Q431.D_END > CURRENT DATE
AND Q323.D_EFFECTIVE <= CURRENT DATE AND Q323.D_END > CURRENT DATE AND
Q323.D_EXPIRATION >= CURRENT DATE ORDER BY Q323.D_LEGAL DESC,
Q323.D_EFFECTIVE DESC, Q323.D_TIME_CREATED DESC FOR FETCH ONLY
;
explain plan set queryno = 24 for
select I_DCMNTN_ITEM, I_DCMNTN_ITEM
from oa1t.VCZ323A1V q323
where ? = Q323.I_DCMNTN_ITEM
AND Q323.I_DOCUMENT_T = ?
;
explain plan set queryno = 25 for
select CZ32301, CZ32313
from oa1t.tCZ323A1 q323
where ? = Q323.CZ32301
AND Q323.CZ32313 IN ( ?, ?, ?)
;
explain plan set queryno = 34 for
select *
from oa1t.VCZ323A1V q323
where ? = Q323.I_DCMNTN_ITEM
AND Q323.I_DOCUMENT_T = ?
;
explain plan set queryno = 35 for
select *
from oa1t.tCZ323A1 q323
where ? = Q323.CZ32301
AND Q323.CZ32313 IN ( ?, ?, ?)
;
explain plan set queryno = 36 for
select *
from oa1t.tCZ323A1 q323
where ? = Q323.CZ32301
AND Q323.CZ32313 IN ( ?, ?, ?)
AND Q323.CZ32304 >= CURRENT DATE
AND Q323.CZ32309 < CURRENT DATE
;
explain plan set queryno = 44 for
select A.*
from oa1t.tCZ323A1 A
, oa1t.tCZ323A1 B
where A.CZ32301 = B.CZ32301
AND ? = A.CZ32301
AND A.CZ32313 IN ( ?, ?, ?)
AND B.CZ32313 IN ( ?, ?, ?)
;
explain plan set queryno = 45 for
select B.*
from oa1t.tCZ323A1 A
, oa1t.tCZ323A1 B
where A.CZ32301 = B.CZ32301
AND ? = A.CZ32301
AND A.CZ32313 IN ( ?, ?, ?)
AND B.CZ32313 IN ( ?, ?, ?)
;
explain plan set queryno = 46 for
select B.*
from oa1t.VCZ323A1V A
, oa1t.VCZ323A1V B
where A.I_DCMNTN_ITEM = B.I_DCMNTN_ITEM
AND ? = A.I_DCMNTN_ITEM
AND A.I_DOCUMENT_T IN ( ?, ?, ?)
AND B.I_DOCUMENT_T IN ( ?, ?, ?)
AND B.D_EFFECTIVE <= CURRENT DATE
AND B.D_END > CURRENT DATE
;
explain plan set queryno = 47 for
select A.*
from oa1t.VCZ323A1V A
, oa1t.VCZ323A1V B
where A.I_DCMNTN_ITEM = B.I_DCMNTN_ITEM
AND ? = A.I_DCMNTN_ITEM
AND A.I_DOCUMENT_T IN ( ?, ?, ?)
AND B.I_DOCUMENT_T IN ( ?, ?, ?)
AND B.D_EFFECTIVE <= CURRENT DATE
AND B.D_END > CURRENT DATE
;
select * from plan_view2
order by applname, progname, queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_ViewPred
order by collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, PREDNo
;
rollback;
;;
select * from plan_view1
order by applname, progname, queryNo, qblockno, planno, mixOpSeq
;
rollback
;;;
select * from cmnBatch.plan_view1
where progName in ('EC5492') and collid = 'EC'
-- and bind_time = '2011-02-10-10.55.40.578363'
and version = 'PFB0000070'
order by applname, collid, progname,
queryNo, qblockno, planno, mixOpSeq
;
select *
from CMNBATCH.plan_ViewPred
where progname = 'EC5492' and collid = 'EC'
and explain_time = '2011-08-11-14.41.27.996738'
order by collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, orderNo
;;
-- versionen, Compiles und Binds pro Programm
with e as
(
select count(*) c, progName pg, version vr, collid co, bind_time bt
from cmnBatch.plan_table
group by progName, version, collid, bind_time
)
select substr(e.pg, 1, 8) pg, date(p.pcTimeStamp) "preComp",
date(e.bt) "bind", c "#plan_t", vr,
e.*, p.*
from e
full outer join sysibm.sysPackage p
on e.co = p.collid and e.pg = p.name and e.vr = p.version
where e.pg = 'EC5492' and e.vr = 'PFB0000070'
order by e.co, e.pg, p.pcTimeStamp desc, e.bt desc
with ur
;
-- versionen, Compiles und Binds pro Programm
with e as
(
select count(*) c, progName pg, version vr, collid co, bind_time bt
from cmnBatch.plan_table
group by progName, version, collid, bind_time
)
select substr(e.pg, 1, 8) pg, date(p.pcTimeStamp) "preComp",
date(e.bt) "bind", c "#plan_t", vr,
e.*, p.*
from e
full outer join sysibm.sysPackage p
on e.co = p.collid and e.pg = p.name and e.vr = p.version
where e.pg = 'YKCLOGS'
order by e.co, e.pg, p.pcTimeStamp desc, e.bt desc
with ur
;
set current sqlid = 'A540769';
delete from A540769.plan_table;
explain plan set queryno = 0 for
select *
from sysibm.sysDummy1
;
select * from plan_view1
order by applname, progname, queryNo, qblockno, planno, mixOpSeq
;
rollback
;;;
with c as
(
select count(*) c
from oa1p.tcz431a1
group by CZ43106
, CZ43108
, CZ43104
)
select count(*), c, count(*) * c
from c
group by c
order by 2 desc
with ur
;;
select count(*), CZ32313
from oa1p.tcz323a1
group by CZ32313
order by 2 asc
with ur
;;;;;;
}¢--- A540769.WK.SQL(EXPLAIDI) cre=2014-06-18 mod=2014-10-23-10.27.08 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
/* -----------------
128 SELECT DI00200, DI00201, DI00202, DI00203, DI00204, DI00205,
DI00206, DI00207 INTO :DI00200, :DI00201, :DI00202, :DI00203,
:DI00204, :DI00205, :DI00206, :DI00207 FROM VDI002A1A A WHERE
DI00201 <= :DIT002I_GDA AND DI00201 = ( SELECT MAX ( DI00201 ) FROM
VDI002A1A WHERE DI00201 <= :DIT002I_GDA AND DI00202 = A.DI00202
AND DI00203 = A.DI00203 AND DI00204 >= :DIT002I_GDA AND DI00205 =
A.DI00205 ) AND DI00202 = :DIT002I_WIDT AND DI00203 = ' ' AND
DI00204 >= :DIT002I_GDA AND DI00205 = :DIT002I_WID
189 SELECT DI00200, DI00201, DI00202, DI00203, DI00204, DI00205,
DI00206, DI00207 INTO :DI00200, :DI00201, :DI00202, :DI00203,
:DI00204, :DI00205, :DI00206, :DI00207 FROM VDI002A1A A WHERE
DI00200 = ( SELECT MIN ( DI00200 ) FROM VDI002A1A WHERE DI00201 <=
:DIT002I_GDA AND DI00202 = A.DI00202 AND DI00203 = A.DI00203 AND
DI00204 >= :DIT002I_GDA AND DI00205 = A.DI00205 ) AND DI00201 <=
:DIT002I_GDA AND DI00201 = ( SELECT MAX ( DI00201 ) FROM VDI002A1A
WHERE DI00201 <= :DIT002I_GDA AND DI00202 = A.DI00202 AND DI00203 =
A.DI00203 AND DI00204 >= :DIT002I_GDA AND DI00205 = A.DI00205 )
AND DI00202 = :DIT002I_WIDT AND DI00203 = ' ' AND DI00204 >=
:DIT002I_GDA AND DI00205 = :DIT002I_WID
----------------*/
explain plan set queryno = 128 for
SELECT DI00200, DI00201, DI00202, DI00203, DI00204, DI00205,
DI00206, DI00207 -- INTO :DIT002_OUT.
from oa1p.VDI002A1A A
WHERE DI00201 <= ? AND DI00201 =
( SELECT MAX ( DI00201 )
FROM oa1p.VDI002A1A
WHERE DI00201 <= ?
AND DI00202 = A.DI00202 AND DI00203 = A.DI00203
AND DI00204 >= ? AND DI00205 = A.DI00205
)
AND DI00202 = ? AND DI00203 = ' '
AND DI00204 >= ? AND DI00205 = ?
;
explain plan set queryno = 1128 for
SELECT DI00200, DI00201, DI00202, DI00203, DI00204, DI00205,
DI00206, DI00207 -- INTO :DIT002_OUT.
from oa1p.VDI002A1A A
WHERE DI00201 <= ?
AND DI00202 = ? AND DI00203 = ' '
AND DI00204 >= ? AND DI00205 = ?
order by di00201 desc
fetch first 1 row only
;
explain plan set queryno = 2128 for
SELECT DI00200, DI00201, DI00202, DI00203, DI00204, DI00205,
DI00206, DI00207 -- INTO :DIT002_OUT.
from oa1p.VDI002A1A A
WHERE DI00201 <= ?
AND DI00202 = ? AND DI00203 = ' '
AND DI00204 >= ? AND DI00205 = ?
order by di00200 asc, di00201 desc
fetch first 1 row only
;
select * from plan_view1
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
with ur
;
rollback
;;;;
explain plan set queryno = 189 for
SELECT DI00200, DI00201, DI00202, DI00203, DI00204, DI00205,
DI00206, DI00207 -- INTO :DIT002_OUT.
from oa1p.VDI002A1A A
WHERE DI00200 = ( SELECT MIN ( DI00200 )
from oa1p.VDI002A1A
WHERE DI00201 <= ?
AND DI00202 = A.DI00202 AND DI00203 = A.DI00203
AND DI00204 >= ? AND DI00205 = A.DI00205
)
AND DI00201 <= ?
AND DI00201 =
( SELECT MAX ( DI00201 )
FROM oa1p.VDI002A1A
WHERE DI00201 <= ?
AND DI00202 = A.DI00202 AND DI00203 = A.DI00203
AND DI00204 >= ? AND DI00205 = A.DI00205
)
AND DI00202 = ? AND DI00203 = ' '
AND DI00204 >= ? AND DI00205 = ?
;
explain plan set queryno = 1189 for
with s as
(
SELECT *
from oa1p.VDI002A1A A
where DI00201 <= ?
AND DI00202 = ? AND DI00203 = ' '
AND DI00204 >= ? AND DI00205 = ?
order by di00201 desc
fetch first 1 row only
)
SELECT DI00200, DI00201, DI00202, DI00203, DI00204, DI00205,
DI00206, DI00207 -- INTO :DIT002_OUT.
from s a
WHERE DI00200 = ( SELECT MIN ( DI00200 )
from oa1p.VDI002A1A
WHERE DI00201 <= ?
AND DI00202 = A.DI00202 AND DI00203 = A.DI00203
AND DI00204 >= ? AND DI00205 = A.DI00205
)
;
with s as
(
select distinct DI00202, DI00203, DI00205, row_number() over () r
FROM oa1p.VDI002A1A
where di00203 = ''
)
select * from s
order by mod(r, 223)
;x;
--- versionen, compiles und explains eines packages -------------------
select *
from cmnbatch.plan_view0
where collid = 'DI'
and prog = 'YDIT002'
order by pcEx desc, explain_time desc
with ur
;
--- ausgewählte Explains analysieren
select *
-- from cmnbatch.plan_view1
from cmnbatch.plan_view2
-- from cmnbatch.plan_view2Det
where collid = 'DI'
and progName = 'YDIT002'
and explain_time = '2014-04-20-05.17.56.918285'
order by collid, progName, version, explain_time,
queryno, qBlockNo, planno, mixopSeq
with ur
;
select *
from cmnbatch.plan_viewPred
where collid = 'DI'
and progName = 'YDIT002'
and explain_time = '2014-04-20-05.17.56.918285'
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
with ur
;
}¢--- A540769.WK.SQL(EXPLAIDP) cre=2011-01-10 mod=2011-05-20-09.42.54 A540769 ---
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.dsn_filter_table;
delete from A540769.dsn_predicat_table;
delete from A540769.dsn_detcost_table;
explain plan set queryno = 1 for
select *
FROM oa1t.VDP080A1 a
WHERE a."orderId" = ?
and A."requestTimestamp"= (select max(B."requestTimestamp")
from oa1t.VDP080A1 B
where B."orderId" = ?)
;
explain plan set queryno = 2 for
select *
FROM oa1t.VDP080A1 a
WHERE a."orderId" = ?
order by A."requestTimestamp" desc
-- fetch first 1 row only
;
explain plan set queryno = 11 for
select *
FROM oa1t.VDP080A1 a
WHERE a."orderId" = ?
and A."requestTimestamp"= (select min(B."requestTimestamp")
from oa1t.VDP080A1 B
where B."orderId" = ?)
;
explain plan set queryno = 12 for
select *
FROM oa1t.VDP080A1 a
WHERE a."orderId" = ?
order by A."requestTimestamp" asc
-- fetch first 1 row only
;
select * from plan_view2
order by applname, progname, queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2Det
order by applname, progname, queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by collid, progName, applName, explain_time,
queryNo, qBlockNo, planno, mixOpSeqNo,
stage, orderNo
;
rollback
;;;
select * from cmnBatch.plan_view1
where progName in ('DP071@I') and collid = 'DP'
and bind_time = '2011-01-11-14.16.02.848410'
and queryno in (554, 582)
-- and version = 'DBH000012659B91C5F'
order by bind_time desc,
applname, progname, queryNo, qblockno, planno,
tname
;
select * from cmnBatch.plan_view1
where progName in ('DP071@I') and collid = 'DP'
and bind_time = '2010-11-12-18.49.51.585790'
and queryno in (542, 570)
-- and version = 'DBH000012659B91C5F'
order by bind_time desc,
applname, progname, queryNo, qblockno, planno,
tname
; ;
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 542 for
select *
from oa1p.tdp021a1 b
where b.dp02162 = ?
;
explain plan set queryno = 570 for
select *
from oa1p.tdp020a1 c
where c.dp02005 = ?
;
select * from plan_view2
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
select count(*), dp02005
from oa1p.tdp020a1 b
group by dp02005
order by 1 desc
with ur
;
select count(*), dp02162
from oa1p.tdp021a1 b
group by dp02162
order by 1 desc
with ur
}¢--- A540769.WK.SQL(EXPLAIEL) cre=2011-02-03 mod=2011-09-07-18.20.21 A540769 ---
set current sqlid = 'A540769';
delete from plan_table;
set current path = oa1t;
explain plan set queryno = 1 for
SELECT '1' FROM oa1t.VEL005A1V B
WHERE (B.CPID = ? AND B.OWNER_CIF
= '') OR B.USER_CIF = ? OR B.USER_ID = ? OR B.COLLECTION_ID = ?
;
select * from plan_view2
order by applname, progname, queryNo, qblockno, planno
;
rollback
;;;;
explain plan set queryno = 1 for
SELECT DISTINCT
CAST(P.PARTNER_ID AS CHAR(12)) AS CIF
,CAST(P.BU AS CHAR(04)) AS BU
,CAST(LE.LE AS CHAR(04)) AS LE
,CAST(
CASE
WHEN COALESCE(P.CUSTOMER_TYPE,' ') = ' ' THEN '000'
ELSE P.CUSTOMER_TYPE
END AS CHAR(03)) AS CLIENT_TYPE
,CAST(
CASE
WHEN COALESCE(P.CUSTOMER_SEGMENT,' ') = ' ' THEN '000'
ELSE P.CUSTOMER_SEGMENT
END AS CHAR(03)) AS CLIENT_SEGMENT
,CAST(COALESCE(TCD.COUNTRY_CODE,'001')
AS CHAR(03)) AS NAT_CODE
,CAST(COALESCE(TCD.COUNTRY_CODE_ISO2,'EU')
AS CHAR(02)) AS NAT_CODE_ISOA2
,CAST(COALESCE(TCD.COUNTRY_CODE_ISO3,'EU ')
AS CHAR(03)) AS NAT_CODE_ISOA3
,CAST(P.DOMIZIL AS CHAR(03)) AS DOMICILE_CODE
,CAST(DOM.COUNTRY_CODE_ISO2 AS CHAR(02)) AS DOMICILE_CODE_ISOA2
,CAST(DOM.COUNTRY_CODE_ISO3 AS CHAR(03)) AS DOMICILE_CODE_ISOA3
,CAST('A ' AS CHAR(02)) AS STATUS
,CAST(
CASE
WHEN COALESCE(TCD.CD100452,' ') = ' '
THEN ' '
ELSE TCD.CD100452
END AS CHAR(16)) AS CLIENT_OFFICE
,CAST(P.COMMENT AS CHAR(255)) AS COMMENTS
,CAST(CASE
WHEN COALESCE(TCD.CD100322,' ') = ' ' THEN 0
WHEN SUBSTR(CD100322,1,4) = '0000' THEN 0
ELSE
(SMALLINT(YEAR(CURRENT DATE)) -
SMALLINT(SUBSTR(CD100322,1,4)))
END AS SMALLINT) AS AGE
,TIMESTAMP(P.LOCK_FROM_DATE,'00.00.00') AS LOCK_FROM
,TIMESTAMP(P.LOCK_TO_DATE,'00.00.00') AS LOCK_TO
,P.LAST_UPDATE_TIME AS LAST_UPDATE_TIME
,CAST(P.LAST_UPDATE_ID AS CHAR(10)) AS LAST_UPDATE_ID
,P.CONTROL_TIME AS CONTROL_TIME
FROM
oa1t.VEL105A1V LE ,
oa1t.VEL140A1V DOM,
oa1t.VELKS831A1VC4 P
LEFT OUTER JOIN
(SELECT CD100001
,CD100004
,CD100452
,CD100322
,COUNTRY_CODE
,COUNTRY_CODE_ISO2
,COUNTRY_CODE_ISO3
FROM oa1t.TCD100A1
,oa1t.VEL140A1V
WHERE COUNTRY_CODE = CD100325 ) AS TCD
ON P.PARTNER_ID = TCD.CD100001
AND P.BU = TCD.CD100004
WHERE LE.BU = P.BU
AND DOM.COUNTRY_CODE = P.DOMIZIL
AND CURRENT DATE BETWEEN P.VALID_FROM_DATE AND P.VALID_TO_DATE
UNION
SELECT DISTINCT
CAST(P.PARTNER_ID AS CHAR(12)) AS CIF
,CAST(P.BU AS CHAR(04)) AS BU
,CAST(LE.LE AS CHAR(04)) AS LE
,CAST(
CASE
WHEN COALESCE(P.CUSTOMER_TYPE,' ') = ' ' THEN '000'
ELSE P.CUSTOMER_TYPE
END AS CHAR(03)) AS CLIENT_TYPE
,CAST(
CASE
WHEN COALESCE(P.CUSTOMER_SEGMENT,' ') = ' ' THEN '000'
ELSE P.CUSTOMER_SEGMENT
END AS CHAR(03)) AS CLIENT_SEGMENT
,CAST(COALESCE(TCD.COUNTRY_CODE,'001')
AS CHAR(03)) AS NAT_CODE
,CAST(COALESCE(TCD.COUNTRY_CODE_ISO2,'EU')
AS CHAR(02)) AS NAT_CODE_ISOA2
,CAST(COALESCE(TCD.COUNTRY_CODE_ISO3,'EU ')
AS CHAR(03)) AS NAT_CODE_ISOA3
,CAST(P.DOMIZIL AS CHAR(03)) AS DOMICILE_CODE
,CAST(DOM.COUNTRY_CODE_ISO2 AS CHAR(02)) AS DOMICILE_CODE_ISOA2
,CAST(DOM.COUNTRY_CODE_ISO3 AS CHAR(03)) AS DOMICILE_CODE_ISOA3
,CAST('I ' AS CHAR(02)) AS STATUS
,CAST(
CASE
WHEN COALESCE(TCD.CD100452,' ') = ' '
THEN ' '
ELSE TCD.CD100452
END AS CHAR(16)) AS CLIENT_OFFICE
,CAST(P.COMMENT AS CHAR(255)) AS COMMENTS
,CAST(CASE
WHEN COALESCE(TCD.CD100322,' ') = ' ' THEN 0
WHEN SUBSTR(CD100322,1,4) = '0000' THEN 0
ELSE
(SMALLINT(YEAR(CURRENT DATE)) -
SMALLINT(SUBSTR(CD100322,1,4)))
END AS SMALLINT) AS AGE
,TIMESTAMP(P.LOCK_FROM_DATE,'00.00.00') AS LOCK_FROM
,TIMESTAMP(P.LOCK_TO_DATE,'00.00.00') AS LOCK_TO
,P.LAST_UPDATE_TIME AS LAST_UPDATE_TIME
,CAST(P.LAST_UPDATE_ID AS CHAR(10)) AS LAST_UPDATE_ID
,P.CONTROL_TIME AS CONTROL_TIME
FROM
oa1t.VEL105A1V LE ,
oa1t.VEL140A1V DOM,
oa1t.VELKS831A1VC4 P
LEFT OUTER JOIN
(SELECT CD100001
,CD100004
,CD100452
,CD100322
,COUNTRY_CODE
,COUNTRY_CODE_ISO2
,COUNTRY_CODE_ISO3
FROM oa1t.TCD100A1
,oa1t.VEL140A1V
WHERE COUNTRY_CODE = CD100325 ) AS TCD
ON P.PARTNER_ID = TCD.CD100001
AND P.BU = TCD.CD100004
WHERE LE.BU = P.BU
AND DOM.COUNTRY_CODE = P.DOMIZIL
AND CURRENT DATE NOT BETWEEN P.VALID_FROM_DATE AND P.VALID_TO_DATE
WITH UR;
select * from plan_view2
order by applname, progname, queryNo, qblockno, planno
;
rollback
;;;;
explain plan set queryno=2 for
SELECT DISTINCT
CAST(V45.C_PID AS CHAR(8)) AS CPID
,CAST(' ' AS CHAR(12)) AS PARTNER_ID
,CAST(CD600013 AS CHAR (20)) AS AGREEMENT_ID
,CAST(V31O.PARTNER_ID AS CHAR(12)) AS OWNER_PARTNER_ID
,CAST(ACT.ACCOUNT_GROUP AS CHAR(05)) AS ACCOUNT_GROUP
,CAST(ACT.ACCOUNT_GROUP AS CHAR(05)) AS AGREEMENT_TYPE
,CAST(MP.MPRODUCT AS CHAR(10)) AS PRODUCT
,CAST(V43.TAB_TEXT3 AS CHAR(10)) AS SERVICE
,CAST(COALESCE(V38.VISUM_TIME,'9999-12-31-23.59.59.999999')
AS CHAR(26)) AS VISUM_2_TIMESTAMP
,CAST(COALESCE(V38.VISUM,' ') AS CHAR(8)) AS VISUM_2_PID
,CAST(CASE
WHEN V35.STATE = 'F2' THEN '1'
ELSE '0'
END AS CHAR(1)) AS FREE_FORM_SIGN_BOOL
,CAST(CASE
WHEN V35.STATE = 'F2' THEN V35.COMMENT
ELSE ' '
END AS CHAR(255)) AS FREE_FORM_SIGN_COMMENT
,CAST('0' AS CHAR(1)) AS RESTRICTED_BOOL
,CAST(' ' AS CHAR(255)) AS RESTRICTED_RULE
,V35.VALID_FROM_DATE AS VALID_FROM
,V35.VALID_TO_DATE AS VALID_TO
,TIMESTAMP(V35.LOCK_FROM_DATE,'00.00.00') AS LOCKED_FROM
,TIMESTAMP(V35.LOCK_TO_DATE,'00.00.00') AS LOCKED_TO
,CAST(' ' AS CHAR(255)) AS COMMENTS
,CAST('1' AS CHAR(1)) AS VIRTUAL_BOOL
,V35.LAST_UPDATE_TIME AS LAST_UPDATE_TIME
,V35.LAST_UPDATE_ID AS LAST_UPDATE_ID
,V35.CONTROL_TIME AS CONTROL_TIME
FROM
oa1t.VELKS833A1VC4 V33,
oa1t.VELKS858A1VC4 V58,
oa1t.VELKS831A1VC4 V31U,
oa1t.VELKS831A1VC4 V31O,
oa1t.VELKS845A1VC4 V45,
oa1t.VEL220A1V ACT,
oa1t.VEL105A1V BU ,
oa1t.VEL080A1V MP ,
oa1t.TCD600A1 ,
oa1t.VELKS843A1VC4 V43,
oa1t.VELKS835A1VC4 V35
LEFT OUTER JOIN
oa1t.VELKS838A1VC4 V38
ON V35.CONTRACT_KEY = V38.CONTRACT_KEY
AND V35.PARTNER_KEY = V38.PARTNER_KEY
AND V35.PARTNER_TYPE = V38.PARTNER_TYPE
AND V35.ARRANGEMENT_ID = V38.ARRANGEMENT_ID
AND V35.ARRANGEMENT_TYPE = V38.ARRANGEMENT_TYPE
AND V35.SERVICE_KEY = V38.SERVICE_KEY
AND V38.VISUM_NUMBER = 2
WHERE V35.ARRANG_PARTNER_KEY = V31O.PARTNER_KEY
AND V35.PARTNER_KEY = V31U.PARTNER_KEY
AND MP.PRODUCT = V35.PRODUCT_ID
AND V43.TAB_ART = 'SERVICE_ID'
AND V43.TAB_LANGUAGE_CODE = '004'
AND V43.TAB_CODE = V35.SERVICE_KEY
AND V35.ARRANGEMENT_TYPE = 'CIF'
AND ACT.ACCOUNT_ID = CD600013
AND ( ACT.OWNER_ID = V31O.PARTNER_ID||' '
OR ACT.ACCOUNT_HOLDER= V31O.PARTNER_ID||' ')
AND V35.CONTRACT_KEY = V33.CONTRACT_KEY
AND V35.PARTNER_KEY = V33.PARTNER_KEY
AND V35.PARTNER_TYPE = V33.PARTNER_TYPE
AND V58.PARTNER_KEY = V35.PARTNER_KEY
AND V45.PARTNER_KEY = V33.PARTNER_KEY
AND V45.CONTRACT_COLL = V33.CONTRACT_COLL
AND V45.IDENT_ID = V58.IDENT_ID
AND CD600016 = V31O.PARTNER_ID
AND CD600020 IN ('0001','1001')
AND CD600018 = BU.BU
AND NOT EXISTS ( SELECT 'F'
FROM oa1t.VELKS843A1VC4 CP
WHERE CP.TAB_ART = 'CIFE_PRODUCT'
AND CP.TAB_CODE = V35.PRODUCT_ID )
AND NOT EXISTS ( SELECT 'F'
FROM oa1t.VELKS843A1VC4 CS
WHERE CS.TAB_ART = 'CIFE_SERVICE'
AND CS.TAB_CODE = V35.SERVICE_KEY
AND CS.TAB_TEXT3 = V35.ARRANGEMENT_TYPE )
WITH UR;
select * from plan_view2
order by applname, progname, queryNo, qblockno, planno
;
rollback
set current sqlid = 'A540769';
delete from plan_table;
set current path = oa1t;
explain plan set queryno=5 for
SELECT DISTINCT
CAST(V31O.PARTNER_ID AS CHAR(12)) AS PARTNER_ID
,CAST('CIF* ' AS CHAR(05)) AS AGREEMENT_TYPE
,CAST(MP.MPRODUCT AS CHAR(10)) AS PRODUCT
,CAST(V43.TAB_TEXT3 AS CHAR(10)) AS SERVICE
,CAST(COALESCE(V38.VISUM_TIME,'9999-12-31-23.59.59.999999')
AS CHAR(26)) AS VISUM_2_TIMESTAMP
,CAST(COALESCE(V38.VISUM,' ') AS CHAR(8)) AS VISUM_2_PID
,CAST(CASE
WHEN V35.STATE = 'F2' THEN '1'
ELSE '0'
END AS CHAR(1)) AS FREE_FORM_SIGN_BOOL
,CAST(CASE
WHEN V35.STATE = 'F2' THEN V35.COMMENT
ELSE ' '
END AS CHAR(255)) AS FREE_FORM_SIGN_COMMENT
,V35.VALID_FROM_DATE AS VALID_FROM
,V35.VALID_TO_DATE AS VALID_TO
,TIMESTAMP(V35.LOCK_FROM_DATE,'00.00.00') AS LOCKED_FROM
,TIMESTAMP(V35.LOCK_TO_DATE,'00.00.00') AS LOCKED_TO
,V35.LAST_UPDATE_TIME AS LAST_UPDATE_TIME
,CAST(V35.LAST_UPDATE_ID AS CHAR(10)) AS LAST_UPDATE_ID
,V35.CONTROL_TIME AS CONTROL_TIME
FROM
oa1t.VELKS831A1VC4 V31O,
oa1t.VEL080A1V MP ,
oa1t.VELKS843A1VC4 V43,
oa1t.VELKS835A1VC4 V35
LEFT OUTER JOIN
oa1t.VELKS838A1VC4 V38
ON V35.CONTRACT_KEY = V38.CONTRACT_KEY
AND V35.PARTNER_KEY = V38.PARTNER_KEY
AND V35.PARTNER_TYPE = V38.PARTNER_TYPE
AND V35.ARRANGEMENT_ID = V38.ARRANGEMENT_ID
AND V35.ARRANGEMENT_TYPE = V38.ARRANGEMENT_TYPE
AND V35.SERVICE_KEY = V38.SERVICE_KEY
AND V38.VISUM_NUMBER = 2
WHERE V35.ARRANG_PARTNER_KEY = V31O.PARTNER_KEY
AND MP.PRODUCT = V35.PRODUCT_ID
AND V43.TAB_ART = 'SERVICE_ID'
AND V43.TAB_LANGUAGE_CODE = '004'
AND V43.TAB_CODE = V35.SERVICE_KEY
AND V35.ARRANGEMENT_TYPE = 'CIF'
;
explain plan set queryno=404 for
SELECT DISTINCT
CAST(V45.C_PID AS CHAR(8)) AS CPID
,CAST(' ' AS CHAR(12)) AS PARTNER_ID
,CAST(CD600013 AS CHAR (20)) AS AGREEMENT_ID
,CAST(V31O.PARTNER_ID AS CHAR(12)) AS OWNER_PARTNER_ID
,CAST(ACT.ACCOUNT_GROUP AS CHAR(05)) AS ACCOUNT_GROUP
,CAST(ACT.ACCOUNT_GROUP AS CHAR(05)) AS AGREEMENT_TYPE
,CAST(MP.MPRODUCT AS CHAR(10)) AS PRODUCT
,CAST(V43.TAB_TEXT3 AS CHAR(10)) AS SERVICE
,CAST(COALESCE(V38.VISUM_TIME,'9999-12-31-23.59.59.999999')
AS CHAR(26)) AS VISUM_2_TIMESTAMP
,CAST(COALESCE(V38.VISUM,' ') AS CHAR(8)) AS VISUM_2_PID
,CAST(CASE
WHEN V35.STATE = 'F2' THEN '1'
ELSE '0'
END AS CHAR(1)) AS FREE_FORM_SIGN_BOOL
,CAST(CASE
WHEN V35.STATE = 'F2' THEN V35.COMMENT
ELSE ' '
END AS CHAR(255)) AS FREE_FORM_SIGN_COMMENT
,CAST('0' AS CHAR(1)) AS RESTRICTED_BOOL
,CAST(' ' AS CHAR(255)) AS RESTRICTED_RULE
,V35.VALID_FROM_DATE AS VALID_FROM
,V35.VALID_TO_DATE AS VALID_TO
,TIMESTAMP(V35.LOCK_FROM_DATE,'00.00.00') AS LOCKED_FROM
,TIMESTAMP(V35.LOCK_TO_DATE,'00.00.00') AS LOCKED_TO
,CAST(' ' AS CHAR(255)) AS COMMENTS
,CAST('1' AS CHAR(1)) AS VIRTUAL_BOOL
,V35.LAST_UPDATE_TIME AS LAST_UPDATE_TIME
,V35.LAST_UPDATE_ID AS LAST_UPDATE_ID
,V35.CONTROL_TIME AS CONTROL_TIME
FROM
oa1t.VELKS833A1VC4 V33,
oa1t.VELKS858A1VC4 V58,
oa1t.VELKS831A1VC4 V31U,
oa1t.VELKS831A1VC4 V31O,
oa1t.VELKS845A1VC4 V45,
oa1t.VEL220A1V ACT,
oa1t.VEL105A1V BU ,
oa1t.VEL080A1V MP ,
oa1t.TCD600A1 ,
oa1t.VELKS843A1VC4 V43,
oa1t.VELKS835A1VC4 V35
LEFT OUTER JOIN
oa1t.VELKS838A1VC4 V38
ON V35.CONTRACT_KEY = V38.CONTRACT_KEY
AND V35.PARTNER_KEY = V38.PARTNER_KEY
AND V35.PARTNER_TYPE = V38.PARTNER_TYPE
AND V35.ARRANGEMENT_ID = V38.ARRANGEMENT_ID
AND V35.ARRANGEMENT_TYPE = V38.ARRANGEMENT_TYPE
AND V35.SERVICE_KEY = V38.SERVICE_KEY
AND V38.VISUM_NUMBER = 2
WHERE V35.ARRANG_PARTNER_KEY = V31O.PARTNER_KEY
AND V35.PARTNER_KEY = V31U.PARTNER_KEY
AND MP.PRODUCT = V35.PRODUCT_ID
AND V43.TAB_ART = 'SERVICE_ID'
AND V43.TAB_LANGUAGE_CODE = '004'
AND V43.TAB_CODE = V35.SERVICE_KEY
AND V35.ARRANGEMENT_TYPE = 'CIF'
AND ACT.ACCOUNT_ID = CD600013
AND ( ACT.OWNER_ID = V31O.PARTNER_ID||' '
OR ACT.ACCOUNT_HOLDER= V31O.PARTNER_ID||' ')
AND V35.CONTRACT_KEY = V33.CONTRACT_KEY
AND V35.PARTNER_KEY = V33.PARTNER_KEY
AND V35.PARTNER_TYPE = V33.PARTNER_TYPE
AND V58.PARTNER_KEY = V35.PARTNER_KEY
AND V45.PARTNER_KEY = V33.PARTNER_KEY
AND V45.CONTRACT_COLL = V33.CONTRACT_COLL
AND V45.IDENT_ID = V58.IDENT_ID
AND CD600016 = V31O.PARTNER_ID
AND CD600020 IN ('0001','1001')
AND CD600018 = BU.BU
AND NOT EXISTS ( SELECT 'F'
FROM oa1t.VELKS843A1VC4 CP
WHERE CP.TAB_ART = 'CIFE_PRODUCT'
AND CP.TAB_CODE = V35.PRODUCT_ID )
AND NOT EXISTS ( SELECT 'F'
FROM oa1t.VELKS843A1VC4 CS
WHERE CS.TAB_ART = 'CIFE_SERVICE'
AND CS.TAB_CODE = V35.SERVICE_KEY
AND CS.TAB_TEXT3 = V35.ARRANGEMENT_TYPE )
WITH UR;
explain plan set queryno=405 for
SELECT DISTINCT
CAST(V45.C_PID AS CHAR(8)) AS CPID
,CAST(V31O.PARTNER_ID AS CHAR(12)) AS PARTNER_ID
,CAST(' ' AS CHAR (20)) AS AGREEMENT_ID
,CAST(' ' AS CHAR(12)) AS OWNER_PARTNER_ID
,CAST(' ' AS CHAR(05)) AS ACCOUNT_GROUP
,CAST('CIF* ' AS CHAR(05)) AS AGREEMENT_TYPE
,CAST(MP.MPRODUCT AS CHAR(10)) AS PRODUCT
,CAST(V43.TAB_TEXT3 AS CHAR(10)) AS SERVICE
,CAST(COALESCE(V38.VISUM_TIME,'9999-12-31-23.59.59.999999')
AS CHAR(26)) AS VISUM_2_TIMESTAMP
,CAST(COALESCE(V38.VISUM,' ') AS CHAR(8)) AS VISUM_2_PID
,CAST(CASE
WHEN V35.STATE = 'F2' THEN '1'
ELSE '0'
END AS CHAR(1)) AS FREE_FORM_SIGN_BOOL
,CAST(CASE
WHEN V35.STATE = 'F2' THEN V35.COMMENT
ELSE ' '
END AS CHAR(255)) AS FREE_FORM_SIGN_COMMENT
,CAST('0' AS CHAR(1)) AS RESTRICTED_BOOL
,CAST(' ' AS CHAR(255)) AS RESTRICTED_RULE
,V35.VALID_FROM_DATE AS VALID_FROM
,V35.VALID_TO_DATE AS VALID_TO
,TIMESTAMP(V35.LOCK_FROM_DATE,'00.00.00') AS LOCKED_FROM
,TIMESTAMP(V35.LOCK_TO_DATE,'00.00.00') AS LOCKED_TO
,CAST(' ' AS CHAR(255)) AS COMMENTS
,CAST('0' AS CHAR(01)) AS VIRTUAL_BOOL
,V35.LAST_UPDATE_TIME AS LAST_UPDATE_TIME
,CAST(V35.LAST_UPDATE_ID AS CHAR(10)) AS LAST_UPDATE_ID
,V35.CONTROL_TIME AS CONTROL_TIME
FROM
oa1t.VELKS833A1VC4 V33,
oa1t.VELKS858A1VC4 V58,
oa1t.VELKS831A1VC4 V31O,
oa1t.VELKS831A1VC4 V31U,
oa1t.VELKS845A1VC4 V45,
oa1t.VEL105A1V BU ,
oa1t.VEL080A1V MP ,
oa1t.VELKS843A1VC4 V43,
oa1t.VELKS835A1VC4 V35
LEFT OUTER JOIN
oa1t.VELKS838A1VC4 V38
ON V35.CONTRACT_KEY = V38.CONTRACT_KEY
AND V35.PARTNER_KEY = V38.PARTNER_KEY
AND V35.PARTNER_TYPE = V38.PARTNER_TYPE
AND V35.ARRANGEMENT_ID = V38.ARRANGEMENT_ID
AND V35.ARRANGEMENT_TYPE = V38.ARRANGEMENT_TYPE
AND V35.SERVICE_KEY = V38.SERVICE_KEY
AND V38.VISUM_NUMBER = 2
WHERE V35.ARRANG_PARTNER_KEY = V31O.PARTNER_KEY
AND V35.PARTNER_KEY = V31U.PARTNER_KEY
AND MP.PRODUCT = V35.PRODUCT_ID
AND V43.TAB_ART = 'SERVICE_ID'
AND V43.TAB_LANGUAGE_CODE = '004'
AND V43.TAB_CODE = V35.SERVICE_KEY
AND BU.BU = V31O.BU
AND V35.ARRANGEMENT_TYPE = 'CIF'
AND V35.CONTRACT_KEY = V33.CONTRACT_KEY
AND V35.PARTNER_KEY = V33.PARTNER_KEY
AND V35.PARTNER_TYPE = V33.PARTNER_TYPE
AND V58.PARTNER_KEY = V35.PARTNER_KEY
AND V45.PARTNER_KEY = V33.PARTNER_KEY
AND V45.CONTRACT_COLL = V33.CONTRACT_COLL
AND V45.IDENT_ID = V58.IDENT_ID
AND NOT EXISTS ( SELECT 'F'
FROM oa1t.VELKS843A1VC4 CP
WHERE CP.TAB_ART = 'CIFE_PRODUCT'
AND CP.TAB_CODE = V35.PRODUCT_ID
)
AND NOT EXISTS ( SELECT 'F'
FROM oa1t.VELKS843A1VC4 CS
WHERE CS.TAB_ART = 'CIFE_SERVICE'
AND CS.TAB_CODE = V35.SERVICE_KEY
AND CS.TAB_TEXT3 = V35.ARRANGEMENT_TYPE
)
WITH UR;
select * from plan_view2
order by applname, progname, queryNo, qblockno, planno
;
rollback
}¢--- A540769.WK.SQL(EXPLAIFI) cre=2011-10-20 mod=2011-11-10-09.41.14 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table ;
explain plan set queryno = 27 for
select kurs_umrechnung,
kursdatum,
whrg,
cs_ka_num,
excode,
ks_bpl_st,
ks_ais_sp
from oa1a.vfi027a1
where tkkey = 10930000
and verfall = ?
and boerse = ?
and whrg = ?
and status = 'A'
and kursdatum <= ?
and kursdatum >= ?
and ks_bpl_st >= ?
and ks_bpl_st <= ?
and ks_ais_sp >= ?
and ks_ais_sp <= ?
and cs_ka_num >= ?
and cs_ka_num <= ?
and cs_ka_num <> ?
order by kursdatum desc
fetch first 1 row only
with ur
;
select * from plan_view1
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by --collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAIGB) cre=2014-06-26 mod=2016-01-07-12.39.34 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
update OA1P.TQZ006GBGRTSNEW u
set validEnd = '2016-01-07-12.32.43.269084'
where rz = 'RZZ' and dbSys = 'DPZG'
and validBegin <= '2016-01-07-12.32.43.269084'
and validEnd > '2016-01-07-12.32.43.269084'
and not exists
( select 1 from OA1P.TQZ006GBGRTSNEW q
where q.rz = '?' and q.dbSys = '?'
and u.dbName = q.dbName and u.name = q.name
and u.partition = q.partition
and u.instance = q.instance
)
;
select * from plan_view1
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
with ur
;
rollback
;;;;
--- temporary explain --------------------------------------------------
declare global temporary table session.k
(rz char(3) for mixed data
, dbSys char(4) for mixed data
, loadTs timestamp, stats timestamp
, di int
) ccsid unicode
;
create unique index session.ki1 on session.k (rz, dbSys, loadTs)
include(stats, di)
;
insert into session.k
with g2 as
(
select rz, dbSys, loadTs, max(updateStatsTime) stats
, days(max(updateStatsTime)) - days(loadTs) d1
from oa1p.tqz006gbgrTsStats
where rz = 'RZ2' and dbSys = 'DP2G'
-- and loadTs > current timestamp - 1 month
group by rz, dbSys, loadTs
)
select rz, dbSys, loadTs, stats
, case when stats <= loadTs then 0
when stats - (d1-1) days <= loadTs then d1-1
when stats - (d1 ) days <= loadTs then d1
else d1+1 end di
from g2
;
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
with j2 as
(
select t.rz, t.dbsys, t.dbName, t.name, t.partition, t.instance
, t.loadTs, t.updateStatsTime
, ( select di from session.k g
where t.rz = g.rz and t.dbSys = g.dbSys
and t.loadTs = g.loadTs ) di
from oa1p.tqz006gbgrTsStats t
-- join oa1p.tqz666gbgrTsKey g
-- on t.rz || '' = g.rz and t.dbSys = g.dbSys and t.loadTs = g.loadTs
where t.rz = 'RR2' and t.dbSys = 'DP2G'
)
, j as
(
select j2.*
, case when updateStatsTime - di days <= loadTs
then updateStatsTime - di days
else loadTs end statsNew
from j2
)
, k as
(
select j.*
, min(statsNew) over
( partition by rz, dbsys, dbName, name, partition, instance
order by loadTs, statsNew
rows between 1 preceding and 1 preceding
) statsPrec
from j
)
select count(*)
, sum(case when statsNew <= statsPrec then 1 else 0 end) bef
, count(distinct loadTs)
from k
;
select * from plan_view1
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
with ur
;
rollback
;;;;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
select substr(db, 1, 8) "db"
, substr(ts, 1, 8) "ts"
, substr(ix, max(1, length(ix) - 7), 8) "...index"
, substr(case when part = 0 then ''
else value(right(' '||strip(char(part)), 4), '----')
||'/'|| value(right(' '||strip(char(tsParts)), 4),'----')
end, 1, 9) "part/ tot"
, substr(right(' ' || int(round(actGb)), 6), 1, 6) "usedGB"
, substr(right(' ' || int(round(limGb/100*schwelle))
, 6), 1, 6) "schwGB"
, substr(right(' ' || schwelle, 5), 1, 5) "schw%"
, substr(right(' ' || int(round(limGb)), 6), 1, 6) "limGB"
, tsTy "y"
, substr(schwinfo, 7, 35) "schwellwert key"
from oa1p.vQz006gbGrenze
where actGb > real(limGb / 100 * schwelle)
and rz = 'RZ2' and dbSys = 'DVBP'
order by db, ts, part, ix
;
explain plan set queryno = 7 for
with s2 as
(
select s.*
, case when posStr(translate(rz, '%', '*'), '%') > 0
then posStr(translate(rz, '%', '*'), '%') -1
else 3 end rzLen
, case when posStr(translate(dbSys, '%', '*'), '%') > 0
then posStr(translate(dbSys, '%', '*'), '%') -1
else 4 end dbSysLen
, case when posStr(translate(db, '%', '*'), '%') > 0
then posStr(translate(db, '%', '*'), '%') -1
else 8 end dbLen
, case when posStr(translate(ts, '%', '*'), '%') > 0
then posStr(translate(ts, '%', '*'), '%') -1
else 8 end tsLen
from oa1p.tqz008GbGrSchwelle s
where validBegin <= current date and validEnd > current date
)
, s3 as
(
select s2.*
, substr(right(' ' || prio, 3) || rzLen || dbSysLen || dbLen
|| tsLen || min(part, 1)
|| translate(tsTy, ' ', '%*')
|| right(' ' || dsMin, 6), 1, 15) ord
from s2
)
, t2 as
(
select rz, dbSys, dbName, name
, partition, instance, max(loadTs) loadTs
from OA1P.TQZ006GBGRTSSTATS a
group by rz, dbSys, dbName, name, partition, instance
)
, t as
(
select t.rz, t.dbSys, t.dbName, t.Name, min(t.tsTy) tsTy
, smallInt(t.partition * t.limPart) partition
, t.instance
, min(t.limGb) limGb
, min(t.parts) parts
, min(t.clone) clone
, min(t.tsInst) tsInst
, real(sum(real(t.nActive) * t.pgSize / 1048576)) actGB
from OA1P.TQZ006GBGRTSSTATS t join t2 a
on t.rz = a.rz
and t.dbSys = a.dbSys
and t.dbName = a.dbName
and t.Name = a.Name
and t.partition = a.partition
and t.instance = a.instance
and t.loadTS = a.loadTs
group by t.rz, t.dbSys, t.dbName, t.Name
, smallInt(t.partition * t.limPart)
, t.instance
)
, i2 as
(
select rz, dbSys, dbName, ts, indexSpace
, partition, instance, max(loadTs) loadTs
from OA1P.TQZ007GbGrIxSTATS a
group by rz, dbSys, dbName, ts, indexSpace, partition, instance
)
, i as
(
select i.*
, real(real(nActive) * ixPgSz / 1048576) actGB
from OA1P.TQZ007GBGRIxSTATS i join i2 a
on i.rz = a.rz
and i.dbSys = a.dbSys
and i.dbName = a.dbName
and i.ts = a.ts
and i.indexSpace= a.indexSpace
and i.partition = a.partition
and i.instance = a.instance
and i.loadTS = a.loadTs
)
, u (limGb, actGb, db, ts, ix, part, inst, rz, dbSys
, tsTy, tsLimGb, tsParts, tsClone, tsInst) as
(
select limGb, actGb, dbName, name, ' --ts--'
, partition, instance, rz, dbSys
, tsTy, limGb, parts, clone , tsInst
from t
union all select limGb, actGb, dbName, ts , name
, partition, instance, rz, dbSys
, tsTy, tslimGb, tsParts, tsClone, tsInst
from i
)
, s4 as
(
select u.*
,(select max(s.ord
|| right(' ' || schwelle, 6)
|| strip(rz) || '/' || strip(dbSys) || ':' || strip(db)
|| '.' || strip(ts) || '#' || part || tsTy || dsMin)
from s3 s
where left(u.rz, s.rzLen) = left(s.rz, s.rzLen)
and left(u.dbSys, s.dbSysLen) = left(s.dbSys, s.dbSysLen)
and left(u.db, s.dbLen) = left(s.db, s.dbLen)
and left(u.ts, s.tsLen) = left(s.ts, s.tsLen)
and s.part in (0, u.part)
and s.tsTy in (' ', '*', '%', u.tsTy)
and s.dsMin <= u.tsLimGB
) schwInfo
from u
)
, s as
(
select int(case when schwInfo is not null
then int(substr(schwInfo, 16, 6))
else raise_error(70001, 'schwelle null ts='
|| db || '.' || ts || '#' || part)
end) schwelle
, s4.*
from s4
-- order by db, ts, part, ix
)
select substr(db, 1, 8) "db"
, substr(ts, 1, 8) "ts"
, substr(ix, max(1, length(ix) - 7), 8) "...index"
, substr(case when part = 0 then ''
else value(right(' '||strip(char(part)), 4), '----')
||'/'|| value(right(' '||strip(char(tsParts)), 4),'----')
end, 1, 9) "part/ tot"
, dec(actGb, 6, 0) "usedGB"
, dec(limGb/100*schwelle, 6, 0) "schwGB"
, dec(schwelle, 3, 0) "schw%"
, dec(limGB, 6, 0) "limGB"
, tsTy "y"
, substr(schwinfo, 7, 25) "schwellwert key"
from s
where 1=1 -- and actGb > limGb / 100 * schwelle
and rz = 'RZ2' and dbSys = 'DBOF' and db = 'MF01A1P'
and actGb > limGb * schwelle / 100
order by s.db, s.ts, s.part, s.ix
;
select * from plan_view1
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAIKS) cre=2011-11-02 mod=2011-11-02-22.08.00 A540769 ---
select hex(applname), p.*
from cmnbatch.dsn_predicat_table p
where explain_time = '2011-11-02-21.55.44.046535'
;
--- versionen, compiles und explains eines packages -------------------
select *
from cmnbatch.plan_view0
where col = 'KE'
and prg = 'YKEA028'
order by pcOrd desc, biTi desc
with ur
;
select *
from cmnbatch.plan_view1
-- from cmnbatch.plan_view2
-- from cmnbatch.plan_view2Det ----> index fehlt
where collid = 'KE'
and progName = 'YKEA028'
and bind_time in ('2008-11-13-13.08.55.317001'
,'2011-11-02-21.55.44.046535'
)
order by collid, progName, version, bind_time,
queryno, qBlockNo, planno, mixopSeq
with ur
;
select *
from cmnbatch.plan_viewPred ----> index fehlt
where collid = 'KE'
and progName = 'YKEA028'
and bind_time in ('2008-11-13-13.08.55.317001'
,'2011-11-02-21.55.44.046535'
)
order by applName, collid, progName, bind_time,
queryNo, qBlockNo, planno, mixOpSeq,
stage, predNo
with ur
;;;;;;;;;;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
explain plan set queryno = 3 for
SELECT
DISTINCT A832. EXT_CONTRACT_ID,
A833. CONTRACT_KEY,
A833. PARTNER_KEY,
A833. PARTNER_TYPE,
A833. LE,
A833. BU,
A833. CONTRACT_COLL,
A833. STATE,
A833. LOCK_FROM_DATE,
A833. LOCK_TO_DATE,
A833. VALID_FROM_DATE,
A833. VALID_TO_DATE,
A833. LAST_UPDATE_TIME,
A833. LAST_UPDATE_ID,
A833. CONTROL_TIME,
A833. COMMENT
FROM
oa1t.VKS832A1V B832
JOIN
oa1t.VKS833A1V B833
ON B832. CONTRACT_KEY=B833. CONTRACT_KEY
JOIN
oa1t.VKS833A1V A833
ON B833. CONTRACT_COLL=A833. CONTRACT_COLL
JOIN
oa1t.VKS832A1V A832
ON A833. CONTRACT_KEY=A832. CONTRACT_KEY
WHERE
B832. EXT_CONTRACT_ID>=?
AND B832. EXT_CONTRACT_ID<=?
AND A833. PARTNER_TYPE>=?
AND A833. PARTNER_TYPE<=?
AND A833. VALID_FROM_DATE<=?
AND A833. VALID_TO_DATE>=?
AND A832. VALID_FROM_DATE<=?
AND A832. VALID_TO_DATE>=? FOR FETCH ONLY
;
select * from plan_view1
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by --collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
rollback
;;;;
select count(*), KS833060
from oa1t.TKS833A1
group by KS833060
order by 1 desc
with ur
fetch first 100 rows only
;;;
}¢--- A540769.WK.SQL(EXPLAILI) cre=2010-06-09 mod=2010-06-09-15.26.48 A540769 ---
set current sqlid = 's100447';
create view a540769.vTb as
select * from sysibm.sysTables ;
create view a540769.vCor as
select * from sysibm.sysTables "corView";
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 1 for
SELECT 00080000
' '||VALUE(L.CS_TA,REPEAT(' ',4))||' ' 00090000
||RIGHT(REPEAT(' ',9) 00100000
||STRIP(STRIP(STRIP(CHAR(U.UNDERLAYER),B,' '),L,'0'),T,'.'),9) 00110000
||' '||LEFT(L.TITEL_N,20)||' ' 00120000
||VALUE(K.WHR_UMR,REPEAT(' ',4))||' ' 00130000
||RIGHT(K.BOERSE,3)||' ' 00140000
||VALUE(CHAR(MAX(K.KURSDATUM)),'-')||' NEU ' 00150000
||CASE WHEN K.KURS_UMRECHNUNG < 99999999.999999 THEN 00160000
RIGHT(REPEAT(' ',7) 00170000
||STRIP(SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),1,15),L,'0'),7)00180000
||SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),16,3) 00190000
||LEFT(SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),19,5) 00200000
||REPEAT(' ',5),5) 00210000
ELSE '>99999999.99999' 00220000
END AS TEIL1, 00230000
CHAR(K.KURS_UMRECHNUNG) AS KURS_UMRECHNUNG, 00240000
K.WHR_UMR, 00250000
K.CS_KA_NUM, 00260000
CASE L.AIS_SP 00270000
WHEN '1' THEN 'JA' 00280000
ELSE ' ' 00290000
END AS AIS_SP, 00300000
STRIP(CHAR(L.UNDERLAYER),L,'0') AS UNDERLAYER, 00310000
K.WHRG, 00320000
RIGHT(K.BOERSE,3) AS BOERSE, 00330000
K.KURSDATUM, 00340000
STRIP(CHAR(L.TKKEY),L,'0') AS TKKEY 00350000
FROM OA1A.VFI010A1 L 00360000
INNER JOIN 00370000
OA1A.VFI011A1 U 00380000
ON L.UNDERLAYER = U.UNDERLAYER 00390000
AND L.LAUFNR = U.LAUFNR 00400000
AND L.VERFALL = U.VERFALL 00410000
AND L.BASISPREIS = U.BASISPREIS 00420000
AND L.KONTRAKT = U.KONTRAKT 00430000
AND L.VERSION = U.VERSION 00440000
INNER JOIN 00450000
OA1A.VFI020A1 K 00460000
ON L.TKKEY = K.TKKEY 00470000
AND L.BOERSE = K.BOERSE 00480000
AND L.WHRG = K.WHRG 00490000
AND L.VERFALL = K.VERFALL 00500000
WHERE L.VALOR_SC > 3 00510000
AND L.VALOR_SC < 16 00520000
AND L.STATUS = 'A' 00530000
AND K.STATUS = L.STATUS 00540000
AND K.QUELLE IN ('VDFS','INITLOAD') 00550000
AND K.MUT_STAT >= 0 00560000
AND K.KURSDATUM = ? -- chkdate 00570000
AND L.CS_TA = '2.02' 00580000
AND L.BPL_ST = '0' 00590000
AND L.BPL_SP = '0' 00600000
AND U.UNDERLAYER BETWEEN DEC('000000001',13) -- parm12 00610000
AND DEC('999999999',13) -- parm13 00620000
AND L.GENERATION = 00630000
(SELECT MAX(GENERATION) 00640000
FROM OA1A.VFI010A1 00650000
WHERE TKKEY = L.TKKEY 00660000
AND BOERSE = L.BOERSE 00670000
AND WHRG = L.WHRG 00680000
AND MUT_TIMESTAMP = L.MUT_TIMESTAMP) 00690000
AND L.GUELTIG_VON = 00700000
(SELECT MAX(GUELTIG_VON) 00710000
FROM OA1A.VFI010A1 00720000
WHERE TKKEY = L.TKKEY 00730000
AND BOERSE = L.BOERSE 00740000
AND WHRG = L.WHRG 00750000
AND VERFALL = L.VERFALL 00760000
AND GENERATION = L.GENERATION 00770000
AND STATUS = L.STATUS) 00780000
GROUP BY L.CS_TA , U.UNDERLAYER , L.TITEL_N, 00790000
K.KURS_UMRECHNUNG , K.WHR_UMR , K.CS_KA_NUM , L.AIS_SP, 00800000
L.UNDERLAYER , K.WHRG , K.BOERSE, 00810000
K.VERFALL, K.KURSDATUM , L.TKKEY 00820000
UNION 00830000
SELECT 00840000
' '||VALUE(L.CS_TA,REPEAT(' ',4))||' ' 00850000
||RIGHT(REPEAT(' ',9) 00860000
||STRIP(STRIP(STRIP(CHAR(U.UNDERLAYER),B,' '),L,'0'),T,'.'),9) 00870000
||' '||LEFT(L.TITEL_N,20)||' ' 00880000
||VALUE(K.WHR_UMR,REPEAT(' ',4))||' ' 00890000
||RIGHT(K.BOERSE,3)||' ' 00900000
||VALUE(CHAR(MAX(K.KURSDATUM)),'-')||' ALT ' 00910000
||CASE WHEN K.KURS_UMRECHNUNG < 99999999.999999 THEN 00920000
RIGHT(REPEAT(' ',7) 00930000
||STRIP(SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),1,15),L,'0'),7)00940000
||SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),16,3) 00950000
||LEFT(SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),19,5) 00960000
||REPEAT(' ',5),5) 00970000
ELSE '>99999999.99999' 00980000
END AS TEIL1, 00990000
CHAR(K.KURS_UMRECHNUNG) AS KURS_UMRECHNUNG, 01000000
K.WHR_UMR, 01010000
K.CS_KA_NUM, 01020000
CASE L.AIS_SP 01030000
WHEN '1' THEN 'JA' 01040000
ELSE ' ' 01050000
END AS AIS_SP, 01060000
STRIP(CHAR(L.UNDERLAYER),L,'0') AS UNDERLAYER, 01070000
K.WHRG, 01080000
RIGHT(K.BOERSE,3) AS BOERSE, 01090000
K.KURSDATUM, 01100000
STRIP(CHAR(L.TKKEY),L,'0') AS TKKEY 01110000
FROM OA1A.VFI010A1 L 01120000
INNER JOIN 01130000
OA1A.VFI011A1 U 01140000
ON L.UNDERLAYER = U.UNDERLAYER 01150000
AND L.LAUFNR = U.LAUFNR 01160000
AND L.VERFALL = U.VERFALL 01170000
AND L.BASISPREIS = U.BASISPREIS 01180000
AND L.KONTRAKT = U.KONTRAKT 01190000
AND L.VERSION = U.VERSION 01200000
INNER JOIN 01210000
OA1A.VFI020A1 K 01220000
ON L.TKKEY = K.TKKEY 01230000
AND L.BOERSE = K.BOERSE 01240000
AND L.WHRG = K.WHRG 01250000
AND L.STATUS = K.STATUS 01260000
WHERE 01270000
L.VALOR_SC > 3 01280000
AND L.VALOR_SC < 16 01290000
AND L.STATUS = 'A' 01300000
AND K.QUELLE IN ('VDFS','INITLOAD') 01310000
AND K.MUT_STAT >= 0 01320000
AND L.CS_TA = '2.02' 01330000
AND L.BPL_ST = '0' 01340000
AND L.BPL_SP = '0' 01350000
AND U.UNDERLAYER BETWEEN DEC('000000001',13) -- parm12 01360000
AND DEC('999999999',13) -- parm13 01370000
AND L.GENERATION = 01380000
(SELECT MAX(GENERATION) 01390000
FROM OA1A.VFI010A1 01400000
WHERE TKKEY = L.TKKEY 01410000
AND BOERSE = L.BOERSE 01420000
AND WHRG = L.WHRG 01430000
AND MUT_TIMESTAMP = L.MUT_TIMESTAMP) 01440000
AND L.GUELTIG_VON = 01450000
(SELECT MAX(GUELTIG_VON) 01460000
FROM OA1A.VFI010A1 01470000
WHERE TKKEY = L.TKKEY 01480000
AND BOERSE = L.BOERSE 01490000
AND WHRG = L.WHRG 01500000
AND GENERATION = L.GENERATION 01510000
AND STATUS = L.STATUS) 01520000
AND K.KURSDATUM = 01530000
(SELECT MAX(KURSDATUM) 01540000
FROM OA1A.VFI020A1 01550000
WHERE TKKEY = K.TKKEY 01560000
AND BOERSE = K.BOERSE 01570000
AND WHRG = K.WHRG 01580000
AND STATUS = K.STATUS 01590000
AND KURSDATUM < ? -- chkdate 01600000
AND STATUS = 'A' 01610000
AND K.QUELLE IN ('VDFS','INITLOAD')) 01620000
GROUP BY L.CS_TA , U.UNDERLAYER , L.TITEL_N, 01630000
K.KURS_UMRECHNUNG , K.WHR_UMR , K.CS_KA_NUM , L.AIS_SP, 01640000
L.UNDERLAYER , K.WHRG , K.BOERSE , K.KURSDATUM , L.TKKEY 01650000
ORDER BY TKKEY , BOERSE , WHRG , KURSDATUM WITH UR 01660000
; 01670000
EXPLAIN ALL SET QUERYNO = 2 FOR 01680000
SELECT 01690000
' '||VALUE(L.CS_TA,REPEAT(' ',4))||' ' 01700000
||RIGHT(REPEAT(' ',9) 01710000
||STRIP(STRIP(STRIP(CHAR(U.UNDERLAYER),B,' '),L,'0'),T,'.'),9) 01720000
||' '||LEFT(L.TITEL_N,20)||' ' 01730000
||VALUE(K.WHR_UMR,REPEAT(' ',4))||' ' 01740000
||RIGHT(K.BOERSE,3)||' ' 01750000
||VALUE(CHAR(MAX(K.KURSDATUM)),'-')||' NEU ' 01760000
||CASE WHEN K.KURS_UMRECHNUNG < 99999999.999999 THEN 01770000
RIGHT(REPEAT(' ',7) 01780000
||STRIP(SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),1,15),L,'0'),7)01790000
||SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),16,3) 01800000
||LEFT(SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),19,5) 01810000
||REPEAT(' ',5),5) 01820000
ELSE '>99999999.99999' 01830000
END AS TEIL1, 01840000
CHAR(K.KURS_UMRECHNUNG) AS KURS_UMRECHNUNG, 01850000
K.WHR_UMR, 01860000
K.CS_KA_NUM, 01870000
CASE L.AIS_SP 01880000
WHEN '1' THEN 'JA' 01890000
ELSE ' ' 01900000
END AS AIS_SP, 01910000
STRIP(CHAR(L.UNDERLAYER),L,'0') AS UNDERLAYER, 01920000
K.WHRG, 01930000
RIGHT(K.BOERSE,3) AS BOERSE, 01940000
K.KURSDATUM, 01950000
STRIP(CHAR(L.TKKEY),L,'0') AS TKKEY 01960000
FROM OA1A.VFI010A1 L 01970000
INNER JOIN 01980000
OA1A.VFI011A1 U 01990000
ON L.UNDERLAYER = U.UNDERLAYER 02000000
AND L.LAUFNR = U.LAUFNR 02010000
AND L.VERFALL = U.VERFALL 02020000
AND L.BASISPREIS = U.BASISPREIS 02030000
AND L.KONTRAKT = U.KONTRAKT 02040000
AND L.VERSION = U.VERSION 02050000
INNER JOIN 02060000
OA1A.VFI020A1 K 02070000
ON L.TKKEY = K.TKKEY 02080000
AND L.BOERSE = K.BOERSE 02090000
AND L.WHRG = K.WHRG 02100000
AND L.VERFALL = K.VERFALL 02110000
WHERE L.VALOR_SC > 3 02120000
AND L.VALOR_SC < 16 02130000
AND L.STATUS = 'A' 02140000
AND K.STATUS = L.STATUS 02150000
AND K.QUELLE IN ('VDFS','INITLOAD') 02160000
AND K.MUT_STAT >= 0 02170000
AND K.KURSDATUM = ? -- chkdate 02180000
AND L.CS_TA = '2.02' 02190000
AND L.BPL_ST = '0' 02200000
AND L.BPL_SP = '0' 02210000
AND U.UNDERLAYER BETWEEN DEC('000000001',13) -- parm12 02220000
AND DEC('999999999',13) -- parm13 02230000
AND L.GUELTIG_VON = 02240000
(SELECT MAX(GUELTIG_VON) 02250000
FROM OA1A.VFI010A1 02260000
WHERE TKKEY = L.TKKEY 02270000
AND BOERSE = L.BOERSE 02280000
AND WHRG = L.WHRG 02290000
AND VERFALL = L.VERFALL 02300000
AND GENERATION = L.GENERATION 02310000
AND STATUS = L.STATUS) 02320000
GROUP BY L.CS_TA , U.UNDERLAYER , L.TITEL_N, 02330000
K.KURS_UMRECHNUNG , K.WHR_UMR , K.CS_KA_NUM , L.AIS_SP, 02340000
L.UNDERLAYER , K.WHRG , K.BOERSE, 02350000
K.VERFALL, K.KURSDATUM , L.TKKEY 02360000
UNION ALL 02370000
SELECT 02380000
' '||VALUE(L.CS_TA,REPEAT(' ',4))||' ' 02390000
||RIGHT(REPEAT(' ',9) 02400000
||STRIP(STRIP(STRIP(CHAR(U.UNDERLAYER),B,' '),L,'0'),T,'.'),9) 02410000
||' '||LEFT(L.TITEL_N,20)||' ' 02420000
||VALUE(K.WHR_UMR,REPEAT(' ',4))||' ' 02430000
||RIGHT(K.BOERSE,3)||' ' 02440000
||VALUE(CHAR(MAX(K.KURSDATUM)),'-')||' ALT ' 02450000
||CASE WHEN K.KURS_UMRECHNUNG < 99999999.999999 THEN 02460000
RIGHT(REPEAT(' ',7) 02470000
||STRIP(SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),1,15),L,'0'),7)02480000
||SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),16,3) 02490000
||LEFT(SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),19,5) 02500000
||REPEAT(' ',5),5) 02510000
ELSE '>99999999.99999' 02520000
END AS TEIL1, 02530000
CHAR(K.KURS_UMRECHNUNG) AS KURS_UMRECHNUNG, 02540000
K.WHR_UMR, 02550000
K.CS_KA_NUM, 02560000
CASE L.AIS_SP 02570000
WHEN '1' THEN 'JA' 02580000
ELSE ' ' 02590000
END AS AIS_SP, 02600000
STRIP(CHAR(L.UNDERLAYER),L,'0') AS UNDERLAYER, 02610000
K.WHRG, 02620000
RIGHT(K.BOERSE,3) AS BOERSE, 02630000
K.KURSDATUM, 02640000
STRIP(CHAR(L.TKKEY),L,'0') AS TKKEY 02650000
FROM OA1A.VFI010A1 L 02660000
INNER JOIN 02670000
OA1A.VFI011A1 U 02680000
ON L.UNDERLAYER = U.UNDERLAYER 02690000
AND L.LAUFNR = U.LAUFNR 02700000
AND L.VERFALL = U.VERFALL 02710000
AND L.BASISPREIS = U.BASISPREIS 02720000
AND L.KONTRAKT = U.KONTRAKT 02730000
AND L.VERSION = U.VERSION 02740000
INNER JOIN 02750000
OA1A.VFI020A1 K 02760000
ON L.TKKEY = K.TKKEY 02770000
AND L.BOERSE = K.BOERSE 02780000
AND L.WHRG = K.WHRG 02790000
AND L.STATUS = K.STATUS 02800000
WHERE 02810000
L.VALOR_SC > 3 02820000
AND L.VALOR_SC < 16 02830000
AND L.STATUS = 'A' 02840000
AND K.QUELLE IN ('VDFS','INITLOAD') 02850000
AND K.MUT_STAT >= 0 02860000
AND L.CS_TA = '2.02' 02870000
AND L.BPL_ST = '0' 02880000
AND L.BPL_SP = '0' 02890000
AND U.UNDERLAYER BETWEEN DEC('000000001',13) -- parm12 02900000
AND DEC('999999999',13) -- parm13 02910000
AND L.GUELTIG_VON = 02920000
(SELECT MAX(GUELTIG_VON) 02930000
FROM OA1A.VFI010A1 02940000
WHERE TKKEY = L.TKKEY 02950000
AND BOERSE = L.BOERSE 02960000
AND WHRG = L.WHRG 02970000
AND GENERATION = L.GENERATION 02980000
AND STATUS = L.STATUS) 02990000
AND K.KURSDATUM = 03000000
(SELECT MAX(KURSDATUM) 03010000
FROM OA1A.VFI020A1 03020000
WHERE TKKEY = K.TKKEY 03030000
AND BOERSE = K.BOERSE 03040000
AND WHRG = K.WHRG 03050000
AND STATUS = K.STATUS 03060000
AND KURSDATUM < ? -- chkdate 03070000
AND STATUS = 'A' 03080000
AND K.QUELLE IN ('VDFS','INITLOAD')) 03090000
GROUP BY L.CS_TA , U.UNDERLAYER , L.TITEL_N, 03100000
K.KURS_UMRECHNUNG , K.WHR_UMR , K.CS_KA_NUM , L.AIS_SP, 03110000
L.UNDERLAYER , K.WHRG , K.BOERSE , K.KURSDATUM , L.TKKEY 03120000
ORDER BY TKKEY , BOERSE , WHRG , KURSDATUM WITH UR 03130000
; 03140000
explain plan set queryno = 11 for
SELECT 00080000
' '||VALUE(L.CS_TA,REPEAT(' ',4))||' ' 00090000
||RIGHT(REPEAT(' ',9) 00100000
||STRIP(STRIP(STRIP(CHAR(U.UNDERLAYER),B,' '),L,'0'),T,'.'),9) 00110000
||' '||LEFT(L.TITEL_N,20)||' ' 00120000
||VALUE(K.WHR_UMR,REPEAT(' ',4))||' ' 00130000
||RIGHT(K.BOERSE,3)||' ' 00140000
||VALUE(CHAR(MAX(K.KURSDATUM)),'-')||' NEU ' 00150000
||CASE WHEN K.KURS_UMRECHNUNG < 99999999.999999 THEN 00160000
RIGHT(REPEAT(' ',7) 00170000
||STRIP(SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),1,15),L,'0'),7)00180000
||SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),16,3) 00190000
||LEFT(SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),19,5) 00200000
||REPEAT(' ',5),5) 00210000
ELSE '>99999999.99999' 00220000
END AS TEIL1, 00230000
CHAR(K.KURS_UMRECHNUNG) AS KURS_UMRECHNUNG, 00240000
K.WHR_UMR, 00250000
K.CS_KA_NUM, 00260000
CASE L.AIS_SP 00270000
WHEN '1' THEN 'JA' 00280000
ELSE ' ' 00290000
END AS AIS_SP, 00300000
STRIP(CHAR(L.UNDERLAYER),L,'0') AS UNDERLAYER, 00310000
K.WHRG, 00320000
RIGHT(K.BOERSE,3) AS BOERSE, 00330000
K.KURSDATUM, 00340000
STRIP(CHAR(L.TKKEY),L,'0') AS TKKEY 00350000
FROM OA1A.VFI010A1 L 00360000
INNER JOIN 00370000
OA1A.VFI011A1 U 00380000
ON L.UNDERLAYER = U.UNDERLAYER 00390000
AND L.LAUFNR = U.LAUFNR 00400000
AND L.VERFALL = U.VERFALL 00410000
AND L.BASISPREIS = U.BASISPREIS 00420000
AND L.KONTRAKT = U.KONTRAKT 00430000
AND L.VERSION = U.VERSION 00440000
INNER JOIN 00450000
OA1A.VFI020A1 K 00460000
ON L.TKKEY = K.TKKEY 00470000
AND L.BOERSE = K.BOERSE 00480000
AND L.WHRG = K.WHRG 00490000
AND L.VERFALL = K.VERFALL 00500000
WHERE L.VALOR_SC > 3 00510000
AND L.VALOR_SC < 16 00520000
AND L.STATUS = 'A' 00530000
AND K.STATUS = L.STATUS 00540000
AND K.QUELLE IN ('VDFS','INITLOAD') 00550000
AND K.MUT_STAT >= 0 00560000
AND K.KURSDATUM = ? -- chkdate 00570000
AND L.CS_TA = '2.02' 00580000
AND L.BPL_ST = '0' 00590000
AND L.BPL_SP = '0' 00600000
AND U.UNDERLAYER BETWEEN DEC('000000001',13) -- parm12 00610000
AND DEC('999999999',13) -- parm13 00620000
AND L.GENERATION = 00630000
(SELECT MAX(GENERATION) 00640000
FROM OA1A.VFI010A1 00650000
WHERE TKKEY = L.TKKEY 00660000
AND BOERSE = L.BOERSE 00670000
AND WHRG = L.WHRG 00680000
AND MUT_TIMESTAMP = L.MUT_TIMESTAMP) 00690000
AND L.GUELTIG_VON = 00700000
(SELECT MAX(GUELTIG_VON) 00710000
FROM OA1A.VFI010A1 00720000
WHERE TKKEY = L.TKKEY 00730000
AND BOERSE = L.BOERSE 00740000
AND WHRG = L.WHRG 00750000
AND VERFALL = L.VERFALL 00760000
AND GENERATION = L.GENERATION 00770000
AND STATUS = L.STATUS) 00780000
GROUP BY L.CS_TA , U.UNDERLAYER , L.TITEL_N, 00790000
K.KURS_UMRECHNUNG , K.WHR_UMR , K.CS_KA_NUM , L.AIS_SP, 00800000
L.UNDERLAYER , K.WHRG , K.BOERSE, 00810000
K.VERFALL, K.KURSDATUM , L.TKKEY 00820000
ORDER BY TKKEY , BOERSE , WHRG , KURSDATUM WITH UR 01660000
; 01670000
explain plan set queryno = 12 for
SELECT 00080000
' '||VALUE(L.CS_TA,REPEAT(' ',4))||' ' 00090000
||RIGHT(REPEAT(' ',9) 00100000
||STRIP(STRIP(STRIP(CHAR(U.UNDERLAYER),B,' '),L,'0'),T,'.'),9) 00110000
||' '||LEFT(L.TITEL_N,20)||' ' 00120000
||VALUE(K.WHR_UMR,REPEAT(' ',4))||' ' 00130000
||RIGHT(K.BOERSE,3)||' ' 00140000
||VALUE(CHAR(MAX(K.KURSDATUM)),'-')||' NEU ' 00150000
||CASE WHEN K.KURS_UMRECHNUNG < 99999999.999999 THEN 00160000
RIGHT(REPEAT(' ',7) 00170000
||STRIP(SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),1,15),L,'0'),7)00180000
||SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),16,3) 00190000
||LEFT(SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),19,5) 00200000
||REPEAT(' ',5),5) 00210000
ELSE '>99999999.99999' 00220000
END AS TEIL1, 00230000
CHAR(K.KURS_UMRECHNUNG) AS KURS_UMRECHNUNG, 00240000
K.WHR_UMR, 00250000
K.CS_KA_NUM, 00260000
CASE L.AIS_SP 00270000
WHEN '1' THEN 'JA' 00280000
ELSE ' ' 00290000
END AS AIS_SP, 00300000
STRIP(CHAR(L.UNDERLAYER),L,'0') AS UNDERLAYER, 00310000
K.WHRG, 00320000
RIGHT(K.BOERSE,3) AS BOERSE, 00330000
K.KURSDATUM, 00340000
STRIP(CHAR(L.TKKEY),L,'0') AS TKKEY 00350000
FROM OA1A.VFI010A1 L 00360000
INNER JOIN 00370000
OA1A.VFI011A1 U 00380000
ON L.UNDERLAYER = U.UNDERLAYER 00390000
AND L.LAUFNR = U.LAUFNR 00400000
AND L.VERFALL = U.VERFALL 00410000
AND L.BASISPREIS = U.BASISPREIS 00420000
AND L.KONTRAKT = U.KONTRAKT 00430000
AND L.VERSION = U.VERSION 00440000
INNER JOIN 00450000
OA1A.VFI020A1 K 00460000
ON L.TKKEY = K.TKKEY 00470000
AND L.BOERSE = K.BOERSE 00480000
AND L.WHRG = K.WHRG 00490000
AND L.VERFALL = K.VERFALL 00500000
WHERE L.VALOR_SC > 3 00510000
AND L.VALOR_SC < 16 00520000
AND L.STATUS = 'A' 00530000
AND K.STATUS = L.STATUS 00540000
AND K.QUELLE IN ('VDFS','INITLOAD') 00550000
AND K.MUT_STAT >= 0 00560000
AND K.KURSDATUM = ? -- chkdate 00570000
AND L.CS_TA = '2.02' 00580000
AND L.BPL_ST = '0' 00590000
AND L.BPL_SP = '0' 00600000
AND U.UNDERLAYER BETWEEN DEC('000000001',13) -- parm12 00610000
AND DEC('999999999',13) -- parm13 00620000
GROUP BY L.CS_TA , U.UNDERLAYER , L.TITEL_N, 00790000
K.KURS_UMRECHNUNG , K.WHR_UMR , K.CS_KA_NUM , L.AIS_SP, 00800000
L.UNDERLAYER , K.WHRG , K.BOERSE, 00810000
K.VERFALL, K.KURSDATUM , L.TKKEY 00820000
ORDER BY TKKEY , BOERSE , WHRG , KURSDATUM WITH UR 01660000
; 01670000
explain plan set queryno = 13 for
SELECT 00080000
' '||VALUE(L.CS_TA,REPEAT(' ',4))||' ' 00090000
||RIGHT(REPEAT(' ',9) 00100000
||STRIP(STRIP(STRIP(CHAR(U.UNDERLAYER),B,' '),L,'0'),T,'.'),9) 00110000
||' '||LEFT(L.TITEL_N,20)||' ' 00120000
||VALUE(K.WHR_UMR,REPEAT(' ',4))||' ' 00130000
||RIGHT(K.BOERSE,3)||' ' 00140000
||VALUE(CHAR(MAX(K.KURSDATUM)),'-')||' NEU ' 00150000
||CASE WHEN K.KURS_UMRECHNUNG < 99999999.999999 THEN 00160000
RIGHT(REPEAT(' ',7) 00170000
||STRIP(SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),1,15),L,'0'),7)00180000
||SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),16,3) 00190000
||LEFT(SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),19,5) 00200000
||REPEAT(' ',5),5) 00210000
ELSE '>99999999.99999' 00220000
END , 00230000
CHAR(K.KURS_UMRECHNUNG) , 00240000
K.WHR_UMR, 00250000
K.CS_KA_NUM, 00260000
CASE L.AIS_SP 00270000
WHEN '1' THEN 'JA' 00280000
ELSE ' ' 00290000
END , 00300000
STRIP(CHAR(L.UNDERLAYER),L,'0') , 00310000
K.WHRG, 00320000
RIGHT(K.BOERSE,3) , 00330000
K.KURSDATUM, 00340000
STRIP(CHAR(L.TKKEY),L,'0') 00350000
FROM OA1A.VFI010A1 L 00360000
INNER JOIN 00370000
OA1A.VFI011A1 U 00380000
ON L.UNDERLAYER = U.UNDERLAYER 00390000
AND L.LAUFNR = U.LAUFNR 00400000
AND L.VERFALL = U.VERFALL 00410000
AND L.BASISPREIS = U.BASISPREIS 00420000
AND L.KONTRAKT = U.KONTRAKT 00430000
AND L.VERSION = U.VERSION 00440000
INNER JOIN 00450000
OA1A.VFI020A1 K 00460000
ON L.TKKEY = K.TKKEY 00470000
AND L.BOERSE = K.BOERSE 00480000
AND L.WHRG = K.WHRG 00490000
AND L.VERFALL = K.VERFALL 00500000
WHERE L.VALOR_SC > 3 00510000
AND L.VALOR_SC < 16 00520000
AND L.STATUS = 'A' 00530000
AND K.STATUS = L.STATUS 00540000
AND K.QUELLE IN ('VDFS','INITLOAD') 00550000
AND K.MUT_STAT >= 0 00560000
AND K.KURSDATUM = ? -- chkdate 00570000
AND L.CS_TA = '2.02' 00580000
AND L.BPL_ST = '0' 00590000
AND L.BPL_SP = '0' 00600000
AND U.UNDERLAYER BETWEEN DEC('000000001',13) -- parm12 00610000
AND DEC('999999999',13) -- parm13 00620000
GROUP BY L.CS_TA , U.UNDERLAYER , L.TITEL_N, 00790000
K.KURS_UMRECHNUNG , K.WHR_UMR , K.CS_KA_NUM , L.AIS_SP, 00800000
L.UNDERLAYER , K.WHRG , K.BOERSE, 00810000
K.VERFALL, K.KURSDATUM , L.TKKEY 00820000
ORDER BY l.TKKEY , k.BOERSE , k.WHRG WITH UR 01660000
; 01670000
explain plan set queryno = 14 for
SELECT 'x' 00080000
FROM OA1A.VFI010A1 L 00360000
INNER JOIN 00370000
OA1A.VFI011A1 U 00380000
ON L.UNDERLAYER = U.UNDERLAYER 00390000
AND L.LAUFNR = U.LAUFNR 00400000
AND L.VERFALL = U.VERFALL 00410000
AND L.BASISPREIS = U.BASISPREIS 00420000
AND L.KONTRAKT = U.KONTRAKT 00430000
AND L.VERSION = U.VERSION 00440000
WHERE L.VALOR_SC > 3 00510000
AND L.VALOR_SC < 16 00520000
AND L.STATUS = 'A' 00530000
AND L.CS_TA = '2.02' 00580000
AND L.BPL_ST = '0' 00590000
AND L.BPL_SP = '0' 00600000
AND U.UNDERLAYER BETWEEN DEC('000000001',13) -- parm12 00610000
AND DEC('999999999',13) -- parm13 00620000
ORDER BY l.TKKEY WITH UR 01660000
; 01670000
explain plan set queryno = 15 for
SELECT 'x' 00080000
FROM OA1A.VFI010A1 L 00360000
, 00370000
OA1A.VFI011A1 U 00380000
where
L.UNDERLAYER = U.UNDERLAYER 00390000
AND L.LAUFNR = U.LAUFNR 00400000
AND L.VERFALL = U.VERFALL 00410000
AND L.BASISPREIS = U.BASISPREIS 00420000
AND L.KONTRAKT = U.KONTRAKT 00430000
AND L.VERSION = U.VERSION 00440000
and L.VALOR_SC > 3 00510000
AND L.VALOR_SC < 16 00520000
AND L.STATUS = 'A' 00530000
AND L.CS_TA = '2.02' 00580000
AND L.BPL_ST = '0' 00590000
AND L.BPL_SP = '0' 00600000
AND U.UNDERLAYER BETWEEN DEC('000000001',13) -- parm12 00610000
AND DEC('999999999',13) -- parm13 00620000
ORDER BY l.TKKEY WITH UR 01660000
; 01670000
explain plan set queryno = 15 for
SELECT 'x' 00080000
FROM OA1A.VFI010A1 L 00360000
where
L.VALOR_SC > 3 00510000
AND L.VALOR_SC < 16 00520000
AND L.STATUS = 'A' 00530000
AND L.CS_TA = '2.02' 00580000
AND L.BPL_ST = '0' 00590000
AND L.BPL_SP = '0' 00600000
ORDER BY l.TKKEY WITH UR 01660000
; 01670000
explain plan set queryno = 71 for
select * from sysibm.systables
where dbName like 'abc%'
;
explain plan set queryno = 72 for
select * from sysibm.systables "selTb"
where dbName like 'abc%'
;
explain plan set queryno = 73 for
with "with" as
(
select * from A540769.vTb "witSel"
)
select * from "with" "selWit"
where dbName like 'abc%'
;
explain plan set queryno = 81 for
select * from A540769.vTb
where dbName like 'abc%'
;
explain plan set queryno = 82 for
select * from A540769.vTb "selVTb"
where dbName like 'abc%'
;
explain plan set queryno = 83 for
with "with" as
(
select * from A540769.vTb "witVTb"
)
select * from "with" "selWit"
where dbName like 'abc%'
;
explain plan set queryno = 91 for
select * from A540769.vCor
where dbName like 'abc%'
;
explain plan set queryno = 92 for
select * from A540769.vCor "selVCo"
where dbName like 'abc%'
;
explain plan set queryno = 93 for
with "with" as
(
select * from A540769.vCor "witVCo"
)
select * from "with" "selWit"
where dbName like 'abc%'
;
select * from plan_view2
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
}¢--- A540769.WK.SQL(EXPLAIMF) cre=2010-11-15 mod=2013-08-23-10.10.49 A540769 ---
--- versionen, compiles und explains eines packages -------------------
select *
from cmnbatch.plan_view0
where collid = 'MF'
and prog = 'MF7010'
order by pcBi desc, bind_Time desc
with ur
;
--- ausgewählte Explains analysieren
select *
-- from cmnbatch.plan_view1
from cmnbatch.plan_view2
-- from cmnbatch.plan_view2Det
where collid = 'MF'
and progName = 'MF7010'
and bind_time = '2012-03-17-11.05.04.595094'
order by collid, progName, version, bind_time,
queryno, qBlockNo, planno, mixopSeq
with ur
;
select *
from cmnbatch.plan_viewPred
where collid = 'MF'
and progName = 'MF7010'
and bind_time = '2011-08-30-14.14.59.234601'
order by collid, progName, applName, bind_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
SELECT CHAR('@')
|| CHAR('RM') || CHAR('@')
|| CHAR('CIF') || CHAR('@')
|| CHAR('CIF_NAME') || CHAR('@')
|| CHAR('PH_A_AMT') || CHAR('@')
|| CHAR('PH_A_CTR') || CHAR('@')
|| CHAR('PH_Z_AMT') || CHAR('@')
|| CHAR('PH_Z_CTR') || CHAR('@')
|| CHAR('PH_ABS_AMT') || CHAR('@')
|| CHAR('NPH_A_AMT') || CHAR('@')
|| CHAR('NPH_A_CTR') || CHAR('@')
|| CHAR('NPH_Z_AMT') || CHAR('@')
|| CHAR('NPH_Z_CTR') || CHAR('@')
|| CHAR('TOT')
FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT
CHAR('@')
|| RM || CHAR('@')
|| CIF_NO || CHAR('@')
|| NAME || CHAR('@')
|| CHAR(DECIMAL(SUM(PHY_ABF_1),31,3)) || CHAR('@')
|| CHAR(SUM(ANZ_PHY_ABF_1)) || CHAR('@')
|| CHAR(DECIMAL(SUM(PHY_ZUF_2),31,3)) || CHAR('@')
|| CHAR(SUM(ANZ_PHY_ZUF_2)) || CHAR('@')
|| CHAR(DECIMAL(SUM(PHY_ABS_3),31,3)) || CHAR('@')
|| CHAR(DECIMAL(SUM(NPHY_ABF_4),31,3)) || CHAR('@')
|| CHAR(SUM(ANZ_NPHY_ABF_4)) || CHAR('@')
|| CHAR(DECIMAL(SUM(NPHY_ZUF_5),31,3)) || CHAR('@')
|| CHAR(SUM(ANZ_NPHY_ZUF_5)) || CHAR('@')
|| CHAR(DECIMAL(SUM(TOTAL_ABS),31,3))
FROM
(SELECT CASE(SUBSTR(C.INT_OE_FORM_PID_KV,1,8))
WHEN(' ')
THEN RTRIM(MA.GESETZLICHER_NAME) || CHAR(' ') ||
RTRIM(MA.VORNAME) || ', ' ||
LTRIM(RTRIM(C.INT_OE_FORM_PID_KV))
ELSE CHAR(' ')
END AS RM,
C.CIFNUMMER_KUNDE AS CIF_NO,
Z.KURZADRESSE_1 AS NAME,
CASE
WHEN C.TRANSACTION_TYP = 10
AND C.ZU_ABFLUSS = 'A'
THEN ABS(C.BETRAG_BUWHR)
ELSE 0
END AS PHY_ABF_1,
CASE
WHEN C.TRANSACTION_TYP = 10
AND C.ZU_ABFLUSS = 'A'
THEN 1
ELSE 0
END AS ANZ_PHY_ABF_1,
CASE
WHEN C.TRANSACTION_TYP = 10
AND C.ZU_ABFLUSS = 'Z'
THEN C.BETRAG_BUWHR
ELSE 0
END AS PHY_ZUF_2,
CASE
WHEN C.TRANSACTION_TYP = 10
AND C.ZU_ABFLUSS = 'Z'
THEN 1
ELSE 0
END AS ANZ_PHY_ZUF_2,
CASE
WHEN C.TRANSACTION_TYP = 10
THEN ABS(C.BETRAG_BUWHR)
ELSE 0
END AS PHY_ABS_3,
CASE
WHEN C.TRANSACTION_TYP = 20
AND C.ZU_ABFLUSS = 'A'
THEN ABS(C.BETRAG_BUWHR)
ELSE 0
END AS NPHY_ABF_4,
CASE
WHEN C.TRANSACTION_TYP = 20
AND C.ZU_ABFLUSS = 'A'
THEN 1
ELSE 0
END AS ANZ_NPHY_ABF_4,
CASE
WHEN C.TRANSACTION_TYP = 20
AND C.ZU_ABFLUSS = 'Z'
THEN C.BETRAG_BUWHR
ELSE 0
END AS NPHY_ZUF_5,
CASE
WHEN C.TRANSACTION_TYP = 20
AND C.ZU_ABFLUSS = 'Z'
THEN 1
ELSE 0
END AS ANZ_NPHY_ZUF_5,
ABS(C.BETRAG_BUWHR) AS TOTAL_ABS
FROM oa1t.VMF150A1V C
LEFT OUTER JOIN oa1t.VBP200A1R MA
ON SUBSTR(C.INT_OE_FORM_PID_KV,9,8) = MA.PID,
oa1t.TMF009A1 Z
WHERE C.ID_MITTELFLUSS IN
(SELECT D.ID_MITTELFLUSS
FROM oa1t.TMF160A1 D, oa1t.VMF202A1
WHERE D.TEV_DATUM = TEV_DAT_EUR)
AND C.CIFNUMMER_KUNDE = Z.CIF
AND Z.CIF_STATUS = 'L'
AND Z.OFFSHORE_CD_TRUST = '25'
AND C.RELEVANT_GROUP NOT IN (0,2)
) X
GROUP BY
RM,
CIF_NO,
NAME
WITH UR
;
select * from plan_view1
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by --collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
rollback
;;;;
--- versionen, compiles und explains eines packages --------
select *
from cmnbatch.plan_view0
where collid = 'MF'
and prog = 'MF8120'
order by pcBi desc, bind_Time desc
with ur
;
--- ausgewählte Explains analysieren
select *
-- from cmnbatch.plan_view1
from cmnbatch.plan_view2
-- from cmnbatch.plan_view2Det
where collid = 'MF'
and progName = 'MF8120'
and (opthint <> '' or hint_used <> '')
-- and bind_time in ('2012-03-06-16.53.11.688569'
-- ,'2012-03-06-16.52.29.596158'
-- ,'2011-05-12-11.57.17.372668'
-- )
order by collid, progName, version, bind_time,
queryno, qBlockNo, planno, mixopSeq
with ur
;; ;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
SELECT *
FROM oa1p.TMF401A1 A
WHERE NOT EXISTS
(SELECT 1
FROM oa1p.TMF150A1 b
WHERE A.UUID = B.MF150001 UNION ALL SELECT 1
FROM oa1p.TMF150H1 B
WHERE A.UUID = B.MF150001) WITH UR
;
explain plan set queryno = 9 for
SELECT *
FROM oa1p.TMF401A1 A
WHERE NOT EXISTS
(SELECT 1
FROM oa1p.TMF150A1 b
WHERE A.UUID = B.MF150001 ) and not exists ( SELECT 1
FROM oa1p.TMF150H1 B
WHERE A.UUID = B.MF150001) WITH UR
;
select * from plan_view1
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by --collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
rollback
;;;;
--- versionen, compiles und explains eines packages --------
select *
from cmnbatch.plan_view0
where collid = 'MF'
and prog = 'MF7930'
order by pcBi desc, bind_Time desc
with ur
;
--- ausgewählte Explains analysieren
select *
-- from cmnbatch.plan_view1
from cmnbatch.plan_view2
-- from cmnbatch.plan_view2Det
where collid = 'MF'
and progName = 'MF7930'
-- and (opthint <> '' or hint_used <> '')
and bind_time in ('2012-03-06-16.53.11.688569'
,'2012-03-06-16.52.29.596158'
,'2011-05-12-11.57.17.372668'
)
order by collid, progName, version, bind_time,
queryno, qBlockNo, planno, mixopSeq
with ur
;; ;
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 1 for
SELECT MF150013,CHAR('@')
FROM oa1p.TMF150A1
WHERE MF150060 BETWEEN '2011-08-31-00.00.00.000000'
AND '2011-08-31-23.59.59.999999'
AND MF150022 = '0015'
AND MF150001 NOT IN
(SELECT UUID FROM oa1p.TMF401A1)
UNION ALL
SELECT MF150013,CHAR('@')
FROM oa1p.TMF150A1
WHERE MF150022 = '0015'
AND MF150001 IN
(SELECT UUID FROM oa1p.TMF401A1
WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
AND '2011-08-31-23.59.59.999999')
WITH UR;
explain plan set queryno = 11 for
SELECT MF150013,CHAR('@')
FROM oa1p.TMF150A1
WHERE MF150060 BETWEEN '2011-08-31-00.00.00.000000'
AND '2011-08-31-23.59.59.999999'
AND MF150022 = '0015'
AND MF150001 NOT IN
(SELECT UUID FROM oa1p.TMF401A1)
with ur ;
explain plan set queryno = 12 for
SELECT MF150013,CHAR('@')
FROM oa1p.TMF150A1
WHERE MF150022 = '0015'
AND MF150001 IN
(SELECT UUID FROM oa1p.TMF401A1
WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
AND '2011-08-31-23.59.59.999999')
WITH UR;
explain plan set queryno = 21 for
SELECT MF150013,CHAR('@')
FROM oa1p.TMF150A1 f
WHERE MF150060 BETWEEN '2011-08-31-00.00.00.000000'
AND '2011-08-31-23.59.59.999999'
AND MF150022 = '0015'
AND not exists
(SELECT 1 FROM oa1p.TMF401A1 t
where f.mf150001 = t.uuid)
with ur ;
explain plan set queryno = 30 for
SELECT MF150013,CHAR('@')
FROM oa1p.TMF150A1 f
WHERE MF150060 BETWEEN '2011-08-31-00.00.00.000000'
AND '2011-08-31-23.59.59.999999'
AND MF150022 = '0015'
AND not exists
(SELECT 1 FROM oa1p.TMF401A1 t
where f.mf150001 = t.uuid)
UNION ALL
SELECT MF150013,CHAR('@')
FROM oa1p.TMF150A1
WHERE MF150022 = '0015'
AND MF150001 IN
(SELECT UUID FROM oa1p.TMF401A1
WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
AND '2011-08-31-23.59.59.999999')
with ur ;
explain plan set queryno = 31 for
SELECT count(*), sum(day(MF150013)),CHAR('@')
FROM oa1p.TMF150A1 f
WHERE MF150060 BETWEEN '2011-08-31-00.00.00.000000'
AND '2011-08-31-23.59.59.999999'
AND MF150022 = '0015'
AND not exists
(SELECT 1 FROM oa1p.TMF401A1 t
where f.mf150001 = t.uuid)
UNION ALL
SELECT count(*), sum(day(MF150013)),CHAR('@')
FROM oa1p.TMF150A1
WHERE MF150022 = '0015'
AND MF150001 IN
(SELECT UUID FROM oa1p.TMF401A1
WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
AND '2011-08-31-23.59.59.999999')
with ur ;
explain plan set queryno = 40 for
SELECT MF150001, MF150013,CHAR('@') aff
FROM oa1p.TMF150A1 f
WHERE MF150060 BETWEEN '2011-08-31-00.00.00.000000'
AND '2011-08-31-23.59.59.999999'
AND MF150022 = '0015'
except all
SELECT MF150001, MF150013,CHAR('@') aff
FROM oa1p.TMF150A1 f
WHERE MF150060 BETWEEN '2011-08-31-00.00.00.000000'
AND '2011-08-31-23.59.59.999999'
AND MF150022 = '0015'
AND exists
(SELECT 1 FROM oa1p.TMF401A1 t
where f.mf150001 = t.uuid)
UNION ALL
SELECT mf150001, MF150013,CHAR('@') aff
FROM oa1p.TMF150A1
WHERE MF150022 = '0015'
AND MF150001 IN
(SELECT UUID FROM oa1p.TMF401A1
WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
AND '2011-08-31-23.59.59.999999')
with ur ;
explain plan set queryno = 44 for
with w as (
SELECT MF150001, MF150013,CHAR('@') aff
FROM oa1p.TMF150A1 f
WHERE MF150060 BETWEEN '2011-08-31-00.00.00.000000'
AND '2011-08-31-23.59.59.999999'
AND MF150022 = '0015'
except all
SELECT MF150001, MF150013,CHAR('@') aff
FROM oa1p.TMF150A1 f
WHERE MF150060 BETWEEN '2011-08-31-00.00.00.000000'
AND '2011-08-31-23.59.59.999999'
AND MF150022 = '0015'
AND exists
(SELECT 1 FROM oa1p.TMF401A1 t
where f.mf150001 = t.uuid)
UNION ALL
SELECT mf150001, MF150013,CHAR('@') aff
FROM oa1p.TMF150A1
WHERE MF150022 = '0015'
AND MF150001 IN
(SELECT UUID FROM oa1p.TMF401A1
WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
AND '2011-08-31-23.59.59.999999')
) select count(*), sum(day(mf150013))
from w
with ur ;
select * from plan_view2
order by applname, progname, queryNo, qblockno, planno
;;;,
explain plan set queryno = 22 for
SELECT MF150013,CHAR('@')
FROM oa1p.TMF150A1 f
WHERE MF150022 = '0015'
AND exists
(SELECT UUID FROM oa1p.TMF401A1 t
WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
AND '2011-08-31-23.59.59.999999'
and f.mf150001 = t.uuid
)
WITH UR;
explain plan set queryno = 27 for
SELECT MF150013,CHAR('@')
FROM oa1p.TMF150A1 f
WHERE MF150022 = '0015'
AND exists
(SELECT UUID FROM oa1p.TMF401A1 t
WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
AND '2011-08-31-23.59.59.999999'
and f.mf150001 = t.uuid
)
WITH UR;
explain plan set queryno = 30 for
SELECT MF150013,CHAR('@')
FROM oa1p.TMF150A1 f
WHERE MF150022 = '0015'
AND '2011-08-31-23.59.59.999999'
AND MF150022 = '0015'
AND not exists
(SELECT UUID FROM oa1p.TMF401A1 t
WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
AND '2011-08-31-23.59.59.999999'
and f.mf150001 = t.uuid
)
UNION ALL
SELECT MF150013,CHAR('@')
FROM oa1p.TMF150A1
WHERE MF150022 = '0015'
AND MF150001 IN
(SELECT UUID FROM oa1p.TMF401A1
WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
AND '2011-08-31-23.59.59.999999')
WITH UR;
explain plan set queryno = 31 for
SELECT MF150013,CHAR('@')
FROM oa1p.TMF150A1 f
WHERE MF150022 = '0015'
AND not exists
(SELECT UUID FROM oa1p.TMF401A1 t
WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
AND '2011-08-31-23.59.59.999999'
and f.mf150001 = t.uuid
)
UNION ALL
SELECT MF150013,CHAR('@')
FROM oa1p.TMF150A1
WHERE MF150022 = '0015'
AND MF150001 IN
(SELECT UUID FROM oa1p.TMF401A1
WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
AND '2011-08-31-23.59.59.999999')
WITH UR;
explain plan set queryno = 33 for
SELECT count(*), sum(day(MF150013)),CHAR('@')
FROM oa1p.TMF150A1 f
WHERE MF150022 = '0015'
AND not exists
(SELECT UUID FROM oa1p.TMF401A1 t
WHERE BEWERTUNGSDATUM + 0 days BETWEEN '2011-08-31-00.00.00.000000'
AND '2011-08-31-23.59.59.999999'
and f.mf150001 = t.uuid || ''
)
UNION ALL
SELECT count(*), sum(day(MF150013)),CHAR('@')
FROM oa1p.TMF150A1
WHERE MF150022 = '0015'
AND MF150001 IN
(SELECT UUID FROM oa1p.TMF401A1
WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
AND '2011-08-31-23.59.59.999999')
WITH UR;
explain plan set queryno = 44 for
select count(*), sum(length(strip(MF150059))),
sum(length(strip(MF150005))),
sum(length(strip(MF150023)))
FROM oa1p.TMF150A1
;
explain plan set queryno = 55 for
SELECT mf150001, MF150013,CHAR('@') aff
FROM oa1p.TMF150A1 f
WHERE MF150022 = '0015'
except all
SELECT mf150001, MF150013,CHAR('@') aff
FROM oa1p.TMF150A1 f
WHERE MF150022 = '0015'
AND exists
(SELECT UUID FROM oa1p.TMF401A1 t
WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
AND '2011-08-31-23.59.59.999999'
and f.mf150001 = t.uuid
)
UNION ALL
SELECT mf150001, MF150013,CHAR('@') aff
FROM oa1p.TMF150A1
WHERE MF150022 = '0015'
AND MF150001 IN
(SELECT UUID FROM oa1p.TMF401A1
WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
AND '2011-08-31-23.59.59.999999')
WITH UR
;
explain plan set queryno = 56 for
with w as (
SELECT mf150001, MF150013,CHAR('@') aff
FROM oa1p.TMF150A1 f
WHERE MF150022 = '0015'
except all
SELECT mf150001, MF150013,CHAR('@') aff
FROM oa1p.TMF150A1 f
WHERE MF150022 = '0015'
AND exists
(SELECT UUID FROM oa1p.TMF401A1 t
WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
AND '2011-08-31-23.59.59.999999'
and f.mf150001 = t.uuid
)
UNION ALL
SELECT mf150001, MF150013,CHAR('@') aff
FROM oa1p.TMF150A1
WHERE MF150022 = '0015'
AND MF150001 IN
(SELECT UUID FROM oa1p.TMF401A1
WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
AND '2011-08-31-23.59.59.999999')
)
select count(*), sum(day(mf150013)) from w
WITH UR
;
select * from plan_view2
order by applname, progname, queryNo, qblockno, planno
;
;elete from plan_table where queryno = 1
;
select * from cmnbatch.plan_view1
-- 2010-11-12-21.45.30.666016 MFR0000223
where progname = 'MF7930' and version = 'MFR0000223'
-- and bind_time = '2010-11-12-21.45.30.666016'
and bind_time = '2010-01-10-12.41.38.311213'
-- and queryno = 775
order by applname, progname, queryNo, qblockno, planno
; x;
select * from cmnbatch.plan_view1
where progname = 'YMFC112' and version = 'MFR00002145D0FA880'
-- and bind_time = '2010-11-12-21.46.53.627557'
and queryno = 775
order by applname, progname, queryNo, qblockno, planno
, bind_time desc
; x;
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 1 for
SELECT INT_OE_BEZ,Int_Hist_OE_Bez,MF150066,
OE_VON_DATE,OE_Bis_Date,MF150019A,
SUM(CASE WHEN MF150019 BETWEEN 0 AND 999999999999999
THEN MF150019
ELSE 0 END) AS SUMME_Z,
SUM(CASE WHEN MF150019 BETWEEN -999999999999999 and 0
THEN MF150019
ELSE 0 END) AS SUMME_A,
0,
0
FROM oa1p.TMF150A1,oa1p.TMFOE1T1
Where MF150067 = INT_HIST_OE_BEZ
AND MF150013 BETWEEN OE_VON_DATE AND OE_Bis_Date
AND MF150013 BETWEEN '01.11.2010' AND '11.11.2010'
GROUP BY INT_OE_BEZ,Int_Hist_OE_Bez,MF150066,
OE_VON_DATE,OE_Bis_Date,MF150019A
ORdER BY INT_OE_BEZ,Int_Hist_OE_Bez,MF150066,
OE_VON_DATE,OE_Bis_Date,MF150019A
WITH UR
;
explain plan set queryno = 2 for
SELECT INT_OE_BEZ,Int_Hist_OE_Bez,MF150066,
OE_VON_DATE,OE_Bis_Date,MF150019A,
SUM(CASE WHEN MF150019 BETWEEN 0 AND 999999999999999
THEN MF150019
ELSE 0 END) AS SUMME_Z,
SUM(CASE WHEN MF150019 BETWEEN -999999999999999 and 0
THEN MF150019
ELSE 0 END) AS SUMME_A,
0,
0
FROM oa1p.TMF150A1,oa1p.TMFOE1T1
Where MF150067 = INT_HIST_OE_BEZ
AND MF150013 BETWEEN max(OE_VON_DATE, ? || '')
AND min(OE_Bis_Date, ? || '')
GROUP BY INT_OE_BEZ,Int_Hist_OE_Bez,MF150066,
OE_VON_DATE,OE_Bis_Date,MF150019A
ORdER BY INT_OE_BEZ,Int_Hist_OE_Bez,MF150066,
OE_VON_DATE,OE_Bis_Date,MF150019A
WITH UR
;
select * from plan_view2
order by applname, progname, queryNo, qblockno, planno
;
delete from plan_table where queryno = 1
;
update plan_table
set queryno = 775
, collid = 'MF'
, progname = 'YMFC112'
, version = 'MFR00002145D0FA880'
, optHint = 'WK1'
;
-- update plan_table -- nein, verliert matchCols mit altem sq
-- set method = 4
-- where tName = 'TMF150A1'
--;
select * from plan_view2
order by applname, progname, queryNo, qblockno, planno
;
delete from cmnbatch.plan_table
where opthint = 'WK1' and progName = 'YMFC112'
;
insert into cmnbatch.plan_table
select * from A540769.plan_table;
select * from cmnbatch.plan_view2
where opthint = 'WK1' and progName = 'YMFC112'
order by applname, progname, queryNo, qblockno, planno
;
commit ;
;x,
select current timestamp from sysibm.sysdummy1;
SELECT INT_OE_BEZ,Int_Hist_OE_Bez,MF150066,
OE_VON_DATE,OE_Bis_Date,MF150019A,
SUM(CASE WHEN MF150019 BETWEEN 0 AND 999999999999999
THEN MF150019
ELSE 0 END) AS SUMME_Z,
SUM(CASE WHEN MF150019 BETWEEN -999999999999999 and 0
THEN MF150019
ELSE 0 END) AS SUMME_A,
0,
0
FROM oa1p.TMF150A1,oa1p.TMFOE1T1
Where MF150067 = INT_HIST_OE_BEZ
AND MF150013 BETWEEN OE_VON_DATE AND OE_Bis_Date
AND MF150013 BETWEEN '01.11.2010' AND '11.11.2010'
GROUP BY INT_OE_BEZ,Int_Hist_OE_Bez,MF150066,
OE_VON_DATE,OE_Bis_Date,MF150019A
ORdER BY INT_OE_BEZ,Int_Hist_OE_Bez,MF150066,
OE_VON_DATE,OE_Bis_Date,MF150019A
WITH UR
;
select current timestamp from sysibm.sysdummy1;
;x;
select * from cmnbatch.plan_view1
-- where progname = 'YMFC203' and version = 'MFR00002355DFB546C'
where progname = 'YMFC203' and version = 'MFR00001975C33357F'
-- and bind_time = '2010-11-12-21.46.53.627557'
order by applname, progname, queryNo, qblockno, planno
, bind_time desc
;
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 1 for
SELECT COUNT(*)
FROM TABLE (
SELECT MF150001
FROM oa1p.TMF150A1
WHERE MF150023 = '065911392784'
AND MF150055 LIKE '%'
AND MF150085 between 10 and 89
AND MF150013 BETWEEN '01.01.2008' and '10.11.2010'
AND ((MF150019 BETWEEN 100 AND 999999999999999)
OR (MF150019 BETWEEN -999999999999999 and -100))
UNION
SELECT MF150001
FROM oa1p.TMF150H1
WHERE MF150023 = '065911392784'
AND MF150055 LIKE '%'
AND MF150085 between 10 and 89
AND MF150013 BETWEEN '01.01.2008' and '10.11.2010'
AND ((MF150019 BETWEEN 100 AND 999999999999999)
OR (MF150019 BETWEEN -999999999999999 and -100))
) AS X
WITH UR
;
explain plan set queryno = 2 for
SELECT COUNT(*)
FROM TABLE (
SELECT MF150001
FROM oa1p.TMF150A1
WHERE MF150023 = '065911392784'
AND MF150055 LIKE '%'
AND MF150085 between 10 and 89
AND MF150013 BETWEEN '01.01.2008' and '10.11.2010'
AND ((MF150019 BETWEEN 100 AND 999999999999999)
OR (MF150019 BETWEEN -999999999999999 and -100))
UNION all
SELECT MF150001
FROM oa1p.TMF150H1
WHERE MF150023 = '065911392784'
AND MF150055 LIKE '%'
AND MF150085 between 10 and 89
AND MF150013 BETWEEN '01.01.2008' and '10.11.2010'
AND ((MF150019 BETWEEN 100 AND 999999999999999)
OR (MF150019 BETWEEN -999999999999999 and -100))
) AS X
WITH UR
;
select * from plan_view2
order by applname, progname, queryNo, qblockno, planno
;
rollback
;x;
SELECT INT_OE_BEZ,Int_Hist_OE_Bez,MF150066,
OE_VON_DATE,OE_Bis_Date,MF150019A,
SUM(CASE WHEN MF150019 BETWEEN 0 AND 999999999999999
THEN MF150019
ELSE 0 END) AS SUMME_Z,
SUM(CASE WHEN MF150019 BETWEEN -999999999999999 and 0
THEN MF150019
ELSE 0 END) AS SUMME_A,
0,
0
FROM oa1p.TMF150A1,oa1p.TMFOE1T1
Where MF150067 = INT_HIST_OE_BEZ
AND MF150013 BETWEEN OE_VON_DATE AND OE_Bis_Date
AND MF150013 BETWEEN '01.11.2010' AND '11.11.2010'
GROUP BY INT_OE_BEZ,Int_Hist_OE_Bez,MF150066,
OE_VON_DATE,OE_Bis_Date,MF150019A
ORdER BY INT_OE_BEZ,Int_Hist_OE_Bez,MF150066,
OE_VON_DATE,OE_Bis_Date,MF150019A
WITH UR
;
select current timestamp from sysibm.sysdummy1;
SELECT COUNT(*)
FROM TABLE (
SELECT MF150001
FROM oa1p.TMF150A1
WHERE MF150023 = '065911392784'
AND MF150055 LIKE '%'
AND MF150085 between 10 and 89
AND MF150013 BETWEEN '01.01.2008' and '10.11.2010'
AND ((MF150019 BETWEEN 100 AND 999999999999999)
OR (MF150019 BETWEEN -999999999999999 and -100))
UNION
SELECT MF150001
FROM oa1p.TMF150H1
WHERE MF150023 = '065911392784'
AND MF150055 LIKE '%'
AND MF150085 between 10 and 89
AND MF150013 BETWEEN '01.01.2008' and '10.11.2010'
AND ((MF150019 BETWEEN 100 AND 999999999999999)
OR (MF150019 BETWEEN -999999999999999 and -100))
) AS X
WITH UR
;
select current timestamp from sysibm.sysdummy1;
SELECT COUNT(*)
FROM TABLE (
SELECT MF150001
FROM oa1p.TMF150A1
WHERE MF150023 = '065911392784'
AND MF150055 LIKE '%'
AND MF150085 between 10 and 89
AND MF150013 BETWEEN '01.01.2008' and '10.11.2010'
AND ((MF150019 BETWEEN 100 AND 999999999999999)
OR (MF150019 BETWEEN -999999999999999 and -100))
UNION all
SELECT MF150001
FROM oa1p.TMF150H1
WHERE MF150023 = '065911392784'
AND MF150055 LIKE '%'
AND MF150085 between 10 and 89
AND MF150013 BETWEEN '01.01.2008' and '10.11.2010'
AND ((MF150019 BETWEEN 100 AND 999999999999999)
OR (MF150019 BETWEEN -999999999999999 and -100))
) AS X
WITH UR
;
select current timestamp from sysibm.sysdummy1;
rollback
}¢--- A540769.WK.SQL(EXPLAIMI) cre=2010-11-23 mod=2010-11-23-12.12.23 A540769 ---
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 1 for
select count(*) from OA1T.VPC060A1A
where SUBSTR(SECURITY#,1,10) = ?
and SEC_IDENT_SYS = 1 with ur;
explain plan set queryno = 2 for
select count(*) from OA1T.VPC060A1A
where SECURITY# like ?
and SEC_IDENT_SYS = 1 with ur;
explain plan set queryno = 3 for
select count(*) from OA1T.VPC060A1A
where SECURITY# like ? || '%'
and SEC_IDENT_SYS = 1 with ur;
select * from plan_view2
order by applname, progname, queryNo, qblockno, planno
;
rollback;
}¢--- A540769.WK.SQL(EXPLAIN) cre=2006-10-30 mod=2010-11-18-12.46.16 A540769 ---
select bind_time, substr(version, 1, 20), count(*)
from cmnBatch.plan_table
where progname = 'SN261@I'
group by bind_time, version
order by 2 desc, 1 desc
;
}¢--- A540769.WK.SQL(EXPLAING) cre=2014-02-13 mod=2014-03-10-10.26.38 A540769 ---
--- versionen, compiles und explains eines packages -------------------
select *
from cmnbatch.plan_view0
where collid = 'NG'
and prog = 'YNGPRKT'
order by pcBi desc, bind_Time desc
with ur
;
--- ausgewählte Explains analysieren
select *
-- from cmnbatch.plan_view1
from cmnbatch.plan_view2
-- from cmnbatch.plan_view2Det
where collid = 'NG'
and progName = 'YNGPRKT'
and bind_time = '2012-05-19-23.59.50.200285'
order by collid, progName, version, bind_time,
queryno, qBlockNo, planno, mixopSeq
with ur
;
select *
from cmnbatch.plan_viewPred
where collid = 'NG'
and progName = 'YNGPRKT'
and bind_time = '2012-05-19-23.59.50.200285'
order by collid, progName, applName, bind_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;x;
select count(*), NG005021, NG005022
from oa1p.tng005a1
group by NG005021, NG005022
order by 1 desc
fetch first 100 rows only
with ur
;x;
select count(*), NG005020, NG005021, NG005022, NG005025, NG005001
, NG005010
from oa1p.tng005a1
group by NG005020, NG005021, NG005022, NG005025, NG005001, NG005010
order by 1 desc
fetch first 100 rows only
;x;
}¢--- A540769.WK.SQL(EXPLAINQ) cre=2010-06-22 mod=2010-06-22-10.45.59 A540769 ---
set current sqlId = 'A540769';
-- select * from tstRts.TrtsReoTSException;
delete from plan_table ;
explain plan set queryno = 3 for
SELECT EMPNO, FIRSTNME, LASTNAME, JOB, SALARY, BONUS,
COMM, LOCATION, PROJNAME
FROM DSN8910.EMP A, DSN8910.DEPT B, DSN8910.EPROJ C
WHERE A.WORKDEPT = B.DEPTNO
AND B.DEPTNO = C.DEPTNO
AND A.EMPNO IN (SELECT MGRNO FROM DSN8910.DEPT WHERE MGRNO IS NOT NULL )
ORDER BY 1,2,3
;
select * from plan_view5 p
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
s;
?????????????????????????????????????????????
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for
select * from tstRts.VrtsReoTSException;
explain plan set queryno = 4 for
select s.*
from tstRts.VRtsReoTs s
where class > 0
-- where db = 'MF01A1T' and ts like 'A1%5%' and part in (0,1,5,7,9)
order by class desc, db, ts
;
explain plan set queryno = 7 for
select s.*
from tstRts.VRtsReoTS S
where db like 'DA%' and ts like 'A1%5%' and part in (0,1,5,7,9)
order by db, ts, part
;
explain plan set queryno = 13 for
select s.*
from tstRts.VRtsReoTS S
where db = 'MF01A1T' and ts like 'A1%1%' and part in (0,1,5,7,9)
order by db , ts -- , part
;
select parent_qblockno pa,cteref,
t.* from plan_table t
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
select * from plan_view2
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
xxx
select * from cmnbatch.plan_view5
where progName = 'YDG130' and queryno in ( 2453, 2454)
order by applname, progname, queryNo, qblockno, planno
;
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for
SELECT SYMBOLCH,SYMBOLCSFI,SYMBOLISIN,IDSYMBOL_RATING,SCHEME_RATING,
raTINGDATE,RATINGSTATUSTYPE,WATCHLISTSTATTYPE
FROM oa1t.VVV_XTREQSCANKEY INNER
JOIN oa1t.VVV_IDS_STD814
ON oa1t.VVV_IDS_STD814.INSTRUMENTID
= oa1t.VVV_XTREQSCANKEY.TEMP_DBKEY
-- WHERE oa1t.VVV_XTREQSCANKEY.PARTITION_NUMBER = 8
WITH UR
fOR FETCH ONLY
;
select * from plan_view5a
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for
select *
from a540769.vrtsReoTs
where dbName like 'MF%'
;
select * from plan_view5a
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for
-- find the startpoint for a recovery or logDiscontinuity
with recSta as
( select c.*
from sysibm.syscopy c
where c.timestamp =
( select max(a.timestamp)
from sysibm.syscopy a
where c.dbName = a.dbName and c.tsName = a.tsName
and c.dsNum = a.dsNum
and icType in ('F', 'R', 'S', 'W', 'Y')
)
)
select * from recSta
where dbName like 'D%' and icType <> 'F'
order by dbName, tsName, dsNum
;
-- find the startpoint for a recovery or logDiscontinuity
explain plan set queryno = 9 for
with recSta as
( select p.dbName db, p.tsName ts, p.partition pa, q.*
from sysibm.systablepart p
left join
( select c.*
from sysibm.syscopy c
where c.timestamp =
( select max(a.timestamp)
from sysibm.syscopy a
where c.dbName = a.dbName and c.tsName = a.tsName
and c.dsNum = a.dsNum
and icType in ('F', 'R', 'S', 'W', 'Y')
)
) q
on q.dbName = p.dbName and q.tsName = p.tsName
and p.partition = q.dsNum
)
select * from recSta
where dbName like 'D%' and icType <> 'F'
order by dbName, tsName, dsNum
;
select * from plan_view5a
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
----- query 1532 YXEBV2E, 30.6.09
----- Kumar Sandeep will sequenz TKS835, TKS833, TKS843, TKS843
----- seit einem Jahr bind TKS843, TKS835, TKS833, TKS843
-----
----- 3: partner_*=? in 833 und join : original
explain plan set queryno = 3 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3 AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
;
----- 5: partner_*=? in 835 und join
explain plan set queryno = 5 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
oA1P.VKS843A1V V843O
WHERE V835.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V835.PARTNER_TYPE = 3 AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
;
----- 35: partner_*=? in 833 und 835 und join: fake filtering
explain plan set queryno = 35 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3
and V835.PARTNER_KEY = ? AND V835.PARTNER_TYPE = 3
AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
;
----- 359: partner_*=? in 833 und 835 NO join
explain plan set queryno = 359 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3
and V835.PARTNER_KEY = ? AND V835.PARTNER_TYPE = 3
and V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
;
select * from plan_view5a
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
select * from CMNbatch.plan_view5
where queryno between 142 and 147
and progname = 'YCI017C'
order by applname, progname, timestamp, queryNo, qblockno, planno
;
x
explain plan set queryno = 111 for
select * from cmnbatch.plan_view5
-- where progname in ('XBIM33')
where progname in ('XBIM31', 'XBIM32', 'XBIM33', 'XBIM34' ,
'XBIM35', 'XBIM42')
order by applname, progname, queryNo, qblockno, planno
;
explain plan set queryno = 222 for
select * from cmnbatch.plan_view5ss
-- where progname in ('XBIM33')
where progname in ('XBIM31', 'XBIM32', 'XBIM33', 'XBIM34' ,
'XBIM35', 'XBIM42')
order by applname, progname, queryNo, qblockno, planno
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
explain plan set queryno = 111 for
UPDATE bua.TXBH111
SET ESSTATE = 3 WHERE EAUUIDMQ IN (SELECT
EAUUIDMQ FROM bua.TXBH111 WHERE EAUUIDHT = '?' )
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
set current sqlId = 'A540769';
delete from A540769.plan_table
;
explain plan set queryno = 111 for
select count(*), jobname, max(partition), min(partition)
from sysibm.syscopy c, sysibm.systablepart p
where c.dbName = p.dbName and c.tsName = p.tsname
and c.dsNum in (0, p.partition)
group by jobName
order by 1 desc
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
xelect *
from CMNBATCH.plan_view5
where progName = 'DBWK3'
order by applname, progname, queryNo, qblockno, planno
;
xelect count(*), auftrags_nummer, pm_id
from oa1t.vpw210a1V
group by auftrags_nummer, pm_id
order by 1 desc
;
--select count(*) from oa1t.TSN100A1
-- with ur
-- ;
select *
from CMNBATCH.plan_view5
where progName = 'YPW2KPI' and queryNo = 4235
order by applname, progname, queryNo, qblockno, planno
;
x
set current sqlid = 'A540769'
;
delete from plan_table where queryno in (111, 222)
;
select current timestamp from sysibm.sysdummy1
;
explain plan set queryno = 111 for
SELECT T.* FROM oa1t.VNI600A101A C
, oa1t.VNI203A101A T
WHERE T.PERENDDT >= DATE(C.CTRLTIMESTMPFROM)
AND C.CTRLID = 'NI6220R'
;
select current timestamp from sysibm.sysdummy1
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
explain plan set queryno = 222 for
WITH NI600 (PERENDDT) AS
(SELECT DATE(C.CTRLTIMESTMPFROM) AS ENDDT
FROM oa1t.VNI600A101A C
WHERE C.CTRLID = 'NI6220R'
)
SELECT T.* FROM NI600
,oa1t.VNI203A101A T
WHERE T.PERENDDT >= NI600.PERENDDT
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
select * from plan_view5
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
x
select *
from cmnbatch.plan_view5
where progName = 'YRPNIMP' and queryNo = 866
order by applname, progname, queryNo, qblockno, planno
;
x
d.bType, p.collid, p.Name, p.version,
p.conToken, p.timeStamp, p.type,
p.validate, p.isolation, p.valid, p.operative,
p.owner, p.qualifier
m sysibm.syspackdep d join sysibm.syspackage p
on p.location = d.dLocation and p.collid = d.dCollid
and p.name = d.dName and p.conToken = d.dConToken 2.22.129867'
re
(bQualifier, bName, bType) in
( select dbName, name, 'R'
from sysIbm.sysTablespace
where dbName in ('NF01A1A', 'NF02A1A', 'NF03A1A')
)
from gdb0283.vnz240a1v
where SearchValue01 = ?
-- dec(SearchValue01,15,3) = ?
and CreateDateTime < ?
and dec(SearchValue02,15,3) >= ?
and dec(SearchValue02,15,3) <= ?
and Objtype ^= 'PORDSPLT'
order by CreateDateTime
fetch first 101 rows only
optimize for 101 rows
with ur
;
select * from plan_view5A
where queryno = 999
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
select * from plan_table
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
}¢--- A540769.WK.SQL(EXPLAINS) cre=2015-04-08 mod=2015-04-08-15.56.34 A540769 ---
with s as
(
select substr(program_name, 1, 8) prg, lines
, cast(substr(stmt_text, 1, 2000) as varchar(2000)) stmt
, cached_ts, stat_execB, literal_repl
from dsn_statement_cache_table
where program_name = 'YVV3240'
)
, t as
(
select s.*
, case when posStr(stmt, '''') > 0 then posStr(stmt, '''')
when posStr(stmt, '= 1') > 0 then posStr(stmt, '= 1')
when posStr(stmt, '= 2') > 0 then posStr(stmt, '= 2')
when posStr(stmt, '= 3') > 0 then posStr(stmt, '= 3')
when posStr(stmt, '= 4') > 0 then posStr(stmt, '= 4')
when posStr(stmt, '= 5') > 0 then posStr(stmt, '= 5')
when posStr(stmt, '= 6') > 0 then posStr(stmt, '= 6')
when posStr(stmt, '= 7') > 0 then posStr(stmt, '= 7')
when posStr(stmt, '= 8') > 0 then posStr(stmt, '= 8')
when posStr(stmt, '= 9') > 0 then posStr(stmt, '= 9')
else 200 end firstA
from s
)
select prg, lines, count(*)
, avg((days(current date) - days(cached_ts)) * 86400
+ midnight_seconds(current timestamp)
-midnight_seconds(cached_ts)) cacheAgeSes
, avg(real(stat_execB)) execB
, min(literal_repl), max(literal_repl)
, firstA, min(stmt) stmtMin
from t
group by prg, lines, firstA, substr(stmt,1 , firstA)
order by prg, lines, min(stmt)
;x;
--- explain dyn statement cache ----------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
delete from A540769.dsn_statement_cache_table;
explain stmtCache all;
commit;
select count(*) from dsn_statement_cache_table;
select count(*), collid
from dsn_statement_cache_table
group by collid
;
select count(*), program_name, lines
from dsn_statement_cache_table
group by program_name, lines
;
select substr(program_name, 1, 8) prg, lines, count(*)
, avg((days(current date) - days(cached_ts)) * 86400
+ midnight_seconds(current timestamp)
-midnight_seconds(cached_ts)) cacheAgeSes
, avg(real(stat_execB)) execB
, min(literal_repl), max(literal_repl)
from dsn_statement_cache_table
where program_name = 'YVV3240'
group by collid, program_name, lines
;x;
;x;
select count(*), collid
from dsn_statement_cache_table
group by collid
;x;
select count(*), group_member
from dsn_statement_cache_table
group by group_member;
;x;
select *
from cmnbatch.plan_view2Det
where collid = 'MF'
and progName = 'MF7010'
and explain_time = '2011-08-30-14.14.59.234601'
order by collid, progName, version, explain_time,
queryno, qBlockNo, planno, mixopSeq
with ur
;
select * from plan_view1
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAINZ) cre=2011-01-17 mod=2011-07-14-10.25.23 A540769 ---
select * from cmnbatch.plan_view1
where progName = 'NZ5820'
and version = 'ZVHI000058'
order by applname, progname, queryNo, qblockno, planno
;
select * from cmnbatch.plan_table
where progName = 'NZ5820'
and version = 'ZVHI000058'
order by applname, progname, queryNo, qblockno, planno
;
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 1 for
select *
from oa1p.TNZ240A1
where
NZ240003 > ? || '' and NZ240003 < ? || ''
and NZ240036 <= ?
;
explain plan set queryno = 2 for
select *
from oa1p.TNZ240A1
where
NZ240003 > ? and NZ240003 < ?
and NZ240036 <= ?
;
explain plan set queryno = 4 for
select *
from oa1p.TNZ240A1
where
NZ240003 between ? and ?
and NZ240036 <= ?
optimize for 1 rows
;
explain plan set queryno = 5 for
select *
from oa1p.TNZ240A1
where
NZ240003 between x'003544' and x'003545'
and NZ240036 <= ?
;
explain plan set queryno = 6 for
select *
from oa1p.TNZ240A1
where
NZ240003 between x'0036' and x'0055FFFF'
and NZ240036 <= ?
;
explain plan set queryno = 7 for
select *
from oa1p.TNZ240A1
where
NZ240003 > x'0036' and NZ240003 <x'0055FFFF'
and NZ240036 <= ?
;
select * from plan_view1
order by applname, progname, queryNo, qblockno, planno
;
select * from plan_table
order by applname, progname, queryNo, qblockno, planno
;
rollback
X'0035
X'0039
X'003D
X'0041
X'0045
X'0049
X'004D
X'0051
X'0055
;x;
select count(*), accesstype, page_range
from cmnbatch.plan_table
group by accesstype, page_range
order by accesstype, page_range
with ur
;;;
select * from s100447.plan_view1
where progName in ('YWPLXL3') and collid = 'A540769'
-- and bind_time = '2010-07-18-22.01.54.199935'
order by applname, progname, queryNo, qblockno, planno,
bind_time, tname
;x;
select * from cmnbatch.dsn_statemnt_table
where progName in ('YWPLXL3')
and explain_time = '2010-07-18-22.01.54.199935'
-- order by applname, progname, queryNo, qblockno, planno
;x;
select '4', count(*), sum(case when substr(wp70302e,1,5)
in ('BFTBB','WPSPM') then 1 else 0 end)
from oa1p.TWP703A104
union all select '5', count(*), sum(case when substr(wp70302e,1,5)
in ('BFTBB','WPSPM') then 1 else 0 end)
from oa1p.TWP703A105
with ur
;;
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 1 for
SELECT * FROM A540769.VMFNVEXT
WHERE MF150023 > '038 ' AND MF150023 <= '052 '
WITH UR
;
explain plan set queryno = 2 for
SELECT * FROM A540769.VMFNVPART
WHERE MF150023 > '052 ' AND MF150023 <= '057 '
;
explain plan set queryno = 3 for
select t.*, i.mf150Hash
from oa1p.tmf150a1 t, A540769.tmfnvPart i
where t.mf150013 = i.mf150013
and t.mf150023 = i.mf150023
and i.part = 1
order by i.MF150023 ASC,
i.MF150013 DESC
;
explain plan set queryno = 4 for
select t.*, i.mf150Hash
from oa1p.tmf150a1 t, A540769.tmfnvPart i
where t.mf150013 = i.mf150013
and t.mf150023 = i.mf150023
and t.MF150082 = ' '
and i.part = 1
order by i.MF150023 ASC,
i.MF150013 DESC
;
--explain plan set queryno = 7 for
--ect s.*
-- from tstRts.tsIxStats S
-- where db like 'MF%' and ts like 'A1%1%' and part in (0,1,5,7,9)
-- order by db, ts, part
--
--ect current timestamp from sysibm.sysdummy1;
--lect s.*
-- from tstRts.tsIxStats S
-- where db = 'MF01A1P' and ts like 'A1%1%' and part in (0,1,5,7,9)
-- order by db , ts -- , part
--
--lect current timestamp from sysibm.sysdummy1;
--lect s.*
-- from tstRts.tsIxStats S
-- where db like 'MF0%' and ts like 'A1%1%' and part in (0,1,5,7,9)
-- order by db , ts -- , part
--
select current timestamp from sysibm.sysdummy1;
select * from plan_view2
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
select * from A540769.plan_view5
where progName in ('SV5003', 'SV5390', 'SV8240')
order by applname, progname, queryNo, qblockno, planno
;x;
select * from cmnbatch.plan_view2
where progName in ('FI5700') and version = 'BKUR000319'
order by applname, progname, queryNo, qblockno, planno
;x;
-- select * from tstRts.TrtsReoTSException;
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for
select s.*
from tstRts.VRtsReoTSSchwelle s
where db = 'MF01A1T' and ts like 'A1%1%' and part in (0,1,5,7,9)
order by db , ts -- , part
;
explain plan set queryno = 7 for
select s.*
from tstRts.tsIxStats S
where db like 'MF%' and ts like 'A1%1%' and part in (0,1,5,7,9)
order by db, ts, part
;
select current timestamp from sysibm.sysdummy1;
select s.*
from tstRts.tsIxStats S
where db = 'MF01A1P' and ts like 'A1%1%' and part in (0,1,5,7,9)
order by db , ts -- , part
;
select current timestamp from sysibm.sysdummy1;
select s.*
from tstRts.tsIxStats S
where db like 'MF0%' and ts like 'A1%1%' and part in (0,1,5,7,9)
order by db , ts -- , part
;
select current timestamp from sysibm.sysdummy1;
select * from plan_view2
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
xxx
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 1 for -- mit concat
with c as
( select mf150023 cif, mf150013 dat, count(*) cnt
from oa1p.tmf150A1
where mf150023 like '000%'
group by mf150023 , mf150013
) , h as
( select
smallint(mod(
int(
translate(
translate('08642' , hex(substr(cif , 8, 5)), '1234567890'),
'024579', 'ABCDEF'))
+ month(dat) ,11113)) h
, cnt
from c
)
, g as
( select sum(cnt) c
from h
group by h
)
, p as
( select sum(cnt) c
from h
group by floor(h/111.14)
)
select 'h', min(c) "min", max(c) "max", count(*) "count", sum(c) "sum"
from g
group by floor(log10(c) * 6)
union all
select 'p', min(c) "min", max(c) "max", count(*) "count", sum(c) "sum"
from p
group by floor(log10(c) * 6)
order by 1, 2
with ur
;
explain plan set queryno = 5 for -- mit concat
with h as
( select mf150023 cif,
smallint(mod(
int(
translate(
translate('08642' , hex(substr(mf150023 , 8, 5)), '1234567890'),
'024579', 'ABCDEF')), 9973)) t
from oa1p.tmf150A1
-- where cif like '000%'
)
, g as
( select t, count(*) c
from h
group by t
)
select sum(c), min(c), max(c), count(*) "dist c"
from g
group by floor(log10(c) * 6)
with ur
;
select * from plan_view2
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
select * from cmnBatch.plan_view5
where progName = 'YDG129'
order by applname, progname, queryNo, qblockno, planno
;
x
select * from cmnBatch.plan_view5
where progName = 'MF8500' -- and version = 'MFR0000203'
order by applname, progname, queryNo, qblockno, planno
;
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 1 for -- mit concat
SELECT RM01001,RM01002,RM01003,RM01004,RM01005,RM01006,
RM01007,RM01008,RM01009,RM01010,RM01011,RM01012,
RM01013,RM01014,RM01015,RM01016,RM01017,RM01018
FROM oa1p.TRM010A1
WHERE ? BETWEEN RM01002 AND RM01006
AND RM01015 || '' IN ('RT001','RT002','RT004',
'RT010','RT015','RT018','RT201')
ORDER BY RM01015, RM01011, RM01014, RM01002
FOR FETCH ONLY;
explain plan set queryno = 3 for -- mit or
SELECT RM01001,RM01002,RM01003,RM01004,RM01005,RM01006,
RM01007,RM01008,RM01009,RM01010,RM01011,RM01012,
RM01013,RM01014,RM01015,RM01016,RM01017,RM01018
FROM oa1p.TRM010A1
WHERE ? BETWEEN RM01002 AND RM01006
AND (RM01015 IN('RT001','RT002','RT004',
'RT010','RT015','RT018','RT201')
or 1 = 0
)
ORDER BY RM01015, RM01011, RM01014, RM01002
FOR FETCH ONLY;
explain plan set queryno = 9 for -- neu ohne or
SELECT *
FROM oa1p.TRM010A1
WHERE ? BETWEEN RM01002 AND RM01006
AND RM01015 IN('RT001','RT002','RT004',
'RT010','RT015','RT018','RT201')
ORDER BY RM01015, RM01011, RM01014, RM01002
FOR FETCH ONLY;
select * from plan_view2
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for -- alt schnell
Select MF150023,MF150067,
sum(Case when MF150055 = 'Z' then DEC(MF150019,18,3) else 0 end),
sum(Case when MF150055 = 'A' then DEC(MF150019,18,3) else 0 end)
FROM oa1p.TMF150A1
WHERE MF150066 = ' A965367'
AND MF150013 BETWEEN '01.01.2009' and '30.11.2009'
AND MF150085 BETWEEN 10 AND 89
AND MF150084 BETWEEN 10 AND 89
GROUP BY MF150023,MF150067
with ur
;
explain plan set queryno = 9 for -- neu langsam
Select MF150023,MF150067,MF150019A,
sum(Case when MF150055 = 'Z' then DEC(MF150019,18,3) else 0 end),
sum(Case when MF150055 = 'A' then DEC(MF150019,18,3) else 0 end)
FROM oa1p.TMF150A1
WHERE MF150066 = ' A965367'
AND MF150013 BETWEEN '01.01.2009' and '30.11.2009'
AND MF150085 BETWEEN 10 AND 89
AND MF150084 BETWEEN 10 AND 89
GROUP BY MF150023,MF150067,MF150019A
with ur;
select * from plan_view2
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
x
delete from plan_table;
explain plan set queryno = 3 for
SELECT SV363012
FROM OA1P.TSV361A1 JOIN oa1p.TSV363A1
ON SV361003=SV363001
WHERE SV361002=1
AND SV361008=2
AND SV361009= ?
AND(SV363007='1' OR SV363007='2')
AND(ABS(SV363010 - '01.01.2009')<30 OR ABS(SV363011
- date('01.01.2009'))<30)
ORDER BY SV363010 DESC,SV363011 DESC
;
select * from plan_view2
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
select count(*), SV363001
FROM OA1P.TSV363A1
group by SV363001
ORDER BY 1 DESC
WITH UR
;
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for
select *
from a540769.vrtsReoTs
where dbName like 'MF%'
;
select * from plan_view5a
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
----- query 1532 YXEBV2E, 30.6.09
----- Kumar Sandeep will sequenz TKS835, TKS833, TKS843, TKS843
----- seit einem Jahr bind TKS843, TKS835, TKS833, TKS843
-----
----- 3: partner_*=? in 833 und join : original
explain plan set queryno = 3 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3 AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
;
----- 5: partner_*=? in 835 und join
explain plan set queryno = 5 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
oA1P.VKS843A1V V843O
WHERE V835.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V835.PARTNER_TYPE = 3 AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
;
----- 35: partner_*=? in 833 und 835 und join: fake filtering
explain plan set queryno = 35 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3
and V835.PARTNER_KEY = ? AND V835.PARTNER_TYPE = 3
AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
;
----- 359: partner_*=? in 833 und 835 NO join
explain plan set queryno = 359 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3
and V835.PARTNER_KEY = ? AND V835.PARTNER_TYPE = 3
and V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
;
select * from plan_view5a
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
select * from cmnbatch.plan_view5a
where progname = 'WI8710'
and version in ('WS8B000786', 'WS8B000325')
and queryno in ( 241)
order by applname, progname, queryNo, timestamp, qblockno, planno
;
x
x
select * from CMNbatch.plan_view5
where queryno between 142 and 147
and progname = 'YCI017C'
order by applname, progname, timestamp, queryNo, qblockno, planno
;
x
explain plan set queryno = 111 for
select * from cmnbatch.plan_view5
-- where progname in ('XBIM33')
where progname in ('XBIM31', 'XBIM32', 'XBIM33', 'XBIM34' ,
'XBIM35', 'XBIM42')
order by applname, progname, queryNo, qblockno, planno
;
explain plan set queryno = 222 for
select * from cmnbatch.plan_view5ss
-- where progname in ('XBIM33')
where progname in ('XBIM31', 'XBIM32', 'XBIM33', 'XBIM34' ,
'XBIM35', 'XBIM42')
order by applname, progname, queryNo, qblockno, planno
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
explain plan set queryno = 111 for
UPDATE bua.TXBH111
SET ESSTATE = 3 WHERE EAUUIDMQ IN (SELECT
EAUUIDMQ FROM bua.TXBH111 WHERE EAUUIDHT = '?' )
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
set current sqlId = 'A540769';
delete from A540769.plan_table
;
explain plan set queryno = 111 for
select count(*), jobname, max(partition), min(partition)
from sysibm.syscopy c, sysibm.systablepart p
where c.dbName = p.dbName and c.tsName = p.tsname
and c.dsNum in (0, p.partition)
group by jobName
order by 1 desc
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
xelect *
from CMNBATCH.plan_view5
where progName = 'DBWK3'
order by applname, progname, queryNo, qblockno, planno
;
xelect count(*), auftrags_nummer, pm_id
from oa1t.vpw210a1V
group by auftrags_nummer, pm_id
order by 1 desc
;
--select count(*) from oa1t.TSN100A1
-- with ur
-- ;
select *
from CMNBATCH.plan_view5
where progName = 'YPW2KPI' and queryNo = 4235
order by applname, progname, queryNo, qblockno, planno
;
x
set current sqlid = 'A540769'
;
delete from plan_table where queryno in (111, 222)
;
select current timestamp from sysibm.sysdummy1
;
explain plan set queryno = 111 for
SELECT T.* FROM oa1t.VNI600A101A C
, oa1t.VNI203A101A T
WHERE T.PERENDDT >= DATE(C.CTRLTIMESTMPFROM)
AND C.CTRLID = 'NI6220R'
;
select current timestamp from sysibm.sysdummy1
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
explain plan set queryno = 222 for
WITH NI600 (PERENDDT) AS
(SELECT DATE(C.CTRLTIMESTMPFROM) AS ENDDT
FROM oa1t.VNI600A101A C
WHERE C.CTRLID = 'NI6220R'
)
SELECT T.* FROM NI600
,oa1t.VNI203A101A T
WHERE T.PERENDDT >= NI600.PERENDDT
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
select * from plan_view5
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
x
select *
from cmnbatch.plan_view5
where progName = 'YRPNIMP' and queryNo = 866
order by applname, progname, queryNo, qblockno, planno
;
x
d.bType, p.collid, p.Name, p.version,
p.conToken, p.timeStamp, p.type,
p.validate, p.isolation, p.valid, p.operative,
p.owner, p.qualifier
m sysibm.syspackdep d join sysibm.syspackage p
on p.location = d.dLocation and p.collid = d.dCollid
and p.name = d.dName and p.conToken = d.dConToken 2.22.129867'
re
(bQualifier, bName, bType) in
( select dbName, name, 'R'
from sysIbm.sysTablespace
where dbName in ('NF01A1A', 'NF02A1A', 'NF03A1A')
)
from gdb0283.vnz240a1v
where SearchValue01 = ?
-- dec(SearchValue01,15,3) = ?
and CreateDateTime < ?
and dec(SearchValue02,15,3) >= ?
and dec(SearchValue02,15,3) <= ?
and Objtype ^= 'PORDSPLT'
order by CreateDateTime
fetch first 101 rows only
optimize for 101 rows
with ur
;
select * from plan_view5A
where queryno = 999
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
select * from plan_table
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
}¢--- A540769.WK.SQL(EXPLAIN0) cre=2011-10-14 mod=2014-06-27-10.19.20 A540769 ---
--- versionen, compiles und explains eines packages -------------------
select *
from cmnbatch.plan_view0
where collid = 'MF'
and prog = 'MF7010'
order by pcEx desc, explain_time desc
with ur
;x;
--- ausgewählte Explains analysieren
select *
from cmnbatch.plan_view1
-- from cmnbatch.plan_view2Det
where collid = 'MF'
and progName = 'MF7010'
and explain_time = '2011-08-30-14.14.59.234601'
order by collid, progName, version, explain_time,
queryno, qBlockNo, planno, mixopSeq
with ur
;
select *
from cmnbatch.plan_viewPred
where collid = 'MF'
and progName = 'MF7010'
and explain_time = '2011-08-30-14.14.59.234601'
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
with ur
;
}¢--- A540769.WK.SQL(EXPLAIN1) cre=2011-10-14 mod=2014-06-12-10.03.54 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
select *
from cmnbatch.plan_view2Det
where collid = 'MF'
and progName = 'MF7010'
and explain_time = '2011-08-30-14.14.59.234601'
order by collid, progName, version, explain_time,
queryno, qBlockNo, planno, mixopSeq
with ur
;
select * from plan_view1
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAIN5) cre=2014-06-12 mod=2014-06-12-10.05.40 A540769 ---
--- neuester Explains eines Programmes --------------------------------
select *
from cmnbatch.plan_view5
where collid = 'MF'
and progName = 'MF7010'
order by collid, progName, version, explain_time,
queryno, qBlockNo, planno, mixopSeq
with ur
;
}¢--- A540769.WK.SQL(EXPLAIPD) cre=2010-05-10 mod=2010-05-11-13.27.55 A540769 ---
-- select * from tstRts.TrtsReoTSException;
set current path oa1p;
set current schema = RZ2XX;
set current sqlid = 'A540769';
delete from A540769.plan_table;
explain plan set queryno = 15 for
SELECT t.*, p.PLAN_NAME, substr(PCK_ID, 1, 10),
count(*) "count",
avg(class7_elapsed) "avgElapsed" ,
sum(class7_elapsed) "totElapsed" ,
min(class7_elapsed) "minElapsed" ,
max(class7_elapsed) "maxElapsed" ,
min(timestamp -class7_elapsed seconds) "minStart",
max(timestamp) "maxEnd"
from TACCT_Program p, A540769.TPDB t
where -- timestamp > timestamp(date(current_timestamp - 2 days)
-- , '00.00.00') and
( (PCK_COLLECTION_ID = 'NI'
and pck_id in ( 'NI6210',
'NI6260',
'NI6860',
'NI7600',
'NI9700',
'NI9740',
'YNI0131',
'YNI0183',
'YNI0350',
'YNI56SR',
'YNICAMU',
'YNICRSS',
'YNICTEU',
'YNINP03',
'YNIPACG',
'YNIPAMG',
'YNIPAMU',
'YNIPFLG',
'YNIPREG',
'YNIPTEG',
'YNIPTEU',
'YNIREST'))
or (PCK_COLLECTION_ID in ('NI01', 'NI02')
and pck_id in ( 'YNICL03',
'YNINP03',
'YNIPACG'))
or (PCK_COLLECTION_ID = 'OA1P'
and pck_id in ( 'NI660AAI')))
and p.timestamp + 0 seconds >= t.von
and p.timestamp - p.class7_elapsed seconds <= t.bis
group by t.PLAN, t.von, t.bis,
p.plan_name, p.pck_id
order by 1, 2, 3, 5, 6
with ur
;
explain plan set queryno = 5 for
with t as
(
select plan_name,
min(timestamp - class1_elapsed seconds) von,
(max(timestamp)) bis
from TACCT_general
where -- timestamp > timestamp(date(current_timestamp - 2 days)
-- , '00.00.00') and
plan_name in ('NI5340', 'NI5310')
group by date(timestamp), plan_name
order by date(timestamp), plan_name
)
SELECT t.*, p.PLAN_NAME, substr(PCK_ID, 1, 10),
count(*) "count",
avg(class7_elapsed) "avgElapsed" ,
sum(class7_elapsed) "totElapsed" ,
min(class7_elapsed) "minElapsed" ,
max(class7_elapsed) "maxElapsed" ,
min(timestamp -class7_elapsed seconds) "minStart",
max(timestamp) "maxEnd"
from TACCT_Program p, t
where -- timestamp > timestamp(date(current_timestamp - 2 days)
-- , '00.00.00') and
( (PCK_COLLECTION_ID = 'NI'
and pck_id in ( 'NI6210',
'NI6260',
'NI6860',
'NI7600',
'NI9700',
'NI9740',
'YNI0131',
'YNI0183',
'YNI0350',
'YNI56SR',
'YNICAMU',
'YNICRSS',
'YNICTEU',
'YNINP03',
'YNIPACG',
'YNIPAMG',
'YNIPAMU',
'YNIPFLG',
'YNIPREG',
'YNIPTEG',
'YNIPTEU',
'YNIREST'))
or (PCK_COLLECTION_ID in ('NI01', 'NI02')
and pck_id in ( 'YNICL03',
'YNINP03',
'YNIPACG'))
or (PCK_COLLECTION_ID = 'OA1P'
and pck_id in ( 'NI660AAI')))
and p.timestamp + 0 seconds >= t.von
and p.timestamp - p.class7_elapsed seconds <= t.bis
group by t.PLAN_NAME, t.von, t.bis,
p.plan_name, p.pck_id
order by 1, 2, 3, 5, 6
with ur
;
-- select * from tstRts.TrtsReoTSException;
explain plan set queryno = 3 for
with t as
(
select plan_name,
min(timestamp - class1_elapsed seconds) von,
(max(timestamp)) bis
from TACCT_general
where -- timestamp > timestamp(date(current_timestamp - 2 days)
-- , '00.00.00') and
plan_name in ('NI5340', 'NI5310')
group by date(timestamp), plan_name
order by date(timestamp), plan_name
)
SELECT t.*, p.PLAN_NAME, substr(PCK_ID, 1, 10),
count(*) "count",
avg(class7_elapsed) "avgElapsed" ,
sum(class7_elapsed) "totElapsed" ,
min(class7_elapsed) "minElapsed" ,
max(class7_elapsed) "maxElapsed" ,
min(timestamp -class7_elapsed seconds) "minStart",
max(timestamp) "maxEnd"
from TACCT_Program p, t
where -- timestamp > timestamp(date(current_timestamp - 2 days)
-- , '00.00.00') and
( (PCK_COLLECTION_ID = 'NI'
and pck_id in ( 'NI6210',
'NI6260',
'NI6860',
'NI7600',
'NI9700',
'NI9740',
'YNI0131',
'YNI0183',
'YNI0350',
'YNI56SR',
'YNICAMU',
'YNICRSS',
'YNICTEU',
'YNINP03',
'YNIPACG',
'YNIPAMG',
'YNIPAMU',
'YNIPFLG',
'YNIPREG',
'YNIPTEG',
'YNIPTEU',
'YNIREST'))
or (PCK_COLLECTION_ID in ('NI01', 'NI02')
and pck_id in ( 'YNICL03',
'YNINP03',
'YNIPACG'))
or (PCK_COLLECTION_ID = 'OA1P'
and pck_id in ( 'NI660AAI')))
and p.timestamp >= t.von
and p.timestamp -class7_elapsed seconds <= t.bis
group by t.PLAN_NAME, t.von, t.bis,
p.plan_name, p.pck_id
order by 1, 2, 3, 5, 6
with ur
;
select * from A540769.plan_view2
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
xxx
select * from cmnbatch.plan_view5
where progName = 'YDG130' and queryno in ( 2453, 2454)
order by applname, progname, queryNo, qblockno, planno
;
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for
SELECT SYMBOLCH,SYMBOLCSFI,SYMBOLISIN,IDSYMBOL_RATING,SCHEME_RATING,
raTINGDATE,RATINGSTATUSTYPE,WATCHLISTSTATTYPE
FROM oa1t.VVV_XTREQSCANKEY INNER
JOIN oa1t.VVV_IDS_STD814
ON oa1t.VVV_IDS_STD814.INSTRUMENTID
= oa1t.VVV_XTREQSCANKEY.TEMP_DBKEY
-- WHERE oa1t.VVV_XTREQSCANKEY.PARTITION_NUMBER = 8
WITH UR
fOR FETCH ONLY
;
select * from plan_view5a
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for
select *
from a540769.vrtsReoTs
where dbName like 'MF%'
;
select * from plan_view5a
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for
-- find the startpoint for a recovery or logDiscontinuity
with recSta as
( select c.*
from sysibm.syscopy c
where c.timestamp =
( select max(a.timestamp)
from sysibm.syscopy a
where c.dbName = a.dbName and c.tsName = a.tsName
and c.dsNum = a.dsNum
and icType in ('F', 'R', 'S', 'W', 'Y')
)
)
select * from recSta
where dbName like 'D%' and icType <> 'F'
order by dbName, tsName, dsNum
;
-- find the startpoint for a recovery or logDiscontinuity
explain plan set queryno = 9 for
with recSta as
( select p.dbName db, p.tsName ts, p.partition pa, q.*
from sysibm.systablepart p
left join
( select c.*
from sysibm.syscopy c
where c.timestamp =
( select max(a.timestamp)
from sysibm.syscopy a
where c.dbName = a.dbName and c.tsName = a.tsName
and c.dsNum = a.dsNum
and icType in ('F', 'R', 'S', 'W', 'Y')
)
) q
on q.dbName = p.dbName and q.tsName = p.tsName
and p.partition = q.dsNum
)
select * from recSta
where dbName like 'D%' and icType <> 'F'
order by dbName, tsName, dsNum
;
select * from plan_view5a
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
----- query 1532 YXEBV2E, 30.6.09
----- Kumar Sandeep will sequenz TKS835, TKS833, TKS843, TKS843
----- seit einem Jahr bind TKS843, TKS835, TKS833, TKS843
-----
----- 3: partner_*=? in 833 und join : original
explain plan set queryno = 3 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3 AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
;
----- 5: partner_*=? in 835 und join
explain plan set queryno = 5 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
oA1P.VKS843A1V V843O
WHERE V835.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V835.PARTNER_TYPE = 3 AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
;
----- 35: partner_*=? in 833 und 835 und join: fake filtering
explain plan set queryno = 35 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3
and V835.PARTNER_KEY = ? AND V835.PARTNER_TYPE = 3
AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
;
----- 359: partner_*=? in 833 und 835 NO join
explain plan set queryno = 359 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3
and V835.PARTNER_KEY = ? AND V835.PARTNER_TYPE = 3
and V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
;
select * from plan_view5a
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
select * from CMNbatch.plan_view5
where queryno between 142 and 147
and progname = 'YCI017C'
order by applname, progname, timestamp, queryNo, qblockno, planno
;
x
explain plan set queryno = 111 for
select * from cmnbatch.plan_view5
-- where progname in ('XBIM33')
where progname in ('XBIM31', 'XBIM32', 'XBIM33', 'XBIM34' ,
'XBIM35', 'XBIM42')
order by applname, progname, queryNo, qblockno, planno
;
explain plan set queryno = 222 for
select * from cmnbatch.plan_view5ss
-- where progname in ('XBIM33')
where progname in ('XBIM31', 'XBIM32', 'XBIM33', 'XBIM34' ,
'XBIM35', 'XBIM42')
order by applname, progname, queryNo, qblockno, planno
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
explain plan set queryno = 111 for
UPDATE bua.TXBH111
SET ESSTATE = 3 WHERE EAUUIDMQ IN (SELECT
EAUUIDMQ FROM bua.TXBH111 WHERE EAUUIDHT = '?' )
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
set current sqlId = 'A540769';
delete from A540769.plan_table
;
explain plan set queryno = 111 for
select count(*), jobname, max(partition), min(partition)
from sysibm.syscopy c, sysibm.systablepart p
where c.dbName = p.dbName and c.tsName = p.tsname
and c.dsNum in (0, p.partition)
group by jobName
order by 1 desc
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
xelect *
from CMNBATCH.plan_view5
where progName = 'DBWK3'
order by applname, progname, queryNo, qblockno, planno
;
xelect count(*), auftrags_nummer, pm_id
from oa1t.vpw210a1V
group by auftrags_nummer, pm_id
order by 1 desc
;
--select count(*) from oa1t.TSN100A1
-- with ur
-- ;
select *
from CMNBATCH.plan_view5
where progName = 'YPW2KPI' and queryNo = 4235
order by applname, progname, queryNo, qblockno, planno
;
x
set current sqlid = 'A540769'
;
delete from plan_table where queryno in (111, 222)
;
select current timestamp from sysibm.sysdummy1
;
explain plan set queryno = 111 for
SELECT T.* FROM oa1t.VNI600A101A C
, oa1t.VNI203A101A T
WHERE T.PERENDDT >= DATE(C.CTRLTIMESTMPFROM)
AND C.CTRLID = 'NI6220R'
;
select current timestamp from sysibm.sysdummy1
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
explain plan set queryno = 222 for
WITH NI600 (PERENDDT) AS
(SELECT DATE(C.CTRLTIMESTMPFROM) AS ENDDT
FROM oa1t.VNI600A101A C
WHERE C.CTRLID = 'NI6220R'
)
SELECT T.* FROM NI600
,oa1t.VNI203A101A T
WHERE T.PERENDDT >= NI600.PERENDDT
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
select * from plan_view5
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
x
select *
from cmnbatch.plan_view5
where progName = 'YRPNIMP' and queryNo = 866
order by applname, progname, queryNo, qblockno, planno
;
x
d.bType, p.collid, p.Name, p.version,
p.conToken, p.timeStamp, p.type,
p.validate, p.isolation, p.valid, p.operative,
p.owner, p.qualifier
m sysibm.syspackdep d join sysibm.syspackage p
on p.location = d.dLocation and p.collid = d.dCollid
and p.name = d.dName and p.conToken = d.dConToken 2.22.129867'
re
(bQualifier, bName, bType) in
( select dbName, name, 'R'
from sysIbm.sysTablespace
where dbName in ('NF01A1A', 'NF02A1A', 'NF03A1A')
)
from gdb0283.vnz240a1v
where SearchValue01 = ?
-- dec(SearchValue01,15,3) = ?
and CreateDateTime < ?
and dec(SearchValue02,15,3) >= ?
and dec(SearchValue02,15,3) <= ?
and Objtype ^= 'PORDSPLT'
order by CreateDateTime
fetch first 101 rows only
optimize for 101 rows
with ur
;
select * from plan_view5A
where queryno = 999
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
select * from plan_table
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
}¢--- A540769.WK.SQL(EXPLAIPK) cre=2011-11-02 mod=2011-11-02-15.56.05 A540769 ---
--- temporary explain --------------------------------------------------
set current path = 'OA1T';
set current sqlid = 'S100447';
create view A540769.v11 as
SELECT dmRows,
rdsRow,
snRows,
compCost,
openCost,
a.*
FROM cmnbatch.PLAN_table a
left JOIN cmnbatch.DSN_DetCost_TABLE d
on d.APPLNAME = A.APPLNAME
AND d.PROGNAME = A.PROGNAME
AND d.EXPLAIN_TIME = A.BIND_TIME
AND d.QueryNO = A.QueryNO
AND d.QBlockNO = A.QBlockNO
AND d.PlanNo = A.PlanNo
;
create view A540769.v12 as
SELECT fosFmtE7(dmRows) dmRows,
rdsRow,
snRows,
compCost,
openCost,
a.*
FROM cmnbatch.PLAN_table a
left JOIN cmnbatch.DSN_DetCost_TABLE d
on d.APPLNAME = A.APPLNAME
AND d.PROGNAME = A.PROGNAME
AND d.EXPLAIN_TIME = A.BIND_TIME
AND d.QueryNO = A.QueryNO
AND d.QBlockNO = A.QBlockNO
AND d.PlanNo = A.PlanNo
;
set current sqlid = 'A540769';
delete from A540769.plan_table;
explain plan set queryno = 1 for
SELECT fosFmtE7(dmRows),
rdsRow,
snRows,
compCost,
openCost,
a.*
FROM cmnbatch.PLAN_table a
left JOIN cmnbatch.DSN_DetCost_TABLE d
on d.APPLNAME = A.APPLNAME
AND d.PROGNAME = A.PROGNAME
AND d.EXPLAIN_TIME = A.BIND_TIME
AND d.QueryNO = A.QueryNO
AND d.QBlockNO = A.QBlockNO
AND d.PlanNo = A.PlanNo
where a.collid = 'KE'
and a.progName = 'YKEA028'
and a.bind_time = '2008-11-13-13.08.55.317001'
order by collid, a.progName, version, bind_time,
queryno, qBlockNo, planno, mixopSeq
with ur
;
explain plan set queryno = 3 for
with w as
(
SELECT fosFmtE7(dmRows) dmRows,
rdsRow,
snRows,
compCost,
openCost,
a.*
FROM cmnbatch.PLAN_view1 a
left JOIN cmnbatch.DSN_DetCost_TABLE d
on d.APPLNAME = A.APPLNAME
AND d.PROGNAME = A.PROGNAME
AND d.EXPLAIN_TIME = A.BIND_TIME
AND d.QueryNO = A.QueryNO
AND d.QBlockNO = A.QBlockNO
AND d.PlanNo = A.PlanNo
)
select *
from w
where collid = 'KE'
and progName = 'YKEA028'
and bind_time = '2008-11-13-13.08.55.317001'
order by collid, progName, version, bind_time,
queryno, qBlockNo, planno, mixopSeq
with ur
;
explain plan set queryno = 11 for
select *
from A540769.v11
where collid = 'KE'
and progName = 'YKEA028'
and bind_time = '2008-11-13-13.08.55.317001'
order by collid, progName, version, bind_time,
queryno, qBlockNo, planno, mixopSeq
with ur
;
explain plan set queryno = 12 for
select *
from A540769.v12
where collid = 'KE'
and progName = 'YKEA028'
and bind_time = '2008-11-13-13.08.55.317001'
order by collid, progName, version, bind_time,
queryno, qBlockNo, planno, mixopSeq
with ur
;
explain plan set queryno = 13 for
select fosFmtE7(dmRows) dmRows, v11.*
from A540769.v11 v11
where collid = 'KE'
and progName = 'YKEA028'
and bind_time = '2008-11-13-13.08.55.317001'
order by collid, progName, version, bind_time,
queryno, qBlockNo, planno, mixopSeq
with ur
;
select * from plan_view1
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by --collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAIPL) cre=2011-11-04 mod=2011-12-05-13.27.21 A540769 ---
CREATE VIEW $cr.PLAN_VIEW5 AS
with l as
( select collid, progName, max(r.bind_time) bind_time
FROM $cr.PLAN_TABLE r
group by collid, progName
)
select CASE WHEN METHOD = 'SORT ' THEN ' '
ELSE substr(right(' '
|| strip(CHAR(S.PROCMS)),9), 1, 9) END AS MSEC
, a.*
, S.COST_CATEGORY,
S.PROCMS, S.PROCSU, S.REASON
FROM l
join $cr.PLAN_VIEW1 a
on A.collid = l.collid
AND A.PROGNAME = l.PROGNAME
AND A.bind_time = l.bind_time
LEFT OUTER JOIN
$cr.DSN_STATEMNT_TABLE S
ON S."COLLID" = A."COLLID"
AND S.APPLNAME = A.APPLNAME
AND S.PROGNAME = A.PROGNAME
AND S.EXPLAIN_TIME = A.BIND_TIME
AND S.QUERYNO = A.QUERYNO
;
commit;
???????????????????????
select *
from cmnbatch.plan_view0
where collid = 'AV01'
and prog = 'YAVX009'
order by pcBi desc, bind_Time desc
with ur
;;;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
select *
from cmnbatch.plan_view0
where col = 'AV01'
and prg = 'YAVX009'
order by pcOrd desc, biTi desc
with ur
;
select * from plan_view1
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by --collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAIPP) cre=2013-08-29 mod=2013-08-29-11.34.10 A540769 ---
select *
from cmnbatch.plan_view0 v
where collid = 'MF' and prog = 'MF5010'
;x;
with v as
(
select row_number() over(partition by collid, prog
order by pcBi desc) rn
, v.*
from cmnbatch.plan_view0 v
where collid = 'MF'
-- and prog = 'MF5210'
)
select (select count(*)
from sysibm.sysPackage a
where a.location = ''
and a.collid = v.collid and a.name = v.prog
) vrs
, v.*
from v where rn = 1
order by collid, prog, pcBi desc, bind_Time desc
with ur
; x;
--- ausgewählte Explains analysieren
select *
--- versionen, compiles und explains eines packages -------------------
select *
from cmnbatch.plan_view0
where collid = 'MF'
and prog = 'MF5210'
order by pcBi desc, bind_Time desc
with ur
; x;
--- ausgewählte Explains analysieren
select *
-- from cmnbatch.plan_view1
from cmnbatch.plan_view2
-- from cmnbatch.plan_view2Det
where collid = 'MF'
and progName = 'MF7010'
and bind_time = '2011-08-30-14.14.59.234601'
order by collid, progName, version, bind_time,
queryno, qBlockNo, planno, mixopSeq
with ur
;
select *
from cmnbatch.plan_viewPred
where collid = 'MF'
and progName = 'MF7010'
and bind_time = '2011-08-30-14.14.59.234601'
order by collid, progName, applName, bind_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
}¢--- A540769.WK.SQL(EXPLAIPV) cre=2013-06-04 mod=2013-06-21-14.37.59 A540769 ---
set current sqlid = 'S100447';
--- versionen, compiles und explains eines packages -------------------
select *
from S100447.plan_view0
where collid = 'PV'
and prog = 'A5PO356'
order by pcBi desc, bind_Time desc
with ur
; -- 2013-06-05-09.38.09.869603
select *
from S100447.plan_table
-- from S100447.plan_view1
-- from S100447.plan_view2
-- from S100447.plan_view2Det
where collid = 'PV'
and progName = 'A5PO356'
and bind_time in ('2013-06-21-14.27.22.673306'
,'2013-06-04-16.09.18.365505'
)
and queryno in ( 50401)
order by collid, progName, version, bind_time,
queryno, qBlockNo, planno, mixopSeq
with ur
;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
set current schema oa1a;
explain plan set queryno = 30991 for
INSERT INTO PRWRK21 ( ORDART ) SELECT DISTINCT ORDART
FROM PRORDE QUERYNO 30991
;
explain plan set queryno = 50401 for
SELECT PRDOKT1 . ABRUFID
FROM PRDOKT1
WHERE PRDOKT1 . ABRUFID = ? AND EXISTS ( SELECT *
FROM PRWRK23
WHERE PRWRK23 . POOL = PRDOKT1.POOL
AND PRWRK23 . DATEI = PRDOKT1.DATEI
) FETCH FIRST 1 ROW ONLY QUERYNO 50401
;
explain plan set queryno = 50481 for
SELECT PRDOKT1 . ABRUFID
FROM PRDOKT1
WHERE PRDOKT1 . ABRUFID = ? AND EXISTS ( SELECT 1
FROM PRWRK23
WHERE PRWRK23 . POOL = PRDOKT1.POOL
AND PRWRK23 . DATEI = PRDOKT1.DATEI
) FETCH FIRST 1 ROW ONLY QUERYNO 50401
;
explain plan set queryno = 50491 for
SELECT PRDOKT1 . ABRUFID
FROM PRDOKT1 join PRWRK23
on PRWRK23 . POOL = PRDOKT1.POOL+0
AND PRWRK23 . DATEI = PRDOKT1.DATEI+0
WHERE PRDOKT1 . ABRUFID = ?
FETCH FIRST 1 ROW ONLY QUERYNO 50401
;
explain plan set queryno = 50493 for
SELECT PRDOKT1 . ABRUFID
FROM PRDOKT1 join PRWRK23
on PRWRK23 . POOL + 0 = PRDOKT1.POOL
AND PRWRK23 . DATEI + 0= PRDOKT1.DATEI
WHERE PRDOKT1 . ABRUFID = ?
FETCH FIRST 1 ROW ONLY QUERYNO 50401
;
explain plan set queryno = 50497 for
WITH DSN_INLINE_OPT_HINT(TABLE_NAME, join_seq) as
(
values ('TPV407A1', 1)
, ('TPV423A1', 2)
)
SELECT PRDOKT1 . ABRUFID
FROM PRDOKT1 join PRWRK23
on PRWRK23 . POOL = PRDOKT1.POOL
AND PRWRK23 . DATEI = PRDOKT1.DATEI
WHERE PRDOKT1 . ABRUFID = ?
FETCH FIRST 1 ROW ONLY QUERYNO 50401
;
set current schema A540769;
select * from plan_view1
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by --collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
rollback
;;;;
set current schema oa1a;
insert into PRWRK23 values(0,0,0) ;
insert into PRWRK23 values(1,1,1) ;
insert into PRWRK23 values(2,2,2) ;
insert into PRWRK23 values(3,3,3) ;
insert into PRWRK23 values(4,4,4) ;
insert into PRWRK23 values(5,5,5) ;
insert into PRWRK23 values(6,6,6) ;
insert into PRWRK23 values(7,7,7) ;
insert into PRWRK23 values(8,8,8) ;
insert into PRWRK23 values(9,9,9) ;
select count(*) from PRWRK23 ;
select current timestamp from sysibm.sysdummy1;
WITH DSN_INLINE_OPT_HINT(TABLE_NAME, join_seq) as
(
values ('TPV407A1', 1)
, ('TPV423A1', 2)
)
SELECT PRDOKT1 . ABRUFID
FROM PRDOKT1 join PRWRK23
on PRWRK23 . POOL = PRDOKT1.POOL
AND PRWRK23 . DATEI = PRDOKT1.DATEI
WHERE PRDOKT1 . ABRUFID = 820
FETCH FIRST 1 ROW ONLY QUERYNO 50401
;
select current timestamp from sysibm.sysdummy1;
;
rollback
;x;
WITH DSN_INLINE_OPT_HINT(TABLE_NAME, join_seq) as
(
values ('TPV407A1', 1)
, ('TPV423A1', 2)
)
SELECT PRDOKT1 . ABRUFID
FROM PRDOKT1 join PRWRK23
on PRWRK23 . POOL = PRDOKT1.POOL
AND PRWRK23 . DATEI = PRDOKT1.DATEI
WHERE PRDOKT1 . ABRUFID = ?
FETCH FIRST 1 ROW ONLY QUERYNO 50401
;
set current schema oa1a;
insert into PRWRK23 values(0,0,0) ;
insert into PRWRK23 values(1,1,1) ;
insert into PRWRK23 values(2,2,2) ;
insert into PRWRK23 values(3,3,3) ;
insert into PRWRK23 values(4,4,4) ;
insert into PRWRK23 values(5,5,5) ;
insert into PRWRK23 values(6,6,6) ;
insert into PRWRK23 values(7,7,7) ;
insert into PRWRK23 values(8,8,8) ;
insert into PRWRK23 values(9,9,9) ;
select count(*) from PRWRK23 ;
select current timestamp from sysibm.sysdummy1;
SELECT PRDOKT1 . ABRUFID
FROM PRDOKT1
WHERE PRDOKT1 . ABRUFID = 820 AND EXISTS ( SELECT *
FROM PRWRK23
WHERE PRWRK23 . POOL = PRDOKT1.POOL
AND PRWRK23 . DATEI = PRDOKT1.DATEI
) FETCH FIRST 1 ROW ONLY QUERYNO 50401
with ur
;
select current timestamp from sysibm.sysdummy1;
;
rollback
;xM;
select count(*), abrufid
from OA1A.TPV407A1
group by abrufid
order by 1 desc
fetch first 200 rows only
with ur
;x;
set current schema oa1a;
SELECT count(*)
FROM PRDOKT1
where ABRUFID = 820
;
select current timestamp from sysibm.sysdummy1;
SELECT PRDOKT1 . ABRUFID
FROM PRDOKT1
WHERE PRDOKT1 . ABRUFID = 820 AND EXISTS ( SELECT *
FROM PRWRK23
WHERE PRWRK23 . POOL = PRDOKT1.POOL
AND PRWRK23 . DATEI = PRDOKT1.DATEI
) FETCH FIRST 1 ROW ONLY QUERYNO 50401
with ur
;
select current timestamp from sysibm.sysdummy1;
;xM;
; x;
select * from sysibm.sysPackage WHERE NAME = 'A5PO356'
;
select progName, version, count(*)
from S100447.plan_table WHERE progNAME = 'A5PO356'
group by progName, version
;
set current sqlid = 'S100447';
--- versionen, compiles und explains eines packages -------------------
select *
from S100447.plan_view0
where collid = 'PV'
and prog = 'A5PO356'
order by pcBi desc, bind_Time desc
with ur
;x;
DELETE
FROM PLAN_TABLE
WHERE PROGNAME = 'A5PO356'
AND BIND_TIME <> '2013-06-04-16.09.18.365505'
;
DELETE
FROM PLAN_TABLE
WHERE PROGNAME = 'A5PO356 '
AND QUERYNO = 50401
AND TABNO IN (0,3)
AND BIND_TIME = '2013-06-04-16.09.18.365505'
;
UPDATE PLAN_TABLE
SET OPTHINT = 'PRIMA',
PLANNO = 1,
METHOD = 0
WHERE CREATOR = 'OA1A'
AND PROGNAME = 'A5PO356 '
AND QUERYNO = 50401
AND TABNO = 1
AND BIND_TIME = '2013-06-04-16.09.18.365505'
;
UPDATE PLAN_TABLE
SET OPTHINT = 'PRIMA',
QBLOCKNO = 1,
PLANNO = 2,
METHOD = 1,
MATCHCOLS = 2,
QBLOCK_TYPE = 'SELECT',
PARENT_QBLOCKNO = 0,
PARENT_PLANNO = 0
WHERE CREATOR = 'OA1A'
AND PROGNAME = 'A5PO356 '
AND QUERYNO = 50401
AND TABNO = 2
AND BIND_TIME = '2013-06-04-16.09.18.365505'
;
commit
;x;
--- ausgewählte Explains analysieren
select *
-- from cmnbatch.plan_view1
from cmnbatch.plan_view2
-- from cmnbatch.plan_view2Det
where collid = 'MF'
and progName = 'MF7010'
and bind_time = '2011-08-30-14.14.59.234601'
order by collid, progName, version, bind_time,
queryno, qBlockNo, planno, mixopSeq
with ur
;
select *
from cmnbatch.plan_viewPred
where collid = 'MF'
and progName = 'MF7010'
and bind_time = '2011-08-30-14.14.59.234601'
order by collid, progName, applName, bind_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
}¢--- A540769.WK.SQL(EXPLAIQY) cre=2014-06-20 mod=2016-01-18-11.21.13 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
select substr(db, 1, 8) "db"
, substr(ts, 1, 8) "ts"
, substr(ix, max(1, length(ix) - 7), 8) "...index"
, substr(case when part = 0 then ''
else value(right(' '||strip(char(part)), 4), '----')
||'/'|| value(right(' '||strip(char(tsParts)), 4),'----') )
end, 1, 9) "part/ tot"
, substr(right(' ' || int(round(actGb)), 6), 1, 6) "usedGB"
, substr(right(' ' || int(round(limGb/100*schwelle))
, 6), 1, 6) "schwGB"
, substr(right(' ' || schwelle, 5), 1, 5) "schw%"
, substr(right(' ' || int(round(limGb)), 6), 1, 6) "limGB"
, tsTy "y"
, substr(schwinfo, 7, 35) "schwellwert key"
from oa1p.vQz006gbGrenze
where actGb > real(limGb / 100 * schwelle)
and db <> 'DSNDB01' -- directory ist anders
and rz = 'RZX' and dbSys = 'DE0G'
order by db, ts, part, ix
;
select * from plan_view1
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
with ur
;
rollback
;;;;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 81 for
insert into OA1P.TQZ007GBGRIXSTATS
select 'a' STATE
, 'RZX' RZ
, 'DEVG' DBSYS
, '2014-07-14-07.23.43.062215' LOADTS
, INDEXTYPE
, COMPRESS
, IXPARTS
, IXPGSZ
, PIECESIZE
, PIECEGB
, LIMGB
, TBCREATOR
, TBNAME
, TS
, TSTY
, TSPARTS
, TSCLONE
, TSINST
, TSDSSIZE
, TSDSGB
, TSLimGb
, TSLimPart
, TSPGSZ
, UPDATESTATSTIME
, NLEVELS
, NPAGES
, NLEAF
, NACTIVE
, SPACE
, EXTENTS
, LOADRLASTTIME
, REBUILDLASTTIME
, REORGLASTTIME
, REORGINSERTS
, REORGDELETES
, REORGAPPENDINSERT
, REORGPSEUDODELETES
, REORGMASSDELETE
, REORGLEAFNEAR
, REORGLEAFFAR
, REORGNUMLEVELS
, STATSLASTTIME
, STATSINSERTS
, STATSDELETES
, STATSMASSDELETE
, COPYLASTTIME
, COPYUPDATEDPAGES
, COPYCHANGES
, COPYUPDATELRSN
, COPYUPDATETIME
, LASTUSED
, IBMREQD
, DBID
, ISOBID
, PSID
, PARTITION
, INSTANCE
, TOTALENTRIES
, DBNAME
, NAME
, CREATOR
, INDEXSPACE
, REORGINDEXACCESS
, DRIVETYPE
, STATS101
from OA1P.TQZ007GBGRIXSTATS n
where n.rz = '?' and n.dbSys = '?'
and not exists ( select 1
from OA1P.TQZ007GBGRIXSTATS b join
(
select rz, dbSys, dbName, ts, indexSpace
, partition, instance, max(loadTs) loadTs
from OA1P.TQZ007GBGRIXSTATS a
where rz='RZX' and dbSys = 'DEVG'
and n.dbName = a.dbName
and n.ts = a.ts
and n.indexSpace= a.indexSpace
and n.partition = a.partition
and n.instance = a.instance
group by rz, dbSys, dbName, ts, indexSpace
, partition, instance
) a
on b.rz = a.rz
and b.dbSys = a.dbSys
and b.dbName = a.dbName
and b.ts = a.ts
and b.indexSpace= a.indexSpace
and b.partition = a.partition
and b.instance = a.instance
and b.loadTS = a.loadTs
where b.updateStatsTime = n.updateStatsTime
)
;
explain plan set queryno = 82 for
insert into OA1P.TQZ007GBGRIXSTATS
select 'a' STATE
, 'RZX' RZ
, 'DEVG' DBSYS
, '2014-07-14-07.23.43.062215' LOADTS
, INDEXTYPE
, COMPRESS
, IXPARTS
, IXPGSZ
, PIECESIZE
, PIECEGB
, LIMGB
, TBCREATOR
, TBNAME
, TS
, TSTY
, TSPARTS
, TSCLONE
, TSINST
, TSDSSIZE
, TSDSGB
, TSLimGb
, TSLimPart
, TSPGSZ
, UPDATESTATSTIME
, NLEVELS
, NPAGES
, NLEAF
, NACTIVE
, SPACE
, EXTENTS
, LOADRLASTTIME
, REBUILDLASTTIME
, REORGLASTTIME
, REORGINSERTS
, REORGDELETES
, REORGAPPENDINSERT
, REORGPSEUDODELETES
, REORGMASSDELETE
, REORGLEAFNEAR
, REORGLEAFFAR
, REORGNUMLEVELS
, STATSLASTTIME
, STATSINSERTS
, STATSDELETES
, STATSMASSDELETE
, COPYLASTTIME
, COPYUPDATEDPAGES
, COPYCHANGES
, COPYUPDATELRSN
, COPYUPDATETIME
, LASTUSED
, IBMREQD
, DBID
, ISOBID
, PSID
, PARTITION
, INSTANCE
, TOTALENTRIES
, DBNAME
, NAME
, CREATOR
, INDEXSPACE
, REORGINDEXACCESS
, DRIVETYPE
, STATS101
from OA1P.TQZ007GBGRIXSTATS n
where n.rz = '?' and n.dbSys = '?'
and not exists ( select 1
from OA1P.TQZ007GBGRIXSTATS a
where rz='RZX' and dbSys = 'DEVG'
and n.dbName = a.dbName
and n.ts = a.ts
and n.indexSpace= a.indexSpace
and n.partition = a.partition
and n.instance = a.instance
and n.updateStatsTime = a.updateStatsTime
and a.loadTs = (select max(b.loadTs)
from OA1P.TQZ007GBGRIXSTATS b
where b.rz = a.rz
and b.dbSys = a.dbSys
and b.dbName = a.dbName
and b.ts = a.ts
and b.indexSpace= a.indexSpace
and b.partition = a.partition
and b.instance = a.instance
)
)
;
explain plan set queryno = 84 for
insert into OA1P.TQZ007GBGRIXSTATS
select 'a' STATE
, 'RZX' RZ
, 'DEVG' DBSYS
, '2014-07-14-07.23.43.062215' LOADTS
, INDEXTYPE
, COMPRESS
, IXPARTS
, IXPGSZ
, PIECESIZE
, PIECEGB
, LIMGB
, TBCREATOR
, TBNAME
, TS
, TSTY
, TSPARTS
, TSCLONE
, TSINST
, TSDSSIZE
, TSDSGB
, TSLimGb
, TSLimPart
, TSPGSZ
, UPDATESTATSTIME
, NLEVELS
, NPAGES
, NLEAF
, NACTIVE
, SPACE
, EXTENTS
, LOADRLASTTIME
, REBUILDLASTTIME
, REORGLASTTIME
, REORGINSERTS
, REORGDELETES
, REORGAPPENDINSERT
, REORGPSEUDODELETES
, REORGMASSDELETE
, REORGLEAFNEAR
, REORGLEAFFAR
, REORGNUMLEVELS
, STATSLASTTIME
, STATSINSERTS
, STATSDELETES
, STATSMASSDELETE
, COPYLASTTIME
, COPYUPDATEDPAGES
, COPYCHANGES
, COPYUPDATELRSN
, COPYUPDATETIME
, LASTUSED
, IBMREQD
, DBID
, ISOBID
, PSID
, PARTITION
, INSTANCE
, TOTALENTRIES
, DBNAME
, NAME
, CREATOR
, INDEXSPACE
, REORGINDEXACCESS
, DRIVETYPE
, STATS101
from OA1P.TQZ007GBGRIXSTATS n
where n.rz = '?' and n.dbSys = '?'
and updatestatsTime <> value(( select timestamp(substr(max(
char(loadTs) || char(updateStatsTime)), 27))
from OA1P.TQZ007GBGRIXSTATS a
where rz='RZX' and dbSys = 'DEVG'
and n.dbName = a.dbName
and n.ts = a.ts
and n.indexSpace= a.indexSpace
and n.partition = a.partition
and n.instance = a.instance
), '1111-11-11-11.11.11')
;
select * from plan_view1
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
with ur
;
rollback
;;;;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 51 for
select count(*), sum(real(totalEntries))
from OA1P.TQZ007GBGRixSTATS a
where rz = 'RZX' and dbSys = 'DEVG'
and loadTs = (select max(loadTs)
from OA1P.TQZ007GBGRIXSTATS r
where r.rz = a.rz
and r.dbSys = a.dbSys
and r.dbName = a.dbName
and r.ts = a.ts
and r.indexSpace= a.indexSpace
and r.partition = a.partition
and r.instance = a.instance
and r.loadTS = a.loadTs
)
;
explain plan set queryno = 52 for
with a as
(
select a.*
, row_number() over(partition by rz, dbSys, dbName, ts, indexSpace
, partition, instance
order by loadts desc) ln
from OA1P.TQZ007GBGRixSTATS a
)
select count(*), sum(real(totalEntries))
from a
where ln = 1 and rz = 'RZX' and dbSys = 'DEVG'
;
explain plan set queryno = 53 for
with k as
(
select rz, dbSys, dbName, ts, indexSpace, partition, instance
, max(loadTs) loadTs
from OA1P.TQZ007GBGRixSTATS
group by rz, dbSys, dbName, ts, indexSpace, partition, instance
)
select count(*), sum(real(i.totalEntries))
from OA1P.TQZ007GBGRixSTATS i
join k
on i.rz = k.rz
and i.dbSys = k.dbSys
and i.dbName = k.dbName
and i.ts = k.ts
and i.indexSpace= k.indexSpace
and i.partition = k.partition
and i.instance = k.instance
and i.loadTS = k.loadTs
where i.rz = 'RZX' and i.dbSys = 'DEVG'
;
select * from plan_view1
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
with ur
;
rollback
;;;;
??????????????
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
delete from A540769.dsn_struct_table;
explain plan set queryno = 30 for
insert into OA1P.TQZ006GBGRTSSTATS
(state, loadTs, rz, dbSys, dbName, name, partition, instance
, tsType, tsTy, pgSize, segSize
, parts, maxParts, dsSize, dsGb, limGb, limPart
, obid, clone, tsInst, tbCr, tb, tbTy, tbObId
, dbid, psid, ibmReqD
, updateStatsTime)
select 'd', '2014-06-23-06.56.26.593270'
, rz, dbSys, dbName, name, partition, instance
, tsType, tsTy, pgSize, segSize
, parts, maxParts, dsSize, dsGb, limGb, limPart
, obid, clone, tsInst, tbCr, tb, tbTy, tbObId
, dbid, psid, ibmReqD
, (select max(updateStatsTime)
from OA1P.TQZ006GBGRTSSTATS n
where n.rz = '?' and n.dbSys = '?'
)
from OA1P.TQZ006GBGRTSSTATS s
where rz = 'RZ2' and dbSys = 'DBOF' and state <> 'd'
and loadTs = (select max(loadTs)
from OA1P.TQZ006GBGRTSSTATS a
where a.rz = s.rz and a.dbSys = s.dbSys
and a.dbName = s.dbName
and a.Name = s.Name
and a.partition = s.partition
and a.instance = s.instance
)
and not exists (select 1
from OA1P.TQZ006GBGRTSSTATS n
where n.rz = '?' and n.dbSys = '?'
and n.dbName = s.dbName
and n.Name = s.Name
and n.partition = s.partition
and n.instance = s.instance
)
;
explain plan set queryno = 32 for
insert into OA1P.TQZ006GBGRTSSTATS
(state, loadTs, rz, dbSys, dbName, name, partition, instance
, tsType, tsTy, pgSize, segSize
, parts, maxParts, dsSize, dsGb, limGb, limPart
, obid, clone, tsInst, tbCr, tb, tbTy, tbObId
, dbid, psid, ibmReqD
, updateStatsTime)
select 'd', '2014-06-23-06.56.26.593270'
, rz, dbSys, dbName, name, partition, instance
, tsType, tsTy, pgSize, segSize
, parts, maxParts, dsSize, dsGb, limGb, limPart
, obid, clone, tsInst, tbCr, tb, tbTy, tbObId
, dbid, psid, ibmReqD
, (select max(updateStatsTime)
from OA1P.TQZ006GBGRTSSTATS n
where n.rz = '?' and n.dbSys = '?'
)
from OA1P.TQZ006GBGRTSSTATS s
where state <> 'd'
and (rz, dbSys, dbName, name
, partition, instance, loadTs) in
(select rz, dbSys, dbName, name
, partition, instance, max(loadTs) loadTs
from OA1P.TQZ006GBGRTSSTATS j
where rz='RZ2' and dbSys = 'DBOF'
group by rz, dbSys, dbName, name
, partition, instance
)
and not exists (select 1
from OA1P.TQZ006GBGRTSSTATS n
where n.rz = '?' and n.dbSys = '?'
and n.dbName = s.dbName
and n.Name = s.Name
and n.partition = s.partition
and n.instance = s.instance
)
;
explain plan set queryno = 33 for
insert into OA1P.TQZ006GBGRTSSTATS
(state, loadTs, rz, dbSys, dbName, name, partition, instance
, tsType, tsTy, pgSize, segSize
, parts, maxParts, dsSize, dsGb, limGb, limPart
, obid, clone, tsInst, tbCr, tb, tbTy, tbObId
, dbid, psid, ibmReqD
, updateStatsTime)
with j as
(
select rz, dbSys, dbName, name
, partition, instance, max(loadTs) loadTs
from OA1P.TQZ006GBGRTSSTATS j
where rz='RZ2' and dbSys = 'DBOF'
group by rz, dbSys, dbName, name
, partition, instance
)
select 'd', '2014-06-23-06.56.26.593270'
, s.rz, s.dbSys, s.dbName, s.name, s.partition, s.instance
, tsType, tsTy, pgSize, segSize
, parts, maxParts, dsSize, dsGb, limGb, limPart
, obid, clone, tsInst, tbCr, tb, tbTy, tbObId
, dbid, psid, ibmReqD
, (select max(updateStatsTime)
from OA1P.TQZ006GBGRTSSTATS n
where n.rz = '?' and n.dbSys = '?'
)
from OA1P.TQZ006GBGRTSSTATS s
join j
on s.rz = j.rz
and s.dbSys = j.dbSys
and s.dbName = j.dbName
and s.Name = j.Name
and s.partition = j.partition
and s.instance = j.instance
and s.loadTS = j.loadTs
where state <> 'd'
and not exists (select 1
from OA1P.TQZ006GBGRTSSTATS n
where n.rz = '?' and n.dbSys = '?'
and n.dbName = s.dbName
and n.Name = s.Name
and n.partition = s.partition
and n.instance = s.instance
)
;
explain plan set queryno = 37 for
select rz, dbSys, dbName, name
, partition, instance, max(loadTs)
from OA1P.TQZ006GBGRTSSTATS j
where rz='RZ2' and dbSys = 'DBOF'
group by rz, dbSys, dbName, name
, partition, instance
;
explain plan set queryno = 34 for
insert into OA1P.TQZ006GBGRTSSTATS
with a as
(
select rz, dbSys, dbName, name
, partition, instance, max(loadTs) loadTs
from OA1P.TQZ006GBGRTSSTATS a
where rz='RZ2' and dbSys = 'DBOF'
group by rz, dbSys, dbName, name, partition, instance
)
, b as
(
select b.*
from OA1P.TQZ006GBGRTSSTATS b join a
on b.rz = a.rz
and b.dbSys = a.dbSys
and b.dbName = a.dbName
and b.Name = a.Name
and b.partition = a.partition
and b.instance = a.instance
and b.loadTS = a.loadTs
)
select 'a' STATE
, 'RZ2' RZ
, 'DBOF' DBSYS
, '2014-06-24-16.06.14.269185' LOADTS
, TSTYPE
, TSTY
, PGSIZE
, SEGSIZE
, PARTS
, MAXPARTS
, DSSIZE
, DSGB
, LIMGB
, LIMPART
, OBID
, CLONE
, TSINST
, TBCR
, TB
, TBTY
, TBOBID
, UPDATESTATSTIME
, NACTIVE
, NPAGES
, EXTENTS
, LOADRLASTTIME
, REORGLASTTIME
, REORGINSERTS
, REORGDELETES
, REORGUPDATES
, REORGUNCLUSTINS
, REORGDISORGLOB
, REORGMASSDELETE
, REORGNEARINDREF
, REORGFARINDREF
, STATSLASTTIME
, STATSINSERTS
, STATSDELETES
, STATSUPDATES
, STATSMASSDELETE
, COPYLASTTIME
, COPYUPDATEDPAGES
, COPYCHANGES
, COPYUPDATELRSN
, COPYUPDATETIME
, IBMREQD
, DBID
, PSID
, PARTITION
, INSTANCE
, SPACE
, TOTALROWS
, DATASIZE
, UNCOMPRESSEDDATASIZE
, DBNAME
, NAME
, REORGCLUSTERSENS
, REORGSCANACCESS
, REORGHASHACCESS
, HASHLASTUSED
, DRIVETYPE
, LPFACILITY
, STATS01
from OA1P.TQZ006GBGRTSSTATS n
where n.rz = '?' and n.dbSys = '?'
and not exists
( select 1
from b o
where o.rz = 'RZ2' and o.dbSys = 'DBOF'
and o.dbName = n.dbName
and o.name = n.name
and o.partition = n.partition
and o.instance = n.instance
and o.updateStatsTime = n.updateStatsTime
)
;
explain plan set queryno = 35 for
insert into OA1P.TQZ006GBGRTSSTATS
select 'a' STATE
, 'RZ2' RZ
, 'DBOF' DBSYS
, '2014-06-24-16.06.14.269185' LOADTS
, TSTYPE
, TSTY
, PGSIZE
, SEGSIZE
, PARTS
, MAXPARTS
, DSSIZE
, DSGB
, LIMGB
, LIMPART
, OBID
, CLONE
, TSINST
, TBCR
, TB
, TBTY
, TBOBID
, UPDATESTATSTIME
, NACTIVE
, NPAGES
, EXTENTS
, LOADRLASTTIME
, REORGLASTTIME
, REORGINSERTS
, REORGDELETES
, REORGUPDATES
, REORGUNCLUSTINS
, REORGDISORGLOB
, REORGMASSDELETE
, REORGNEARINDREF
, REORGFARINDREF
, STATSLASTTIME
, STATSINSERTS
, STATSDELETES
, STATSUPDATES
, STATSMASSDELETE
, COPYLASTTIME
, COPYUPDATEDPAGES
, COPYCHANGES
, COPYUPDATELRSN
, COPYUPDATETIME
, IBMREQD
, DBID
, PSID
, PARTITION
, INSTANCE
, SPACE
, TOTALROWS
, DATASIZE
, UNCOMPRESSEDDATASIZE
, DBNAME
, NAME
, REORGCLUSTERSENS
, REORGSCANACCESS
, REORGHASHACCESS
, HASHLASTUSED
, DRIVETYPE
, LPFACILITY
, STATS01
from OA1P.TQZ006GBGRTSSTATS n
where n.rz = '?' and n.dbSys = '?'
and not exists ( select 1
from OA1P.TQZ006GBGRTSSTATS b join
(
select rz, dbSys, dbName, name
, partition, instance, max(loadTs) loadTs
from OA1P.TQZ006GBGRTSSTATS a
where rz='RZ2' and dbSys = 'DBOF'
and n.dbName = a.dbName
and n.Name = a.Name
and n.partition = a.partition
and n.instance = a.instance
group by rz, dbSys, dbName, name, partition, instance
) a
on b.rz = a.rz
and b.dbSys = a.dbSys
and b.dbName = a.dbName
and b.Name = a.Name
and b.partition = a.partition
and b.instance = a.instance
and b.loadTS = a.loadTs
and b.updateStatsTime = n.updateStatsTime
)
; mm
explain plan set queryno = 38 for
with j as
(
select rz, dbSys, dbName, name
, partition, instance, max(loadTs) loadTs
from OA1P.TQZ006GBGRTSSTATS j
where rz='RZ2' and dbSys = 'DBOF'
group by rz, dbSys, dbName, name
, partition, instance
)
select s.*
from OA1P.TQZ006GBGRTSSTATS s join j
on s.rz = j.rz
and s.dbSys = j.dbSys
and s.dbName = j.dbName
and s.Name = j.Name
and s.partition = j.partition
and s.instance = j.instance
and s.loadTS = j.loadTs
;
select * from plan_view1
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
with ur
;
select * from A540769.dsn_struct_table where queryno = 30;
rollback
;;;;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
delete from A540769.dsn_struct_table;
explain plan set queryno = 1 for
with a as
(
select rz, dbSys, dbName, name
, partition, instance, max(loadTs) loadTs
from OA1P.TQZ006GBGRTSSTATS a
group by rz, dbSys, dbName, name, partition, instance
)
, b as
(
select b.*
from OA1P.TQZ006GBGRTSSTATS b join a
on b.rz = a.rz
and b.dbSys = a.dbSys
and b.dbName = a.dbName
and b.Name = a.Name
and b.partition = a.partition
and b.instance = a.instance
and b.loadTS = a.loadTs
)
select * from b where rz = 'RZ2' and dbSys = 'DVBP'
and dbName = 'MF01A1P'
;
select * from plan_view1
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
with ur
;
select * from A540769.dsn_struct_table;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAIQZ) cre=2014-04-30 mod=2016-09-27-11.42.21 A540769 ---
set current path oa1p;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
WITH G AS
(
SELECT LGRDBID, lgrpsid
, LGRPART PA
, COUNT(*) CNT
, MAX(TRANSLATE('20YZ-MN-DE-', LGRUCDT, 'MNDEYZ')
|| TRANSLATE('HI.MN.ST.UV', LGRUCTM, 'HIMNSTUV')) lgrUcTm
, MAX(LGRSLRSN) lgrSLrsn
, MAX(LGRSLRSN) lgrELrsn
FROM SYSIBM.SYSLGRNX
GROUP BY LGRDBID, LGRPSID, LGRPART
)
, h as
(
select oa1p.fqzCastC2I(LGRDBID) dbID
, oa1p.fqzCastC2I(LGRPSID) psID
, pa
, cnt
, timestamp(lgrUcTm) upd
-- max(sommer, winterzeit) - 26 leapSeconds
-- do not use current timeZone there was a winter once
, timestamp(substr(lgrSlrsn, 2,8)) + 7174 seconds sLrsn
, timestamp(substr(lgrElrsn, 2,8)) + 7174 seconds eLrsn
from g
order by 1, 2
)
SELECT DBNAME DB, NAME TS, PA
, max( value(slrsn, '1111-11-11-11.11.11')
, value(elrsn, '1111-11-11-11.11.11')
, value(upd , '1111-11-11-11.11.11') ) endtst
, CNT
FROM h
JOIN (select * from SYSIBM.SYSTABLESPACE
order by dbid, psid) s
ON h.dbID = S.dbID+0 AND h.psID = s.psID+0
WITH UR
;
explain plan set queryno = 7 for
with s as
(
select s.DBNAME db, s.NAME TS, p.partition PA
, value( ( select
max( value(timestamp(substr(max(LGRSLRSN), 2, 8))
-- max(sommer, winterzeit) - 26 leapSeconds
-- do not use current timeZone there was a winter once
+ 7174 seconds, '1111-11-11-11.11.11')
, value(timestamp(substr(max(LGRELRSN), 2, 8))
+ 7174 seconds, '1111-11-11-11.11.11')
, value(timestamp(max(
TRANSLATE('20YZ-MN-DE-', LGRUCDT, 'MNDEYZ')
|| TRANSLATE('HI.MN.ST.UV', LGRUCTM, 'HIMNSTUV')))
, '1111-11-11-11.11.11')
)
from sysibm.sysLgRnX l
where l.lgrdbid = oa1p.fqzCastSmall2C(s.dbid)
and l.lgrpsid = oa1p.fqzCastSmall2c(s.psid)
and l.lgrpart = p.partition
), '1111-11-11-11.11.11') endTst
from sysibm.sysTableSpace s
join sysibm.sysTablePart p
on s.dbName = p.dbname and s.name = p.tsname
)
select *
from s
where endTst > '1919-01-01-00.00.00'
WITH UR
;
select * from plan_view1
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
with ur
;
rollback
;;;;
set current path oa1p;
with i(i) as
( select 0 from sysibm.sysDummyE
union all select i+1 from i where i < 330
)
, j(j) as
(
select smallint(i) from i where i < 32768
union all select smallint(-i) from i where i <= 32768
)
select j, hex(fqzCastsmall2c(j)), fqzCastc2small(fqzCastsmall2c(j))
from j
-- where j <> fqzCastc2small(fqzCastsmall2c(j))
-- or fqzCastsmall2c(j)
-- <> fqzcastsmall2c(fqzCastc2small(fqzCastsmall2c(j)))
order by j
; select current timestamp from sysibm.sysDummy1;
;x;
--- versionen, compiles und explains eines packages -------------------
select *
from cmnBatch.plan_view0
where collid = 'QZ'
and prog = 'QZPLB'
order by pcBi desc, bind_Time desc
with ur
;
--- ausgewählte Explains analysieren
select *
from cmnbatch.plan_view1
-- from cmnbatch.plan_view2
-- from cmnbatch.plan_view2Det
where collid = 'QZ'
and progName = 'QZPLB'
and bind_time = '2014-04-30-11.48.30.523307'
order by collid, progName, version, bind_time,
queryno, qBlockNo, planno, mixopSeq
with ur
;
select *
from cmnbatch.plan_viewPred
where collid = 'QZ'
and progName = 'QZPLB'
and bind_time = '2014-04-30-11.48.30.523307'
order by collid, progName, applName, bind_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
}¢--- A540769.WK.SQL(EXPLAIRE) cre=2011-09-12 mod=2011-09-12-14.37.03 A540769 ---
set current sqlid = 'A540769';
delete from A540769.plan_table;
explain plan set queryno = 0 for
update s100447.tReoRunPart p
set reoTime = (select rngTime
from s100447.vReoRunRng2 r
where r.tst = p.tst and r.rng = p.rng
)
where part = paVon and reoTime is null
and tst > current timestamp - 10 hours
and exists (select rngTime
from s100447.vReoRunRng2 r
where r.tst = p.tst and r.rng = p.rng
)
;
select * from plan_view1
order by applname, progname, queryNo, qblockno, planno, mixOpSeq
;
rollback
;;;;;
set current sqlid = 's100447';
CREATE INDEX s100447.iReoRunPart2
ON s100447.tReoRunPart
(tst asc, rng asc, sta, reotst)
not CLUSTER
USING STOGROUP GSMS
BUFFERPOOL BP1
;
commit
;
}¢--- A540769.WK.SQL(EXPLAIRM) cre=2012-06-01 mod=2012-06-25-07.57.07 A540769 ---
--- versionen, compiles und explains eines packages -------------------
select *
from cmnbatch.plan_view0
where collid = 'RM'
and prog = 'YRMVER'
order by pcBi desc, bind_Time desc
with ur
;
--- ausgewählte Explains analysieren
select *
from cmnbatch.plan_view1
-- from cmnbatch.plan_view2
-- from cmnbatch.plan_view2Det
where collid = 'RM'
and progName = 'YRMVER'
and bind_time in ('2012-03-17-19.03.04.705650'
,'2012-06-25-07.56.26.829556'
)
order by collid, progName, version,
queryno,
bind_time,
qBlockNo, planno, mixopSeq
with ur
;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 887 for
-- DECLARE KEYDIRTYPECURS CURSOR FOR
SELECT RM01001, RM01002, RM01003,
RM01004, RM01005, RM01006, RM01007, RM01008, RM01009, RM01010, RM01011,
RM01012, RM01013, RM01014, RM01015, RM01016, RM01017, RM01018
FROM oa1t.TRM010A1
WHERE (RM01011 = ? OR RM01014 = ?) AND RM01015 IN (?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?) AND RM01003 <= ? AND RM01007 + 0 seconds >
?
;
select *
from cmnbatch.plan_view2Det ----> index fehlt
where collid = 'MF'
and progName = 'MF7010'
and bind_time = '2011-08-30-14.14.59.234601'
order by collid, progName, version, bind_time,
queryno, qBlockNo, planno, mixopSeq
with ur
;
select * from plan_view1
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by --collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
rollback
;;;;
--- versionen, compiles und explains eines packages -------------------
select *
from cmnbatch.plan_view0
where collid = 'RM'
and prog = 'YRMVER'
order by pcBi desc, bind_Time desc
with ur
;
--- ausgewählte Explains analysieren
select *
from cmnbatch.plan_view1
-- from cmnbatch.plan_view2
-- from cmnbatch.plan_view2Det
where collid = 'RM'
and progName = 'YRMVER'
and bind_time in ('2012-05-20-01.48.59.380110'
,'2011-02-10-10.54.30.980394'
)
order by collid, progName, version,
queryno,
bind_time,
qBlockNo, planno, mixopSeq
with ur
; x;
select *
from cmnbatch.plan_viewPred
where collid = 'MF'
and progName = 'MF7010'
and bind_time = '2011-08-30-14.14.59.234601'
order by collid, progName, applName, bind_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
}¢--- A540769.WK.SQL(EXPLAISH) cre=2010-08-27 mod=2010-08-27-07.35.26 A540769 ---
select count(*), ckat, d$guea
from OA1T.TWM005A1
group by ckat, d$guea
order by 1 desc
fetch first 100 rows only
with ur
;
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for
SELECT *
FROM OA1T.TWM005A1
WHERE D$GUEA <= CURRENT TIMESTAMP
AND D$GUEB >= CURRENT TIMESTAMP
AND CSTAT BETWEEN 'A' AND 'A'
AND CDEFAULT BETWEEN 'C' AND 'C'
AND CKAT = 'SPDE'
;
select * from plan_view2
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
}¢--- A540769.WK.SQL(EXPLAIST) cre=2011-01-17 mod=2011-01-17-17.38.21 A540769 ---
select * from cmnbatch.plan_table
where progName = 'YWPLXL3'
and bind_time = '2010-12-09-11.10.36.609932'
and queryNo = 415
order by applname, progname, queryNo, qblockno, planno, timestamp
;
select * from cmnBatch.dsn_statemnt_table
where progName = 'YWPLXL3'
and explain_time = '2010-12-09-11.10.36.609932'
and queryNo = 415
order by applname, progname, queryNo
;
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 123 for
select * from A540769.twk936
order by MF150013
;
explain plan set queryno = 523 for
select * from A540769.twk924
order by key
;
select * from plan_table
order by applname, progname, queryNo, qblockno, planno
;
select * from dsn_statemnt_table
order by applname, progname, queryNo
;
rollback
;x;
select * from s100447.plan_view1
where progName in ('YWPLXL3') and collid = 'A540769'
-- and bind_time = '2010-07-18-22.01.54.199935'
order by applname, progname, queryNo, qblockno, planno,
bind_time, tname
;x;
select * from cmnbatch.dsn_statemnt_table
where progName in ('YWPLXL3')
and explain_time = '2010-07-18-22.01.54.199935'
-- order by applname, progname, queryNo, qblockno, planno
;x;
select '4', count(*), sum(case when substr(wp70302e,1,5)
in ('BFTBB','WPSPM') then 1 else 0 end)
from oa1p.TWP703A104
union all select '5', count(*), sum(case when substr(wp70302e,1,5)
in ('BFTBB','WPSPM') then 1 else 0 end)
from oa1p.TWP703A105
with ur
;;
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 1 for
SELECT * FROM A540769.VMFNVEXT
WHERE MF150023 > '038 ' AND MF150023 <= '052 '
WITH UR
;
explain plan set queryno = 2 for
SELECT * FROM A540769.VMFNVPART
WHERE MF150023 > '052 ' AND MF150023 <= '057 '
;
explain plan set queryno = 3 for
select t.*, i.mf150Hash
from oa1p.tmf150a1 t, A540769.tmfnvPart i
where t.mf150013 = i.mf150013
and t.mf150023 = i.mf150023
and i.part = 1
order by i.MF150023 ASC,
i.MF150013 DESC
;
explain plan set queryno = 4 for
select t.*, i.mf150Hash
from oa1p.tmf150a1 t, A540769.tmfnvPart i
where t.mf150013 = i.mf150013
and t.mf150023 = i.mf150023
and t.MF150082 = ' '
and i.part = 1
order by i.MF150023 ASC,
i.MF150013 DESC
;
--explain plan set queryno = 7 for
--ect s.*
-- from tstRts.tsIxStats S
-- where db like 'MF%' and ts like 'A1%1%' and part in (0,1,5,7,9)
-- order by db, ts, part
--
--ect current timestamp from sysibm.sysdummy1;
--lect s.*
-- from tstRts.tsIxStats S
-- where db = 'MF01A1P' and ts like 'A1%1%' and part in (0,1,5,7,9)
-- order by db , ts -- , part
--
--lect current timestamp from sysibm.sysdummy1;
--lect s.*
-- from tstRts.tsIxStats S
-- where db like 'MF0%' and ts like 'A1%1%' and part in (0,1,5,7,9)
-- order by db , ts -- , part
--
select current timestamp from sysibm.sysdummy1;
select * from plan_view2
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
select * from A540769.plan_view5
where progName in ('SV5003', 'SV5390', 'SV8240')
order by applname, progname, queryNo, qblockno, planno
;x;
select * from cmnbatch.plan_view2
where progName in ('FI5700') and version = 'BKUR000319'
order by applname, progname, queryNo, qblockno, planno
;x;
-- select * from tstRts.TrtsReoTSException;
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for
select s.*
from tstRts.VRtsReoTSSchwelle s
where db = 'MF01A1T' and ts like 'A1%1%' and part in (0,1,5,7,9)
order by db , ts -- , part
;
explain plan set queryno = 7 for
select s.*
from tstRts.tsIxStats S
where db like 'MF%' and ts like 'A1%1%' and part in (0,1,5,7,9)
order by db, ts, part
;
select current timestamp from sysibm.sysdummy1;
select s.*
from tstRts.tsIxStats S
where db = 'MF01A1P' and ts like 'A1%1%' and part in (0,1,5,7,9)
order by db , ts -- , part
;
select current timestamp from sysibm.sysdummy1;
select s.*
from tstRts.tsIxStats S
where db like 'MF0%' and ts like 'A1%1%' and part in (0,1,5,7,9)
order by db , ts -- , part
;
select current timestamp from sysibm.sysdummy1;
select * from plan_view2
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
xxx
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 1 for -- mit concat
with c as
( select mf150023 cif, mf150013 dat, count(*) cnt
from oa1p.tmf150A1
where mf150023 like '000%'
group by mf150023 , mf150013
) , h as
( select
smallint(mod(
int(
translate(
translate('08642' , hex(substr(cif , 8, 5)), '1234567890'),
'024579', 'ABCDEF'))
+ month(dat) ,11113)) h
, cnt
from c
)
, g as
( select sum(cnt) c
from h
group by h
)
, p as
( select sum(cnt) c
from h
group by floor(h/111.14)
)
select 'h', min(c) "min", max(c) "max", count(*) "count", sum(c) "sum"
from g
group by floor(log10(c) * 6)
union all
select 'p', min(c) "min", max(c) "max", count(*) "count", sum(c) "sum"
from p
group by floor(log10(c) * 6)
order by 1, 2
with ur
;
explain plan set queryno = 5 for -- mit concat
with h as
( select mf150023 cif,
smallint(mod(
int(
translate(
translate('08642' , hex(substr(mf150023 , 8, 5)), '1234567890'),
'024579', 'ABCDEF')), 9973)) t
from oa1p.tmf150A1
-- where cif like '000%'
)
, g as
( select t, count(*) c
from h
group by t
)
select sum(c), min(c), max(c), count(*) "dist c"
from g
group by floor(log10(c) * 6)
with ur
;
select * from plan_view2
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
select * from cmnBatch.plan_view5
where progName = 'YDG129'
order by applname, progname, queryNo, qblockno, planno
;
x
select * from cmnBatch.plan_view5
where progName = 'MF8500' -- and version = 'MFR0000203'
order by applname, progname, queryNo, qblockno, planno
;
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 1 for -- mit concat
SELECT RM01001,RM01002,RM01003,RM01004,RM01005,RM01006,
RM01007,RM01008,RM01009,RM01010,RM01011,RM01012,
RM01013,RM01014,RM01015,RM01016,RM01017,RM01018
FROM oa1p.TRM010A1
WHERE ? BETWEEN RM01002 AND RM01006
AND RM01015 || '' IN ('RT001','RT002','RT004',
'RT010','RT015','RT018','RT201')
ORDER BY RM01015, RM01011, RM01014, RM01002
FOR FETCH ONLY;
explain plan set queryno = 3 for -- mit or
SELECT RM01001,RM01002,RM01003,RM01004,RM01005,RM01006,
RM01007,RM01008,RM01009,RM01010,RM01011,RM01012,
RM01013,RM01014,RM01015,RM01016,RM01017,RM01018
FROM oa1p.TRM010A1
WHERE ? BETWEEN RM01002 AND RM01006
AND (RM01015 IN('RT001','RT002','RT004',
'RT010','RT015','RT018','RT201')
or 1 = 0
)
ORDER BY RM01015, RM01011, RM01014, RM01002
FOR FETCH ONLY;
explain plan set queryno = 9 for -- neu ohne or
SELECT *
FROM oa1p.TRM010A1
WHERE ? BETWEEN RM01002 AND RM01006
AND RM01015 IN('RT001','RT002','RT004',
'RT010','RT015','RT018','RT201')
ORDER BY RM01015, RM01011, RM01014, RM01002
FOR FETCH ONLY;
select * from plan_view2
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for -- alt schnell
Select MF150023,MF150067,
sum(Case when MF150055 = 'Z' then DEC(MF150019,18,3) else 0 end),
sum(Case when MF150055 = 'A' then DEC(MF150019,18,3) else 0 end)
FROM oa1p.TMF150A1
WHERE MF150066 = ' A965367'
AND MF150013 BETWEEN '01.01.2009' and '30.11.2009'
AND MF150085 BETWEEN 10 AND 89
AND MF150084 BETWEEN 10 AND 89
GROUP BY MF150023,MF150067
with ur
;
explain plan set queryno = 9 for -- neu langsam
Select MF150023,MF150067,MF150019A,
sum(Case when MF150055 = 'Z' then DEC(MF150019,18,3) else 0 end),
sum(Case when MF150055 = 'A' then DEC(MF150019,18,3) else 0 end)
FROM oa1p.TMF150A1
WHERE MF150066 = ' A965367'
AND MF150013 BETWEEN '01.01.2009' and '30.11.2009'
AND MF150085 BETWEEN 10 AND 89
AND MF150084 BETWEEN 10 AND 89
GROUP BY MF150023,MF150067,MF150019A
with ur;
select * from plan_view2
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
x
delete from plan_table;
explain plan set queryno = 3 for
SELECT SV363012
FROM OA1P.TSV361A1 JOIN oa1p.TSV363A1
ON SV361003=SV363001
WHERE SV361002=1
AND SV361008=2
AND SV361009= ?
AND(SV363007='1' OR SV363007='2')
AND(ABS(SV363010 - '01.01.2009')<30 OR ABS(SV363011
- date('01.01.2009'))<30)
ORDER BY SV363010 DESC,SV363011 DESC
;
select * from plan_view2
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
select count(*), SV363001
FROM OA1P.TSV363A1
group by SV363001
ORDER BY 1 DESC
WITH UR
;
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for
select *
from a540769.vrtsReoTs
where dbName like 'MF%'
;
select * from plan_view5a
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
----- query 1532 YXEBV2E, 30.6.09
----- Kumar Sandeep will sequenz TKS835, TKS833, TKS843, TKS843
----- seit einem Jahr bind TKS843, TKS835, TKS833, TKS843
-----
----- 3: partner_*=? in 833 und join : original
explain plan set queryno = 3 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3 AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
;
----- 5: partner_*=? in 835 und join
explain plan set queryno = 5 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
oA1P.VKS843A1V V843O
WHERE V835.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V835.PARTNER_TYPE = 3 AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
;
----- 35: partner_*=? in 833 und 835 und join: fake filtering
explain plan set queryno = 35 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3
and V835.PARTNER_KEY = ? AND V835.PARTNER_TYPE = 3
AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
;
----- 359: partner_*=? in 833 und 835 NO join
explain plan set queryno = 359 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3
and V835.PARTNER_KEY = ? AND V835.PARTNER_TYPE = 3
and V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
;
select * from plan_view5a
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
select * from cmnbatch.plan_view5a
where progname = 'WI8710'
and version in ('WS8B000786', 'WS8B000325')
and queryno in ( 241)
order by applname, progname, queryNo, timestamp, qblockno, planno
;
x
x
select * from CMNbatch.plan_view5
where queryno between 142 and 147
and progname = 'YCI017C'
order by applname, progname, timestamp, queryNo, qblockno, planno
;
x
explain plan set queryno = 111 for
select * from cmnbatch.plan_view5
-- where progname in ('XBIM33')
where progname in ('XBIM31', 'XBIM32', 'XBIM33', 'XBIM34' ,
'XBIM35', 'XBIM42')
order by applname, progname, queryNo, qblockno, planno
;
explain plan set queryno = 222 for
select * from cmnbatch.plan_view5ss
-- where progname in ('XBIM33')
where progname in ('XBIM31', 'XBIM32', 'XBIM33', 'XBIM34' ,
'XBIM35', 'XBIM42')
order by applname, progname, queryNo, qblockno, planno
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
explain plan set queryno = 111 for
UPDATE bua.TXBH111
SET ESSTATE = 3 WHERE EAUUIDMQ IN (SELECT
EAUUIDMQ FROM bua.TXBH111 WHERE EAUUIDHT = '?' )
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
set current sqlId = 'A540769';
delete from A540769.plan_table
;
explain plan set queryno = 111 for
select count(*), jobname, max(partition), min(partition)
from sysibm.syscopy c, sysibm.systablepart p
where c.dbName = p.dbName and c.tsName = p.tsname
and c.dsNum in (0, p.partition)
group by jobName
order by 1 desc
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
xelect *
from CMNBATCH.plan_view5
where progName = 'DBWK3'
order by applname, progname, queryNo, qblockno, planno
;
xelect count(*), auftrags_nummer, pm_id
from oa1t.vpw210a1V
group by auftrags_nummer, pm_id
order by 1 desc
;
--select count(*) from oa1t.TSN100A1
-- with ur
-- ;
select *
from CMNBATCH.plan_view5
where progName = 'YPW2KPI' and queryNo = 4235
order by applname, progname, queryNo, qblockno, planno
;
x
set current sqlid = 'A540769'
;
delete from plan_table where queryno in (111, 222)
;
select current timestamp from sysibm.sysdummy1
;
explain plan set queryno = 111 for
SELECT T.* FROM oa1t.VNI600A101A C
, oa1t.VNI203A101A T
WHERE T.PERENDDT >= DATE(C.CTRLTIMESTMPFROM)
AND C.CTRLID = 'NI6220R'
;
select current timestamp from sysibm.sysdummy1
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
explain plan set queryno = 222 for
WITH NI600 (PERENDDT) AS
(SELECT DATE(C.CTRLTIMESTMPFROM) AS ENDDT
FROM oa1t.VNI600A101A C
WHERE C.CTRLID = 'NI6220R'
)
SELECT T.* FROM NI600
,oa1t.VNI203A101A T
WHERE T.PERENDDT >= NI600.PERENDDT
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
select * from plan_view5
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
x
select *
from cmnbatch.plan_view5
where progName = 'YRPNIMP' and queryNo = 866
order by applname, progname, queryNo, qblockno, planno
;
x
d.bType, p.collid, p.Name, p.version,
p.conToken, p.timeStamp, p.type,
p.validate, p.isolation, p.valid, p.operative,
p.owner, p.qualifier
m sysibm.syspackdep d join sysibm.syspackage p
on p.location = d.dLocation and p.collid = d.dCollid
and p.name = d.dName and p.conToken = d.dConToken 2.22.129867'
re
(bQualifier, bName, bType) in
( select dbName, name, 'R'
from sysIbm.sysTablespace
where dbName in ('NF01A1A', 'NF02A1A', 'NF03A1A')
)
from gdb0283.vnz240a1v
where SearchValue01 = ?
-- dec(SearchValue01,15,3) = ?
and CreateDateTime < ?
and dec(SearchValue02,15,3) >= ?
and dec(SearchValue02,15,3) <= ?
and Objtype ^= 'PORDSPLT'
order by CreateDateTime
fetch first 101 rows only
optimize for 101 rows
with ur
;
select * from plan_view5A
where queryno = 999
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
select * from plan_table
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
}¢--- A540769.WK.SQL(EXPLAISU) cre=2012-01-24 mod=2012-01-24-17.11.09 A540769 ---
--- temporary explain --------------------------------------------------00000100
set current sqlid = 'A540769'; 00000200
delete from A540769.plan_table; 00000300
delete from A540769.DSN_STATEMNT_TABLE; 00000400
delete from A540769.DSN_DetCost_TABLE ; 00000500
delete from A540769.dsn_filter_Table ; 00000600
delete from A540769.dsn_predicat_table; 00000700
00000801
EXPLAIN ALL SET QUERYNO = 1 FOR 00003900
( 00004000
SELECT 00004100
SU201_INDEX, 00004200
SU201_PROGRAM_PATH, 00005000
SU201_MODULE_NAME, 00006000
SU201_INFO_OBJECT, 00007000
SU201_VARIANT, 00008000
SU201_LAST_UPDATE, 00009000
SU201_PID, 00009100
SU201_COMMENT 00009200
FROM 00009300
OA1A.TSU201A1 00009400
WHERE 00009500
SU201_PROGRAM_PATH = '/WP5020' OR 00009600
SU201_PROGRAM_PATH IN 00009700
( 00009800
SELECT(SU203_GROUP_PATH) 00009900
FROM 00010000
OA1A.TSU203A1 00010100
WHERE 00010200
SU201_PROGRAM_PATH = '/WP5020' 00010300
) 00010400
) 00010500
UNION 00010600
( 00010700
SELECT 00010800
SU201_INDEX, 00010900
SU201_PROGRAM_PATH, 00011000
SU201_MODULE_NAME, 00011100
SU201_INFO_OBJECT, 00011200
SU201_VARIANT, 00011300
SU201_LAST_UPDATE, 00011400
SU201_PID, 00011500
SU201_COMMENT 00011600
FROM 00011700
OA1A.TSU201A1 00011800
WHERE 00011900
( 00012000
SU201_PROGRAM_PATH = '#Imposed' OR 00012100
SU201_PROGRAM_PATH = '#Default' 00012200
) AND 00012300
SU201_MODULE_NAME = 'YSUSIFM' 00012400
) 00012500
with UR 00012600
; 00012700
EXPLAIN ALL SET QUERYNO = 2 FOR 00013000
( 00020000
SELECT 00030000
SU201_INDEX, 00040000
SU201_PROGRAM_PATH, 00050000
SU201_MODULE_NAME, 00060000
SU201_INFO_OBJECT, 00070000
SU201_VARIANT, 00080000
SU201_LAST_UPDATE, 00090000
SU201_PID, 00100000
SU201_COMMENT 00110000
FROM 00120000
OA1A.TSU201A1 00130000
WHERE 00140000
SU201_PROGRAM_PATH = '/WP5020' 00150000
) 00160000
UNION 00170000
( 00180000
SELECT 00190000
SU201_INDEX, 00200000
SU201_PROGRAM_PATH, 00210000
SU201_MODULE_NAME, 00220000
SU201_INFO_OBJECT, 00230000
SU201_VARIANT, 00240000
SU201_LAST_UPDATE, 00250000
SU201_PID, 00260000
SU201_COMMENT 00270000
FROM 00280000
OA1A.TSU201A1 00290000
WHERE 00300000
( 00310000
SU201_PROGRAM_PATH = '#Imposed' OR 00320000
SU201_PROGRAM_PATH = '#Default' 00330000
) AND 00340000
SU201_MODULE_NAME = 'YSUSIFM' 00350000
) 00360000
with ur 00370000
; 00380000
select * from plan_view1 00400000
order by -- collid, progName, version, bind_time, 00410000
queryNo, qblockno, planno, mixOpSeq 00420000
; 00430000
select * from plan_view2 00440000
order by -- collid, progName, version, bind_time, 00450000
queryNo, qblockno, planno, mixOpSeq 00460000
; 00470000
select * from plan_view2det 00480000
order by -- collid, progName, version, bind_time, 00490000
queryNo, qblockno, planno, mixOpSeq 00500000
; 00510000
select * 00520000
from plan_viewPred 00530000
order by --collid, progName, applName, explain_time, 00540000
queryNo, qBlockNo, planno, 00550000
stage, predNo 00560000
with ur 00570000
; 00580000
rollback 00590000
;;;; 00600000
}¢--- A540769.WK.SQL(EXPLAISV) cre=2012-01-26 mod=2012-01-26-09.51.21 A540769 ---
--- ausgewählte Explains analysieren 00100001
select * 00110001
-- from cmnbatch.plan_view1 00120001
from cmnbatch.plan_view2 00130001
-- from cmnbatch.plan_view2Det 00140001
where collid = 'SV' 00150001
and progName = 'YSV016G' 00160001
and bind_time in('2012-01-26-09.48.56.445311' 00170007
,'2011-08-12-23.50.33.890848' 00180001
) 00190001
order by collid, progName, version, bind_time, 00200001
queryno, qBlockNo, planno, mixopSeq 00210001
; 00220002
select * 00230002
from cmnbatch.plan_viewPred 00240002
where collid = 'SV' 00250002
and progName = 'YSV016G' 00260002
and bind_time in('2012-01-26-09.48.56.445311' 00270006
,'2011-08-12-23.50.33.890848' 00280002
) 00290002
order by collid, progName, applName, bind_time, 00300002
queryNo, qBlockNo, planno, 00310002
stage, predNo 00320002
with ur 00330002
;; 00340006
--- temporary explain --------------------------------------------------00350006
set current sqlid = 'A540769'; 00360006
delete from A540769.plan_table; 00370006
delete from A540769.DSN_STATEMNT_TABLE; 00380006
delete from A540769.DSN_DetCost_TABLE ; 00390006
delete from A540769.dsn_filter_Table ; 00400006
delete from A540769.dsn_predicat_table; 00410006
explain plan set queryno = 3 for 00420006
SELECT ID, CIFNO, BUID, ORDERNO, TXTYPE, 00430006
BOOKINGDATE, VALUEDATE, ACNO, TXCYCDCS, ACCYCDCS, FUCYCDCS, FEEBESL, 00440006
VATBESL, FEEAMNTTXCY, FEEAMNTACCY, FEEAMNTFUCY, VATAMNTTXCY, 00450006
VATAMNTACCY, VATAMNTFUCY, VATPERCENT, XRATETXFU, XRATETXAC, XRATEACFU, 00460006
PRODUCTCON, PRODUCTNO, PRICEMDMCD, PRICECMPNTNO, MUTATIONTMSTMP, 00470006
MUTATINGINST 00480006
FROM oa1p.TSV016A1 00490006
WHERE CIFNO = ? AND ID > ? AND (VALUEDATE 00500006
>= ? AND VALUEDATE <= ?) ORDER BY ID ASC 00510006
; 00520006
select * from plan_view1 00530006
order by -- collid, progName, version, bind_time, 00540006
queryNo, qblockno, planno, mixOpSeq 00550006
; 00560006
select * from plan_view2 00570006
order by -- collid, progName, version, bind_time, 00580006
queryNo, qblockno, planno, mixOpSeq 00590006
; 00600006
select * from plan_view2det 00610006
order by -- collid, progName, version, bind_time, 00620006
queryNo, qblockno, planno, mixOpSeq 00630006
; 00640006
select * 00650006
from plan_viewPred 00660006
order by --collid, progName, applName, explain_time, 00670006
queryNo, qBlockNo, planno, 00680006
stage, predNo 00690006
with ur 00700006
; 00710006
rollback 00720006
; 00730006
--- versionen, compiles und explains eines packages ------------------ 00740006
select * 00750006
from cmnbatch.plan_view0 00760006
where collid = 'SV' 00770006
and prog = 'YSV016G' 00780006
order by pcBi desc, bind_Time desc 00790006
with ur 00800006
;;; 00810006
}¢--- A540769.WK.SQL(EXPLAIUU) cre=2011-02-11 mod=2011-02-11-13.00.33 A540769 ---
set current sqlid = 'A540769';
set current schema = 'OA1T';
select count(*), UU100020
from tuu100a2
group by UU100020
order by 1 desc
fetch first 10 rows only
with ur
;;;
delete from A540769.plan_table;
explain plan set queryno = 1 for
select CURRENT DATE - (?+0) DAYS
from sysibm.sysDummy1
;
explain plan set queryno = 991 for
SELECT UU290090, UU100010,
UU100020, UU100060, '1' AS UEUE_ART from TUU140A2 B,
TUU100A2 C, TUU290A2 D, tUU130A2 E,
TUU135A2 F WHERE
UU140040 IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?) AND UU130100 IN (?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?) AND UU130110 IN (?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?) AND UU140010 =
UU100010 AND UU130020 LIKE ? AND UU130260 LIKE ? AND
UU130270 LIKE ? AND UU100030 < CURRENT DATE - (?+0) DAYS AND
UU100030 > CURRENT DATE - (?+0) DAYS AND UU100060 < 5 AND
UU100240 IN (?, ?, ?) AND UU100020 = UU130010 AND
UU100010 = UU290010 AND UU135010 = UU100010 AND
UU135060 = 'A' AND UU135100 IN ('1', '3') AND UU135170
= ? AND UU290090 >= ? AND UU290090 <= ? AND UU290020 =
(SELECT MAX (UU290020) from TUU290A2 WHERE UU290010 =
C.UU100010)
UNION SELECT UU290090, UU100010, UU100020,
UU100060, '2' AS UEUE_ART from TUU140A2 B, TUU100A2 C,
tUu290A2 D, tUu130A2 E, tUu135A2 F
WHERE UU140040 IN (?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
AND UU130100 IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?) AND UU130110 IN (?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
AND UU140010 = UU100010 AND UU130020 LIKE ? AND
UU130260 LIKE ? AND UU130270 LIKE ? AND UU100030 <
CURRENT DATE - (?+0) DAYS AND UU100030 > CURRENT DATE - (?+0)
DAYS AND UU100060 < 5 AND UU100240 IN (?, ?, ?) AND
UU100020 = UU130010 AND UU100010 = UU290010 AND UU135010
= UU100010 AND UU135060 = 'A' AND UU135100 IN ('1',
'3') AND UU135170 = ? AND UU290090 >= ? AND
UU290090 <= ? AND UU290020 = (SELECT MAX (UU290020) from
TUU290A2 WHERE UU290010 = C.UU100010) UNION SELECT
UU290090, UU100010, UU100020, UU100060, '3' AS UEUE_ART
from TUU140A2 B, tUu100A2 C, tUu290A2 D,
tUu130A2 E,
tUu135A2 F WHERE UU140040 IN (?, ?, ?, ?, ?, ?, ?,
?, ?, ?) AND UU130100 IN (?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) AND
UU130110 IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?) AND UU140010 = UU100010 AND UU130020 LIKE
? AND UU130260 LIKE ? AND UU130270 LIKE ? AND
UU100030 < CURRENT DATE - (?+0) DAYS AND UU100030 > CURRENT
DATE - (?+0) DAYS AND UU100060 < 5 AND UU100240 IN (?, ?,
?) AND UU100020 = UU130010 AND UU100010 = UU290010 AND
UU135010 = UU100010 AND UU135060 = 'A' AND UU135100 IN
('1', '3') AND UU135170 = ? AND UU290090 >= ? AND
UU290090 <= ? AND UU290020 = (SELECT MAX (UU290020) from
TUU290A2 WHERE UU290010 = C.UU100010) UNION SELECT
UU290090, UU100010, UU100020, UU100060, '4' AS UEUE_ART
from TUU140A2 B, tUu100A2 C, tUu290A2 D,
tUu130A2 E,
tUu135A2 F WHERE UU140040 IN (?, ?, ?, ?, ?, ?, ?,
?, ?, ?) AND UU130100 IN (?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) AND
UU130110 IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?) AND UU140010 = UU100010 AND UU130020 LIKE
? AND UU130260 LIKE ? AND UU130270 LIKE ? AND
UU100030 < CURRENT DATE - (?+0) DAYS AND UU100030 > CURRENT
DATE - (?+0) DAYS AND UU100060 < 5 AND UU100240 IN (?, ?,
?) AND UU100020 = UU130010 AND UU100010 = UU290010 AND
UU135010 = UU100010 AND UU135060 = 'A' AND UU135100 IN
('1', '3') AND UU135170 = ? AND UU290090 >= ? AND
UU290090 <= ? AND UU290020 = (SELECT MAX (UU290020) from
TUU290A2 WHERE UU290010 = C.UU100010) UNION SELECT
UU290090, UU100010, UU100020, UU100060, '5' AS UEUE_ART
from TUU140A2 B, tUu100A2 C, tUu290A2 D,
tUu130A2 E,
tUu135A2 F WHERE UU140040 IN (?, ?, ?, ?, ?, ?, ?,
?, ?, ?) AND UU130100 IN (?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) AND
UU130110 IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?) AND UU140010 = UU100010 AND UU130020 LIKE
? AND UU130260 LIKE ? AND UU130270 LIKE ? AND
UU100030 < CURRENT DATE - (?+0) DAYS AND UU100030 > CURRENT
DATE - (?+0) DAYS AND UU100060 < 5 AND UU100240 IN (?, ?,
?) AND UU100020 = UU130010 AND UU100010 = UU290010 AND
UU135010 = UU100010 AND UU135060 = 'A' AND UU135100 IN
('1', '3') AND UU135170 = ? AND UU290090 >= ? AND
UU290090 <= ? AND UU290020 = (SELECT MAX (UU290020) FROM
tUu290A2 WHERE UU290010 = C.UU100010) FOR FETCH ONLY
;
select * from A540769.plan_view2
order by applname, progname, queryNo, qblockno, planno, mixOpSeq
;
rollback
; original ;
FOR SELECT UU290090, UU100010, UU100020,
UU100060, '1' AS UEUE_ART FROM TUU140A2 B, TUU100A2 C, TUU290A2 D,
TUU130A2 E, TUU135A2 F WHERE UU140040 IN (?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) AND UU130100 IN
(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?) AND UU130110 IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?) AND UU140010 = UU100010 AND UU130020 LIKE ? AND
UU130260 LIKE ? AND UU130270 LIKE ? AND UU100030 < CURRENT DATE - ?
DAYS AND UU100030 > CURRENT DATE - ? DAYS AND UU100060 < 5 AND
UU100240 IN (?, ?, ?) AND UU100020 = UU130010 AND UU100010 =
UU290010 AND UU135010 = UU100010 AND UU135060 = 'A' AND UU135100 IN
('1', '3') AND UU135170 = ? AND UU290090 >= ? AND UU290090 <= ? AND
UU290020 = (SELECT MAX (UU290020) FROM TUU290A2 WHERE UU290010 =
C.UU100010) UNION SELECT UU290090, UU100010, UU100020, UU100060, '2' AS
UEUE_ART FROM TUU140A2 B, TUU100A2 C, TUU290A2 D, TUU130A2 E, TUU135A2
F WHERE UU140040 IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
AND UU130100 IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?) AND UU130110 IN (?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?) AND UU140010 = UU100010 AND
UU130020 LIKE ? AND UU130260 LIKE ? AND UU130270 LIKE ? AND UU100030
< CURRENT DATE - ? DAYS AND UU100030 > CURRENT DATE - ? DAYS AND
UU100060 < 5 AND UU100240 IN (?, ?, ?) AND UU100020 = UU130010 AND
UU100010 = UU290010 AND UU135010 = UU100010 AND UU135060 = 'A' AND
UU135100 IN ('1', '3') AND UU135170 = ? AND UU290090 >= ? AND
UU290090 <= ? AND UU290020 = (SELECT MAX (UU290020) FROM TUU290A2
WHERE UU290010 = C.UU100010) UNION SELECT UU290090, UU100010, UU100020,
UU100060, '3' AS UEUE_ART FROM TUU140A2 B, TUU100A2 C, TUU290A2 D,
TUU130A2 E, TUU135A2 F WHERE UU140040 IN (?, ?, ?, ?, ?, ?, ?,
?, ?, ?) AND UU130100 IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?) AND UU130110 IN (?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) AND UU140010 = UU100010
AND UU130020 LIKE ? AND UU130260 LIKE ? AND UU130270 LIKE ? AND
UU100030 < CURRENT DATE - ? DAYS AND UU100030 > CURRENT DATE - ? DAYS
AND UU100060 < 5 AND UU100240 IN (?, ?, ?) AND UU100020 = UU130010
AND UU100010 = UU290010 AND UU135010 = UU100010 AND UU135060 = 'A' AND
UU135100 IN ('1', '3') AND UU135170 = ? AND UU290090 >= ? AND
UU290090 <= ? AND UU290020 = (SELECT MAX (UU290020) FROM TUU290A2
WHERE UU290010 = C.UU100010) UNION SELECT UU290090, UU100010, UU100020,
UU100060, '4' AS UEUE_ART FROM TUU140A2 B, TUU100A2 C, TUU290A2 D,
TUU130A2 E, TUU135A2 F WHERE UU140040 IN (?, ?, ?, ?, ?, ?, ?,
?, ?, ?) AND UU130100 IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?) AND UU130110 IN (?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) AND UU140010 = UU100010
AND UU130020 LIKE ? AND UU130260 LIKE ? AND UU130270 LIKE ? AND
UU100030 < CURRENT DATE - ? DAYS AND UU100030 > CURRENT DATE - ? DAYS
AND UU100060 < 5 AND UU100240 IN (?, ?, ?) AND UU100020 = UU130010
AND UU100010 = UU290010 AND UU135010 = UU100010 AND UU135060 = 'A' AND
UU135100 IN ('1', '3') AND UU135170 = ? AND UU290090 >= ? AND
UU290090 <= ? AND UU290020 = (SELECT MAX (UU290020) FROM TUU290A2
WHERE UU290010 = C.UU100010) UNION SELECT UU290090, UU100010, UU100020,
UU100060, '5' AS UEUE_ART FROM TUU140A2 B, TUU100A2 C, TUU290A2 D,
TUU130A2 E, TUU135A2 F WHERE UU140040 IN (?, ?, ?, ?, ?, ?, ?,
?, ?, ?) AND UU130100 IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?) AND UU130110 IN (?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) AND UU140010 = UU100010
AND UU130020 LIKE ? AND UU130260 LIKE ? AND UU130270 LIKE ? AND
UU100030 < CURRENT DATE - ? DAYS AND UU100030 > CURRENT DATE - ? DAYS
AND UU100060 < 5 AND UU100240 IN (?, ?, ?) AND UU100020 = UU130010
AND UU100010 = UU290010 AND UU135010 = UU100010 AND UU135060 = 'A' AND
UU135100 IN ('1', '3') AND UU135170 = ? AND UU290090 >= ? AND
UU290090 <= ? AND UU290020 = (SELECT MAX (UU290020) FROM TUU290A2
WHERE UU290010 = C.UU100010) FOR FETCH ONLY
;
}¢--- A540769.WK.SQL(EXPLAIU0) cre=2011-11-14 mod=2011-11-14-20.42.11 A540769 ---
--- versionen, compiles und explains eines packages -------------------
select *
from cmnbatch.plan_view0
where collid = 'UU'
and prog = 'YUU1016'
order by pcBi desc, bind_Time desc
with ur
;
--- ausgewählte Explains analysieren
select *
-- from cmnbatch.plan_view1
-- from cmnbatch.plan_view2
from cmnbatch.plan_view2Det
where collid = 'UU'
and progName = 'YUU1016'
and bind_time = '2011-08-11-12.20.58.014422'
order by collid, progName, version, bind_time,
queryno, qBlockNo, planno, mixopSeq
with ur
;
select *
from cmnbatch.plan_viewPred
where collid = 'UU'
and progName = 'YUU1016'
and bind_time = '2011-08-11-12.20.58.014422'
order by collid, progName, applName, bind_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
}¢--- A540769.WK.SQL(EXPLAIU1) cre=2011-11-11 mod=2011-11-11-10.12.11 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
select UU612010
,UU612020
,UU612030
,UU612040
,UU612050
,UU612060
,UU612070
,UU612080
,UU612090
,UU612100
,UU600040
,UU600080
,UU600090
,UU600100
from oa1t.TUU612A2
, oa1t.TUU600A2
where UU612010 = ?
and UU612020 = ?
and UU612030 = ?
and UU600010 = UU612010
and UU600020 = UU612020
and UU600030 = UU612030
and (UU612070 * 30) + UU612080 >= 0
and UU612050 = ?
order by UU612070 desc
,UU612080 desc
for fetch only
;
select * from plan_view1
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by --collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAIU2) cre=2011-11-11 mod=2011-11-11-10.18.07 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
select value(count(*),0)
from oa1t.tui200a1 a
left join oa1t.tui310a1 b
on( a.i_id_unit = b.i_id_unit
and a.i_id_cltrl = b.i_id_cltrl)
where a.i_id_unit = ?
and a.i_id_cstmr = ?
and a.f_omnbs = 1
and b.i_id_unit is null
and b.i_id_cltrl is null
;
select * from plan_view1
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by --collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAIU3) cre=2011-11-11 mod=2011-11-11-10.24.17 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
select value(sum(xx.a_lndng_vle_rep),0)
from
(select distinct a.a_lndng_vle_rep as a_lndng_vle_rep
, a.i_id_cltrl as i_id_cltrl
from oa1t.tui200a1 a
, oa1t.tui310a1 b
where a.i_id_unit = ?
and a.i_id_unit = b.i_id_unit
and a.i_id_cltrl = b.i_id_cltrl
and a.i_id_cstmr = ?
and a.i_id_cstmr ^= b.i_id_cstmr_crdt) as xx
;
select * from plan_view1
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by --collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAIU4) cre=2011-11-11 mod=2011-11-11-10.40.06 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
select value(TRV400.I_UP , '***')
,value(TRV400.I_ID_UP , -999999999999999)
,value(TRV110.I_PRTNR , '***')
-- ,value(TempTab.partnerCSID , -999999999999999)
-- ,value(TempTab.reportingDate, '31.12.9999')
,value(TRV110.I_ID_RM , '***')
,value(TRV110.I_ID_CSP , '***')
from oa1t.TRV400A1 TRV400
left outer join oa1t.TRV110A1 TRV110
on TRV400.I_UP = TRV110.I_UP
-- left outer join session.t_reportingData TempTab
-- on TRV110.I_PRTNR = TempTab.partnerUUID
where TRV400.I_UP = ?
order by 5 asc
for fetch only
;
select * from plan_view1
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by --collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAIVA) cre=2012-04-22 mod=2012-04-22-15.41.40 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
DECLARE GLOBAL TEMPORARY TABLE SESSION.XTGLOBAL (TEMP_DBKEY INTEGER NOT
NULL, OUT_IDSYMBOL_1 CHAR (30) WITH DEFAULT NULL, OUT_SCHEMESYMBOL_1
CHAR (30) WITH DEFAULT NULL, OUT_IDSYMBOL_2 CHAR (30) WITH DEFAULT
NULL, OUT_IDSYMBOL_3 CHAR (30) WITH DEFAULT NULL, OUT_INPUT_3 CHAR
(150) WITH DEFAULT NULL, OUT_INPUT_4 CHAR (30) WITH DEFAULT NULL,
OUT_INPUT_5 CHAR (30) WITH DEFAULT NULL) ON COMMIT PRESERVE ROWS
;
explain plan set queryno = 3 for
--- : YVV3250 191A870D1E62017A
-- Last page referenced: WKDBDOF2 DSN32K01 PAGE: X'0000064A'
-- Collection ID: VV
SELECT OUT_IDSYMBOL_1,OUT_SCHEMESYMBOL_1,IDSYMBOL_RATING,RATINGDATE
FROM SESSION.XTGLOBAL INNER JOIN oa1p.VVV_IDS_VISRG319 v ON
V.INSTRUMENTID = SESSION.XTGLOBAL.TEMP_DBKEY AND
V.SCHEME_RATING = 'SPSICRLC' AND V.ROLetype
= 25 WITH UR FOR FETCH ONLY;
select * from plan_view1
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by --collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAIVV) cre=2010-12-10 mod=2013-02-27-16.08.54 A540769 ---
set current path = OA1T;
set current sqlid = 'A540769';
delete from plan_table;
delete from dsn_filter_table;
delete from dsn_predicat_table;
delete from dsn_detcost_table;
delete from dsn_query_table;
EXPLAIN ALL SET QUERYNO=300 FOR
SELECT SYMBOLCSFI,EVENTFUNCTIONTYPE,EFFECTIVEDATE,PROVIDERID,
SYMBOLCH,SYMBOLISIN,CSEXDATE,PAYMENTSTATUSTYPE,VALIDATIONTYPE,
RECORDDATE,ASSEMBLYDATE,DESCRIPTION_E,DESCRIPTION_F,DESCRIPTION_G,
DESCRIPTION_I,DESCRIPTION_N,PHYSICALSECURITYNO,INTERESTCALCTYPE,
ENTITLEBEGINDATE,ENTITLEENDDATE,ENTITLETIMENO,ENTITLETIMEUNITTP,
IRREGULARCPNTYPE,DIVIOCCURENCETYPE,DIVIDENDTYPE,HOSTLINKID,
BUSINESSTYPE,TYPEX,CSEVENTSTATUSTYPE,CSDESCRIPTION,
INFORMATIONSOURCE,ORGANISATIONALUNIT,USERID,USERTELEPHONENUM,
HASNOTIFICATION,ISVALIDRANGEEXDEPO,ISVALIDRANGEPRESEN,CSEVENTID
FROM OA1T.VVV_IDS_STD842_V02 A WHERE A.CATEGORYVDPS
BETWEEN '1' AND '99' AND A.CATEGORYVDPS NOT IN ('7','18') AND
A.STATUSTYPE <> 5 AND A.ROWSTATUS = 1 AND A.INFOCUSTYPE IN (1,2,3)
AND A.EVENTFUNCTIONTYPE IN (6,7,10,11,15,20,32,33,36,37,38,89,90,91)
WITH UR FOR FETCH ONLY
;
select * from plan_view1
-- where queryNo = 322
order by applname, progname, queryNo, qblockno, planno, mixopseq
;
select * from plan_view2
-- where queryNo = 322
order by applname, progname, queryNo, qblockno, planno, mixopseq
;
select * from plan_view2Det
-- where queryNo = 322
order by applname, progname, queryNo, qblockno, planno, mixopseq
;
select *
from plan_viewPred
order by collid, progName, applName, explain_time,
queryNo, qBlockNo, planno, mixOpSeqNo,
stage, orderNo
; rollback ;x;
with r as
(
select instrumentid,
row_number() over (order by instrumentid) row
from VDPS2.VTINSTRFLATDATA
)
select *
from r
where mod(row, 4000000) = 0
with ur
;;;;
select count(*), min(instrumentid), max(instrumentid)
from VDPS2.VTINSTRFLATDATA
group by floor(real(instrumentid/10000000))
order by min(instrumentid)
with ur
;;;;
select count(*), min(instrumentid), max(instrumentid)
from VDPS2.VTINSTRFLATDATA
group by floor(real(instrumentid/10000000))
order by min(instrumentid)
with ur
;;;;
select mc_o, substr(accessName, 1, 25),
k.colSeq, substr(k.colName, 1, 25), k.ordering,
v.*
from cmnbatch.plan_view1 v
LEft join sysibm.sysKeys k
on k.ixCreator in ('VDPS2', 'OA1T')
and k.ixName = v.accessName
where progName = 'YVVZZ19'
and bind_time >= '2011-08-12-23.47.31.260807'
and queryno = 376
order by collid, progName, applName, bind_time desc,
queryNo, qBlockNo, planno
, k.colSeq
;;;;
set current path = oA1P;
set current sqlid = 'A540769';
delete from plan_table;
delete from dsn_filter_table;
delete from dsn_predicat_table;
delete from dsn_detcost_table;
delete from dsn_query_table;
EXPLAIN ALL SET QUERYNO=300 FOR
SELECT SYMBOLCSFI,EVENTFUNCTIONTYPE,EFFECTIVEDATE,PROVIDERID,SYMBOLCH,
SYMBOLISIN,CSEXDATE,PAYMENTSTATUSTYPE,VALIDATIONTYPE,RECORDDATE,
ASSEMBLYDATE,DESCRIPTION_E,DESCRIPTION_F,DESCRIPTION_G,DESCRIPTION_I,
DESCRIPTION_N,PHYSICALSECURITYNO,INTERESTCALCTYPE,ENTITLEBEGINDATE,
ENTITLEENDDATE,ENTITLETIMENO,ENTITLETIMEUNITTP,IRREGULARCPNTYPE,
DIVIOCCURENCETYPE,DIVIDENDTYPE,HOSTLINKID,BUSINESSTYPE,TYPEX,
CSEVENTSTATUSTYPE,CSDESCRIPTION,INFORMATIONSOURCE,ORGANISATIONALUNIT,
USERID,USERTELEPHONENUM,HASNOTIFICATION,ISVALIDRANGEEXDEPO,
ISVALIDRANGEPRESEN
FROM oA1P.VVV_IDS_STD842
WHERE CATEGORYVDPS BETWEEN '1' AND '99'
AND CATEGORYVDPS NOT IN ('7','18')
AND STATUSTYPE <> 5
AND ROWSTATUS = 1
AND INFOCUSTYPE IN (1,2,3)
AND EVENTFUNCTIONTYPE
IN (6,7,10,11,15,20,32,33,36,37,38)
WITH UR FOR FETCH ONLY
;
EXPLAIN ALL SET QUERYNO=311 FOR
SELECT SYMBOLCSFI,EVENTFUNCTIONTYPE,EFFECTIVEDATE,PROVIDERID,SYMBOLCH,
SYMBOLISIN,CSEXDATE,PAYMENTSTATUSTYPE,VALIDATIONTYPE,RECORDDATE,
ASSEMBLYDATE,DESCRIPTION_E,DESCRIPTION_F,DESCRIPTION_G,DESCRIPTION_I,
DESCRIPTION_N,PHYSICALSECURITYNO,INTERESTCALCTYPE,ENTITLEBEGINDATE,
ENTITLEENDDATE,ENTITLETIMENO,ENTITLETIMEUNITTP,IRREGULARCPNTYPE,
DIVIOCCURENCETYPE,DIVIDENDTYPE,HOSTLINKID,BUSINESSTYPE,TYPEX,
CSEVENTSTATUSTYPE,CSDESCRIPTION,INFORMATIONSOURCE,
ORGANISATIONALUNIT,USERID,USERTELEPHONENUM,HASNOTIFICATION,
ISVALIDRANGEEXDEPO,ISVALIDRANGEPRESEN FROM oA1P.VVV_IDS_STD842
WHERE oA1P.VVV_IDS_STD842.CATEGORYVDPS BETWEEN '1' AND '99'
AND oA1P.VVV_IDS_STD842.CATEGORYVDPS NOT IN ('7','18')
AND oA1P.VVV_IDS_STD842.INSTRUMENTUPDATETIMESTAMP >= '2011041306000000'
AND oA1P.VVV_IDS_STD842.INSTRUMENTUPDATETIMESTAMP < '2011041410562200'
AND oA1P.VVV_IDS_STD842.INFOCUSTYPE IN (1,2,3)
AND oA1P.VVV_IDS_STD842.EVENTFUNCTIONTYPE IN
(6,7,10,11,15,20,32,33,36,37,38)
with UR for fetch only
;
EXPLAIN ALL SET QUERYNO=322 FOR
SELECT SYMBOLCSFI,EVENTFUNCTIONTYPE,EFFECTIVEDATE,PROVIDERID,
CFAMOUNTTYPE,SYMBOLCH,SYMBOLISIN,PAYMENTSTATUSTYPE,ACTUALAMOUNT,
ACTUALEXERCISETP,AMOUNTQUOTATIONTP,DRAWDATE,MAXAMORTIZQUOTETP,
ENTITLEDPERSONTP,REASONTYPE,TERMCHANGETYPE,MAXNOTICEPERIOD,
MINNOTICEPERIOD,NOTICEPERIODUNITP,NOMINALAFTERREDUCT,
NOMINALREDUCTION,REPAYCURRENCY_I1,REPAYCURRENCY_I2,
REPAYCURRENCY_WS80,PLANNEDPAYRATE,SETTLESTYLETYPE,
PLANNEDPAYAMOUNT,PLANNEDPAYINSTR_I1,PLANNEDPAYINSTR_I2,
PLANNEDPAYINSTR_WS80,PLANNEDBEGINDATE,PLANNEDENDDATE,
PAYAMOUNT,PAYINSTRUMENT_I1,PAYINSTRUMENT_I2,
PAYINSTRUMENT_WS80,PAYRATE FROM oA1P.VVV_IDS_STD856
WHERE oA1P.VVV_IDS_STD856.CATEGORYVDPS BETWEEN '1' AND '99'
AND oA1P.VVV_IDS_STD856.CATEGORYVDPS NOT IN ('7','18')
AND oA1P.VVV_IDS_STD856.INSTRUMENTUPDATETIMESTAMP >= '2011041306000000'
AND oA1P.VVV_IDS_STD856.INSTRUMENTUPDATETIMESTAMP < '2011041410562200'
AND oA1P.VVV_IDS_STD856.EVENTFUNCTIONTYPE IN (2,3,9,17,26,39)
AND oA1P.VVV_IDS_STD856.PROVIDERTYPE = 1
WITH UR FOR FETCH ONLY ;
EXPLAIN ALL SET QUERYNO=801 FOR
select count(*) from sysibm.sysTables
where tsName = 'A001' ;
EXPLAIN ALL SET QUERYNO=802 FOR
select count(*) from sysibm.sysTables
where case when tsName = 'A001' then 1 else 0 end = 1;
select * from plan_view1
-- where queryNo = 322
order by applname, progname, queryNo, qblockno, planno, mixopseq
;
select * from plan_view2
-- where queryNo = 322
order by applname, progname, queryNo, qblockno, planno, mixopseq
;
select * from plan_view2Det
-- where queryNo = 322
order by applname, progname, queryNo, qblockno, planno, mixopseq
;
select *
from plan_viewPred
order by collid, progName, applName, explain_time,
queryNo, qBlockNo, planno, mixOpSeqNo,
stage, orderNo
;
commit;
;;;;
select count(*), INSTRUMENTID
, INSTRUMENTEVENTNO
from vdps2. VTCASHFLOWAMOUNT
group by INSTRUMENTID
, INSTRUMENTEVENTNO
order by 1 desc
with ur
;
;;;;
rollback
EXPLAIN ALL SET QUERYNO=300 FOR
SELECT T1.INSTRUMENTID, T1.SYMBOLCSFI, T2.EVENTFUNCTIONTYPE,
T2.EFFECTIVEDATE, T1.SYMBOLCH, T1.SYMBOLISIN,
T1.CATEGORYVDPS, T1.ROWSTATUS, T1.STATUSTYPE,
T1.INSTRUMENTUPDATETIMESTAMP, T2.CSEXDATE,
T2.PAYMENTSTATUSTYPE, T2.VALIDATIONTYPE, T2.RECORDDATE,
T2.PROVIDERTYPE, (CASE
WHEN T2.PROVIDER3ID IS NULL THEN T2.PROVIDER1ID ELSE T2.
PROVIDER3ID END) AS PROVIDERID, T2.ASSEMBLYDATE,
T2.DESCRIPTION_E, T2.DESCRIPTION_F, T2.DESCRIPTION_G,
T2.DESCRIPTION_I, T2.DESCRIPTION_N, T2.PHYSICALSECURITYNO,
T2.IDSYMBOL HOSTLINKID, T2.BUSINESSTYPE, T2.TYPEX,
T2.CSEVENTSTATUSTYPE, T2.CSDESCRIPTION,
T2.INFORMATIONSOURCE, T2.ORGANISATIONALUNIT, T2.USERID,
T2.USERTELEPHONENUM, T2.HASNOTIFICATION,
T2.ISVALIDRANGEEXDEPO, T2.ISVALIDRANGEPRESEN,
T2.INFOCUSTYPE, T3.INTERESTCALCTYPE, T3.ENTITLEBEGINDATE,
T3.ENTITLEENDDATE, T3.ENTITLETIMENO, T3.ENTITLETIMEUNITTP,
T3.IRREGULARCPNTYPE, T3.DIVIOCCURENCETYPE, T3.DIVIDENDTYPE
FROM VDPS2.VTINSTRUMENTEVENT T2
INNER JOIN
VDPS2.VTINSTRFLATSYMBOLS T1
ON T1.INSTRUMENTID = T2.INSTRUMENTID
INNER JOIN
VDPS2.VTCASHFLOW T3
ON T3.INSTRUMENTID = T2.INSTRUMENTID AND T3.
INSTRUMENTEVENTNO = T2.INSTRUMENTEVENTNO
WHERE T2.INFOCUSTYPE IN (1,2,3) AND
T2.EVENTFUNCTIONTYPE IN (6,7,10,11,15,20,32,33,36,37,38) AND
DAYS(CURRENT DATE) -
DAYS(DATE(T1.INSTRUMENTUPDATETIMESTAMP)) <= 1 AND
T1.CATEGORYVDPS BETWEEN '1' AND '99' AND
T1.CATEGORYVDPS NOT IN ('7','18')
WITH UR FOR FETCH ONLY
;
select * from plan_view2
order by applname, progname, queryNo, qblockno, planno
;
rollback
;x;
explain plan set queryno = 2 for
SELECT * FROM oA1P.VVV_IDS_STD842
WHERE INFOCUSTYPE IN (1,2,3)
AND EVENTFUNCTIONTYPE IN (6,7,10,11,15,20,32,33,36,37,38)
;
explain plan set queryno = 1 for
SELECT * FROM oA1P.VVV_IDS_STD843
WHERE INFOCUSTYPE IN (1,2,3)
AND EVENTFUNCTIONTYPE IN (6,7,10,11,15,20,32,33,36,37,38)
SELECT * FROM oA1P.VVV_IDS_STD844
WHERE INFOCUSTYPE IN (1,2,3)
AND EVENTFUNCTIONTYPE IN (6,7,10,11,15,20,32,33,36,37,38)
select *
from oA1P.TWP703A101
where
left(wp70302e, 5) in ('BFTBB','WPSPM') and
wp70302q >= ? and
wp70302q <= ? and
wp70306 in (? ,?)
;
explain plan set queryno = 1 for
select *
from oA1P.TWP703A101
where
substr(wp70302e,1,5) in ('BFTBB','WPSPM') and
wp70302q >= ? and
wp70302q <= ? and
wp70306 in (? ,?)
;
explain plan set queryno = 2 for
select *
from oA1P.TWP703A102
where
substr(wp70302e,1,5) in ('BFTBB','WPSPM') and
wp70302q >= ? and
wp70302q <= ? and
wp70306 in (? ,?)
;
explain plan set queryno = 3 for
select *
from oA1P.TWP703A103
where
substr(wp70302e,1,5) in ('BFTBB','WPSPM') and
wp70302q >= ? and
wp70302q <= ? and
wp70306 in (? ,?)
;
explain plan set queryno = 4 for
select *
from oA1P.TWP703A104
where
substr(wp70302e,1,5) in ('BFTBB','WPSPM') and
wp70302q >= ? and
wp70302q <= ? and
wp70306 in (? ,?)
;
explain plan set queryno = 5 for
select *
from oA1P.TWP703A105
where
substr(wp70302e,1,5) in ('BFTBB','WPSPM') and
wp70302q >= ? and
wp70302q <= ? and
wp70306 in (? ,?)
;
explain plan set queryno = 6 for
select *
from oA1P.TWP703A106
where
substr(wp70302e,1,5) in ('BFTBB','WPSPM') and
wp70302q >= ? and
wp70302q <= ? and
wp70306 in (? ,?)
;
explain plan set queryno = 7 for
select *
from oA1P.TWP703A107
where
substr(wp70302e,1,5) in ('BFTBB','WPSPM') and
wp70302q >= ? and
wp70302q <= ? and
wp70306 in (? ,?)
;
select * from s100447.plan_view1
where progName in ('YWPLXL3') and collid = 'A540769'
-- and bind_time = '2010-07-18-22.01.54.199935'
order by applname, progname, queryNo, qblockno, planno,
bind_time, tname
;x;
select * from cmnbatch.dsn_statemnt_table
where progName in ('YWPLXL3')
and explain_time = '2010-07-18-22.01.54.199935'
-- order by applname, progname, queryNo, qblockno, planno
;x;
select '4', count(*), sum(case when substr(wp70302e,1,5)
in ('BFTBB','WPSPM') then 1 else 0 end)
from oA1P.TWP703A104
union all select '5', count(*), sum(case when substr(wp70302e,1,5)
in ('BFTBB','WPSPM') then 1 else 0 end)
from oA1P.TWP703A105
with ur
;;
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 1 for
SELECT * FROM A540769.VMFNVEXT
WHERE MF150023 > '038 ' AND MF150023 <= '052 '
WITH UR
;
explain plan set queryno = 2 for
SELECT * FROM A540769.VMFNVPART
WHERE MF150023 > '052 ' AND MF150023 <= '057 '
;
explain plan set queryno = 3 for
select t.*, i.mf150Hash
from oA1P.tmf150a1 t, A540769.tmfnvPart i
where t.mf150013 = i.mf150013
and t.mf150023 = i.mf150023
and i.part = 1
order by i.MF150023 ASC,
i.MF150013 DESC
;
explain plan set queryno = 4 for
select t.*, i.mf150Hash
from oA1P.tmf150a1 t, A540769.tmfnvPart i
where t.mf150013 = i.mf150013
and t.mf150023 = i.mf150023
and t.MF150082 = ' '
and i.part = 1
order by i.MF150023 ASC,
i.MF150013 DESC
;
--explain plan set queryno = 7 for
--ect s.*
-- from tstRts.tsIxStats S
-- where db like 'MF%' and ts like 'A1%1%' and part in (0,1,5,7,9)
-- order by db, ts, part
--
--ect current timestamp from sysibm.sysdummy1;
--lect s.*
-- from tstRts.tsIxStats S
-- where db = 'MF01A1P' and ts like 'A1%1%' and part in (0,1,5,7,9)
-- order by db , ts -- , part
--
--lect current timestamp from sysibm.sysdummy1;
--lect s.*
-- from tstRts.tsIxStats S
-- where db like 'MF0%' and ts like 'A1%1%' and part in (0,1,5,7,9)
-- order by db , ts -- , part
--
select current timestamp from sysibm.sysdummy1;
select * from plan_view2
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
select * from A540769.plan_view5
where progName in ('SV5003', 'SV5390', 'SV8240')
order by applname, progname, queryNo, qblockno, planno
;x;
select * from cmnbatch.plan_view2
where progName in ('FI5700') and version = 'BKUR000319'
order by applname, progname, queryNo, qblockno, planno
;x;
-- select * from tstRts.TrtsReoTSException;
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for
select s.*
from tstRts.VRtsReoTSSchwelle s
where db = 'MF01A1P' and ts like 'A1%1%' and part in (0,1,5,7,9)
order by db , ts -- , part
;
explain plan set queryno = 7 for
select s.*
from tstRts.tsIxStats S
where db like 'MF%' and ts like 'A1%1%' and part in (0,1,5,7,9)
order by db, ts, part
;
select current timestamp from sysibm.sysdummy1;
select s.*
from tstRts.tsIxStats S
where db = 'MF01A1P' and ts like 'A1%1%' and part in (0,1,5,7,9)
order by db , ts -- , part
;
select current timestamp from sysibm.sysdummy1;
select s.*
from tstRts.tsIxStats S
where db like 'MF0%' and ts like 'A1%1%' and part in (0,1,5,7,9)
order by db , ts -- , part
;
select current timestamp from sysibm.sysdummy1;
select * from plan_view2
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
xxx
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 1 for -- mit concat
with c as
( select mf150023 cif, mf150013 dat, count(*) cnt
from oA1P.tmf150A1
where mf150023 like '000%'
group by mf150023 , mf150013
) , h as
( select
smallint(mod(
int(
translate(
translate('08642' , hex(substr(cif , 8, 5)), '1234567890'),
'024579', 'ABCDEF'))
+ month(dat) ,11113)) h
, cnt
from c
)
, g as
( select sum(cnt) c
from h
group by h
)
, p as
( select sum(cnt) c
from h
group by floor(h/111.14)
)
select 'h', min(c) "min", max(c) "max", count(*) "count", sum(c) "sum"
from g
group by floor(log10(c) * 6)
union all
select 'p', min(c) "min", max(c) "max", count(*) "count", sum(c) "sum"
from p
group by floor(log10(c) * 6)
order by 1, 2
with ur
;
explain plan set queryno = 5 for -- mit concat
with h as
( select mf150023 cif,
smallint(mod(
int(
translate(
translate('08642' , hex(substr(mf150023 , 8, 5)), '1234567890'),
'024579', 'ABCDEF')), 9973)) t
from oA1P.tmf150A1
-- where cif like '000%'
)
, g as
( select t, count(*) c
from h
group by t
)
select sum(c), min(c), max(c), count(*) "dist c"
from g
group by floor(log10(c) * 6)
with ur
;
select * from plan_view2
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
select * from cmnBatch.plan_view5
where progName = 'YDG129'
order by applname, progname, queryNo, qblockno, planno
;
x
select * from cmnBatch.plan_view5
where progName = 'MF8500' -- and version = 'MFR0000203'
order by applname, progname, queryNo, qblockno, planno
;
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 1 for -- mit concat
SELECT RM01001,RM01002,RM01003,RM01004,RM01005,RM01006,
RM01007,RM01008,RM01009,RM01010,RM01011,RM01012,
RM01013,RM01014,RM01015,RM01016,RM01017,RM01018
FROM oA1P.TRM010A1
WHERE ? BETWEEN RM01002 AND RM01006
AND RM01015 || '' IN ('RT001','RT002','RT004',
'RT010','RT015','RT018','RT201')
ORDER BY RM01015, RM01011, RM01014, RM01002
FOR FETCH ONLY;
explain plan set queryno = 3 for -- mit or
SELECT RM01001,RM01002,RM01003,RM01004,RM01005,RM01006,
RM01007,RM01008,RM01009,RM01010,RM01011,RM01012,
RM01013,RM01014,RM01015,RM01016,RM01017,RM01018
FROM oA1P.TRM010A1
WHERE ? BETWEEN RM01002 AND RM01006
AND (RM01015 IN('RT001','RT002','RT004',
'RT010','RT015','RT018','RT201')
or 1 = 0
)
ORDER BY RM01015, RM01011, RM01014, RM01002
FOR FETCH ONLY;
explain plan set queryno = 9 for -- neu ohne or
SELECT *
FROM oA1P.TRM010A1
WHERE ? BETWEEN RM01002 AND RM01006
AND RM01015 IN('RT001','RT002','RT004',
'RT010','RT015','RT018','RT201')
ORDER BY RM01015, RM01011, RM01014, RM01002
FOR FETCH ONLY;
select * from plan_view2
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for -- alt schnell
Select MF150023,MF150067,
sum(Case when MF150055 = 'Z' then DEC(MF150019,18,3) else 0 end),
sum(Case when MF150055 = 'A' then DEC(MF150019,18,3) else 0 end)
FROM oA1P.TMF150A1
WHERE MF150066 = ' A965367'
AND MF150013 BETWEEN '01.01.2009' and '30.11.2009'
AND MF150085 BETWEEN 10 AND 89
AND MF150084 BETWEEN 10 AND 89
GROUP BY MF150023,MF150067
with ur
;
explain plan set queryno = 9 for -- neu langsam
Select MF150023,MF150067,MF150019A,
sum(Case when MF150055 = 'Z' then DEC(MF150019,18,3) else 0 end),
sum(Case when MF150055 = 'A' then DEC(MF150019,18,3) else 0 end)
FROM oA1P.TMF150A1
WHERE MF150066 = ' A965367'
AND MF150013 BETWEEN '01.01.2009' and '30.11.2009'
AND MF150085 BETWEEN 10 AND 89
AND MF150084 BETWEEN 10 AND 89
GROUP BY MF150023,MF150067,MF150019A
with ur;
select * from plan_view2
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
x
delete from plan_table;
explain plan set queryno = 3 for
SELECT SV363012
FROM oA1P.TSV361A1 JOIN oA1P.TSV363A1
ON SV361003=SV363001
WHERE SV361002=1
AND SV361008=2
AND SV361009= ?
AND(SV363007='1' OR SV363007='2')
AND(ABS(SV363010 - '01.01.2009')<30 OR ABS(SV363011
- date('01.01.2009'))<30)
ORDER BY SV363010 DESC,SV363011 DESC
;
select * from plan_view2
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
select count(*), SV363001
FROM oA1P.TSV363A1
group by SV363001
ORDER BY 1 DESC
WITH UR
;
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for
select *
from a540769.vrtsReoTs
where dbName like 'MF%'
;
select * from plan_view5a
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
----- query 1532 YXEBV2E, 30.6.09
----- Kumar Sandeep will sequenz TKS835, TKS833, TKS843, TKS843
----- seit einem Jahr bind TKS843, TKS835, TKS833, TKS843
-----
----- 3: partner_*=? in 833 und join : original
explain plan set queryno = 3 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3 AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
;
----- 5: partner_*=? in 835 und join
explain plan set queryno = 5 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
oA1P.VKS843A1V V843O
WHERE V835.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V835.PARTNER_TYPE = 3 AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
;
----- 35: partner_*=? in 833 und 835 und join: fake filtering
explain plan set queryno = 35 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3
and V835.PARTNER_KEY = ? AND V835.PARTNER_TYPE = 3
AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
;
----- 359: partner_*=? in 833 und 835 NO join
explain plan set queryno = 359 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3
and V835.PARTNER_KEY = ? AND V835.PARTNER_TYPE = 3
and V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
;
select * from plan_view5a
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
select * from cmnbatch.plan_view5a
where progname = 'WI8710'
and version in ('WS8B000786', 'WS8B000325')
and queryno in ( 241)
order by applname, progname, queryNo, timestamp, qblockno, planno
;
x
x
select * from CMNbatch.plan_view5
where queryno between 142 and 147
and progname = 'YCI017C'
order by applname, progname, timestamp, queryNo, qblockno, planno
;
x
explain plan set queryno = 111 for
select * from cmnbatch.plan_view5
-- where progname in ('XBIM33')
where progname in ('XBIM31', 'XBIM32', 'XBIM33', 'XBIM34' ,
'XBIM35', 'XBIM42')
order by applname, progname, queryNo, qblockno, planno
;
explain plan set queryno = 222 for
select * from cmnbatch.plan_view5ss
-- where progname in ('XBIM33')
where progname in ('XBIM31', 'XBIM32', 'XBIM33', 'XBIM34' ,
'XBIM35', 'XBIM42')
order by applname, progname, queryNo, qblockno, planno
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
explain plan set queryno = 111 for
UPDATE bua.TXBH111
SET ESSTATE = 3 WHERE EAUUIDMQ IN (SELECT
EAUUIDMQ FROM bua.TXBH111 WHERE EAUUIDHT = '?' )
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
set current sqlId = 'A540769';
delete from A540769.plan_table
;
explain plan set queryno = 111 for
select count(*), jobname, max(partition), min(partition)
from sysibm.syscopy c, sysibm.systablepart p
where c.dbName = p.dbName and c.tsName = p.tsname
and c.dsNum in (0, p.partition)
group by jobName
order by 1 desc
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
xelect *
from CMNBATCH.plan_view5
where progName = 'DBWK3'
order by applname, progname, queryNo, qblockno, planno
;
xelect count(*), auftrags_nummer, pm_id
from oA1P.vpw210a1V
group by auftrags_nummer, pm_id
order by 1 desc
;
--select count(*) from oA1P.TSN100A1
-- with ur
-- ;
select *
from CMNBATCH.plan_view5
where progName = 'YPW2KPI' and queryNo = 4235
order by applname, progname, queryNo, qblockno, planno
;
x
set current sqlid = 'A540769'
;
delete from plan_table where queryno in (111, 222)
;
select current timestamp from sysibm.sysdummy1
;
explain plan set queryno = 111 for
SELECT T.* FROM oA1P.VNI600A101A C
, oA1P.VNI203A101A T
WHERE T.PERENDDT >= DATE(C.CTRLTIMESTMPFROM)
AND C.CTRLID = 'NI6220R'
;
select current timestamp from sysibm.sysdummy1
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
explain plan set queryno = 222 for
WITH NI600 (PERENDDT) AS
(SELECT DATE(C.CTRLTIMESTMPFROM) AS ENDDT
FROM oA1P.VNI600A101A C
WHERE C.CTRLID = 'NI6220R'
)
SELECT T.* FROM NI600
,oA1P.VNI203A101A T
WHERE T.PERENDDT >= NI600.PERENDDT
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
select * from plan_view5
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
x
select *
from cmnbatch.plan_view5
where progName = 'YRPNIMP' and queryNo = 866
order by applname, progname, queryNo, qblockno, planno
;
x
d.bType, p.collid, p.Name, p.version,
p.conToken, p.timeStamp, p.type,
p.validate, p.isolation, p.valid, p.operative,
p.owner, p.qualifier
m sysibm.syspackdep d join sysibm.syspackage p
on p.location = d.dLocation and p.collid = d.dCollid
and p.name = d.dName and p.conToken = d.dConToken 2.22.129867'
re
(bQualifier, bName, bType) in
( select dbName, name, 'R'
from sysIbm.sysTablespace
where dbName in ('NF01A1A', 'NF02A1A', 'NF03A1A')
)
from gdb0283.vnz240a1v
where SearchValue01 = ?
-- dec(SearchValue01,15,3) = ?
and CreateDateTime < ?
and dec(SearchValue02,15,3) >= ?
and dec(SearchValue02,15,3) <= ?
and Objtype ^= 'PORDSPLT'
order by CreateDateTime
fetch first 101 rows only
optimize for 101 rows
with ur
;
select * from plan_view5A
where queryno = 999
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
select * from plan_table
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
}¢--- A540769.WK.SQL(EXPLAIWI) cre=2011-03-18 mod=2014-04-30-15.38.39 A540769 ---
--- versionen, compiles und explains eines packages -------------------
select *
from cmnbatch.plan_view0
where collid = 'WI'
and prog = 'YWIESOQ'
order by pcBi desc, bind_Time desc
with ur
;
--- ausgewählte Explains analysieren
select *
from cmnbatch.plan_view1
-- from cmnbatch.plan_view2
-- from cmnbatch.plan_view2Det
where collid = 'WI'
and progName = 'YWIESOQ'
and bind_time = '2014-04-20-03.53.16.805962'
order by collid, progName, version, bind_time,
queryno, qBlockNo, planno, mixopSeq
with ur
;x;
select *
from cmnbatch.plan_viewPred
where collid = 'MF'
and progName = 'MF7010'
and bind_time = '2011-08-30-14.14.59.234601'
order by collid, progName, applName, bind_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
select count(*), WI10500
from oa1p.tWI105A1004
group by WI10500
order by 1 desc
fetch first 1000 rows only
with ur
;x;
select count(*), WI10500, WI10501T, WI10501D, WI10501L, WI10501G
from oa1p.tWI105A1004
group by WI10500, WI10501T, WI10501D, WI10501L, WI10501G
order by 1 desc
fetch first 1000 rows only
with ur
;x;
select count(*), WI10501T, WI10501D, WI10501L, WI10501G
from oa1p.tWI105A1004
group by WI10501T, WI10501D, WI10501L, WI10501G
order by 1 desc
fetch first 1000 rows only
with ur
;x;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
SELECT
DISTINCT WI10304G ,
WI10501V ,
WI10501B ,
WI10302CIF ,
WI10302BK ,
WI10300 ,
WI10302DA ,
WI10500V ,
WI103D150301 ,
WI10505 ,
WI10518C ,
WI103D150305 ,
WI10305 ,
WI10307G ,
WI10307A
FROM
oa1p.TWI103A1003
JOIN
oa1p.TWI105A1003
ON WI10500 = WI10300
AND WI10501T = WI10301T
AND WI10501D = WI10301D
AND WI10501L = WI10301L
AND WI10501G = WI10301G
WHERE
WI10301T = ?
AND WI10301D = ?
AND WI10301L = ?
AND WI10301G = ?
AND WI10301GK = '01'
ORDER BY
WI10501V ,
WI10501B WITH UR
;
explain plan set queryno = 4 for
SELECT
DISTINCT WI10304G ,
WI10501V ,
WI10501B ,
WI10302CIF ,
WI10302BK ,
WI10300 ,
WI10302DA ,
WI10500V ,
WI103D150301 ,
WI10505 ,
WI10518C ,
WI103D150305 ,
WI10305 ,
WI10307G ,
WI10307A
FROM
oa1p.TWI103A1004
JOIN
oa1p.TWI105A1004
ON WI10500 = WI10300
AND WI10501T = WI10301T
AND WI10501D = WI10301D
AND WI10501L = WI10301L
AND WI10501G = WI10301G
WHERE
WI10301T = ?
AND WI10301D = ?
AND WI10301L = ?
AND WI10301G = ?
AND WI10301GK = '01'
ORDER BY
WI10501V ,
WI10501B WITH UR
;
select * from plan_view1
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;rollback
;x;
select * from plan_view2
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by --collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
rollback
;;;;
????????????????????????????????????????
--- versionen, compiles und explains eines packages -------------------
select *
from cmnbatch.plan_view0
where collid = 'WI'
and prog = 'WI8710'
order by pcBi desc, bind_Time desc
with ur
;
--- ausgewählte Explains analysieren
select *
from cmnbatch.plan_view1
-- from cmnbatch.plan_view2
-- from cmnbatch.plan_view2Det
where collid = 'WI'
and progName = 'WI8710'
and bind_time in ('2012-11-10-00.11.55.137885'
,'2012-11-09-20.22.41.252382'
,'2012-08-11-00.28.08.942942'
)
order by collid, progName, version, bind_time,
queryno, qBlockNo, planno, mixopSeq
with ur
;;;;;;;
set current schema cmnbatch;
-- versionen, Compiles und Binds pro Programm
with e as
(
select count(*) c, progName pg, version vr, collid co, bind_time bt,
sum(case when opthint = '' then 0 else 1 end) cOpt
from cmnBatch.plan_table
group by progName, version, collid, bind_time
)
select substr(e.pg, 1, 8) pg, date(p.pcTimeStamp) "preComp",
date(e.bt) "bind", c "#plan_t", cOpt "#hints", vr,
e.*, p.*
from e
full outer join sysibm.sysPackage p
on e.co = p.collid and e.pg = p.name and e.vr = p.version
where e.pg = 'WI8710'
order by e.pg, p.pcTimeStamp desc, e.bt desc
with ur
;
select * from cmnBatch.plan_view1
where progName in ('WI8710') -- and collid = 'WP'
-- and bind_time in ('2011-04-12-14.09.51.446149'
-- ,'2011-04-11-17.07.54.101644'
-- ,'2011-02-11-23.34.35.249197'
-- )
and opthint <> ''
-- and version = 'DBH000012659B91C5F'
and queryno = 269
and qBlockNo = 1 and planNo = 1
order by bind_time desc,
applname, progname, queryNo, qblockno, planno, mixOpSeq
;;;
set current sqlid = 'A540769';
select * from cmnbatch.plan_view2
where progname = 'WI8710'
-- and version in ('WS8B000786', 'WS8B000325')
-- and queryno in ( 241)
and opthint <> ''
order by applname, progname, queryNo, timestamp, qblockno, planno
;
;;;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
SELECT DISTINCT C.WI10001T,
C.WI10001D, C.WI10001L, C.WI10001G, C.WI10001V, C.WI10001B, C.WI10002
FROM oa1p.TWI100A1 C INNER JOIN
(SELECT A.WI11701T AS TERM, A.WI11701D AS
ADATE, A.WI11701L AS ALNR, A.WI11701G AS GANR, A.WI11701V AS VVNR,
A.WI11701B AS VBNR FROM oa1p.TWI117A1 A INNER JOIN
(SELECT MAX (WI11701I) AS
MAXI, B.WI11701T AS TERM, B.WI11701D AS ADATE, B.WI11701L AS ALNR,
B.WI11701G AS GANR, B.WI11701V AS VVNR, B.WI11701B AS VBNR FROM
oa1p.TWI117A1 B
WHERE B.WI11701R = 'B' GROUP BY B.WI11701T, B.WI11701D,
B.WI11701L, B.WI11701G, B.WI11701V, B.WI11701B) AS TEMPTAB ON
A.WI11701T = TEMPTAB.TERM AND A.WI11701D = TEMPTAB.ADATE AND A.WI11701L
= TEMPTAB.ALNR AND (A.WI11701G = TEMPTAB.GANR OR A.WI11701G = '') AND
(A.WI11701V = TEMPTAB.VVNR OR A.WI11701V = '') AND (A.WI11701B =
TEMPTAB.VBNR OR A.WI11701B = '') AND A.WI11701I = TEMPTAB.MAXI WHERE
A.WI11703 = 'Y') AS TEMPTAB2 ON TEMPTAB2.TERM = C.WI10001T AND
TEMPTAB2.ADATE = C.WI10001D AND TEMPTAB2.ALNR = C.WI10001L AND
(TEMPTAB2.GANR = C.WI10001G OR TEMPTAB2.GANR = '') AND (TEMPTAB2.VVNR =
C.WI10001V OR TEMPTAB2.VVNR = '') AND (TEMPTAB2.VBNR = C.WI10001B OR
TEMPTAB2.VBNR = '') FOR FETCH ONLY WITH UR
;
select * from plan_view1
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by --collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
rollback
;;;;
set current sqlid = 'A540769';
delete from A540769.plan_table;
explain plan set queryno = 0 for
DELETE
FROM oa1p.TWI020A1
WHERE WI02040T < TIMESTAMP(CURRENT TIMESTAMP - 21 DAYS)
AND WI02001S IN ('D','P','R')
;
explain plan set queryno = 5 for
select count(*), min(WI02025d)
FROM oa1p.TWI020A1
WHERE WI02040T < TIMESTAMP(CURRENT TIMESTAMP - 21 DAYS)
AND WI02001S IN ('D','P','R')
;
select * from plan_view1
order by applname, progname, queryNo, qblockno, planno, mixOpSeq
;
rollback
;
select current timestamp from sysibm.sysDummy1;
select count(*), min(WI02025d)
FROM oa1p.TWI020A1
WHERE WI02040T < TIMESTAMP(CURRENT TIMESTAMP - 21 DAYS)
AND WI02001S IN ('D','P','R')
with ur
;
select current timestamp from sysibm.sysDummy1;
;;;
delete from A540769.plan_table;
insert into A540769.plan_table
select * from cmnbatch.plan_Table
where collid = 'WI'
and progName = 'WI8710'
and bind_time = '2012-08-11-00.28.08.942942'
and hint_used = 'HBD1'
;
update A540769.plan_table
set queryno = 224, version = 'WS8I000685'
, bind_time = '2012-11-09-23.00.00' , opthint = 'HBD1'
, hint_used = ''
;
select * from A540769.plan_View1
where collid = 'WI'
and progName = 'WI8710'
and bind_time = '2012-11-09-23.00.00'
;
delete from cmnBatch.plan_table
where collid = 'WI'
and progName = 'WI8710'
and bind_time = '2012-11-09-23.00.00'
;
insert into cmnbatch.plan_table
select * from A540769.plan_Table
;
commit
;
}¢--- A540769.WK.SQL(EXPLAIWM) cre=2010-10-14 mod=2013-08-29-17.12.09 A540769 ---
select *
from cmnbatch.plan_view0
where -- collid = 'YY' and
prog in ( '?YWM51E', 'YYWM05E')
and version = 'WSIN000114'
order by pcBi desc, bind_Time desc
with ur
;
select *
from cmnbatch.plan_view1
-- from cmnbatch.plan_view2
-- from cmnbatch.plan_view2Det
where -- collid = 'YY' and
progName in ( '?YWM51E' , 'YYWM05E')
and bind_time in('2013-08-08-12.01.22.006192'
,'1012-03-28-09.10.55.577306'
)
order by progName, version,
queryno,
bind_time desc,
qBlockNo, planno, mixopSeq
with ur
; x;
-- keys eines indexes in der form a<b>c|d<
-- a,b,c,d keys
-- <>| ascending, descending, random
with k0 (cr, ix, keys, colCount, kCnt) as
-- start selektiere Indexe
( select creator, name, -- start selektiere Indexe
cast('' as varchar(500) ccsid unicode), colCount, 0
from sysibm.sysIndexes
where creator = 'OA1T' and tbName like 'TWM005A1'
-- Rekursion: nächster key
union all select cr, ix, keys || strip(q.colName)
|| case when ordering = 'A' then '<'
when ordering = 'D' then '>'
when ordering = 'R' then '|'
else '?' || ordering || '?' end,
k0.colCount, kCnt + 1
from k0
join sysibm.sysKeys q
on q.ixCreator = k0.cr and q.ixName = k0.ix
and q.colSeq = kCnt + 1
where kCnt < 9999
)
, k as
(
select cr, ix, colCount , keys
from k0
where colCount = kCnt
)
select substr(ix, 1, 8) ix, smallint(colCount), keys
from k
order by ix
;
-- keys eines indexes in der form a<b>c|d<
-- a,b,c,d keys
-- <>| ascending, descending, random
with k0 (cr, ix, keys, colCount, kCnt) as
-- start selektiere Indexe
( select creator, name, -- start selektiere Indexe
cast('' as varchar(500) ccsid unicode), colCount, 0
from sysibm.sysIndexes
where creator = 'OA1T' and tbName like 'TWM005A1'
-- Rekursion: nächster key
union all select cr, ix, keys || strip(q.colName)
|| case when ordering = 'A' then '<'
when ordering = 'D' then '>'
when ordering = 'R' then '|'
else '?' || ordering || '?' end,
k0.colCount, kCnt + 1
from k0
join sysibm.sysKeys q
on q.ixCreator = k0.cr and q.ixName = k0.ix
and q.colSeq = kCnt + 1
where kCnt < 9999
)
, k as
(
select cr, ix, colCount , keys
from k0
where colCount = kCnt
)
select queryNo qn, substr(ix, 1, 8) ix,
mc_o || '/' || substr(strip(char(colCount)), 1, 1) "mc O i",
substr(keys, 1, 30) keys, v.*
from cmnbatch.plan_view1 v
left join k
on accessName = ix
where -- collid = 'YY'
progName in ( 'YYWM51E' , 'YYWM05E')
and bind_time in('2012-04-06-16.29.25.501534'
,'2012-04-06-16.30.46.232929'
,'2012-04-20-10.30.31.730896'
,'2012-04-20-10.34.20.522454'
)
order by progName, version,
-- mod(queryno, 100),
queryno,
bind_time desc,
qBlockNo, planno, mixopSeq
with ur
;
--- ausgewählte Explains analysieren ---dbtf---
select index, count(*), min(mc_o), max(mc_o)
from cmnbatch.plan_view1
-- from cmnbatch.plan_view2
-- from cmnbatch.plan_view2Det
where -- collid = 'YY' and
progName in ( 'YYWM51E' , 'YYWM05E')
and bind_time in('2012-04-05-17.01.57.402640'
,'2012-03-28-09.10.55.577306'
)
group by index, bind_time
order by index, bind_time desc
with ur
;
select *
from cmnbatch.plan_view1
where -- collid = 'YY'
progName in ( 'YYWM51E' , 'YYWM05E')
and bind_time in('2012-04-05-17.01.57.402640'
,'2012-03-28-09.10.55.577306'
)
order by progName, version,
queryno,
bind_time desc,
qBlockNo, planno, mixopSeq
with ur
;
select *
from cmnbatch.plan_viewPred
where -- collid = 'YY'
progName in ( 'YYWM51E' , 'YYWM05E')
and bind_time in('2012-04-05-17.01.57.402640'
,'2012-03-28-09.10.55.577306'
)
order by progName, version,
queryNo,
bind_time desc,
qBlockNo, planno,
stage, predNo
;;;;
--- ausgewählte Explains analysieren ---dbaf---
select index, count(*), min(mc_o), max(mc_o)
from cmnbatch.plan_view1
-- from cmnbatch.plan_view2
-- from cmnbatch.plan_view2Det
where collid = 'YY'
and progName in ( 'YYWM51E' , 'YYWM05E')
and bind_time in('2012-03-30-14.34.00.445119'
,'2012-03-30-08.15.45.557519'
)
group by index, bind_time
order by index, bind_time desc
with ur
;
select *
from cmnbatch.plan_view1
where collid = 'YY'
and progName in ( 'YYWM51E' , 'YYWM05E')
and bind_time in('2012-03-30-14.34.00.445119'
,'2012-03-30-08.15.45.557519'
)
order by collid, progName, version,
queryno,
bind_time desc,
qBlockNo, planno, mixopSeq
with ur
;
select *
from cmnbatch.plan_viewPred
where collid = 'YY'
and progName in ( 'YYWM51E' , 'YYWM05E')
and bind_time in('2012-03-30-14.34.00.445119'
,'2012-03-30-08.15.45.557519'
)
order by collid, progName, version,
queryNo,
bind_time desc,
qBlockNo, planno,
stage, predNo
;;;;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 427 for
SELECT PERF, D$ERF, PLMUT, D$LMUT, TAUFTRG, TGRUND, UWM005, D$GUEA,
D$GUEB, CSTAT, CDEFAULT, CKAT, CTYP, NBU, NCIF, NDEP, NBESTDEP,
NBESTVAL, NBESTSEQ, CGA, CGAPH, NAUFTR, NVALOR, CWAE, CTIT, CTITLAND,
NDEPST, NDEPLAND, TWMD1, TWMD2, TWMD3, TWMD4, TWMD5, TWMD6, TWMD7,
TWMD8, IS40KEY, NKTO, CWAE2, NCIF2, CWM1, CWM2, TWM1, TWM2, TWM3, TWM4,
TWM5, TWM6
FROM oa1a.TWM005A1
WHERE D$GUEA <= ? AND D$GUEB >= ? AND CSTAT = ? AND
CDEFAULT BETWEEN ? AND ? AND CTYP = ? AND TWMD2 = ?
;
explain plan set queryno = 527 for
SELECT PERF, D$ERF, PLMUT, D$LMUT, TAUFTRG, TGRUND, UWM005, D$GUEA,
D$GUEB, CSTAT, CDEFAULT, CKAT, CTYP, NBU, NCIF, NDEP, NBESTDEP,
NBESTVAL, NBESTSEQ, CGA, CGAPH, NAUFTR, NVALOR, CWAE, CTIT, CTITLAND,
NDEPST, NDEPLAND, TWMD1, TWMD2, TWMD3, TWMD4, TWMD5, TWMD6, TWMD7,
TWMD8, IS40KEY, NKTO, CWAE2, NCIF2, CWM1, CWM2, TWM1, TWM2, TWM3, TWM4,
TWM5, TWM6
FROM oa1a.TWM005A1
WHERE D$GUEA <= ? AND D$GUEB >= ? AND CSTAT = ? AND
CDEFAULT BETWEEN ? AND ? AND CTYP = ? || '' AND TWMD2 = ?
;
explain plan set queryno = 627 for
with DSN_INLINE_opt_Hint( -- table_creator, table_name,
access_type, access_creator, access_name) AS
( values ('INDEX', 'OA1A', 'IWM005AG')
)
SELECT PERF, D$ERF, PLMUT, D$LMUT, TAUFTRG, TGRUND, UWM005, D$GUEA,
D$GUEB, CSTAT, CDEFAULT, CKAT, CTYP, NBU, NCIF, NDEP, NBESTDEP,
NBESTVAL, NBESTSEQ, CGA, CGAPH, NAUFTR, NVALOR, CWAE, CTIT, CTITLAND,
NDEPST, NDEPLAND, TWMD1, TWMD2, TWMD3, TWMD4, TWMD5, TWMD6, TWMD7,
TWMD8, IS40KEY, NKTO, CWAE2, NCIF2, CWM1, CWM2, TWM1, TWM2, TWM3, TWM4,
TWM5, TWM6
FROM oa1a.TWM005A1
WHERE D$GUEA <= ? AND D$GUEB >= ? AND CSTAT = ? AND
CDEFAULT BETWEEN ? AND ? AND CTYP = ? AND TWMD2 = ?
;
explain plan set queryno = 71 for
SELECT PERF, D$ERF, PLMUT, D$LMUT, TAUFTRG, TGRUND, UWM005, D$GUEA,
D$GUEB, CSTAT, CDEFAULT, CKAT, CTYP, NBU, NCIF, NDEP, NBESTDEP,
NBESTVAL, NBESTSEQ, CGA, CGAPH, NAUFTR, NVALOR, CWAE, CTIT, CTITLAND,
NDEPST, NDEPLAND, TWMD1, TWMD2, TWMD3, TWMD4, TWMD5, TWMD6, TWMD7,
TWMD8, IS40KEY, NKTO, CWAE2, NCIF2, CWM1, CWM2, TWM1, TWM2, TWM3, TWM4,
TWM5, TWM6
FROM oa1a.TWM005A1
WHERE
D$GUEA <= ?
AND D$GUEB >= ?
AND CSTAT = ? || ''
AND CDEFAULT || '' BETWEEN ? AND ?
AND CTYP = ?
AND CGA = ?
AND TWMD1 = ? || '' QUERYNO 064
-- WHERE D$GUEA <= ? AND D$GUEB >= ? AND CSTAT = ? AND
--CDEFAULT BETWEEN ? AND ? AND CTYP = ? AND NBU = ? AND NDEP = '' ¨¨
--'' AND TWMD1 = '' ¨¨ '' QUERYNO 071
;
select * from plan_view1
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by --collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
rollback
;;;;
--- ausgewählte Explains analysieren
select index, count(*), min(mc_o), max(mc_o)
from cmnbatch.plan_view1
-- from cmnbatch.plan_view2
-- from cmnbatch.plan_view2Det
where collid = 'YY'
and progName in ( 'YYWM51E' , 'YYWM05E')
and bind_time in('2012-03-28-09.10.52.339989'
,'2012-03-28-09.10.55.577306'
)
group by index
with ur
;
select *
from cmnbatch.plan_view0
where collid = 'YY'
and prog in ( 'YYWM51E' , 'YYWM05E')
order by pcBi desc, bind_Time desc
with ur
;;;
--- ausgewählte Explains analysieren
select index, count(*), min(mc_o), max(mc_o)
from cmnbatch.plan_view1
-- from cmnbatch.plan_view2
-- from cmnbatch.plan_view2Det
where collid = 'YY'
and progName in ( 'YYWM51E' , 'YYWM05E')
and bind_time in('2012-03-28-09.10.52.339989'
,'2012-03-28-09.10.55.577306'
)
group by index
with ur
;
select * --dbtf
from cmnbatch.plan_view1
where collid = 'YY'
and progName in ( 'YYWM51E' , 'YYWM05E')
and bind_time in('2012-03-28-09.10.52.339989'
,'2012-03-28-09.10.55.577306'
)
order by collid, progName, version,
queryno,
bind_time desc,
qBlockNo, planno, mixopSeq
with ur
;
select *
from cmnbatch.plan_viewPred
where collid = 'YY'
and progName in ( 'YYWM51E' , 'YYWM05E')
and bind_time in('2012-03-28-09.10.52.339989'
,'2012-03-28-09.10.55.577306'
)
order by collid, progName, version, bind_time,
queryNo, qBlockNo, planno,
stage, predNo
;
;;,
--- ausgewählte Explains analysieren
select index, count(*), min(mc_o), max(mc_o)
from cmnbatch.plan_view1
-- from cmnbatch.plan_view2
-- from cmnbatch.plan_view2Det
where collid = 'YY'
and progName in ( 'YYWM51E' , 'YYWM05E')
and bind_time in('2012-03-22-09.55.02.438577'
,'2012-03-22-09.54.58.171886'
)
group by index
with ur
;
select *
from cmnbatch.plan_view1
-- from cmnbatch.plan_view2
-- from cmnbatch.plan_view2Det
where collid = 'YY'
and progName in ( 'YYWM51E' , 'YYWM05E')
and bind_time in('2012-03-22-09.55.02.438577'
,'2012-03-22-09.54.58.171886'
)
order by collid, progName, version, bind_time,
queryno, qBlockNo, planno, mixopSeq
with ur
;
select *
from cmnbatch.plan_viewPred
where collid = 'YY'
and progName in ( 'YYWM51E' , 'YYWM05E')
and bind_time in('2012-03-22-09.55.02.438577'
,'2012-03-22-09.54.58.171886'
)
order by collid, progName, version, bind_time,
queryNo, qBlockNo, planno,
stage, predNo
;
;;,
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 71 for
SELECT PERF, D$ERF, PLMUT, D$LMUT, TAUFTRG, TGRUND, UWM005, D$GUEA,
D$GUEB, CSTAT, CDEFAULT, CKAT, CTYP, NBU, NCIF, NDEP, NBESTDEP,
NBESTVAL, NBESTSEQ, CGA, CGAPH, NAUFTR, NVALOR, CWAE, CTIT, CTITLAND,
NDEPST, NDEPLAND, TWMD1, TWMD2, TWMD3, TWMD4, TWMD5, TWMD6, TWMD7,
TWMD8, IS40KEY, NKTO, CWAE2, NCIF2, CWM1, CWM2, TWM1, TWM2, TWM3, TWM4,
TWM5, TWM6
FROM oa1t.TWM005A1
WHERE
D$GUEA <= ?
AND D$GUEB >= ?
AND CSTAT = ? || ''
AND CDEFAULT || '' BETWEEN ? AND ?
AND CTYP = ?
AND CGA = ?
AND TWMD1 = ? || '' QUERYNO 064
-- WHERE D$GUEA <= ? AND D$GUEB >= ? AND CSTAT = ? AND
--CDEFAULT BETWEEN ? AND ? AND CTYP = ? AND NBU = ? AND NDEP = '' ¨¨
--'' AND TWMD1 = '' ¨¨ '' QUERYNO 071
;
select * from plan_view1
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by --collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
rollback
;;;;
--- versionen, compiles und explains eines packages -------------------
select *
from cmnbatch.plan_view0
where collid = 'YY'
and prog in ( 'YYWM51E' , 'YYWM05E')
order by pcBi desc, bind_Time desc
with ur
;
--- ausgewählte Explains analysieren
select *
from cmnbatch.plan_view1
-- from cmnbatch.plan_view2
-- from cmnbatch.plan_view2Det
where collid = 'YY'
and progName in ( 'YYWM51E' , 'YYWM05E')
and bind_time in('2012-03-22-09.55.02.438577'
,'2012-03-22-09.54.58.171886'
)
and queryno = 64
order by collid, progName, version, bind_time,
queryno, qBlockNo, planno, mixopSeq
with ur
;
select *
from cmnbatch.plan_viewPred
where collid = 'YY'
and progName = 'YYWM51E'
and bind_time = '2012-03-09-11.43.48.725773'
order by collid, progName, applName, bind_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;;;;;
select *
from cmnbatch.dsn_filter_table
where collid = 'YY'
and progName = 'YYWM51E'
and explain_time = '2012-03-09-11.43.48.725773'
and queryno = 1
order by
queryNo, qBlockNo, planno,
stage, predNo
;
select current timestamp from sysibm.sysDummy1;
with v3 as
( select 3 keys, count(*) cnt, CKAT, nkto, d$gueb
from oa1a.twm005A1
group by CKAT, nkto, d$gueb
)
, v2 as
( select 2 keys, sum(cnt) cnt, CKAT, nkto
from v3
group by CKAT, nkto
)
, v1 as
( select 1 keys, sum(cnt) cnt, CKAT
from v2
group by CKAT
)
, v (keys, cnt, val) as
(
( select keys, cnt
, char(ckat) || ' + ' || char(nkto) || ' + ' || char(d$gueb)
from v3
order by cnt desc
fetch first 10 rows only )
union all (select keys, cnt
, char(ckat) || ' + ' || char(nkto)
from v2
order by cnt desc
fetch first 10 rows only
)
union all ( select keys, cnt
, char(ckat)
from v1
order by cnt desc
fetch first 10 rows only
) )
select *
from v
order by keys, cnt desc
with ur
;
select current timestamp from sysibm.sysDummy1;
with v (keys, cnt, val) as
( (select 3, count(*)
, char(ckat) || ' + ' || char(nkto) || ' + ' || char(d$gueb)
from oa1a.twm005A1
group by CKAT, nkto, d$gueb
order by 2 desc
fetch first 10 rows only
) union all (select 2, count(*)
, char(ckat) || ' + ' || char(nkto)
from oa1a.twm005A1
group by CKAT, nkto
order by 2 desc
fetch first 10 rows only
) union all (select 1, count(*)
, char(ckat)
from oa1a.twm005A1
group by CKAT
order by 2 desc
fetch first 10 rows only
) )
select *
from v
order by keys, cnt desc
with ur
;
select current timestamp from sysibm.sysDummy1;
;;;;
select *
from cmnBatch.plan_view1
where progName in ( 'YYWM51E') --, 'YYWM05E')
-- and version = 'WSIN000086'
and queryNo = 71
-- and optHint = 'WK1'
-- and bind_time = '2011-06-16-18.06.33.125938'
-- and bind_time in ('2011-01-19-14.34.47.972473',
-- '2010-12-17-11.16.20.037477')
-- order by index, mc_O
order by applname, progname, version desc, bind_time desc ,
queryNo, qblockno, planno, mixOpSeq
; ;;
set current sqlid = 'A540769';
--select hex(X'C2E4D9C1'), X'C2E4D9C1'
-- from sysibm.sysDummy1;;;
delete from plan_table;
explain plan for
SELECT PERF, D$ERF, PLMUT, D$LMUT, TAUFTRG, TGRUND, UWM005, D$GUEA,
D$GUEB, CSTAT, CDEFAULT, CKAT, CTYP, NBU, NCIF, NDEP, NBESTDEP,
NBESTVAL, NBESTSEQ, CGA, CGAPH, NAUFTR, NVALOR, CWAE, CTIT, CTITLAND,
NDEPST, NDEPLAND, TWMD1, TWMD2, TWMD3, TWMD4, TWMD5, TWMD6, TWMD7,
TWMD8, IS40KEY, NKTO, CWAE2, NCIF2, CWM1, CWM2, TWM1, TWM2, TWM3, TWM4,
TWM5, TWM6
from
OA1T.TWM005A1 WHERE D$GUEA <= ? AND D$GUEB >= ? AND CSTAT = ? AND
CDEFAULT BETWEEN ? AND ? AND CTYP = ? AND NBU = '' ¨¨ '' AND NDEP =
'' ¨¨ '' AND TWMD1 = ? QUERYNO 070
;
explain plan set queryno = 1070 for
SELECT PERF, D$ERF, PLMUT, D$LMUT, TAUFTRG, TGRUND, UWM005, D$GUEA,
D$GUEB, CSTAT, CDEFAULT, CKAT, CTYP, NBU, NCIF, NDEP, NBESTDEP,
NBESTVAL, NBESTSEQ, CGA, CGAPH, NAUFTR, NVALOR, CWAE, CTIT, CTITLAND,
NDEPST, NDEPLAND, TWMD1, TWMD2, TWMD3, TWMD4, TWMD5, TWMD6, TWMD7,
TWMD8, IS40KEY, NKTO, CWAE2, NCIF2, CWM1, CWM2, TWM1, TWM2, TWM3, TWM4,
TWM5, TWM6
from
OA1T.TWM005A1 WHERE D$GUEA <= ? AND D$GUEB >= ? AND CSTAT = ? AND
CDEFAULT BETWEEN ? AND ? AND CTYP = ? AND NBU || '' = '' AND NDEP || ''
= '' AND TWMD1 = ? QUERYNO 070
;
explain plan set queryno = 1270 for
SELECT PERF, D$ERF, PLMUT, D$LMUT, TAUFTRG, TGRUND, UWM005, D$GUEA,
D$GUEB, CSTAT, CDEFAULT, CKAT, CTYP, NBU, NCIF, NDEP, NBESTDEP,
NBESTVAL, NBESTSEQ, CGA, CGAPH, NAUFTR, NVALOR, CWAE, CTIT, CTITLAND,
NDEPST, NDEPLAND, TWMD1, TWMD2, TWMD3, TWMD4, TWMD5, TWMD6, TWMD7,
TWMD8, IS40KEY, NKTO, CWAE2, NCIF2, CWM1, CWM2, TWM1, TWM2, TWM3, TWM4,
TWM5, TWM6
from
OA1T.TWM005A1 WHERE D$GUEA <= current timestamp
AND D$GUEB >= current timestamp AND CSTAT = 'A' and
CDEFAULT BETWEEN ' ' AND '9' AND
CTYP = X'C2E4D9C1'
AND NBU = '' ¨¨ '' AND NDEP =
'' ¨¨ '' AND TWMD1 = 'ab' QUERYNO 070
;
explain plan set queryno = 1370 for
SELECT PERF, D$ERF, PLMUT, D$LMUT, TAUFTRG, TGRUND, UWM005, D$GUEA,
D$GUEB, CSTAT, CDEFAULT, CKAT, CTYP, NBU, NCIF, NDEP, NBESTDEP,
NBESTVAL, NBESTSEQ, CGA, CGAPH, NAUFTR, NVALOR, CWAE, CTIT, CTITLAND,
NDEPST, NDEPLAND, TWMD1, TWMD2, TWMD3, TWMD4, TWMD5, TWMD6, TWMD7,
TWMD8, IS40KEY, NKTO, CWAE2, NCIF2, CWM1, CWM2, TWM1, TWM2, TWM3, TWM4,
TWM5, TWM6
from
OA1T.TWM005A1 WHERE D$GUEA <= ? AND D$GUEB >= ? AND CSTAT = ? AND
CDEFAULT BETWEEN ? AND ? AND CTYP = ? AND NBU = '' AND NDEP
= '' AND TWMD1 = ? QUERYNO 070
;
explain plan set queryno = 9070 for
-- SQL in stmt: 3332
SELECT PERF, D$ERF, PLMUT, D$LMUT, TAUFTRG,
TGRUND, UWM005, D$GUEA, D$GUEB, CSTAT, CDEFAULT, CKAT, CTYP, NBU, NCIF,
NDEP, NBESTDEP, NBESTVAL, NBESTSEQ, CGA, CGAPH, NAUFTR, NVALOR, CWAE,
CTIT, CTITLAND, NDEPST, NDEPLAND, TWMD1, TWMD2, TWMD3, TWMD4, TWMD5,
TWMD6, TWMD7, TWMD8, IS40KEY, NKTO, CWAE2, NCIF2, CWM1, CWM2, TWM1,
TWM2, TWM3, TWM4, TWM5, TWM6
FROM oa1t.TWM005A1
WHERE D$GUEA <= ? AND
D$GUEB >= ? AND CSTAT BETWEEN ? AND ? AND CDEFAULT BETWEEN ? AND ?
AND CTYP = ? AND NBU = '' ¨¨ '' AND NDEP = ? AND TWMD1 = ? FOR FETCH
ONLY QUERYNO 070
;
explain plan set queryno = 9170 for
-- SQL in stmt: 3332
SELECT PERF, D$ERF, PLMUT, D$LMUT, TAUFTRG,
TGRUND, UWM005, D$GUEA, D$GUEB, CSTAT, CDEFAULT, CKAT, CTYP, NBU, NCIF,
NDEP, NBESTDEP, NBESTVAL, NBESTSEQ, CGA, CGAPH, NAUFTR, NVALOR, CWAE,
CTIT, CTITLAND, NDEPST, NDEPLAND, TWMD1, TWMD2, TWMD3, TWMD4, TWMD5,
TWMD6, TWMD7, TWMD8, IS40KEY, NKTO, CWAE2, NCIF2, CWM1, CWM2, TWM1,
TWM2, TWM3, TWM4, TWM5, TWM6
FROM oa1t.TWM005A1
WHERE D$GUEA <= ? AND
D$GUEB >= ? AND CSTAT BETWEEN ? AND ? AND CDEFAULT BETWEEN ? AND ?
AND CTYP = ? AND NBU = '' ¨¨ '' AND NDEP = ? || ''
AND TWMD1 = ? FOR FETCH
ONLY QUERYNO 070
;
select *
from plan_view1
order by applname, progname, queryNo, qblockno, planno
;;;
explain plan for -- set queryno = 124 for
SELECT PERF, D$ERF, PLMUT, D$LMUT, TAUFTRG, TGRUND, UWM005, D$GUEA,
D$GUEB, CSTAT, CDEFAULT, CKAT, CTYP, NBU, NCIF, NDEP, NBESTDEP,
NBESTVAL, NBESTSEQ, CGA, CGAPH, NAUFTR, NVALOR, CWAE, CTIT, CTITLAND,
NDEPST, NDEPLAND, TWMD1, TWMD2, TWMD3, TWMD4, TWMD5, TWMD6, TWMD7,
TWMD8, IS40KEY, NKTO, CWAE2, NCIF2, CWM1, CWM2, TWM1, TWM2, TWM3, TWM4,
TWM5, TWM6
from
OA1T.TWM005A1 WHERE D$GUEA <= current timestamp
AND D$GUEB >= current timestamp
AND CSTAT = 'A'
and CDEFAULT BETWEEN ' ' AND '9'
AND CTYP = X'C2E4D9C1'
AND NBU = '' ¨¨ '' AND NDEP =
'' ¨¨ '' AND TWMD1 = '0499'
;
explain plan for -- set queryno = 224 for
SELECT count(*), sum(length(strip(TGRUND)))
from
OA1T.TWM005A1 WHERE D$GUEA <= current timestamp
AND D$GUEB >= current timestamp
AND CSTAT = 'A'
and CDEFAULT BETWEEN ' ' AND '9'
AND CTYP = X'C2E4D9C1'
AND NBU = '' ¨¨ '' AND NDEP =
'' ¨¨ '' AND TWMD1 = '0499'
;
with g2 as
(
select count(*) c, twmd1 , cTyp
from OA1T.twm005a1
group by twmd1 , cTyp
) , g (c, twmd1 , cTyp) as
(
(select * from g2 order by c desc fetch first 100 rows only)
union all (select sum(c), twmd1 , '---' from g2
group by twmd1 order by 1 desc fetch first 100 rows only)
union all (select sum(c), '---', cTyp from g2
group by cTyp order by 1 desc fetch first 100 rows only)
union all select sum(c), '---', '---' from g2
)
select * from g
order by 1 desc
with ur
;;;
select current timestamp from sysibm.sysdummy1;
SELECT PERF, D$ERF, PLMUT, D$LMUT, TAUFTRG, TGRUND, UWM005, D$GUEA,
D$GUEB, CSTAT, CDEFAULT, CKAT, CTYP, NBU, NCIF, NDEP, NBESTDEP,
NBESTVAL, NBESTSEQ, CGA, CGAPH, NAUFTR, NVALOR, CWAE, CTIT, CTITLAND,
NDEPST, NDEPLAND, TWMD1, TWMD2, TWMD3, TWMD4, TWMD5, TWMD6, TWMD7,
TWMD8, IS40KEY, NKTO, CWAE2, NCIF2, CWM1, CWM2, TWM1, TWM2, TWM3, TWM4,
TWM5, TWM6
from
OA1T.TWM005A1 WHERE D$GUEA <= current timestamp
AND D$GUEB >= current timestamp AND CSTAT = 'A' and
CDEFAULT BETWEEN ' ' AND '9' AND
CTYP = X'C2E4D9C1'
AND NBU = '' ¨¨ '' AND NDEP =
'' ¨¨ '' AND TWMD1 = 'ab' QUERYNO 070
;
select current timestamp from sysibm.sysdummy1;
;;
with g2 as
(
select count(*) c, nValor, cTyp
from OA1T.twm005a1
group by nValor, cTyp
) , g (c, nValor, cTyp) as
(
(select * from g2 order by c desc fetch first 100 rows only)
union all (select sum(c), nValor, '---' from g2
group by nValor order by 1 desc fetch first 100 rows only)
union all (select sum(c), '---', cTyp from g2
group by cTyp order by 1 desc fetch first 100 rows only)
union all select sum(c), '---', '---' from g2
)
select * from g
order by 1 desc
with ur
;;;
select current timestamp from sysibm.sysDummy1;
SELECT count(*), sum(length(strip(TGRUND)))
from
OA1T.TWM005A1 WHERE D$GUEA <= current timestamp
AND D$GUEB >= current timestamp
AND CSTAT = 'A'
and CDEFAULT BETWEEN ' ' AND '9'
AND CTYP = 'BURA'
AND NBU = '' ¨¨ '' AND NDEP =
'' ¨¨ '' -- AND TWMD1 = '0499'
;
select current timestamp from sysibm.sysDummy1;
;;;
select count(*) c, uwm005
from oa1p.twm005a1
group by uwm005
order by 1 desc
fetch first 100 rows only
with ur
;;;
select count(*) c, nkto
from oa1p.twm005a1
group by nkto
order by 1 desc
fetch first 100 rows only
with ur
;;;
with g2 as y
(
select count(*) c, nCif, cKat
from oa1p.twm005a1
group by nCif, cKat
) , g (t, c, nCif, cKat) as
(
(select 'ck', g2.* from g2 order by c desc fetch first 100 rows only)
union all (select '-k', sum(c), nCif, '---' from g2
group by nCif order by 1 desc fetch first 100 rows only)
union all (select 'c-', sum(c), '---', cKat from g2
group by cKat order by 1 desc fetch first 100 rows only)
union all select '--', sum(c), '---', '---' from g2
)
select * from g
order by 1 , 2 desc
with ur
;;;
with g2 as
(
select count(*) c, nValor, cTyp
from oa1p.twm005a1
group by nValor, cTyp
) , g (c, nValor, cTyp) as
(
(select * from g2 order by c desc fetch first 100 rows only)
union all (select sum(c), nValor, '---' from g2
group by nValor order by 1 desc fetch first 100 rows only)
union all (select sum(c), '---', cTyp from g2
group by cTyp order by 1 desc fetch first 100 rows only)
union all select sum(c), '---', '---' from g2
)
select * from g
order by 1 desc
with ur
;;;
with g2 as
(
select count(*) c, nBu, cTyp
from oa1p.twm005a1
group by nBu, cTyp
) , g (c, nBu, cTyp) as
(
(select * from g2 order by c desc fetch first 100 rows only)
union all (select sum(c), nBu, '---' from g2
group by nBu order by 1 desc fetch first 100 rows only)
union all (select sum(c), '---', cTyp from g2
group by cTyp order by 1 desc fetch first 100 rows only)
union all select sum(c), '---', '---' from g2
)
select * from g
order by 1 desc
with ur
;;;
with g2 as
(
select count(*) c, nCif, ndep
from oa1p.twm005a1
group by nCif, ndep
) , g (c, nCif, ndep) as
(
(select * from g2 order by c desc fetch first 100 rows only)
union all (select sum(c), nCif, '---' from g2
group by nCif order by 1 desc fetch first 100 rows only)
union all (select sum(c), '---', nDep from g2
group by nDep order by 1 desc fetch first 100 rows only)
union all select sum(c), '---', '---' from g2
)
select * from g
order by 1 desc
with ur
;;;
with g2 as
(
select count(*) c, nCif, cStat
from oa1p.twm005a1
group by nCif, cStat
) , g (c, nCif, cStat) as
(
(select * from g2 order by c desc fetch first 100 rows only)
union all (select sum(c), nCif, '---' from g2
group by nCif order by 1 desc fetch first 100 rows only)
union all (select sum(c), '---', cStat from g2
group by cStat order by 1 desc fetch first 100 rows only)
union all select sum(c), '---', '---' from g2
)
select * from g
order by 1 desc
with ur
;;;
select * from g
;;;
select count(*), TWMD1
from oa1p.twm005a1
group by TWMD1
order by 1 desc
fetch first 100 rows only
with ur; ;
select count(*), nCif, ctyp
from oa1p.twm005a1
group by nCif, cTyp
order by 1 desc
fetch first 100 rows only
with ur;
select count(*), nCif
from oa1p.twm005a1
group by nCif
order by 1 desc
fetch first 100 rows only
with ur; ;
select count(*), nCif, ndep
from oa1p.twm005a1
group by nCif, nDep
order by 1 desc
fetch first 100 rows only
with ur; ;
select count(*), nCif
from oa1p.twm005a1
group by nCif
order by 1 desc
fetch first 100 rows only
with ur; ;
select count(distinct CTYP || nCif || ndep ) "cTyp,nCif,nDep",
count(distinct CTYP || ndep ) "cTyp, ,nDep"
from oa1p.twm005a1
-- group by CTYP, nCif, ndep
-- order by 1 desc
-- fetch first 100 rows only
with ur
;
select count(*), UWM005, CSTAT, CDEFault
from oa1p.twm005a1
group by UWM005, CSTAT, CDEFault
order by 1 desc
with ur
;;
select INDEX, count(*), min(mc_o), max(mc_o)
from cmnBatch.plan_view1
where progName = 'YYWM05E' and version = 'WSIN000086'
-- and queryNo = 24
-- and optHint = 'WK1'
and table = 'TWM005A1'
and bind_time = '2010-11-22-12.00.23.698521'
group by index
order by 1
;x
select *
from cmnBatch.plan_view1
where progName = 'YYWM51E' and version = 'WSIN000086'
-- and queryNo = 24
-- and optHint = 'WK1'
and bind_time = '2010-11-22-11.42.58.58655'
order by applname, progname, queryNo, qblockno, planno
;x
set current sqlid = 'A540769';
delete from plan_table;
insert into plan_table
select * from s100447.tOptHint
where progName = 'YYWM51E' and version = 'WSIN000086'
;
update plan_table set progName = 'YYWM05E';
delete
from s100447.tOpthint
where progName = 'YYWM05E' and version = 'WSIN000086'
;
insert into s100447.tOptHint
select * from plan_table;
delete
from cmnbatch.plan_table
where progName = 'YYWM05E' and version = 'WSIN000086'
;
insert into cmnBatch.plan_table
select * from plan_table;
commit ; x
-- and queryNo = 24
order by applname, progname, queryNo, qblockno, planno
select *
from cmnBatch.plan_view1
where progName = 'YYWM05E' and version = 'WSIN000086'
-- and queryNo = 24
order by applname, progname, queryNo, qblockno, planno
;
select *
from s100447.vOpthint_view1
where progName = 'YYWM05E' and version = 'WSIN000086'
-- and queryNo = 24
order by applname, progname, queryNo, qblockno, planno
; x
select *
from cmnbatch.plan_view1
where progName = 'YYWM51E' and version = 'WSIN000086'
and queryNo = 24
order by applname, progname, queryNo, qblockno, planno
;
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 24 for
select *
from oa1p.TWM005A1
WHERE D$GUEA <= ? AND D$GUEB >= ? AND CSTAT = ? AND
CDEFAULT BETWEEN ? AND ? AND CTYP = ? AND NVALOR = ? QUERYNO 024
;
select * from plan_view2
order by applname, progname, queryNo, qblockno, planno
;
update plan_table ---> richtige Keys setzen
set queryno = 24
, collid = 'YY'
, progname = 'YYWM51E'
, version = 'WSIN000086'
, optHint = 'WK1'
;
update plan_table ---> richtige access
set accessName = 'IWM005A9'
;
delete from cmnBatch.plan_table
where opthint = 'WK1' and progName = 'YYWM05E'
and version = 'WSIN000086'
and queryno = 24
;
insert into cmnBatch.plan_table
select * from A540769.plan_table
;
select * from cmnBatch.plan_view1
where opthint = 'WK1' and progName = 'YYWM51E'
order by applname, progname, queryNo, qblockno, planno
;
delete from s100447.tOpthint
where opthint = 'WK1' and progName = 'YYWM05E'
and version = 'WSIN000086'
and queryno = 24
;
insert into s100447.tOpthint
select * from A540769.plan_table;
--rollback;
select *
from cmnbatch.plan_view1
where progName = 'YYWM51E' and version = 'WSIN000086'
and queryNo = 15
order by applname, progname, queryNo, qblockno, planno
;
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 15 for
select *
from oa1p.TWM005A1
WHERE D$GUEA <= ? AND D$GUEB >= ? AND CSTAT = ? AND
CDEFAULT BETWEEN ? AND ? AND CTYP = ? AND NBU = ? QUERYNO 015
;
select * from plan_view2
order by applname, progname, queryNo, qblockno, planno
;
update plan_table ---> richtige Keys setzen
set queryno = 15
, collid = 'YY'
, progname = 'YYWM51E'
, version = 'WSIN000086'
, optHint = 'WK1'
;
update plan_table ---> richtige access
set accessName = 'IWM005AB'
;
delete from cmnBatch.plan_table
where opthint = 'WK1' and progName = 'YYWM05E'
and version = 'WSIN000086'
and queryno = 15
;
insert into cmnBatch.plan_table
select * from A540769.plan_table
;
select * from cmnBatch.plan_view1
where opthint = 'WK1' and progName = 'YYWM51E'
order by applname, progname, queryNo, qblockno, planno
;
delete from s100447.tOpthint
where opthint = 'WK1' and progName = 'YYWM05E'
and version = 'WSIN000086'
and queryno = 15
;
insert into s100447.tOpthint
select * from A540769.plan_table;
commit;x;
rollback; x; --> commit falls es richtig kommt ein
;;
select bind_time, count(*), version
from cmnBatch.plan_table
where progName = 'YYWM51E' -- and version = 'WSIN000086'
and bind_time in ('2010-11-15-21.10.29.921543',
'2010-05-12-18.32.34.335450')
group by bind_time, version
order by 3 desc , 1 desc
;
select case when bind_time = '2010-11-15-21.10.29.921543'
then 'n' else 'o' end, v.*
from cmnBatch.plan_VIEW1 v
where progName = 'YYWM51E' -- and version = 'WSIN000086'
and bind_time in ('2010-11-15-21.10.29.921543',
'2010-05-12-18.32.34.335450')
order by applname, progname, queryNo
, 1 , qblockno, planno
; x
;x;
select bind_time, count(*), version
from cmnBatch.plan_table
where progName = 'YYWM05E' -- and version = 'WSIN000086'
-- and bind_time in ('2010-11-16-15.56.39.031094',
-- '2010-08-12-11.00.17.093367')
-- and queryNo = 21
group by bind_time, version
order by 3 desc , 1 desc
;x;
from
set current path = oa1p;
select SUBSTR(d.name, 1, 8), substr(c1.name, 1, 8),
substr(c2.name, 1, 8), substr(c3.name, 1, 8),
fosFmte7(cardf) "cardf",
numColumns, length(colGroupColNo), hex(colGroupColNo), d.*
from sysibm.syscoldist d
left join sysibm.syscolumns c1
on hex(substr(d.colGroupColNo, 1, 2))
= hex(c1.colno)
and c1.tbCreator = d.tbOwner
and c1.tbName = d.tbName
left join sysibm.syscolumns c2
on hex(substr(d.colGroupColNo, 3, 2))
= hex(c2.colno)
and c2.tbCreator = d.tbOwner
and c2.tbName = d.tbName
left join sysibm.syscolumns c3
on hex(substr(d.colGroupColNo, 5, 2))
= hex(c3.colno)
and c3.tbCreator = d.tbOwner
and c3.tbName = d.tbName
where tbOwner = 'OA1P' and d.tbName = 'TWM005A1'
and c1.name is not null
order by statstime desc
; x;
select *
from sysibm.syscolstats
where tbOwner like 'OA1P%' and tbName like 'TWM005%'
;
select *
from sysibm.syscoldist
where tbOwner like 'OA1P%' and tbName like 'TWM005%'
;
select *
from sysibm.syscoldiststats
where tbOwner like 'OA1P%' and tbName like 'TWM005%'
;
select *
from cmnBatch.plan_VIEW1
where progName = 'YYWM05E' and version = 'WSIN000086'
and queryNo = 21
order by applname, progname, queryNo, qblockno, planno
, bind_time desc
; x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 21 for
select *
FROM oa1p.TWM005A1 WHERE D$GUEA <= ? AND
D$GUEB >= ? AND CSTAT BETWEEN ? AND ? AND CDEFAULT BETWEEN ? AND ?
AND CTYP = ? AND NCIF = ? AND NDEP = ? FOR FETCH ONLY QUERYNO 021
;
explain plan set queryno = 821 for
select *
FROM oa1p.TWM005A1 WHERE
CTYP = ? AND NCIF = ? AND NDEP = ? FOR FETCH ONLY QUERYNO 021
;
explain plan set queryno = 921 for
select *
FROM oa1p.TWM005A1 WHERE
NCIF = ? AND CTYP = ? AND NDEP = ? FOR FETCH ONLY QUERYNO 021
;
select * from plan_view2
order by applname, progname, queryNo, qblockno, planno
;
DELETE from plan_table where queryNo <> 21;
update plan_table ---> richtige Keys setzen
set queryno = 21
, collid = 'YY'
, progname = 'YYWM05E'
, version = 'WSIN000086'
, optHint = 'WK1'
;
update plan_table ---> richtige access
set accessName = 'IWM005A3'
;
delete from cmnBatch.plan_table
where opthint = 'WK1' and progName = 'YYWM05E'
and version = 'WSIN000086'
;
insert into cmnBatch.plan_table
select * from A540769.plan_table
;
select * from cmnBatch.plan_view1
where opthint = 'WK1' and progName = 'YYWM05E'
order by applname, progname, queryNo, qblockno, planno
;
delete from s100447.tOpthint
where opthint = 'WK1' and progName = 'YYWM05E'
and version = 'WSIN000086'
;
insert into s100447.tOpthint
select * from A540769.plan_table;
commit ;x;
rollback; x; --> commit falls es richtig kommt ein
;;
select *
from cmnbatch.plan_view1
where progName = 'YYWM51E' and version = 'WSIN000086'
and queryNo = 21
order by applname, progname, queryNo, qblockno, planno
; x
set current sqlid = 'A540769';
set current path = oa1p;
delete from plan_table;
explain plan set queryno = 21 for
select *
FROM oa1p.TWM005A1 WHERE D$GUEA <= ? AND
D$GUEB >= ? AND CSTAT BETWEEN ? AND ? AND CDEFAULT BETWEEN ? AND ?
AND CTYP = ? AND NCIF = ? AND NDEP = ? FOR FETCH ONLY QUERYNO 021
;
explain plan set queryno = 821 for
select *
FROM oa1p.TWM005A1 WHERE
CTYP = ? AND NCIF = ? AND NDEP = ? FOR FETCH ONLY QUERYNO 021
;
explain plan set queryno = 921 for
select *
FROM oa1p.TWM005A1 WHERE
NCIF = ? AND CTYP = ? AND NDEP = ? FOR FETCH ONLY QUERYNO 021
;
select * from plan_view2
order by applname, progname, queryNo, qblockno, planno
;
rollback;
select SUBSTR(d.name, 1, 8), substr(c1.name, 1, 8),
substr(c2.name, 1, 8), substr(c3.name, 1, 8),
fosFmte7(cardf) "cardf",
numColumns, length(colGroupColNo), hex(colGroupColNo), d.*
from sysibm.syscoldist d
left join sysibm.syscolumns c1
on hex(substr(d.colGroupColNo, 1, 2))
= hex(c1.colno)
and c1.tbCreator = d.tbOwner
and c1.tbName = d.tbName
left join sysibm.syscolumns c2
on hex(substr(d.colGroupColNo, 3, 2))
= hex(c2.colno)
and c2.tbCreator = d.tbOwner
and c2.tbName = d.tbName
left join sysibm.syscolumns c3
on hex(substr(d.colGroupColNo, 5, 2))
= hex(c3.colno)
and c3.tbCreator = d.tbOwner
and c3.tbName = d.tbName
where tbOwner = 'OA1P' and d.tbName = 'TWM005A1'
order by statstime desc
; x;
select numColumns, length(colGroupColNo), hex(colGroupColNo), d.*
from sysibm.syscoldist d
where tbOwner = 'OA1P' and tbName = 'TWM005A1'
; x;
rollback;
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 1 for
SELECT *
FROM OA1P.TWM005A1
WHERE D$GUEA <= CURRENT TIMESTAMP
AND D$GUEB >= CURRENT TIMESTAMP
AND CSTAT BETWEEN 'A' AND 'A'
AND CDEFAULT BETWEEN 'C' AND 'C'
AND CTYP = ? -- 'SPEX'
explain plan set queryno = 1 for
SELECT *
FROM OA1P.TWM005A1
WHERE
AND CSTAT BETWEEN 'A' AND 'A'
AND CDEFAULT BETWEEN 'C' AND 'C'
AND CTYP = ? -- 'SPEX'
;
select * from plan_view2
order by applname, progname, queryNo, qblockno, planno
;
rollback;
select count(distinct CTYP || nCif || ndep ) "cTyp,nCif,nDep",
count(distinct CTYP || ndep ) "cTyp, ,nDep"
from oa1p.twm005a1
-- group by CTYP, nCif, ndep
-- order by 1 desc
-- fetch first 100 rows only
with ur
;
x;
set current sqlid = 'S100447';
update sysibm.sysColumns set
statstime = '0001-01-01-00.00.00.00000'
, colCardf = -1
where tbCreator = 'OA1P' and tbName like 'TWM005A1'
;
commit;
--delete
-- from sysibm.syscoldist
-- where tbOwner like 'OA1P%' and tbName like 'TWM005%'
--;
select *
from sysibm.syscolstats
where tbOwner like 'OA1P%' and tbName like 'TWM005%'
;
select *
from sysibm.syscoldist
where tbOwner like 'OA1P%' and tbName like 'TWM005%'
;
select *
from sysibm.syscoldiststats
where tbOwner like 'OA1P%' and tbName like 'TWM005%'
;
select *
from cmnBatch.plan_view1
where progName = 'YYWM51E' -- and version = 'WSIN000086'
-- and queryNo = 70
-- and optHint = 'WK1'
-- and bind_time = '2010-12-16-14.36.37.738425'
and (optHint <> '' or hint_Used <> '')
-- order by index, mc_O
order by applname, progname, queryNo, qblockno, planno
;x
with c as
(
select count(*) c, ctyp, nbu
from oa1t.twm005a1
where nbu <> ''
group by ctyp, nbu
)
select count(*) "ctypCnt", sum(c) tot, min(c) min, max(c) max,
min(ctyp || '-' || nbu), max(ctyp || '-' || nbu)
from c
group by floor(log10(c)*3)
order by 3 desc
with ur
;;;;;;
with c as
(
select count(*) c, ctyp
from oa1t.twm005a1
group by ctyp
)
select count(*) "ctypCnt", sum(c) tot, min(c) min, max(c) max,
min(ctyp), max(ctyp)
from c
group by floor(log10(c)*3)
order by 3 desc
with ur
;;;;;;
}¢--- A540769.WK.SQL(EXPLAIWP) cre=2011-07-14 mod=2011-07-14-14.37.45 A540769 ---
-- versionen, Compiles und Binds pro Programm
select * from A540769.plan_view0
where name like 'YWPR2PX'
order by co, pg, pcTimestamp desc, bind_time desc
with ur
;
select * from cmnbatch.plan_table
where progname = 'YWPR2PX'
and bind_time='2011-05-12-12.20.06.467267'
-- DBH0000211602508 2011-02-11-11.36.35.916411
order by applname, progname, queryNo, qblockno, planno, mixOpSeq
;
set current sqlid = 'A540769';
delete from A540769.plan_table;
explain plan set queryno = 3 for
select * FROM oa1t.TWP011A101 WHERE WP011_DEPOT_NR = ?
AND WP011_VALOR_NR LIKE ? AND WP011_POS_FOLGE = 0 ORDER BY
WP011_VALOR_NR, WP011_POS_SEQUENZ WITH UR
;
select * from plan_view1
order by applname, progname, queryNo, qblockno, planno, mixOpSeq
;
rollback
;;;;;;;;
}¢--- A540769.WK.SQL(EXPLAIW5) cre=2008-07-03 mod=2008-07-14-11.53.03 F540769 ---
WITH V5A AS
(
SELECT
SUBSTR(DIGITS(A.QUERYNO),5) AS STMT,
QBLOCK_TYPE AS TYPE,
CASE
WHEN METHOD = 3 THEN ' '
ELSE CHAR(S.PROCSU)
END AS MSU,
CASE
WHEN PRIMARY_ACCESSTYPE = 'D' THEN 'DIR.ROW'
WHEN ACCESSTYPE = 'I ' THEN 'IX-SCAN'
WHEN ACCESSTYPE = 'I1' THEN 'IX-ONE '
WHEN ACCESSTYPE = 'R ' THEN 'TS-SCAN'
WHEN ACCESSTYPE = 'N ' THEN 'IX-ACC '
WHEN ACCESSTYPE = 'M ' THEN 'IX-SC.M'
WHEN ACCESSTYPE = 'MX' THEN 'IX-SC.X'
WHEN ACCESSTYPE = 'MI' THEN 'IX-SC.I'
WHEN ACCESSTYPE = 'MU' THEN 'IX-SC.U'
WHEN ACCESSTYPE = 'T' THEN 'IX-SPRS'
WHEN ACCESSTYPE = ' ' THEN ' '
ELSE NULL
END AS ACCESS,
CASE WHEN ACCESSTYPE = 'R ' THEN ' '
WHEN PRIMARY_ACCESSTYPE = 'D'
THEN ' '
ELSE SUBSTR(ACCESSNAME,1,12)
END AS INDEX,
SUBSTR(TNAME,1,12) AS TABLE,
CASE
WHEN TABLE_TYPE IS NULL THEN ' '
ELSE TABLE_TYPE
END
AS TTYP,
CASE
WHEN METHOD = 3 THEN ' '
WHEN ACCESSTYPE = 'R ' THEN ' '
ELSE
SUBSTR(DIGITS(MATCHCOLS),5,1) CONCAT ' ' CONCAT INDEXONLY
END
AS MC_O,
CASE METHOD
WHEN 0 THEN ' '
WHEN 1 THEN 'NLJOIN'
WHEN 2 THEN 'SMJOIN'
WHEN 3 THEN 'SORT '
WHEN 4 THEN 'HYJOIN'
ELSE NULL END
AS METHOD,
CASE JOIN_TYPE
WHEN 'F' THEN 'FULL '
WHEN 'L' THEN 'LEFT '
WHEN 'S' THEN 'STAR '
ELSE ' ' END
AS JOIN,
SORTN_UNIQ CONCAT SORTN_JOIN CONCAT
SORTN_ORDERBY CONCAT SORTN_GROUPBY
AS UJOG,
SORTC_UNIQ CONCAT SORTC_JOIN CONCAT
SORTC_ORDERBY CONCAT SORTC_GROUPBY
AS UJOC,
TSLOCKMODE AS LCK,
SUBSTR(CORRELATION_NAME,1,4)
AS CORR,
CASE PARALLELISM_MODE
WHEN 'C' THEN 'CPU'
WHEN 'I' THEN 'I-O'
WHEN 'X' THEN 'SYSPLEX'
ELSE NULL END
AS PARAL,
STRIP(DIGITS(ACCESS_DEGREE),LEADING,'0')
CONCAT ' ' CONCAT STRIP(DIGITS(JOIN_DEGREE),LEADING,'0')
AS AJ_DEG,
STRIP(DIGITS(ACCESS_PGROUP_ID),LEADING,'0')
CONCAT ' ' CONCAT
STRIP(DIGITS(JOIN_PGROUP_ID),LEADING,'0')
AS PG_DEG,
STRIP(DIGITS(MERGE_JOIN_COLS),LEADING,'0')
AS MC,
PREFETCH AS PRE,
STRIP(DIGITS(A.QUERYNO),LEADING,'0')
AS QNO,
SUBSTR(DIGITS(QBLOCKNO),4,2) CONCAT ' '
CONCAT SUBSTR(DIGITS(PLANNO),4,2)
AS BL_PL,
A.PARENT_QBLOCKNO,
A.QBLOCKNO,
A.PLANNO,
A.TNAME,
A.ACCESSNAME,
A.OPTHINT,
A.HINT_USED,
A.APPLNAME,
A.COLLID,
A.PROGNAME,
A.VERSION,
A.TIMESTAMP,
A.QUERYNO ,
A.MIXOPSEQ,
A.BIND_TIME,
S.COST_CATEGORY,
S.PROCMS,
S.PROCSU,
S.REASON
FROM CMNBATCH.PLAN_TABLE A
LEFT JOIN CMNBATCH.DSN_STATEMNT_TABLE S
ON -- S.COLLID = A.COLLID
S.APPLNAME = A.APPLNAME
AND S.PROGNAME = A.PROGNAME
AND S.QUERYNO = A.QUERYNO
AND S.EXPLAIN_TIME = A.BIND_TIME
) ----------------------------------------------
SELECT * FROM V5A
where progName = 'YNZHIST'
-- and stmt = '000982'
AND VERSION = 'ZVHI0000395ACB65FEMVS'
-- AND VERSION = 'ZVHI0000395B3A344DMVS'
-- and bind_time = '2008-05-19-08.34.31.808699'
order by applname, progname, timestamp ,
queryNo, qblockno, planno
;
xelect PROCMS, PROCSU, float(procSu) / float(procMs) * 1000
from cmnbatch.dsn_statemnt_table
-- where progname = 'MF7270' and queryNo = 149
where group_member = 'DOF1' and procMS > 1000
fetch first 100 rows only
;
x
delete from A540769.plan_table
;
explain plan for -- set queryno = 149 for
SELECT count(*)
FROM oa1p.TWM005A1
WHERE D$GUEA <= ? AND D$GUEB >= ?
AND CSTAT BETWEEN ? AND ? AND CDEFAULT BETWEEN ? AND ?
AND CKAT = ? AND NVALOR = ? QUERYNO 149
for fetch only
;
select * from plan_view5
where queryno in ( 149, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
x
select * from cmnbatch.plan_view5
where progName = 'YYWM51E'
and stmt = '000149'
-- and version = 'WS8B000620'
-- and bind_time = '2008-05-19-08.34.31.808699'
order by applname, progname, timestamp ,
queryNo, qblockno, planno
;
------- dangelmeier
xelect * from cmnbatch.plan_view5a
where progName = 'YDWGBG'-- and timestamp > '200802'
and stmt = '000754'
and version = 'DEPO0000535AA7DD34MVS'
order by applname, progname, timestamp ,
queryNo, qblockno, planno
;
xelect *
from sysibm.syscoldist
where tbname like 'TWU11%'
-- and name = 'WU111003'
;
xelect a.* , b.*
from
(select case when 1=0 then 1 else null end k, 'a' t
from sysibm.sysdummy1 ) a
join
(select case when 1=0 then 1 else null end k, 'b' t
from sysibm.sysdummy1 ) b
on a.k = b.k --or (a.k is null and b.k is null)
;
x
select count(*), wu110021
from oa1p.twu110a1
group by wu110021
order by 1 desc
with ur
;
xelect count(*), wu111003
from oa1p.twu111a1
group by wu111003
order by 1 desc
with ur
;
x
set current sqlId = 'A540769';
delete from A540769.plan_table
;
explain plan set queryno = 111 for
select T111.auftrnr, -- /* Alle Daten */
t111.rectyp,
t111.ahnr,
t111.shlnr,
t111.shbu,
t111.uuid,
t111.bestauftr,
t111.briefnr,
t111.briefvar,
t111.antnr,
t111.antvar,
t111.antterm,
t111.sprache,
t111.verarbstat,
t111.ausgrund,
t110.paketid
from oa1p.VWU110A1V T110, -- /* Bestandestable */
oa1p.VWU111A1V T111 -- /* Auftragstable */
where t110.auftrnr = t111.auftrnr -- /* Auftragsnummer */
and t111.ahnr = 'abcdefgh' -- /* Aktionsheader */
and t110.paketid = 'abcedef' -- Paket-Nummer */
and t111.verarbstat = 123 -- /* Status */
group by T111.auftrnr, -- je Gruppe einmal
t111.rectyp,
t111.ahnr,
t111.shlnr,
t111.shbu,
t111.uuid,
t111.bestauftr,
t111.briefnr,
t111.briefvar,
t111.antnr,
t111.antvar,
t111.antterm,
t111.sprache,
t111.verarbstat,
t111.ausgrund,
t110.paketid
order by t111.ahnr, -- Sortierreihenfolge
t111.shlnr,
t111.shbu,
t111.auftrnr
for fetch only
;
select * from plan_view5
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
xelect queryNo, qBlockno, planno, timestamp, bind_time, version
from cmnbatch.plan_table
where progName = 'YDWGBG'-- and timestamp > '200802'
-- and stmt = '000754'
order by applname, progname, version , timestamp ,
queryNo, qblockno, planno
;
select * from cmnbatch.plan_view5
where progName = 'YDWGBG'-- and timestamp > '200802'
-- and stmt = '000754'
order by applname, progname, timestamp ,
queryNo, qblockno, planno
;
x -- Härdi 16.5.08
select * from cmnbatch.plan_view5
where progName = 'YYWM51E'-- and timestamp > '200802'
and stmt = '000153'
order by applname, progname, timestamp ,
queryNo, qblockno, planno
;
x
select ckat, count(*) from oa1p.tWM005A1
group by ckat
order by 2 desc
;
set current sqlId = 'A540769';
delete from A540769.plan_table
;
explain plan set queryno = 111 for
select
c.dbname, c.tsName, c.dsNum, s.pgSize,
icType, copyPagesf, dsName, timestamp,
case when timestamp > current timestamp - 24 hours then 'h'
else 'g' end gest
from sysibm.syscopy c, sysibm.systablespace s
where icType in ('F', 'I') and c.dbName like 'M%'
and s.dbName = c.dbName and s.name = c.tsName
;
explain plan set queryno = 222 for
select
c.dbname, c.tsName, c.dsNum, s.pgSize,
icType, copyPagesf, dsName, timestamp,
case when timestamp > current timestamp - 24 hours then 'h'
else 'g' end gest
from sysibm.syscopy c, sysibm.systablespace s
where icType in ('F', 'I') and c.dbName like 'M%'
and s.dbName = c.dbName and s.name = c.tsName
order by 1, 2,3, timestamp desc
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
select count(*), jobname, max(partition), min(partition)
from sysibm.syscopy c, sysibm.systablepart p
where c.dbName = p.dbName and c.tsName = p.tsname
and c.dsNum in (0, p.partition)
group by jobName
order by 1 desc
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
xelect *
from CMNBATCH.plan_view5
where progName = 'DBWK3'
order by applname, progname, queryNo, qblockno, planno
;
xelect count(*), auftrags_nummer, pm_id
from oa1t.vpw210a1V
group by auftrags_nummer, pm_id
order by 1 desc
;
--select count(*) from oa1t.TSN100A1
-- with ur
-- ;
select *
from CMNBATCH.plan_view5
where progName = 'YPW2KPI' and queryNo = 4235
order by applname, progname, queryNo, qblockno, planno
;
x
set current sqlid = 'A540769'
;
delete from plan_table where queryno in (111, 222)
;
select current timestamp from sysibm.sysdummy1
;
explain plan set queryno = 111 for
SELECT T.* FROM oa1t.VNI600A101A C
, oa1t.VNI203A101A T
WHERE T.PERENDDT >= DATE(C.CTRLTIMESTMPFROM)
AND C.CTRLID = 'NI6220R'
;
select current timestamp from sysibm.sysdummy1
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
explain plan set queryno = 222 for
WITH NI600 (PERENDDT) AS
(SELECT DATE(C.CTRLTIMESTMPFROM) AS ENDDT
FROM oa1t.VNI600A101A C
WHERE C.CTRLID = 'NI6220R'
)
SELECT T.* FROM NI600
,oa1t.VNI203A101A T
WHERE T.PERENDDT >= NI600.PERENDDT
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
select * from plan_view5
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
x
select *
from cmnbatch.plan_view5
where progName = 'YRPNIMP' and queryNo = 866
order by applname, progname, queryNo, qblockno, planno
;
x
d.bType, p.collid, p.Name, p.version,
p.conToken, p.timeStamp, p.type,
p.validate, p.isolation, p.valid, p.operative,
p.owner, p.qualifier
m sysibm.syspackdep d join sysibm.syspackage p
on p.location = d.dLocation and p.collid = d.dCollid
and p.name = d.dName and p.conToken = d.dConToken 2.22.129867'
re
(bQualifier, bName, bType) in
( select dbName, name, 'R'
from sysIbm.sysTablespace
where dbName in ('NF01A1A', 'NF02A1A', 'NF03A1A')
)
from gdb0283.vnz240a1v
where SearchValue01 = ?
-- dec(SearchValue01,15,3) = ?
and CreateDateTime < ?
and dec(SearchValue02,15,3) >= ?
and dec(SearchValue02,15,3) <= ?
and Objtype ^= 'PORDSPLT'
order by CreateDateTime
fetch first 101 rows only
optimize for 101 rows
with ur
;
select * from plan_view5A
where queryno = 999
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
select * from plan_table
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
}¢--- A540769.WK.SQL(EXPLAIXB) cre=2013-01-24 mod=2013-01-24-17.31.14 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
SELECT DISTINCT (substr(char(A.ET1SEOCC),1,4)), A.EN1ENTERTAG
FROM A540769.tper19 A
FOR FETCH ONLY
;
select * from plan_view1
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by --collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAIXX) cre=2010-12-13 mod=2015-02-11-17.02.26 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
delete from A540769.dsn_query_table;
delete from A540769.dsn_queryInfo_table;
explain plan set queryno = 3 for
select oa1p.fosFmtE7(cardF)
from sysibm.sysTables
where creator = 'SYSIBM' and name like 'SYSTAB%'
order by cardf Desc
;
select * from plan_view1
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
with ur
;
select * from plan_table
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from dsn_function_table
order by -- collid, progName, version, explain_time,
queryNo, qblockno
;
select * from dsn_STAT_FEEDBACK
;
select * from A540769.dsn_query_table;
select * from A540769.dsn_queryInfo_table;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAIXY) cre=2015-12-09 mod=2015-12-09-09.21.18 A540769 ---
with s as
(
select rz, dbSys, dbName, name, partition, instance
, max(updatestatstime) updatestatstime
from OA1P.TQZ006GBGRTSSTATS s0
where rz = 'RZ2' and dbSys = 'DBOF' and state = 'a'
and dbName in ('XC01A1P', 'XR01A1P')
and (name like 'A2%' or name like 'A5%')
group by rz, dbSys, dbName, name, partition, instance
)
, n as
(
select nN.*
, ( select max(nD.updatestatsTime)
from OA1P.TQZ006GBGRTSSTATS nD
where nS.rz = nD.rz and nS.dbSys = nD.dbSys
and nS.dbName = nD.dbName and nS.name = nD.name
and nS.partition = nD.partition
and nS.instance = nD.instance and nD.state = 'a'
and not
( nN.totalRows = nD.totalRows
and nN.nActive = nD.nActive
and nN.nPages = nD.nPages
and nN.reorgInserts = nD.reorgInserts
and nN.REORGDELETES = nD.REORGDELETES
and nN.REORGUPDATES = nD.REORGUPDATES
and nN.REORGMASSDELETE = nD.REORGMASSDELETE
and nN.dataSize = nD.dataSize
) ) difNew
from s nS
join OA1P.TQZ006GBGRTSSTATS nN
on nS.rz = nN.rz and nS.dbSys = nN.dbSys
and nS.dbName = nN.dbName and nS.name = nN.name
and nS.partition = nN.partition and nS.instance = nN.instance
and nS.updatestatstime = nN.updateStatsTime
)
, e as
(
select
( select min(updatestatsTime)
from OA1P.TQZ006GBGRTSSTATS a
where a.rz = d.rz and a.dbSys = d.dbSys and a.state = 'a'
and a.dbName = d.dbName and a.name = d.name
and a.partition = d.partition
and a.instance = d.instance
and a.updateStatsTime
> value(d.difNew, d.updateStatsTime - 1e-6 seconds)
) eqOld
, d.*
from n d
)
select *
from n
where name = 'A517A'
order by 1 desc , dbName, name, partition
;x;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
with s as
(
select rz, dbSys, dbName, name, partition, instance
, max(updatestatstime) updatestatstime
from OA1P.TQZ006GBGRTSSTATS s1
where rz = 'RZ2' and dbSys = 'DBOF' and state = 'a'
and dbName in ('XC01A1P', 'XR01A1P')
and (name like 'A2%' or name like 'A5%')
group by rz, dbSys, dbName, name, partition, instance
)
, n as
(
select nN.*
, ( select max(nD.updatestatsTime)
from OA1P.TQZ006GBGRTSSTATS nD
where nS.rz = nD.rz and nS.dbSys = nD.dbSys
and nS.dbName = nD.dbName and nS.name = nD.name
and nS.partition = nD.partition
and nS.instance = nD.instance and nD.state = 'a'
and not
( nN.totalRows = nD.totalRows
and nN.nActive = nD.nActive
and nN.nPages = nD.nPages
and nN.reorgInserts = nD.reorgInserts
and nN.REORGDELETES = nD.REORGDELETES
and nN.REORGUPDATES = nD.REORGUPDATES
and nN.REORGMASSDELETE = nD.REORGMASSDELETE
and nN.dataSize = nD.dataSize
) ) difNew
from s nS
join OA1P.TQZ006GBGRTSSTATS nN
on nS.rz = nN.rz and nS.dbSys = nN.dbSys
and nS.dbName = nN.dbName and nS.name = nN.name
and nS.partition = nN.partition and nS.instance = nN.instance
and nS.updatestatstime = nN.updateStatsTime
)
, e as
(
select
( select min(updatestatsTime)
from OA1P.TQZ006GBGRTSSTATS a
where a.rz = d.rz and a.dbSys = d.dbSys
and a.dbName = d.dbName and a.name = d.name
and a.partition = d.partition
and a.instance = d.instance and a.state = 'a'
and a.updateStatsTime
> value(d.difNew, d.updateStatsTime - 1e-6 seconds)
) eqOld
, d.*
from n d
)
select char(value(strip(dbName) || ',' || strip(name)
|| ',' || partition
|| ',' || char(eqOld)
|| ',' || char(updateStatsTime), ''), 80) txt
from e
order by dbName, name, partition
;
select * from plan_view1
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAKAU) cre=2008-12-01 mod=2008-12-01-09.09.42 F540769 ---
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 111 for
SELECT FI10.TKKEY AS TKKEY
,KK2.VR4204S AS UNDERLAYER
,KK2.VR4204L AS LAUFNR
,KK2.VR4204G AS GENERATION
,KK2.KA4204T AS VERFALLP42
,KK1.KA4205 AS VERFALLP42DD
,FI10.VERFALL AS VERFALLFI04
,KK2.KA4204W AS BASISPREIS
,KK2.KA4204A AS KONTRAKT
,KK2.KK4222P AS BOERSE
,KK2.KK4222W AS WHRG
,FI21.KURSDATUM AS KURSDATUM
,FI21.KURS_LIEFERUNG AS PRICEFI04
FROM GDB0503.KK2 KK2
,GDB0503.KK1 KK1
,GDB0503.KB KB
,GDB0503.FI10 FI10
,GDB0503.FI21 FI21
WHERE KB.VR4204S = KK2.VR4204S
AND KB.VR4204L = KK2.VR4204L
AND KB.VR4204G = KK2.VR4204G
AND KB.KB4212P = KK2.KK4222P
AND KB.KB4212W = KK2.KK4222W
AND KK1.VR4204S = KK2.VR4204S
AND KK1.VR4204L = KK2.VR4204L
AND KK1.VR4204G = KK2.VR4204G
AND KK1.KA4204T = KK2.KA4204T
AND KK1.KA4204W = KK2.KA4204W
AND KK1.KA4204A = KK2.KA4204A
AND FI10.UNDERLAYER = KK2.VR4204S
AND FI10.LAUFNR = KK2.VR4204L
AND FI10.GENERATION = KK2.VR4204G
AND (
( FI10.VERFALL = '99991231' )
OR
( FI10.VERFALL = KK2.KA4204T )
)
AND FI10.BASISPREIS = KK2.KA4204W
AND FI10.KONTRAKT = KK2.KA4204A
AND FI10.BOERSE = KK2.KK4222P
AND FI10.WHRG = KK2.KK4222W
AND FI21.TKKEY = FI10.TKKEY
AND FI21.BOERSE = FI10.BOERSE
AND FI21.WHRG = FI10.WHRG
AND ( FI21.KURSDATUM = KK2.KK4224D_01
OR FI21.KURSDATUM = KK2.KK4224D_02
OR FI21.KURSDATUM = KK2.KK4224D_03
OR FI21.KURSDATUM = KK2.KK4224D_04
OR FI21.KURSDATUM = KK2.KK4224D_05
)
with ur
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
}¢--- A540769.WK.SQL(EXPLA5CM) cre=2010-07-28 mod=2010-07-28-14.56.27 A540769 ---
set current sqlId = 'A540769';
delete from plan_table where queryno in (3, 4) ;
explain plan set queryno = 3 for
select * from SSXX28Q0.VIEW_EVENTS ;
explain plan set queryno = 7 for
select * from SSXX28Q0.VIEW_EVENTS WHERE DATA_SMNM = 'WI0100' ;
select p.* from plan_view2 p
-- where queryno in (3, 4)
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
select current timestamp from sysibm.sysdummy1;
select * from SSXX28Q0.VIEW_EVENTS WHERE DATA_SMNM = 'WI0100' ;
select current timestamp from sysibm.sysdummy1;
}¢--- A540769.WK.SQL(EXPLA5FI) cre=2010-08-03 mod=2010-08-03-15.37.04 A540769 ---
-- select * from tstRts.TrtsReoTSException;
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 1 for
select count(*), min(verfall), max(verfall)
from GDB0351.vFI027A1 where tkKey = 5003240
;
explain plan set queryno = 11 for
select count(*), min(verfall), max(verfall)
from GDB0351.vFI027A1 where tkKey = ?
;
select * from plan_view2
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
}¢--- A540769.WK.SQL(EXPLHIST) cre=2011-01-25 mod=2011-01-25-14.14.36 A540769 ---
with e as
(
select count(*) c, progName pg, version vr, collid co, bind_time bt
from cmnBatch.plan_table
group by progName, version, collid, bind_time
)
select substr(e.pg, 1, 8) pg, p.pcTimeStamp, e.bt, c, vr,
e.*, p.*
from e
full outer join sysibm.sysPackage p
on e.co = p.collid and e.pg = p.name and e.vr = p.version
where e.pg = 'YYWM51E'
order by e.pg, p.pcTimeStamp desc, e.bt desc
with ur
}¢--- A540769.WK.SQL(EXPLMAT) cre=2007-05-14 mod=2007-05-14-12.14.41 F540769 ---
delete from plan_table where queryno = 999
;
set current refresh age = any;
select current refresh age from sysibm.sysdummy1;
explain plan set queryno = 999 for
SELECT NI920001
, NI920002
, NI920003
, COUNT(*) COUNT
, SUM(CASE WHEN NI920005 ='U' THEN 1 ELSE 0 END) URVRS
, SUM(CASE WHEN NI920005 ='S' THEN 1 ELSE 0 END) SRVS
, SUM(CASE WHEN NI920005 ='E' THEN 1 ELSE 0 END) ERRS
, SUM(CASE WHEN NI920005 ='W' THEN 1 ELSE 0 END) WARNS
, SUM(CASE WHEN NI920005 ='I' THEN 1 ELSE 0 END) INFOS
FROM gdb0237.TNI920A101A
WHERE NI920001='20070511'
GROUP BY NI920001
, NI920002
, NI920003
;
select * from plan_view5
where queryno = 999
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
x
select * from plan_table
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
}¢--- A540769.WK.SQL(EXPLMODE) cre=2014-02-05 mod=2014-02-05-13.00.14 A540769 ---
-- explain mode yes: explain wie üblich
-- statements in dsn_statement_cache_table
delete from A540769.plan_table;
delete from A540769.dsn_statement_cache_table;
commit;
set current explain mode explain
;
set current explain mode yes
;
select strip(tbcreator) || '.' || strip(tbName), c.*
from sysibm.sysColumns c
where name like '%CLUST%' and tbCreator = 'SYSIBM'
order by 1
;
set current explain mode no
;
select * from A540769.plan_view1
;
select * from A540769.dsn_statement_cache_table
;
rollback
}¢--- A540769.WK.SQL(EXPLVERS) cre=2008-09-18 mod=2008-09-18-12.27.25 F540769 ---
select char(collid, 8) coll, char(progName, 8) pgm,
char(version, 12) vers,
bind_time,
count(*) cnt, min(timestamp) tst_min, max(timestamp) tst_max,
count(distinct timestamp) tsts,
count(distinct queryNo) ques,
COLLID, APPLNAME, PROGNAME, version
from cmnbatch.plan_table
where progName like 'YYWM0%'
group by COLLID, APPLNAME, PROGNAME, version, bind_time
order by progName, version, collid, bind_time
with ur
}¢--- A540769.WK.SQL(EXPOS) cre=2013-05-23 mod=2013-05-23-13.41.13 A540769 -----
with s (h, n) as
(
select 'abcdAbcdAb', 'a' from sysibm.sysDummy1
union all select 'abcdAbcdAb', 'c' from sysibm.sysDummy1
union all select 'abcdAbcdAb', 'd' from sysibm.sysDummy1
union all select 'abcdAbcdAb', 'q' from sysibm.sysDummy1
)
select locate(n, h) "locate(n, h)"
, locate_in_string(h, n) "locate_in_string(h, n)"
, locate_in_string(h, n, 5) "l_i(h, n, 5)"
, locate_in_string(h, n, 1, 2) "l_i(h, n, 1, 2)"
, substr(h, locate(n,h)+1, 10) || '|'
-- , posstr(h, n) -- needle muss konstante sein|
, n, h
from s
}¢--- A540769.WK.SQL(EXPSTAVV) cre=2011-02-11 mod=2011-02-11-16.26.27 A540769 ---
$#@
$>.fEdit('~wk.texv(tt)')
$<|¢
tb
VTINSTRFLATSYMBOLS
VTCASHFLOW
VTINSTRUMENTEVENT
$!
wh = ''
$@forWith r $@¢
if $tb \== '' then
wh = wh", '"$tb"'"
$** $$ tbl $TABLE
$!
$@=¢
select *
from sysibm.sysTables
where creator = 'VDPS2' and name in ($-{substr(wh, 3)})
$!
$|
call sqlConnect dbtf
call sqlSel
$| call fmtFTab
$#end
$|
$@forWith r $@¢
if $STATSTIME < '2011-01' then
$$ $' INCLUDE TABLESPACE' $*+
$-{strip($DBNAME)}.$-{strip($TSNAME)} -- $STATSTIME $SPACEF
else
$$ $'--' ${DBNAME}.$TSNAME -- $STATSTIME
$!
call sqlDisconnect
$| $@=¢
//A540769S JOB (CP00,KE50),
// 'CATALOG',MSGCLASS=T,TIME=1440,
// NOTIFY=&SYSUID,REGION=0M
//*MAIN CLASS=LOG
//STEP1 EXEC PGM=DSNUTILB,TIME=1440,
// PARM=(DBAF,'A540769S.RUNSTA'),
// REGION=0M
//*DSSPRINT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//UTPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//RNPRIN01 DD SYSOUT=*
//SYSIN DD *
LISTDEF LST#STA
$@for i $$ $i
OPTIONS EVENT (ITEMERROR, SKIP)
RUNSTATS TABLESPACE LIST LST#STA
SHRLEVEL CHANGE
TABLE(ALL)
INDEX (ALL KEYCARD -- FREQVAL NUMCOLS 1 COUNT 10 BOTH
-- FREQVAL NUMCOLS 2 COUNT 10 BOTH
)
UPDATE ALL REPORT NO
$!
$#out 20110211 14:36:09
$#out 20110211 14:08:17
$#out 20110211 14:08:03
*** run error tsoAlloc rc 12 for alloc dd(CAT1) SHR DSN('A540769.WK.TEXV(TT)')
$#out 20110211 14:07:34
*** run error adrTso rc 1 for execio 4 diskw CAT1 (stem M.FILETSO.BUF1.)
$#out 20110211 14:07:18
*** run error tsoAlloc rc 12 for alloc dd(CAT1) NEW recfm(f b) lrecl(80) block(
$#out 20110211 14:06:50
@O.133.1 class=SQL133, NAME=VTCASHFLOW, CREATOR=VDPS2, TYPE=T, DBNAME=VV27A1T...
@O.133.2 class=SQL133, NAME=VTINSTRFLATSYMBOLS, CREATOR=VDPS2, TYPE=T, DBNAME...
@O.133.3 class=SQL133, NAME=VTINSTRUMENTEVENT, CREATOR=VDPS2, TYPE=T, DBNAME=...
$#out 20110211 14:06:04
*** run error no method o2String in class SQL133 of object O.133.1
$#out 20110211 14:05:24
}¢--- A540769.WK.SQL(EXPVIIA) cre=2008-08-22 mod=2008-09-01-15.03.54 F540769 ---
DECLARE GLOBAL TEMPORARY TABLE
IDS (GM CHAR(16) ,ZV CHAR(16))
;
CREATE UNIQUE INDEX SESSION.XIDS
ON SESSION.IDS (GM ASC, zv asc);
--EXPLAIN PLAN SET QUERYNO = 9901 FOR
INSERT INTO SESSION.IDS
WITH J AS
( SELECT T.*
FROM OA1A.TMF150A1 T, OA1A.VMF202A1
WHERE MF150085 IN(0,10)
AND MF150084 IN(0,2)
AND MF150060 BETWEEN TEV_TIMESTAMP AND
TRANSLATE('7890-45-12',TEV_DAT_NEXT,'1234567890')¨¨'-23.00.00.000000'
AND MF150003 IN('CNGM1','CNZV1')
AND MF150009 = '00805'
)
SELECT GM.MF150001 , MIN(ZV.MF150001) END
FROM J GM, J ZV
WHERE GM.MF150003 = 'CNGM1'
AND ZV.MF150003 = 'CNZV1'
AND GM.MF150009 = '00805'
AND ZV.MF150009 = '00805'
AND ABS(ZV.MF150018) BETWEEN ABS(GM.MF150018)
AND ABS(GM.MF150018) * 1.06
group by GM.MF150001
;
select * from session.ids;
SELECT * FROM OA1A.VMF150A1V
WHERE ID_MITTELFLUSS IN (SELECT Distinct gm FROM SESSION.IDS)
union SELECT * FROM OA1A.VMF150A1V
WHERE ID_MITTELFLUSS IN (SELECT Distinct zv FROM SESSION.IDS)
WITH UR
;
rollback
;
xelete FROM OA1P.VMF150A1V
WHERE ID_MITTELFLUSS IN (SELECT gm FROM SESSION.IDS )
;
delete FROM OA1P.VMF150A1V
where ID_MITTELFLUSS IN (SELECT zv FROM SESSION.IDS )
;
rollback
;
}¢--- A540769.WK.SQL(EXPVIIAA) cre=2008-09-01 mod=2008-09-01-14.56.50 F540769 ---
DECLARE GLOBAL TEMPORARY TABLE
IDS (GM CHAR(16) ,ZV CHAR(16), pp char(4))
;
CREATE UNIQUE INDEX SESSION.XIDS
ON SESSION.IDS (GM ASC, zv asc)
;
INSERT INTO SESSION.IDS
WITH J AS
( SELECT T.*
FROM oa1a.TMF150A1 T, oa1a.VMF202A1
WHERE MF150085 IN(0,10)
AND MF150084 IN(0,2)
AND MF150060 BETWEEN TEV_TIMESTAMP AND
TRANSLATE('7890-45-12',TEV_DAT_NEXT,'1234567890')¨¨'-23.00.00.000000'
AND MF150003 IN('CNGM1','CNZV1')
AND MF150009 = '00805'
)
SELECT GM.MF150001 , ZV.MF150001,
left(GM.MF150001, 1) || substr(GM.MF150001, 10, 1)
|| left(ZV.MF150001, 1) || substr(ZV.MF150001, 10, 1)
FROM J GM, J ZV
WHERE GM.MF150003 = 'CNGM1'
AND ZV.MF150003 = 'CNZV1'
AND GM.MF150009 = '00805'
AND ZV.MF150009 = '00805'
AND ABS(ZV.MF150018) BETWEEN ABS(GM.MF150018)
AND ABS(GM.MF150018) * 1.06
-- group by GM.MF150001
;
select gm, min(zv) from session.ids group by gm;
select * from session.ids;
SELECT i.pp, m.* FROM session.ids i, oa1a.VMF150A1V m
WHERE m.ID_MITTELFLUSS = i.gm
union SELECT i.pp, m.* FROM session.ids i, oa1a.VMF150A1V m
WHERE m.ID_MITTELFLUSS = i.zv
;
rollback
;
xelete FROM OA1P.VMF150A1V
WHERE ID_MITTELFLUSS IN (SELECT gm FROM SESSION.IDS )
;
xelete FROM OA1P.VMF150A1V
where ID_MITTELFLUSS IN (SELECT zv FROM SESSION.IDS )
;
rollback
;
}¢--- A540769.WK.SQL(EXPVIIB) cre=2008-09-04 mod=2008-09-04-09.21.17 F540769 ---
DECLARE GLOBAL TEMPORARY TABLE
IDS (GM CHAR(16) ,ZV CHAR(16))
;
CREATE UNIQUE INDEX SESSION.XIDS
ON SESSION.IDS (GM ASC, zv asc);
EXPLAIN PLAN SET QUERYNO = 9901 FOR
INSERT INTO SESSION.IDS
WITH J AS
( SELECT T.*
FROM OA1A.TMF150A1 T, OA1A.VMF202A1
WHERE MF150085 IN(0,10)
AND MF150084 IN(0,2)
AND MF150060 BETWEEN TEV_TIMESTAMP AND
TRANSLATE('7890-45-12',TEV_DAT_NEXT,'1234567890')¨¨'-23.00.00.000000'
AND MF150003 IN('CNGM1','CNZV1')
AND MF150009 = '00805'
)
SELECT MIN(gm), zv
FROM (
SELECT GM.MF150001 gm , MIN(ZV.MF150001) zv
FROM J GM, J ZV
WHERE GM.MF150003 = 'CNGM1'
AND ZV.MF150003 = 'CNZV1'
AND GM.MF150009 = '00805'
AND ZV.MF150009 = '00805'
AND ABS(ZV.MF150018) BETWEEN ABS(GM.MF150018)
AND ABS(GM.MF150018) * 1.06
GROUP BY GM.MF150001
) g1
GROUP BY ZV
;
select * from plan_view5a
where queryno in ( 9901 )
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
x
select * from session.ids;
SELECT * FROM OA1A.VMF150A1V
WHERE ID_MITTELFLUSS IN (SELECT Distinct gm FROM SESSION.IDS)
union SELECT * FROM OA1A.VMF150A1V
WHERE ID_MITTELFLUSS IN (SELECT Distinct zv FROM SESSION.IDS)
WITH UR
;
rollback
;
xelete FROM OA1P.VMF150A1V
WHERE ID_MITTELFLUSS IN (SELECT gm FROM SESSION.IDS )
;
delete FROM OA1P.VMF150A1V
where ID_MITTELFLUSS IN (SELECT zv FROM SESSION.IDS )
;
rollback
;
}¢--- A540769.WK.SQL(EXPVIV) cre=2008-08-06 mod=2008-08-06-13.54.37 F540769 ----
SET CURRENT SQLID = 'A540769';
delete from A540769.plan_table where queryno = 81
;
EXPLAIN PLAN SET QUERYNO = 81 FOR
SELECT *
FROM oa1t.VMF150A1V
WHERE ID_MITTELFLUSS IN(
SELECT AB.ID_MITTELFLUSS
FROM TABLE
(SELECT ID_MITTELFLUSS,CIFNUMMER_KUNDE,BUCHUNGSDATUM,
ZU_ABFLUSS,POLICEN_NR,KURSDATUM,KURSWHGR,
NOMINAL_STUECK
FROM oa1t.VMF150A1V JOIN oa1t.TMF401A1
ON ID_MITTELFLUSS = UUID
WHERE LIFE_CYCLE_STATUS = 10
AND TRANSACTION_TYP = 20
AND ERSTELLUNGSTIMSTMP BETWEEN
CURRENT TIMESTAMP - 1 DAY
AND CURRENT TIMESTAMP
AND BETRAG_FWHRG < 0
AND VALOR_SEQUENZ = 'NDF'
) AS AB
,TABLE
(SELECT ID_MITTELFLUSS,CIFNUMMER_KUNDE,BUCHUNGSDATUM,
ZU_ABFLUSS,POLICEN_NR,KURSDATUM,KURSWHGR,
NOMINAL_STUECK
FROM oa1t.VMF150A1V JOIN oa1t.TMF401A1
ON ID_MITTELFLUSS = UUID
WHERE LIFE_CYCLE_STATUS = 10
AND TRANSACTION_TYP = 20
AND ERSTELLUNGSTIMSTMP BETWEEN
CURRENT TIMESTAMP - 1 DAY
AND CURRENT TIMESTAMP
AND BETRAG_FWHRG > 0
AND VALOR_SEQUENZ = 'NDF'
) AS ZU
WHERE AB.CIFNUMMER_KUNDE = ZU.CIFNUMMER_KUNDE
AND AB.BUCHUNGSDATUM = ZU.BUCHUNGSDATUM
AND AB.POLICEN_NR = ZU.POLICEN_NR
AND AB.KURSDATUM = ZU.KURSDATUM
AND AB.KURSWHGR = ZU.KURSWHGR
AND AB.NOMINAL_STUECK = ZU.NOMINAL_STUECK
UNION ALL
SELECT ZU.ID_MITTELFLUSS
FROM TABLE
(SELECT ID_MITTELFLUSS,CIFNUMMER_KUNDE,BUCHUNGSDATUM,
ZU_ABFLUSS,POLICEN_NR,KURSDATUM,KURSWHGR,
NOMINAL_STUECK
FROM oa1t.VMF150A1V JOIN oa1t.TMF401A1
ON ID_MITTELFLUSS = UUID
WHERE LIFE_CYCLE_STATUS = 10
AND TRANSACTION_TYP = 20
AND ERSTELLUNGSTIMSTMP BETWEEN
CURRENT TIMESTAMP - 1 DAY
AND CURRENT TIMESTAMP
AND BETRAG_FWHRG < 0
AND VALOR_SEQUENZ = 'NDF'
) AS AB
,TABLE
(SELECT ID_MITTELFLUSS,CIFNUMMER_KUNDE,BUCHUNGSDATUM,
ZU_ABFLUSS,POLICEN_NR,KURSDATUM,KURSWHGR,
NOMINAL_STUECK
FROM oa1t.VMF150A1V JOIN oa1t.TMF401A1
ON ID_MITTELFLUSS = UUID
WHERE LIFE_CYCLE_STATUS = 10
AND TRANSACTION_TYP = 20
AND ERSTELLUNGSTIMSTMP BETWEEN
CURRENT TIMESTAMP - 1 DAY
AND CURRENT TIMESTAMP
AND BETRAG_FWHRG > 0
AND VALOR_SEQUENZ = 'NDF'
) AS ZU
WHERE AB.CIFNUMMER_KUNDE = ZU.CIFNUMMER_KUNDE
AND AB.BUCHUNGSDATUM = ZU.BUCHUNGSDATUM
AND AB.POLICEN_NR = ZU.POLICEN_NR
AND AB.KURSDATUM = ZU.KURSDATUM
AND AB.KURSWHGR = ZU.KURSWHGR
AND AB.NOMINAL_STUECK = ZU.NOMINAL_STUECK
)
WITH UR;
select * from plan_view5
where queryno in ( 81, 91)
order by applname, progname, queryNo, qblockno, planno
;
commit
;
}¢--- A540769.WK.SQL(EXRAISE) cre=2013-08-05 mod=2013-08-05-13.43.30 A540769 ---
select case when 1=0 then 'c1'
when 1=0 then raise_error('80000', 'dieser error....')
when 1=1 then raise_error(
70000 + hour( current timestamp)*100
+ minute(current timestamp)
, 'ein Fehler um ' || char(current timestamp)) end
from sysibm.sysDummy1
}¢--- A540769.WK.SQL(EXRECURS) cre=2013-09-04 mod=2013-09-04-16.55.09 A540769 ---
with a (id, nm) as
( select 1, 'apple' from sysibm.sysDummy1
union all select 1, 'tomato' from sysibm.sysDummy1
union all select 1, 'potato' from sysibm.sysDummy1
union all select 2, 'banana' from sysibm.sysDummy1
union all select 2, 'peach' from sysibm.sysDummy1
)
, n as
(
select a.*
, row_number() over (partition by id order by nm) n
from a
)
, j (m, id, nms) as
(
select 'j', n1.id, n1.nm || value(', ' || n2.nm, '')
|| value(', ' || n3.nm, '')
from n n1
left join n n2 on n1.id = n2.id and n2.n = 2
left join n n3 on n1.id = n3.id and n3.n = 3
where n1.n = 1
)
, r (id, nms, lv) as
(
select id, cast(nm as varchar(50)), 1 from n where n=1
union all select r.id, r.nms || ', ' || n.nm, lv+1
from r join n on r.id = n.id and n.n = r.lv+1
where lv < 999999
)
select * from j
union all select 'r', id, nms from r s
where not exists ( select 1 from r g
where s.id = g.id and g.lv > s.lv)
}¢--- A540769.WK.SQL(EXREPL) cre=2012-06-07 mod=2012-06-07-13.21.42 A540769 ----
select replace('abc?1efg?2hij?1klm'
, substr( char(current date) || '?' || '5', 11)
, char(current date))
from sysibm.sysDummy1
}¢--- A540769.WK.SQL(EXREPLAC) cre=2013-05-26 mod=2013-05-26-12.10.14 A540769 ---
with s (s) as
(
select 'a b cde f g ' from sysibm.sysDummy1
)
select s, replace(s, ' '), replace (s, ' ', '?'), replace(s, ' ', '???')
from s
}¢--- A540769.WK.SQL(EXRID) cre=2013-06-07 mod=2015-04-09-17.07.49 A540769 -----
set current sqlid = 'S100447';
select rid(c), strip(tbCreator) || '.' || strip(tbName)
|| '.' ||strip(name)
from sysibm.sysColumns c
where tbCreator = 'SYSIBM'
order by name
fetch first 10 rows only
;
create global temporary table session.r (r bigInt, nm char(100))
-- with no data on commit preserve rows
;
insert into session.r
select rid(c)
, strip(tbCreator) || '.' || strip(tbName) || '.' ||strip(name)
from sysibm.sysColumns c
where tbCreator = 'SYSIBM'
order by name
fetch first 10 rows only
;
select rid(c)
, strip(tbCreator) || '.' || strip(tbName) || '.' ||strip(name)
from sysibm.sysColumns c
where rid(c) in (select r from session.r)
;
select rid(c)
, strip(tbCreator) || '.' || strip(tbName) || '.' ||strip(name)
, r.*
from sysibm.sysColumns c join session.r r
on rid(c) = r.r
;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 1 for
select rid(c)
, strip(tbCreator) || '.' || strip(tbName) || '.' ||strip(name)
from sysibm.sysColumns c
where rid(c) = 234
;
explain plan set queryno = 2 for
select rid(c)
, strip(tbCreator) || '.' || strip(tbName) || '.' ||strip(name)
from sysibm.sysColumns c
where rid(c) = 234 or rid(c) = 6789234
;
explain plan set queryno = 3 for
select rid(c)
, strip(tbCreator) || '.' || strip(tbName) || '.' ||strip(name)
from sysibm.sysColumns c
where rid(c) in (select r from session.r)
;
explain plan set queryno = 7 for
select rid(c)
, strip(tbCreator) || '.' || strip(tbName) || '.' ||strip(name)
, r.*
from sysibm.sysColumns c join session.r r
on rid(c) = r.r
;
select * from plan_view1
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by --collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
rollback
;;;;
select rid(t), hex(rid(t)), t.*
from BUA.TXBC041 t
where rid(t) = 4075884
; x;
select rid(t), hex(rid(t)), name
from sysibm.sysTables t
-- where name like 'TMF150%'
where rid(t) = 421384
;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
select rid(t), hex(rid(t)), name
from sysibm.sysTables t
-- where name like 'TMF150%'
where rid(t) = 421384
;
select * from plan_view1
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by --collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(EXROWCHA) cre=2011-11-14 mod=2011-11-14-11.39.28 A540769 ---
select row change timestamp for p,
hex(row change token for p), p.*
from cmnbatch.plan_view1 p
where progName = 'MF7300'
order by 1
}¢--- A540769.WK.SQL(EXROWCH2) cre=2012-07-19 mod=2012-07-20-10.01.10 A540769 ---
set current sqlid = 'S100447';
drop table A540769.r2 ;
create table A540769.r2 (
-- , r2 timestamp not null generated always
-- for each row on update as row change timestamp
ROWCHg TIMESTAMP NOT NULL GENERATED ALWAYS
FOR EACH ROW ON UPDATE AS ROW CHANGE TIMESTAMP
, tx varchar(500) not null
) in dA540769.Aper15
;
TERMINATOR ? ;
create trigger A540769.r2AftUpd
no cascade before update on A540769.r2
referencing New as n old as o
for each row mode db2sql begin atomic
set tx = left('old=' || char(o.rowChg)
|| ', new=' || char(n.rowChg) || ', before ' || o.tx
, 500)
;
end
?
TERMINATOR ; ?
insert into A540769.r2 (tx) values('1');
insert into A540769.r2 (tx) values('2');
select * from A540769.r2 ;
update A540769.r2 set tx = 'u';
select * from A540769.r2 ;
}¢--- A540769.WK.SQL(EXROWNUM) cre=2016-09-15 mod=2016-09-15-15.18.44 A540769 ---
with r as
(
select row_number() over (partition by left(dbName, 1)
order by creator, name desc) rn
, strip(creator) || '.' || name crNm
, t.*
from sysibm.systables t
)
select *
from r
where 1 = rn
}¢--- A540769.WK.SQL(EXSCROLL) cre=2014-03-13 mod=2014-03-13-17.53.34 A540769 ---
$#@
call errReset 'h', "say 'err ox='ox':' arg(1)"
call sqlConnect dp4g
src = "select name, row_number() over() rn" ,
"from sysibm.sysTables" ,
"where creator = 'SYSIBM' and name like 'DSN%'"
cx = 7
attr = 'with hold'
attr = 'insensitive scroll with hold'
cCom = 1e9
res = sqlExec('prepare s'cx 'attributes :attr from :src')
if 1 then do /* open close cursor, do we get sqlCode -497 ?
with scroll at 11768
without scroll not
hold is irrelevant */
do ox=1
if ox // 1000 = 1 then
say ox time('e')
res = sqlExec('declare c'cx 'cursor for s'cx)
res = sqlExec('open c'cx)
res = sqlExec('close c'cx)
if ox // cCom = 0 then
say ox 'commit' sqlCOmmit()
end
end
else if 1 then do /* scroll forward/backward thru cursor */
res = sqlExec('prepare s'cx 'attributes :attr from :src')
res = sqlExec('declare c'cx 'cursor for s'cx)
res = sqlExec('open c'cx)
do ox=1 until res <> 0
if ox // 4 = 0 then
ori = 'prior'
else
ori = ''
res = sqlExec('fetch' ori 'c'cx 'into :nm, :rn')
say right(ox, 3) left(ori, 10) res':' rn nm
if ox // cCom = 0 then
say ox 'commit' sqlCOmmit()
end
res = sqlExec('close c'cx)
end
$#out 20140313 17:15:53
}¢--- A540769.WK.SQL(EXSERVER) cre=2013-07-19 mod=2013-07-19-07.19.20 A540769 ---
with nmC1 as
(
select right(strip(current server), 4) dbSys
from sysibm.sysDummy1
)
, nmC2 as
( select case when posStr(dbSys, 'V') > 0 then 'V'
when dbSys = 'DBAF' then 'A'
when dbSys = 'DBTF' then 'T'
else 'P'
end nmCn, dbSys
from nmC1
)
, nmCn as
( select case when nmCn = 'V' then 'BUA' else 'OA1' || nmCn end cr
, case when nmCn = 'V' then '' else '99' end cr99
, nmCn, dbSys
from nmC2
)
select * from nmCn
}¢--- A540769.WK.SQL(EXSORT) cre=2011-11-17 mod=2011-11-17-13.45.54 A540769 ----
select *
from sysibm.systables
order by lower(name)
}¢--- A540769.WK.SQL(EXSTRLEN) cre=2015-12-14 mod=2015-12-14-17.29.08 A540769 ---
$#@
call sqlConnect
if 1 then $@¢
s = 'abcd' || x'ff' || 'fghij'
do forever
say 'rexx' length(s)
say 'sql ' sql2one("select 'len=' ||length('"s"') || ' unicodeLen='",
"|| length(cast('"s"' as varchar(32000) ccsid unicode))",
"from sysibm.sysDummy1")
s = copies(s, 10)
end
$! else $@¢
eMsg = left("so'/=.''''oder'so", 3000, 'a')
if length(eMsg) > 2000 then
eMsg = left(eMsg, 1997)'...'
say 'len' length(eMsg) length(quote(eMsg, "'")) left(eMsg, 30)
eMsg = "cast("quote(eMsg, "'")" as varchar(6000) ccsid unicode)"
asUni = "as varchar(6000) ccsid unicode"
id = -234
install = '01.01.1956'
tst = '1956-04-01-00.00.00'
call sqlUpdate 3, "update oa1p.tQZ043BindGen" ,
"set result = '"res"', cmJob = '"jobPP"'" ,
", resTst = current timestamp" ,
", cmRes =" cmRes ,
", errMsg = case when length(cast("quote(eMsg, "'") asUni ,
")) < 2000 then" quote(eMsg,"'") ,
"else" quote(left(eMsg, 1500),"'") "end" ,
"where genId =" id ,
"and cmPkg = '"pkg"' and genTst = '"tst"'" ,
"and appl = '"appl"' and install = '"install"'" ,
"and rz = '"rz"' and dbSys = '"dbSys"'"
call sqlUpdate ,'rollback'
say 'rollback'
$*(
", errMsg = case when length(cast("quote(eMsg, "'") asUni ,
")) < 2000 then" quote(eMsg,"'") ,
"else" quote(left(eMsg, 1500),"'") "end" ,
$*)
$!
say 'after'
$#out 20151214 17:25:51
*** run error ***
SQLCODE = -102: STRING CONSTANT IS TOO LONG. STRING BEGINS
"abcdXfffgh"
src select 'len=' ||length('abcdXfffghijabcdXfffgh...
> >>>pos 24 of 240118>>>
sql = select 'len=' ||length('abcdXfffghijabcdXfffghijabcdXfffghijabcdXfffghijab
stmt = prepare s49 into :M.SQL.49.D from :src
with into :M.SQL.49.D = M.SQL.49.D
$#out 20151214 13:35:08
*** run error ***
SQLCODE = -102: STRING CONSTANT IS TOO LONG. STRING BEGINS
"ab/=:fghij"
src select 'len=' ||length('ab/=:fghijab/=:fghijab...
> >>>pos 24 of 200118>>>
sql = select 'len=' ||length('ab/=:fghijab/=:fghijab/=:fghijab/=:fghijab/=:fghij
stmt = prepare s49 into :M.SQL.49.D from :src
with into :M.SQL.49.D = M.SQL.49.D
$#out 20151214 13:32:52
*** run error ***
SQLCODE = -102: STRING CONSTANT IS TOO LONG. STRING BEGINS
"ab/=.fghij"
src select 'len=' ||length('ab/=.fghijab/=.fghijab...
> >>>pos 24 of 200118>>>
sql = select 'len=' ||length('ab/=.fghijab/=.fghijab/=.fghijab/=.fghijab/=.fghij
stmt = prepare s49 into :M.SQL.49.D from :src
with into :M.SQL.49.D = M.SQL.49.D
$#out 20151214 13:32:30
*** run error ***
SQLCODE = -102: STRING CONSTANT IS TOO LONG. STRING BEGINS
"ab/=.fghij"
src select 'len=' ||length('ab/=.fghijab/=.fghijab...
> >>>pos 24 of 200118>>>
sql = select 'len=' ||length('ab/=.fghijab/=.fghijab/=.fghijab/=.fghijab/=.fghij
stmt = prepare s49 into :M.SQL.49.D from :src
with into :M.SQL.49.D = M.SQL.49.D
$#out 20151214 13:25:02
*** run error ***
SQLCODE = -404: THE SQL STATEMENT SPECIFIES A STRING THAT IS
TOO LONG
warnings 4=W no where
sql = update oa1p.tQZ043BindGen set result = 'RES', cmJob = 'JOBPP' , resTst = c
$#out 20151214 13:22:45
SQLCODE = 100, NOT FOUND: ROW NOT FOUND FOR FETCH, UPDATE, OR
DELETE, OR THE RESULT OF A QUERY IS AN EMPTY TABLE
sql = update oa1p.tQZ043BindGen set result = 'RES', cmJob = 'JOBPP' , resTst = c
$#out 20151214 13:22:05
SQLCODE = 100, NOT FOUND: ROW NOT FOUND FOR FETCH, UPDATE, OR
DELETE, OR THE RESULT OF A QUERY IS AN EMPTY TABLE
sql = update oa1p.tQZ043BindGen set result = 'RES', cmJob = 'JOBPP' , resTst = c
$#out
}¢--- A540769.WK.SQL(EXSUBSTR) cre=2014-09-25 mod=2014-09-25-09.15.18 A540769 ---
select substr(varchar('abcdef', 40), 3, 20)
from sysibm.sysDummy1
}¢--- A540769.WK.SQL(EXTEMP) cre=2015-01-12 mod=2015-01-12-11.49.07 A540769 ----
set current sqlid = 'S100447';
select *
from oa1p.TQZ041BINDPARM
for system_time as of '2014-10-01-00.00.00'
fetch first 10 rows only
;
create view A540769.ttt as
select * from oa1p.TQZ041BINDPARM
;
select * from A540769.ttt
for system_time as of '2014-10-01-00.00.00'
;
rollback
}¢--- A540769.WK.SQL(EXTERM) cre=2014-09-12 mod=2014-09-12-13.17.25 A540769 ----
select current timestamp from sysibm.sysDummy1;
--#SET TERMINATOR ?
select current timestamp from sysibm.sysDummy1?
select current
--#SET TERMINATOR /
timestamp from sysibm.sysDummy1/
select current
--#SET TERMINATOR \
timestamp from sysibm.sysDummy1\
}¢--- A540769.WK.SQL(EXTS) cre=2016-05-02 mod=2016-05-02-06.54.33 A540769 ------
set current sqlid = 'S100447';
create tablespace exTs in qz92a1t
numParts 256
dssize 64 g
bufferpool bp2
define no
;
rollback
}¢--- A540769.WK.SQL(EXTST) cre=2015-06-01 mod=2016-01-04-15.21.01 A540769 -----
with g2 as
(
select loadTs, max(updateStatsTime) stats
, days(max(updateStatsTime)) - days(loadTs) d1
from oa1p.tqz006gbgrTsStats
where rz = 'RR2' -- and dbSys = 'DP2G'
-- and loadTs > current timestamp - 1 month
group by rz, dbSys, loadTs
)
, g3 as
(
select g2.*
, case when stats <= loadTs then 0
when stats - (d1-1) days <= loadTs then d1-1
when stats - (d1 ) days <= loadTs then d1
else d1+1 end di
from g2
)
, g as
(
select g3.*
, stats - di days stMod
from g3
)
select *
from g
where stMod is null or loadTs is null or stats is null
or stMod > loadTs or stMod <= loadTs - 1 day
or d1 <> di
order by 1 desc
;x;
with t (t) as
(
select current timestamp from sysibm.sysDummy1
union all select timestamp('1956-04-01-06.00.00')from sysibm.sysDummy1
union all select timestamp('2015-01-01-01.00.00')from sysibm.sysDummy1
)
, j2 (f, t) as
(
select f.t, t.t
from t f, t t
where f.t <= t.t
)
, j3 as
(
select j2.*
, days(t) - days(f) di
, days(t) - days(f)
+ (midnight_seconds(t) - midnight_seconds(f)
+ float(microsecond(t) - microsecond(f)) * 1e-6
) / 86400 dd
from j2
)
, j as
(
select j3.*
, case when t - di days between f - 1 day and f then di
when t - (di-1) days between f - 1 day and f then di - 1
when t - (di+1) days between f - 1 day and f then di + 1
end dc
from j3
)
select days(f), midnight_seconds(f), f
, di, dc, t - dc days
, t
, decimal(dd, 20, 12)
, decimal(mod(dd, 1), 20, 12)
, dec(mod(dd, 1) * 86400, 12, 6)
from j
;x;
(days(t)-days(b)) * 86400 "days*86400",
(days(t)-days(b)) * 86400
+ midnight_seconds(t) - midnight_seconds(b) "days* midnight",
from sysibm.sysDummy1
select timestamp('2012-02-29-12:13:14 ')
from sysibm.sysDummy1
;
declare global temporary table tst (tst timestamp);
insert into session.tst values (current timestamp);
insert into session.tst values ('2012-02-29 12:13:14 ');
insert into session.tst values ('2012-02-29-12:13:14 ');
select * from session.tst;
-- timestamp format: : statt . funktioniert nur <= v9|
}¢--- A540769.WK.SQL(EXTSTDIF) cre=2015-09-22 mod=2015-09-22-08.09.02 A540769 ---
with t (t) as 00001000
( 00002000
select current timestamp from sysibm.sysDummy1 00003000
union all select '2014-06-17-00.00.00' from sysibm.sysDummy1 00004000
) 00005000
, u (a, b) as 00006000
( 00007000
select t, t - 1 minute from t 00010000
union all select t, t + 2 hour from t 00020000
union all select t, t - 3 day from t 00030000
union all select t, t + 4 month from t 00040006
) 00050000
select a - b minus 00060006
, timestampDiff(2, char(a-b)) "secs" 00061007
, timestampDiff(16, char(a-b)) "days" 00062007
, timestampDiff(256, char(a-b)) "years" 00062107
, a, b 00063006
from u 00070000
}¢--- A540769.WK.SQL(EXTSTFOR) cre=2014-01-13 mod=2014-01-13-06.59.48 A540769 ---
with f(f) as
(
select 'MM' from sysibm.sysDummy1
union all select 'DDD' from sysibm.sysDummy1
)
select timestamp_format(current timestamp, f) from f
}¢--- A540769.WK.SQL(EXUNICOD) cre=2016-02-09 mod=2016-02-09-16.39.53 A540769 ---
with u (a, b, c) as
(
select ibmReqd, 'abc', 'efghij' from sysibm.sysDummyU
union all select ibmReqd, 'ABC', 'EFGHIJ' from sysibm.sysDummyU
)
select * from u;
select a, cast(cast(b as char(3) ccsid ebcdic)
, cast(c as char(6) ccsid ebcdic)
, a
from u
}¢--- A540769.WK.SQL(EXUNIEBC) cre=2013-08-23 mod=2013-08-23-08.26.55 A540769 ---
with c (c, l, all) as
(
select '', 0, ' abcXYZ0189' from sysibm.sysDummy1
union all select substr(all, l+1, 1), l+1, all
from c where l < length(all) and l < 9e9
)
select c, hex(char(c, 1))
, row_number() over (order by cast(c as char(1) ccsid ebcdic)) ebc
, row_number() over (order by cast(c as char(1) ccsid unicode)) uni
, row_number() over (order by cast(c as char(1) ccsid ascii )) asc
from c
order by l
}¢--- A540769.WK.SQL(EXWITH) cre=2011-11-14 mod=2011-11-14-09.00.24 A540769 ----
with c (spc, c) as
(
select bigInt(space)*1024, count(*)
from sysibm.sysTableSpace
group by space
)
select sum(c) "count", min(spc) "byte von", max(spc) "byte bis"
from c
group by case when spc <= 1 then spc -9
else floor(3 * log10(spc)) end
order by 2 asc
}¢--- A540769.WK.SQL(FANKHAU) cre=2006-06-30 mod=2006-06-30-08.46.38 F540769 ---
CREATE VIEW GDB0389.VMF202A1
( TEV_DAT_ISO
,TEV_DAT_EUR
)
AS SELECT CHAR(DATE(SUBSTR(PARAMETER,1,10)),ISO),
CHAR(DATE(SUBSTR(PARAMETER,1,10)),EUR)
FROM GDB0389.TMF202A1
WHERE BUID = '0000'
AND SELCD = 'TEV_ORDERDATE'
AND GUELTIGAB <= CURRENT TIMESTAMP
AND GUELTIGBIS >= CURRENT TIMESTAMP
;
}¢--- A540769.WK.SQL(FI027ALT) cre=2015-06-30 mod=2015-06-30-11.25.12 A540769 ---
select count(*) from oa1p.TFI027J1 where tkkey = 26861187;
?LTER TABLE OA1P.TFI027J1 ALTER PARTITION 309 ENDING AT(26861187);
}¢--- A540769.WK.SQL(FLOAT) cre=2007-02-05 mod=2007-02-05-16.27.45 F540769 -----
with ii (int) as
(
values (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
)
select float(2272) / 1000, float(2273) / 1000 , float(2274) / 1000
from ii ;-- sysibm.sysdummy1;
}¢--- A540769.WK.SQL(FOSREALK) cre=2010-07-15 mod=2010-07-15-11.59.11 A540769 ---
--
-- convert a number 17K, 5M etc to real
--
set current sqlid = 'S100447';
drop function OA1P.fosRealK(n varchar(40));
drop function OA1P.fosRealK(n varchar(40), unit char(1));
create function OA1P.fosRealK(n varchar(40), unit char(1)) returns real
return case
when unit = 'K' then real(strip(left(n, length(n)-1)))* 1024
when unit = 'M' then real(strip(left(n, length(n)-1)))
* 1024 * 1024
when unit = 'G' then real(strip(left(n, length(n)-1)))
* 1024 * 1024 * 1024
when unit = 'T' then real(strip(left(n, length(n)-1)))
* 1024 * 1024 * 1024 * 1024
else real(n)
end;
create function OA1P.fosRealK(n varchar(40)) returns real
return oa1p.fosRealK(strip(n), char(upper(right(strip(n), 1)), 1));
select char(a, 20), oa1p.fosRealK(a) from
( select ' 1234 ' a from sysibm.sysDummy1
union all select ' 567K ' a from sysibm.sysDummy1
union all select ' 89 K ' a from sysibm.sysDummy1
union all select '10 K' a from sysibm.sysDummy1
union all select ' 23 M ' a from sysibm.sysDummy1
union all select ' 45G' a from sysibm.sysDummy1
) v;
}¢--- A540769.WK.SQL(FOSXX) cre=2013-02-15 mod=2013-02-15-11.56.34 A540769 -----
set current sqlid = 'S100447';
-- drop function A540769.tosXX(a float, b float, c float);
terminator?;
create function A540769.tosXX(a float, b float, c float)
returns varchar(20)
deterministic
begin
declare sm float;
declare res, a1, a2 varchar(30) default '';
declare la, cu char(4);
declare cx int;
set sm = a+b+c;
if sm < 0 then
return oa1a.fosFmtE8(sm) || ' |||';
elseif sm < 1e-9 then
return oa1a.fosFmtE7(sm);
end if;
set a1 =
case when a <= sm/200 then ''
else digits(dec(round(min(99, 100 * a / sm)), 2))||'a ' end
|| case when b <= sm/200 then ''
else digits(dec(round(min(99, 100 * b / sm)), 2))||'b ' end
|| case when c <= sm/200 then ''
else digits(dec(round(min(99, 100 * c / sm)), 2))||'c ' end;
set la = x'ffffffff';
loop
set cx = 1;
set cu = '';
while cx < length(a1) do
if substr(a1, cx, 4) < la and substr(a1, cx, 4) > cu then
set cu = substr(a1, cx, 4);
end if;
set cx = cx + 4;
end while;
set a2 = a2 || cu;
if cu = '' or length(a2) >= 12 then
return oa1a.fosFmtE7(sm) || ' ' || a2;
end if;
set la = cu;
end loop;
end
?
terminator;?
select A540769.tosxx( 3 , -1 , -3)
from sysibm.sysDummy1
;
rollback
;x;
-- convert chars to the corresponding integer value
-- e.g. x'FF' -> 255, ' ' -> 64, '010000' -> 65536
-- UDFs oa1a.fosC2I1: char(1) --> int
-- oa1a.fosC2I2: varchar(2) --> int
-- oa1a.fosC2I4: varchar(4) --> bigInt
-- oa1a.fosC2I8: varchar(8) --> bigInt
-- values >= x'80000000000000' yield fixPointOverflow
-- or negativ results due to bigInt arithmetic
-- 8.1.10 W. Keller neu
--
set current sqlid = 'S100447';
-- drop function OA1a.c2d8;
-- drop function OA1a.c2d4;
-- drop function OA1a.c2d2;
-- drop function OA1a.c2d1;
drop function oa1a.fosC2I8;
drop function oa1a.fosC2I4;
drop function oa1a.fosC2I2;
drop function oa1a.fosC2I1;
create function oa1a.fosC2I1(c char(1)) returns int
return posStr(x'000102030405060708090A0B0C0D0E0F'
|| x'101112131415161718191A1B1C1D1E1F'
|| x'202122232425262728292A2B2C2D2E2F'
|| x'303132333435363738393A3B3C3D3E3F'
|| x'404142434445464748494A4B4C4D4E4F'
|| x'505152535455565758595A5B5C5D5E5F'
|| x'606162636465666768696A6B6C6D6E6F'
|| x'707172737475767778797A7B7C7D7E7F'
|| x'808182838485868788898A8B8C8D8E8F'
|| x'909192939495969798999A9B9C9D9E9F'
|| x'A0A1A2A3A4A5A6A7A8A9AAABACADAEAF'
|| x'B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF'
|| x'C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF'
|| x'D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF'
|| x'E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF'
|| x'F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF', c) - 1
;
create function oa1a.fosC2I2(c varchar(2)) returns int
return case when length(c) = 0 then -1
when length(c) = 1 then oa1a.fosC2I1(char(c, 1))
else oa1a.fosC2I1(char(left(c, 1), 1)) * 256
+ oa1a.fosC2I1(char(substr(c, 2), 1))
end
;
create function oa1a.fosC2I4(c varchar(4)) returns bigInt
return case when length(c) < 3 then oa1a.fosC2I2(c)
else oa1a.fosC2I2(left(c, length(c) - 2))
* bigInt(65536)
+ oa1a.fosC2I2(right(c, 2))
end
;
create function oa1a.fosC2I8(c8 varchar(8)) returns bigInt
return case when length(c8) < 5 then oa1a.fosC2I4(c8)
else oa1a.fosC2I4(left(c8, length(c8) - 4))
* bigInt(4294967296)
+ oa1a.fosC2I4(right(c8, 4))
end
;
with i (i) as
(
select '' from sysibm.sysDummy1
union select x'03' from sysibm.sysDummy1
union select x'0C' from sysibm.sysDummy1
union select x'1E' from sysibm.sysDummy1
union select x'40' from sysibm.sysDummy1
union select x'AA' from sysibm.sysDummy1
union select x'FF' from sysibm.sysDummy1
union select x'6407' from sysibm.sysDummy1
union select x'0009' from sysibm.sysDummy1
union select x'9999' from sysibm.sysDummy1
union select x'FFFF' from sysibm.sysDummy1
union select x'01FF' from sysibm.sysDummy1
union select x'01FFFF' from sysibm.sysDummy1
union select x'01FFFFFF' from sysibm.sysDummy1
union select x'FFFFFFFF' from sysibm.sysDummy1
union select x'FFFFFFFFFF' from sysibm.sysDummy1
union select x'FFFFFFFFFFFF' from sysibm.sysDummy1
union select x'FFFFFFFFFFFFFF' from sysibm.sysDummy1
union select x'7FFFFFFFFFFFFFFF' from sysibm.sysDummy1
union select 'abcdefgh' from sysibm.sysDummy1
union select x'8000000000000000' from sysibm.sysDummy1
union select x'8000000000000001' from sysibm.sysDummy1
union select x'BFFFFFFFFFFFFFFF' from sysibm.sysDummy1
union select x'C000000000000000' from sysibm.sysDummy1
union select x'C000000000000001' from sysibm.sysDummy1
union select x'FFFFFFFFFFFFFFFE' from sysibm.sysDummy1
union select x'FFFFFFFFFFFFFFFF' from sysibm.sysDummy1
)
select hex(i), length(i), oa1a.fosC2I8(i)
from i
;
commit
}¢--- A540769.WK.SQL(FRANZAP) cre=2006-10-24 mod=2006-10-24-16.08.35 F540769 ---
set current sqlid = 'S100447';
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 1
ENDING AT (X'0003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 2
ENDING AT (X'0007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 3
ENDING AT (X'000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 4
ENDING AT (X'000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 5
ENDING AT (X'0013FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 6
ENDING AT (X'0017FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 7
ENDING AT (X'001BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 8
ENDING AT (X'001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 9
ENDING AT (X'0023FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 10
ENDING AT (X'0027FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 11
ENDING AT (X'002BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 12
ENDING AT (X'002FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 13
ENDING AT (X'0033FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 14
ENDING AT (X'0037FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 15
ENDING AT (X'003BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 16
ENDING AT (X'003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 17
ENDING AT (X'0043FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 18
ENDING AT (X'0047FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 19
ENDING AT (X'004BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 20
ENDING AT (X'004FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 21
ENDING AT (X'0053FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 22
ENDING AT (X'0057FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 23
ENDING AT (X'005BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 24
ENDING AT (X'005FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 25
ENDING AT (X'0063FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 26
ENDING AT (X'0067FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 27
ENDING AT (X'006BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 28
ENDING AT (X'006FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 29
ENDING AT (X'0073FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 30
ENDING AT (X'0077FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 31
ENDING AT (X'007BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 32
ENDING AT (X'007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 33
ENDING AT (X'0083FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 34
ENDING AT (X'0087FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 35
ENDING AT (X'008BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 36
ENDING AT (X'008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 37
ENDING AT (X'0093FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 38
ENDING AT (X'0097FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 39
ENDING AT (X'009BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 40
ENDING AT (X'009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 41
ENDING AT (X'00A3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 42
ENDING AT (X'00A7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 43
ENDING AT (X'00ABFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 44
ENDING AT (X'00AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 45
ENDING AT (X'00B3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 46
ENDING AT (X'00B7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 47
ENDING AT (X'00BBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 48
ENDING AT (X'00BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 49
ENDING AT (X'00C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 50
ENDING AT (X'00C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 51
ENDING AT (X'00CBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 52
ENDING AT (X'00CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 53
ENDING AT (X'00D3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 54
ENDING AT (X'00D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 55
ENDING AT (X'00DBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 56
ENDING AT (X'00DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 57
ENDING AT (X'00E3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 58
ENDING AT (X'00E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 59
ENDING AT (X'00EBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ALTER PARTITION 60
ENDING AT (X'00EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ADD PARTITION -- 61
ENDING AT (X'00F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ADD PARTITION -- 62
ENDING AT (X'00F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ADD PARTITION -- 63
ENDING AT (X'00FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ADD PARTITION -- 64
ENDING AT (X'00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
ADD PARTITION -- 65
ENDING AT (X'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
}¢--- A540769.WK.SQL(FRANZDDL) cre=2006-10-24 mod=2006-10-24-15.45.38 F540769 ---
------------------------------------------------------------------------
-- --
-- Database 2 Administration Tool (DB2 Admin) , program 5697-L90 (C) --
-- --
-- ADB2GEN - Extract object definitions from the DB2 Catalog tables --
-- --
-- Input prepared on : DBOF (810) Extract time : 2006-10-23 16:35 --
-- --
-- Catalog values overridden : none
-- --
-- Generate : SG=N DB=Y TS=Y TB=Y VW=Y IX=Y SY=N AL=N LB=Y CM=Y FK=Y --
-- TG=N UT=N UF=N SP=N SQ=N --
-- Grants : SG=N DB=Y TS=N TB=N VW=N SC=N UT=N UF=N SP=N SQ=N --
-- --
------------------------------------------------------------------------
------------------------------------------------------------------------
-- --
-- ADB2GEN: Generate DDL for Tablespace=A242A In Database DA540769 --
-- --
------------------------------------------------------------------------
--
------------------------------------------------------------------------
-- Database=DA540769 Stogroup=GSMS (for partition 1)
-- Tablespace=DA540769.A242A
------------------------------------------------------------------------
--
SET CURRENT SQLID='S100447';
--
drop TABLESPACE dA540769.A242A;
commit;
CREATE TABLESPACE A242A
IN DA540769
USING STOGROUP GSMS
PRIQTY 360000 SECQTY 28800
FREEPAGE 10 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
DSSIZE 4 G
NUMPARTS 60
(PART 2 USING STOGROUP GSMS PRIQTY 360000 SECQTY 57600,
PART 3 USING STOGROUP GSMS PRIQTY 720 SECQTY 7200,
PART 4 USING STOGROUP GSMS PRIQTY 360000 SECQTY 266400,
PART 5 USING STOGROUP GSMS PRIQTY 720 SECQTY 7200,
PART 6 USING STOGROUP GSMS PRIQTY 360000 SECQTY 64800,
PART 7 USING STOGROUP GSMS PRIQTY 360000 SECQTY 100800,
PART 8 USING STOGROUP GSMS PRIQTY 360000 SECQTY 43200,
PART 9 USING STOGROUP GSMS PRIQTY 360000 SECQTY 43200,
PART 10 USING STOGROUP GSMS PRIQTY 198000 SECQTY 10800,
PART 11 USING STOGROUP GSMS PRIQTY 216000 SECQTY 14400,
PART 12 USING STOGROUP GSMS PRIQTY 360000 SECQTY 72000,
PART 13 USING STOGROUP GSMS PRIQTY 360000 SECQTY 64800,
PART 14 USING STOGROUP GSMS PRIQTY 360000 SECQTY 72000,
PART 15 USING STOGROUP GSMS PRIQTY 360000 SECQTY 64800,
PART 16 USING STOGROUP GSMS PRIQTY 720 SECQTY 7200,
PART 17 USING STOGROUP GSMS PRIQTY 360000 SECQTY 100800,
PART 18 USING STOGROUP GSMS PRIQTY 360000 SECQTY 100800,
PART 19 USING STOGROUP GSMS PRIQTY 360000 SECQTY 72000,
PART 20 USING STOGROUP GSMS PRIQTY 720 SECQTY 7200,
PART 21 USING STOGROUP GSMS PRIQTY 360000 SECQTY 18000,
PART 22 USING STOGROUP GSMS PRIQTY 360000 SECQTY 100800,
PART 23 USING STOGROUP GSMS PRIQTY 360000 SECQTY 100800,
PART 24 USING STOGROUP GSMS PRIQTY 216000 SECQTY 14400,
PART 25 USING STOGROUP GSMS PRIQTY 360000 SECQTY 18000,
PART 26 USING STOGROUP GSMS PRIQTY 360000 SECQTY 43200,
PART 27 USING STOGROUP GSMS PRIQTY 720 SECQTY 7200,
PART 28 USING STOGROUP GSMS PRIQTY 720 SECQTY 7200,
PART 29 USING STOGROUP GSMS PRIQTY 360000 SECQTY 18000,
PART 30 USING STOGROUP GSMS PRIQTY 360000 SECQTY 72000,
PART 31 USING STOGROUP GSMS PRIQTY 360000 SECQTY 72000,
PART 32 USING STOGROUP GSMS PRIQTY 360000 SECQTY 72000,
PART 33 USING STOGROUP GSMS PRIQTY 360000 SECQTY 18000,
PART 34 USING STOGROUP GSMS PRIQTY 216000 SECQTY 14400,
PART 35 USING STOGROUP GSMS PRIQTY 720 SECQTY 7200,
PART 36 USING STOGROUP GSMS PRIQTY 360000 SECQTY 100800,
PART 37 USING STOGROUP GSMS PRIQTY 360000 SECQTY 64800,
PART 38 USING STOGROUP GSMS PRIQTY 360000 SECQTY 100800,
PART 39 USING STOGROUP GSMS PRIQTY 360000 SECQTY 64800,
PART 40 USING STOGROUP GSMS PRIQTY 360000 SECQTY 100800,
PART 41 USING STOGROUP GSMS PRIQTY 360000 SECQTY 100800,
PART 42 USING STOGROUP GSMS PRIQTY 360000 SECQTY 18000,
PART 43 USING STOGROUP GSMS PRIQTY 360000 SECQTY 64800,
PART 44 USING STOGROUP GSMS PRIQTY 360000 SECQTY 93600,
PART 45 USING STOGROUP GSMS PRIQTY 720 SECQTY 7200,
PART 46 USING STOGROUP GSMS PRIQTY 360000 SECQTY 21600,
PART 47 USING STOGROUP GSMS PRIQTY 360000 SECQTY 100800,
PART 48 USING STOGROUP GSMS PRIQTY 360000 SECQTY 43200,
PART 49 USING STOGROUP GSMS PRIQTY 360000 SECQTY 93600,
PART 50 USING STOGROUP GSMS PRIQTY 360000 SECQTY 100800,
PART 51 USING STOGROUP GSMS PRIQTY 720 SECQTY 7200,
PART 52 USING STOGROUP GSMS PRIQTY 360000 SECQTY 43200,
PART 53 USING STOGROUP GSMS PRIQTY 360000 SECQTY 43200,
PART 54 USING STOGROUP GSMS PRIQTY 360000 SECQTY 64800,
PART 55 USING STOGROUP GSMS PRIQTY 360000 SECQTY 64800,
PART 56 USING STOGROUP GSMS PRIQTY 252000 SECQTY 14400,
PART 57 USING STOGROUP GSMS PRIQTY 360000 SECQTY 43200,
PART 58 USING STOGROUP GSMS PRIQTY 360000 SECQTY 100800,
PART 59 USING STOGROUP GSMS PRIQTY 360000 SECQTY 64800,
PART 60 USING STOGROUP GSMS PRIQTY 360000 SECQTY 273600
FREEPAGE 20 PCTFREE 10)
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID EBCDIC
DEFINE YES
MAXROWS 255;
--
------------------------------------------------------------------------
-- Table=A540769.TNZ242A1 In DA540769.A242A
------------------------------------------------------------------------
--
SET CURRENT SQLID='A540769';
--
CREATE TABLE A540769.TNZ242A1
(NZ242001 CHAR(20) FOR SBCS DATA NOT NULL,
NZ242002 CHAR(20) FOR SBCS DATA NOT NULL,
NZ242003 CHAR(50) FOR SBCS DATA NOT NULL,
NZ242004 CHAR(10) FOR SBCS DATA NOT NULL,
NZ242005 CHAR(20) FOR SBCS DATA NOT NULL,
NZ242006 CHAR(20) FOR SBCS DATA NOT NULL,
NZ242007 CHAR(10) FOR SBCS DATA NOT NULL,
NZ242008 CHAR(20) FOR SBCS DATA NOT NULL,
NZ242009 CHAR(50) FOR SBCS DATA NOT NULL,
NZ242010 CHAR(20) FOR SBCS DATA NOT NULL,
NZ242011 CHAR(50) FOR SBCS DATA NOT NULL,
NZ242012 CHAR(20) FOR SBCS DATA NOT NULL,
NZ242013 CHAR(50) FOR SBCS DATA NOT NULL,
NZ242014 CHAR(20) FOR SBCS DATA NOT NULL,
NZ242015 CHAR(50) FOR SBCS DATA NOT NULL,
NZ242016 CHAR(20) FOR SBCS DATA NOT NULL,
NZ242017 CHAR(50) FOR SBCS DATA NOT NULL,
NZ242018 CHAR(20) FOR SBCS DATA NOT NULL,
NZ242019 CHAR(50) FOR SBCS DATA NOT NULL,
NZ242020 CHAR(20) FOR SBCS DATA NOT NULL,
NZ242021 CHAR(50) FOR SBCS DATA NOT NULL,
NZ242022 CHAR(20) FOR SBCS DATA NOT NULL,
NZ242023 CHAR(50) FOR SBCS DATA NOT NULL,
NZ242024 CHAR(20) FOR SBCS DATA NOT NULL,
NZ242025 CHAR(50) FOR SBCS DATA NOT NULL,
NZ242026 CHAR(20) FOR SBCS DATA NOT NULL,
NZ242027 CHAR(50) FOR SBCS DATA NOT NULL,
NZ242028 CHAR(20) FOR SBCS DATA NOT NULL,
NZ242029 CHAR(10) FOR SBCS DATA NOT NULL,
NZ242030 CHAR(26) FOR SBCS DATA NOT NULL,
NZ242031 CHAR(20) FOR SBCS DATA NOT NULL,
NZ242032 CHAR(1) FOR SBCS DATA NOT NULL,
NZ242033 VARCHAR(3100) FOR SBCS DATA NOT NULL)
IN DA540769.A242A
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE;
--
LABEL ON TABLE A540769.TNZ242A1 IS 'ZV Histo: HistoData';
--
COMMENT ON A540769.TNZ242A1
(NZ242033 IS 'SERIALISIERTE OBJEKTE BZW DER DATENTEIL',
NZ242032 IS 'SOLL/HABEN IDENTIFIKATION',
NZ242031 IS 'STRUKTURTYP DES OBJEKTS',
NZ242030 IS 'TIMESTAMP ERSTELLZEITPUNKT',
NZ242029 IS 'VERSION DES OBJEKTES BZW. SOFTWARESTAND DER STRUKTUR',
NZ242028 IS 'BESCHREIBUNG SUCHWERT 10',
NZ242027 IS 'SUCHWERT 10',
NZ242026 IS 'BESCHREIBUNG SUCHWERT 09',
NZ242025 IS 'SUCHWERT 09',
NZ242024 IS 'BESCHREIBUNG SUCHWERT 08',
NZ242023 IS 'SUCHWERT 08',
NZ242022 IS 'BESCHREIBUNG SUCHWERT 07',
NZ242021 IS 'SUCHWERT 07',
NZ242020 IS 'BESCHREIBUNG SUCHWERT 06',
NZ242019 IS 'SUCHWERT 06',
NZ242018 IS 'BESCHREIBUNG SUCHWERT 05',
NZ242017 IS 'SUCHWERT 05',
NZ242016 IS 'BESCHREIBUNG SUCHWERT 04',
NZ242015 IS 'SUCHWERT 04',
NZ242014 IS 'BESCHREIBUNG SUCHWERT 03',
NZ242013 IS 'SUCHWERT 03',
NZ242012 IS 'BESCHREIBUNG SUCHWERT 02',
NZ242011 IS 'SUCHWERT 02',
NZ242010 IS 'BESCHREIBUNG SUCHWERT 01',
NZ242009 IS 'SUCHWERT 01',
NZ242008 IS 'OBJEKTTYP',
NZ242007 IS 'GESCHAEFTSFALLTYP',
NZ242006 IS 'ID DES STATUSAUSLOESERS ODER BEARBEITUNGSMITTEL',
NZ242005 IS 'STATUSANGABE',
NZ242004 IS 'IDENTIFIKATIONSNUMMER',
NZ242003 IS 'REFERENZNUMMER DES SENDEOBJEKTES',
NZ242002 IS 'TECHNISCHER IDENTIFIKATIONSSCHLUESSEL UNIQUE',
NZ242001 IS 'TECHNISCHER SCHLUESSEL ZUM HISTO HEADERTEIL');
--
LABEL ON A540769.TNZ242A1
(NZ242033 IS 'Object',
NZ242032 IS 'SideType',
NZ242031 IS 'ObjDescType',
NZ242030 IS 'CreateDateTime',
NZ242029 IS 'ObjTypeVersion',
NZ242028 IS 'SearchType10',
NZ242027 IS 'SearchValue10',
NZ242026 IS 'SearchType09',
NZ242025 IS 'SearchValue09',
NZ242024 IS 'SearchType08',
NZ242023 IS 'SearchValue08',
NZ242022 IS 'SearchType07',
NZ242021 IS 'SearchValue07',
NZ242020 IS 'SearchType06',
NZ242019 IS 'SearchValue06',
NZ242018 IS 'SearchType05',
NZ242017 IS 'SearchValue05',
NZ242016 IS 'SearchType04',
NZ242015 IS 'SearchValue04',
NZ242014 IS 'SearchType03',
NZ242013 IS 'SearchValue03',
NZ242012 IS 'SearchType02',
NZ242011 IS 'SearchValue02',
NZ242010 IS 'SearchType01',
NZ242009 IS 'SearchValue01',
NZ242008 IS 'ObjType',
NZ242007 IS 'GfsType',
NZ242006 IS 'ProcesserId',
NZ242005 IS 'ProcessStatus',
NZ242004 IS 'IdentNumber',
NZ242003 IS 'RefId',
NZ242002 IS 'IdentUwi',
NZ242001 IS 'HeaderUwi');
--
------------------------------------------------------------------------
-- Database=DA540769
-- Index=A540769.INZ242A1 On A540769.TNZ242A1
------------------------------------------------------------------------
--
CREATE INDEX A540769.INZ242A1
ON A540769.TNZ242A1
(NZ242001 ASC,
NZ242003 ASC,
NZ242004 ASC,
NZ242005 ASC,
NZ242006 ASC,
NZ242007 ASC,
NZ242008 ASC)
USING STOGROUP GSMS
PRIQTY 324000 SECQTY 18000
FREEPAGE 10 PCTFREE 10
GBPCACHE CHANGED
CLUSTER
(PART 1 VALUES(X'0002FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 2 VALUES(X'0005FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 720 SECQTY 7200,
PART 3 VALUES(X'0009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 21600,
PART 4 VALUES(X'0011FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 86400,
PART 5 VALUES(X'0015FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
PART 6 VALUES(X'0019FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 28800,
PART 7 VALUES(X'001DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 720 SECQTY 7200,
PART 8 VALUES(X'0021FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
PART 9 VALUES(X'0025FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 21600,
PART 10 VALUES(X'0029FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
PART 11 VALUES(X'002DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 252000 SECQTY 14400,
PART 12 VALUES(X'0031FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
PART 13 VALUES(X'0035FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
PART 14 VALUES(X'0039FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 28800,
PART 15 VALUES(X'003DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
PART 16 VALUES(X'0041FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
PART 17 VALUES(X'0045FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 28800,
PART 18 VALUES(X'0049FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 21600,
PART 19 VALUES(X'004DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 21600,
PART 20 VALUES(X'0051FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
PART 21 VALUES(X'0055FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 252000 SECQTY 14400,
PART 22 VALUES(X'0059FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 720 SECQTY 7200,
PART 23 VALUES(X'005DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 28800,
PART 24 VALUES(X'0061FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 28800,
PART 25 VALUES(X'0065FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
PART 26 VALUES(X'0069FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 21600,
PART 27 VALUES(X'006DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
PART 28 VALUES(X'0071FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
PART 29 VALUES(X'0075FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
PART 30 VALUES(X'0079FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 252000 SECQTY 14400,
PART 31 VALUES(X'007DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
PART 32 VALUES(X'0081FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 21600,
PART 33 VALUES(X'0085FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 720 SECQTY 7200,
PART 34 VALUES(X'0089FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 252000 SECQTY 14400,
PART 35 VALUES(X'008DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
PART 36 VALUES(X'0091FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
PART 37 VALUES(X'0095FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
PART 38 VALUES(X'0099FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
PART 39 VALUES(X'009DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
PART 40 VALUES(X'00A1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
PART 41 VALUES(X'00A5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
PART 42 VALUES(X'00A9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
PART 43 VALUES(X'00ADFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
PART 44 VALUES(X'00B1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
PART 45 VALUES(X'00B5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
PART 46 VALUES(X'00B9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
PART 47 VALUES(X'00BDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
PART 48 VALUES(X'00C1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
PART 49 VALUES(X'00C5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 252000 SECQTY 14400,
PART 50 VALUES(X'00C9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 28800,
PART 51 VALUES(X'00CDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
PART 52 VALUES(X'00D1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 252000 SECQTY 14400,
PART 53 VALUES(X'00D5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
PART 54 VALUES(X'00D9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 21600,
PART 55 VALUES(X'00DDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
PART 56 VALUES(X'00E1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 18000,
PART 57 VALUES(X'00E5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
PART 58 VALUES(X'00E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
PART 59 VALUES(X'00EDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 21600,
PART 60 VALUES(X'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
USING STOGROUP GSMS PRIQTY 360000 SECQTY 288000)
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES;
--
------------------------------------------------------------------------
-- View=A540769.VNZ242A1V
------------------------------------------------------------------------
--
--
SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","GDB0283" ;
--
CREATE VIEW A540769.VNZ242A1V(HEADERUWI, IDENTUWI, REFID, IDENTNUMBER,
PROCESSSTATUS, PROCESSERID, GFSTYPE, OBJTYPE, SEARCHVALUE01,
SEARCHTYPE01, SEARCHVALUE02, SEARCHTYPE02, SEARCHVALUE03,
SEARCHTYPE03, SEARCHVALUE04, SEARCHTYPE04, SEARCHVALUE05,
SEARCHTYPE05, SEARCHVALUE06, SEARCHTYPE06, SEARCHVALUE07,
SEARCHTYPE07, SEARCHVALUE08, SEARCHTYPE08, SEARCHVALUE09,
SEARCHTYPE09, SEARCHVALUE10, SEARCHTYPE10, OBJTYPEVERSION,
CREATEDATETIME, OBJDESCTYPE, SIDETYPE, OBJECT) AS
SELECT ALL NZ242001, NZ242002, NZ242003, NZ242004, NZ242005,
NZ242006, NZ242007, NZ242008, NZ242009, NZ242010, NZ242011,
NZ242012, NZ242013, NZ242014, NZ242015, NZ242016, NZ242017,
NZ242018, NZ242019, NZ242020, NZ242021, NZ242022, NZ242023,
NZ242024, NZ242025, NZ242026, NZ242027, NZ242028, NZ242029,
NZ242030, NZ242031, NZ242032, NZ242033
FROM A540769.TNZ242A1 ;
--
COMMIT;
--
------------------------------------------------------------------------
-- ADB2GEN - End of generated DDL --
------------------------------------------------------------------------
--
}¢--- A540769.WK.SQL(FRANZDDN) cre=2006-10-26 mod=2006-10-26-11.16.06 F540769 ---
--
SET CURRENT SQLID='S100447';
--
drop TABLESPACE dA540769.A242A;
commit;
------------------------------------------------------------------------
-- --
-- Database 2 Administration Tool (DB2 Admin) , program 5697-L90 (C) --
-- --
-- ADB2GEN - Extract object definitions from the DB2 Catalog tables --
-- --
-- Input prepared on : DBAF (810) Extract time : 2006-10-26 10:47 --
-- --
-- Catalog values overridden : none
-- --
-- Generate : SG=N DB=Y TS=Y TB=Y VW=Y IX=Y SY=Y AL=Y LB=Y CM=Y FK=Y --
-- TG=Y UT=N UF=N SP=N SQ=N --
-- Grants : SG=N DB=Y TS=Y TB=N VW=N SC=N UT=N UF=N SP=N SQ=N --
-- --
------------------------------------------------------------------------
--
SET CURRENT SQLID='S100447';
------------------------------------------------------------------------
-- --
-- ADB2GEN: Generate DDL for Tablespace=A242A In Database DA540769 --
-- --
------------------------------------------------------------------------
--
------------------------------------------------------------------------
-- Database=DA540769 Stogroup=GSMS (for partition 1)
-- Tablespace=DA540769.A242A
------------------------------------------------------------------------
--
CREATE TABLESPACE A242A
IN DA540769
USING STOGROUP GSMS
PRIQTY 360000 SECQTY 72000
FREEPAGE 10 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
DSSIZE 16 G
NUMPARTS 65
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID EBCDIC
DEFINE YES
MAXROWS 255;
--
------------------------------------------------------------------------
-- Table=A540769.TNZ242A1 In DA540769.A242A
------------------------------------------------------------------------
--
CREATE TABLE A540769.TNZ242A1
(NZ242001 CHAR(20) FOR SBCS DATA NOT NULL,
NZ242002 CHAR(20) FOR SBCS DATA NOT NULL,
NZ242003 CHAR(50) FOR SBCS DATA NOT NULL,
NZ242004 CHAR(10) FOR SBCS DATA NOT NULL,
NZ242005 CHAR(20) FOR SBCS DATA NOT NULL,
NZ242006 CHAR(20) FOR SBCS DATA NOT NULL,
NZ242007 CHAR(10) FOR SBCS DATA NOT NULL,
NZ242008 CHAR(20) FOR SBCS DATA NOT NULL,
NZ242009 CHAR(50) FOR SBCS DATA NOT NULL,
NZ242010 CHAR(20) FOR SBCS DATA NOT NULL,
NZ242011 CHAR(50) FOR SBCS DATA NOT NULL,
NZ242012 CHAR(20) FOR SBCS DATA NOT NULL,
NZ242013 CHAR(50) FOR SBCS DATA NOT NULL,
NZ242014 CHAR(20) FOR SBCS DATA NOT NULL,
NZ242015 CHAR(50) FOR SBCS DATA NOT NULL,
NZ242016 CHAR(20) FOR SBCS DATA NOT NULL,
NZ242017 CHAR(50) FOR SBCS DATA NOT NULL,
NZ242018 CHAR(20) FOR SBCS DATA NOT NULL,
NZ242019 CHAR(50) FOR SBCS DATA NOT NULL,
NZ242020 CHAR(20) FOR SBCS DATA NOT NULL,
NZ242021 CHAR(50) FOR SBCS DATA NOT NULL,
NZ242022 CHAR(20) FOR SBCS DATA NOT NULL,
NZ242023 CHAR(50) FOR SBCS DATA NOT NULL,
NZ242024 CHAR(20) FOR SBCS DATA NOT NULL,
NZ242025 CHAR(50) FOR SBCS DATA NOT NULL,
NZ242026 CHAR(20) FOR SBCS DATA NOT NULL,
NZ242027 CHAR(50) FOR SBCS DATA NOT NULL,
NZ242028 CHAR(20) FOR SBCS DATA NOT NULL,
NZ242029 CHAR(10) FOR SBCS DATA NOT NULL,
NZ242030 CHAR(26) FOR SBCS DATA NOT NULL,
NZ242031 CHAR(20) FOR SBCS DATA NOT NULL,
NZ242032 CHAR(1) FOR SBCS DATA NOT NULL,
NZ242033 VARCHAR(3100) FOR SBCS DATA NOT NULL)
IN DA540769.A242A
PARTITION BY (NZ242001 ASC,
NZ242003 ASC,
NZ242004 ASC,
NZ242005 ASC,
NZ242006 ASC,
NZ242007 ASC,
NZ242008 ASC)
(PART 1 VALUES(X'0003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 2 VALUES(X'0007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 3 VALUES(X'000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 4 VALUES(X'000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 5 VALUES(X'0013FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 6 VALUES(X'0017FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 7 VALUES(X'001BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 8 VALUES(X'001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 9 VALUES(X'0023FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 10 VALUES(X'0027FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 11 VALUES(X'002BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 12 VALUES(X'002FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 13 VALUES(X'0033FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 14 VALUES(X'0037FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 15 VALUES(X'003BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 16 VALUES(X'003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 17 VALUES(X'0043FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 18 VALUES(X'0047FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 19 VALUES(X'004BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 20 VALUES(X'004FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 21 VALUES(X'0053FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 22 VALUES(X'0057FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 23 VALUES(X'005BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 24 VALUES(X'005FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 25 VALUES(X'0063FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 26 VALUES(X'0067FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 27 VALUES(X'006BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 28 VALUES(X'006FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 29 VALUES(X'0073FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 30 VALUES(X'0077FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 31 VALUES(X'007BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 32 VALUES(X'007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 33 VALUES(X'0083FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 34 VALUES(X'0087FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 35 VALUES(X'008BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 36 VALUES(X'008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 37 VALUES(X'0093FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 38 VALUES(X'0097FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 39 VALUES(X'009BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 40 VALUES(X'009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 41 VALUES(X'00A3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 42 VALUES(X'00A7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 43 VALUES(X'00ABFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 44 VALUES(X'00AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 45 VALUES(X'00B3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 46 VALUES(X'00B7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 47 VALUES(X'00BBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 48 VALUES(X'00BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 49 VALUES(X'00C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 50 VALUES(X'00C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 51 VALUES(X'00CBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 52 VALUES(X'00CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 53 VALUES(X'00D3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 54 VALUES(X'00D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 55 VALUES(X'00DBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 56 VALUES(X'00DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 57 VALUES(X'00E3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 58 VALUES(X'00E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 59 VALUES(X'00EBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 60 VALUES(X'00EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 61 VALUES(X'00F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 62 VALUES(X'00F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 63 VALUES(X'00FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 64 VALUES(X'00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
PART 65 VALUES(X'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'))
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE;
--
LABEL ON TABLE A540769.TNZ242A1 IS 'ZV Histo: HistoData';
--
COMMENT ON A540769.TNZ242A1
(NZ242033 IS 'SERIALISIERTE OBJEKTE BZW DER DATENTEIL',
NZ242032 IS 'SOLL/HABEN IDENTIFIKATION',
NZ242031 IS 'STRUKTURTYP DES OBJEKTS',
NZ242030 IS 'TIMESTAMP ERSTELLZEITPUNKT',
NZ242029 IS 'VERSION DES OBJEKTES BZW. SOFTWARESTAND DER STRUKTUR',
NZ242028 IS 'BESCHREIBUNG SUCHWERT 10',
NZ242027 IS 'SUCHWERT 10',
NZ242026 IS 'BESCHREIBUNG SUCHWERT 09',
NZ242025 IS 'SUCHWERT 09',
NZ242024 IS 'BESCHREIBUNG SUCHWERT 08',
NZ242023 IS 'SUCHWERT 08',
NZ242022 IS 'BESCHREIBUNG SUCHWERT 07',
NZ242021 IS 'SUCHWERT 07',
NZ242020 IS 'BESCHREIBUNG SUCHWERT 06',
NZ242019 IS 'SUCHWERT 06',
NZ242018 IS 'BESCHREIBUNG SUCHWERT 05',
NZ242017 IS 'SUCHWERT 05',
NZ242016 IS 'BESCHREIBUNG SUCHWERT 04',
NZ242015 IS 'SUCHWERT 04',
NZ242014 IS 'BESCHREIBUNG SUCHWERT 03',
NZ242013 IS 'SUCHWERT 03',
NZ242012 IS 'BESCHREIBUNG SUCHWERT 02',
NZ242011 IS 'SUCHWERT 02',
NZ242010 IS 'BESCHREIBUNG SUCHWERT 01',
NZ242009 IS 'SUCHWERT 01',
NZ242008 IS 'OBJEKTTYP',
NZ242007 IS 'GESCHAEFTSFALLTYP',
NZ242006 IS 'ID DES STATUSAUSLOESERS ODER BEARBEITUNGSMITTEL',
NZ242005 IS 'STATUSANGABE',
NZ242004 IS 'IDENTIFIKATIONSNUMMER',
NZ242003 IS 'REFERENZNUMMER DES SENDEOBJEKTES',
NZ242002 IS 'TECHNISCHER IDENTIFIKATIONSSCHLUESSEL UNIQUE',
NZ242001 IS 'TECHNISCHER SCHLUESSEL ZUM HISTO HEADERTEIL');
--
LABEL ON A540769.TNZ242A1
(NZ242033 IS 'Object',
NZ242032 IS 'SideType',
NZ242031 IS 'ObjDescType',
NZ242030 IS 'CreateDateTime',
NZ242029 IS 'ObjTypeVersion',
NZ242028 IS 'SearchType10',
NZ242027 IS 'SearchValue10',
NZ242026 IS 'SearchType09',
NZ242025 IS 'SearchValue09',
NZ242024 IS 'SearchType08',
NZ242023 IS 'SearchValue08',
NZ242022 IS 'SearchType07',
NZ242021 IS 'SearchValue07',
NZ242020 IS 'SearchType06',
NZ242019 IS 'SearchValue06',
NZ242018 IS 'SearchType05',
NZ242017 IS 'SearchValue05',
NZ242016 IS 'SearchType04',
NZ242015 IS 'SearchValue04',
NZ242014 IS 'SearchType03',
NZ242013 IS 'SearchValue03',
NZ242012 IS 'SearchType02',
NZ242011 IS 'SearchValue02',
NZ242010 IS 'SearchType01',
NZ242009 IS 'SearchValue01',
NZ242008 IS 'ObjType',
NZ242007 IS 'GfsType',
NZ242006 IS 'ProcesserId',
NZ242005 IS 'ProcessStatus',
NZ242004 IS 'IdentNumber',
NZ242003 IS 'RefId',
NZ242002 IS 'IdentUwi',
NZ242001 IS 'HeaderUwi');
--
------------------------------------------------------------------------
-- Database=DA540769
-- Index=A540769.INZ242A1 On A540769.TNZ242A1
------------------------------------------------------------------------
--
CREATE INDEX A540769.INZ242A1
ON A540769.TNZ242A1
(NZ242001 ASC,
NZ242003 ASC,
NZ242004 ASC,
NZ242005 ASC,
NZ242006 ASC,
NZ242007 ASC,
NZ242008 ASC)
PARTITIONED
USING STOGROUP GSMS
PRIQTY 180000 SECQTY 36000
FREEPAGE 10 PCTFREE 10
GBPCACHE CHANGED
CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES;
--
------------------------------------------------------------------------
-- View=A540769.VNZ242A1V
------------------------------------------------------------------------
--
--
SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","GDB0283" ;
--
CREATE VIEW A540769.VNZ242A1V(HEADERUWI, IDENTUWI, REFID,
IDENTNUMBER, PROCESSSTATUS, PROCESSERID, GFSTYPE, OBJTYPE,
SEARCHVALUE01, SEARCHTYPE01, SEARCHVALUE02, SEARCHTYPE02,
SEARCHVALUE03, SEARCHTYPE03, SEARCHVALUE04, SEARCHTYPE04,
SEARCHVALUE05, SEARCHTYPE05, SEARCHVALUE06, SEARCHTYPE06,
SEARCHVALUE07, SEARCHTYPE07, SEARCHVALUE08, SEARCHTYPE08,
SEARCHVALUE09, SEARCHTYPE09, SEARCHVALUE10, SEARCHTYPE10,
OBJTYPEVERSION, CREATEDATETIME, OBJDESCTYPE, SIDETYPE, OBJECT)
AS
SELECT ALL A540769.TNZ242A1.NZ242001, A540769.TNZ242A1.NZ242002,
A540769.TNZ242A1.NZ242003, A540769.TNZ242A1.NZ242004,
A540769.TNZ242A1.NZ242005, A540769.TNZ242A1.NZ242006,
A540769.TNZ242A1.NZ242007, A540769.TNZ242A1.NZ242008,
A540769.TNZ242A1.NZ242009, A540769.TNZ242A1.NZ242010,
A540769.TNZ242A1.NZ242011, A540769.TNZ242A1.NZ242012,
A540769.TNZ242A1.NZ242013, A540769.TNZ242A1.NZ242014,
A540769.TNZ242A1.NZ242015, A540769.TNZ242A1.NZ242016,
A540769.TNZ242A1.NZ242017, A540769.TNZ242A1.NZ242018,
A540769.TNZ242A1.NZ242019, A540769.TNZ242A1.NZ242020,
A540769.TNZ242A1.NZ242021, A540769.TNZ242A1.NZ242022,
A540769.TNZ242A1.NZ242023, A540769.TNZ242A1.NZ242024,
A540769.TNZ242A1.NZ242025, A540769.TNZ242A1.NZ242026,
A540769.TNZ242A1.NZ242027, A540769.TNZ242A1.NZ242028,
A540769.TNZ242A1.NZ242029, A540769.TNZ242A1.NZ242030,
A540769.TNZ242A1.NZ242031, A540769.TNZ242A1.NZ242032,
A540769.TNZ242A1.NZ242033
FROM A540769.TNZ242A1 ;
--
COMMIT;
--
------------------------------------------------------------------------
-- ADB2GEN - End of generated DDL --
------------------------------------------------------------------------
--
}¢--- A540769.WK.SQL(FRANZOS) cre=2006-10-23 mod=2006-10-23-16.02.06 F540769 ---
SET CURRENT SQLID = 'S100447'; 00010000
COMMIT; 00020000
00030000
SET CURRENT SQLID = 'S100447'; 00040000
COMMIT; 00050000
00060000
-- ALTER PARTITION 00070000
ALTER TABLE A914227B.TNZ243A1 00080000
ALTER PARTITION 1 00090000
ENDING AT (X'0003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 00100000
COMMIT; 00110000
ALTER TABLE A914227B.TNZ243A1 00120000
ALTER PARTITION 2 00130000
ENDING AT (X'0007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 00140000
COMMIT; 00150000
ALTER TABLE A914227B.TNZ243A1 00160000
ALTER PARTITION 3 00170000
ENDING AT (X'000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 00180000
COMMIT; 00190000
ALTER TABLE A914227B.TNZ243A1 00200000
ALTER PARTITION 4 00210000
ENDING AT (X'000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 00220000
COMMIT; 00230000
ALTER TABLE A914227B.TNZ243A1 00240000
ALTER PARTITION 5 00250000
ENDING AT (X'0013FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 00260000
COMMIT; 00270000
ALTER TABLE A914227B.TNZ243A1 00280000
ALTER PARTITION 6 00290000
ENDING AT (X'0017FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 00300000
COMMIT; 00310000
ALTER TABLE A914227B.TNZ243A1 00320000
ALTER PARTITION 7 00330000
ENDING AT (X'001BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 00340000
COMMIT; 00350000
ALTER TABLE A914227B.TNZ243A1 00360000
ALTER PARTITION 8 00370000
ENDING AT (X'001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 00380000
COMMIT; 00390000
ALTER TABLE A914227B.TNZ243A1 00400000
ALTER PARTITION 9 00410000
ENDING AT (X'0023FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 00420000
COMMIT; 00430000
ALTER TABLE A914227B.TNZ243A1 00440000
ALTER PARTITION 10 00450000
ENDING AT (X'0027FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 00460000
COMMIT; 00470000
ALTER TABLE A914227B.TNZ243A1 00480000
ALTER PARTITION 11 00490000
ENDING AT (X'002BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 00500000
COMMIT; 00510000
ALTER TABLE A914227B.TNZ243A1 00520000
ALTER PARTITION 12 00530000
ENDING AT (X'002FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 00540000
COMMIT; 00550000
ALTER TABLE A914227B.TNZ243A1 00560000
ALTER PARTITION 13 00570000
ENDING AT (X'0033FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 00580000
COMMIT; 00590000
ALTER TABLE A914227B.TNZ243A1 00600000
ALTER PARTITION 14 00610000
ENDING AT (X'0037FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 00620000
COMMIT; 00630000
ALTER TABLE A914227B.TNZ243A1 00640000
ALTER PARTITION 15 00650000
ENDING AT (X'003BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 00660000
COMMIT; 00670000
ALTER TABLE A914227B.TNZ243A1 00680000
ALTER PARTITION 16 00690000
ENDING AT (X'003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 00700000
COMMIT; 00710000
ALTER TABLE A914227B.TNZ243A1 00720000
ALTER PARTITION 17 00730000
ENDING AT (X'0043FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 00740000
COMMIT; 00750000
ALTER TABLE A914227B.TNZ243A1 00760000
ALTER PARTITION 18 00770000
ENDING AT (X'0047FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 00780000
COMMIT; 00790000
ALTER TABLE A914227B.TNZ243A1 00800000
ALTER PARTITION 19 00810000
ENDING AT (X'004BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 00820000
COMMIT; 00830000
ALTER TABLE A914227B.TNZ243A1 00840000
ALTER PARTITION 20 00850000
ENDING AT (X'004FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 00860000
COMMIT; 00870000
ALTER TABLE A914227B.TNZ243A1 00880000
ALTER PARTITION 21 00890000
ENDING AT (X'0053FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 00900000
COMMIT; 00910000
ALTER TABLE A914227B.TNZ243A1 00920000
ALTER PARTITION 22 00930000
ENDING AT (X'0057FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 00940000
COMMIT; 00950000
ALTER TABLE A914227B.TNZ243A1 00960000
ALTER PARTITION 23 00970000
ENDING AT (X'005BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 00980000
COMMIT; 00990000
ALTER TABLE A914227B.TNZ243A1 01000000
ALTER PARTITION 24 01010000
ENDING AT (X'005FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 01020000
COMMIT; 01030000
ALTER TABLE A914227B.TNZ243A1 01040000
ALTER PARTITION 25 01050000
ENDING AT (X'0063FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 01060000
COMMIT; 01070000
ALTER TABLE A914227B.TNZ243A1 01080000
ALTER PARTITION 26 01090000
ENDING AT (X'0067FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 01100000
COMMIT; 01110000
ALTER TABLE A914227B.TNZ243A1 01120000
ALTER PARTITION 27 01130000
ENDING AT (X'006BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 01140000
COMMIT; 01150000
ALTER TABLE A914227B.TNZ243A1 01160000
ALTER PARTITION 28 01170000
ENDING AT (X'006FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 01180000
COMMIT; 01190000
ALTER TABLE A914227B.TNZ243A1 01200000
ALTER PARTITION 29 01210000
ENDING AT (X'0073FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 01220000
COMMIT; 01230000
ALTER TABLE A914227B.TNZ243A1 01240000
ALTER PARTITION 30 01250000
ENDING AT (X'0077FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 01260000
COMMIT; 01270000
ALTER TABLE A914227B.TNZ243A1 01280000
ALTER PARTITION 31 01290000
ENDING AT (X'007BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 01300000
COMMIT; 01310000
ALTER TABLE A914227B.TNZ243A1 01320000
ALTER PARTITION 32 01330000
ENDING AT (X'007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 01340000
COMMIT; 01350000
ALTER TABLE A914227B.TNZ243A1 01360000
ALTER PARTITION 33 01370000
ENDING AT (X'0083FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 01380000
COMMIT; 01390000
ALTER TABLE A914227B.TNZ243A1 01400000
ALTER PARTITION 34 01410000
ENDING AT (X'0087FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 01420000
COMMIT; 01430000
ALTER TABLE A914227B.TNZ243A1 01440000
ALTER PARTITION 35 01450000
ENDING AT (X'008BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 01460000
COMMIT; 01470000
ALTER TABLE A914227B.TNZ243A1 01480000
ALTER PARTITION 36 01490000
ENDING AT (X'008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 01500000
COMMIT; 01510000
ALTER TABLE A914227B.TNZ243A1 01520000
ALTER PARTITION 37 01530000
ENDING AT (X'0093FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 01540000
COMMIT; 01550000
ALTER TABLE A914227B.TNZ243A1 01560000
ALTER PARTITION 38 01570000
ENDING AT (X'0097FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 01580000
COMMIT; 01590000
ALTER TABLE A914227B.TNZ243A1 01600000
ALTER PARTITION 39 01610000
ENDING AT (X'009BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 01620000
COMMIT; 01630000
ALTER TABLE A914227B.TNZ243A1 01640000
ALTER PARTITION 40 01650000
ENDING AT (X'009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 01660000
COMMIT; 01670000
ALTER TABLE A914227B.TNZ243A1 01680000
ALTER PARTITION 41 01690000
ENDING AT (X'00A3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 01700000
COMMIT; 01710000
ALTER TABLE A914227B.TNZ243A1 01720000
ALTER PARTITION 42 01730000
ENDING AT (X'00A7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 01740000
COMMIT; 01750000
ALTER TABLE A914227B.TNZ243A1 01760000
ALTER PARTITION 43 01770000
ENDING AT (X'00ABFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 01780000
COMMIT; 01790000
ALTER TABLE A914227B.TNZ243A1 01800000
ALTER PARTITION 44 01810000
ENDING AT (X'00AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 01820000
COMMIT; 01830000
ALTER TABLE A914227B.TNZ243A1 01840000
ALTER PARTITION 45 01850000
ENDING AT (X'00B3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 01860000
COMMIT; 01870000
ALTER TABLE A914227B.TNZ243A1 01880000
ALTER PARTITION 46 01890000
ENDING AT (X'00B7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 01900000
COMMIT; 01910000
ALTER TABLE A914227B.TNZ243A1 01920000
ALTER PARTITION 47 01930000
ENDING AT (X'00BBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 01940000
COMMIT; 01950000
ALTER TABLE A914227B.TNZ243A1 01960000
ALTER PARTITION 48 01970000
ENDING AT (X'00BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 01980000
COMMIT; 01990000
ALTER TABLE A914227B.TNZ243A1 02000000
ALTER PARTITION 49 02010000
ENDING AT (X'00C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 02020000
COMMIT; 02030000
ALTER TABLE A914227B.TNZ243A1 02040000
ALTER PARTITION 50 02050000
ENDING AT (X'00C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 02060000
COMMIT; 02070000
ALTER TABLE A914227B.TNZ243A1 02080000
ALTER PARTITION 51 02090000
ENDING AT (X'00CBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 02100000
COMMIT; 02110000
ALTER TABLE A914227B.TNZ243A1 02120000
ALTER PARTITION 52 02130000
ENDING AT (X'00CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 02140000
COMMIT; 02150000
ALTER TABLE A914227B.TNZ243A1 02160000
ALTER PARTITION 53 02170000
ENDING AT (X'00D3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 02180000
COMMIT; 02190000
ALTER TABLE A914227B.TNZ243A1 02200000
ALTER PARTITION 54 02210000
ENDING AT (X'00D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 02220000
COMMIT; 02230000
ALTER TABLE A914227B.TNZ243A1 02240000
ALTER PARTITION 55 02250000
ENDING AT (X'00DBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 02260000
COMMIT; 02270000
ALTER TABLE A914227B.TNZ243A1 02280000
ALTER PARTITION 56 02290000
ENDING AT (X'00DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 02300000
COMMIT; 02310000
ALTER TABLE A914227B.TNZ243A1 02320000
ALTER PARTITION 57 02330000
ENDING AT (X'00E3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 02340000
COMMIT; 02350000
ALTER TABLE A914227B.TNZ243A1 02360000
ALTER PARTITION 58 02370000
ENDING AT (X'00E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 02380000
COMMIT; 02390000
ALTER TABLE A914227B.TNZ243A1 02400000
ALTER PARTITION 59 02410000
ENDING AT (X'00EBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 02420000
COMMIT; 02430000
ALTER TABLE A914227B.TNZ243A1 02440000
ALTER PARTITION 60 02450000
ENDING AT (X'00EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 02460000
COMMIT; 02470000
02480000
--ALTER TABLE A914227B.TNZ243A1 02490000
-- ADD PARTITION ENDING AT 02500000
-- (X'00F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 02510000
--COMMIT; 02520000
--ALTER TABLE A914227B.TNZ243A1 02530000
-- ADD PARTITION ENDING AT 02540000
-- (X'00F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 02550000
--COMMIT; 02560000
--ALTER TABLE A914227B.TNZ243A1 02570000
-- ADD PARTITION ENDING AT 02580000
-- (X'00FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 02590000
--COMMIT; 02600000
--ALTER TABLE A914227B.TNZ243A1 02610000
-- ADD PARTITION ENDING AT 02620000
-- (X'00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); 02630000
--COMMIT; 02640000
}¢--- A540769.WK.SQL(FUNC) cre=2011-03-18 mod=2011-03-22-13.29.39 A540769 ------
set current sqlid = 'S100447';
-- drop function t1.f1(n int);
create function A540769.fCr(i varchar(10)) returns varchar(50)
return 'A540769.fCr(' || i || ')';
create function oa1a.fCr(i varchar(10)) returns varchar(50)
return 'oa1a.fCr(' || i || ', ' || a540769.fCr('->' || i) || ')';
select A540769.fCr('eins'), oa1a.fCr('zwei') from sysibm.sysDummy1;
set path oa1a;
select fCr('paOA1A') from sysibm.sysDummy1;
set path A540769;
select fCr('paA540') from sysibm.sysDummy1;
create procedure A540769.pCr(in i varchar(10), out o varchar(50))
-- qualifier A540769
sql path sysproc, x540769
set o = fCr(i)
;
;;,
return 't1.f1=' || fosFmte7(n)
;
select t1.f1(123) from sysibm.sysDummy1;
set current path t1;
select f1(456) from sysibm.sysDummy1;
call abc;
select 'sqlid ' || left(current sqlid, 9)
|| ' schema ' || left(current schema, 9) || 'path ' || current path
from sysibm.sysDummy1
;
set current schema = 'S100447';
select 'sqlid ' || left(current sqlid, 9)
|| ' schema ' || left(current schema, 9) || 'path ' || current path
from sysibm.sysDummy1
;
commit;
select 'sqlid ' || left(current sqlid, 9)
|| ' schema ' || left(current schema, 9) || 'path ' || current path
from sysibm.sysDummy1
;
commit;
set current sqlid = 'A540769';
select 'sqlid ' || left(current sqlid, 9) || 'path ' || current path
from sysibm.sysDummy1
;
;;;
set current sqlid = 'S100447';
select oa1a.fosFmtE7(123.45) from sysibm.sysDummy1;
set current path oa1a;
select fosFmtE7(123.45) from sysibm.sysDummy1;
drop function t1.f1(n int);
create function t1.f1(n int) returns varchar(11)
return 't1.f1=' || fosFmte7(n)
;
select t1.f1(123) from sysibm.sysDummy1;
set current path t1;
select f1(456) from sysibm.sysDummy1;
}¢--- A540769.WK.SQL(FUNCTION) cre=2010-06-29 mod=2010-06-29-15.24.55 A540769 ---
set current sqlid = 'S100447';
create function oa1t.fosIxTime(db varchar(24), ts varchar(24),
part smallint) returns real
language sql not deterministic contains sql
return
(select 1 from sysibm.sysDummy1)
;
}¢--- A540769.WK.SQL(FUNFAK) cre=2009-08-14 mod=2009-08-14-18.43.09 A540769 ----
set current sqlid = 'S100447';
-- drop function A540769.FMTSq2;
create function A540769.fak(n int) returns int
return case when n < 3 then n else n * a540769.fak(n-1) end
;
select a540769.fak(1), a540769.fak(3), a540769.fak(5)
from sysibm.sysdummy1
;
ROLLBACK
}¢--- A540769.WK.SQL(FUNNAT) cre=2009-08-14 mod=2009-08-14-17.18.44 A540769 ----
set current sqlid = 'S100447';
-- drop function A540769.FMTSq2;
create function A540769.fmtSq(n varchar(10), int l) returns varchar(30)
return case when left(n, 1) = '-' then
case when length(n) <= l then
'-' || repeat('0', n-length(n)) || substr(n, 2)
else repeat('-', n)
end
when length(n) <= l then
repeat('0', n-length(n)) || n
else repeat('+', n)
end
;
|| substr(char(r), posstr(char(r), 'E')), 8)
;
with reals (r) as
(
select float(0)+0 from sysibm.sysDummy1
union select float(123.456)+0 from sysibm.sysDummy1
union select float(-23.456) from sysibm.sysDummy1
union select float(-23.456e7) from sysibm.sysDummy1
union select float(-23.456e17) from sysibm.sysDummy1
union select float(-23.456e-6) from sysibm.sysDummy1
union select float(-23.456e-16) from sysibm.sysDummy1
union select float(-10000)/7 from sysibm.sysDummy1
)
select
r, '<' || char(float(r)) || '>', length(char(r)),
char(char(
dec(left(char(r), posstr(char(r), 'E') - 1), 3, 2))
|| '<' || substr(char(r), posstr(char(r), 'E')), 10) || '>'
from reals
;
set current sqlid = 's100447';
drop function A540769.FMT;
create function A540769.FMT(r float) returns char(30)
return
char(char(
dec(left(char(r), posstr(char(r), 'E') - 1), 3, 2))
|| substr(char(r), posstr(char(r), 'E')), 8)
;
select float(0), float(123.456) from sysibm.sysDummy1;
select a540769.fmt(0), a540769.fmt(123.456e12) from sysibm.sysDummy1;
}¢--- A540769.WK.SQL(FZ01001) cre= mod= ----------------------------------------
------------------------------------------------------------------------
-- --
-- Database 2 Administration Tool (DB2 Admin) , program 5697-L90 (C) --
-- --
-- ADB2GEN - Extract object definitions from the DB2 Catalog tables --
-- --
-- Input prepared on : DBAF (810) Extract time : 2006-11-21 10:00 --
-- --
-- Catalog values overridden : none
-- --
-- Generate : SG=N DB=Y TS=Y TB=Y VW=Y IX=Y SY=Y AL=Y LB=Y CM=Y FK=Y --
-- TG=Y UT=N UF=N SP=N SQ=N --
-- Grants : SG=N DB=Y TS=Y TB=N VW=N SC=N UT=N UF=N SP=N SQ=N --
-- --
------------------------------------------------------------------------
--
SET CURRENT SQLID='S100447';
------------------------------------------------------------------------
-- --
-- ADB2GEN: Generate DDL for Tablespace=A023A In Database FZ01A1A --
-- --
------------------------------------------------------------------------
--
------------------------------------------------------------------------
-- Database=FZ01A1P Stogroup=GSMS
-- Tablespace=FZ01A1P.A023A
------------------------------------------------------------------------
--
CREATE TABLESPACE A023A
IN FZ01A1P
USING STOGROUP GSMS
PRIQTY 720 SECQTY 7200
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID EBCDIC
DEFINE YES
MAXROWS 40;
--
------------------------------------------------------------------------
-- Table=OA1P.TFZ023A1 In FZ01A1P.A023A
------------------------------------------------------------------------
--
CREATE TABLE OA1P.TFZ023A1
(FZ02300 TIMESTAMP NOT NULL,
FZ02301 CHAR(16) FOR SBCS DATA NOT NULL,
FZ02302 INTEGER NOT NULL,
FZ02303 CHAR(3) FOR SBCS DATA NOT NULL,
FZ02304 CHAR(3) FOR SBCS DATA NOT NULL,
FZ02305 INTEGER NOT NULL,
FZ02306 INTEGER NOT NULL,
FZ02307 INTEGER NOT NULL,
FZ02308 CHAR(1) FOR SBCS DATA NOT NULL,
FZ02309 CHAR(2) FOR SBCS DATA NOT NULL,
FZ02310 CHAR(16) FOR SBCS DATA NOT NULL,
FZ02311 CHAR(20) FOR SBCS DATA NOT NULL,
FZ02312 CHAR(1) FOR SBCS DATA NOT NULL,
FZ02313 CHAR(5) FOR SBCS DATA NOT NULL,
FZ02314 CHAR(2) FOR SBCS DATA NOT NULL,
FZ02315 CHAR(11) FOR SBCS DATA NOT NULL,
CONSTRAINT FZ02301
PRIMARY KEY (FZ02301,
FZ02305,
FZ02302,
FZ02304))
IN FZ01A1P.A023A
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE;
--
LABEL ON TABLE OA1P.TFZ023A1 IS 'Buchungsposten ';
--
LABEL ON OA1P.TFZ023A1
(FZ02315 IS 'Zahlungs-Empfänger ',
FZ02314 IS 'TP-Status-Code',
FZ02313 IS 'Zahlungs-Meldungs-Typ',
FZ02312 IS 'KONTO-MERKMALE',
FZ02311 IS 'CIF-UWI KONTOINHABER',
FZ02310 IS 'KONTO-GUTSCHRIFT/BELAST',
FZ02309 IS 'ZAHLUNGSVERKEHRSFALL',
FZ02308 IS 'EINGANG/AUSGANG',
FZ02307 IS 'ANZAHL POSTEN ',
FZ02306 IS 'POSTEN-GEGENSEITE',
FZ02305 IS 'POSTEN-NR.CODE',
FZ02304 IS 'VERARBEITUNGS-ART',
FZ02303 IS 'STATUS-CODE ',
FZ02302 IS 'LAUF-NUMMER ',
FZ02301 IS 'UUID ',
FZ02300 IS 'TIMESTAMP ');
--
------------------------------------------------------------------------
-- Database=FZ01A1P
-- Index=OA1P.IFZ023A0 On OA1P.TFZ023A1
------------------------------------------------------------------------
--
CREATE UNIQUE INDEX OA1P.IFZ023A0
ON OA1P.TFZ023A1
(FZ02301 ASC,
FZ02305 ASC,
FZ02302 ASC,
FZ02304 ASC)
USING STOGROUP GSMS
PRIQTY 48 SECQTY 7200
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
NOT CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
--
------------------------------------------------------------------------
-- Database=FZ01A1P
-- Index=OA1P.IFZ023A1 On OA1P.TFZ023A1
------------------------------------------------------------------------
--
CREATE INDEX OA1P.IFZ023A1
ON OA1P.TFZ023A1
(FZ02305 ASC,
FZ02310 ASC,
FZ02301 ASC)
USING STOGROUP GSMS
PRIQTY 720 SECQTY 720
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
--
COMMIT;
--
------------------------------------------------------------------------
-- ADB2GEN - End of generated DDL --
------------------------------------------------------------------------
--
}¢--- A540769.WK.SQL(FZ02) cre=2006-02-24 mod=2006-02-24-19.01.27 F540769 ------
drop tablespace fz02a1a.a026H; 00010002
commit; 00010103
drop table oa1a.TFZ026H1; 00011002
select * from oa1a.TFZ026H1; 00020001
}¢--- A540769.WK.SQL(GAECH) cre=2006-06-19 mod=2006-06-19-13.58.37 F540769 -----
SET CURRENT SQLID = 'S100447'; 00010001
CREATE ALIAS OA1L03.TAV211A1 FOR OA1L.TAV211A1 ; 00020005
CREATE ALIAS OA1L03.TAV313A1 FOR OA1L.TAV313A1 ; 00030005
CREATE ALIAS OA1L01.TAV413A1 FOR OA1L03.TAV413A1 ; 00040005
CREATE ALIAS OA1L02.TAV413A1 FOR OA1L03.TAV413A1 ; 00050005
CREATE ALIAS OA1L05.TAV413A1 FOR OA1L03.TAV413A1 ; 00060005
CREATE ALIAS OA1L06.TAV413A1 FOR OA1L03.TAV413A1 ; 00070005
CREATE ALIAS OA1L07.TAV413A1 FOR OA1L03.TAV413A1 ; 00080005
CREATE ALIAS OA1L08.TAV413A1 FOR OA1L03.TAV413A1 ; 00090005
CREATE ALIAS OA1L09.TAV413A1 FOR OA1L03.TAV413A1 ; 00100005
CREATE ALIAS OA1L10.TAV413A1 FOR OA1L03.TAV413A1 ; 00110005
CREATE ALIAS OA1L11.TAV413A1 FOR OA1L03.TAV413A1 ; 00120005
CREATE ALIAS OA1L12.TAV413A1 FOR OA1L03.TAV413A1 ; 00130005
CREATE ALIAS OA1L01.TAV414A1 FOR OA1L03.TAV414A1 ; 00140005
CREATE ALIAS OA1L02.TAV414A1 FOR OA1L03.TAV414A1 ; 00150005
CREATE ALIAS OA1L05.TAV414A1 FOR OA1L03.TAV414A1 ; 00160005
CREATE ALIAS OA1L06.TAV414A1 FOR OA1L03.TAV414A1 ; 00170005
CREATE ALIAS OA1L07.TAV414A1 FOR OA1L03.TAV414A1 ; 00180005
CREATE ALIAS OA1L08.TAV414A1 FOR OA1L03.TAV414A1 ; 00190005
CREATE ALIAS OA1L09.TAV414A1 FOR OA1L03.TAV414A1 ; 00200005
CREATE ALIAS OA1L10.TAV414A1 FOR OA1L03.TAV414A1 ; 00210005
CREATE ALIAS OA1L11.TAV414A1 FOR OA1L03.TAV414A1 ; 00220005
CREATE ALIAS OA1L12.TAV414A1 FOR OA1L03.TAV414A1 ; 00230005
}¢--- A540769.WK.SQL(GANTER) cre=2007-06-22 mod=2007-06-22-20.24.23 F540769 ----
SET CURRENT SQLID='S100447';
CREATE UNIQUE INDEX OA1T.ISN100A1
ON OA1T.TSN100A1
(SN100BDP ASC,
SN100BVA ASC,
SN100SEQ ASC,
SN100SEE ASC)
USING STOGROUP GSMS
PRIQTY 720 SECQTY 7200
ERASE NO
FREEPAGE 10 PCTFREE 10
GBPCACHE CHANGED
NOT CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
COMMIT;
}¢--- A540769.WK.SQL(GARCIA) cre=2008-05-22 mod=2008-05-22-17.55.18 F540769 ----
with e as
( select cast(remarks as varchar(1500) ccsid ebcdic) remEbc, c.*
from sysibm.syscolumns c
)
, x as
( SELECT tbCreator, tbName, name, remarks, remEbc,
-- smallInt(posstr(remEbc, x'50')) x50, ist &
smallInt(posstr(remEbc, x'51')) x51, -- ist é e aigu
smallInt(posstr(remEbc, x'52')) x52,
smallInt(posstr(remEbc, x'53')) x53,
smallInt(posstr(remEbc, x'54')) x54,
smallInt(posstr(remEbc, x'55')) x55, -- ist i aigu
smallInt(posstr(remEbc, x'56')) x56,
smallInt(posstr(remEbc, x'57')) x57,
smallInt(posstr(remEbc, x'59')) x58,
smallInt(posstr(remEbc, x'59')) x59,
-- smallInt(posstr(remEbc, x'5A')) x5A, ist ! ??
-- smallInt(posstr(remEbc, x'5B')) x5B, ist $ ??
-- smallInt(posstr(remEbc, x'5C')) x5C, ist *
-- smallInt(posstr(remEbc, x'5D')) x5D, ist )
-- smallInt(posstr(remEbc, x'5E')) x5E, ist ;
-- smallInt(posstr(remEbc, x'5F')) x5F, ist ^
smallInt(posstr(remEbc, x'41')) x41,
smallInt(posstr(remEbc, x'42')) x42,
-- smallInt(posstr(remEbc, x'43')) x43, ist ä
-- smallInt(posstr(remEbc, x'44')) x44, ist à
smallInt(posstr(remEbc, x'45')) x45,
smallInt(posstr(remEbc, x'46')) x46,
smallInt(posstr(remEbc, x'47')) x47,
smallInt(posstr(remEbc, x'48')) x48,
smallInt(posstr(remEbc, x'49')) x49,
-- smallInt(posstr(remEbc, x'4A')) x4A, ist ¢ ??
-- smallInt(posstr(remEbc, x'4B')) x4B, ist .
-- smallInt(posstr(remEbc, x'4C')) x4C ist < ??
-- smallInt(posstr(remEbc, x'4D')) x4D, ist (
-- smallInt(posstr(remEbc, x'4E')) x4E, ist +
-- smallInt(posstr(remEbc, x'4F')) x4F ist |
from e
)
select char(left(x.tbCreator, 10)
|| left(x.tbName,10) || left(x.name,20),40)
,x52,x53,x54,x55,x56,x57,x58,x59,x5a,x5b ,x5f
,x41,x42 ,x45,x46,x47,x48,x49,x4a, x4c,
x.tbCreator, x.tbName, x.name, createdts,
x.remarks, hex(remEbc) hexEbc, hex(x.remarks) hexUni
from x, sysibm.systables t
where (x.tbName like 'VW%' or x.tbName like 'TW%')
and int(0)
+x52+x53+x54+x55+x56+x57+x58+x59+x5a+x5b +x5f
+x41+x42 +x45+x46+x47+x48+x49+x4a +x4c
> 0
and t.name = x.tbName and t.creator = x.tbCreator
order by x.tbName, x.name, x.tbcreator
with ur
;
xith x as
( SELECT tbCreator, tbName, name, remarks,
smallInt(posstr(remarks, x'C3AD')) xC3Ad
from sysibm.syscolumns
)
select char(left(tbCreator, 10) || left(tbName,10) || left(name,20),40),
xc3ad ,
remarks, hex(remarks), tbCreator, tbName, name
from x
where (tbName like 'VWB%' or tbName like 'TWB%')
and int(xc3Ad) > 0
order by tbName, name, tbcreator
with ur
;
xELECT strip(tbCreator) || '.' || STRIP(tbName) ||'.' || strip(name)
from sysibm.syscolumns
where tbName like 'VWB%'
and ( posstr(remarks, x'55') > 0
or posstr(remarks, x'56') > 0
or posstr(remarks, x'57') > 0
or posstr(remarks, x'58') > 0
)
order by tbName, name, tbcreator
}¢--- A540769.WK.SQL(GA01) cre=2006-02-24 mod=2006-02-24-16.13.56 F540769 ------
delete from 00001006
oa1a.tga009a1; 00002006
00003004
select count(*), ga009012 from 00010005
oa1a.tga009a1 00020004
group by ga009012 00030004
order by 1 desc 00040002
}¢--- A540769.WK.SQL(GBGRCLEA) cre=2015-12-09 mod=2015-12-12-09.51.06 A540769 ---
-- gbGr cleanup
-- check / delete duplicate in tqz006gbgrTsStats
--
-- ==> benutze gbgrCleC, das alle rows zwischen erstem und letzem loadTS
-- der duplicate rausputzt,
-- sonst reproduziert sich der Fehler wieder beim nächsten Load
--
-- duplicates (rz, ..., updateSTatsTime) but with distinct loadTS
-- (1) select count
-- (2) delete
-- switch zwischen (1) und (2) durch anpassen der mit --??
-- markierten stellen
--
delete --??
--?? select count(*), rz, dbSys, loadTs, state --??
from OA1P.TQZ006GBGRTSSTATS where state = 'a' and --??
(rz, dbSys, dbName, name, partition, instance, updatestatstime
,loadTs) in
( select
rz, dbSys, dbName, name, partition, instance, updatestatstime
,loadTs from
( -- r duplicates with row number
select s.*
, row_number() over(partition by s.rz, s.dbSys, s.dbName
, s.name, s.partition, s.instance
, s.updateSTatsTime
order by a.loadTs
) rn
, a.loadTs
from
( -- s keys with duplicates
select rz, dbSys, dbName, name, partition, instance, updatestatstime
, count(*) cnt
from OA1P.TQZ006GBGRTSSTATS
where rz = 'RZ2' and dbSys = 'DVBP'
group by rz, dbSys, dbName, name, partition, instance, updatestatstime
having count(*) > 1
) s
join OA1P.TQZ006GBGRTSSTATS a
on a.rz = s.rz and a.dbSys = s.dbSys
and a.dbName = s.dbName and a.name = s.name
and a.partition = s.partition
and a.instance = s.instance
and a.updateStatsTime = s.updateStatsTime
) r
where rn > 1 )
/* --??
group by rz, dbSys, loadTs, state
order by 1 desc
*/ --??
;
commit
}¢--- A540769.WK.SQL(GBGRCLEB) cre=2015-12-09 mod=2015-12-14-07.07.07 A540769 ---
-- gbGr cleanup
-- check / delete ungültige drops (state = 'd')
-- (1) select count
-- (2) delete
-- switch zwischen (1) und (2) durch anpassen der mit --??
-- markierten stellen
--
with d as
(
select rz, dbSys, dbName, name, partition, instance, updatestatstime
, state, loadTs
, ( select char(n.loadTS) || char(n.updateStatsTime) || n.state
from OA1P.TQZ006GBGRTSSTATS n
where d.rz = n.rz and d.dbSys = n.dbSys
and d.dbName = n.dbName and d.name = n.name
and d.partition = n.partition
and d.instance = n.instance
and d.loadTS < n.loadTS
order by n.loadTs
fetch first 1 rows only
) nx
from OA1P.TQZ006GBGRTSSTATS d
where state <> 'a'
and rz = 'RZ2' -- and dbSys = 'DBOF'
)
, n as
(
select d.*
, timestamp(substr(nx, 1, 26)) nxLoad
, timestamp(substr(nx, 27, 26)) nxUpd
, substr(nx, 53 ) nxState
from d
)
, o2 as
(
select n.*
, ( select char(o.loadTS) || char(o.updateStatsTime) || o.state
from OA1P.TQZ006GBGRTSSTATS o
where n.rz = o.rz and n.dbSys = o.dbSys
and n.dbName = o.dbName and n.name = o.name
and n.partition = o.partition
and n.instance = o.instance
and n.nxLoad < o.loadTs
order by o.loadTs
fetch first 1 rows only
) ov
from n
)
, o as
(
select o2.*
, timestamp(substr(ov, 1, 26)) ovLoad
, timestamp(substr(ov, 27, 26)) ovUpd
, substr(ov, 53 ) ovState
from o2
)
, p as
(
select o.*
, case when days(ovLoad) - days(loadTs) < 8 then 'o<8 '
when days(ovLoad) - days(loadTs) < 15 then 'o<15 '
else '' end
||case when days(nxLoad) - days(loadTs) <= 7 then 'n<8 '
when days(nxLoad) - days(loadTs) <= 15 then 'n<15 '
else '' end
||case when nxUpd < loadTs then 'nx<Lo' else '' end dno
, case when ovState = 'a' and nxUpd < loadTs then 'dn'
when ovState = 'a' and nxLoad < loadTs + 8 days then 'd'
when ovState = 'd' and ( nxUpd < loadTs
or nxLoad < loadTs + 8 days) then 'no'
when ovState is not null then ''
when nxState = 'd' then 'n'
when nxState = 'a' and nxUpd < loadTs then 'dn'
when nxState = 'a' and nxLoad < loadTs + 8 days then 'd'
else '' end deldno
from o
)
select state, nxState, ovState, dno, delDno, count(*)
from p
group by state, nxState, ovState, dno, delDno
;x;
select count(*), dd
from d
group by dd
order by value(dd, -99)
;
;x;
with s as
(
select rz, dbSys, dbName, name, partition, instance, updatestatstime
, count(*) cnt
from OA1P.TQZ006GBGRTSSTATS
where rz = 'RZ2' and dbSys = 'DBOF'
-- and dbName in ('XC01A1P', 'XR01A1P')
-- and (name like 'A2%' or name like 'A5%')
group by rz, dbSys, dbName, name, partition, instance, updatestatstime
having count(*) > 1
)
, l as
(
select s.*
, row_number() over(partition by s.rz, s.dbSys, s.dbName
, s.name, s.partition, s.instance
, s.updateSTatsTime
order by a.loadTs
) rn
, a.loadTs
from s
join OA1P.TQZ006GBGRTSSTATS a
on a.rz = s.rz and a.dbSys = s.dbSys
and a.dbName = s.dbName and a.name = s.name
and a.partition = s.partition
and a.instance = s.instance
and a.updateStatsTime = s.updateStatsTime
)
select loadTs, count(*)
from l
where rn > 1
group by loadTs
order by 2 desc
;x;
select *
from l
order by rz, dbSys, dbName, name, partition, instance
, updatestatstime, rn
;x;
, n as
(
select nN.*
, ( select max(nD.updatestatsTime)
from OA1P.TQZ006GBGRTSSTATS nD
where nS.rz = nD.rz and nS.dbSys = nD.dbSys
and nS.dbName = nD.dbName and nS.name = nD.name
and nS.partition = nD.partition
and nS.instance = nD.instance and nD.state = 'a'
and not
( nN.totalRows = nD.totalRows
and nN.nActive = nD.nActive
and nN.nPages = nD.nPages
and nN.reorgInserts = nD.reorgInserts
and nN.REORGDELETES = nD.REORGDELETES
and nN.REORGUPDATES = nD.REORGUPDATES
and nN.REORGMASSDELETE = nD.REORGMASSDELETE
and nN.dataSize = nD.dataSize
) ) difNew
from s nS
join OA1P.TQZ006GBGRTSSTATS nN
on nS.rz = nN.rz and nS.dbSys = nN.dbSys
and nS.dbName = nN.dbName and nS.name = nN.name
and nS.partition = nN.partition and nS.instance = nN.instance
and nS.updatestatstime = nN.updateStatsTime
)
, e as
(
select
( select min(updatestatsTime)
from OA1P.TQZ006GBGRTSSTATS a
where a.rz = d.rz and a.dbSys = d.dbSys and a.state = 'a'
and a.dbName = d.dbName and a.name = d.name
and a.partition = d.partition
and a.instance = d.instance
and a.updateStatsTime
> value(d.difNew, d.updateStatsTime - 1e-6 seconds)
) eqOld
, d.*
from n d
)
select *
from n
where name = 'A517A'
order by 1 desc , dbName, name, partition
;x;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
with s as
(
select rz, dbSys, dbName, name, partition, instance
, max(updatestatstime) updatestatstime
from OA1P.TQZ006GBGRTSSTATS s1
where rz = 'RZ2' and dbSys = 'DBOF' and state = 'a'
and dbName in ('XC01A1P', 'XR01A1P')
and (name like 'A2%' or name like 'A5%')
group by rz, dbSys, dbName, name, partition, instance
)
, n as
(
select nN.*
, ( select max(nD.updatestatsTime)
from OA1P.TQZ006GBGRTSSTATS nD
where nS.rz = nD.rz and nS.dbSys = nD.dbSys
and nS.dbName = nD.dbName and nS.name = nD.name
and nS.partition = nD.partition
and nS.instance = nD.instance and nD.state = 'a'
and not
( nN.totalRows = nD.totalRows
and nN.nActive = nD.nActive
and nN.nPages = nD.nPages
and nN.reorgInserts = nD.reorgInserts
and nN.REORGDELETES = nD.REORGDELETES
and nN.REORGUPDATES = nD.REORGUPDATES
and nN.REORGMASSDELETE = nD.REORGMASSDELETE
and nN.dataSize = nD.dataSize
) ) difNew
from s nS
join OA1P.TQZ006GBGRTSSTATS nN
on nS.rz = nN.rz and nS.dbSys = nN.dbSys
and nS.dbName = nN.dbName and nS.name = nN.name
and nS.partition = nN.partition and nS.instance = nN.instance
and nS.updatestatstime = nN.updateStatsTime
)
, e as
(
select
( select min(updatestatsTime)
from OA1P.TQZ006GBGRTSSTATS a
where a.rz = d.rz and a.dbSys = d.dbSys
and a.dbName = d.dbName and a.name = d.name
and a.partition = d.partition
and a.instance = d.instance and a.state = 'a'
and a.updateStatsTime
> value(d.difNew, d.updateStatsTime - 1e-6 seconds)
) eqOld
, d.*
from n d
)
select char(value(strip(dbName) || ',' || strip(name)
|| ',' || partition
|| ',' || char(eqOld)
|| ',' || char(updateStatsTime), ''), 80) txt
from e
order by dbName, name, partition
;
;x;
}¢--- A540769.WK.SQL(GBGRCLEC) cre=2015-12-11 mod=2015-12-14-07.23.10 A540769 ---
-- gbGr cleanup
-- check / delete duplicate in tqz006gbgrTsStats
-- duplicates (rz, ..., updateSTatsTime) but with distinct loadTS
-- (1) select ...
-- (2) delete
-- switch zwischen (1) und (2) durch anpassen der mit --??
-- markierten stellen
--
-- bei jedem duplicate: all rows > min(loadTs) und <= max(loadTS)
-- rausputzen, die sind nämlich alle falsch
-- z.B. wenn duplicate durch irrtümliches stage=d entstand
--
/*
--?? delete --??
select rz, dbSys, state, count(*) --??
--lect rz, dbSys, dbName, name, partition, instance, state
-- , loadTs, updateStatstime
from OA1P.TQZ006GBGRTSSTATS where
(rz, dbSys, dbName, name, partition, instance, updatestatstime
,loadTs) in
( select s.rz, s.dbSys, s.dbName, s.name, s.partition
, s.instance, a.updatestatstime, a.loadTs
from ???????? */
select count(*), cnt, aFr, cFr, aBe, cBe, aTo, cTo
from
( -- j
select s.rz, s.dbSys, s.dbName, s.name, s.partition, s.instance
, s.loadFr, s.loadTo
, cnt
, sum(case when a.loadTs = s.loadFr and a.state = 'a'
then 1 else 0 end) aFr
, sum(case when a.loadTs = s.loadFr and a.state <> 'a'
then 1 else 0 end) cFr
, sum(case when a.loadTs > s.loadFr
and a.loadTs < s.loadTo and a.state = 'a'
then 1 else 0 end) aBe
, sum(case when a.loadTs > s.loadFr
and a.loadTs < s.loadTo and a.state <> 'a'
then 1 else 0 end) cBe
, sum(case when a.loadTs = s.loadTo and a.state = 'a'
then 1 else 0 end) aTo
, sum(case when a.loadTs = s.loadTo and a.state <> 'a'
then 1 else 0 end) cTo
from
( -- s keys with duplicates
select rz, dbSys, dbName, name, partition, instance, updatestatstime
, count(*) cnt, min(loadTs) loadFr, max(loadTs) loadTo
from OA1P.TQZ006GBGRTSSTATS
where rz = 'RR2' -- and dbSys = 'DBOF'
--and dbName like 'MF01A%'
group by rz, dbSys, dbName, name, partition, instance, updatestatstime
having count(*) > 1
) s
join OA1P.TQZ006GBGRTSSTATS a
on a.rz = s.rz and a.dbSys = s.dbSys
and a.dbName = s.dbName and a.name = s.name
and a.partition = s.partition
and a.instance = s.instance
and a.loadTs >= s.loadFr
and a.loadTs <= s.loadTo
/* ???
)
--der by rz, dbSys, dbName, name, partition, instance, loadTs
group by rz, dbSys, state
???? */
group by s.rz, s.dbSys, s.dbName, s.name, s.partition, s.instance
, s.loadFr, s.loadTo, s.cnt
) j
group by cnt, aFr, cFr, aBe, cBe, aTo, cTo
;
commit
}¢--- A540769.WK.SQL(GBGRCLED) cre=2015-12-14 mod=2015-12-14-07.38.30 A540769 ---
select rz, dbSys, loadTs, count(*)
, sum(case when state='a' then 1 else 0 end) sA
, sum(case when state='d' then 1 else 0 end) sD
-- gbGr cleanup
from OA1P.TQZ006GBGRTSSTATS
where -- rz ='RZ2'
loadTs between '2015-10-01-00.00.00'
and '2015-11-01-00.00.00'
group by rz,dbSys, loadTs
order by rz, dbSys, loadTs
;
}¢--- A540769.WK.SQL(GBGRCLEE) cre=2015-12-14 mod=2015-12-14-16.38.51 A540769 ---
-- gbGr cleanup
-- 2 days bad restart and bad data
-- check previous and next row, and delete if bad
-- (1) select ...
-- (2) delete
-- switch zwischen (1) und (2) durch anpassen der mit --??
-- markierten stellen
--
delete --??
from OA1P.TQZ006GBGRTSSTATS where
(rz, dbSys, dbName, name, partition, instance, loadTs
, updateStatsTIme) in
( select d.rz, d.dbSys, d.dbName, d.name, d.partition, d.instance
, d.aftLoad, d.aftUpd
from
( -- d give reason to delete or not to
select case when cnt <= 0 then '-bad0'
when aftLoad is null then '-aftNull ' || befState
when aftLoad > '2015-10-22-00.00.00'
then '-aftLoad> ' || befState||aftState
when befState = 'd' and aftState = 'd' then 'dd'
when befState <> aftState then '-state '||befState||aftState
when befUpd = aftUpd then '=='||befState
when befUpd > aftUpd then '=>'||befState
else '-else ' ||befState || aftState end del
, t.*
from
( -- t decode s
select s.*
, case when befLUS <> '' then timestamp(substr(befLUS, 1, 26))
else null end befLoad
, case when befLUS <> '' then timestamp(substr(befLUS, 27, 26))
else null end befUpd
, case when befLUS <> '' then substr(befLUS, 53)
else null end befState
, case when aftLUS <> '99' then timestamp(substr(aftLUS, 1, 26))
else null end aftLoad
, case when aftLUS <> '99' then timestamp(substr(aftLUS, 27, 26))
else null end aftUpd
, case when aftLUS <> '99' then substr(aftLUS, 53)
else null end aftState
from
( -- s keys with duplicates
select rz, dbSys, dbName, name, partition, instance
, count(*) cnt
, sum(case when loadTs < '2015-10-14-00.00.00'
or loadTs >= '2015-10-16-00.00.00'
then 0 else 1 end) cBad
, max(case when loadTs < '2015-10-14-00.00.00'
then char(loadTs) || char(updateStatsTime) || state
else '' end) befLUS
, min(case when loadTs >= '2015-10-16-00.00.00'
then char(loadTs) || char(updateStatsTime) || state
else '99' end) aftLUS
, max(loadTs) loadFr, max(loadTs) loadTo
from OA1P.TQZ006GBGRTSSTATS
where rz = 'RQ2' -- and dbSys = 'DBOF'
-- and dbName like 'MF01A%'
group by rz, dbSys, dbName, name, partition, instance
) s
) t
) d
where left(del, 1) <> '-'
) -- where in
--?? group by rz, dbSys, state
--?? order by rz, dbSys, state
;
commit
;
}¢--- A540769.WK.SQL(GBGRCLEF) cre=2015-12-14 mod=2015-12-14-15.26.28 A540769 ---
--?? select rz, dbSys, state, count(*) --??
delete --??
from OA1P.TQZ006GBGRTSSTATS
where rz = 'RR2'
and loadTs between '2015-10-14-00.00.00'
and '2015-10-16-00.00.00'
;
commit
;
}¢--- A540769.WK.SQL(GBGRCLEX) cre=2015-12-09 mod=2015-12-09-10.50.15 A540769 ---
;x;
with s as
(
select rz, dbSys, dbName, name, partition, instance, updatestatstime
, count(*) cnt
from OA1P.TQZ006GBGRTSSTATS
where rz = 'RZ2' and dbSys = 'DBOF'
-- and dbName in ('XC01A1P', 'XR01A1P')
-- and (name like 'A2%' or name like 'A5%')
group by rz, dbSys, dbName, name, partition, instance, updatestatstime
having count(*) > 1
)
, l as
(
select s.*
, row_number() over(partition by s.rz, s.dbSys, s.dbName
, s.name, s.partition, s.instance
, s.updateSTatsTime
order by a.loadTs
) rn
, a.loadTs
from s
join OA1P.TQZ006GBGRTSSTATS a
on a.rz = s.rz and a.dbSys = s.dbSys
and a.dbName = s.dbName and a.name = s.name
and a.partition = s.partition
and a.instance = s.instance
and a.updateStatsTime = s.updateStatsTime
)
select loadTs, count(*)
from l
where rn > 1
group by loadTs
order by 2 desc
;x;
select *
from l
order by rz, dbSys, dbName, name, partition, instance
, updatestatstime, rn
;x;
, n as
(
select nN.*
, ( select max(nD.updatestatsTime)
from OA1P.TQZ006GBGRTSSTATS nD
where nS.rz = nD.rz and nS.dbSys = nD.dbSys
and nS.dbName = nD.dbName and nS.name = nD.name
and nS.partition = nD.partition
and nS.instance = nD.instance and nD.state = 'a'
and not
( nN.totalRows = nD.totalRows
and nN.nActive = nD.nActive
and nN.nPages = nD.nPages
and nN.reorgInserts = nD.reorgInserts
and nN.REORGDELETES = nD.REORGDELETES
and nN.REORGUPDATES = nD.REORGUPDATES
and nN.REORGMASSDELETE = nD.REORGMASSDELETE
and nN.dataSize = nD.dataSize
) ) difNew
from s nS
join OA1P.TQZ006GBGRTSSTATS nN
on nS.rz = nN.rz and nS.dbSys = nN.dbSys
and nS.dbName = nN.dbName and nS.name = nN.name
and nS.partition = nN.partition and nS.instance = nN.instance
and nS.updatestatstime = nN.updateStatsTime
)
, e as
(
select
( select min(updatestatsTime)
from OA1P.TQZ006GBGRTSSTATS a
where a.rz = d.rz and a.dbSys = d.dbSys and a.state = 'a'
and a.dbName = d.dbName and a.name = d.name
and a.partition = d.partition
and a.instance = d.instance
and a.updateStatsTime
> value(d.difNew, d.updateStatsTime - 1e-6 seconds)
) eqOld
, d.*
from n d
)
select *
from n
where name = 'A517A'
order by 1 desc , dbName, name, partition
;x;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
with s as
(
select rz, dbSys, dbName, name, partition, instance
, max(updatestatstime) updatestatstime
from OA1P.TQZ006GBGRTSSTATS s1
where rz = 'RZ2' and dbSys = 'DBOF' and state = 'a'
and dbName in ('XC01A1P', 'XR01A1P')
and (name like 'A2%' or name like 'A5%')
group by rz, dbSys, dbName, name, partition, instance
)
, n as
(
select nN.*
, ( select max(nD.updatestatsTime)
from OA1P.TQZ006GBGRTSSTATS nD
where nS.rz = nD.rz and nS.dbSys = nD.dbSys
and nS.dbName = nD.dbName and nS.name = nD.name
and nS.partition = nD.partition
and nS.instance = nD.instance and nD.state = 'a'
and not
( nN.totalRows = nD.totalRows
and nN.nActive = nD.nActive
and nN.nPages = nD.nPages
and nN.reorgInserts = nD.reorgInserts
and nN.REORGDELETES = nD.REORGDELETES
and nN.REORGUPDATES = nD.REORGUPDATES
and nN.REORGMASSDELETE = nD.REORGMASSDELETE
and nN.dataSize = nD.dataSize
) ) difNew
from s nS
join OA1P.TQZ006GBGRTSSTATS nN
on nS.rz = nN.rz and nS.dbSys = nN.dbSys
and nS.dbName = nN.dbName and nS.name = nN.name
and nS.partition = nN.partition and nS.instance = nN.instance
and nS.updatestatstime = nN.updateStatsTime
)
, e as
(
select
( select min(updatestatsTime)
from OA1P.TQZ006GBGRTSSTATS a
where a.rz = d.rz and a.dbSys = d.dbSys
and a.dbName = d.dbName and a.name = d.name
and a.partition = d.partition
and a.instance = d.instance and a.state = 'a'
and a.updateStatsTime
> value(d.difNew, d.updateStatsTime - 1e-6 seconds)
) eqOld
, d.*
from n d
)
select char(value(strip(dbName) || ',' || strip(name)
|| ',' || partition
|| ',' || char(eqOld)
|| ',' || char(updateStatsTime), ''), 80) txt
from e
order by dbName, name, partition
;
select rz, dbSys, loadTs, state, count(*)
from OA1P.TQZ006GBGRTSSTATS
where rz = 'RZ2' and dbSys = 'DBOF' and state <> 'a'
group by loadTs, state
order by 3 desc
;x;
}¢--- A540769.WK.SQL(GBGRCLEY) cre=2015-12-14 mod=2015-12-14-06.42.53 A540769 ---
-- gbGr cleanup
-- check / delete duplicate in tqz006gbgrTsStats
-- duplicates (rz, ..., updateSTatsTime) but with distinct loadTS
-- (1) select ...
-- (2) delete
-- switch zwischen (1) und (2) durch anpassen der mit --??
-- markierten stellen
--
-- bei jedem duplicate: all rows > min(loadTs) und <= max(loadTS)
-- rausputzen, die sind nämlich alle falsch
-- z.B. wenn duplicate durch irrtümliches stage=d entstand
--
--?? delete --??
/*select rz, dbSys, state, count(*) --??
--lect rz, dbSys, dbName, name, partition, instance, state
-- , loadTs, updateStatstime
from OA1P.TQZ006GBGRTSSTATS where
(rz, dbSys, dbName, name, partition, instance, updatestatstime
,loadTs) in
( select s.rz, s.dbSys, s.dbName, s.name, s.partition
, s.instance, a.updatestatstime, a.loadTs
from */
select count(*), cFr, cBe, cTo, cnt
from
( -- g
select rz, dbSys, dbName, name, partition, instance
, loadFr, loadTo
, cnt
, sum(case when a.loadTs = s.loadFr then 1 else 0 end) cFr
, sum(case when a.loadTs > s.loadFr
and a.loadTs < s.loadTo then 1 else 0 end) cBe
, sum(case when a.loadTs = s.loadTo then 1 else 0 end) cTo
from
( -- j
select s.rz, s.dbSys, s.dbName, s.name, s.partition, s.instance
, a.updatestatstime, a.state, s.loadFr, s.loadTo
, count(*) cnt, min(loadTs) loadFr, max(loadTs) loadTo
from
( -- s keys with duplicates
select rz, dbSys, dbName, name, partition, instance, updatestatstime
, count(*) cnt, min(loadTs) loadFr, max(loadTs) loadTo
from OA1P.TQZ006GBGRTSSTATS
where rz = 'RR2' -- and dbSys = 'DBOF'
and dbName like 'MF01%'
group by rz, dbSys, dbName, name, partition, instance, updatestatstime
having count(*) > 1
) s
join OA1P.TQZ006GBGRTSSTATS a
on a.rz = s.rz and a.dbSys = s.dbSys
and a.dbName = s.dbName and a.name = s.name
and a.partition = s.partition
and a.instance = s.instance
and a.loadTs >= s.loadFr
and a.loadTs <= s.loadTo
group by s.rz, s.dbSys, s.dbName, s.name, s.partition, s.instance
, s.loadFr, s.loadTo
) j
group by rz, dbSys, cFr, cBe, cTo, cnt
) g
order by rz, dbSys, cFr, cBe, cTo, cnt
;
commit
}¢--- A540769.WK.SQL(GBGRCLID) cre=2015-12-14 mod=2015-12-14-19.28.17 A540769 ---
select rz, dbSys, loadTs, count(*)
, sum(case when state='a' then 1 else 0 end) sA
, sum(case when state='d' then 1 else 0 end) sD
-- gbGr cleanup
from OA1P.TQZ007GBGRIXSTATS
where -- rz ='RZ2'
loadTs between '2015-10-01-00.00.00'
and '2015-11-01-00.00.00'
group by rz,dbSys, loadTs
order by rz, dbSys, loadTs
;
}¢--- A540769.WK.SQL(GBGRCLIE) cre=2015-12-14 mod=2015-12-14-20.03.37 A540769 ---
set current application compatibility 'V11R1';
-- gbGr cleanup index
-- 2 days bad restart and bad data
-- check previous and next row, and delete if bad
-- (1) select ...
-- (2) delete
-- switch zwischen (1) und (2) durch anpassen der mit --??
-- markierten stellen
--
delete --??
from OA1P.TQZ007GBGRIXSTATS where
(rz, dbSys, dbName, ts, indexSpace, partition, instance, loadTs
, updateStatsTIme) in
( select d.rz, d.dbSys, d.dbName, d.ts, d.indexSpace
, d.partition, d.instance, d.aftLoad, d.aftUpd
/* --??
select rz, dbSys, del, sum(cBad) cBad
, sum(case when left(del, 1) <> '-' then 1 else 0 end) cAft
, count(*) g, sum(cnt) cnt
*/ --??
from
( -- d give reason to delete or not to
select case when cnt <= 0 then '-bad0'
when aftLoad is null then '-aftNull ' || befState
when aftLoad > '2015-10-22-00.00.00'
then '-aftLoad> ' || befState||aftState
when befState = 'd' and aftState = 'd' then 'dd'
when befState <> aftState then '-state '||befState||aftState
when befUpd = aftUpd then '=='||befState
when befUpd > aftUpd then '=>'||befState
else '-else ' ||befState || aftState end del
, t.*
from
( -- t decode s
select s.*
, case when befLUS <> '' then timestamp(substr(befLUS, 1, 26))
else null end befLoad
, case when befLUS <> '' then timestamp(substr(befLUS, 27, 26))
else null end befUpd
, case when befLUS <> '' then substr(befLUS, 53)
else null end befState
, case when aftLUS <> '99' then timestamp(substr(aftLUS, 1, 26))
else null end aftLoad
, case when aftLUS <> '99' then timestamp(substr(aftLUS, 27, 26))
else null end aftUpd
, case when aftLUS <> '99' then substr(aftLUS, 53)
else null end aftState
from
( -- s keys with duplicates
select rz, dbSys, dbName, ts, indexSpace, partition, instance
, count(*) cnt
, sum(case when loadTs < '2015-10-14-00.00.00'
or loadTs >= '2015-10-16-00.00.00'
then 0 else 1 end) cBad
, max(case when loadTs < '2015-10-14-00.00.00'
then char(loadTs) || char(updateStatsTime) || state
else '' end) befLUS
, min(case when loadTs >= '2015-10-16-00.00.00'
then char(loadTs) || char(updateStatsTime) || state
else '99' end) aftLUS
, max(loadTs) loadFr, max(loadTs) loadTo
from OA1P.TQZ007GBGRIxSTATS
where rz = 'RQ2' -- and dbSys = 'DBOF'
-- and dbName like 'MF01A%'
group by rz, dbSys, dbName, ts, indexSpace, partition, instance
) s
) t
) d
where left(del, 1) <> '-'
) -- where in
--?? group by rollup(rz, dbSys, del)
--?? order by rz, dbSys, del
;
commit
;
}¢--- A540769.WK.SQL(GBGRCLIF) cre=2015-12-14 mod=2015-12-14-20.12.41 A540769 ---
--?? select rz, dbSys, state, count(*) --??
delete --??
from OA1P.TQZ007GBGRIXSTATS
where rz = 'RQ2'
and loadTs between '2015-10-14-00.00.00'
and '2015-10-16-00.00.00'
;
commit
;
}¢--- A540769.WK.SQL(GBGRCOVR) cre=2016-01-08 mod=2016-01-08-11.08.41 A540769 ---
with d (l, d) as
(
select 0, current timestamp from sysibm.sysDummy1
union all select l+1, d - 7 days from d where l < 4
)
select d, indexSpace, name, i.*
from d, oa1p.tqz007GbGrIxStats i
where rz = 'RZZ' and dbSys = 'DE0G' and dbName = 'MF01A1P'
and ts = 'A150A'
and d between validBegin and validEnd
order by 1 desc, 2, partition
;x;
with l2 as
(
select rz, dbSys, dbName, ts, indexSpace, partition, instance
, max(substr(char(validEnd)
|| strip(creator) || '.' || strip(name), 1, 60)) vn
from oa1p.tqz007GbGrIxStats i
where rz = 'RZZ' and dbSys = 'DE0G'
group by rz, dbSys, dbName, ts, indexSpace, partition, instance
)
, l as
, l as
(
select l2.*
, timestamp(substr(vn, 1, 26)) validEnd
, substr(vn, 27) ix
from l2
)
select validEnd, ix, l.*
from l
where validEnd between current timestamp - 10 days
and '9000-01-01-00.00.00'
order by 3,4,5,6,7, 8, 9
;x;
select *
from oa1p.tqz007GbGrIxHist i
where rz = 'RZZ' and dbSys = 'DE0G' and state = 'd'
and updateStatsTime > current timestamp - 10 days
order by rz, dbSys, dbName, ts, indexSpace, partition, instance
;x;
set current application compatibility 'V11R1';
with t as
(
select rz || '/' || dbSys || ':' || dbName || ':' || name
|| '#' || partition || 'i' || instance
|| '@' || char(validBegin) id
, validBegin
, validEnd
, ( select count(*)
from oa1p.tqz006GbGrTsStats a
where t.rz = a.rz and t.dbSys = a.dbSys
and t.dbName = a.dbName and t.name = a.name
and t.partition = a.partition
and t.instance = a.instance
and t.validBegin = a.validEnd
) || '<'
||( select count(*)
from oa1p.tqz006GbGrTsStats a
where t.rz = a.rz and t.dbSys = a.dbSys
and t.dbName = a.dbName and t.name = a.name
and t.partition = a.partition
and t.instance = a.instance
and t.validBegin <= a.validEnd
and t.validEnd >= a.validBegin
) || '>'
||( select count(*)
from oa1p.tqz006GbGrTsStats a
where t.rz = a.rz and t.dbSys = a.dbSys
and t.dbName = a.dbName and t.name = a.name
and t.partition = a.partition
and t.instance = a.instance
and t.validEnd = a.validBegin
) over
from oa1p.tqz006GbGrTsStats t
where rz = 'RZ2' and dbSys = 'DVBP'
)
, c as
(
select id
, case when validEnd > '9000-01-01-00.00.00'
then 'end' else 'act' end valEnd
, case when validBegin < validEnd then '<'
when validBegin = validEnd then '='
else '>' end valBegEnd
, over
from t
)
select valBegEnd, substr(over, 1, 10) over, valEnd
, count(*)
, min(id), max(id)
from c
group by cube(valBegEnd, over, valEnd)
order by valBegEnd, over, valEnd
}¢--- A540769.WK.SQL(GBGRDDL) cre=2013-08-26 mod=2016-05-02-09.49.42 A540769 ---
-- ddl gbGrenzen
-- 2. 5.16 mit lastDataChange etc. in view
-- 7. 1.16 mit validBegin validEnd in Zuerichtime
-- and updateStatsTime and loadTs original
-- 6. 1.16 mit origStatsTime original
-- und updateStatsTime shifted to local time
-- 19. 2.15 v11 Kolonnen
-- 12.12.14 Zusätzliche Cols in vQZ006GBGRENZE für Elar subSelect
--
set current sqlid = 'S100447';
$@ if 1 then $@=/view/ $***** recreate view **************************
drop view OA1P.vQZ006GBGRENZE ;
create view OA1P.vQZ006GBGRENZE as
with t as -- Daten der neuesten Table Partitionen (von t2)
(
select t.rz, t.dbSys, t.dbName, t.Name, min(t.tsTy) tsTy
, smallInt(t.partition * t.limPart) partition
, t.instance
, min(t.limGb) limGb
, min(t.parts) parts
, min(t.clone) clone
, min(t.tsInst) tsInst
, max(t.updateStatsTime) updateStatsTime
, max(validBegin) validBegin
, real(sum(real(t.nActive) * t.pgSize / 1048576)) actGB
, sum(cast(t.nActive as bigInt)) nActive
, sum(cast(t.nPages as bigInt)) nPages
, sum(t.space) space
, sum(t.totalRows) totalRows
, sum(t.dataSize) dataSize
, sum(cast(t.REORGINSERTS as bigInt)) REORGINSERTS
, max(lastDataChange) lastDataChange
, max(t.pgSize) pgSize
from OA1P.TQZ006GBGRTSSTATS t
where current timestamp >= validBegin
and current timestamp < validEnd
group by t.rz, t.dbSys, t.dbName, t.name
, smallInt(t.partition * t.limPart)
, t.instance
)
, i as -- Daten der neuest Index Partitionen (wie i2)
(
select i.*
, real(real(nActive) * ixPgSz / 1048576) actGB
from OA1P.TQZ007GBGRIxSTATS i
where current timestamp >= validBegin
and current timestamp < validEnd
)
-- ix und ts daten union
, u (limGb, actGb, db, ts, ix, part, inst, rz, dbSys
, tsTy, tsLimGb, tsParts, tsClone, tsInst
, updateStatsTime, validBegin
, nActive, nPages, space, totalRows, dataSize
, reorgInserts, lastDataChange, pgSize
) as
(
select limGb, actGb, dbName, name, ' --ts--'
, partition, instance, rz, dbSys
, tsTy, limGb, parts, clone , tsInst
, updateStatsTime, validBegin
, nActive, nPages, space, totalRows, dataSize
, reorgInserts, lastDataChange, pgSize
from t
union all select limGb, actGb, dbName, ts , name
, partition, instance, rz, dbSys
, tsTy, tslimGb, tsParts, tsClone, tsInst
, updateStatsTime, validBegin
, nActive, nPages, space, totalEntries
, cast( null as bigint)
, reorgInserts, cast(null as timestamp), ixPgSz
from i
)
, s as -- passenden Schwellwert aus MQT lesen
(
select u.*
, (select max(info) from oa1p.tqz008GbGrSchweExp e
where e.rz = u.rz and e.dbSys = u.dbSys
and left(e.db , e.dbLen) = left(u.db , e.dbLen)
and left(e.ts , e.tsLen) = left(u.ts , e.tsLen)
and e.part in(u.part, 0)
and e.tsTy in (u.tsTy, ' ')
and e.dsMin <= u.tslimGB
and validBegin <= current date
and validEnd > current date
) schwInfo
from u
)
, v as -- Schwelle extrahieren oder Fehler falls null
(
select int(case when schwInfo is not null
then int(substr(schwInfo, 16, 6))
else raise_error(70001, 'schwelle null ts='
|| db || '.' || ts || '#' || part)
end) schwelle
, s.*
from s
-- order by db, ts, part, ix
)
select * from v
;
commit;
$/view/
$@ if 0 then $@=/altV11/ $***** alter columns vor v11 *****************
alter TABLE OA1P.TQZ007GbGrIxSTATS
alter COPYUPDATELRSN set data type CHARACTER(10) -- FOR BIT DATA
;
alter TABLE OA1P.tqz006gbgrtsStats
alter COPYUPDATELRSN set data type CHARACTER(10) -- FOR BIT DATA
-- v11 columns
add UPDATESIZE BIGINT
WITH DEFAULT NULL
add LASTDATACHANGE TIMESTAMP (6) WITHOUT TIME ZONE
WITH DEFAULT NULL
;
$/altV11/
$@ if 0 then $@=/creStatsH/ $***** create stats tables 7.1.16 ****
?rop TABLESPACE qz01a1p.a007a;
commit ;
?rop TABLESPACE qz01a1p.a006a;
commit ;
;?;
-- ts stats -----------
CREATE TABLESPACE a006a
IN qz01a1p
numparts 15
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID unicode
DEFINE YES
MAXROWS 255
;
--
CREATE TABLE OA1P.tqz006gbgrtsStats
(
primary key (rz, dbSys, dbName, name, partition, instance
, validBegin)
-- , business_time without overlaps)
, rz char(3) not null with default '?'
, dbSys char(4) not null with default '?'
, validBegin TIMESTAMP(6) WITHOUT TIME ZONE not null with default
, validEnd timestamp(6) WITHOUT TIME ZONE not null
with default '9999-12-30-00.00.00'
constraint validCheck
check ( validEnd > validBegin )
, loadTS TIMESTAMP(6) WITHOUT TIME ZONE not null
with default '9999-12-30-00.00.00'
, tsType char(1) not null
, tsTy char(1) not null
, pgSize smallint not null
, segSize smallint not null
, parts smallint not null
, maxParts smallint not null
, dsSize int not null
, dsGB real not null
, limGB real not null
, limPart smallint not null
, obId smallint not null
, clone char(1) not null
, tsInst smallint not null
, tbCr varchar(128) not null
, tb varchar(128) not null
, tbTy char(1) not null
, tbObId smallint not null
, UPDATESTATSTIME TIMESTAMP (6) WITHOUT TIME ZONE not null
,NACTIVE INTEGER
WITH DEFAULT NULL
,NPAGES INTEGER
WITH DEFAULT NULL
,EXTENTS SMALLINT
WITH DEFAULT NULL
,LOADRLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
WITH DEFAULT NULL
,REORGLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
WITH DEFAULT NULL
,REORGINSERTS INTEGER
WITH DEFAULT NULL
,REORGDELETES INTEGER
WITH DEFAULT NULL
,REORGUPDATES INTEGER
WITH DEFAULT NULL
,REORGUNCLUSTINS INTEGER
WITH DEFAULT NULL
,REORGDISORGLOB INTEGER
WITH DEFAULT NULL
,REORGMASSDELETE INTEGER
WITH DEFAULT NULL
,REORGNEARINDREF INTEGER
WITH DEFAULT NULL
,REORGFARINDREF INTEGER
WITH DEFAULT NULL
,STATSLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
WITH DEFAULT NULL
,STATSINSERTS INTEGER
WITH DEFAULT NULL
,STATSDELETES INTEGER
WITH DEFAULT NULL
,STATSUPDATES INTEGER
WITH DEFAULT NULL
,STATSMASSDELETE INTEGER
WITH DEFAULT NULL
,COPYLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
WITH DEFAULT NULL
,COPYUPDATEDPAGES INTEGER
WITH DEFAULT NULL
,COPYCHANGES INTEGER
WITH DEFAULT NULL
,COPYUPDATELRSN CHARACTER(10) FOR BIT DATA
WITH DEFAULT NULL
,COPYUPDATETIME TIMESTAMP (6) WITHOUT TIME ZONE
WITH DEFAULT NULL
,IBMREQD CHARACTER(1) FOR MIXED DATA
NOT NULL
,DBID SMALLINT
NOT NULL
,"PSID" SMALLINT
NOT NULL
,"PARTITION" SMALLINT
NOT NULL
,INSTANCE SMALLINT
NOT NULL
WITH DEFAULT 1
,SPACE BIGINT
WITH DEFAULT NULL
,TOTALROWS BIGINT
WITH DEFAULT NULL
,DATASIZE BIGINT
WITH DEFAULT NULL
,UNCOMPRESSEDDATASIZE BIGINT
WITH DEFAULT NULL
,DBNAME char(8)
NOT NULL
WITH DEFAULT
,"NAME" char(8)
NOT NULL
WITH DEFAULT
,REORGCLUSTERSENS BIGINT
WITH DEFAULT NULL
,REORGSCANACCESS BIGINT
WITH DEFAULT NULL
,REORGHASHACCESS BIGINT
WITH DEFAULT NULL
,HASHLASTUSED DATE
WITH DEFAULT NULL
,DRIVETYPE CHARACTER(3) FOR MIXED DATA
NOT NULL
WITH DEFAULT 'HDD'
,LPFACILITY CHARACTER(1) FOR MIXED DATA
WITH DEFAULT NULL
,STATS01 BIGINT
WITH DEFAULT NULL
-- v11 columns
, UPDATESIZE BIGINT
WITH DEFAULT NULL
, LASTDATACHANGE TIMESTAMP (6) WITHOUT TIME ZONE
WITH DEFAULT NULL
,CONSTRAINT DSNTSS_INSTANCE CHECK
(INSTANCE = 1 OR INSTANCE = 2
)
)
in qz01a1p.a006A
partition by (rz, dbSys, dbName)
( partition 1 ending ('?')
, partition 2 ending ('RQ2')
, partition 3 ending ('RR2', 'DBOF')
, partition 4 ending ('RR2' )
, partition 5 ending ('RZ2', 'DBOF', 'NI03A1P' )
, partition 6 ending ('RZ2', 'DBOF' )
, partition 7 ending ('RZ2', 'DP2G' )
, partition 8 ending ('RZ2', 'DVBP', 'XBDNR001' )
, partition 9 ending ('RZ2', 'DVBP', 'XBFC2002' )
, partition 10 ending ('RZ2', 'DVBP' )
, partition 11 ending ('RZ4' )
, partition 12 ending ('RZX')
, partition 13 ending ('RZY')
, partition 14 ending ('RZZ', 'DE0G', 'NI03A1P' )
, partition 15 ending ('RZZ')
)
AUDIT NONE
DATA CAPTURE changes
CCSID unicode
NOT VOLATILE;
CREATE UNIQUE INDEX oa1p.iQZ006A1
ON oa1p.tqz006gbGrTsStats
(rz, dbsys, dbName, name, partition, instance, validBegin desc )
include(validEnd, updateStatsTime, loadTS)
partitioned
USING STOGROUP GSMS
ERASE NO
GBPCACHE CHANGED
CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
;
commit
;
-- index stats ---------------------------------------------------------
CREATE TABLESPACE a007A
IN qz01a1p
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
numparts 15
dssize 16 g
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID unicode
DEFINE YES
MAXROWS 255
;
--
CREATE TABLE OA1P.tqz007gbGrIxStats
( primary key (rz, dbSys, dbName, ts, indexSpace, partition, instance
, validBegin)
, rz char(3) not null with default '?'
, dbSys char(4) not null with default '?'
, validBegin TIMESTAMP(6) WITHOUT TIME ZONE not null with default
, validEnd timestamp(6) WITHOUT TIME ZONE not null
with default '9999-12-30-00.00.00'
constraint validCheck
check ( validEnd > validBegin )
, loadTS TIMESTAMP(6) WITHOUT TIME ZONE not null
with default '9999-12-30-00.00.00'
, indexType char(1) not null
, compress char(1) not null
, ixParts smallint not null
, ixPgSz smallint not null
, pieceSize int not null
, pieceGB real not null
, limGB real not null
, tbCreator varchar(128) not null
, tbName varchar(128) not null
, ts char(8) not null
, tsTy char(1) not null
, tsParts smallint not null
, tsClone char(1) not null
, tsInst smallInt not null
, tsDsSize int not null
, tsDsGb real not null
, tsLimGB real not null
, tsLimPart smallint not null
, tsPgSz smallint not null
, UPDATESTATSTIME TIMESTAMP (6) WITHOUT TIME ZONE NOT NULL
,NLEVELS SMALLINT
WITH DEFAULT NULL
,NPAGES INTEGER
WITH DEFAULT NULL
,NLEAF INTEGER
WITH DEFAULT NULL
,NACTIVE INTEGER
WITH DEFAULT NULL
,SPACE INTEGER
WITH DEFAULT NULL
,EXTENTS SMALLINT
WITH DEFAULT NULL
,LOADRLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
WITH DEFAULT NULL
,REBUILDLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
WITH DEFAULT NULL
,REORGLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
WITH DEFAULT NULL
,REORGINSERTS INTEGER
WITH DEFAULT NULL
,REORGDELETES INTEGER
WITH DEFAULT NULL
,REORGAPPENDINSERT INTEGER
WITH DEFAULT NULL
,REORGPSEUDODELETES INTEGER
WITH DEFAULT NULL
,REORGMASSDELETE INTEGER
WITH DEFAULT NULL
,REORGLEAFNEAR INTEGER
WITH DEFAULT NULL
,REORGLEAFFAR INTEGER
WITH DEFAULT NULL
,REORGNUMLEVELS INTEGER
WITH DEFAULT NULL
,STATSLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
WITH DEFAULT NULL
,STATSINSERTS INTEGER
WITH DEFAULT NULL
,STATSDELETES INTEGER
WITH DEFAULT NULL
,STATSMASSDELETE INTEGER
WITH DEFAULT NULL
,COPYLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
WITH DEFAULT NULL
,COPYUPDATEDPAGES INTEGER
WITH DEFAULT NULL
,COPYCHANGES INTEGER
WITH DEFAULT NULL
,COPYUPDATELRSN CHARACTER(10) FOR BIT DATA
WITH DEFAULT NULL
,COPYUPDATETIME TIMESTAMP (6) WITHOUT TIME ZONE
WITH DEFAULT NULL
,LASTUSED DATE
WITH DEFAULT NULL
,IBMREQD CHARACTER(1) FOR MIXED DATA
NOT NULL
,DBID SMALLINT
NOT NULL
,"ISOBID" SMALLINT
NOT NULL
,"PSID" SMALLINT
NOT NULL
,"PARTITION" SMALLINT
NOT NULL
,INSTANCE SMALLINT
NOT NULL
WITH DEFAULT 1
,TOTALENTRIES BIGINT
WITH DEFAULT NULL
,DBNAME char(8) not null
,"NAME" VARCHAR(128) FOR MIXED DATA
NOT NULL
WITH DEFAULT
,CREATOR VARCHAR(128) FOR MIXED DATA
NOT NULL
WITH DEFAULT
,INDEXSPACE char(8) not null
WITH DEFAULT
,REORGINDEXACCESS BIGINT
WITH DEFAULT NULL
,DRIVETYPE CHARACTER(3) FOR MIXED DATA
NOT NULL
WITH DEFAULT 'HDD'
,STATS101 BIGINT
WITH DEFAULT NULL
,CONSTRAINT DSNISS_INSTANCE CHECK
(INSTANCE = 1 OR INSTANCE = 2
)
)
partition by (rz, dbSys, dbName)
( partition 1 ending ('?')
, partition 2 ending ('RQ2')
, partition 3 ending ('RR2', 'DBOF')
, partition 4 ending ('RR2' )
, partition 5 ending ('RZ2', 'DBOF', 'NI03A1P' )
, partition 6 ending ('RZ2', 'DBOF' )
, partition 7 ending ('RZ2', 'DP2G' )
, partition 8 ending ('RZ2', 'DVBP', 'XBDNR001' )
, partition 9 ending ('RZ2', 'DVBP', 'XBFC2002' )
, partition 10 ending ('RZ2', 'DVBP' )
, partition 11 ending ('RZ4' )
, partition 12 ending ('RZX')
, partition 13 ending ('RZY')
, partition 14 ending ('RZZ', 'DE0G', 'NI03A1P' )
, partition 15 ending ('RZZ')
)
in qz01a1p.a007A
AUDIT NONE
DATA CAPTURE changes
CCSID unicode
NOT VOLATILE;
CREATE UNIQUE INDEX oa1p.iQZ007A1
ON oa1p.tqz007gbGrIxStats
(rz, dbsys, dbName, ts, indexSpace, partition, instance
, validBegin )
include(validEnd, updateStatstime, loadTs)
partitioned
USING STOGROUP GSMS
ERASE NO
GBPCACHE CHANGED
CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
$/creStatsH/
$@ if 0 then $@=/creStatG/ $***** create stats tables 5.1.16 *******
xrop TABLESPACE qz01a1p.a006a;
commit ;
xrop TABLESPACE qz01a1p.a007a;
commit ;
;
-- ts stats -----------
CREATE TABLESPACE a006a
IN qz01a1p
numparts 15
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID unicode
DEFINE YES
MAXROWS 255
;
--
CREATE TABLE OA1P.tqz006gbgrtsStats
( state char(1) not null with default '?'
, rz char(3) not null with default '?'
, dbSys char(4) not null with default '?'
, tsType char(1) not null
, tsTy char(1) not null
, pgSize smallint not null
, segSize smallint not null
, parts smallint not null
, maxParts smallint not null
, dsSize int not null
, dsGB real not null
, limGB real not null
, limPart smallint not null
, obId smallint not null
, clone char(1) not null
, tsInst smallint not null
, tbCr varchar(128) not null
, tb varchar(128) not null
, tbTy char(1) not null
, tbObId smallint not null
, loadTS TIMESTAMP (6) WITHOUT TIME ZONE
NOT NULL WITH DEFAULT
, ORIGSTATSTIME TIMESTAMP (6) WITHOUT TIME ZONE
NOT NULL WITH DEFAULT
, UPDATESTATSTIME TIMESTAMP (6) WITHOUT TIME ZONE
NOT NULL WITH DEFAULT
,NACTIVE INTEGER
WITH DEFAULT NULL
,NPAGES INTEGER
WITH DEFAULT NULL
,EXTENTS SMALLINT
WITH DEFAULT NULL
,LOADRLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
WITH DEFAULT NULL
,REORGLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
WITH DEFAULT NULL
,REORGINSERTS INTEGER
WITH DEFAULT NULL
,REORGDELETES INTEGER
WITH DEFAULT NULL
,REORGUPDATES INTEGER
WITH DEFAULT NULL
,REORGUNCLUSTINS INTEGER
WITH DEFAULT NULL
,REORGDISORGLOB INTEGER
WITH DEFAULT NULL
,REORGMASSDELETE INTEGER
WITH DEFAULT NULL
,REORGNEARINDREF INTEGER
WITH DEFAULT NULL
,REORGFARINDREF INTEGER
WITH DEFAULT NULL
,STATSLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
WITH DEFAULT NULL
,STATSINSERTS INTEGER
WITH DEFAULT NULL
,STATSDELETES INTEGER
WITH DEFAULT NULL
,STATSUPDATES INTEGER
WITH DEFAULT NULL
,STATSMASSDELETE INTEGER
WITH DEFAULT NULL
,COPYLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
WITH DEFAULT NULL
,COPYUPDATEDPAGES INTEGER
WITH DEFAULT NULL
,COPYCHANGES INTEGER
WITH DEFAULT NULL
,COPYUPDATELRSN CHARACTER(10) FOR BIT DATA
WITH DEFAULT NULL
,COPYUPDATETIME TIMESTAMP (6) WITHOUT TIME ZONE
WITH DEFAULT NULL
,IBMREQD CHARACTER(1) FOR MIXED DATA
NOT NULL
,DBID SMALLINT
NOT NULL
,"PSID" SMALLINT
NOT NULL
,"PARTITION" SMALLINT
NOT NULL
,INSTANCE SMALLINT
NOT NULL
WITH DEFAULT 1
,SPACE BIGINT
WITH DEFAULT NULL
,TOTALROWS BIGINT
WITH DEFAULT NULL
,DATASIZE BIGINT
WITH DEFAULT NULL
,UNCOMPRESSEDDATASIZE BIGINT
WITH DEFAULT NULL
,DBNAME char(8)
NOT NULL
WITH DEFAULT
,"NAME" char(8)
NOT NULL
WITH DEFAULT
,REORGCLUSTERSENS BIGINT
WITH DEFAULT NULL
,REORGSCANACCESS BIGINT
WITH DEFAULT NULL
,REORGHASHACCESS BIGINT
WITH DEFAULT NULL
,HASHLASTUSED DATE
WITH DEFAULT NULL
,DRIVETYPE CHARACTER(3) FOR MIXED DATA
NOT NULL
WITH DEFAULT 'HDD'
,LPFACILITY CHARACTER(1) FOR MIXED DATA
WITH DEFAULT NULL
,STATS01 BIGINT
WITH DEFAULT NULL
-- v11 columns
, UPDATESIZE BIGINT
WITH DEFAULT NULL
, LASTDATACHANGE TIMESTAMP (6) WITHOUT TIME ZONE
WITH DEFAULT NULL
,CONSTRAINT DSNTSS_INSTANCE CHECK
(INSTANCE = 1 OR INSTANCE = 2
)
)
in qz01a1p.a006a
partition by (rz, dbSys, dbName)
( partition 1 ending ('?')
, partition 2 ending ('RQ2')
, partition 3 ending ('RR2', 'DBOF')
, partition 4 ending ('RR2' )
, partition 5 ending ('RZ2', 'DBOF', 'NI03A1P' )
, partition 6 ending ('RZ2', 'DBOF' )
, partition 7 ending ('RZ2', 'DP2G' )
, partition 8 ending ('RZ2', 'DVBP', 'XBDNR001' )
, partition 9 ending ('RZ2', 'DVBP', 'XBFC2002' )
, partition 10 ending ('RZ2', 'DVBP' )
, partition 11 ending ('RZ4' )
, partition 12 ending ('RZX')
, partition 13 ending ('RZY')
, partition 14 ending ('RZZ', 'DE0G', 'NI03A1P' )
, partition 15 ending ('RZZ')
)
AUDIT NONE
DATA CAPTURE changes
CCSID unicode
NOT VOLATILE;
CREATE UNIQUE INDEX oa1p.iQZ006a1
ON oa1p.tqz006gbGrTsStats
(rz, dbsys, dbName, name, partition, instance, updateStatsTime desc)
include(state, origStatsTime, loadTS)
partitioned
USING STOGROUP GSMS
ERASE NO
GBPCACHE CHANGED
CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
; $*( ???????????
CREATE UNIQUE INDEX oa1p.iQZ006a2
ON oa1p.tqz006gbGrTsStats
(rz, dbsys, dbName, name, partition, instance, loadTS desc)
include(state, origstatstime, updateStatsTime)
partitioned
USING STOGROUP GSMS
ERASE NO
GBPCACHE CHANGED
not CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
DEFER YES
; ???????? $*)
commit
;
-- index stats ---------------------------------------------------------
CREATE TABLESPACE a007a
IN qz01a1p
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
numparts 15
dssize 16 g
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID unicode
DEFINE YES
MAXROWS 255
;
--
CREATE TABLE OA1P.tqz007gbGrIxStats
( state char(1) not null with default '?'
, rz char(3) not null with default '?'
, dbSys char(4) not null with default '?'
, indexType char(1) not null
, compress char(1) not null
, ixParts smallint not null
, ixPgSz smallint not null
, pieceSize int not null
, pieceGB real not null
, limGB real not null
, tbCreator varchar(128) not null
, tbName varchar(128) not null
, ts char(8) not null
, tsTy char(1) not null
, tsParts smallint not null
, tsClone char(1) not null
, tsInst smallInt not null
, tsDsSize int not null
, tsDsGb real not null
, tsLimGB real not null
, tsLimPart smallint not null
, tsPgSz smallint not null
, loadTs TIMESTAMP (6) WITHOUT TIME ZONE
NOT NULL WITH DEFAULT
, origSTATSTIME TIMESTAMP (6) WITHOUT TIME ZONE
NOT NULL WITH DEFAULT
, UPDATESTATSTIME TIMESTAMP (6) WITHOUT TIME ZONE
NOT NULL WITH DEFAULT
,NLEVELS SMALLINT
WITH DEFAULT NULL
,NPAGES INTEGER
WITH DEFAULT NULL
,NLEAF INTEGER
WITH DEFAULT NULL
,NACTIVE INTEGER
WITH DEFAULT NULL
,SPACE INTEGER
WITH DEFAULT NULL
,EXTENTS SMALLINT
WITH DEFAULT NULL
,LOADRLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
WITH DEFAULT NULL
,REBUILDLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
WITH DEFAULT NULL
,REORGLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
WITH DEFAULT NULL
,REORGINSERTS INTEGER
WITH DEFAULT NULL
,REORGDELETES INTEGER
WITH DEFAULT NULL
,REORGAPPENDINSERT INTEGER
WITH DEFAULT NULL
,REORGPSEUDODELETES INTEGER
WITH DEFAULT NULL
,REORGMASSDELETE INTEGER
WITH DEFAULT NULL
,REORGLEAFNEAR INTEGER
WITH DEFAULT NULL
,REORGLEAFFAR INTEGER
WITH DEFAULT NULL
,REORGNUMLEVELS INTEGER
WITH DEFAULT NULL
,STATSLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
WITH DEFAULT NULL
,STATSINSERTS INTEGER
WITH DEFAULT NULL
,STATSDELETES INTEGER
WITH DEFAULT NULL
,STATSMASSDELETE INTEGER
WITH DEFAULT NULL
,COPYLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
WITH DEFAULT NULL
,COPYUPDATEDPAGES INTEGER
WITH DEFAULT NULL
,COPYCHANGES INTEGER
WITH DEFAULT NULL
,COPYUPDATELRSN CHARACTER(10) FOR BIT DATA
WITH DEFAULT NULL
,COPYUPDATETIME TIMESTAMP (6) WITHOUT TIME ZONE
WITH DEFAULT NULL
,LASTUSED DATE
WITH DEFAULT NULL
,IBMREQD CHARACTER(1) FOR MIXED DATA
NOT NULL
,DBID SMALLINT
NOT NULL
,"ISOBID" SMALLINT
NOT NULL
,"PSID" SMALLINT
NOT NULL
,"PARTITION" SMALLINT
NOT NULL
,INSTANCE SMALLINT
NOT NULL
WITH DEFAULT 1
,TOTALENTRIES BIGINT
WITH DEFAULT NULL
,DBNAME char(8) not null
,"NAME" VARCHAR(128) FOR MIXED DATA
NOT NULL
WITH DEFAULT
,CREATOR VARCHAR(128) FOR MIXED DATA
NOT NULL
WITH DEFAULT
,INDEXSPACE char(8) not null
WITH DEFAULT
,REORGINDEXACCESS BIGINT
WITH DEFAULT NULL
,DRIVETYPE CHARACTER(3) FOR MIXED DATA
NOT NULL
WITH DEFAULT 'HDD'
,STATS101 BIGINT
WITH DEFAULT NULL
,CONSTRAINT DSNISS_INSTANCE CHECK
(INSTANCE = 1 OR INSTANCE = 2
)
)
partition by (rz, dbSys, dbName)
( partition 1 ending ('?')
, partition 2 ending ('RQ2')
, partition 3 ending ('RR2', 'DBOF')
, partition 4 ending ('RR2' )
, partition 5 ending ('RZ2', 'DBOF', 'NI03A1P' )
, partition 6 ending ('RZ2', 'DBOF' )
, partition 7 ending ('RZ2', 'DP2G' )
, partition 8 ending ('RZ2', 'DVBP', 'XBDNR001' )
, partition 9 ending ('RZ2', 'DVBP', 'XBFC2002' )
, partition 10 ending ('RZ2', 'DVBP' )
, partition 11 ending ('RZ4' )
, partition 12 ending ('RZX')
, partition 13 ending ('RZY')
, partition 14 ending ('RZZ', 'DE0G', 'NI03A1P' )
, partition 15 ending ('RZZ')
)
in qz01a1p.a007a
AUDIT NONE
DATA CAPTURE changes
CCSID unicode
NOT VOLATILE;
CREATE UNIQUE INDEX oa1p.iQZ007a1
ON oa1p.tqz007gbGrIxStats
(rz, dbsys, dbName, ts, indexSpace, partition
, instance, updateStatsTime desc)
include(state, origStatstime, loadTs)
partitioned
USING STOGROUP GSMS
ERASE NO
GBPCACHE CHANGED
CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
$/creStatG/
$@ if 0 then $@=/creSchw/ $***** create SchwellWert Tb ****************
xrop TABLESPACE qz01a1p.a008A;
xrop TABLESPACE qz01a1p.a008H;
xrop TABLESPACE qz01a1p.a008E;
commit
;
CREATE TABLESPACE a008A
IN QZ01A1P
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
maxpartitions 16
dsSize 4 G
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID unicode
DEFINE YES
MAXROWS 255;
;
CREATE TABLESPACE a008H
IN QZ01A1P
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
maxpartitions 16
dsSize 4 G
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID unicode
DEFINE YES
MAXROWS 255;
--
CREATE TABLE OA1P.tqz008GbGrSchwelle
( prio smallint not null
, constraint cprio check (prio >= 0 and prio <= 99
or prio >= -99 and prio <= -70)
, rz CHAR(3) not null
, dbSys CHAR(4) not null
, db CHAR(8) not null
, ts CHAR(8) not null
, part smallint not null
, constraint cpart check (part >= 0 and part <= 4096)
, tsTy char(1) not null
, dsMin int not null
, constraint cDsMin check (dsMin between 0 and 999999)
, schwelle smallint not null
, constraint cschwelle check ( schwelle between 0 and 100)
, validBegin date NOT NULL WITH DEFAULT
, validEnd date NOT NULL WITH DEFAULT
, erfasser char(8) not null
, grUse smallint not null with default -99
, grund varchar(160) not null
, rowBegin not null generated always as row begin
, rowEnd not null generated always as row end
, rowtrans not null generated always as transaction start id
, period business_time (validBegin, validEnd)
, period system_time (rowBegin, rowEnd)
, primary key (prio, rz, dbSys, db, ts, part, tsTy, dsMin
, business_time without overlaps)
)
in QZ01A1P.a008A
AUDIT NONE
DATA CAPTURE changes
CCSID unicode
NOT VOLATILE;
CREATE UNIQUE INDEX oa1p.iqz008S1
ON oa1p.tqz008GbGrSchwelle
( rz, dbSys, db, ts, part, tsTy, dsMin, prio
, business_time without overlaps )
include (schwelle)
USING STOGROUP GSMS
ERASE NO
GBPCACHE CHANGED
CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G
;
CREATE INDEX oa1p.iqz008S2
ON oa1p.tqz008GbGrSchwelle
(rz || dbSys || left(db, 1), db, ts, part, tsTy, dsMin, prio
, validBegin, validEnd, schwelle)
USING STOGROUP GSMS
ERASE NO
GBPCACHE CHANGED
not CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G
;
CREATE TABLE oa1p.tqz008GbGrSchwHist
like oa1p.tqz008GbGrSchwelle
in QZ01A1P.a008H
AUDIT NONE
DATA CAPTURE changes
CCSID unicode
NOT VOLATILE
;
CREATE INDEX oa1p.Iqz008H1
ON oa1p.tqz008GbGrSchwHist
(prio, rz, dbSys, db, ts, part, tsTy, dsMin, validBegin)
USING STOGROUP GSMS
ERASE NO
GBPCACHE CHANGED
CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
;
alter table oa1p.tqz008GbGrSchwelle add versioning
use history table oa1p.tqz008GbGrSchwHist
;
CREATE TABLESPACE a008E
IN QZ01A1P
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
maxpartitions 16
dsSize 4 G
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID unicode
DEFINE YES
MAXROWS 255;
;
CREATE TABLE OA1P.tqz008GbGrSchweExp as
(
select
gRZ rz
, gSYS dbSys
, DB
, TS
, PART
, TSTY
, DSMIN
, SCHWELLE
, char(value(INFO, ''), 50) info
, smallint(value(DBLEN, 99)) dbLen
, smallint(value(tsLen, 99)) TSLEN
, VALIDBEGIN
, VALIDEND
from
( -- t
select
row_number() over(partition by gRz, gSys, db, ts, part
, tsTy, dsMin
order by info desc
) rn
, g.*, s2.*
from
( -- g
select rz gRz, dbSys gSys
from oa1p.tqz008gbGrSchwelle
where prio = -99
) g join
( -- s2
select right(' ' || prio, 3) || rzLen || syLen || dbLen || tsLen
|| case when part = 0 then 'a' else 'p' end
|| tsTy || right(' ' || dsMin, 5)
|| '?' || right(' ' || schwelle, 6)
|| '@' || left(strip(rz) ||'/'|| strip(dbSys) ||':'|| strip(db)
|| '.' || strip(ts) ||'#'|| strip(part) || tsTy || dsMin
, 28) info
, s1.*
from
( -- s1
select posStr(translate(left(rz , 3)||'%', '%','*'), '%') -1 rzLen
, posStr(translate(left(dbSys, 3)||'%', '%','*'), '%') -1 syLen
, posStr(translate(left(db , 8)||'%', '%','*'), '%') -1 dbLen
, posStr(translate(left(ts , 8)||'%', '%','*'), '%') -1 tsLen
, s.*
from oa1p.tqz008gbGrSchwelle s
where prio >= 0
) s1
) s2
on left(grz, rzLen) = left(rz, rzLen)
and left(gSys, syLen) = left(dbSys, syLen)
) t
where rn = 1 and validEnd > current date
) data initially deferred refresh deferred
maintained by system disable query optimization
in QZ01A1P.a008E
AUDIT NONE
DATA CAPTURE changes
CCSID unicode
NOT VOLATILE
;
CREATE INDEX oa1p.iqz008E1 -- unique not allowed on MQT|
ON oa1p.tqz008GbGrSchweExp
( rz, dbSYs, info, db, ts, part, tsTy, dsMin
, dbLen, tsLen, validBegin, validEnd, schwelle)
USING STOGROUP GSMS
ERASE NO
GBPCACHE CHANGED
CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G
;
$/creSchw/
$@ if 0 then $@=/creSchwTri/
xrop trigger oa1p.tqz008GbGrSchwelleIns ;
xrop trigger oa1p.tqz008GbGrSchwelleUpd ;
xrop trigger oa1p.tqz008GbGrSchwelleDel ;
create trigger oa1p.tqz008GbGrSchwelleIns after insert
on oa1p.tqz008GbGrSchwelle
for each statement mode db2sql
refresh table oa1p.tqz008GbGrSchweExp
;
create trigger oa1p.tqz008GbGrSchwelleUpd after update
on oa1p.tqz008GbGrSchwelle
for each statement mode db2sql
refresh table oa1p.tqz008GbGrSchweExp
;
create trigger oa1p.tqz008GbGrSchwelleDel after delete
on oa1p.tqz008GbGrSchwelle
for each statement mode db2sql
refresh table oa1p.tqz008GbGrSchweExp
;
refresh table oa1p.tqz008GbGrSchweExp;
;
commit
;
$/creSchwTri/
$@ if 0 then $@=/creHist/
-- ddl gbGrenzen
-- History Tabelle für alte Version
-- 6. 1.16 neu
--
set current sqlid = 'S100447';
CREATE TABLESPACE a006J
IN qz01a1p
numparts 15
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID unicode
DEFINE YES
MAXROWS 255
;
CREATE TABLE OA1P.tqz006gbgrTsHjjj
like OA1P.tqz006gbgrTsStats
in qz01A1p.a006J
partition by (rz, dbSys, dbName)
( partition 1 ending ('?')
, partition 2 ending ('RQ2')
, partition 3 ending ('RR2', 'DBOF')
, partition 4 ending ('RR2' )
, partition 5 ending ('RZ2', 'DBOF', 'NI03A1P' )
, partition 6 ending ('RZ2', 'DBOF' )
, partition 7 ending ('RZ2', 'DP2G' )
, partition 8 ending ('RZ2', 'DVBP', 'XBDNR001' )
, partition 9 ending ('RZ2', 'DVBP', 'XBFC2002' )
, partition 10 ending ('RZ2', 'DVBP' )
, partition 11 ending ('RZ4' )
, partition 12 ending ('RZX')
, partition 13 ending ('RZY')
, partition 14 ending ('RZZ', 'DE0G', 'NI03A1P' )
, partition 15 ending ('RZZ')
)
AUDIT NONE
DATA CAPTURE changes
CCSID unicode
NOT VOLATILE;
;
CREATE UNIQUE INDEX oa1p.iQZ006j1
ON oa1p.tqz006gbGrTsHjjj
(rz, dbsys, dbName, name, partition, instance, updateStatsTime desc)
include(state, loadTs, origStatsTime)
partitioned
USING STOGROUP GSMS
ERASE NO
GBPCACHE CHANGED
CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
;
CREATE TABLESPACE a007J
IN qz01a1p
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
numparts 15
dssize 16 g
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID unicode
DEFINE YES
MAXROWS 255
;
CREATE TABLE OA1P.tqz007gbGrIxHjjj
like OA1P.tqz007gbGrIxStats
in qz01A1p.a007j
partition by (rz, dbSys, dbName)
( partition 1 ending ('?')
, partition 2 ending ('RQ2')
, partition 3 ending ('RR2', 'DBOF')
, partition 4 ending ('RR2' )
, partition 5 ending ('RZ2', 'DBOF', 'NI03A1P' )
, partition 6 ending ('RZ2', 'DBOF' )
, partition 7 ending ('RZ2', 'DP2G' )
, partition 8 ending ('RZ2', 'DVBP', 'XBDNR001' )
, partition 9 ending ('RZ2', 'DVBP', 'XBFC2002' )
, partition 10 ending ('RZ2', 'DVBP' )
, partition 11 ending ('RZ4' )
, partition 12 ending ('RZX')
, partition 13 ending ('RZY')
, partition 14 ending ('RZZ', 'DE0G', 'NI03A1P' )
, partition 15 ending ('RZZ')
)
AUDIT NONE
DATA CAPTURE changes
CCSID unicode
NOT VOLATILE;
;
CREATE UNIQUE INDEX oa1p.iQZ007j1
ON oa1p.tqz007gbGrIxHjjj
(rz, dbsys, dbName, ts, indexSpace, partition
, instance, updateStatsTime desc)
include(state, loadTS, origstatstime)
partitioned
USING STOGROUP GSMS
ERASE NO
GBPCACHE CHANGED
CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
;
commit
;
$/creHist/
$@ if 0 then $@=/cre666/
?rop tablespace qz01a1p.a666a;
?rop tablespace qz01a1p.a667a;
$/cre666/
$@ if 0 then $@=/creStaTriNew/ $***** create stats ttiggr new *******
?rop TRIGGER oa1p.qz006gbgrtsNewInsert;
CREATE TRIGGER oa1p.qz006gbgrtsNewInsert
-- after insert ON oa1p.tqz006GbGrTsNew
no cascade before insert ON oa1p.tqz006GbGrTsNew
REFERENCING new AS n
FOR EACH ROW MODE DB2SQL
update oa1p.tqz006GbGrTsNew o
set o.validEnd = n.validBegin
where o.rz = n.rz and o.dbSys = n.dbSys
and o.dbName = n.dbName and o.name = n.name
and o.partition = n.partition
and o.instance = n.instance
and n.validBegin > o.validBegin
and n.validBegin < o.validEnd
;
$/creStaTriNew/
$@ if 0 then $@=/creKey/ $***** create key table for mig **************
?ROP TABLESPACE QZ01A1P.a666b;
?ROP TABLESPACE QZ01A1P.a667b;
commit;
;?;
CREATE TABLESPACE a666b
IN qz01a1p
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID unicode
DEFINE YES
MAXROWS 255
;
--
CREATE TABLE OA1P.tqz666gbgrtsKey
(
rz char(3) not null with default '?'
, dbSys char(4) not null with default '?'
, loadTS TIMESTAMP (6) WITHOUT TIME ZONE
NOT NULL WITH DEFAULT
, UPDATESTATSTIME TIMESTAMP (6) WITHOUT TIME ZONE
NOT NULL WITH DEFAULT
,di INTEGER not null
)
in qz01a1p.a666b
;
CREATE UNIQUE INDEX oa1p.iQZ666b1
ON oa1p.tqz666gbGrTSKey
(rz, dbsys, loadTs)
include(updateStatstime, di)
USING STOGROUP GSMS
ERASE NO
GBPCACHE CHANGED
CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
;
commit
;
set current sqlid = 'S100447';
CREATE TABLESPACE a667b
IN qz01a1p
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID unicode
DEFINE YES
MAXROWS 255
;
--
CREATE TABLE OA1P.tqz667gbgrIxKey
(
rz char(3) not null with default '?'
, dbSys char(4) not null with default '?'
, loadTS TIMESTAMP (6) WITHOUT TIME ZONE
NOT NULL WITH DEFAULT
, UPDATESTATSTIME TIMESTAMP (6) WITHOUT TIME ZONE
NOT NULL WITH DEFAULT
,di INTEGER not null
)
in qz01a1p.a667b
;
CREATE UNIQUE INDEX oa1p.iQZ667b1
ON oa1p.tqz667gbGrIxKey
(rz, dbsys, loadTs)
include(updateStatstime, di)
USING STOGROUP GSMS
ERASE NO
GBPCACHE CHANGED
CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
$/creKey/
}¢--- A540769.WK.SQL(GBGRELAR) cre=2014-12-10 mod=2014-12-10-16.14.01 A540769 ---
select substr(db, 1, 8) "db"
, substr(ts, 1, 8) "ts"
, substr(tsTy
|| case when tsClone = 'N' and inst=1 and tsInst=1 then ''
else case when inst=tsInst then 'b' else 'c' end
|| inst end, 1, 3) "yci"
, substr(ix, max(1, length(ix) - 7), 8) "...index"
, substr(case when part = 0 and tsParts = 0 then ''
else case when part is null then ' ---'
when part = 0 and ix <> ' --ts--' then ' npi'
when part = 0 and tsTy = 'G' then ' pbg'
when part = 0 then ' ???'
else right(' ' || part, 4)
end
||'/'|| value(right(' '|| tsParts, 4),'----')
end, 1, 9) "part/ tot"
, substr(right(case when actGB < 1000
then ' ' || dec(round(actGb, 2), 6, 2)
else ' ' || int(round(actGb, 0))
end, 7), 1, 7) "usedGB"
, substr(right(case when limGb/100*schwelle < 1000
then ' ' || dec(round(limGb/100*schwelle, 2), 6, 2)
else ' ' || int(round(limGb/100*schwelle, 0))
end, 7), 1, 7) "schwGB"
, substr(right(' ' || schwelle, 5), 1, 5) "schw%"
, substr(right(' ' || int(round(limGb)), 6), 1, 6) "limGB"
, date(updStats) "lastUpdate"
, substr(schwinfo, 23, 18) "schwellwert key"
, g.*
from OA1P.vQZ006GbGrenz2 g
where ( actGb > real(limGb / 100 * schwelle)
or ( db like 'XB%' and actGb > 8.8) )
and ( db not like 'XB%'
or (updStats >= '2014-11-17-00.00.00'
and (nActive, nPages, REORGINSERTS, space, totalRows, dataSize)
not in ( select z.nActive, z.nPages, z.REORGINSERTS
, z.space, z.totalRows, z.dataSize
from oa1p.tqz006GBGRTSSTATS z
where g.rz = z.rz
and g.dbSys = z.dbSys
and g.DB = z.DBNAME
and g.ts = z.NAME
and g.PART = z.PARTITION
and g.INST = z.INSTANCE
and z.loadTs < '2014-11-17-00.00.00'
order by z.loadTs desc
fetch first 1 row only
) ) )
and db <> 'DSNDB01' -- directory ist anders
and rz = 'RZ2' and dbSys = 'DVBP'
order by db, ts, inst, ix, actGb desc, part
-- fetch first 100 rows only
;x;
order by actGb desc
;
--
-- db = Datenbank
-- ts = Tablespace
-- yci = ts type oder s=Segmented,i=Simple p=PartitionedClassic,
-- clone und Instance (falls geKlont)
-- part/ tot = betroffene PartitionsNummer / Total Partitonen des ts
-- ...index = index oder --ts--
-- usedGB = aktuelle benutzter Platz in GB
-- schwGB = Schwellwert in GB
-- schw% = Schwellwert in Prozent der Limite
-- limGB = physische Limite in GB
-- lastUpdate = letzter update aus RealTimeStats
-- Schwellwert key = key des Schwellwerts in oa1p.tqz008GbGrSchwelle
}¢--- A540769.WK.SQL(GBGRENZE) cre=2013-09-09 mod=2016-05-29-17.42.58 A540769 ---
select substr(db, 1, 8) "db"
, substr(ts, 1, 8) "ts"
, substr(tsTy
|| case when tsClone = 'N' and inst=1 and tsInst=1 then ''
else case when inst=tsInst then 'b' else 'c' end
|| inst end, 1, 3) "yci"
, substr(ix, max(1, length(ix) - 7), 8) "...index"
, substr(case when part = 0 and tsParts = 0 then ''
else case when part is null then ' ---'
when part = 0 and ix <> ' --ts--' then ' npi'
when part = 0 and tsTy = 'G' then ' pbg'
when part = 0 then ' ???'
else right(' ' || part, 4)
end
||'/'|| value(right(' '|| tsParts, 4),'----')
end, 1, 9) "part/ tot"
, substr(right(case when actGB < 1000
then ' ' || dec(round(actGb, 2), 6, 2)
else ' ' || int(round(actGb, 0))
end, 7), 1, 7) "usedGB"
, substr(right(case when limGb/100*schwelle < 1000
then ' ' || dec(round(limGb/100*schwelle, 2), 6, 2)
else ' ' || int(round(limGb/100*schwelle, 0))
end, 7), 1, 7) "schwGB"
, substr(right(' ' || schwelle, 5), 1, 5) "schw%"
, substr(right(' ' || int(round(limGb)), 6), 1, 6) "limGB"
, date(validBegin) "lastValid"
, substr(schwinfo, 23, 18) "schwellwert key"
, g.*
from OA1P.vQZ006GbGrenze g
where db <> 'DSNDB01' -- directory ist anders
and rz = 'RZ2' and dbSys = 'DBOF'
-- and actGb > real(limGb / 100 * schwelle)
and db = 'NI03A1P'
and TS = 'A250A04'
-- and updStats > '2014-11-15-00.00.00'
-- and db like 'XC%' -- and ts like 'A515%'
-- db = 'QZ01A1P' --and ts = 'A112A'
-- db = 'RP03A1P' and ts = 'A307A'
-- order by db, ts, inst, part, ix -- actGb desc, part, ix
order by nPages desc
-- fetch first 100 rows only
;x;
order by actGb desc
;
--
-- db = Datenbank
-- ts = Tablespace
-- yci = ts type oder s=Segmented,i=Simple p=PartitionedClassic,
-- clone und Instance (falls geKlont)
-- part/ tot = betroffene PartitionsNummer / Total Partitonen des ts
-- ...index = index oder --ts--
-- usedGB = aktuelle benutzter Platz in GB
-- schwGB = Schwellwert in GB
-- schw% = Schwellwert in Prozent der Limite
-- limGB = physische Limite in GB
-- lastUpdate = letzter update aus RealTimeStats
-- Schwellwert key = key des Schwellwerts in oa1p.tqz008GbGrSchwelle
}¢--- A540769.WK.SQL(GBGRFUN1) cre=2014-07-14 mod=2014-07-30-09.45.53 A540769 ---
-- versuch gbGr schwellwert Abfrage zu beschleunigen
-- durch Konkatinierung aller schwellwerte und
-- auswahl der richtigen mittels funktion
-- gescheitert, weil Loop innerhalb der Funktion
-- zuviel cpu braucht (aufruf der funktion war schnell)
--
with i1 as
(
select left(rz, 3) || left(dbSys, 4) || left(db, 8) || left(ts, 8)
|| left('' || schwelle, 6) i
, translate(rz, '%', '*') rzT
, posStr(translate(rz, '%', '*'), '%') rzLen
, posStr(translate(dbSys, '%', '*'), '%') syLen
, posStr(translate(db , '%', '*'), '%') dbLen
, posStr(translate(ts , '%', '*'), '%') tsLen
, s.*
from oa1p.tqz008gbGrSchwelle s
)
, i2 as
(
select row_number() over(order by prio desc
, case when rzLen = 0 then 9 else rzLen end desc
, case when syLen = 0 then 9 else syLen end desc
, case when dbLen = 0 then 9 else dbLen end desc
, case when tsLen = 0 then 9 else tsLen end desc
) r, i1.*
from i1
)
, i3 (i, l) as
(
select varchar(i, 20000), 1 from i2 where r = 1
union all select i3.i || i2.i
, i3.l+1 from i3 join i2 on i2.r = i3.l+1
where i3.l < 99999
)
, i as
(
select i from i3 order by l desc fetch first row only
)
, s as
(
select A540769.gbgrSchwelle('RZZ', 'DE0G', 'MF01A1P', 'A150A'
, i.i) si
from sysibm.sysDummyE, i
)
select int(left(si, 6)) sw, si from s
;
select * from i
;
;x;
$#@
call sqlConnect dp4g
$<>
call sqlStmts
$<=¢
set current sqlid = 'S100447';
drop view OA1P.VQZ006GBGRENZE;
drop function a540769.gbGrSchwelle(rz char(3), dbSys char(4)
,db char(8), ts char(8), all varchar(32000));
terminator^;
create function a540769.gbGrSchwelle(rz char(3), dbSys char(4)
,db char(8), ts char(8), all varchar(32000))
returns varchar(80)
deterministic
begin
declare r1, s1, d1, t1 varchar(10) default '?';
declare cx, px int default -28;
one: $** loop begin
set cx = cx + 29;
if cx > length(all) then
$** return ' 2 defaut no search ??????';
return '-- notfound ' || length(all) || ' cx ' || cx
|| ' la ' || r1 || '/' || s1 || ':' || d1
|| ' arg ' || rz || '/' || dbSys || ':' || db;
end if;
$*( if cx > 9975 then
return 'len' || length(all) || ' cx ' || cx;
end if;
$*) set r1 = substr(all, cx , 3);
set px = posStr(r1, '%');
if (px > 0 and left(r1, px-1) <> left(rz, px-1))
or (px <= 0 and rz <> r1) then
goto one;
end if;
set s1 = substr(all, cx+ 3, 4);
set px = posStr(s1, '%');
if (px > 0 and left(s1, px-1) <> left(dbSys, px-1))
or (px <= 0 and dbSys <> s1) then
goto one;
end if;
$*( if cx > 9990 then
return 'x ' || cx ||': ' || r1 || '/' || s1 || ':' || d1
|| ' arg ' || rz || '/' || dbSys || ':' || db;
end if;
$*) set d1 = substr(all, cx+ 7, 8);
set px = posStr(d1, '%');
if (px > 0 and left(d1, px-1) <> left(db, px-1))
or (px <= 0 and db <> d1) then
goto one;
end if;
set t1 = substr(all, cx+15, 8);
set px = posStr(t1, '%');
if (px > 0 and left(t1, px-1) <> left(ts, px-1))
or (px <= 0 and t1 <> ts) then
goto one;
end if;
return substr(all, cx+23, 6)
|| ' key ' || '/' || s1 ||':'|| d1 ||'.'||t1;
return 'f ' || cx ||': ' || r1 || '/' || s1 ||':'|| d1 ||'.'||t1;
$** end; end loop one;
return '--- notfound ---';
end
^
terminator;^
with s as
(
select A540769.gbgrSchwelle('RZZ', 'DE0G', 'MF01A1P', 'A150A'
, 'RZ2DBOF%2345678%2345678001 '
|| 'RZ2% %2345678 002'
|| 'RZZDEVG% %2345678 3 '
|| 'RZZDE0GNONO %2345678 4 '
|| 'RZZDE0GMF01% A150A 5 '
|| '% % % % 6 '
) si
from sysibm.sysDummyE
)
select int(left(si, 6)) sw, si from s
$!
$#out 20140714 20:02:01
sqlCode 0: set current sqlid = 'S100447'
sqlCode 0: drop view OA1P.VQZ006GBGRENZE
sqlCode 0: drop function a540769.gbGrSchwelle(rz char(3), dbSys char(4) ,d...
sqlCode 0: create function a540769.gbGrSchwelle(rz char(3), dbSys char(4) ...
S SI
5 5 key /DE0G:MF01% .A150A
1 rows fetched: with s as ( select A540769.gbgrSchwelle('RZZ', 'DE0G', 'MF...
$#out 20140714 19:56:19
}¢--- A540769.WK.SQL(GBGRFUN2) cre=2014-07-29 mod=2014-07-30-09.38.07 A540769 ---
-- versuch mit einer Table SQL Funktion
-- die richtigen Zeitreihen schlüssel zu selektieren
-- gescheitert, aus Performance Gründen:
-- db2 generiert unsinnig Casts,
-- die aus matching predicates stage2 predicates machen
--
set current sqlid = 'S100447';
drop function oa1p.fQz006Day(aRz char(3), aDbSys char(4)
, ts char(8), aTs char(8)
, aNew date, aOld date, aStep smallint);
create function oa1p.fQz006Day(aRz char(3), aDbSys char(4)
, aDb char(8), aTs char(8)
, aNew date, aOld date, aStep smallint)
returns table (gDay date, rz char(3), dbSys char(4)
, db char(8), ts char(8), inst smallInt, part smallInt
, loadTs timestamp)
parameter ccsid unicode
return
with n (g, l, rz, dbSys, db, ts, inst, part, loadTs) as
(
select aNew, 0
, rz, dbSys, dbName, name, instance, partition
, max(loadTs)
from oa1p.tqz006GbGrTsSTats
where rz = aRz and dbSys like aDbSys and dbName like aDb
and name like aTs
and loadTs < timestamp(aNew + 1 day)
group by rz, dbSys, dbName, name, instance, partition
union all select g - aStep days, l+1
, rz, dbSys, db, ts, inst, part
, (select max(o.loadTs)
from oa1p.tqz006GbGrTsSTats o
where n.rz = o.rz
and n.dbSys = o.dbSys
and n.db = o.dbName
and n.ts = o.name
and n.inst = o.instance
and n.part = o.partition
and timestamp(n.g - (aStep-1) days, '00.00.00')
> o.loadTS
)
from n where l < 3000 and g - aStep days >= aOld
)
select g, rz, dbSys, db, ts, inst, part, loadTs from n
;
commit
;
select *
from table(oa1p.fQz006Day('RZ4', 'DP4G', 'QZ01A1%', 'A006%'
, current date, current date - 12 days, 3)) a
order by db, ts, inst, part, gDay desc
;
;x;
set current path oa1p;
select dbName, name, instance, partition
, fosFmte7(real(nActive) * pgSize * 1024) used
, fosFmte7(totalRows) rows
, loadTs, updateStatsTime, r.*
from oa1p.tqz006GbGrTsSTats r
where rz = 'RZ2' and dbSys = 'DP2G' and dbName = 'DB2ADMIN'
and name = 'A013A'
order by dbName, name, instance, partition, loadTs desc
;x;
select loadTs, dbSys, count(*)
, sum(case when state = 'a' then 1 else 0 end) act
, sum(case when state = 'd' then 1 else 0 end) del
from oa1p.tqz006GbGrTsSTats r
where rz = 'RZ2' -- and dbSys = 'DVBP'
group by loadTs, dbSys
order by 1 desc, dbSys
;x;
select *
from oa1p.tqz006GbGrTsSTats r
where rz = 'RZ2' and dbSys = 'DVBP'
and dbName = 'XB058287'
and loadTs < '2014-07-01-00.00.00'
order by loadTs desc, name, partition
;x;
select dbName, count(*)
from oa1p.tqz006GbGrTsSTats r
where rz = 'RZ2' and dbSys = 'DVBP'
and loadTs < '2014-07-01-00.00.00'
group by dbName
;x;
delete from oa1p.tqz006GbGrTsSTats d
where rz = 'RZ2' and dbSys = 'DP2G'
and loadTS >= '2014-07-22-00.00.00' and state = 'd'
and (select loadTs
from oa1p.tqz006GbGrTsSTats b
where d.rz = b.rz and d.dbSys = b.dbSys
and d.dbName = b.dbName
and d.name = b.name
and d.instance = b.instance
and d.partition = b.partition
and d.loadTS > b.loadTs
order by b.loadTS desc
fetch first 1 rows only
) < '2014-07-22-00.00.00'
;
commit
;
select dbName, name, instance, partition, loadTs
, (select max(char(loadTs) || state)
from oa1p.tqz006GbGrTsSTats b
where d.rz = b.rz and d.dbSys = b.dbSys
and d.dbName = b.dbName
and d.name = b.name
and d.instance = b.instance
and d.partition = b.partition
and d.loadTS > b.loadTs
)
from oa1p.tqz006GbGrTsSTats d
where rz = 'RZ2' and dbSys = 'DP2G'
and state = 'd' and loadTs > '2014-07-01-00.00.00'
order by 6 desc
-- order by dbName, name, instance, partition
;x;
select loadTs, count(*)
, sum(case when state = 'a' then 1 else 0 end) act
, sum(case when state = 'd' then 1 else 0 end) del
from oa1p.tqz006GbGrTsSTats r
where rz = 'RZ2' and dbSys = 'DP2G'
group by loadTs
order by 1 desc
;x;
;x;
select trunc_timestamp(loadTs, 'iw'), count(*)
, sum(case when state = 'a' then 1 else 0 end) act
, sum(case when state = 'd' then 1 else 0 end) del
from oa1p.tqz006GbGrTsSTats r
where rz = 'RZ4' and dbSys = 'DBOL'
group by trunc_timestamp(loadTs, 'iw')
order by 1 desc
;x;
;
;x;
set current path oa1p;
select trunc_timestamp(loadTs, 'iw'), count(*)
, sum(case when state = 'a' then 1 else 0 end) act
, sum(case when state = 'd' then 1 else 0 end) del
from oa1p.tqz006GbGrTsSTats r
where rz = 'RZ4' and dbSys = 'DBOL'
group by trunc_timestamp(loadTs, 'iw')
order by 1 desc
;x;
;x;
set current path oa1p;
select trunc_timestamp(loadTs, 'iw'), count(*)
, sum(case when state = 'a' then 1 else 0 end) act
, sum(case when state = 'd' then 1 else 0 end) del
from oa1p.tqz006GbGrTsSTats r
where rz = 'RZ4' -- and dbSys = 'DP4G'
group by trunc_timestamp(loadTs, 'iw')
order by 1 desc
;x;
select *
from oa1p.tqz006tmp
where p = 3 and db = 'MF01A1P'
and ts = 'A150A'
order by db, ts, partition, datum desc
;x;
set current path oa1p;
with n (g, l, rz, dbSys, db, ts, inst, part, loadTs) as
(
select current date, 0
, rz, dbSys, dbName, name, instance, partition
, max(loadTs)
from oa1p.tqz006GbGrTsSTats
where rz = 'RZ4' and dbSys = 'DP4G' and dbName = 'DB2ADMIN'
and name = 'A009A'
-- and partition <> 1
group by rz, dbSys, dbName, name, instance, partition
union all select g - 1 day, l+1
, rz, dbSys, db, ts, inst, part
, (select max(loadTs)
from oa1p.tqz006GbGrTsSTats o
where n.rz = o.rz
and n.dbSys = o.dbSys
and n.db = o.dbName
and n.ts = o.name
and n.inst = o.instance
and n.part = o.partition
and timestamp(n.g, '00.00.00') > o.loadTS
)
from n where l < 3000
)
select n.g, n.db, n.ts, n.inst, n.part
, fosFmte7(real(j.nActive) * j.pgSize * 1024) used
, fosFmte7(totalRows) rows
, n.loadTs, j.updateStatsTime
, j.*
from n
left join oa1p.tqz006GbGrTsSTats j
on j.rz = n.rz and j.dbSys = n.dbSys
and j.dbName = n.db and j.Name = n.ts
and j.partition = n.part
and j.instance = n.inst
and j.loadTs = n.loadTs
where n.loadTs is not null and date(n.loadTs) = n.g
order by n.rz, n.dbSys, n.db, n.ts,
n.inst, n.part, n.g desc
;x;
select * from sysibm.sysTablespace where clone = 'Y'
;x;
select p, large, count(*)
from oa1p.tqz006tmp
group by p, large
;x;
select *
from oa1p.tqz006tmp
where db = 'DB2ADMIN'
and ts = 'APRSRC'
and p = 3
order by db, ts, partition, datum desc
;x;
select n.g, n.rz, n.dbSys, n.db, n.ts
, fosFmte7(sum(real(j.nActive) * j.pgSize) * 1024) used
-- , n.*, j.*
from n
left join oa1p.tqz006GbGrTsSTats j
on j.rz = n.rz and j.dbSys = n.dbSys
and j.dbName = n.db and j.Name = n.ts
and j.partition = n.part
and j.instance = n.inst
and j.loadTs = n.loadTs
-- where n.loadTs is not null
group by n.g, n.rz, n.dbSys, n.db, n.ts
order by n.rz, n.dbSys, n.db, n.ts, n.g desc
;x;
select * from plan_view1
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
with ur
;
rollback
;;;;
;x;
select *
from oa1p.tqz006GbGrTsSTats
order by rz, dbSys, dbName, name, instance, partition, loadts desc
}¢--- A540769.WK.SQL(GBGRHILO) cre=2016-01-06 mod=2016-01-07-14.01.53 A540769 ---
//A540769T JOB (CP00,KE50),'DB2 REO', 00010000
// MSGCLASS=T,TIME=1440,CLASS=M1, 00020000
// NOTIFY=&SYSUID,REGION=0M,SCHENV=DB2ALL 00030003
//S1 EXEC PGM=DSNUTILB,PARM='DP4G,A540769T.LOAD' 00020001
//SYSMAP DD SYSOUT=*
//UTPRINT DD SYSOUT=*
//SYSERR DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSTEMPL DD DSN=DP4G.DBAA.LISTDEF(TEMPL),DISP=SHR
//SYSIN DD *
EXEC SQL
DECLARE CURT CURSOR FOR
select * from oa1p.tqz006gbgrTSStats
ENDEXEC
LOAD DATA INCURSOR CURT LOG NO RESUME NO REPLACE
COPYDDN(TCOPYD) STATISTICS INDEX(ALL)
SORTDEVT DISK
WORKDDN(TSYUTS,TSOUTS)
INTO TABLE OA1P.TQZ006GBGRTSHJJJ
//A540769I JOB (CP00,KE50),'DB2 REO', 00010000
// MSGCLASS=T,TIME=1440,CLASS=M1, 00020000
// NOTIFY=&SYSUID,REGION=0M,SCHENV=DB2ALL 00030003
//S1 EXEC PGM=DSNUTILB,PARM='DP4G,A540769I.LOAD' 00020001
//SYSMAP DD SYSOUT=*
//UTPRINT DD SYSOUT=*
//SYSERR DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSTEMPL DD DSN=DP4G.DBAA.LISTDEF(TEMPL),DISP=SHR
//SYSIN DD *
EXEC SQL
DECLARE CURI CURSOR FOR
select * from oa1p.tqz007gbgrIXStats
ENDEXEC
LOAD DATA INCURSOR CURI LOG NO RESUME NO REPLACE
COPYDDN(TCOPYD) STATISTICS INDEX(ALL)
SORTDEVT DISK
WORKDDN(TSYUTS,TSOUTS)
INTO TABLE OA1P.TQZ007GBGRIXHJJJ
}¢--- A540769.WK.SQL(GBGRMICI) cre=2016-01-06 mod=2016-01-06-09.28.43 A540769 ---
with u as
(
select 'old' on, rz, dbSys, dbName, ts, indexSpace,partition,instance
, loadTs
, updateStatsTime origStatsTime
, timestamp('1010-10-10-10.10.10') updateStatsTime
, INDEXTYPE
, COMPRESS
, IXPARTS
, IXPGSZ
, PIECESIZE
, PIECEGB
, LIMGB
, TBCREATOR
, TBNAME
, TSTY
, TSPARTS
, TSCLONE
, TSINST
, TSDSSIZE
, TSDSGB
, TSLIMGB
, TSLIMPART
, TSPGSZ
, NLEVELS
, NPAGES
, NLEAF
, NACTIVE
, SPACE
, EXTENTS
, LOADRLASTTIME
, REBUILDLASTTIME
, REORGLASTTIME
, REORGINSERTS
, REORGDELETES
, REORGAPPENDINSERT
, REORGPSEUDODELETES
, REORGMASSDELETE
, REORGLEAFNEAR
, REORGLEAFFAR
, REORGNUMLEVELS
, STATSLASTTIME
, STATSINSERTS
, STATSDELETES
, STATSMASSDELETE
, COPYLASTTIME
, COPYUPDATEDPAGES
, COPYCHANGES
, COPYUPDATELRSN
, COPYUPDATETIME
, LASTUSED
, IBMREQD
, DBID
, ISOBID
, PSID
, TOTALENTRIES
, NAME
, CREATOR
, REORGINDEXACCESS
, DRIVETYPE
, STATS101
from oa1p.tqz007gbgrIxStats
where rz ='RR2' and dbSys = 'DBOF' and dbName = 'NI03A1P'
and ts = 'A200A03' and partition = 38
union all select 'new' on
, rz, dbSys, dbName, ts, indexSpace,partition,instance
, loadTs
, origStatsTime
, updateStatsTime
, INDEXTYPE
, COMPRESS
, IXPARTS
, IXPGSZ
, PIECESIZE
, PIECEGB
, LIMGB
, TBCREATOR
, TBNAME
, TSTY
, TSPARTS
, TSCLONE
, TSINST
, TSDSSIZE
, TSDSGB
, TSLIMGB
, TSLIMPART
, TSPGSZ
, NLEVELS
, NPAGES
, NLEAF
, NACTIVE
, SPACE
, EXTENTS
, LOADRLASTTIME
, REBUILDLASTTIME
, REORGLASTTIME
, REORGINSERTS
, REORGDELETES
, REORGAPPENDINSERT
, REORGPSEUDODELETES
, REORGMASSDELETE
, REORGLEAFNEAR
, REORGLEAFFAR
, REORGNUMLEVELS
, STATSLASTTIME
, STATSINSERTS
, STATSDELETES
, STATSMASSDELETE
, COPYLASTTIME
, COPYUPDATEDPAGES
, COPYCHANGES
, COPYUPDATELRSN
, COPYUPDATETIME
, LASTUSED
, IBMREQD
, DBID
, ISOBID
, PSID
, TOTALENTRIES
, NAME
, CREATOR
, REORGINDEXACCESS
, DRIVETYPE
, STATS101
from oa1p.tqz667gbgrIxStats
where rz ='RR2' and dbSys = 'DBOF' and dbName = 'NI03A1P'
and ts = 'A200A03' and partition = 38
)
select * from u
order by rz, dbSys, dbName, ts,indexSpace, partition, instance
, loadTs desc, on
}¢--- A540769.WK.SQL(GBGRMICT) cre=2016-01-06 mod=2016-01-06-09.23.16 A540769 ---
with u as
(
select 'old' on, rz, dbSys, dbName, name, partition, instance
, loadTs
, updateStatsTime origStatsTime
, timestamp('1010-10-10-10.10.10') updateStatsTime
, TSTYPE
, TSTY
, PGSIZE
, SEGSIZE
, PARTS
, MAXPARTS
, DSSIZE
, DSGB
, LIMGB
, LIMPART
, OBID
, CLONE
, TSINST
, TBCR
, TB
, TBTY
, TBOBID
, NACTIVE
, NPAGES
, EXTENTS
, LOADRLASTTIME
, REORGLASTTIME
, REORGINSERTS
, REORGDELETES
, REORGUPDATES
, REORGUNCLUSTINS
, REORGDISORGLOB
, REORGMASSDELETE
, REORGNEARINDREF
, REORGFARINDREF
, STATSLASTTIME
, STATSINSERTS
, STATSDELETES
, STATSUPDATES
, STATSMASSDELETE
, COPYLASTTIME
, COPYUPDATEDPAGES
, COPYCHANGES
, COPYUPDATELRSN
, COPYUPDATETIME
, IBMREQD
, DBID
, PSID
, SPACE
, TOTALROWS
, DATASIZE
, UNCOMPRESSEDDATASIZE
, REORGCLUSTERSENS
, REORGSCANACCESS
, REORGHASHACCESS
, HASHLASTUSED
, DRIVETYPE
, LPFACILITY
, STATS01
, UPDATESIZE
, LASTDATACHANGE
from oa1p.tqz006gbgrTsStats
where rz ='RZ2' and dbSys = 'DBOF' and dbName = 'NI03A1P'
and name = 'A200A03' and partition = 38
union all select 'new' on
, rz, dbSys, dbName, name, partition, instance
, loadTs
, origStatsTime
, updateStatsTime
, TSTYPE
, TSTY
, PGSIZE
, SEGSIZE
, PARTS
, MAXPARTS
, DSSIZE
, DSGB
, LIMGB
, LIMPART
, OBID
, CLONE
, TSINST
, TBCR
, TB
, TBTY
, TBOBID
, NACTIVE
, NPAGES
, EXTENTS
, LOADRLASTTIME
, REORGLASTTIME
, REORGINSERTS
, REORGDELETES
, REORGUPDATES
, REORGUNCLUSTINS
, REORGDISORGLOB
, REORGMASSDELETE
, REORGNEARINDREF
, REORGFARINDREF
, STATSLASTTIME
, STATSINSERTS
, STATSDELETES
, STATSUPDATES
, STATSMASSDELETE
, COPYLASTTIME
, COPYUPDATEDPAGES
, COPYCHANGES
, COPYUPDATELRSN
, COPYUPDATETIME
, IBMREQD
, DBID
, PSID
, SPACE
, TOTALROWS
, DATASIZE
, UNCOMPRESSEDDATASIZE
, REORGCLUSTERSENS
, REORGSCANACCESS
, REORGHASHACCESS
, HASHLASTUSED
, DRIVETYPE
, LPFACILITY
, STATS01
, UPDATESIZE
, LASTDATACHANGE
from oa1p.tqz666gbgrTsStats
where rz ='RZ2' and dbSys = 'DBOF' and dbName = 'NI03A1P'
and name = 'A200A03' and partition = 38
)
select * from u
order by rz, dbSys, dbName, name, partition, instance
, loadTs desc, on
}¢--- A540769.WK.SQL(GBGRMID2) cre=2014-07-24 mod=2014-07-24-17.17.06 A540769 ---
select p, dsSize, count(*)
from oa1p.tqz006tmp
where p=2
group by p, dsSize
;c;
with u as
(
select *
from oa1p.tqz006tmp2 s
where db like 'DB2PDB%'
and hiUse <> (select hiUse
from oa1p.tqz006tmp2 a
where s.db = a.db and s.ts = a.ts
and s.partition = a.partition and s.datum > a.datum
order by a.datum desc
fetch first 1 rows only
)
)
, d as
(
select * from u d
where not exists (select 1 from oa1p.tqz006GbGrTsStats s
where s.rz = 'RZ4' and s.dbSys = 'DP4G'
and s.dbName = d.db and s.name = d.ts
and s.partition = d.partition
)
and not exists (select 1 from oa1p.tqz006tmp2 o
where d.db = o.db and d.ts = o.ts
and d.partition = o.partition and d.datum < o.datum
)
)
, w as
(
select * from u w
where not exists (select 1 from u n
where w.db = n.db and w.ts = n.ts
and w.partition = n.partition
and w.datum < n.datum
and n.datum <= date(trunc_timestamp(
timestamp(w.datum)+9 days, 'iw')-3 days) -- next friday
)
)
select * from w
order by db, ts, partition, datum desc
;x;
order by db, ts, partition, datum desc
select count(*)
from oa1p.tqz006tmp2 s
where db = 'DB2ADMIN'
;
with s (d, l) as
( select current date, 0 from sysibm.sysDummy1
union all select d - 1 day, l+1 from s where l < 20
)
select d
, date(trunc_timestamp(timestamp(d), 'iw')) "iw"
, date(trunc_timestamp(timestamp(d)+6 days, 'iw')) "nxMon"
, date(trunc_timestamp(timestamp(d)+9 days, 'iw')-3 days) "nxFri"
from s
;x;
}¢--- A540769.WK.SQL(GBGRMID3) cre=2014-07-25 mod=2014-07-25-10.15.53 A540769 ---
select current date - 2 years
, date(trunc_timestamp(timestamp(current date - 2 years + 3 days)
, 'iw') - 3 days)
, date(trunc_timestamp(
trunc_timestamp(timestamp(current date - 5 years + 3 days)
, 'iw') - 3 days, 'mon'))
from sysibm.sysdummy1;x;
select *
from oa1p.tqz006gbgrtsstats where state = 'D' ;d;
where dssize < 0
order by d.db, d.ts, d.partition, d.datum desc
;x;
select d.db, d.ts, d.partition, d.datum, w.datum
from oa1p.tqz006tmp d
left join oa1p.tqz006tmp w
on w.p = 3 and w.db = d.db and w.ts = d.ts
and w.partition = d.partition and w.datum = d.datum
where d.p = 2 and d.db = 'QZ01A1P'
}¢--- A540769.WK.SQL(GBGRMIGI) cre=2016-01-05 mod=2016-01-06-11.41.58 A540769 ---
//A540769I JOB (CP00,KE50),'DB2 REO', 00010000
// MSGCLASS=T,TIME=1440,CLASS=M1, 00020000
// NOTIFY=&SYSUID,REGION=0M,SCHENV=DB2ALL 00030003
//S1 EXEC PGM=DSNUTILB,PARM='DP4G,A540769I.LOAD' 00020001
//SYSMAP DD SYSOUT=*
//UTPRINT DD SYSOUT=*
//SYSERR DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSTEMPL DD DSN=DP4G.DBAA.LISTDEF(TEMPL),DISP=SHR
//SYSIN DD *
EXEC SQL
DECLARE CURK CURSOR FOR
with g2 as
(
select rz, dbSys, loadTs, max(updateStatsTime) stats
, days(max(updateStatsTime)) - days(loadTs) d1
from oa1p.tqz007gbgrIXHist
-- where rz = 'RR2' -- and dbSys = 'DP2G'
-- and loadTs > current timestamp - 1 month
group by rz, dbSys, loadTs
)
select rz, dbSys, loadTs, stats updateStatsTime
, value(case
when stats <= loadTs then 0
when stats - (d1-1) days <= loadTs then d1-1
when stats - (d1 ) days <= loadTs then d1
else d1+1 end, 0) di
from g2
ENDEXEC
LOAD DATA INCURSOR CURK LOG NO RESUME NO REPLACE
SORTDEVT DISK
WORKDDN(TSYUTS,TSOUTS)
INTO TABLE OA1P.TQZ667GBGRIXKEY
EXEC SQL
DECLARE CURT CURSOR FOR
with j2 as
(
select t.rz, t.dbsys, t.dbName, t.ts, t.indexSpace
, t.partition, t.instance, t.state
, t.loadTs, t.updateStatsTime
, ( select di from oa1p.tqz667gbgrIXKey k
where t.rz = k.rz and t.dbSys = k.dbSys
and t.loadTs = k.loadTs ) di
from oa1p.tqz007gbgrIXHist t
where (t.rz, t.dbSys) in (select k.rz, k.dbSys
from oa1p.tqz667gbgrIXKey k
group by k.rz, k.dbSys)
)
, j as
(
select j2.*
, case when updateStatsTime - di days <= loadTs
then updateStatsTime - di days
else loadTs end statsNew
from j2
)
, k as
(
select j.*
, min(statsNew) over
( partition by rz, dbsys, dbName, ts, indexSpace
, partition, instance
order by loadTs, statsNew
rows between 1 preceding and 1 preceding
) statsPrec
from j
)
select t.STATE
, t.RZ
, t.DBSYS
, t.INDEXTYPE
, t.COMPRESS
, t.IXPARTS
, t.IXPGSZ
, t.PIECESIZE
, t.PIECEGB
, t.LIMGB
, t.TBCREATOR
, t.TBNAME
, t.TS
, t.TSTY
, t.TSPARTS
, t.TSCLONE
, t.TSINST
, t.TSDSSIZE
, t.TSDSGB
, t.TSLIMGB
, t.TSLIMPART
, t.TSPGSZ
, t.LOADTS
, t.UPDATESTATSTIME ORIGSTATSTIME
, case when k.statsPrec is null or k.statsPrec < k.statsNew
then k.statsNew else k.loadTs end UPDATESTATSTIME
, t.NLEVELS
, t.NPAGES
, t.NLEAF
, t.NACTIVE
, t.SPACE
, t.EXTENTS
, t.LOADRLASTTIME
, t.REBUILDLASTTIME
, t.REORGLASTTIME
, t.REORGINSERTS
, t.REORGDELETES
, t.REORGAPPENDINSERT
, t.REORGPSEUDODELETES
, t.REORGMASSDELETE
, t.REORGLEAFNEAR
, t.REORGLEAFFAR
, t.REORGNUMLEVELS
, t.STATSLASTTIME
, t.STATSINSERTS
, t.STATSDELETES
, t.STATSMASSDELETE
, t.COPYLASTTIME
, t.COPYUPDATEDPAGES
, t.COPYCHANGES
, t.COPYUPDATELRSN
, t.COPYUPDATETIME
, t.LASTUSED
, t.IBMREQD
, t.DBID
, t.ISOBID
, t.PSID
, t.PARTITION
, t.INSTANCE
, t.TOTALENTRIES
, t.DBNAME
, t.NAME
, t.CREATOR
, t.INDEXSPACE
, t.REORGINDEXACCESS
, t.DRIVETYPE
, t.STATS101
from oa1p.tqz007gbgrIXHist t join k
on t.rz = k.rz and t.dbSys = k.dbSys and t.loadTs = k.loadTs
and t.dbName = k.dbName and t.ts = k.ts
and t.indexSpace = k.indexSpace
and t.partition = k.partition and t.instance = k.instance
and t.updateStatsTime = k.updateStatsTime
ENDEXEC
LOAD DATA INCURSOR CURT LOG NO RESUME NO REPLACE
COPYDDN(TCOPYD) STATISTICS INDEX(ALL)
SORTDEVT DISK
WORKDDN(TSYUTS,TSOUTS)
INTO TABLE OA1P.TQZ007GBGRIXSTATS
LISTDEF TPLIST
INCLUDE TABLESPACE QZ01A1P.A007A PARTLEVEL
---- COPY ----------------------------------------
COPY LIST TPLIST COPYDDN(TCOPYD)
FULL YES SCOPE PENDING
PARALLEL
SHRLEVEL CHANGE
}¢--- A540769.WK.SQL(GBGRMIGS) cre=2016-01-05 mod=2016-01-05-03.13.48 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
with g as
(
select t.rz, t.dbsys, t.dbName, t.name, t.partition, t.instance
min(loadTs
from oa1p.tqz006gbgrTsStats t
group by t.rz, t.dbsys, t.dbName, t.name, t.partition, t.instance
)
-- on t.rz || '' = g.rz and t.dbSys = g.dbSys and t.loadTs = g.loadTs
where t.rz = 'RR2' and t.dbSys = 'DP2G'
)
, j as
(
select j2.*
, case when updateStatsTime - di days <= loadTs
then updateStatsTime - di days
else loadTs end statsNew
from j2
)
, k as
(
select j.*
, min(statsNew) over
( partition by rz, dbsys, dbName, name, partition, instance
order by loadTs, statsNew
rows between 1 preceding and 1 preceding
) statsPrec
from j
)
select count(*)
, sum(case when statsNew <= statsPrec then 1 else 0 end) bef
, count(distinct loadTs)
from k
;
select * from plan_view1
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
with ur
;
rollback
;;;;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
select substr(db, 1, 8) "db"
, substr(ts, 1, 8) "ts"
, substr(ix, max(1, length(ix) - 7), 8) "...index"
, substr(case when part = 0 then ''
else value(right(' '||strip(char(part)), 4), '----')
||'/'|| value(right(' '||strip(char(tsParts)), 4),'----')
end, 1, 9) "part/ tot"
, substr(right(' ' || int(round(actGb)), 6), 1, 6) "usedGB"
, substr(right(' ' || int(round(limGb/100*schwelle))
, 6), 1, 6) "schwGB"
, substr(right(' ' || schwelle, 5), 1, 5) "schw%"
, substr(right(' ' || int(round(limGb)), 6), 1, 6) "limGB"
, tsTy "y"
, substr(schwinfo, 7, 35) "schwellwert key"
from oa1p.vQz006gbGrenze
where actGb > real(limGb / 100 * schwelle)
and rz = 'RZ2' and dbSys = 'DVBP'
order by db, ts, part, ix
;
explain plan set queryno = 7 for
with s2 as
(
select s.*
, case when posStr(translate(rz, '%', '*'), '%') > 0
then posStr(translate(rz, '%', '*'), '%') -1
else 3 end rzLen
, case when posStr(translate(dbSys, '%', '*'), '%') > 0
then posStr(translate(dbSys, '%', '*'), '%') -1
else 4 end dbSysLen
, case when posStr(translate(db, '%', '*'), '%') > 0
then posStr(translate(db, '%', '*'), '%') -1
else 8 end dbLen
, case when posStr(translate(ts, '%', '*'), '%') > 0
then posStr(translate(ts, '%', '*'), '%') -1
else 8 end tsLen
from oa1p.tqz008GbGrSchwelle s
where validBegin <= current date and validEnd > current date
)
, s3 as
(
select s2.*
, substr(right(' ' || prio, 3) || rzLen || dbSysLen || dbLen
|| tsLen || min(part, 1)
|| translate(tsTy, ' ', '%*')
|| right(' ' || dsMin, 6), 1, 15) ord
from s2
)
, t2 as
(
select rz, dbSys, dbName, name
, partition, instance, max(loadTs) loadTs
from OA1P.TQZ006GBGRTSSTATS a
group by rz, dbSys, dbName, name, partition, instance
)
, t as
(
select t.rz, t.dbSys, t.dbName, t.Name, min(t.tsTy) tsTy
, smallInt(t.partition * t.limPart) partition
, t.instance
, min(t.limGb) limGb
, min(t.parts) parts
, min(t.clone) clone
, min(t.tsInst) tsInst
, real(sum(real(t.nActive) * t.pgSize / 1048576)) actGB
from OA1P.TQZ006GBGRTSSTATS t join t2 a
on t.rz = a.rz
and t.dbSys = a.dbSys
and t.dbName = a.dbName
and t.Name = a.Name
and t.partition = a.partition
and t.instance = a.instance
and t.loadTS = a.loadTs
group by t.rz, t.dbSys, t.dbName, t.Name
, smallInt(t.partition * t.limPart)
, t.instance
)
, i2 as
(
select rz, dbSys, dbName, ts, indexSpace
, partition, instance, max(loadTs) loadTs
from OA1P.TQZ007GbGrIxSTATS a
group by rz, dbSys, dbName, ts, indexSpace, partition, instance
)
, i as
(
select i.*
, real(real(nActive) * ixPgSz / 1048576) actGB
from OA1P.TQZ007GBGRIxSTATS i join i2 a
on i.rz = a.rz
and i.dbSys = a.dbSys
and i.dbName = a.dbName
and i.ts = a.ts
and i.indexSpace= a.indexSpace
and i.partition = a.partition
and i.instance = a.instance
and i.loadTS = a.loadTs
)
, u (limGb, actGb, db, ts, ix, part, inst, rz, dbSys
, tsTy, tsLimGb, tsParts, tsClone, tsInst) as
(
select limGb, actGb, dbName, name, ' --ts--'
, partition, instance, rz, dbSys
, tsTy, limGb, parts, clone , tsInst
from t
union all select limGb, actGb, dbName, ts , name
, partition, instance, rz, dbSys
, tsTy, tslimGb, tsParts, tsClone, tsInst
from i
)
, s4 as
(
select u.*
,(select max(s.ord
|| right(' ' || schwelle, 6)
|| strip(rz) || '/' || strip(dbSys) || ':' || strip(db)
|| '.' || strip(ts) || '#' || part || tsTy || dsMin)
from s3 s
where left(u.rz, s.rzLen) = left(s.rz, s.rzLen)
and left(u.dbSys, s.dbSysLen) = left(s.dbSys, s.dbSysLen)
and left(u.db, s.dbLen) = left(s.db, s.dbLen)
and left(u.ts, s.tsLen) = left(s.ts, s.tsLen)
and s.part in (0, u.part)
and s.tsTy in (' ', '*', '%', u.tsTy)
and s.dsMin <= u.tsLimGB
) schwInfo
from u
)
, s as
(
select int(case when schwInfo is not null
then int(substr(schwInfo, 16, 6))
else raise_error(70001, 'schwelle null ts='
|| db || '.' || ts || '#' || part)
end) schwelle
, s4.*
from s4
-- order by db, ts, part, ix
)
select substr(db, 1, 8) "db"
, substr(ts, 1, 8) "ts"
, substr(ix, max(1, length(ix) - 7), 8) "...index"
, substr(case when part = 0 then ''
else value(right(' '||strip(char(part)), 4), '----')
||'/'|| value(right(' '||strip(char(tsParts)), 4),'----')
end, 1, 9) "part/ tot"
, dec(actGb, 6, 0) "usedGB"
, dec(limGb/100*schwelle, 6, 0) "schwGB"
, dec(schwelle, 3, 0) "schw%"
, dec(limGB, 6, 0) "limGB"
, tsTy "y"
, substr(schwinfo, 7, 25) "schwellwert key"
from s
where 1=1 -- and actGb > limGb / 100 * schwelle
and rz = 'RZ2' and dbSys = 'DBOF' and db = 'MF01A1P'
and actGb > limGb * schwelle / 100
order by s.db, s.ts, s.part, s.ix
;
select * from plan_view1
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(GBGRMIGT) cre=2016-01-04 mod=2016-01-06-11.19.11 A540769 ---
//A540769T JOB (CP00,KE50),'DB2 REO', 00010000
// MSGCLASS=T,TIME=1440,CLASS=M1, 00020000
// NOTIFY=&SYSUID,REGION=0M,SCHENV=DB2ALL 00030003
//S1 EXEC PGM=DSNUTILB,PARM='DP4G,A540769T.LOAD' 00020001
//SYSMAP DD SYSOUT=*
//UTPRINT DD SYSOUT=*
//SYSERR DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSTEMPL DD DSN=DP4G.DBAA.LISTDEF(TEMPL),DISP=SHR
//SYSIN DD *
EXEC SQL
DECLARE CURK CURSOR FOR
with g2 as
(
select rz, dbSys, loadTs, max(updateStatsTime) stats
, days(max(updateStatsTime)) - days(loadTs) d1
from oa1p.tqz006gbgrTsHist
-- where rz = 'RR2' and dbSys = 'DBOF'
-- and loadTs > current timestamp - 1 month
group by rz, dbSys, loadTs
)
select rz, dbSys, loadTs, stats updateStatsTime
, value(case
when stats <= loadTs then 0
when stats - (d1-1) days <= loadTs then d1-1
when stats - (d1 ) days <= loadTs then d1
else d1+1 end, 0) di
from g2
ENDEXEC
LOAD DATA INCURSOR CURK LOG NO RESUME NO REPLACE
SORTDEVT DISK
WORKDDN(TSYUTS,TSOUTS)
INTO TABLE OA1P.TQZ666GBGRTSKEY
EXEC SQL
DECLARE CURT CURSOR FOR
with j2 as
(
select t.rz, t.dbsys, t.dbName, t.name, t.partition, t.instance
, t.loadTs, t.updateStatsTime, t.state
, ( select di from oa1p.tqz666gbgrTsKey k
where t.rz = k.rz and t.dbSys = k.dbSys
and t.loadTs = k.loadTs ) di
from oa1p.tqz006gbgrTsHist t
where (t.rz, t.dbSys) in (select k.rz, k.dbSys
from oa1p.tqz666gbgrTsKey k
group by k.rz, k.dbSys)
)
, j as
(
select j2.*
, case when updateStatsTime - di days <= loadTs
then updateStatsTime - di days
else loadTs end statsNew
from j2
)
, k as
(
select j.*
, min(statsNew) over
( partition by rz, dbsys, dbName, name, partition, instance
order by loadTs, statsNew
rows between 1 preceding and 1 preceding
) statsPrec
from j
)
select t.STATE
, t.RZ
, t.DBSYS
, t.TSTYPE
, t.TSTY
, t.PGSIZE
, t.SEGSIZE
, t.PARTS
, t.MAXPARTS
, t.DSSIZE
, t.DSGB
, t.LIMGB
, t.LIMPART
, t.OBID
, t.CLONE
, t.TSINST
, t.TBCR
, t.TB
, t.TBTY
, t.TBOBID
, t.LOADTS
, t.UPDATESTATSTIME ORIGSTATSTIME
, case when k.statsPrec is null or k.statsPrec < k.statsNew
then k.statsNew else k.loadTs end UPDATESTATSTIME
, t.NACTIVE
, t.NPAGES
, t.EXTENTS
, t.LOADRLASTTIME
, t.REORGLASTTIME
, t.REORGINSERTS
, t.REORGDELETES
, t.REORGUPDATES
, t.REORGUNCLUSTINS
, t.REORGDISORGLOB
, t.REORGMASSDELETE
, t.REORGNEARINDREF
, t.REORGFARINDREF
, t.STATSLASTTIME
, t.STATSINSERTS
, t.STATSDELETES
, t.STATSUPDATES
, t.STATSMASSDELETE
, t.COPYLASTTIME
, t.COPYUPDATEDPAGES
, t.COPYCHANGES
, t.COPYUPDATELRSN
, t.COPYUPDATETIME
, t.IBMREQD
, t.DBID
, t.PSID
, t.PARTITION
, t.INSTANCE
, t.SPACE
, t.TOTALROWS
, t.DATASIZE
, t.UNCOMPRESSEDDATASIZE
, t.DBNAME
, t.NAME
, t.REORGCLUSTERSENS
, t.REORGSCANACCESS
, t.REORGHASHACCESS
, t.HASHLASTUSED
, t.DRIVETYPE
, t.LPFACILITY
, t.STATS01
, t.UPDATESIZE
, t.LASTDATACHANGE
from oa1p.tqz006gbgrTsHist t join k
on t.rz = k.rz and t.dbSys = k.dbSys and t.loadTs = k.loadTs
and t.dbName = k.dbName and t.name = k.name
and t.partition = k.partition and t.instance = k.instance
and t.updateStatsTime = k.updateStatsTime
ENDEXEC
LOAD DATA INCURSOR CURT LOG NO RESUME NO REPLACE
COPYDDN(TCOPYD) STATISTICS INDEX(ALL)
SORTDEVT DISK
WORKDDN(TSYUTS,TSOUTS)
INTO TABLE OA1P.TQZ006GBGRTSSTATS
LISTDEF TPLIST
INCLUDE TABLESPACE QZ01A1P.A006A PARTLEVEL
---- COPY ----------------------------------------
COPY LIST TPLIST COPYDDN(TCOPYD)
FULL YES SCOPE PENDING
PARALLEL
SHRLEVEL CHANGE
}¢--- A540769.WK.SQL(GBGRMIGU) cre=2016-01-04 mod=2016-01-06-13.34.03 A540769 ---
//A540769I JOB (CP00,KE50),'DB2 REO', 00010000
// MSGCLASS=T,TIME=1440,CLASS=M1, 00020000
// NOTIFY=&SYSUID,REGION=0M,SCHENV=DB2ALL 00030003
//S1 EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99 00020001
//SYSTSIN DD *
DSN SYSTEM(DP4G)
RUN PROGRAM(DSNTEP2) PARMS('ALIGN(LHS)') PLAN(DSNTEP2)
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=* DSN=A540769.TMP.TEXV(GRENZE)
//SYSUDUMP DD SYSOUT=*
//SYSTERM DD DUMMY
//SYSINX DD DISP=SHR,DSN=A540769.WK.SQL(FICDNEW)
//SYSIN DD *
lock table oa1p.tqz007gbgrIxStats in exclusive mode;
update oa1p.tqz007gbgrIxStats t
set updateStatsTime = loadTs
where -- rz = 'RR2' and -- dbSys = 'DP2G' and
( select a.loadTS from oa1p.tqz007gbgrIxStats a
where t.rz = a.rz and t.dbSys = a.dbSys
and t.dbName = a.dbName and t.ts = a.ts
and t.indexSpace = a.indexSpace
and t.partition = a.partition and t.instance = a.instance
and t.updateStatsTime < a.updateStatsTime
order by a.updateStatsTime asc
fetch first 1 rows only
) <= t.loadTS
;
commit
;
//A540769T JOB (CP00,KE50),'DB2 REO', 00010000
// MSGCLASS=T,TIME=1440,CLASS=M1, 00020000
// NOTIFY=&SYSUID,REGION=0M,SCHENV=DB2ALL 00030003
//S1 EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99 00020001
//SYSTSIN DD *
DSN SYSTEM(DP4G)
RUN PROGRAM(DSNTEP2) PARMS('ALIGN(LHS)') PLAN(DSNTEP2)
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=* DSN=A540769.TMP.TEXV(GRENZE)
//SYSUDUMP DD SYSOUT=*
//SYSTERM DD DUMMY
//SYSINX DD DISP=SHR,DSN=A540769.WK.SQL(FICDNEW)
//SYSIN DD *
lock table oa1p.tqz006gbgrTsStats in exclusive mode;
update oa1p.tqz006gbgrTsStats t
set updateStatsTime = loadTs
where -- rz = 'RR2' and -- dbSys = 'DP2G' and
( select a.loadTs from oa1p.tqz006gbgrTsStats a
where t.rz = a.rz and t.dbSys = a.dbSys
and t.dbName = a.dbName and t.name = a.name
and t.partition = a.partition and t.instance = a.instance
and t.updateStatsTime < a.updateStatsTime
order by a.updateStatsTime asc
fetch first 1 rows only
) <= t.loadTs
;
commit
}¢--- A540769.WK.SQL(GBGRMIGV) cre=2016-01-04 mod=2016-01-06-10.57.20 A540769 ---
-- alte Version von migrate T für Spufi
delete from oa1p.tqz666gbgrTsKey;
insert into oa1p.tqz666gbgrTsKey
with g2 as
(
select rz, dbSys, loadTs, max(updateStatsTime) stats
, days(max(updateStatsTime)) - days(loadTs) d1
from oa1p.tqz006gbgrTsStats
where rz = 'RR2' and dbSys = 'DBOF'
-- and loadTs > current timestamp - 1 month
group by rz, dbSys, loadTs
)
select rz, dbSys, loadTs, stats
, case when stats <= loadTs then 0
when stats - (d1-1) days <= loadTs then d1-1
when stats - (d1 ) days <= loadTs then d1
else d1+1 end di
from g2
;
with j2 as
(
select t.rz, t.dbsys, t.dbName, t.name, t.partition, t.instance
, t.loadTs, t.updateStatsTime, t.state
, ( select di from oa1p.tqz666gbgrTsKey k
where t.rz = k.rz and t.dbSys = k.dbSys
and t.loadTs = k.loadTs ) di
from oa1p.tqz006gbgrTsStats t
where (t.rz, t.dbSys) in (select k.rz, k.dbSys
from oa1p.tqz666gbgrTsKey k
group by k.rz, k.dbSys)
)
, j as
(
select j2.*
, case when state <> 'a' then loadTs
when updateStatsTime - di days <= loadTs
then updateStatsTime - di days
else loadTs end statsNew
from j2
)
, k as
(
select j.*
, min(statsNew) over
( partition by rz, dbsys, dbName, name, partition, instance
order by loadTs, statsNew
rows between 1 preceding and 1 preceding
) statsPrec
from j
)
select count(*)
, sum(case when statsNew <= statsPrec then 1 else 0 end) bef
, count(distinct loadTs)
from k
;x; where stMod is null or loadTs is null or stats is null
select t.STATE
, t.RZ
, t.DBSYS
, t.TSTYPE
, t.TSTY
, t.PGSIZE
, t.SEGSIZE
, t.PARTS
, t.MAXPARTS
, t.DSSIZE
, t.DSGB
, t.LIMGB
, t.LIMPART
, t.OBID
, t.CLONE
, t.TSINST
, t.TBCR
, t.TB
, t.TBTY
, t.TBOBID
, t.LOADTS
, t.UPDATESTATSTIME ORIGSTATSTIME
, case when k.statsPrec is null or k.statsPrec < k.statsNew
then k.statsNew else k.loadTs end UPDATESTATSTIME
, t.NACTIVE
, t.NPAGES
, t.EXTENTS
, t.LOADRLASTTIME
, t.REORGLASTTIME
, t.REORGINSERTS
, t.REORGDELETES
, t.REORGUPDATES
, t.REORGUNCLUSTINS
, t.REORGDISORGLOB
, t.REORGMASSDELETE
, t.REORGNEARINDREF
, t.REORGFARINDREF
, t.STATSLASTTIME
, t.STATSINSERTS
, t.STATSDELETES
, t.STATSUPDATES
, t.STATSMASSDELETE
, t.COPYLASTTIME
, t.COPYUPDATEDPAGES
, t.COPYCHANGES
, t.COPYUPDATELRSN
, t.COPYUPDATETIME
, t.IBMREQD
, t.DBID
, t.PSID
, t.PARTITION
, t.INSTANCE
, t.SPACE
, t.TOTALROWS
, t.DATASIZE
, t.UNCOMPRESSEDDATASIZE
, t.DBNAME
, t.NAME
, t.REORGCLUSTERSENS
, t.REORGSCANACCESS
, t.REORGHASHACCESS
, t.HASHLASTUSED
, t.DRIVETYPE
, t.LPFACILITY
, t.STATS01
, t.UPDATESIZE
, t.LASTDATACHANGE
from oa1p.tqz006gbgrTsStats t join k
on t.rz = k.rz and t.dbSys = k.dbSys and t.loadTs = k.loadTs
and t.dbName = k.dbName and t.name = k.name
and t.partition = k.partition and t.instance = k.instance
and t.updateStatsTime = k.updateStatsTime
;x;??????????
select count(*)
, sum(case when statsNew <= statsPrec then 1 else 0 end) bef
, count(distinct loadTs)
from k
;x; where stMod is null or loadTs is null or stats is null
select statsNew, statsPrec, loadTs
from k
where statsPrec >= statsNew
;x;
select count(*), count(distinct loadTs)
from k
;x; where stMod is null or loadTs is null or stats is null
or stMod > loadTs or stMod <= loadTs - 1 day
or d1 <> di
order by 1 desc
;x;
with t (t) as
(
select current timestamp from sysibm.sysDummy1
union all select timestamp('1956-04-01-06.00.00')from sysibm.sysDummy1
union all select timestamp('2015-01-01-01.00.00')from sysibm.sysDummy1
)
, j2 (f, t) as
(
select f.t, t.t
from t f, t t
where f.t <= t.t
)
, j3 as
(
select j2.*
, days(t) - days(f) di
, days(t) - days(f)
+ (midnight_seconds(t) - midnight_seconds(f)
+ float(microsecond(t) - microsecond(f)) * 1e-6
) / 86400 dd
from j2
)
, j as
(
select j3.*
, case when t - di days between f - 1 day and f then di
when t - (di-1) days between f - 1 day and f then di - 1
when t - (di+1) days between f - 1 day and f then di + 1
end dc
from j3
)
select days(f), midnight_seconds(f), f
, di, dc, t - dc days
, t
, decimal(dd, 20, 12)
, decimal(mod(dd, 1), 20, 12)
, dec(mod(dd, 1) * 86400, 12, 6)
from j
;x;
(days(t)-days(b)) * 86400 "days*86400",
(days(t)-days(b)) * 86400
+ midnight_seconds(t) - midnight_seconds(b) "days* midnight",
from sysibm.sysDummy1
select timestamp('2012-02-29-12:13:14 ')
from sysibm.sysDummy1
;
declare global temporary table tst (tst timestamp);
insert into session.tst values (current timestamp);
insert into session.tst values ('2012-02-29 12:13:14 ');
insert into session.tst values ('2012-02-29-12:13:14 ');
select * from session.tst;
-- timestamp format: : statt . funktioniert nur <= v9|
}¢--- A540769.WK.SQL(GBGRMIG2) cre=2016-01-04 mod=2016-01-04-17.42.00 A540769 ---
with s as
(
select t.rz, t.dbsys, t.dbName, t.name, t.partition, t.instance
, t.loadTs, t.updateStatsTime, t.origStatstime
, ( select k.loadTs
from oa1p.tqz666gbgrTsStats k
where t.rz = k.rz and t.dbSys = k.dbSys
and t.dbName = k.dbName and t.name = k.name
and t.partition = k.partition and t.instance = k.instance
and t.updateStatsTime > k.updateStatsTime
order by k.updateStatsTime desc
fetch first 1 rows only
) loadPrec
from oa1p.tqz666gbgrTsStats t
)
select *
from s
where loadPrec >= loadTs
;X;
with g2 as
(
select rz, dbSys, loadTs, max(updateStatsTime) stats
, days(max(updateStatsTime)) - days(loadTs) d1
from oa1p.tqz006gbgrTsStats
where rz = 'RZ2' and dbSys = 'DP2G'
and loadTs > current timestamp - 1 month
group by rz, dbSys, loadTs
)
, g as
(
select g2.*
, case when stats <= loadTs then 0
when stats - (d1-1) days <= loadTs then d1-1
when stats - (d1 ) days <= loadTs then d1
else d1+1 end di
from g2
)
, j as
(
select t.rz, t.dbsys, t.dbName, t.name, t.partition, t.instance
, t.loadTs, t.updateStatsTime
, case when t.updateStatsTime - g.di days <= t.loadTs
then t.updateStatsTime - g.di days
else t.loadTs end statsNew
from oa1p.tqz006gbgrTsStats t join g
on t.rz = g.rz and t.dbSys = g.dbSys and t.loadTs = g.loadTs
)
, k as
(
select j.*
, min(statsNew) over
( partition by rz, dbsys, dbName, name, partition, instance
order by loadTs, statsNew
rows between 1 preceding and 1 preceding
) statsPrec
from j
)
select t.STATE
, t.RZ
, t.DBSYS
, t.TSTYPE
, t.TSTY
, t.PGSIZE
, t.SEGSIZE
, t.PARTS
, t.MAXPARTS
, t.DSSIZE
, t.DSGB
, t.LIMGB
, t.LIMPART
, t.OBID
, t.CLONE
, t.TSINST
, t.TBCR
, t.TB
, t.TBTY
, t.TBOBID
, t.LOADTS
, t.UPDATESTATSTIME ORIGSTATSTIME
, case when k.statsPrec is null or k.statsPrec < k.statsNew
then k.statsNew else k.loadTs end UPDATESTATSTIME
, t.NACTIVE
, t.NPAGES
, t.EXTENTS
, t.LOADRLASTTIME
, t.REORGLASTTIME
, t.REORGINSERTS
, t.REORGDELETES
, t.REORGUPDATES
, t.REORGUNCLUSTINS
, t.REORGDISORGLOB
, t.REORGMASSDELETE
, t.REORGNEARINDREF
, t.REORGFARINDREF
, t.STATSLASTTIME
, t.STATSINSERTS
, t.STATSDELETES
, t.STATSUPDATES
, t.STATSMASSDELETE
, t.COPYLASTTIME
, t.COPYUPDATEDPAGES
, t.COPYCHANGES
, t.COPYUPDATELRSN
, t.COPYUPDATETIME
, t.IBMREQD
, t.DBID
, t.PSID
, t.PARTITION
, t.INSTANCE
, t.SPACE
, t.TOTALROWS
, t.DATASIZE
, t.UNCOMPRESSEDDATASIZE
, t.DBNAME
, t.NAME
, t.REORGCLUSTERSENS
, t.REORGSCANACCESS
, t.REORGHASHACCESS
, t.HASHLASTUSED
, t.DRIVETYPE
, t.LPFACILITY
, t.STATS01
from oa1p.tqz006gbgrTsStats t join k
on t.rz = k.rz and t.dbSys = k.dbSys and t.loadTs = k.loadTs
and t.dbName = k.dbName and t.name = k.name
and t.partition = k.partition and t.instance = k.instance
and t.updateStatsTime = k.updateStatsTime
;x;??????????
select count(*)
, sum(case when statsNew <= statsPrec then 1 else 0 end) bef
, count(distinct loadTs)
from k
;x; where stMod is null or loadTs is null or stats is null
select statsNew, statsPrec, loadTs
from k
where statsPrec >= statsNew
;x;
select count(*), count(distinct loadTs)
from k
;x; where stMod is null or loadTs is null or stats is null
or stMod > loadTs or stMod <= loadTs - 1 day
or d1 <> di
order by 1 desc
;x;
with t (t) as
(
select current timestamp from sysibm.sysDummy1
union all select timestamp('1956-04-01-06.00.00')from sysibm.sysDummy1
union all select timestamp('2015-01-01-01.00.00')from sysibm.sysDummy1
)
, j2 (f, t) as
(
select f.t, t.t
from t f, t t
where f.t <= t.t
)
, j3 as
(
select j2.*
, days(t) - days(f) di
, days(t) - days(f)
+ (midnight_seconds(t) - midnight_seconds(f)
+ float(microsecond(t) - microsecond(f)) * 1e-6
) / 86400 dd
from j2
)
, j as
(
select j3.*
, case when t - di days between f - 1 day and f then di
when t - (di-1) days between f - 1 day and f then di - 1
when t - (di+1) days between f - 1 day and f then di + 1
end dc
from j3
)
select days(f), midnight_seconds(f), f
, di, dc, t - dc days
, t
, decimal(dd, 20, 12)
, decimal(mod(dd, 1), 20, 12)
, dec(mod(dd, 1) * 86400, 12, 6)
from j
;x;
(days(t)-days(b)) * 86400 "days*86400",
(days(t)-days(b)) * 86400
+ midnight_seconds(t) - midnight_seconds(b) "days* midnight",
from sysibm.sysDummy1
select timestamp('2012-02-29-12:13:14 ')
from sysibm.sysDummy1
;
declare global temporary table tst (tst timestamp);
insert into session.tst values (current timestamp);
insert into session.tst values ('2012-02-29 12:13:14 ');
insert into session.tst values ('2012-02-29-12:13:14 ');
select * from session.tst;
-- timestamp format: : statt . funktioniert nur <= v9|
}¢--- A540769.WK.SQL(GBGRMIKI) cre=2016-01-07 mod=2016-01-07-16.32.46 A540769 ---
//A540769I JOB (CP00,KE50),'DB2 REO', 00010000
// MSGCLASS=T,TIME=1440,CLASS=M1, 00020000
// NOTIFY=&SYSUID,REGION=0M,SCHENV=DB2ALL 00030003
//S1 EXEC PGM=DSNUTILB,PARM='DP4G,A540769I.LOAD' 00020001
//SYSMAP DD SYSOUT=*
//UTPRINT DD SYSOUT=*
//SYSERR DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSTEMPL DD DSN=DP4G.DBAA.LISTDEF(TEMPL),DISP=SHR
//SYSIN DD *
EXEC SQL
DECLARE CURT CURSOR FOR
select
RZ
, DBSYS
, updateStatsTime validBegin
, value ( ( select e.updateStatsTime
from oa1p.tqz007GbGrIxHjjj e
where o.rz = e.rz and o.dbSys = e.dbSys
and o.dbName = e.dbName and o.ts = e.ts
and o.indexSpace = e.indexSpace
and o.partition = e.partition
and o.instance = e.instance
and o.updateStatsTime < e.updateStatsTime
order by e.updateStatsTime asc
fetch first 1 row only
), '9999-12-30-00.00.00') validEnd
, LOADTS
, INDEXTYPE
, COMPRESS
, IXPARTS
, IXPGSZ
, PIECESIZE
, PIECEGB
, LIMGB
, TBCREATOR
, TBNAME
, TS
, TSTY
, TSPARTS
, TSCLONE
, TSINST
, TSDSSIZE
, TSDSGB
, TSLIMGB
, TSLIMPART
, TSPGSZ
, ORIGSTATSTIME updateStatsTime
, NLEVELS
, NPAGES
, NLEAF
, NACTIVE
, SPACE
, EXTENTS
, LOADRLASTTIME
, REBUILDLASTTIME
, REORGLASTTIME
, REORGINSERTS
, REORGDELETES
, REORGAPPENDINSERT
, REORGPSEUDODELETES
, REORGMASSDELETE
, REORGLEAFNEAR
, REORGLEAFFAR
, REORGNUMLEVELS
, STATSLASTTIME
, STATSINSERTS
, STATSDELETES
, STATSMASSDELETE
, COPYLASTTIME
, COPYUPDATEDPAGES
, COPYCHANGES
, COPYUPDATELRSN
, COPYUPDATETIME
, LASTUSED
, IBMREQD
, DBID
, ISOBID
, PSID
, PARTITION
, INSTANCE
, TOTALENTRIES
, DBNAME
, NAME
, CREATOR
, INDEXSPACE
, REORGINDEXACCESS
, DRIVETYPE
, STATS101
from oa1p.tqz007gbgrIXHjjj o
where state = 'a'
-- and rz = 'RR2'
ENDEXEC
LOAD DATA INCURSOR CURT LOG NO RESUME NO REPLACE
COPYDDN(TCOPYD) STATISTICS INDEX(ALL)
SORTDEVT DISK
WORKDDN(TSYUTS,TSOUTS)
INTO TABLE OA1P.TQZ007GBGRIXSTATS
LISTDEF TPLIST
INCLUDE TABLESPACE QZ01A1P.A007A PARTLEVEL
---- COPY ----------------------------------------
COPY LIST TPLIST COPYDDN(TCOPYD)
FULL YES SCOPE PENDING
PARALLEL
SHRLEVEL CHANGE
}¢--- A540769.WK.SQL(GBGRMIKT) cre=2016-01-07 mod=2016-01-07-16.33.35 A540769 ---
//A540769T JOB (CP00,KE50),'DB2 REO', 00010000
// MSGCLASS=T,TIME=1440,CLASS=M1, 00020000
// NOTIFY=&SYSUID,REGION=0M,SCHENV=DB2ALL 00030003
//S1 EXEC PGM=DSNUTILB,PARM='DP4G,A540769T.LOAD' 00020001
//SYSMAP DD SYSOUT=*
//UTPRINT DD SYSOUT=*
//SYSERR DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSTEMPL DD DSN=DP4G.DBAA.LISTDEF(TEMPL),DISP=SHR
//SYSIN DD *
EXEC SQL
DECLARE CURT CURSOR FOR
select
RZ
, DBSYS
, updateStatsTime validBegin
, value ( ( select e.updateStatsTime
from oa1p.tqz006GbGrTsHjjj e
where o.rz = e.rz and o.dbSys = e.dbSys
and o.dbName = e.dbName and o.name = e.name
and o.partition = e.partition
and o.instance = e.instance
and o.updateStatsTime < e.updateStatsTime
order by e.updateStatsTime asc
fetch first 1 row only
), '9999-12-30-00.00.00') validEnd
, LOADTS
, TSTYPE
, TSTY
, PGSIZE
, SEGSIZE
, PARTS
, MAXPARTS
, DSSIZE
, DSGB
, LIMGB
, LIMPART
, OBID
, CLONE
, TSINST
, TBCR
, TB
, TBTY
, TBOBID
, origSTATSTIME updateStatsTime
, NACTIVE
, NPAGES
, EXTENTS
, LOADRLASTTIME
, REORGLASTTIME
, REORGINSERTS
, REORGDELETES
, REORGUPDATES
, REORGUNCLUSTINS
, REORGDISORGLOB
, REORGMASSDELETE
, REORGNEARINDREF
, REORGFARINDREF
, STATSLASTTIME
, STATSINSERTS
, STATSDELETES
, STATSUPDATES
, STATSMASSDELETE
, COPYLASTTIME
, COPYUPDATEDPAGES
, COPYCHANGES
, COPYUPDATELRSN
, COPYUPDATETIME
, IBMREQD
, DBID
, PSID
, PARTITION
, INSTANCE
, SPACE
, TOTALROWS
, DATASIZE
, UNCOMPRESSEDDATASIZE
, DBNAME
, NAME
, REORGCLUSTERSENS
, REORGSCANACCESS
, REORGHASHACCESS
, HASHLASTUSED
, DRIVETYPE
, LPFACILITY
, STATS01
, UPDATESIZE
, LASTDATACHANGE
from oa1p.tqz006GbGrTsHjjj o
where state = 'a'
-- and rz = 'RR2'
ENDEXEC
LOAD DATA INCURSOR CURT LOG NO RESUME NO
REPLACE COPYDDN(TCOPYD) STATISTICS INDEX(ALL)
SORTDEVT DISK
WORKDDN(TSYUTS,TSOUTS)
INTO TABLE OA1P.TQZ006GBGRTSSTATS
LISTDEF TPLIST
INCLUDE TABLESPACE QZ01A1P.A006A PARTLEVEL
---- COPY ----------------------------------------
COPY LIST TPLIST COPYDDN(TCOPYD)
FULL YES SCOPE PENDING
PARALLEL
SHRLEVEL CHANGE
//
insert into oa1p.tqz006GbGrTsNew
select
RZ
, DBSYS
, updateStatsTime
, value ( ( select e.updateStatsTime
from oa1p.tqz006GbGrTsStats e
where o.rz = e.rz and o.dbSys = e.dbSys
and o.dbName = e.dbName and o.name = e.name
and o.partition = e.partition
and o.instance = e.instance
and o.updateStatsTime < e.updateStatsTime
order by e.updateStatsTime asc
fetch first 1 row only
), '9999-12-30-00.00.00') validEnd
, LOADTS
, TSTYPE
, TSTY
, PGSIZE
, SEGSIZE
, PARTS
, MAXPARTS
, DSSIZE
, DSGB
, LIMGB
, LIMPART
, OBID
, CLONE
, TSINST
, TBCR
, TB
, TBTY
, TBOBID
, origSTATSTIME
, NACTIVE
, NPAGES
, EXTENTS
, LOADRLASTTIME
, REORGLASTTIME
, REORGINSERTS
, REORGDELETES
, REORGUPDATES
, REORGUNCLUSTINS
, REORGDISORGLOB
, REORGMASSDELETE
, REORGNEARINDREF
, REORGFARINDREF
, STATSLASTTIME
, STATSINSERTS
, STATSDELETES
, STATSUPDATES
, STATSMASSDELETE
, COPYLASTTIME
, COPYUPDATEDPAGES
, COPYCHANGES
, COPYUPDATELRSN
, COPYUPDATETIME
, IBMREQD
, DBID
, PSID
, PARTITION
, INSTANCE
, SPACE
, TOTALROWS
, DATASIZE
, UNCOMPRESSEDDATASIZE
, DBNAME
, NAME
, REORGCLUSTERSENS
, REORGSCANACCESS
, REORGHASHACCESS
, HASHLASTUSED
, DRIVETYPE
, LPFACILITY
, STATS01
, UPDATESIZE
, LASTDATACHANGE
from oa1p.tqz006GbGrTsStats o
where state = 'a'
and rz = 'RZZ' -- and dbSys = 'DE0G' and dbName like 'M%'
;
commit
;x;
--t current sqlid = 'S100447';
--ter table oa1p.tqz006GbGrTsNew
-- alter validEnd set default '9999-12-30-00.00.00';
insert into oa1p.tqz006GbGrTsNew
( rz, dbSys -- , validBegin
, LOADTS
, TSTYPE
, TSTY
, PGSIZE
, SEGSIZE
, PARTS
, MAXPARTS
, DSSIZE
, DSGB
, LIMGB
, LIMPART
, OBID
, CLONE
, TSINST
, TBCR
, TB
, TBTY
, TBOBID
, updateSTATSTIME
, NACTIVE
, NPAGES
, EXTENTS
, LOADRLASTTIME
, REORGLASTTIME
, REORGINSERTS
, REORGDELETES
, REORGUPDATES
, REORGUNCLUSTINS
, REORGDISORGLOB
, REORGMASSDELETE
, REORGNEARINDREF
, REORGFARINDREF
, STATSLASTTIME
, STATSINSERTS
, STATSDELETES
, STATSUPDATES
, STATSMASSDELETE
, COPYLASTTIME
, COPYUPDATEDPAGES
, COPYCHANGES
, COPYUPDATELRSN
, COPYUPDATETIME
, IBMREQD
, DBID
, PSID
, PARTITION
, INSTANCE
, SPACE
, TOTALROWS
, DATASIZE
, UNCOMPRESSEDDATASIZE
, DBNAME
, NAME
, REORGCLUSTERSENS
, REORGSCANACCESS
, REORGHASHACCESS
, HASHLASTUSED
, DRIVETYPE
, LPFACILITY
, STATS01
, UPDATESIZE
, LASTDATACHANGE
)
select
'??'
, '??'
-- , current timestamp - 1 year
, LOADTS
, TSTYPE
, TSTY
, PGSIZE
, SEGSIZE
, PARTS
, MAXPARTS
, DSSIZE
, DSGB
, LIMGB
, LIMPART
, OBID
, CLONE
, TSINST
, TBCR
, TB
, TBTY
, TBOBID
, updateSTATSTIME
, NACTIVE
, NPAGES
, EXTENTS
, LOADRLASTTIME
, REORGLASTTIME
, REORGINSERTS
, REORGDELETES
, REORGUPDATES
, REORGUNCLUSTINS
, REORGDISORGLOB
, REORGMASSDELETE
, REORGNEARINDREF
, REORGFARINDREF
, STATSLASTTIME
, STATSINSERTS
, STATSDELETES
, STATSUPDATES
, STATSMASSDELETE
, COPYLASTTIME
, COPYUPDATEDPAGES
, COPYCHANGES
, COPYUPDATELRSN
, COPYUPDATETIME
, IBMREQD
, DBID
, PSID
, PARTITION
, INSTANCE
, SPACE
, TOTALROWS
, DATASIZE
, UNCOMPRESSEDDATASIZE
, DBNAME
, NAME
, REORGCLUSTERSENS
, REORGSCANACCESS
, REORGHASHACCESS
, HASHLASTUSED
, DRIVETYPE
, LPFACILITY
, STATS01
, UPDATESIZE
, LASTDATACHANGE
from oa1p.tqz006GbGrTsNew
where
rz = 'RZZ' and dbSys = 'DE0G' and dbName = 'MF01A1P'
fetch first 1 row only
;
commit; xx;
}¢--- A540769.WK.SQL(GBGRMISE) cre=2016-01-05 mod=2016-01-06-10.12.46 A540769 ---
select rz, dbSys, state, count(*) count
, sum(case when updateSTatsTime < loadTs then 1 else 0 end) "u<l"
, sum(case when updateSTatsTime = loadTs then 1 else 0 end) "u=l"
, sum(case when updateSTatsTime > loadTs then 1 else 0 end) "u>l"
, sum(case when updateSTatsTime<origStatsTime then 1 else 0 end) "u<o"
, sum(case when updateSTatsTime=origStatsTime then 1 else 0 end) "u=o"
, sum(case when updateSTatsTime>origStatsTime then 1 else 0 end) "u>o"
, sum(case when origStatsTime < loadTs then 1 else 0 end) "o<l"
, sum(case when origStatsTime = loadTs then 1 else 0 end) "o=l"
, sum(case when origStatsTime > loadTs then 1 else 0 end) "o>l"
, sum(case when year(updateSTatsTime) <1911 then 1 else 0 end) "u<1911"
, sum(case when year(updateSTatsTime) <2000 then 1 else 0 end) "u<2000"
, sum(case when year(updateSTatsTime) <2015 then 1 else 0 end) "u<2015"
, sum(case when year(updateSTatsTime) =2015 then 1 else 0 end) "u=2015"
, sum(case when year(updateSTatsTime) =2016 then 1 else 0 end) "u=2016"
, sum(case when year(updateSTatsTime) >2016 then 1 else 0 end) "u>2016"
from oa1p.tqz667gbgrIxStats a
-- where a.rz='RZZ' -- and a.dbSys = 'DBOF'
-- and loadTS > '2016-01-05-08.53.52.138027'
group by rz, dbSys, state
;x;
select rz, dbSys, state, count(*) count
, sum(case when updateSTatsTime < loadTs then 1 else 0 end) "u<l"
, sum(case when updateSTatsTime = loadTs then 1 else 0 end) "u=l"
, sum(case when updateSTatsTime > loadTs then 1 else 0 end) "u>l"
, sum(case when updateSTatsTime<origStatsTime then 1 else 0 end) "u<o"
, sum(case when updateSTatsTime=origStatsTime then 1 else 0 end) "u=o"
, sum(case when updateSTatsTime>origStatsTime then 1 else 0 end) "u>o"
, sum(case when origStatsTime < loadTs then 1 else 0 end) "o<l"
, sum(case when origStatsTime = loadTs then 1 else 0 end) "o=l"
, sum(case when origStatsTime > loadTs then 1 else 0 end) "o>l"
, sum(case when year(updateSTatsTime) <1911 then 1 else 0 end) "u<1911"
, sum(case when year(updateSTatsTime) <2000 then 1 else 0 end) "u<2000"
, sum(case when year(updateSTatsTime) <2015 then 1 else 0 end) "u<2015"
, sum(case when year(updateSTatsTime) =2015 then 1 else 0 end) "u=2015"
, sum(case when year(updateSTatsTime) =2016 then 1 else 0 end) "u=2016"
, sum(case when year(updateSTatsTime) >2016 then 1 else 0 end) "u>2016"
from oa1p.tqz666gbgrTsStats a
-- where a.rz='RZZ' -- and a.dbSys = 'DBOF'
-- and loadTS > '2016-01-05-08.53.52.138027'
group by rz, dbSys, state
;x;
with u as
( select rz, dbSys, dbName, ts, indexSpace, partition, instance
from oa1p.tqz667gbgrIxStats a
where -- a.rz='RRZ' -- and a.dbSys = 'DBOF'
loadTS > '2016-01-05-14.53.52.138027'
and state = 'd'
)
select *
from oa1p.tqz667gbgrIxStats a
where updateStatsTime > current timestamp - 555 days
and (rz, dbSys, dbName, ts,indexSpace,partition, instance)
in (select * from u)
order by rz, dbSys, dbName, ts, indexSpace, partition, instance
, updateSTatsTime desc
;X;
with u as
( select rz, dbSys, dbName, name,partition, instance
from oa1p.tqz666gbgrTsStats a
where a.rz='RZZ' -- and a.dbSys = 'DBOF'
and loadTS > '2016-01-05-08.53.52.138027'
and state = 'd'
)
select *
from oa1p.tqz666gbgrTsStats a
where loadTs > current timestamp - 5 days
and (rz, dbSys, dbName, name,partition, instance)
in (select * from u)
order by rz, dbSys, dbName, name,partition, instance
, updateSTatsTime desc
;X;
select rz, dbSys, state, count(*) count
, sum(case when updateSTatsTime = origStatsTime then 1 else 0 end) or
, sum(case when updateSTatsTime = loadTs then 1 else 0 end) lo
, sum(case when updateSTatsTime > loadTs then 1 else 0 end) gt
, sum(case when date(updateSTatsTime) = current date
then 1 else 0 end) today
, sum(case when date(updateSTatsTime) = current date - 1 day
then 1 else 0 end) yestr
, sum(case when updateSTatsTime < '1911-11-11-11.11.11'
then 1 else 0 end) l11
from oa1p.tqz666gbgrTsStats a
where a.rz='RZZ' -- and a.dbSys = 'DBOF'
and loadTS > '2016-01-05-08.53.52.138027'
group by rz, dbSys, state
;x;
select *
from oa1p.tqz666gbgrTsStats a
where a.rz='RR2' -- and a.dbSys = 'DBOF'
and loadTS > '2016-01-05-09.00.00.138027'
fetch first 100 rows only
;x;
}¢--- A540769.WK.SQL(GBGRMITM) cre=2014-07-24 mod=2014-07-26-13.36.51 A540769 ---
-- temporary table for data migration by gbgrmiDa
--
set current sqlid = 'S100447';
drop TABLESPACE qz01A1p.A006T;
commit;
CREATE TABLESPACE A006T
IN QZ01A1P
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
BUFFERPOOL BP2
CLOSE YES
LOCKMAX SYSTEM
SEGSIZE 64
numParts 9
dsSize 64 G
GBPCACHE CHANGED
DEFINE YES
LOGGED
TRACKMOD YES
COMPRESS YES
LOCKSIZE ANY
MAXROWS 255
CCSID UNICODE;
CREATE TABLE OA1P.TQZ006Tmp
(p smallint not null default 1
,DB CHARACTER(8) not null
,TS CHARACTER(8) not null
,PARTS smallint not null
,PARTITION smallint not null
,DSSIZE int not null
,LARGE CHARACTER(1) not null
,HIUse bigInt not NUll
,DATUM date not null
)
partition by (p)
(partition 1 ending at (1)
,partition 2 ending at (2)
,partition 3 ending at (3)
,partition 4 ending at (4)
,partition 5 ending at (5)
,partition 6 ending at (6)
,partition 7 ending at (7)
,partition 8 ending at (8)
,partition 9 ending at (9)
)
IN QZ01A1P.A006T
APPEND NO
NOT VOLATILE CARDINALITY
DATA CAPTURE CHANGES
AUDIT NONE
CCSID UNICODE;
CREATE INDEX OA1P.Iqz006I1
ON OA1P.TQZ006TMP
(p, db, ts, partition, datum)
partitioned
CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE YES
DEFER NO
COPY NO
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
GBPCACHE CHANGED;
commit;
}¢--- A540769.WK.SQL(GBGRNEW) cre=2015-12-14 mod=2015-12-14-15.43.57 A540769 ---
set current application compatibility 'V11R1';
with u (l1, l2, rz, dbSys, db, ts, pa, inst
, state, load, orig, upd
, preState, preLoad, preOrig, preUpd, lus
) as
(
select 0, 'a', rz, dbSys, dbName, name, partition, instance, ' '
, timestamp('1111-11-11-11.11.11')
, timestamp('1111-11-11-11.11.11')
, timestamp('1111-11-11-11.11.11')
, ' '
, cast(null as timestamp)
, cast(null as timestamp)
, cast(null as timestamp)
, cast('' as char(53))
from OA1P.TQZ006GBGRTSSTATS
where rz = 'RR2' --and dbSys = 'DBOF'
-- and dbName like 'MF01A%'
group by rz, dbSys, dbName, name, partition, instance
union all select l1+1, 'b', rz, dbSys, db, ts, pa, inst
, state, load, orig, upd, preState, preLoad, preOrig, preUpd
, ( select char(n.loadTs) || char(n.updateStatsTime) || n.state
from OA1P.TQZ006GBGRTSSTATS n
where u.rz = n.rz and u.dbSys = n.dbSys
and u.db = n.dbName and u.ts = n.name
and u.pa = n.partition and u.inst = n.instance
and u.load <= n.loadTs
and (u.load < n.loadTs or u.orig < n.updateStatsTime)
order by n.loadTs asc, n.updateStatsTime asc
fetch first 1 rows only
) lus
from u where l1 < 99999 and l2 in ( 'a', 'd')
union all select l1+1, 'c', rz, dbSys, db, ts, pa, inst
, substr(lus, 53)
, timestamp(substr(lus, 1, 26))
, timestamp(substr(lus, 27, 26))
, cast(null as timestamp)
, state, load, orig, upd, lus
from u
where l1 < 99999 and l2 = 'b' and lus is not null
union all select l1+1, 'd', rz, dbSys, db, ts, pa, inst
, state, load, orig
, case when orig > preUpd and orig <= load then orig
when orig -( days(orig)-days(load)) days > preUpd
and orig -( days(orig)-days(load)) days <= load
then orig -( days(orig)-days(load)) days
when orig -(1+days(orig)-days(load)) days > preUpd
and orig -(1+days(orig)-days(load)) days <= load
then orig -(1+days(orig)-days(load)) days
when load > preUpd then load
else preUpd + 1e-6 seconds end
, preState, preLoad, preOrig, preUpd, lus
from u
where l1 < 99999 and l2 = 'c' and lus is not null
)
select load, state, count(*)
, sum(case when upd = orig then 0 else 1 end) neq
, sum(case when state = 'd' and preState = 'd' then 1
when state = preState and orig = preOrig then 1
else 0 end) del
, sum(case when orig < preOrig then 1 else 0 end) origLsPre
from u
where l2 = 'd'
group by cube(load, state)
order by load, state
-- er by rz, dbSys, db, ts, pa, inst, l1
;
;x
?elect current timestamp
, timestamp(date('01.04.1956'), time(current timestamp))
, timestamp(date(current timestamp), time('13:12:11'))
from sysibm.sysDummy1 ;
with d (orig, load, preUpd) as
(
select current timestamp + (9*86400-1234.333) seconds
, current timestamp
, current timestamp - 86123.45479 seconds
from sysibm.sysDummy1
)
select
case when orig <= load and orig > preUpd then orig
when orig -(days(orig)-days(load)) days <= load
and orig -(days(orig)-days(load)) days > preUpd
then orig -(days(orig)-days(load)) days
when orig -(1+days(orig)-days(load)) days <= load
and orig -(1+days(orig)-days(load)) days > preUpd
then orig -(1+days(orig)-days(load)) days
when load >= preUpd then preUpd + 1e-6 seconds
else load
end
, d.*
from d;
?elect rz, dbSys, del, sum(cBad) cBad
, sum(case when left(del, 1) <> '-' then 1 else 0 end) delAft
, count(*), sum(cnt) cnt
from
( -- d give reason to delete or not to
select case when cnt <= 0 then '-bad0'
when aftLoad is null then '-aftNull ' || befState
when aftLoad > '2015-10-22-00.00.00'
then '-aftLoad> ' || befState||aftState
when befState = 'd' and aftState = 'd' then 'dd'
when befState <> aftState then '-state '||befState||aftState
when befUpd = aftUpd then '=='||befState
when befUpd > aftUpd then '=>'||befState
else '-else ' ||befState || aftState end del
, t.*
from
( -- t decode s
select s.*
, case when befLUS <> '' then timestamp(substr(befLUS, 1, 26))
else null end befLoad
, case when befLUS <> '' then timestamp(substr(befLUS, 27, 26))
else null end befUpd
, case when befLUS <> '' then substr(befLUS, 53)
else null end befState
, case when aftLUS <> '99' then timestamp(substr(aftLUS, 1, 26))
else null end aftLoad
, case when aftLUS <> '99' then timestamp(substr(aftLUS, 27, 26))
else null end aftUpd
, case when aftLUS <> '99' then substr(aftLUS, 53)
else null end aftState
from
( -- s keys with duplicates
select rz, dbSys, dbName, name, partition, instance
, count(*) cnt
, sum(case when loadTs < '2015-10-14-00.00.00'
or loadTs >= '2015-10-16-00.00.00'
then 0 else 1 end) cBad
, max(case when loadTs < '2015-10-14-00.00.00'
then char(loadTs) || char(updateStatsTime) || state
else '' end) befLUS
, min(case when loadTs >= '2015-10-16-00.00.00'
then char(loadTs) || char(updateStatsTime) || state
else '99' end) aftLUS
, max(loadTs) loadFr, max(loadTs) loadTo
from OA1P.TQZ006GBGRTSSTATS
-- where rz = 'RZ2' and dbSys = 'DBOF'
-- and dbName like 'MF01A%'
group by rz, dbSys, dbName, name, partition, instance
) s
) t
) d
group by rollup(rz, dbSys, del)
order by rz, dbSys, del
--der by rz, dbSys, dbName, name, partition, instance
;
}¢--- A540769.WK.SQL(GBGRREO) cre=2016-01-11 mod=2016-01-11-15.43.41 A540769 ---
select dbName, name, partition, min(validBegin), reorgLastTime
from OA1P.tQZ006gbgrTsStats s
where rz = 'RZ2' and dbSys = 'DBOF'
and dbName = 'XR01A1P' and name = 'A101A'
and validBegin > current timestamp - 3 month
group by dbName, name ,partition, reorgLastTime
having min(validBegin) > current timestamp - 1 month
order by dbName, name ,partition, reorgLastTime desc
;x;
order
, substr(ts, 1, 8) "ts"
, substr(tsTy
|| case when tsClone = 'N' and inst=1 and tsInst=1 then ''
else case when inst=tsInst then 'b' else 'c' end
|| inst end, 1, 3) "yci"
, substr(ix, max(1, length(ix) - 7), 8) "...index"
, substr(case when part = 0 and tsParts = 0 then ''
else case when part is null then ' ---'
when part = 0 and ix <> ' --ts--' then ' npi'
when part = 0 and tsTy = 'G' then ' pbg'
when part = 0 then ' ???'
else right(' ' || part, 4)
end
||'/'|| value(right(' '|| tsParts, 4),'----')
end, 1, 9) "part/ tot"
, substr(right(case when actGB < 1000
then ' ' || dec(round(actGb, 2), 6, 2)
else ' ' || int(round(actGb, 0))
end, 7), 1, 7) "usedGB"
, substr(right(case when limGb/100*schwelle < 1000
then ' ' || dec(round(limGb/100*schwelle, 2), 6, 2)
else ' ' || int(round(limGb/100*schwelle, 0))
end, 7), 1, 7) "schwGB"
, substr(right(' ' || schwelle, 5), 1, 5) "schw%"
, substr(right(' ' || int(round(limGb)), 6), 1, 6) "limGB"
, date(updStats) "lastUpdate"
, substr(schwinfo, 23, 18) "schwellwert key"
, g.*
from OA1P.vQZ006GbGrenze g
where db <> 'DSNDB01' -- directory ist anders
and rz = 'RR2' and dbSys = 'DBOF'
-- and actGb > real(limGb / 100 * schwelle)
and db = 'WU99A1P'
-- and TS = 'SDPM0012'
-- and updStats > '2014-11-15-00.00.00'
-- and db like 'XC%' -- and ts like 'A515%'
-- db = 'QZ01A1P' --and ts = 'A112A'
-- db = 'RP03A1P' and ts = 'A307A'
order by db, ts, inst, actGb desc, part, ix
-- fetch first 100 rows only
;x;
order by actGb desc
;
--
-- db = Datenbank
-- ts = Tablespace
-- yci = ts type oder s=Segmented,i=Simple p=PartitionedClassic,
-- clone und Instance (falls geKlont)
-- part/ tot = betroffene PartitionsNummer / Total Partitonen des ts
-- ...index = index oder --ts--
-- usedGB = aktuelle benutzter Platz in GB
-- schwGB = Schwellwert in GB
-- schw% = Schwellwert in Prozent der Limite
-- limGB = physische Limite in GB
-- lastUpdate = letzter update aus RealTimeStats
-- Schwellwert key = key des Schwellwerts in oa1p.tqz008GbGrSchwelle
}¢--- A540769.WK.SQL(GBGRREO1) cre=2014-09-02 mod=2014-09-02-07.45.53 A540769 ---
-- index space und Details für 1 StichDatum
set current path oa1p;
with i2 as
(
select rz, dbSys, dbName, ts, indexSpace, instance, partition
, max(loadTs) loadTs
from oa1p.tqz007GbGrIxSTats
where rz = 'RZ2' and dbSys = 'DBOF'
and dbName = 'NI03A1P' and ts = 'A250A04'
-- and partition = 507
group by rz, dbSys, dbName, ts, indexSpace, instance, partition
, reorgLastTime, rebuildLastTime
)
, i as
(
select r.*
from i2
join oa1p.tqz007GbGrIxSTats r
on i2.loadTS is not null and r.state <> 'd'
and i2.rz = r.rz
and i2.dbSys = r.dbSys
and i2.dbName = r.dbName
and i2.ts = r.ts
and i2.indexSpace= r.indexSpace
and i2.instance = r.instance
and i2.partition = r.partition
and i2.loadTs = r.loadTS
)
select rz, dbSys, dbName, ts, indexSpace
, substr(tsTy
|| case when tsClone = 'N' and instance=1 and tsInst=1 then ''
else case when instance=tsInst then 'b' else 'c' end
|| instance end, 1, 3) "yci"
, substr(case when partition = 0 and tsParts = 0 then ''
else case when partition is null then ' ---'
when partition = 0 then ' npi'
when partition = 0 and tsTy = 'G' then ' pbg'
when partition = 0 then ' ???'
else right(' ' || partition, 4)
end
||'/'|| value(right(' '|| tsParts, 4),'----')
end, 1, 9) "part/ tot"
-- , smallInt(partition) part
, substr(fosFmte7(real(nActive) * ixPgSz * 1024), 1, 7) used
, substr(fosFmte7(totalEntries), 1, 7) rows
, substr(name, 1, 30) "index"
, updateStatsTime, i.*
from i
order by rz, dbSys, dbName, ts, indexSpace, instance, partition
, loadTs desc
;
}¢--- A540769.WK.SQL(GBGRREO2) cre=2014-09-02 mod=2014-09-02-07.42.51 A540769 ---
-- index space und Details für 1 StichDatum
set current path oa1p;
with i2 as
(
select rz, dbSys, dbName, ts, indexSpace, instance, partition
, max(loadTs) loadTs
from oa1p.tqz007GbGrIxSTats
where rz = 'RZ2' and dbSys = 'DBOF'
and dbName = 'MF01A1P' and ts = 'A150A'
-- and partition = 507
group by rz, dbSys, dbName, ts, indexSpace, instance, partition
, reorgLastTime, rebuildLastTime
)
, i as
(
select r.*
from i2
join oa1p.tqz007GbGrIxSTats r
on i2.loadTS is not null and r.state <> 'd'
and i2.rz = r.rz
and i2.dbSys = r.dbSys
and i2.dbName = r.dbName
and i2.ts = r.ts
and i2.indexSpace= r.indexSpace
and i2.instance = r.instance
and i2.partition = r.partition
and i2.loadTs = r.loadTS
)
select rz, dbSys, dbName, ts, indexSpace
, substr(tsTy
|| case when tsClone = 'N' and instance=1 and tsInst=1 then ''
else case when instance=tsInst then 'b' else 'c' end
|| instance end, 1, 3) "yci"
, substr(case when partition = 0 and tsParts = 0 then ''
else case when partition is null then ' ---'
when partition = 0 then ' npi'
when partition = 0 and tsTy = 'G' then ' pbg'
when partition = 0 then ' ???'
else right(' ' || partition, 4)
end
||'/'|| value(right(' '|| tsParts, 4),'----')
end, 1, 9) "part/ tot"
-- , smallInt(partition) part
, substr(fosFmte7(real(nActive) * ixPgSz * 1024), 1, 7) used
, substr(fosFmte7(totalEntries), 1, 7) rows
, substr(name, 1, 30) "index"
, updateStatsTime, i.*
from i
order by rz, dbSys, dbName, ts, indexSpace, instance, partition
, loadTs desc
;
}¢--- A540769.WK.SQL(GBGRSCHH) cre=2013-08-28 mod=2014-07-30-10.04.10 A540769 ---
-- history der gbGrenzen Schwellwerte
with u as
(
select * from oa1p.TQZ008GBGRSCHWELLE
union all select * from oa1p.TQZ008GBGRSCHWHist
)
, v as
(
select max(date(rowBegin), validBegin) begin
, min(date(rowEnd), validEnd) end
, u.*
from u
)
, w as
(
select * from v where begin < end
)
select * from w
where dbSys = 'DBOF'
order by dbSys, db, ts, part, tsTy, dsMin, rz, begin desc
;x;
select *
from oa1p.TQZ008GBGRSCHWELLE
for system_time as of '2014-01-01-00.00.00'
;x;
}¢--- A540769.WK.SQL(GBGRSCHW) cre=2014-07-23 mod=2016-08-23-15.24.11 A540769 ---
select *
from oa1p.TQZ008GBGRSCHWHIST
where dbSys = 'DBOF' and db = '%' and dsMin = 16
order by validbegin desc
;x;
-- überprüfte
-- welche s
--
--
set current path oa1p;
select tsTy || case when ix = ' --ts--' then ' ts' else ' ix' end tsTy
, substr(fosFmte7(limGb), 1, 7) "limGb"
, substr(fosFmte7(real(limGb / 100 * schwelle)), 1, 7) "schwGb"
, schwelle
, count(*) count
, min(schwInfo) schwInfoMin
, max(schwInfo) schwInfoMax
from OA1P.vQZ006GbGrenze
where -- actGb > real(limGb / 100 * schwelle)
db like '%'
and db <> 'DSNDB01' -- directory ist anders
and rz = 'RZ2' and dbSys = 'DBOF'
group by tsTy || case when ix = ' --ts--' then ' ts' else ' ix' end
, limGb, schwelle
order by 1, schwelle desc, limGb desc
}¢--- A540769.WK.SQL(GBGRSCRR) cre=2014-10-10 mod=2014-10-10-09.36.25 A540769 ---
-- GBGrenze Schwellen von RZ2 nach RR2 kopieren
-- nach jedem PTA Aufbau|
--
-- 1) alte RR2 Schwellen bekommen validEnd = current date
-- 2) aktive RZ2 Schwellen werden für RR2 kopiert
-- mit validEnd = max(validEnd, current date + 100 days)
--
-- also: wenn im RR2 Bereinigungsaktionen durchgeführt,
-- müssen dort die Schwellen angepasst werden |
--
-- Achtung: Rollback am Ende auf Commit ändern, wenn getestet
--
select substr(db, 1, 8) "db"
, substr(ts, 1, 8) "ts"
, substr(tsTy
|| case when tsClone = 'N' and inst=1 and tsInst=1 then ''
else case when inst=tsInst then 'b' else 'c' end
|| inst end, 1, 3) "yci"
, substr(ix, max(1, length(ix) - 7), 8) "...index"
, substr(case when part = 0 and tsParts = 0 then ''
else case when part is null then ' ---'
when part = 0 and ix <> ' --ts--' then ' npi'
when part = 0 and tsTy = 'G' then ' pbg'
when part = 0 then ' ???'
else right(' ' || part, 4)
end
||'/'|| value(right(' '|| tsParts, 4),'----')
end, 1, 9) "part/ tot"
, substr(right(case when actGB < 1000
then ' ' || dec(round(actGb, 2), 6, 2)
else ' ' || int(round(actGb, 0))
end, 7), 1, 7) "usedGB"
, substr(right(case when limGb/100*schwelle < 1000
then ' ' || dec(round(limGb/100*schwelle, 2), 6, 2)
else ' ' || int(round(limGb/100*schwelle, 0))
end, 7), 1, 7) "schwGB"
, substr(right(' ' || schwelle, 5), 1, 5) "schw%"
, substr(right(' ' || int(round(limGb)), 6), 1, 6) "limGB"
, date(updStats) "lastUpdate"
, substr(schwinfo, 23, 18) "schwellwert key"
, g.*
from OA1P.vQZ006GbGrenze g
where actGb > real(limGb / 100 * schwelle)
-- and updStats > current timestamp - 21 days
-- db like 'MF%' -- and ts = 'A115A'
-- db = 'SN01A1P' and ts = 'A202A'
and db <> 'DSNDB01' -- directory ist anders
and rz = 'RR2' and dbSys = 'DBOF'
order by db, ts, inst, ix, part
;
--
-- db = Datenbank
-- ts = Tablespace
-- yci = ts type oder s=Segmented,i=Simple p=PartitionedClassic,
-- clone und Instance (falls geKlont)
-- part/ tot = betroffene PartitionsNummer / Total Partitonen des ts
-- ...index = index oder --ts--
-- usedGB = aktuelle benutzter Platz in GB
-- schwGB = Schwellwert in GB
-- schw% = Schwellwert in Prozent der Limite
-- limGB = physische Limite in GB
-- lastUpdate = letzter update aus RealTimeStats
-- Schwellwert key = key des Schwellwerts in oa1p.tqz008GbGrSchwelle
update OA1P.TQZ008GBGRSCHWELLE
set validEnd = current date
where rz = 'RR2'
and prio >= 0
and validEnd > current date
;
insert into OA1P.TQZ008GBGRSCHWELLE
( PRIO
, RZ
, DBSYS
, DB
, TS
, PART
, TSTY
, DSMIN
, SCHWELLE
, VALIDBEGIN
, VALIDEND
, ERFASSER
, GRUSE
, GRUND
)
select PRIO
, 'RR2' RZ
, DBSYS
, DB
, TS
, PART
, TSTY
, DSMIN
, SCHWELLE
, VALIDBEGIN
, max(VALIDEND, current date + 100 days)
, ERFASSER
, GRUSE
, GRUND
from OA1P.TQZ008GBGRSCHWELLE
where rz = 'RZ2'
and prio >= 0
and validEnd > current date
;
select substr(db, 1, 8) "db"
, substr(ts, 1, 8) "ts"
, substr(tsTy
|| case when tsClone = 'N' and inst=1 and tsInst=1 then ''
else case when inst=tsInst then 'b' else 'c' end
|| inst end, 1, 3) "yci"
, substr(ix, max(1, length(ix) - 7), 8) "...index"
, substr(case when part = 0 and tsParts = 0 then ''
else case when part is null then ' ---'
when part = 0 and ix <> ' --ts--' then ' npi'
when part = 0 and tsTy = 'G' then ' pbg'
when part = 0 then ' ???'
else right(' ' || part, 4)
end
||'/'|| value(right(' '|| tsParts, 4),'----')
end, 1, 9) "part/ tot"
, substr(right(case when actGB < 1000
then ' ' || dec(round(actGb, 2), 6, 2)
else ' ' || int(round(actGb, 0))
end, 7), 1, 7) "usedGB"
, substr(right(case when limGb/100*schwelle < 1000
then ' ' || dec(round(limGb/100*schwelle, 2), 6, 2)
else ' ' || int(round(limGb/100*schwelle, 0))
end, 7), 1, 7) "schwGB"
, substr(right(' ' || schwelle, 5), 1, 5) "schw%"
, substr(right(' ' || int(round(limGb)), 6), 1, 6) "limGB"
, date(updStats) "lastUpdate"
, substr(schwinfo, 23, 18) "schwellwert key"
, g.*
from OA1P.vQZ006GbGrenze g
where actGb > real(limGb / 100 * schwelle)
-- and updStats > current timestamp - 21 days
-- db like 'MF%' -- and ts = 'A115A'
-- db = 'SN01A1P' and ts = 'A202A'
and db <> 'DSNDB01' -- directory ist anders
and rz = 'RR2' and dbSys = 'DBOF'
order by db, ts, inst, ix, part
;
commit
;
rollback
;
select *
from OA1P.TQZ008GBGRSCHWELLE
where rz = 'RR2'
and prio >= 0
and validEnd > current date
}¢--- A540769.WK.SQL(GBGRSEL) cre=2013-08-26 mod=2016-10-26-08.39.40 A540769 ---
set current path oa1p;
select substr(fqzfmtBin7(1024.0 * pgSize * nPages), 1, 7) used
, substr(fqzfmtBin7(1024.0 * pgSize * nActive), 1, 7) spc
, dbName, name, partition
, a.*
from OA1P.TQZ006GBGRTsSTATS a
where rz = 'RZ2' and dbSys = 'DVBP'
-- and name = 'SFJ30011'
-- and dbname = 'XBFJ3001'
-- and partition = 24
and validBegin <= current timestamp
and validEnd > current timestamp
order by real(pgSize) * max(value(abs(nActive), 0)
, value(abs(nPages), 0)) desc
-- order by validBegin desc
-- fetch first 100 rows only
with ur
;x;
where dbname = 'ND01A1P' and tsName = 'IND003A1'
and dsNum in (0,4)
;x;
select rz, dbSys, dbName, indexSpace, creator, name, partition
, min(validBegin) validBegin, min(updatestatsTime) updateStats
, LOADRLASTTIME, REBUILDLASTTIME, REORGLASTTIME
from OA1P.TQZ007GBGRIxSTATS a
where rz = 'RZ2' and dbSys = 'DBOF'
and name = 'VTXINSTRFLATDATA1'
and dbname = 'VV21A1P'
-- and real(pgSize) * nActive > 20000000
-- and partition = 41
-- and validBegin >= current timestamp - 1000 days
-- and validEnd > current timestamp
group by rz, dbSys, dbName, indexSpace, creator, name, partition
, LOADRLASTTIME, REBUILDLASTTIME, REORGLASTTIME
order by 7, 8 desc
-- fetch first 5 rows only
; xx
set current path oa1p;
select -- rz, dbSys, dbName, count(*) parts--, sum(real(nActive)) pages
partition, updateStatsTime
, substr(fqzfmtBin7(1024.0 * pgSize * nPages), 1, 7) used
, substr(fqzfmtBin7(1024.0 * pgSize * nActive), 1, 7) spc
, substr(fqzfmtE7(reorgDeletes), 1, 7) deletes
, reorgLastTime
, substr(fqzfmtE7(totalRows), 1, 7) rows
, 1024.0 * pgSize * nPages / max(1, totalRows) rowBy
, a.*
from OA1P.TQZ006GBGRTsSTATS a
where rz = 'RZ2' and dbSys = 'DBOF'
-- and name = 'VTXINSTRFLATDATA1'
and dbname = 'VV21A1P'
-- and real(pgSize) * nActive > 20000000
-- and partition = 41
-- and validBegin >= current timestamp - 1000 days
-- and validEnd > current timestamp
-- group by rz, dbSys, rollup(dbName)
order by rz,dbSYs, dbName, name, partition, validBegin desc
fetch first 5 rows only
; xx
select * from plan_view1
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
with ur
;
rollback
;;;;
order by dbName, name, partition, validBegin desc ;x;
and current timestamp between validBegin and validEnd
group by rz, dbSys
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
set current application compatibility 'V11R1';
select *
from OA1P.TQZ007GBGRIXSTATS a
where rz = 'RZ2' and dbSys = 'DBOF'
and dbName = 'FI04A1P' and ts = 'A060A'
order by dbName, ts, name, partition, validBegin desc ;x;
select *
from OA1P.TQZ006GBGRTSSTATS a
where rz = 'RZ2' and dbSys = 'DBOF'
and dbName = 'FI04A1P' and name = 'A060A'
order by dbName, name, partition, validBegin desc ;x;
and current timestamp between validBegin and validEnd
group by rz, dbSys
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3 for
with s as
(
select sum(real(nActive) * pgSize * 1024) actB
, count(*) parts
, count(distinct rz ||'/'|| dbSys ||':'|| dbName ||'.'|| name) ts
, count(distinct rz ||'/'|| dbSys ||':'|| dbName ) db
from OA1P.TQZ006GBGRTSSTATS a
where rz = 'RZ2' and dbSys = 'DBOF'
and dbName like 'MF%'
and current timestamp between validBegin and validEnd
group by rz, dbSys
)
select * from s
;
explain plan set queryno = 7 for
with d (d, l) as
(
select current timestamp, 0 from sysibm.sysDummy1
union all select d- 7 days, l+1 from d where l < 1
)
, s as
(
select sum(real(nActive) * pgSize * 1024) actB
, count(*) parts
, count(distinct rz ||'/'|| dbSys ||':'|| dbName ||'.'|| name) ts
, count(distinct rz ||'/'|| dbSys ||':'|| dbName ) db
from OA1P.TQZ006GBGRTSSTATS, d
where rz = 'RZ2' and dbSys = 'DBOF'
and dbName like 'MF%'
and d >= validBegin
and d < validEnd
group by d, rz, dbSys
)
select * from s
;
explain plan set queryno = 9 for
with d (d, l) as
(
select current timestamp, 0 from sysibm.sysDummy1
union all select d- 7 days, l+1 from d where l < 1
)
, s as
(
select sum(real(nActive) * pgSize * 1024) actB
, count(*) parts
, count(distinct rz ||'/'|| dbSys ||':'|| dbName ||'.'|| name) ts
, count(distinct rz ||'/'|| dbSys ||':'|| dbName ) db
from OA1P.TQZ006GBGRTSSTATS a, d
where rz = 'RZ2' and dbSys = 'DBOF'
and dbName like 'MF%'
and d + 0 seconds between validBegin and validEnd
group by d, rz, dbSys
)
select * from s
;
explain plan set queryno = 13 for
with d (d, l) as
(
select current timestamp, 0 from sysibm.sysDummy1
union all select d- 7 days, l+1 from d where l < 1
)
, s as
(
select 0 l
, sum(real(nActive) * pgSize * 1024) actB
, count(*) parts
, count(distinct rz ||'/'|| dbSys ||':'|| dbName ||'.'|| name) ts
, count(distinct rz ||'/'|| dbSys ||':'|| dbName ) db
from OA1P.TQZ006GBGRTSSTATS a
where rz = 'RZ2' and dbSys = 'DBOF'
and dbName like 'MF%'
and validBegin <= (select d from d where l = 0)
and validEnd > (select d from d where l = 0)
group by rz, dbSys
)
select * from s
;
explain plan set queryno = 22 for
with s ( l,d, actB, parts, tss, dbs) as
(
select 0, current timestamp
, sum(real(nActive) * pgSize * 1024)
, count(*)
, count(distinct rz ||'/'|| dbSys ||':'|| dbName ||'.'|| name)
, count(distinct rz ||'/'|| dbSys ||':'|| dbName )
from OA1P.TQZ006GBGRTSSTATS a
where rz = 'RZ2' and dbSys = 'DBOF'
-- and dbName like 'MF%'
and validBegin <= current timestamp
and validEnd > current timestamp
group by rz, dbSys
union all select 1, current timestamp - 7 days
, sum(real(nActive) * pgSize * 1024)
, count(*)
, count(distinct rz ||'/'|| dbSys ||':'|| dbName ||'.'|| name)
, count(distinct rz ||'/'|| dbSys ||':'|| dbName )
from OA1P.TQZ006GBGRTSSTATS
where rz = 'RZ2' and dbSys = 'DBOF'
-- and dbName like 'MF%'
and validBegin <= current timestamp - 7 days
and validEnd > current timestamp - 7 days
group by rz, dbSys
)
select * from s
;
select * from plan_view1
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
with ur
;
select * from dsn_predicat_table
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo -- , orderNo, mixOpSeqNo
with ur
;
rollback
;;;;
with s as
(
select sum(real(nActive) * pgSize * 1024) actB
, count(*) parts
, count(distinct rz ||'/'|| dbSys ||':'|| dbName ||'.'|| name) ts
, count(distinct rz ||'/'|| dbSys ||':'|| dbName ) db
from OA1P.TQZ006GBGRTSSTATS a
where rz = 'RZ2' and dbSys = 'DBOF'
and dbName like 'MF%'
and current timestamp between validBegin and validEnd
group by rz, dbSys
)
select * from s
;
select lastDataChange
, oa1p.fQzFmtBin2(actB) act
, dbName, name, partition
, s.*
from s
where actB > 12e9
order by value(lastDataChange, '2015-04-15-00.00.00') desc
, dbName, name, partition
fetch first 1000 rows only
with ur
;x;
with s as
(
select rz, dbSys, date(validBegin) val, date(updateSTatsTime) updStats
from OA1P.TQZ007GBGRIXSTATS a
where rz = 'RR2' and validBegin > current timestamp - 35 days
)
select rz, dbSys, val, updStats, count(*)
from s
group by rz, dbSys, val, updStats
order by 1,2,3 desc, 4 desc
;x;
select rz, dbSys, loadTs, count(*)
, min(updateStatsTime) updateStats, max(updateStatsTime)
, min(validBegin) validBegin, max(validBegin)
, min(validEnd) validEnd, max(validEnd)
, min(dbName || '.' || name || '#' || partition)
from OA1P.TQZ007GBGRIXSTATS a
where rz = 'RZ2' and validBegin > current timestamp - 15 days
group by rz, dbSys, loadTs
order by 1,2,3 desc
;x;
select count(*), state
from OA1P.TQZ006GBGRTSHJJJ
group by state
;x
select rz, dbSys, loadTs, count(*)
, min(dbName || '.' || name || '#' || partition)
from OA1P.TQZ007GBGRIXNew a
group by rz, dbSys, loadTs
order by 1,2,3,4 desc
;x;
select rz, dbSys, dbName, name, partition,instance
, validBegin, validEnd, updateStatsTime, loadTs, o.*
from OA1P.TQZ006GBGRTSNew o
where rz = 'RR2' and dbSys = 'DP2G' -- and dbName = 'MF01A1P'
and validBegin > '2016-01-07-00.00.00'
-- and name = 'A311A'
order by 7 desc
-- order by 1, 2, 3, 4, 5, 6, 7 desc
;x;
select rz, dbSys, dbName, name, partition,instance
, validBegin, validEnd, updateStatsTime, loadTs, n.*
from OA1P.TQZ006GBGRTSNew n
where rz = 'RZZ' and dbSys = 'DE0G' and dbName = 'MF01A1P'
and name = 'A311A'
order by 1, 2, 3, 4, 5, 6, 7 desc
;x;
select rz, dbSys, dbName, name, partition,instance
, max(validBegin)
from OA1P.TQZ006GBGRTSNew n
group by rz, dbSys, dbName, name, partition,instance
order by 1, 2, 3, 4, 5, 6, 7 desc
;x;
set current path oa1p;
select rz, dbSys, state, loadTs, count(*)
, min(dbName || '.' || name || '#' || partition)
from OA1P.TQZ007GBGRIXSTATS a
where rz = 'RZ2' and updatestatsTime > current timestamp - 3 days
group by rz, dbSys, state, loadTs
order by 1,2,3,4 desc
;x;
update
sysibm.sysTableSpaceStats
set npages = 600000
, totalRows = 6000000
where dbName = 'QZ01A1P' and name = 'A007A' and partition = 2
;
select *
from sysibm.sysTableSpaceStats
where dbName = 'QZ01A1P' and name = 'A006A' and partition = 2
;
commit
;x;
select count(*)
from OA1P.TQZ007GBGRIXSTATS a
where rz = '?'
;x;
select rz, dbSys, state, loadTs, count(*)
, min(dbName || '.' || name || '#' || partition)
from OA1P.TQZ006GBGRTSSTATS a
where rz = 'RZZ' and updatestatsTime > current timestamp - 2 days
group by rz, dbSys, state, loadTs
order by 1,2,3,4 desc
;x;
select dbName, name, partition
, fosFmte7(real(real(nActive) * pgSize / 1048576)) actGB
, updatestatstime, totalRows, nActive
, a.*
from OA1P.TQZ006GBGRTSSTATS a
where rz = 'RZ2' and dbSys = 'DVBP'
and dbName = 'XBDG6002'
and name = 'SDG60063'
-- and partition = 7
order by partition, updatestatstime desc
;x;
select count(*), rz, dbSys, max(updateStatsTime) upd, max(loadTs)
from OA1P.TQZ006GBGRTSSTATS a
where rz = 'RR2' and loadTs > current timestamp - 20 days
and updateStatsTIme > current timestamp - 20 days
group by rz, dbSys, loadTs
order by 2, 3, 4 desc
;x;
select *
from OA1P.TQZ006GBGRTSSTATS a
where rz = 'RZ2' and dbSys = 'DVBP' and dbName = 'XBFJ3002'
and name = 'SFJ30022' and partition in (11, 14, 19)
;x;
with t2 as
(
select rz, dbSys, dbName, name
, partition, instance
, max(loadTs) loadTs
, max(case when loadTs > '2015-05-18-00.00.00'
then null else loadTs end) loadBef
from OA1P.TQZ006GBGRTSSTATS a
where rz = 'RZ2'
and dbName = 'XC01A1P' and name = 'A501A'
and loadTs < '2015-05-20-00.00.00'
group by rz, dbSys, dbName, name, partition, instance
)
select a.*
from t2 join OA1P.TQZ006GBGRTSSTATS a
on a.rz = t2.rz and a.dbSys = t2.dbSys
and a.dbName = t2.dbName and a.name = t2.name
and a.instance = t2.instance and a.partition = t2.partition
and a.loadTs in ( t2.loadTs, t2.loadBef)
order by t2.rz, t2.dbSys, t2.dbName, t2.name
, t2.instance, t2.partition, a.loadTs desc
;x;
, t as
(
select t.rz, t.dbSys, t.dbName, t.Name, min(t.tsTy) tsTy
, smallInt(t.partition * t.limPart) partition
, t.instance
, min(t.limGb) limGb
, min(t.parts) parts
, min(t.clone) clone
, min(t.tsInst) tsInst
, real(sum(real(t.nActive) * t.pgSize / 1048576)) actGB
from OA1P.TQZ006GBGRTSSTATS t join t2 a
select *
from oa1p.tqz006gbgrTsStats
where rz = 'RZ2'
and dbName = 'XC01A1P' and name = 'A501A'
and loadTs >= '2015-05-01-00.00.00'
order by loadTs desc
;x;
select count(*) c, rz, dbSys, loadTs
from oa1p.tqz006gbgrTsStats
where rz = 'RZ2'
and loadTs >= '2015-02-22-00.00.00'
group by rz, dbSys, loadTs
order by rz, dbSys, loadTs
;x;
select date(loadTs), max(updateStatsTime)
from oa1p.tqz006gbgrtsStats
where rz = 'RR2' and dbSys = 'DBOF'
-- and dbName = 'WB11A1P'
-- and name = 'A704A'
-- and partition = 343
-- and loadTs >= '2014-12-01-00.00.00'
group by date(loadTs)
order by 1 desc
;x;
order by rz, dbSys, dbName, name, partition, updatestatstime desc
;x;
with d as
(
select count(*) c, rz, dbSys, dbName
from oa1p.tqz007gbgrixStats
where rz = 'RZZ' and loadTs >= '2014-07-16-00.00.00'
group by rz, dbSys, dbName
)
select sum(c) over(partition by rz, dbSys
order by dbName
)
, d.*
from d
order by rz, dbSys, dbName
;x;
select count(*), rz, dbSys, loadTs
from oa1p.tqz006gbgrtsStats
where rz <> '?'
group by rz, dbSys, loadTs
order by rz, dbSys, loadTs desc
;x;
with t2 as
(
select rz, dbSys, dbName, name
, partition, instance, max(loadTs) loadTs
from OA1P.TQZ006GBGRTSSTATS a
group by rz, dbSys, dbName, name, partition, instance
)
, t as
(
select t.rz, t.dbSys, t.dbName, t.Name, min(t.tsTy) tsTy
, smallInt(t.partition * t.limPart) partition
, t.instance
, min(t.limGb) limGb
, min(t.parts) parts
, min(t.clone) clone
, min(t.tsInst) tsInst
, real(sum(real(t.nActive) * t.pgSize / 1048576)) actGB
from OA1P.TQZ006GBGRTSSTATS t join t2 a
on t.rz = a.rz
and t.dbSys = a.dbSys
and t.dbName = a.dbName
and t.Name = a.Name
and t.partition = a.partition
and t.instance = a.instance
and t.loadTS = a.loadTs
group by t.rz, t.dbSys, t.dbName, t.Name
, smallInt(t.partition * t.limPart)
, t.instance
)
, i2 as
(
select rz, dbSys, dbName, ts, indexSpace
, partition, instance, max(loadTs) loadTs
from OA1P.TQZ007GbGrIxSTATS a
group by rz, dbSys, dbName, ts, indexSpace, partition, instance
)
, i as
(
select i.*
, real(real(nActive) * ixPgSz / 1048576) actGB
from OA1P.TQZ007GBGRIxSTATS i join i2 a
on i.rz = a.rz
and i.dbSys = a.dbSys
and i.dbName = a.dbName
and i.ts = a.ts
and i.indexSpace= a.indexSpace
and i.partition = a.partition
and i.instance = a.instance
and i.loadTS = a.loadTs
)
, u (limGb, actGb, db, ts, ix, part, inst, rz, dbSys
, tsTy, tsLimGb, tsParts, tsClone, tsInst) as
(
select limGb, actGb, dbName, name, ' --ts--'
, partition, instance, rz, dbSys
, tsTy, limGb, parts, clone , tsInst
from t
union all select limGb, actGb, dbName, ts , name
, partition, instance, rz, dbSys
, tsTy, tslimGb, tsParts, tsClone, tsInst
from i
)
, s as
(
select u.*
, (select max(info) from oa1p.tqz008GbGrSchweExp e
where e.rz = u.rz and e.dbSys = u.dbSys
and left(e.db , e.dbLen) = left(u.db , e.dbLen)
and left(e.ts , e.tsLen) = left(u.ts , e.tsLen)
and e.part in(u.part, 0)
and e.tsTy in (u.tsTy, ' ')
and e.dsMin <= u.tslimGB
and validBegin <= current date
and validEnd > current date
) schwInfo
from u
)
, v as
(
select int(case when schwInfo is not null
then int(substr(schwInfo, 16, 6))
else raise_error(70001, 'schwelle null ts='
|| db || '.' || ts || '#' || part)
end) schwelle
, s.*
from s
-- order by db, ts, part, ix
)
select substr(db, 1, 8) "db"
, substr(ts, 1, 8) "ts"
, substr(ix, max(1, length(ix) - 7), 8) "...index"
, substr(case when part = 0 and tsParts = 0 then ''
else case when part = 0 then ' npi'
else value(right(' ' || part, 4), '----') end
||'/'|| value(right(' '||strip(char(tsParts)), 4),'----')
end, 1, 9) "part/ tot"
, substr(right(case when actGB < 1000
then ' ' || dec(round(actGb, 2), 6, 2)
else ' ' || int(round(actGb, 0))
end, 7), 1, 7) "usedGB"
, substr(right(case when limGb/100*schwelle < 1000
then ' ' || dec(round(limGb/100*schwelle, 2), 6, 2)
else ' ' || int(round(limGb/100*schwelle, 0))
end, 7), 1, 7) "schwGB"
, substr(right(' ' || schwelle, 5), 1, 5) "schw%"
, substr(right(' ' || int(round(limGb)), 6), 1, 6) "limGB"
, tsTy "y"
, substr(schwinfo, 23) "schwellwert key"
from v
where -- actGb > real(limGb / 100 * schwelle)
db like 'MF01%'
and db <> 'DSNDB01' -- directory ist anders
and rz = 'RZ2' and dbSys = 'DBOF'
order by db, ts, ix, part, ix
;x;
select *
from OA1P.TQZ007GBGRixSTATS a
where rz = 'RZ2' and dbSys = 'DBOF' and dbName = 'MF01A1P'
and name like 'IMF150A%'
;x;
select count(*), date(loadTs)
from oa1p.tqz006gbgrtsStats
-- where rz = 'RZ2'
group by date(loadTs)
order by date(loadTs) desc
;x;
insert into oa1p.tqz006GbGrTsStats
(state, rz, dbSys, dbName, name, partition, instance
, pgSize, tsType, nTables, parts, maxParts, dsSize
, segSize, tsTy, dsGB, clone, tsInst, tbCr, tb, tbTy, tbId
, dbid, obid, psid, ibmReqD
, updateStatsTime)
with s as
(
select row_number()
over (partition by dbName, name, partition, instance
order by loadDt desc, updateStatsTime desc) rn
, s.*
from oa1p.tqz006GbGrTsStats s
where rz = 'RZ4' and dbSys = 'DP4G' and state <> 'd'
fetch first 100 rows only
)
select 'd', rz, dbSys, dbName, name, partition, instance
, pgSize, tsType, nTables, parts, maxParts, dsSize
, segSize, tsTy, dsGB, clone, tsInst, tbCr, tb, tbTy, tbId
, dbid, obid, psid, ibmReqD
, (select max(updateStatsTime)
from oa1p.tqz006GbGrTsStats n
where n.rz = '?' and n.dbSys = '?'
)
from s
where rn = 1
and not exists (select 1
from oa1p.tqz006GbGrTsStats n
where n.rz = '?' and n.dbSys = '?'
and n.dbName = s.dbName
and n.Name = s.Name
and n.partition = s.partition
and n.instance = s.instance
)
;
commit
;x;
with s as (
select
s.pgSize, s.type tsType, s.nTables
, s.partitions parts, s.maxPartitions maxParts, s.dsSize
, s.segsize
, char(value(case
when s.type <> ' ' then s.type
when partitions > 0 and segsize = 0 then 'p' -- classic part
when partitions = 0 and segsize = 0 then 'i' -- simple
when partitions = 0 and segsize > 0 then 's' -- segmented
else raise_error(70101, 'unknown ts type='||s.type
|| ' partitions=' || strip(char(partitions))
|| ' segsize=' || strip(char(segsize))
|| ' db.ts=' || strip(s.dbName) ||'.'||s.name)
end, '?'), 1) tsTy
, smallInt(value(case
when dssize <> 0 then int(dssize / 1048576)
when s.type in ('G', 'O', 'P', 'R', 'L') then 4
when partitions = 0 then 64
when partitions > 254 then pgSize
when partitions > 64 then 4
when partitions > 32 then 1
when partitions > 16 then 2
else 4
end, -99)) dsGB
, s.obid, s.clone, s.instance tsInst
, value(t.creator, '') tbCr
, value(t.name, case when nTables = 0 then 'none'
when nTables > 1 then 'multi'
else 'missing' end) tb
, value(t.type, '') tbTy
, smallint(value(t.obId, 0)) tbId
, r.*
from sysibm.sysTableSpaceStats r
join sysibm.sysTablespace s
on r.dbName = s.dbName and r.name = s.name
and r.dbId = s.dbId and r.psid = s.psid
left join sysibm.sysTables t
on s.nTables = 1
and t.dbName = s.dbName and t.tsName = s.name
and ( (t.type not in ('A', 'V', 'C', 'G')
and s.instance = r.instance)
or (t.type = 'C' and s.instance <> r.instance))
)
select dbName, name, partition, instance, count(*)
from s
group by dbName, name, partition, instance
order by 5 desc
;x;
select rz, dbSys, count(*)
from oa1p.tQz006GbGrTsMeta
group by rz, dbSys
;x;
select *
from S100447.tGbGrSchwelle
;
select *
from S100447.tGbGrSchwHist
}¢--- A540769.WK.SQL(GBGRSEXB) cre=2016-03-14 mod=2016-03-14-17.25.59 A540769 ---
set current path oa1p;
select substr(t.dbName, 1, 8) db
, substr(t.Name, 1, 8) ts
, smallint(partition) part
, lastDataChange lastCha
, fQzFmtbin7(real(t.nActive) * t.pgSize * 1024) actUsed
from OA1P.TQZ006GBGRTSSTATS t
where current timestamp >= validBegin
and current timestamp < validEnd
and rz = 'RZ2' and dbSys = 'DVBP'
and dbName like 'XB%'
and lastDataChange >= '2016-01-01-00.00.00'
order by real(t.nActive) * t.pgSize desc
fetch first 100 rows only
}¢--- A540769.WK.SQL(GBGRSPC) cre=2014-10-09 mod=2016-07-07-16.19.10 A540769 ---
set current path oa1p;
select row_number() over ( order by max(value(real(nPages), 0)
, value(nActive, 0.)) * pgSize desc ) rn
, substr(fqzFmtbin7(real(t.nPages ) * t.pgSize * 1024)
, 1, 7) used
, substr(fqzFmtbin7(real(t.nActive) * t.pgSize * 1024)
, 1, 7) alloc
, substr(fosFmte7(totalRows), 1, 7) rows
, partition
, substr(tb, 1, 20) tb
, tsType, dbName, name, lastDataChange
, t.*
from oa1p.tqz006GbGrTsSTats t
where rz = 'RZ2' and dbSys = 'DVBP'
and current timestamp >= validBegin
and current timestamp < validEnd
-- and dbName = 'SN01A1P' and name = 'A202A'
-- and loadTs > current timestamp - 1 month
order by 1
fetch first 1000 rows only
;x;
-- table Space und Details History / Zeitreihe
set current path oa1p;
with d (d,l) as
(
select current date, 0
from sysibm.sysDummy1
union all select d - 3 days, l+1
from d
where l < 999999 and d >= current date - 1 months
)
, t1 as
(
select rz, dbSys, dbName, name, instance, partition
from oa1p.tqz006GbGrTsSTats
where rz = 'RZ2' and dbSys = 'DBOF'
and dbName like 'NI%'
and name like 'A250%'
group by rz, dbSys, dbName, name, instance, partition
)
, t2 as
(
select d.d, t1.*, (select max(loadTs) from oa1p.tqz006GbGrTsSTats r
where t1.rz = r.rz and t1.dbSys = r.dbSys
and t1.dbName = r.dbName
and t1.name = r.name
and t1.instance = r.instance
and t1.partition = r.partition
and loadTs < timestamp(d.d + 1 day)
) loadTs
from t1, d
)
, t as
(
select d, r.*
from t2
join oa1p.tqz006GbGrTsSTats r
on t2.loadTS is not null and r.state <> 'd'
and t2.rz = r.rz
and t2.dbSys = r.dbSys
and t2.dbName = r.dbName
and t2.name = r.name
and t2.instance = r.instance
and t2.partition = r.partition
and t2.loadTs = r.loadTS
)
select rz, dbSys, dbName, name
, substr(case when tsTy <> '' then tsTy else tsType end
|| case when clone in ('N', '?') and instance=1 and tsInst=1
then ''
else case when instance=tsInst then 'b' else 'c' end
|| instance end, 1, 3) "yci"
, substr(case when partition = 0 and parts = 0 then ''
else case when partition is null then ' ---'
when partition = 0 and tsTy = 'G' then ' pbg'
when partition = 0 then ' ???'
else right(' ' || partition, 4)
end
||'/'|| value(right(' '|| parts, 4),'----')
end, 1, 9) "part/ tot"
-- , smallInt(partition) part
, d
, substr(fosFmte7(real(nActive) * pgSize * 1024), 1, 7) used
, substr(fosFmte7(totalRows), 1, 7) rows
, substr(tb, 1, 30) "table"
, updateStatsTime, t.*
from t
order by rz, dbSys, dbName, name, instance, partition
, d desc
;
}¢--- A540769.WK.SQL(GBGRSPCI) cre=2014-07-30 mod=2014-12-10-10.44.49 A540769 ---
-- index space und Details für 1 StichDatum
set current path oa1p;
with i2 as
(
select rz, dbSys, dbName, ts, indexSpace, instance, partition
, max(loadTs) loadTs
from oa1p.tqz007GbGrIxSTats
where rz = 'RZZ' and dbSys = 'DE0G'
and dbName = 'FI04A1P' and ts like 'A026%'
and loadTs <= timestamp(current date + 1 day)
group by rz, dbSys, dbName, ts, indexSpace, instance, partition
)
, i as
(
select r.*
from i2
join oa1p.tqz007GbGrIxSTats r
on i2.loadTS is not null and r.state <> 'd'
and i2.rz = r.rz
and i2.dbSys = r.dbSys
and i2.dbName = r.dbName
and i2.ts = r.ts
and i2.indexSpace= r.indexSpace
and i2.instance = r.instance
and i2.partition = r.partition
and i2.loadTs = r.loadTS
)
select rz, dbSys, dbName, ts, indexSpace
, substr(tsTy
|| case when tsClone = 'N' and instance=1 and tsInst=1 then ''
else case when instance=tsInst then 'b' else 'c' end
|| instance end, 1, 3) "yci"
, substr(case when partition = 0 and tsParts = 0 then ''
else case when partition is null then ' ---'
when partition = 0 then ' npi'
when partition = 0 and tsTy = 'G' then ' pbg'
when partition = 0 then ' ???'
else right(' ' || partition, 4)
end
||'/'|| value(right(' '|| tsParts, 4),'----')
end, 1, 9) "part/ tot"
-- , smallInt(partition) part
, substr(fosFmte7(real(nActive) * ixPgSz * 1024), 1, 7) used
, substr(fosFmte7(totalEntries), 1, 7) rows
, substr(name, 1, 30) "index"
, updateStatsTime, i.*
from i
order by rz, dbSys, dbName, ts, indexSpace, instance, partition
;
}¢--- A540769.WK.SQL(GBGRSPCS) cre=2014-07-30 mod=2015-09-07-11.04.06 A540769 ---
-- summe space/rows, ts/ix 1 StichDatum
set current path oa1p;
set current application compatibility 'V11R1';
with t1 as --- Stichdatum und Paritionen TS ---------------------------
(
select current date d
, rz, dbSys, dbName db, name ts
, instance inst, partition pa
from oa1p.tqz006GbGrTsSTats
where rz = 'RZ2' and dbSys = 'DBOF'
and dbName like 'M%'
-- and name in ('SDPM0122'
-- )
-- and name like 'A150H%'
group by rz, dbSys, dbName, name, instance, partition
)
, t2 as --- neuesten loadTs am oder vor d suchen
(
select t1.*, (select loadTs from oa1p.tqz006GbGrTsSTats r
where t1.RZ = r.rz and t1.dbSys = r.dbSys
and t1.db = r.dbName
and t1.tS = r.name
and t1.inst = r.instance
and t1.pa = r.partition
and r.loadTs < timestamp(t1.d + 1 day)
order by loadTs desc
fetch first 1 row only
) tLoa
from t1
)
, t as --- join tsStats if not dropped --------------------------------
(
select t2.rz, t2.dbSys, t2.db --, t2.ts
, sum(max(0, value(real(nActive) * pgSize * 1024, 0))) tUsed
, sum(max(real(value(space, 0))
, value(real(space) * pgSize, 0)
, 0)) * 1024 tSpace
, sum(max(value(totalRows, 0), 0)) tRows
, sum(case when r.dbName is null then 0 else 1 end) tParts
, count(*) tCnt
, max(value(tLoa, '1111-11-11-11.11.11')) tLoa
, max(value(updateStatsTime, '1111-11-11-11.11.11')) tUpdStats
from t2
left join oa1p.tqz006GbGrTsSTats r
on t2.tLoa is not null
and r.state is not null and r.state = 'a'
and t2.rz = r.rz
and t2.dbSys = r.dbSys
and t2.db = r.dbName
and t2.ts = r.name
and t2.inst = r.instance
and t2.pa = r.partition
and t2.tLoa = r.loadTS
group by t2.rz, t2.dbSys, t2.db --, t2.ts
)
, i2 as --- find all index parts and newest loadTs before dt ---------
(
select q.d, q.rz, q.dbSys, q.db, q.ts
, r.indexSpace is, r.instance inst, r.partition pa
, max(loadTS) iLoa
from ( select d, rz, dbSys, db, ts
from t1
group by d, rz, dbSys, db, ts
) q
join oa1p.tqz007GbGrIxSTats r
on q.rz = r.rz and q.dbSys = r.dbSys
and q.db = r.dbName and q.ts = r.ts
and r.loadTs < timestamp(q.d + 1 day)
group by q.d, q.rz, q.dbSys, q.db, q.ts
, r.indexSpace, r.instance, r.partition
)
, i as --- join ixStats if not dropped ------------------------------
(
select i2.rz, i2.dbSys, i2.db--, i2.ts
, sum(max(0, value(real(nActive) * ixPgSz * 1024, 0))) iUsed
, sum(max(real(value(space, 0))
, value(real(space) * ixPgSz, 0)
, 0)) * 1024 iSpace
, sum(max(value(totalEntries, 0), 0)) iRows
, sum(case when r.dbName is null then 0 else 1 end) iParts
, count(*) iCnt
, max(value(iLoa, '1111-11-11-11.11.11')) iLoa
, max(value(updateStatsTime, '1111-11-11-11.11.11')) iUpdStats
from i2
left join oa1p.tqz007GbGrIxSTats r
on i2.iLoa is not null
and r.state is not null and r.state = 'a'
and i2.rz = r.rz
and i2.dbSys = r.dbSys
and i2.db = r.dbName
and i2.ts = r.ts
and i2.is = r.indexSpace
and i2.inst = r.instance
and i2.pa = r.partition
and i2.iLoa = r.loadTS
group by i2.rz, i2.dbSys, i2.db--, i2.ts
)
, u as
(
select rz, dbSys, db--, ts
, tUsed, tSpace, tRows
, tParts, tCnt, tLoa, tUpdStats
, 0 iUsed, 0 iSpace, 0 iRows
, 0 iParts, 0 iCnt
, cast('1111-11-11-11.11.11' as timestamp) iLoa
, cast('1111-11-11-11.11.11' as timestamp) iUpdStats
from t
union all select rz, dbSys, db--, ts
, 0 tUsed, 0 tSpace, 0 tRows
, 0 tParts, 0 tCnt
, cast('1111-11-11-11.11.11' as timestamp) tLoa
, cast('1111-11-11-11.11.11' as timestamp) tUpdStats
, iUsed, iSpace, iRows
, iParts, iCnt, iLoa, iUpdStats
from i
)
, g as
(
select rz, dbSys, db--, ts
, sum(tUsed) tUsed, sum(tSpace) tSpace, sum(tRows) tRows
, sum(tParts) tParts, sum(tCnt) tCnt
, max(tLoa) tLoa, max(tUpdStats) tUpdStats
, sum(iUsed) iUsed, sum(iSpace) iSpace, sum(iRows) iRows
, sum(iParts) iParts, sum(iCnt) iCnt
, max(iLoa) iLoa, max(iUpdStats) iUpdStats
from u
group by grouping sets ( rollup (rz, dbSys, db--, ts
) )
)
select rz, dbSys, db--, ts
, substr(fosFmtE7(tUsed+iUsed), 1, 7) "used"
, substr(fosFmtE7(tUsed), 1, 7) "tUsed"
, substr(fosFmtE7(tSpace), 1, 7) "tSpace"
, substr(fosFmtE7(tRows), 1, 7) "tRows"
, tParts
, substr(fosFmtE7(iUsed), 1, 7) "iUsed"
, substr(fosFmtE7(iSpace), 1, 7) "iSpace"
, substr(fosFmtE7(iRows), 1, 7) "iRows"
, iParts
, tCnt, tLoa, tUpdStats
, iCnt, iLoa, iUpdStats
from g
where tParts + iParts <> 0
}¢--- A540769.WK.SQL(GBGRSPCT) cre=2014-07-30 mod=2015-09-07-19.39.39 A540769 ---
-- table Space und Details für 1 StichDatum
set current path oa1p;
with t2 as --- Partition und neuesten loadTS --------------------------
(
select rz, dbSys, dbName, name, instance, partition
, max(loadTs) loadTs
from oa1p.tqz006GbGrTsSTats
where rz = 'RZ2' and dbSys = 'DVBP'
-- and dbName = 'MF01A1P' and name like 'A150%'
and loadTs <= timestamp(current date + 1 day)
group by rz, dbSys, dbName, name, instance, partition
)
, t as --- join tsStats, falls nicht dropped --------------------------
(
select r.*
from t2
join oa1p.tqz006GbGrTsSTats r
on t2.loadTS is not null and r.state <> 'd'
and t2.rz = r.rz
and t2.dbSys = r.dbSys
and t2.dbName = r.dbName
and t2.name = r.name
and t2.instance = r.instance
and t2.partition = r.partition
and t2.loadTs = r.loadTS
)
select rz, dbSys, dbName, name
, substr(case when tsTy <> '' then tsTy else tsType end
|| case when clone in ('N', '?') and instance=1 and tsInst=1
then ''
else case when instance=tsInst then 'b' else 'c' end
|| instance end, 1, 3) "yci"
, substr(case when partition = 0 and parts = 0 then ''
else case when partition is null then ' ---'
when partition = 0 and tsTy = 'G' then ' pbg'
when partition = 0 then ' ???'
else right(' ' || partition, 4)
end
||'/'|| value(right(' '|| parts, 4),'----')
end, 1, 9) "part/ tot"
-- , smallInt(partition) part
, substr(fosFmte7(real(nActive) * pgSize * 1024), 1, 7) used
, substr(fosFmte7(totalRows), 1, 7) rows
, substr(tb, 1, 30) "table"
-- , updateStatsTime, t.*
from t
-- order by rz, dbSys, dbName, name, instance, partition
order by rz, dbSys, real(nActive) * pgSize * 1024 desc
fetch first 500 rows only
;
}¢--- A540769.WK.SQL(GBGRSPDS) cre=2014-08-19 mod=2015-09-02-12.08.32 A540769 ---
set current path oa1p;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
set current path oa1p;
explain plan set queryno = 22 for
-- difference space/rows, ts/ix zwischen 2 Daten
with d (d,l) as
(
select current date, 0
from sysibm.sysDummy1
union all select d - 31 days, l+1
from d
where l < 999999 and d >= current date - 1 day
)
, t2 as
(
select d, rz, dbSys, dbName, name, instance, partition
, max(loadTs) loadTs
from oa1p.tqz006GbGrTsSTats join d
on loadTs < timestamp(d.d + 1 day)
where rz = 'RZ2' and dbSys = 'DBOF'
-- and dbName like 'M%'
-- and name in ( 'A150A', 'A007A')
group by d, rz, dbSys, dbName, name, instance, partition
)
, t2x as
(
select d.d, t1.*, (select max(loadTs) from oa1p.tqz006GbGrTsSTats r
where t1.rz = r.rz and t1.dbSys = r.dbSys
and t1.dbName = r.dbName
and t1.name = r.name
and t1.instance = r.instance
and t1.partition = r.partition
and loadTs < timestamp(d.d + 1 day)
) loadTs
from t1, d
)
, g (rz, dbSys, db, d, tsUsed, rows, cParts, cTs) as
(
select t2.rz, t2.dbSys, t2.dbName , d
, sum(value(real(nActive) * pgSize * 1024, 0))
, sum(value(totalRows, 0))
, count(*) , count(distinct t2.name)
from t2 join oa1p.tqz006GbGrTsSTats r
on -- r.state <> 'd'
t2.rz = r.rz
and t2.dbSys = r.dbSys
and t2.dbName = r.dbName
and t2.name = r.name
and t2.instance = r.instance
and t2.partition = r.partition
and t2.loadTs = r.loadTS
group by t2.rz, t2.dbSys, t2.dbName, d
)
, j as
(
select value(h.rz, v.rz) rz
, value(h.dbSys, v.dbSys) dbSys
, value(h.db, v.db) db
, value(h.tsUsed, 0) - value(v.tsUsed, 0) diff
, h.tsUsed hUsed
, v.tsUsed vUsed
, h.rows hRows
, v.rows vRows
from (select * from g where d = current date) h
full outer join
(select * from g where d = current date - 31 days) v
on h.rz = v.rz and h.dbSys = v.dbSys and h.db = v.db
)
select rz, dbSys, db
, fosFmte7(diff) diff
, fosFmte7(hUsed) hUsed
, fosFmte7(vUsed) vUsed
, fosFmte7(hRows) vRows
, fosFmte7(vRows) vRows
from j
order by rz, dbSys, diff desc
;
explain plan set queryno = 44 for
-- difference space/rows, ts/ix zwischen 2 Daten
with d (d,l) as
(
select current date, 0
from sysibm.sysDummy1
union all select d - 20 days, l+1
from d
where l < 999999 and d >= current date - 1 day
)
, t1 as
(
select rz, dbSys, dbName, name, instance, partition
from oa1p.tqz006GbGrTsSTats
where rz = 'RZ2' and dbSys = 'DBOF'
and dbName like 'MF%'
-- and name in ( 'A150A', 'A007A')
group by rz, dbSys, dbName, name, instance, partition
)
, t2 as
(
select d.d, t1.*, (select max(loadTs) from oa1p.tqz006GbGrTsSTats r
where t1.rz = r.rz and t1.dbSys = r.dbSys
and t1.dbName = r.dbName
and t1.name = r.name
and t1.instance = r.instance
and t1.partition = r.partition
and loadTs < timestamp(d.d + 1 day)
) loadTs
from t1, d
)
, g (rz, dbSys, db, d, tsUsed, rows, cParts, cTs) as
(
select t2.rz, t2.dbSys, t2.dbName , d
, sum(real(nActive) * pgSize * 1024)
, sum(totalRows)
, count(*) cParts, count(distinct t2.name)
from t2 join oa1p.tqz006GbGrTsSTats r
on r.state <> 'd'
and t2.rz = r.rz
and t2.dbSys = r.dbSys
and t2.dbName = r.dbName
and t2.name = r.name
and t2.instance = r.instance
and t2.partition = r.partition
and t2.loadTs = r.loadTS
group by t2.rz, t2.dbSys, t2.dbName, d
)
select * from g
;
select * from plan_view1
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
with ur
;
rollback
;;;;
;x;
, i1 as
(
select rz, dbSys, dbName, ts, indexSpace, instance, partition
from oa1p.tqz007GbGrIxSTats
where (rz, dbSys, dbName, ts, instance) in
(select rz, dbSys, dbName, name, instance
from t1)
group by rz, dbSys, dbName, ts, indexSpace, instance, partition
)
, i2 as
(
select d.d, i1.*, (select max(loadTs) from oa1p.tqz007GbGrIxSTats r
where i1.rz = r.rz and i1.dbSys = r.dbSys
and i1.dbName = r.dbName
and i1.ts = r.ts
and i1.instance = r.instance
and i1.indexSpace = r.indexSpace
and i1.partition = r.partition
and loadTs < timestamp(d.d + 1 day)
) loadTs
from i1, d
)
, i as
(
select d, r.*
from i2
join oa1p.tqz007GbGrIxSTats r
on i2.loadTS is not null and r.state <> 'd'
and i2.rz = r.rz
and i2.dbSys = r.dbSys
and i2.dbName = r.dbName
and i2.ts = r.ts
and i2.indexSpace= r.indexSpace
and i2.instance = r.instance
and i2.partition = r.partition
and i2.loadTs = r.loadTS
)
, u as
(
select rz, dbSys, dbName db, name ts, ' -- ts' is
, instance, partition, d
, real(nActive) * pgSize * 1024 tsUsed
, totalRows tsRows
, 1 tsParts
, cast(null as real) ixUsed
, cast(null as bigInt ) ixEntries
, loadTs, updateStatsTime
, 0 ixParts
from t
union all
select rz, dbSys, dbName db, ts, indexSpace is
, instance, partition, d
, cast(null as real) tsUsed
, cast(null as bigInt ) tsRows
, 0 tsParts
, real(nActive) * ixPgSz * 1024 ixUsed
, totalEntries ixEntries
, loadTs, updateStatsTime
, 1 ixParts
from i
)
, g as
(
select rz, dbSys, db, ts, instance, partition
, d
, (sum(tsUsed)) tsUsed
, (sum(tsRows)) tsRows
, sum(tsParts) tsParts
, (sum(ixUsed)) ixUsed
, (sum(ixEntries)) ixEntries
, sum(ixParts) ixParts
, max(loadTs) loadTsMax
, max(updateStatsTime) updateStatsMax
, min(loadTs) loadTsMin
, min(updateStatsTime) updateStatsMin
from u
group by rz, dbSys, db, ts, instance, partition
, d
)
, j as
(
select a.rz, a.dbSys, a.db, a.ts, a.instance, a.partition
, a.d ad, o.d od
, a.tsUsed - o.tsUsed tsUsed
, a.tsRows - o.tsRows tsRows
, a.tsParts
, a.ixUsed - o.ixUsed ixUsed
, a.ixEntries - o.ixEntries ixEntries
, a.ixParts
, a.loadTsMax aLoadTsMax, o.loadTsMax oLoadTsMax
, a.updateStatsMax aUpdateStatsMax
, o.updateStatsMax oUpdateStatsMax
from g a join g o
on a.rz = o.rz and a.dbSys = o.dbSys and a.db = o.db and a.ts = o.ts
and a.instance = o.instance and a.partition = o.partition
and o.d < current date
where a.d = current date
)
select rz, dbSys, db, ts, instance, partition
, ad, od
, fosFmtE7((tsUsed)) tsUsed
, fosFmtE7((tsRows)) tsRows
, (tsParts) atsParts
, fosFmtE7((ixUsed)) ixUsed
, fosFmtE7((ixEntries)) ixEntries
, (ixParts) aixParts
, aLoadTsMax, oLoadTsMax
, aUpdateStatsMax
, oUpdateStatsMax
from j
order by (tsUsed + ixUsed) desc
}¢--- A540769.WK.SQL(GBGRSPDT) cre=2015-09-07 mod=2015-09-24-08.19.27 A540769 ---
-- table Space Vergleich von 2 Daten
-- summiert (und rollup) über rz, dbSys, db
--
set current path oa1p;
set current application compatibility 'V11R1';
with p as --- select partitions, new and old date ---------------------
(
select -- date('13.07.2015') new
current date new
-- , date('19.06.2015') old
, current date - 3 month old
, rz, dbSys, dbName db, name ts, instance inst, partition pa
from oa1p.tqz006GbGrTsSTats t
where rz = 'RZ2' and dbSys = 'DBOF'
-- and dbName like 'MF0%'
group by rz, dbSys, dbName, name, instance, partition
)
, k as --- loadTs Keys for new and old -------------------------------
(
select rz, dbSys, db, ts, inst, pa
, ( select r.loadTs from oa1p.tqz006GbGrTsSTats r
where p.rz = r.rz and p.dbSys = r.dbSys
and p.db = r.dbName
and p.ts = r.name
and p.inst = r.instance
and p.pa = r.partition
and loadTs < timestamp(p.new + 1 day)
order by loadTs desc
fetch first 1 row only
) nLoa -- new loadTs
, ( select r.loadTs from oa1p.tqz006GbGrTsSTats r
where p.rz = r.rz and p.dbSys = r.dbSys
and p.db = r.dbName
and p.ts = r.name
and p.inst = r.instance
and p.pa = r.partition
and loadTs < timestamp(p.old + 1 day)
order by loadTs desc
fetch first 1 row only
) oLoa -- old loadTs
from p
)
,
t as --- left join old and new statsRow, if active (not dropped) ---
(
select k.rz, k.dbSys, k.db, k.ts, k.inst, k.pa, k.nLoa, k.oLoa
, case when n.dbName is null then 0 else 1 end nCnt
, real(value(n.totalRows, 0)) nRows
, value(real(n.nActive) * n.pgSize * 1024, 0 ) nUsed
, case when o.dbName is null then 0 else 1 end oCnt
, real(value(o.totalRows, 0)) oRows
, value(real(o.nActive) * o.pgSize * 1024, 0 ) oUsed
from k
left join oa1p.tqz006GbGrTsSTats n
on k.rz = n.rz and k.dbSys = n.dbSys
and k.db = n.dbName and k.ts = n.name
and k.inst = n.instance and k.pa = n.partition
and k.nLoa = n.loadTs
and n.state = 'a' and nLoa is not null
left join oa1p.tqz006GbGrTsSTats o
on k.rz = o.rz and k.dbSys = o.dbSys
and k.db = o.dbName and k.ts = o.name
and k.inst = o.instance and k.pa = o.partition
and k.oLoa = o.loadTs
and o.state = 'a' and oLoa is not null
-- where n.dbName is not null or o.dbName is not null
)
, g as --- group rollup by db -----------------------------------------
(
select rz, dbSys, db
, count(*) cnt
, sum(nCnt) nCnt
, sum(oCnt) oCnt
, sum(nRows) nRows
, sum(oRows) oRows
, sum(nUsed) nUsed
, sum(oUsed) oUsed
from t
group by rollup (rz, dbSys, db)
) --- übersichtlich darstellen
select rz, dbSys, db
, substr(fosFmte7(nUsed-oUsed), 1, 7) "usedDiff"
, substr(fosFmte7(nUsed), 1, 7) "nUsed"
, substr(fosFmte7(oUsed), 1, 7) "oUsed"
, substr(fosFmte7(nRows), 1, 7) "nRows"
, substr(fosFmte7(oRows), 1, 7) "oRows"
, substr(fosFmte7(cnt), 1, 7) "cnt"
, substr(fosFmte7(nCnt), 1, 7) "nCnt"
, substr(fosFmte7(oCnt), 1, 7) "oCnt"
from g
--where nCnt + oCnt > 0
order by case when db is null then 0 else 1 end, nUsed desc
fetch first 300 rows only
;
}¢--- A540769.WK.SQL(GBGRSPHC) cre=2014-08-20 mod=2014-08-20-15.13.53 A540769 ---
-- table Space und Details History / Zeitreihe
set current path oa1p;
with d (d,l) as
(
select date('31.12.2014'), 0
from sysibm.sysDummy1
union all select d - 1 year, l+1
from d
where l < 999999 and d >= current date - 4 years
)
, t1 as
(
select rz, dbSys, dbName, name, instance, partition
from oa1p.tqz006GbGrTsSTats
-- where rz = 'RZ2' and dbSys = 'DBOF'
-- and dbName like 'XR%'
-- and name like 'A250%'
group by rz, dbSys, dbName, name, instance, partition
)
, t2 as
(
select d.d, t1.*, (select max(loadTs) from oa1p.tqz006GbGrTsSTats r
where t1.rz = r.rz and t1.dbSys = r.dbSys
and t1.dbName = r.dbName
and t1.name = r.name
and t1.instance = r.instance
and t1.partition = r.partition
and loadTs < timestamp(d.d + 1 day)
) loadTs
from t1, d
)
, t as
(
select d, r.*
from t2
join oa1p.tqz006GbGrTsSTats r
on t2.loadTS is not null and r.state <> 'd'
and t2.rz = r.rz
and t2.dbSys = r.dbSys
and t2.dbName = r.dbName
and t2.name = r.name
and t2.instance = r.instance
and t2.partition = r.partition
and t2.loadTs = r.loadTS
)
, g as
(
select rz, dbSys, d
, count(distinct dbName) cDb
, count(distinct strip(dbName) || '.' || strip(name)) cTs
, count(*) cPart
, sum(real(nActive) * pgSize * 1024) used
, sum(totalRows) rows
, max(loadTs) loadMax
, min(loadTs) loadMin
, max(updateStatsTime) updMax
, min(updateStatsTime) updMin
from t
group by rz, dbSys, d
)
, g1 as
(
select rz, '*' dbSys, d
, sum(cDb) cDb, sum(cTs) cTs, sum(cPart) cPart
, sum(used) used, sum(rows) rows
, max(loadMax) loadMax, min(loadMin) loadMin
, max(updMax) updMax, min(updMin) updMin
from g
group by rz, d
)
, u as
(
select * from g
union all select * from g1
)
select rz, dbSys, date(loadMax) loadMax, cDb, cTs, cPart
, int(round(used, 0) / 1024 / 1024 / 1024) "usedGB"
, int(round(rows, 0) / 1000000) "rowsM"
-- , d
-- , date(loadMax) loadMax, date(loadMin) loadMin
-- , date(updMax) updMax, date(updMin) updMin
from u
order by case when dbSys = '*' then 0 else 1 end, rz, dbSys, d desc
;
}¢--- A540769.WK.SQL(GBGRSPHI) cre=2014-07-30 mod=2016-06-23-10.54.45 A540769 ---
-- index space und Details History / Zeitreihe
set current path oa1p;
select rz, dbSys, dbName, ts, indexSpace
, substr(tsTy
|| case when tsClone = 'N' and instance=1 and tsInst=1 then ''
else case when instance=tsInst then 'b' else 'c' end
|| instance end, 1, 3) "yci"
, substr(case when partition = 0 and tsParts = 0 then ''
else case when partition is null then ' ---'
when partition = 0 then ' npi'
when partition = 0 and tsTy = 'G' then ' pbg'
when partition = 0 then ' ???'
else right(' ' || partition, 4)
end
||'/'|| value(right(' '|| tsParts, 4),'----')
end, 1, 9) "part/ tot"
, smallInt(partition) part
, substr(fosFmte7(real(nActive) * ixPgSz * 1024), 1, 7) used
, substr(fosFmte7(totalEntries), 1, 7) rows
, substr(name, 1, 30) "index"
, updateStatsTime, i.*
from oa1p.tqz007GbGrIxSTats i
where rz = 'RR2' and dbSys = 'DBOF'
and dbName = 'DI05A1P' and ts like 'A044%'
order by rz, dbSys, dbName, ts, indexSpace, instance, partition
, validEnd desc
; x;
with dR (d,l) as --- Zeitreihe ----------------------------------------
(
select current date, 0
from sysibm.sysDummy1
union all select d - 3 days, l+1
from dR
where l < 999999 and d >= current date - 1 months
)
, d as --- optimizer muss wissen dass kleine Zeitreihe ... ------------
(
select * from dR fetch first 100 rows only
)
, i1 as --- index Partitionen auswählen -------------------------------
(
select rz, dbSys, dbName, ts, indexSpace, instance, partition
from oa1p.tqz007GbGrIxSTats
where rz = 'RZ2' and dbSys = 'DBOF'
and dbName = 'MF01A1P' and ts like 'A150%'
group by rz, dbSys, dbName, ts, indexSpace, instance, partition
)
, i2 as --- neueste loadTS für jedes Datut d ---------------------------
(
select d.d, i1.*, (select max(loadTs) from oa1p.tqz007GbGrIxSTats r
where i1.rz = r.rz and i1.dbSys = r.dbSys
and i1.dbName = r.dbName
and i1.ts = r.ts
and i1.instance = r.instance
and i1.indexSpace = r.indexSpace
and i1.partition = r.partition
and loadTs < timestamp(d.d + 1 day)
) loadTs
from i1, d
)
, i as --- join ixStats falls nicht geDropT ---------------------------
(
select d, r.*
from i2
join oa1p.tqz007GbGrIxSTats r
on i2.loadTS is not null and r.state <> 'd'
and i2.rz = r.rz
and i2.dbSys = r.dbSys
and i2.dbName = r.dbName
and i2.ts = r.ts
and i2.indexSpace= r.indexSpace
and i2.instance = r.instance
and i2.partition = r.partition
and i2.loadTs = r.loadTS
)
select rz, dbSys, dbName, ts, indexSpace
, substr(tsTy
|| case when tsClone = 'N' and instance=1 and tsInst=1 then ''
else case when instance=tsInst then 'b' else 'c' end
|| instance end, 1, 3) "yci"
, substr(case when partition = 0 and tsParts = 0 then ''
else case when partition is null then ' ---'
when partition = 0 then ' npi'
when partition = 0 and tsTy = 'G' then ' pbg'
when partition = 0 then ' ???'
else right(' ' || partition, 4)
end
||'/'|| value(right(' '|| tsParts, 4),'----')
end, 1, 9) "part/ tot"
-- , smallInt(partition) part
, d
, substr(fosFmte7(real(nActive) * ixPgSz * 1024), 1, 7) used
, substr(fosFmte7(totalEntries), 1, 7) rows
, substr(name, 1, 30) "index"
, updateStatsTime, i.*
from i
order by rz, dbSys, dbName, ts, indexSpace, instance, partition
, d desc
;
}¢--- A540769.WK.SQL(GBGRSPHO) cre=2014-08-20 mod=2015-09-07-16.21.10 A540769 ---
-- History Anzahl Objekte
-- Anzahl DBs, TSs, Parts etc. Zeitreihe
set current path oa1p;
set current application compatibility 'V11R1';
with dR (d,l) as --- Zeitreihe ----------------------------------------
(
select date(trunc_timestamp(current timestamp + 1 year, 'yy')
- 1 day), 0
from sysibm.sysDummy1
union all select d - 1 year, l+1
from dR
where l < 9 -- and d >= current date - 4 years
)
, d as --- optimizier soll wissen, dass kleine Zeitreihe --------------
(
select * from dR fetch first 20 rows only
)
, t1 as --- table Partitionen selektieren -----------------------------
(
select rz, dbSys, dbName, name, instance, partition
from oa1p.tqz006GbGrTsSTats
where rz = 'RZ2'-- and dbSys = 'DBOF'
-- and dbName like 'XR%'
-- and name like 'A250%'
group by rz, dbSys, dbName, name, instance, partition
)
, t2 as --- neuesten loadTS pro Datum d selektieren -------------------
(
select d.d, t1.*, (select loadTs from oa1p.tqz006GbGrTsSTats r
where t1.rz = r.rz and t1.dbSys = r.dbSys
and t1.dbName = r.dbName
and t1.name = r.name
and t1.instance = r.instance
and t1.partition = r.partition
and loadTs < timestamp(d.d + 1 day)
order by loadTs desc
fetch first 1 rows only
) loadTs
from t1, d
)
, t as --- tsStats joinen falls nicht geDropT -------------------------
(
select d, r.*
from t2
join oa1p.tqz006GbGrTsSTats r
on t2.loadTS is not null and r.state = 'a'
and t2.rz = r.rz
and t2.dbSys = r.dbSys
and t2.dbName = r.dbName
and t2.name = r.name
and t2.instance = r.instance
and t2.partition = r.partition
and t2.loadTs = r.loadTS
)
, g as --- objekte und Platz summieren --------------------------------
(
select rz, dbSys, d
, count(distinct dbName) cDb
, count(distinct strip(dbName) || '.' || strip(name)) cTs
, count(*) cPart
, sum(real(nActive) * pgSize * 1024) used
, sum(totalRows) rows
, max(loadTs) loadMax
, min(loadTs) loadMin
, max(updateStatsTime) updMax
, min(updateStatsTime) updMin
from t
group by d, rollup (rz, dbSys)
)
select d, rz, dbSys, cDb, cTs, cPart
, int(round(used, 0) / 1024 / 1024 / 1024) "usedGB"
, int(round(rows, 0) / 1000000) "rowsM"
, date(loadMax) loadMax, date(loadMin) loadMin
, date(updMax) updMax, date(updMin) updMin
from g
order by value(rz, ''), value(dbSys, ''), d desc
;
}¢--- A540769.WK.SQL(GBGRSPHS) cre=2014-07-30 mod=2016-06-09-10.21.08 A540769 ---
set current path oa1p;
with d (d,l) as
(
select timestamp(date(trunc_timestamp(
current timestamp + 1 month, 'mon') - 1 day)), 0
from sysibm.sysDummy1
union all select ((d + 1 day) - 3 month) - 1 day, l+1
from d
where l < 999999 and d >= current timestamp - 10 years
)
, t as
(
select d.d, r.*
from oa1p.tqz006GbGrTsSTats r join d
on d.d >= r.validBegin and d.d < r.validEnd
where rz = 'RZ2' and dbSys = 'DBOF'
and dbName = 'NI03A1P'
and name = 'A250A04'
-- and partition = 91
)
select rz, dbSys, dbName db, name ts -- , instance, partition
, d -- , max(date(loadTs)) maxLoad
, fosFmtE7(sum(real(nActive) * pgSize * 1024))
, fosFmtE7(sum(totalRows)) tsRows
, count(*) tsParts
from t
group by rz, dbSys, dbName, name -- , instance, partition
, d
order by rz, dbSys, dbName, name --, instance, partition
, d desc
;x;
?
with d (d,l) as
(
select date(trunc_timestamp(
current timestamp + 1 month, 'mon') - 1 day), 0
from sysibm.sysDummy1
union all select ((d + 1 day) - 1 month) - 1 day, l+1
from d
where l < 999999 and d >= current date - 400 day
)
, t1 as
(
select rz, dbSys, dbName, name, instance, partition
from oa1p.tqz006GbGrTsSTats
where rz = 'RZ2' and dbSys = 'DBOF'
and dbName = 'NI03A1P'
and name = 'A250A04'
-- and partition = 91
group by rz, dbSys, dbName, name, instance, partition
)
, t2 as
(
select d.d, t1.*, (select max(loadTs) from oa1p.tqz006GbGrTsSTats r
where t1.rz = r.rz and t1.dbSys = r.dbSys
and t1.dbName = r.dbName
and t1.name = r.name
and t1.instance = r.instance
and t1.partition = r.partition
and loadTs < timestamp(d.d + 1 day)
) loadTs
from t1, d
)
, t as
(
select d, r.*
from t2
join oa1p.tqz006GbGrTsSTats r
on t2.loadTS is not null and r.state <> 'd'
and t2.rz = r.rz
and t2.dbSys = r.dbSys
and t2.dbName = r.dbName
and t2.name = r.name
and t2.instance = r.instance
and t2.partition = r.partition
and t2.loadTs = r.loadTS
)
, i1 as
(
select rz, dbSys, dbName, ts, indexSpace, instance, partition
from oa1p.tqz007GbGrIxSTats
where (rz, dbSys, dbName, ts, instance) in
(select rz, dbSys, dbName, name, instance
from t1)
group by rz, dbSys, dbName, ts, indexSpace, instance, partition
)
, i2 as
(
select d.d, i1.*, (select max(loadTs) from oa1p.tqz007GbGrIxSTats r
where i1.rz = r.rz and i1.dbSys = r.dbSys
and i1.dbName = r.dbName
and i1.ts = r.ts
and i1.instance = r.instance
and i1.indexSpace = r.indexSpace
and i1.partition = r.partition
and loadTs < timestamp(d.d + 1 day)
) loadTs
from i1, d
)
, i as
(
select d, r.*
from i2
join oa1p.tqz007GbGrIxSTats r
on i2.loadTS is not null and r.state <> 'd'
and i2.rz = r.rz
and i2.dbSys = r.dbSys
and i2.dbName = r.dbName
and i2.ts = r.ts
and i2.indexSpace= r.indexSpace
and i2.instance = r.instance
and i2.partition = r.partition
and i2.loadTs = r.loadTS
)
, u as
(
select rz, dbSys, dbName db, name ts, ' -- ts' is
, instance, partition, d
, real(nActive) * pgSize * 1024 tsUsed
, totalRows tsRows
, 1 tsParts
, cast(null as real) ixUsed
, cast(null as bigInt ) ixEntries
, loadTs, updateStatsTime
, 0 ixParts
from t
union all
select rz, dbSys, dbName db, ts, indexSpace is
, instance, partition, d
, cast(null as real) tsUsed
, cast(null as bigInt ) tsRows
, 0 tsParts
, real(nActive) * ixPgSz * 1024 ixUsed
, totalEntries ixEntries
, loadTs, updateStatsTime
, 1 ixParts
from i
)
select rz, dbSys, db, ts, instance, partition
, d, max(date(loadTs)) maxLoad
, fosFmtE7(sum(tsUsed)) tsUsed
, fosFmtE7(sum(tsRows)) tsRows
, sum(tsParts) tsParts
, fosFmtE7(sum(ixUsed)) ixUsed
, fosFmtE7(sum(ixEntries)) ixEntries
, sum(ixParts) ixParts
, max(loadTs) loadTsMax
, max(updateStatsTime) updateStatsMax
, min(loadTs) loadTsMin
, min(updateStatsTime) updateStatsMin
from u
group by rz, dbSys, db, ts, instance, partition
, d
order by rz, dbSys, db, ts, instance, partition
, d desc
}¢--- A540769.WK.SQL(GBGRSPHT) cre=2014-07-30 mod=2016-06-23-08.01.40 A540769 ---
set current path oa1p;
set current path oa1p;
select rz, dbSys, dbName, name
, substr(case when tsTy <> '' then tsTy else tsType end
|| case when clone in ('N', '?') and instance=1 and tsInst=1
then ''
else case when instance=tsInst then 'b' else 'c' end
|| instance end, 1, 3) "yci"
, substr(case when partition = 0 and parts = 0 then ''
else case when partition is null then ' ---'
when partition = 0 and tsTy = 'G' then ' pbg'
when partition = 0 then ' ???'
else right(' ' || partition, 4)
end
||'/'|| value(right(' '|| parts, 4),'----')
end, 1, 9) "part/ tot"
-- , smallInt(partition) part
, fqzFmtBin7(real(nActive) * pgSize * 1024) used
, substr(fosFmte7(totalRows), 1, 7) rows
, substr(tb, 1, 30) "table"
, updateStatsTime
, validBegin, validEnd
, t.*
from oa1p.tqz006GbGrTsSTats t
where rz = 'RR2' and dbSys = 'DBOF'
and dbName = 'DI05A1P'
and name = 'A044A'
-- and partition = 139
order by rz, dbSys, dbName, name, instance, partition
, validBegin desc
;x;
with d (d,l) as --- Zeitreihe ----------------------------------------
(
select timestamp(current date, '12:00:00'), 0
from sysibm.sysDummy1
union all select d - 1 month, l+1
from d
where l < 1 and d >= current timestamp - 33 months
)
, t as --- ts partitionen selektieren --------------------------------
(
select dbName db, count(*) parts,
sum(real(nActive) * nActive * pgSize * 1024)
from oa1p.tqz006GbGrTsSTats t join d d
on d >= validBegin and d < validEnd
where rz = 'RZ2' and dbSys = 'DBOF'
and dbName like 'DI05A1P%' A044A
and name = 'A044A'
-- and partition = 16
)
select rz, dbSys, dbName, name
, substr(case when tsTy <> '' then tsTy else tsType end
|| case when clone in ('N', '?') and instance=1 and tsInst=1
then ''
else case when instance=tsInst then 'b' else 'c' end
|| instance end, 1, 3) "yci"
, substr(case when partition = 0 and parts = 0 then ''
else case when partition is null then ' ---'
when partition = 0 and tsTy = 'G' then ' pbg'
when partition = 0 then ' ???'
else right(' ' || partition, 4)
end
||'/'|| value(right(' '|| parts, 4),'----')
end, 1, 9) "part/ tot"
-- , smallInt(partition) part
, date(d)
, fqzFmtBin7(real(nActive) * pgSize * 1024) used
, substr(fosFmte7(totalRows), 1, 7) rows
, substr(tb, 1, 30) "table"
, updateStatsTime
, validBegin, validEnd
, t.*
from t
order by rz, dbSys, dbName, name, instance, partition
, d desc
;x
select rz, dbSys, dbName, name
, substr(case when tsTy <> '' then tsTy else tsType end
|| case when clone in ('N', '?') and instance=1 and tsInst=1
then ''
else case when instance=tsInst then 'b' else 'c' end
|| instance end, 1, 3) "yci"
, substr(case when partition = 0 and parts = 0 then ''
else case when partition is null then ' ---'
when partition = 0 and tsTy = 'G' then ' pbg'
when partition = 0 then ' ???'
else right(' ' || partition, 4)
end
||'/'|| value(right(' '|| parts, 4),'----')
end, 1, 9) "part/ tot"
-- , smallInt(partition) part
, fqzFmtBin7(real(nActive) * pgSize * 1024) used
, substr(fosFmte7(totalRows), 1, 7) rows
, substr(tb, 1, 30) "table"
, updateStatsTime
, validBegin, validEnd
, t.*
from oa1p.tqz006GbGrTsSTats t
where rz = 'RZ2' and dbSys = 'DBOF'
and dbName = 'KS09A1P'
and name = 'A841A'
-- and partition = 139
order by rz, dbSys, dbName, name, instance, partition
, validBegin desc
;x;
}¢--- A540769.WK.SQL(GBGRSPHX) cre=2014-09-18 mod=2014-09-18-15.49.28 A540769 ---
-- table Space und Details History / Zeitreihe
set current path oa1p;
with d (d,l) as
(
select current date, 0
from sysibm.sysDummy1
union all select d - 3 days, l+1
from d
where l < 999999 and d >= current date - 1 months
)
, t1 as
(
select rz, dbSys, dbName, name, instance, partition
from oa1p.tqz006GbGrTsSTats
where rz = 'RZ2' and dbSys = 'DBOF'
and dbName like 'XC%'
and name like 'A102A%'
group by rz, dbSys, dbName, name, instance, partition
)
, t2 as
(
select d.d, t1.*, (select max(loadTs) from oa1p.tqz006GbGrTsSTats r
where t1.rz = r.rz and t1.dbSys = r.dbSys
and t1.dbName = r.dbName
and t1.name = r.name
and t1.instance = r.instance
and t1.partition = r.partition
and loadTs < timestamp(d.d + 1 day)
) loadTs
from t1, d
)
, t as
(
select d, r.*
from t2
join oa1p.tqz006GbGrTsSTats r
on t2.loadTS is not null and r.state <> 'd'
and t2.rz = r.rz
and t2.dbSys = r.dbSys
and t2.dbName = r.dbName
and t2.name = r.name
and t2.instance = r.instance
and t2.partition = r.partition
and t2.loadTs = r.loadTS
)
select rz, dbSys, dbName, name
-- , smallInt(partition) part
, d
, substr(fosFmte7(sum(real(nActive) * pgSize * 1024)), 1, 7) used
, substr(fosFmte7(sum(totalRows)), 1, 7) rows
from t
group by rz, dbSys, dbName, name, d
order by rz, dbSys, dbName, name
, d desc
;
}¢--- A540769.WK.SQL(GBGRSPHY) cre=2016-05-04 mod=2016-05-04-11.40.47 A540769 ---
set current path oa1p;
set current application compatibility 'V11R1';
with d (d,l) as --- Zeitreihe ----------------------------------------
(
select timestamp(current date, '12:00:00'), 0
from sysibm.sysDummy1
union all select d - 1 month, l+1
from d
where l < 1 and d >= current timestamp - 3 months
)
, t as --- ts partitionen selektieren --------------------------------
(
select d, dbSys, dbName db, count(*) parts,
sum(real(nActive) * pgSize * 1024) used
from oa1p.tqz006GbGrTsSTats t join d d
on d >= validBegin and d < validEnd
where rz = 'RZ2' -- and dbSys = 'DBOF'
-- and dbName like 'MF%'
group by dbSys, dbName, d
)
, j as
(
select value(h.dbSys, o.dbSys) dbSys, value(h.db, o.db) db
, value(h.parts, 0) hParts, value(h.used, 0) hUsed
, value(o.parts, 0) oParts, value(o.used, 0) oUsed
from (select * from t
where d = timestamp(current date, '12:00:00')) h
full outer join
(select * from t
where d < timestamp(current date, '12:00:00')) o
on h.dbSys = o.dbSys and h.db = o.db
)
, g as
(
select dbSys, db
, real(sum(hParts)) hParts
, real(sum(hUsed)) hUsed
, real(sum(oUsed)) oUsed
, sum(oParts) oParts
from j
group by rollup(dbSys, db)
)
select dbSys, db, fqzFmtbin8(hUsed-oUsed) dUsed
, hParts hParts
, fqzFmtbin7(hUsed) "hUsed"
, fqzFmtbin7(oUsed) "oUsed"
, oParts
from g
order by case when db is null then 0 else 1 end
, hUsed - oUsed desc
fetch first 20 rows only
;x;
select dbSys, db, hParts, hUsed, oParts, oUsed from g
order by case when db is null then 0 else 1 end
, hUsed - oUsed desc
;
commit
;
select * from QZ91CRS.tqz91GbGr
order by case when db is null then 0 else 1 end
, hUsed - oUsed desc
fetch first 20 rows only
;
select dbSys, db, fqzFmtbin8(hUsed-oUsed) dUsed
, hParts hParts
, fqzFmtbin7(hUsed) "hUsed"
, fqzFmtbin7(oUsed) "oUsed"
, oParts
from QZ91CRS.tqz91GbGr
order by case when db is null then 0 else 1 end
, hUsed - oUsed desc
fetch first 20 rows only
;x;
select * from QZ91CRS.tqz91GbGr
order by case when db is null then 0 else 1 end
, hUsed - oUsed desc
fetch first 20 rows only
;
insert into QZ91CRS.tqz91GbGr
select hUsed - oUsed dUsed, g.*
from g order by hUsed-oUsed desc fetch first 20 rows only;x;
select rz, dbSys, dbName, name
, substr(case when tsTy <> '' then tsTy else tsType end
|| case when clone in ('N', '?') and instance=1 and tsInst=1
then ''
else case when instance=tsInst then 'b' else 'c' end
|| instance end, 1, 3) "yci"
, substr(case when partition = 0 and parts = 0 then ''
else case when partition is null then ' ---'
when partition = 0 and tsTy = 'G' then ' pbg'
when partition = 0 then ' ???'
else right(' ' || partition, 4)
end
||'/'|| value(right(' '|| parts, 4),'----')
end, 1, 9) "part/ tot"
-- , smallInt(partition) part
, date(d)
, fqzFmtBin7(real(nActive) * pgSize * 1024) used
, substr(fosFmte7(totalRows), 1, 7) rows
, substr(tb, 1, 30) "table"
, updateStatsTime
, validBegin, validEnd
, t.*
from t
order by rz, dbSys, dbName, name, instance, partition
, d desc
;x
select rz, dbSys, dbName, name
, substr(case when tsTy <> '' then tsTy else tsType end
|| case when clone in ('N', '?') and instance=1 and tsInst=1
then ''
else case when instance=tsInst then 'b' else 'c' end
|| instance end, 1, 3) "yci"
, substr(case when partition = 0 and parts = 0 then ''
else case when partition is null then ' ---'
when partition = 0 and tsTy = 'G' then ' pbg'
when partition = 0 then ' ???'
else right(' ' || partition, 4)
end
||'/'|| value(right(' '|| parts, 4),'----')
end, 1, 9) "part/ tot"
-- , smallInt(partition) part
, fqzFmtBin7(real(nActive) * pgSize * 1024) used
, substr(fosFmte7(totalRows), 1, 7) rows
, substr(tb, 1, 30) "table"
, updateStatsTime
, validBegin, validEnd
, t.*
from oa1p.tqz006GbGrTsSTats t
where rz = 'RZ2' and dbSys = 'DBOF'
and dbName = 'KS09A1P'
and name = 'A841A'
-- and partition = 139
order by rz, dbSys, dbName, name, instance, partition
, validBegin desc
;x;
with i (a,b,c) as
(
select 3960775053310., 250118951731000.,246158176678000.
from sysibm.sysDummy1
/* 3960775053310 250118951731000 246158176678000
2933560815620 200616159277000 197682598461000
1381719760900 24496883134500 23115163373600
1024443293700 49329890750500 48305447456800
632297033728 30661107347500 30028810313700
396287913984 7883666837500 7487378923520
239952084992 7154983014400 6915030929410
218987646976 1047364743170 828377096192
155673133056 5515789815810 5360116682750
105193377792 3796042153980 3690848776190
99904651264 3413942181890 3314037530620
97708589056 1035387568130 937678979072
75952566272 1258731061250 1182778494980
64318676992 2348400435200 2284081758210
50143559680 292865777664 242722217984
38754836480 2829956603900 2791201767420
38041886720 1151018463230 1112976576510
33779249152 965668048896 931888799744
32878104576 217535291392 184657186816
32710770688 1238296453120 1205585682430
*/
)
select fqzFmtbin8(a), fqzFmtBin7(b), fqzFmtBin7(c)
from i
;x;
}¢--- A540769.WK.SQL(GBGRSTAT) cre=2016-06-21 mod=2016-07-28-09.47.11 A540769 ---
set current path oa1p;
select rz, dbsys, loadTs, count(*)
from OA1P.TQZ006GBGRTSSTATS t
where rz = 'RQ2' and validEnd > current timestamp - 27 days
and validBegin > current timestamp - 27 days
group by rz, dbsys, loadTs
order by rz, dbsys, loadTs desc
;x;
select *
from OA1P.TQZ006GBGRTSSTATS t
where rz = 'RZ2' and dbSys = 'DE0G'
where validBegin
and dbName = 'NP01A1P' and name = 'A011A'
order by validEnd desc, partition
;x;
}¢--- A540769.WK.SQL(GBGRTO) cre=2016-01-07 mod=2016-01-07-11.29.28 A540769 ----
update oa1p.tqz006GbGrTsNew o
set validEnd = ( select n.validBegin
from oa1p.tqz006GbGrTsNew n
where o.rz = n.rz and o.dbSys = n.dbSys
and o.dbName = n.dbName and o.name = n.name
and o.partition = n.partition
and o.instance = n.instance
and o.validBegin < n.validBegin
and o.validEnd > n.validBegin
order by n.validBegin asc
fetch first 1 row only
)
where rz = 'RZZ' -- and validEnd > '9000-01-01-00.00.00'
and exists
( select 1
from oa1p.tqz006GbGrTsNew n
where o.rz = n.rz and o.dbSys = n.dbSys
and o.dbName = n.dbName and o.name = n.name
and o.partition = n.partition
and o.instance = n.instance
and o.validBegin < n.validBegin
and o.validEnd > n.validBegin
)
;
rollback
;x;
select
( select n.validBegin
from oa1p.tqz006GbGrTsNew n
where o.rz = n.rz and o.dbSys = n.dbSys
and o.dbName = n.dbName and o.name = n.name
and o.partition = n.partition
and o.instance = n.instance
and o.validBegin < n.validBegin
and o.validEnd > n.validBegin
order by n.validBegin asc
fetch first 1 row only
)
, o.*
from oa1p.tqz006GbGrTsNew o
where rz = 'RZZ' -- and validEnd > '9000-01-01-00.00.00'
and exists
( select 1
from oa1p.tqz006GbGrTsNew n
where o.rz = n.rz and o.dbSys = n.dbSys
and o.dbName = n.dbName and o.name = n.name
and o.partition = n.partition
and o.instance = n.instance
and o.validBegin < n.validBegin
and o.validEnd > n.validBegin
)
fetch first 1000 rows only
;
rollback
;x;
}¢--- A540769.WK.SQL(GBGRTST) cre=2015-09-03 mod=2015-09-04-15.10.34 A540769 ---
set current path oa1p;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
set current path oa1p;
set current application compatibility 'V11R1';
explain plan set queryno = 2 for
with k as
(
select rz, dbSys, dbName db, name ts, instance inst, partition pa
, max(loadTs) l0
, ( select r.loadTs from oa1p.tqz006GbGrTsSTats r
where t.rz = r.rz and t.dbSys = r.dbSys
and t.dbName = r.dbName
and t.name = r.name
and t.instance = r.instance
and t.partition = r.partition
and loadTs < timestamp(current date - 30 days)
order by loadTs desc
fetch first 1 row only
) l1
from oa1p.tqz006GbGrTsSTats t
where rz = 'RZ2' and dbSys = 'DBOF'
and dbName like '%'
group by rz, dbSys, dbName, name, instance, partition
)
,
t as
( select k.rz, k.dbSys, k.db, k.ts, k.inst, k.pa, k.l0, k.l1
, case when r0.dbName is null then 0 else 1 end cnt0
, real(value(r0.totalRows, 0)) rows0
, value(real(r0.nActive) * r0.pgSize * 1024, 0 ) used0
, case when r1.dbName is null then 0 else 1 end cnt1
, real(value(r1.totalRows, 0)) rows1
, value(real(r1.nActive) * r1.pgSize * 1024, 0 ) used1
from k
left join oa1p.tqz006GbGrTsSTats r0
on k.rz = r0.rz and k.dbSys = r0.dbSys
and k.db = r0.dbName and k.ts = r0.name
and k.inst = r0.instance and k.pa = r0.partition
and k.l0 = r0.loadTs
and r0.state = 'a' and l0 is not null
left join oa1p.tqz006GbGrTsSTats r1
on k.rz = r1.rz and k.dbSys = r1.dbSys
and k.db = r1.dbName and k.ts = r1.name
and k.inst = r1.instance and k.pa = r1.partition
and k.l1 = r1.loadTs
and r1.state = 'a' and l1 is not null
-- where r0.dbName is not null or r1.dbName is not null
)
, d as
(
select rz, dbSys, db
, count(*) cnt
, sum(cnt0) cnt0
, sum(cnt1) cnt1
, sum(rows0) rows0
, sum(rows1) rows1
, sum(used0) used0
, sum(used1) used1
from t
group by grouping sets( rollup (rz, dbSys, db))
)
select rz, dbSys, db
, substr(fosFmte7(used0-used1), 1, 7) "usedDiff"
, substr(fosFmte7(used0), 1, 7) "used0"
, substr(fosFmte7(used1), 1, 7) "used1"
, substr(fosFmte7(rows0), 1, 7) "rows0"
, substr(fosFmte7(rows1), 1, 7) "rows1"
, substr(fosFmte7(cnt), 1, 7) "cnt"
, substr(fosFmte7(cnt0), 1, 7) "cnt0"
, substr(fosFmte7(cnt1), 1, 7) "cnt1"
from d
where cnt0 + cnt1 > 0
order by case when db is null then 0 else 1 end, used0-used1 desc
;
explain plan set queryno = 111 for
with k0 as
(
select rz, dbSys, dbName db, name ts, instance inst, partition pa
, max(loadTs) l0
from oa1p.tqz006GbGrTsSTats t
where rz = 'RZ2' and dbSys = 'DBOF'
and dbName like '%'
group by rz, dbSys, dbName, name, instance, partition
)
, k1 as
(
select k0.*
, case when l0 < timestamp(current date - 30 days) then l0 else
( select r.loadTs from oa1p.tqz006GbGrTsSTats r
where k0.rz = r.rz and k0.dbSys = r.dbSys
and k0.db = r.dbName
and k0.ts = r.name
and k0.inst = r.instance
and k0.pa = r.partition
and loadTs < timestamp(current date - 30 days)
order by loadTs desc
fetch first 1 row only
) end l1
from k0
)
,
t as
( select k.rz, k.dbSys, k.db, k.ts, k.inst, k.pa, k.l0, k.l1
, case when r0.dbName is null then 0 else 1 end cnt0
, real(value(r0.totalRows, 0)) rows0
, value(real(r0.nActive) * r0.pgSize * 1024, 0 ) used0
, case when r1.dbName is null then 0 else 1 end cnt1
, real(value(r1.totalRows, 0)) rows1
, value(real(r1.nActive) * r1.pgSize * 1024, 0 ) used1
from k1 k
left join oa1p.tqz006GbGrTsSTats r0
on k.rz = r0.rz and k.dbSys = r0.dbSys
and k.db = r0.dbName and k.ts = r0.name
and k.inst = r0.instance and k.pa = r0.partition
and k.l0 = r0.loadTs
and r0.state = 'a' and l0 is not null
left join oa1p.tqz006GbGrTsSTats r1
on l1 is not null and l0 <> l1
and r1.state = 'a'
and k.rz = r1.rz and k.dbSys = r1.dbSys
and k.db = r1.dbName and k.ts = r1.name
and k.inst = r1.instance and k.pa = r1.partition
and k.l1 = r1.loadTs
-- where r0.dbName is not null or r1.dbName is not null
)
select count(*) cnt
, sum(cnt0) cnt0
, sum(cnt1) cnt1
, sum(rows0) rows0
, sum(rows1) rows1
, sum(used0) used0
, sum(used1) used1
from t
/*
group by value(h.rz, r1.rz), value(h.DbSys, v.dbSys)
, value(h.dbName, v.dbName)
)
select count(*) parts, sum(diff)
from j */
;
explain plan set queryno = 7 for
with g as
(
select current date xEE
, current date - 31 day xB
, rz , dbSys, dbName db, name ts, instance inst, partition pa
from oa1p.tqz006GbGrTsSTats
where rz = 'RZ2' and dbSys = 'DBOF'
group by rz, dbSys, dbName, name, instance, partition
)
, t ( l, tAct, tBeg, rz, dbSys, db, ts, inst, pa,
loadTs, state, pgSize, nActive, totalRows ) as
(
select 0, timestamp(current date + 31 day)
, timestamp(current date - 31 day)
, rz , dbSys, dbName db, name ts, instance inst, partition pa
, cast(null as timestamp), '', 0, 0, 0
from oa1p.tqz006GbGrTsSTats
where rz = 'RZ2' and dbSys = 'DBOF'
group by rz, dbSys, dbName, name, instance, partition
union all select l+1, t.tAct - 31 days, t.tBeg,
t.rz, t.dbSys, t.db, t.ts, t.inst, t.pa,
r.loadTs, r.state, r.pgSize, r.nActive, r.totalRows
from t, oa1p.tqz006GbGrTsSTats r
where l < 99 and t.rz = r.rz and t.dbSys = r.dbSys
and t.db = r.dbName
and t.ts = r.name
and t.inst = r.instance
and t.pa = r.partition
and r.loadTs = (select max(loadTs)
from oa1p.tqz006GbGrTsSTats q
where t.rz = q.rz and t.dbSys = q.dbSys
and t.db = q.dbName
and t.ts = q.name
and t.inst = q.instance
and t.pa = q.partition
and q.loadTs < timestamp(t.tAct - 30 days)
)
)
select count(*) from t
;
explain plan set queryno = 11 for
with d (d,l) as --- history old
(
select current date, 0
from sysibm.sysDummy1
union all select d - 31 days, l+1
from d
where l < 1 and d >= current date - 2 months
)
, tz as
(
select rz, dbSys, dbName, name, instance, partition
, max(loadTs) lHeu
, (select r.loadTs from oa1p.tqz006GbGrTsSTats r
where t0.rz = r.rz and t0.dbSys = r.dbSys
and t0.dbName = r.dbName
and t0.name = r.name
and t0.instance = r.instance
and t0.partition = r.partition
and loadTs < timestamp(current date - 30 days)
order by loadTs desc
fetch first 1 row only
) load1M
from oa1p.tqz006GbGrTsSTats t0
where rz = 'RZ2' and dbSys = 'DBOF'
and dbName like '%'
group by rz, dbSys, dbName, name, instance, partition
)
,
j as
( select value(h.rz, v.rz) rz, value(h.DbSys, v.dbSys) dbSys
, value(h.dbName, v.dbName) db
, sum(real(value(h.totalRows, 0) - value(v.totalRows, 0))) diff
from tz
left join oa1p.tqz006GbGrTsSTats h
on tz.rz = h.rz and tz.dbSys = h.dbSys
and tz.dbName = h.dbName and tz.name = h.name
and tz.instance = h.instance and tz.partition = h.partition
and tz.lHeu = h.loadTs
left join oa1p.tqz006GbGrTsSTats v
on tz.rz = v.rz and tz.dbSys = v.dbSys
and tz.dbName = v.dbName and tz.name = v.name
and tz.instance = v.instance and tz.partition = v.partition
and tz.load1M = v.loadTs
group by value(h.rz, v.rz), value(h.DbSys, v.dbSys)
, value(h.dbName, v.dbName)
)
select count(*) parts, sum(diff)
from j
;
explain plan set queryno = 11 for
with d (d,l) as --- history old
(
select current date, 0
from sysibm.sysDummy1
union all select d - 31 days, l+1
from d
where l < 1 and d >= current date - 2 months
)
, tz as
(
select rz, dbSys, dbName, name, instance, partition
, max(loadTs) lHeu
, (select r.loadTs from oa1p.tqz006GbGrTsSTats r
where t0.rz = r.rz and t0.dbSys = r.dbSys
and t0.dbName = r.dbName
and t0.name = r.name
and t0.instance = r.instance
and t0.partition = r.partition
and loadTs < timestamp(current date - 30 days)
order by loadTs desc
fetch first 1 row only
) load1M
from oa1p.tqz006GbGrTsSTats t0
where rz = 'RZ2' and dbSys = 'DBOF'
and dbName like '%'
group by rz, dbSys, dbName, name, instance, partition
)
,
j as
( select value(h.rz, v.rz) rz, value(h.DbSys, v.dbSys) dbSys
, value(h.dbName, v.dbName) db
, sum(real(value(h.totalRows, 0) - value(v.totalRows, 0))) diff
from tz
left join oa1p.tqz006GbGrTsSTats h
on tz.rz = h.rz and tz.dbSys = h.dbSys
and tz.dbName = h.dbName and tz.name = h.name
and tz.instance = h.instance and tz.partition = h.partition
and tz.lHeu = h.loadTs
left join oa1p.tqz006GbGrTsSTats v
on tz.rz = v.rz and tz.dbSys = v.dbSys
and tz.dbName = v.dbName and tz.name = v.name
and tz.instance = v.instance and tz.partition = v.partition
and tz.load1M = v.loadTs
group by value(h.rz, v.rz), value(h.DbSys, v.dbSys)
, value(h.dbName, v.dbName)
)
select count(*) parts, sum(diff)
from j
;
explain plan set queryno = 24 for
with d (d,l) as --- history old
(
select current date, 0
from sysibm.sysDummy1
union all select d - 1 days, l+1
from d
where l < 3 and d >= current date - 2 months
)
, t1 as
(
select rz, dbSys, dbName, name, instance, partition
from oa1p.tqz006GbGrTsSTats
where rz = 'RZ2' and dbSys = 'DBOF'
and dbName = 'MF01A1P'
and name like 'A150%'
-- and partition = 13
group by rz, dbSys, dbName, name, instance, partition
)
, t2 as
(
select d.d, t1.*, (select max(loadTs) from oa1p.tqz006GbGrTsSTats r
where t1.rz = r.rz and t1.dbSys = r.dbSys
and t1.dbName = r.dbName
and t1.name = r.name
and t1.instance = r.instance
and t1.partition = r.partition
and loadTs < timestamp(d.d + 1 day)
) loadTs
from t1, d
)
, t as
(
select d, t2.dbName db, count(*) cnt
, sum(real(nActive) * pgSize * 1024) used
, sum(real(totalRows)) rows
from t2
join oa1p.tqz006GbGrTsSTats r
on t2.loadTS is not null and r.state <> 'd'
and t2.rz = r.rz
and t2.dbSys = r.dbSys
and t2.dbName = r.dbName
and t2.name = r.name
and t2.instance = r.instance
and t2.partition = r.partition
and t2.loadTs = r.loadTS
group by t2.dbName, t2.d
)
select count(*) dbDa, sum(cnt) cnt
, sum(used) used, sum(rows) rows
from t
;
explain plan set queryno = 23 for
with d (d,l) as --- history old
(
select current date, 0
from sysibm.sysDummy1
union all select d - 1 days, l+1
from d
where l < 3 and d >= current date - 2 months
)
, t1 as
(
select rz, dbSys, dbName, name, instance, partition
from oa1p.tqz006GbGrTsSTats
where rz = 'RZ2' and dbSys = 'DBOF'
and dbName like 'MF%'
-- and name like 'A150%'
-- and partition = 13
group by rz, dbSys, dbName, name, instance, partition
)
, t2 as
(
select d.d, t1.*, (select max(loadTs) from oa1p.tqz006GbGrTsSTats r
where t1.rz = r.rz and t1.dbSys = r.dbSys
and t1.dbName = r.dbName
and t1.name = r.name
and t1.instance = r.instance
and t1.partition = r.partition
and loadTs < timestamp(d.d + 1 day)
) loadTs
from t1, d
)
, t as
(
select d, t2.dbName db, count(*) cnt
, sum(real(nActive) * pgSize * 1024) used
, sum(real(totalRows)) rows
from t2
join oa1p.tqz006GbGrTsSTats r
on t2.loadTS is not null and r.state <> 'd'
and t2.rz = r.rz
and t2.dbSys = r.dbSys
and t2.dbName = r.dbName
and t2.name = r.name
and t2.instance = r.instance
and t2.partition = r.partition
and t2.loadTs = r.loadTS
group by t2.dbName, t2.d
)
select count(*) dbDa, sum(cnt) cnt
, sum(used) used, sum(rows) rows
from t
;
explain plan set queryno = 22 for
with dRec (d,l) as --- history old
(
select current date, 0
from sysibm.sysDummy1
union all select d - 1 days, l+1
from dRec
where l < 3 and d >= current date - 2 months
)
, d (d, l) as
(
select * from dRec fetch first 200 rows only
-- select current date from sysibm.sysDummy1
--union all select current date - 1 month from sysibm.sysDummy1
--union all select current date - 2 month from sysibm.sysDummy1
--union all select current date - 3 month from sysibm.sysDummy1
)
, t1 as
(
select rz, dbSys, dbName, name, instance, partition
from oa1p.tqz006GbGrTsSTats
where rz = 'RZ2' and dbSys = 'DBOF'
and dbName like '%'
-- and name like 'A150%'
-- and partition = 13
group by rz, dbSys, dbName, name, instance, partition
)
, t2 as
(
select d.d, t1.*, (select max(loadTs) from oa1p.tqz006GbGrTsSTats r
where t1.rz = r.rz and t1.dbSys = r.dbSys
and t1.dbName = r.dbName
and t1.name = r.name
and t1.instance = r.instance
and t1.partition = r.partition
and loadTs < timestamp(d.d + 1 day)
) loadTs
from t1, d
)
, tj as
(
select l.d lD, l.rz lRz, l.dbSys lSys
, l.dbName lDb, l.name lTs, l.instance lInst
, l.partition lPa
, l.loadTs lLo , r7.*
from t2 l
left join oa1p.tqz006GbGrTsSTats r7
on l.loadTS is not null and r7.state <> 'd'
and l.rz = r7.rz
and l.dbSys = r7.dbSys
and l.dbName = r7.dbName
and l.name = r7.name
and l.instance = r7.instance
and l.partition = r7.partition
and l.loadTs = r7.loadTS
)
, t as
(
select lRz, lSys ldb, count(*) cnt
, sum(real(nActive) * pgSize * 1024) used
, sum(real(totalRows)) rows
from tj
group by lRz, lSys, lDb
)
select count(*) dbDa, sum(cnt) cnt
, sum(used) used, sum(rows) rows
from t
;
explain plan set queryno = 51 for
with d (d,l) as --- history old
(
select current date, 0
from sysibm.sysDummy1
union all select d - 31 days, l+1
from d
where l < 1 and d >= current date - 2 months
)
, t1 as
(
select current date d, rz, dbSys, dbName, name, instance, partition
, max(loadTs) loadTs
-- , max(case when loadTs < timestamp(current date - 30 days)
-- then loadTs else '1111-11-11-11.11.11' end) loadAlt
from oa1p.tqz006GbGrTsSTats
where rz = 'RZ2' and dbSys = 'DBOF'
and dbName like '%'
-- and name like 'A150%'
-- and partition = 13
-- and loadTs < timestamp(d + 1 day)
group by rz, dbSys, dbName, name, instance, partition
)
, t2 as
(
select t1.*, (select max(r.loadTs) from oa1p.tqz006GbGrTsSTats r
where t1.rz = r.rz and t1.dbSys = r.dbSys
and t1.dbName = r.dbName
and t1.name = r.name
and t1.instance = r.instance
and t1.partition = r.partition
) loadTsXX
from t1
)
, t as
(
select t1.dbName db, count(*) cnt
, sum(real(nActive) * pgSize * 1024) used
, sum(real(totalRows)) rows
from t1
join oa1p.tqz006GbGrTsSTats r
on t1.loadTS is not null and r.state <> 'd'
and t1.rz = r.rz
and t1.dbSys = r.dbSys
and t1.dbName = r.dbName
and t1.name = r.name
and t1.instance = r.instance
and t1.partition = r.partition
and t1.loadTs = r.loadTS
group by t1.dbName
)
select count(*) parts
, sum(real(second(loadTs)))
from t1
;
explain plan set queryno = 52 for
with d (d,l) as --- history old
(
select current date, 0
from sysibm.sysDummy1
union all select d - 31 days, l+1
from d
where l < 1 and d >= current date - 2 months
)
, t1 as
(
select d, rz, dbSys, dbName, name, instance, partition
, max(loadTs) loadTs
-- , max(case when loadTs < timestamp(current date - 30 days)
-- then loadTs else '1111-11-11-11.11.11' end) loadAlt
from oa1p.tqz006GbGrTsSTats, d
where rz = 'RZ2' and dbSys = 'DBOF'
and dbName like '%'
-- and name like 'A150%'
-- and partition = 13
and loadTs < timestamp(d + 1 day)
group by d, rz, dbSys, dbName, name, instance, partition
)
, t2 as
(
select t1.*, (select max(r.loadTs) from oa1p.tqz006GbGrTsSTats r
where t1.rz = r.rz and t1.dbSys = r.dbSys
and t1.dbName = r.dbName
and t1.name = r.name
and t1.instance = r.instance
and t1.partition = r.partition
-- and loadTs < timestamp(d.d + 1 day)
) loadTsXX
from t1
)
, t as
(
select t1.dbName db, count(*) cnt
, sum(real(nActive) * pgSize * 1024) used
, sum(real(totalRows)) rows
from t1
join oa1p.tqz006GbGrTsSTats r
on t1.loadTS is not null and r.state <> 'd'
and t1.rz = r.rz
and t1.dbSys = r.dbSys
and t1.dbName = r.dbName
and t1.name = r.name
and t1.instance = r.instance
and t1.partition = r.partition
and t1.loadTs = r.loadTS
group by t1.dbName
)
select count(*) parts
, sum(real(second(loadTs)))
from t1
;
select * from plan_view1
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
with ur
;
rollback
;;;;
-- difference space/rows, ts/ix zwischen 2 Daten
with d (d,l) as
(
select current date, 0
from sysibm.sysDummy1
union all select d - 31 days, l+1
from d
where l < 999999 and d >= current date - 1 day
)
, t2 as
(
select d, rz, dbSys, dbName, name, instance, partition
, max(loadTs) loadTs
from oa1p.tqz006GbGrTsSTats join d
on loadTs < timestamp(d.d + 1 day)
where rz = 'RZ2' and dbSys = 'DBOF'
-- and dbName like 'M%'
-- and name in ( 'A150A', 'A007A')
group by d, rz, dbSys, dbName, name, instance, partition
)
, t2x as
(
select d.d, t1.*, (select max(loadTs) from oa1p.tqz006GbGrTsSTats r
where t1.rz = r.rz and t1.dbSys = r.dbSys
and t1.dbName = r.dbName
and t1.name = r.name
and t1.instance = r.instance
and t1.partition = r.partition
and loadTs < timestamp(d.d + 1 day)
) loadTs
from t1, d
)
, g (rz, dbSys, db, d, tsUsed, rows, cParts, cTs) as
(
select t2.rz, t2.dbSys, t2.dbName , d
, sum(value(real(nActive) * pgSize * 1024, 0))
, sum(value(totalRows, 0))
, count(*) , count(distinct t2.name)
from t2 join oa1p.tqz006GbGrTsSTats r
on -- r.state <> 'd'
t2.rz = r.rz
and t2.dbSys = r.dbSys
and t2.dbName = r.dbName
and t2.name = r.name
and t2.instance = r.instance
and t2.partition = r.partition
and t2.loadTs = r.loadTS
group by t2.rz, t2.dbSys, t2.dbName, d
)
, j as
(
select value(h.rz, v.rz) rz
, value(h.dbSys, v.dbSys) dbSys
, value(h.db, v.db) db
, value(h.tsUsed, 0) - value(v.tsUsed, 0) diff
, h.tsUsed hUsed
, v.tsUsed vUsed
, h.rows hRows
, v.rows vRows
from (select * from g where d = current date) h
full outer join
(select * from g where d = current date - 31 days) v
on h.rz = v.rz and h.dbSys = v.dbSys and h.db = v.db
)
select rz, dbSys, db
, fosFmte7(diff) diff
, fosFmte7(hUsed) hUsed
, fosFmte7(vUsed) vUsed
, fosFmte7(hRows) vRows
, fosFmte7(vRows) vRows
from j
order by rz, dbSys, diff desc
;
explain plan set queryno = 44 for
-- difference space/rows, ts/ix zwischen 2 Daten
with d (d,l) as
(
select current date, 0
from sysibm.sysDummy1
union all select d - 20 days, l+1
from d
where l < 999999 and d >= current date - 1 day
)
, t1 as
(
select rz, dbSys, dbName, name, instance, partition
from oa1p.tqz006GbGrTsSTats
where rz = 'RZ2' and dbSys = 'DBOF'
and dbName like 'MF%'
-- and name in ( 'A150A', 'A007A')
group by rz, dbSys, dbName, name, instance, partition
)
, t2 as
(
select d.d, t1.*, (select max(loadTs) from oa1p.tqz006GbGrTsSTats r
where t1.rz = r.rz and t1.dbSys = r.dbSys
and t1.dbName = r.dbName
and t1.name = r.name
and t1.instance = r.instance
and t1.partition = r.partition
and loadTs < timestamp(d.d + 1 day)
) loadTs
from t1, d
)
, g (rz, dbSys, db, d, tsUsed, rows, cParts, cTs) as
(
select t2.rz, t2.dbSys, t2.dbName , d
, sum(real(nActive) * pgSize * 1024)
, sum(totalRows)
, count(*) cParts, count(distinct t2.name)
from t2 join oa1p.tqz006GbGrTsSTats r
on r.state <> 'd'
and t2.rz = r.rz
and t2.dbSys = r.dbSys
and t2.dbName = r.dbName
and t2.name = r.name
and t2.instance = r.instance
and t2.partition = r.partition
and t2.loadTs = r.loadTS
group by t2.rz, t2.dbSys, t2.dbName, d
)
select * from g
;
select * from plan_view1
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
with ur
;
rollback
;;;;
;x;
, i1 as
(
select rz, dbSys, dbName, ts, indexSpace, instance, partition
from oa1p.tqz007GbGrIxSTats
where (rz, dbSys, dbName, ts, instance) in
(select rz, dbSys, dbName, name, instance
from t1)
group by rz, dbSys, dbName, ts, indexSpace, instance, partition
)
, i2 as
(
select d.d, i1.*, (select max(loadTs) from oa1p.tqz007GbGrIxSTats r
where i1.rz = r.rz and i1.dbSys = r.dbSys
and i1.dbName = r.dbName
and i1.ts = r.ts
and i1.instance = r.instance
and i1.indexSpace = r.indexSpace
and i1.partition = r.partition
and loadTs < timestamp(d.d + 1 day)
) loadTs
from i1, d
)
, i as
(
select d, r.*
from i2
join oa1p.tqz007GbGrIxSTats r
on i2.loadTS is not null and r.state <> 'd'
and i2.rz = r.rz
and i2.dbSys = r.dbSys
and i2.dbName = r.dbName
and i2.ts = r.ts
and i2.indexSpace= r.indexSpace
and i2.instance = r.instance
and i2.partition = r.partition
and i2.loadTs = r.loadTS
)
, u as
(
select rz, dbSys, dbName db, name ts, ' -- ts' is
, instance, partition, d
, real(nActive) * pgSize * 1024 tsUsed
, totalRows tsRows
, 1 tsParts
, cast(null as real) ixUsed
, cast(null as bigInt ) ixEntries
, loadTs, updateStatsTime
, 0 ixParts
from t
union all
select rz, dbSys, dbName db, ts, indexSpace is
, instance, partition, d
, cast(null as real) tsUsed
, cast(null as bigInt ) tsRows
, 0 tsParts
, real(nActive) * ixPgSz * 1024 ixUsed
, totalEntries ixEntries
, loadTs, updateStatsTime
, 1 ixParts
from i
)
, g as
(
select rz, dbSys, db, ts, instance, partition
, d
, (sum(tsUsed)) tsUsed
, (sum(tsRows)) tsRows
, sum(tsParts) tsParts
, (sum(ixUsed)) ixUsed
, (sum(ixEntries)) ixEntries
, sum(ixParts) ixParts
, max(loadTs) loadTsMax
, max(updateStatsTime) updateStatsMax
, min(loadTs) loadTsMin
, min(updateStatsTime) updateStatsMin
from u
group by rz, dbSys, db, ts, instance, partition
, d
)
, j as
(
select a.rz, a.dbSys, a.db, a.ts, a.instance, a.partition
, a.d ad, o.d od
, a.tsUsed - o.tsUsed tsUsed
, a.tsRows - o.tsRows tsRows
, a.tsParts
, a.ixUsed - o.ixUsed ixUsed
, a.ixEntries - o.ixEntries ixEntries
, a.ixParts
, a.loadTsMax aLoadTsMax, o.loadTsMax oLoadTsMax
, a.updateStatsMax aUpdateStatsMax
, o.updateStatsMax oUpdateStatsMax
from g a join g o
on a.rz = o.rz and a.dbSys = o.dbSys and a.db = o.db and a.ts = o.ts
and a.instance = o.instance and a.partition = o.partition
and o.d < current date
where a.d = current date
)
select rz, dbSys, db, ts, instance, partition
, ad, od
, fosFmtE7((tsUsed)) tsUsed
, fosFmtE7((tsRows)) tsRows
, (tsParts) atsParts
, fosFmtE7((ixUsed)) ixUsed
, fosFmtE7((ixEntries)) ixEntries
, (ixParts) aixParts
, aLoadTsMax, oLoadTsMax
, aUpdateStatsMax
, oUpdateStatsMax
from j
order by (tsUsed + ixUsed) desc
}¢--- A540769.WK.SQL(GBGRX0) cre=2015-09-07 mod=2015-09-07-07.41.18 A540769 ----
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
set current path oa1p;
explain plan set queryno = 3 for
-- table Space und Details History / Zeitreihe
with d (d,l) as
(
select current date, 0
from sysibm.sysDummy1
union all select d - 1 month, l+1
from d
where l < 999999 and d >= current date - 6 months
)
, t1 as
(
select rz, dbSys, dbName, name, instance, partition
from oa1p.tqz006GbGrTsSTats
where rz = 'RZ2' and dbSys = 'DBOF'
and dbName like 'XR01%'
-- and name like 'A002%'
group by rz, dbSys, dbName, name, instance, partition
)
, t2 as
(
select d.d, t1.*, (select max(loadTs) from oa1p.tqz006GbGrTsSTats r
where t1.rz = r.rz and t1.dbSys = r.dbSys
and t1.dbName = r.dbName
and t1.name = r.name
and t1.instance = r.instance
and t1.partition = r.partition
and loadTs < timestamp(d.d + 1 day)
) loadTs
from t1, d
)
, t as
(
select d, r.*
from t2
join oa1p.tqz006GbGrTsSTats r
on t2.loadTS is not null and r.state <> 'd'
and t2.rz = r.rz
and t2.dbSys = r.dbSys
and t2.dbName = r.dbName
and t2.name = r.name
and t2.instance = r.instance
and t2.partition = r.partition
and t2.loadTs = r.loadTS
)
, g as
(
select d, rz, dbSys, dbName
, sum(value(real(nActive) * pgSize * 1024, 0)) used
, sum(value(totalRows, 0)) rows
, count(*) cnt
from t
group by d,rz, dbSys, dbName
)
select * from g
;
explain plan set queryno = 22 for
-- table Space und Details History / Zeitreihe
with d (d,l) as
(
select current date, 0
from sysibm.sysDummy1
union all select d - 1 month, l+1
from d
where l < 999999 and d >= current date - 6 months
)
, t1 as
(
select rz, dbSys, dbName, name, instance, partition
from oa1p.tqz006GbGrTsSTats
where rz = 'RZ2' and dbSys = 'DBOF'
and dbName like 'XR01%'
-- and name like 'A002%'
group by rz, dbSys, dbName, name, instance, partition
)
, t2 as
(
select d.d, t1.*, (select max(loadTs) from oa1p.tqz006GbGrTsSTats r
where t1.rz = r.rz and t1.dbSys = r.dbSys
and t1.dbName = r.dbName
and t1.name = r.name
and t1.instance = r.instance
and t1.partition = r.partition
and loadTs < timestamp(d.d + 1 day)
) loadTs
from t1, d
)
, t as
(
select d, r.*
from t2
join oa1p.tqz006GbGrTsSTats r
on t2.loadTS is not null and r.state <> 'd'
and t2.rz = r.rz
and t2.dbSys = r.dbSys
and t2.dbName = r.dbName
and t2.name = r.name
and t2.instance = r.instance
and t2.partition = r.partition
and t2.loadTs = r.loadTS
)
, g as
(
select d, rz, dbSys, dbName
, sum(value(real(nActive) * pgSize * 1024, 0)) used
, sum(value(totalRows, 0)) rows
, count(*) cnt
from t
group by d,rz, dbSys, dbName
)
select * from t
;
select * from plan_view1
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(GBGRX1) cre=2015-09-07 mod=2015-09-07-07.16.30 A540769 ----
-- table Space und Details History / Zeitreihe
set current path oa1p;
set current application compatibility 'V11R1';
with dr (d,l) as
(
select current date, 0
from sysibm.sysDummy1
union all select d - 1 month, l+1
from dr
where l < 99 and d >= current date - 0 months
)
, d as
(
select * from dr fetch first 100 rows only
)
, t1 as
(
select rz, dbSys, dbName, name, instance, partition
from oa1p.tqz006GbGrTsSTats
where rz = 'RZ2' and dbSys = 'DBOF'
-- and dbName like 'MF%'
-- and name like 'A002%'
group by rz, dbSys, dbName, name, instance, partition
)
, t2 as
(
select d.d, t1.*, (select max(loadTs) from oa1p.tqz006GbGrTsSTats r
where t1.rz = r.rz and t1.dbSys = r.dbSys
and t1.dbName = r.dbName
and t1.name = r.name
and t1.instance = r.instance
and t1.partition = r.partition
and loadTs < timestamp(d.d + 1 day)
) loadTs
from t1, d
)
, t as
(
select d, r.*
from t2
join oa1p.tqz006GbGrTsSTats r
on t2.loadTS is not null and r.state <> 'd'
and t2.rz = r.rz
and t2.dbSys = r.dbSys
and t2.dbName = r.dbName
and t2.name = r.name
and t2.instance = r.instance
and t2.partition = r.partition
and t2.loadTs = r.loadTS
)
, g as
(
select d, rz, dbSys, dbName
, sum(value(real(nActive) * pgSize * 1024, 0)) used
, sum(value(totalRows, 0)) rows
, count(*) cnt
from t
group by d,rz, dbSys, dbName
)
, j as
(
select value(h.rz, v.rz) rz, value(h.dbSys, v.dbSys) dbSys
, value(h.dbName, v.dbName) dbName
, h.used hUsed
, v.used vUsed
, h.rows hRows
, v.rows vRows
, h.cnt hCnt
, v.cnt vCnt
from (select * from g where d = current date) h
full outer join (select * from g where d < current date) v
on h.rz = v.rz and h.dbSys = v.dbSys and h.dbName = v.dbName
)
, jg as
(
select rz, dbSys, dbName
, sum(hUsed - vUsed) diffUsed
, sum(hUsed) hUsed
, sum(vUsed) vUsed
, sum(hRows - vRows) diffRows
, sum(hRows) hRows
, sum(vRows) vRows
, sum(hCnt) hCnt
, sum(vCnt) vCnt
from j
group by grouping sets (rollup(rz, dbSys, dbName))
)
select * from jg
where hCnt + vCnt > 0
order by case when dbName is null then 0 else 1 end
, diffUsed desc
}¢--- A540769.WK.SQL(GBGRZ2R) cre=2016-03-31 mod=2016-03-31-10.09.35 A540769 ---
delete from OA1P.TQZ008GBGRSCHWELLE
where rz = 'RQ2' and prio >= 0;
insert into OA1P.TQZ008GBGRSCHWELLE (PRIO, RZ, DBSYS, DB, TS, PART
,TSTY, DSMIN, SCHWELLE, VALIDBEGIN, VALIDEND
, ERFASSER, grUse, grund)
select prio, 'RQ2', DBSYS, DB, TS, PART
,TSTY, DSMIN, SCHWELLE, VALIDBEGIN, VALIDEND
, ERFASSER, grUse, grund
from OA1P.TQZ008GBGRSCHWELLE
where rz = 'RZ2' and prio >= 0;
commit
;
}¢--- A540769.WK.SQL(GENAGG) cre=2011-05-11 mod=2011-05-11-15.24.51 A540769 ----
$#@
call sqlConnect DBOC
$@=¢
select * from sysibm.sysColumns
where tbCreator = 'A540769' and tbName = 'TACCT_GENERAL'
order by name
$!
$| $@<.sqlRdr()
$| $@forWith i $@¢
$=nk=- translate($NAME, m.mAlfLC, m.mAlfUC)
if abbrev($nk, 'class') then
$=nk=- 'c'substr($nk, 6)
$=nk=- strip(left($nk, 12))
if pos('DEC', $COLTYPE) <= 0 & pos('INT', $COLTYPE) <= 0 then do
$$ $'' min($NAME) "$nk<" ,
end
else if abbrev($NAME, 'CLASS') then do
$$ $'' fosFmtE7(sum($NAME)) "$nk" ,
end
else do
$$ $'' sum($NAME) "$nk" ,
end
$!
$#out 20110511 15:24:50
sum(ARCH_LOG_SUSP) "arch_log_sus" ,
sum(ARCH_READS_SUSP) "arch_reads_s" ,
sum(ASYNCH_IXL_REQU) "asynch_ixl_r" ,
min(BYTES_PER_LOG_REC) "bytes_per_lo<" ,
sum(CACHE_LIMIT_EXCEED) "cache_limit_" ,
sum(CHANGE_REQ) "change_req" ,
sum(CLAIM_FAILED) "claim_failed" ,
sum(CLAIM_REL_SUSP) "claim_rel_su" ,
sum(CLAIM_REQ) "claim_req" ,
fosFmtE7(sum(CLASS1_CPU_TOTAL)) "c1_cpu_total" ,
fosFmtE7(sum(CLASS1_ELAPSED)) "c1_elapsed" ,
fosFmtE7(sum(CLASS1_IIP_CPU)) "c1_iip_cpu" ,
fosFmtE7(sum(CLASS1_SU_CPU)) "c1_su_cpu" ,
fosFmtE7(sum(CLASS1_SU_IIP_CPU)) "c1_su_iip_cp" ,
min(CLASS2) "c2<" ,
fosFmtE7(sum(CLASS2_CPU_TOTAL)) "c2_cpu_total" ,
fosFmtE7(sum(CLASS2_ELAPSED)) "c2_elapsed" ,
fosFmtE7(sum(CLASS2_IIP_CPU)) "c2_iip_cpu" ,
fosFmtE7(sum(CLASS2_SU_CPU)) "c2_su_cpu" ,
fosFmtE7(sum(CLASS2_SU_IIP_CPU)) "c2_su_iip_cp" ,
min(CLASS3) "c3<" ,
fosFmtE7(sum(CLASS3_ARCH_LOG)) "c3_arch_log" ,
fosFmtE7(sum(CLASS3_ARCH_READS)) "c3_arch_read" ,
fosFmtE7(sum(CLASS3_ASYNCH_IXL)) "c3_asynch_ix" ,
fosFmtE7(sum(CLASS3_CLAIM_REL)) "c3_claim_rel" ,
fosFmtE7(sum(CLASS3_DB_IO)) "c3_db_io" ,
fosFmtE7(sum(CLASS3_DRAIN_LOCK)) "c3_drain_loc" ,
fosFmtE7(sum(CLASS3_EXT_DEL_DEF)) "c3_ext_del_d" ,
fosFmtE7(sum(CLASS3_FORCE_AT_C)) "c3_force_at_" ,
fosFmtE7(sum(CLASS3_GLOBAL_CONT)) "c3_global_co" ,
fosFmtE7(sum(CLASS3_LLOCK_CHILD)) "c3_llock_chi" ,
fosFmtE7(sum(CLASS3_LLOCK_OTHER)) "c3_llock_oth" ,
fosFmtE7(sum(CLASS3_LLOCK_PARNT)) "c3_llock_par" ,
fosFmtE7(sum(CLASS3_LOCK_LATCH)) "c3_lock_latc" ,
fosFmtE7(sum(CLASS3_LOG_WRT_IO)) "c3_log_wrt_i" ,
fosFmtE7(sum(CLASS3_NOTIFY_MSG)) "c3_notify_ms" ,
fosFmtE7(sum(CLASS3_OPEN_CLOSE)) "c3_open_clos" ,
fosFmtE7(sum(CLASS3_OTHER_READ)) "c3_other_rea" ,
fosFmtE7(sum(CLASS3_OTHER_SERV)) "c3_other_ser" ,
fosFmtE7(sum(CLASS3_OTHER_WRITE)) "c3_other_wri" ,
fosFmtE7(sum(CLASS3_PAGE_LATCH)) "c3_page_latc" ,
fosFmtE7(sum(CLASS3_PLOCK_OTHER)) "c3_plock_oth" ,
fosFmtE7(sum(CLASS3_PLOCK_PAGE)) "c3_plock_pag" ,
fosFmtE7(sum(CLASS3_PLOCK_PSET)) "c3_plock_pse" ,
fosFmtE7(sum(CLASS3_SCHEDUL_UDF)) "c3_schedul_u" ,
fosFmtE7(sum(CLASS3_SCHED_STPRC)) "c3_sched_stp" ,
fosFmtE7(sum(CLASS3_SERV_TASK)) "c3_serv_task" ,
fosFmtE7(sum(CLASS3_SYNC_IO)) "c3_sync_io" ,
fosFmtE7(sum(CLASS3_SYSLOGR_REC)) "c3_syslogr_r" ,
fosFmtE7(sum(CLASS3_UPD_COMMIT)) "c3_upd_commi" ,
fosFmtE7(sum(CLASS5_DESCRIBE)) "c5_describe" ,
fosFmtE7(sum(CLASS5_ELAPSED)) "c5_elapsed" ,
fosFmtE7(sum(CLASS5_LOG_EXTRACT)) "c5_log_extra" ,
fosFmtE7(sum(CLASS5_TCB)) "c5_tcb" ,
sum(CLOSE) "close" ,
sum(COMMIT) "commit" ,
min(CONNECT_ID) "connect_id<" ,
min(CONNECT_TYPE) "connect_type<" ,
min(CORRNAME) "corrname<" ,
min(CORRNUMBER) "corrnumber<" ,
sum(DATA_ROWS_RETURNED) "data_rows_re" ,
sum(DB_IO_SUSP) "db_io_susp" ,
sum(DEADLOCK) "deadlock" ,
sum(DELETE) "delete" ,
sum(DESCRIBE) "describe" ,
sum(DESCRIBES_PERFORM) "describes_pe" ,
sum(DESCRIBE_TABLE) "describe_tab" ,
sum(DESCRIPT_RETURNED) "descript_ret" ,
sum(DIRECT_ACCESS) "direct_acces" ,
sum(DRAIN_FAILED) "drain_failed" ,
sum(DRAIN_LOCK_SUSP) "drain_lock_s" ,
sum(DRAIN_REQ) "drain_req" ,
sum(EXT_DEL_DEF_SUSP) "ext_del_def_" ,
sum(FETCH) "fetch" ,
sum(FORCE_AT_COMMIT) "force_at_com" ,
sum(GLOBAL_CONT_SUSP) "global_cont_" ,
min(GROUP_NAME) "group_name<" ,
sum(HIGHEST_USED_CPU) "highest_used" ,
min(ID) "id<" ,
sum(IFI_CALLS) "ifi_calls" ,
sum(IIPCP_ELIGIBLE) "iipcp_eligib" ,
sum(IMPLICIT_PREPARES) "implicit_pre" ,
sum(INCOMPAT_RET_LOCK) "incompat_ret" ,
sum(INCREMENTAL_BIND) "incremental_" ,
sum(INDEX_USED) "index_used" ,
min(INSDATE) "insdate<" ,
sum(INSERT) "insert" ,
sum(LIMIT_IN_CPU) "limit_in_cpu" ,
sum(LIMIT_IN_SU) "limit_in_su" ,
sum(LLOCK_CHILD_SUSP) "llock_child_" ,
sum(LLOCK_OTHER_SUSP) "llock_other_" ,
sum(LLOCK_PARENT_SUSP) "llock_parent" ,
sum(LOCK_ESC_EXCLUSIVE) "lock_esc_exc" ,
sum(LOCK_ESC_SHARED) "lock_esc_sha" ,
sum(LOCK_LATCH_SUSP) "lock_latch_s" ,
sum(LOCK_REQ) "lock_req" ,
sum(LOCK_TABLE) "lock_table" ,
sum(LOG_READS_PERFORM) "log_reads_pe" ,
sum(LOG_RECS_CAPTURED) "log_recs_cap" ,
sum(LOG_RECS_RETURNED) "log_recs_ret" ,
sum(LOG_RECS_WRITTEN) "log_recs_wri" ,
sum(LOG_WRT_IO_SUSP) "log_wrt_io_s" ,
sum(LUW_SEQNO) "luw_seqno" ,
sum(MAX_LOCKS_HELD) "max_locks_he" ,
sum(MAX_SQL_CASCAD_LVL) "max_sql_casc" ,
sum(MAX_STOR_LOB_VALUE) "max_stor_lob" ,
sum(NOTIFY_MSG_SENT) "notify_msg_s" ,
sum(NOTIFY_MSG_SUSP) "notify_msg_s" ,
sum(OCCURRENCES) "occurrences" ,
sum(OPEN) "open" ,
sum(OPEN_CLOSE_SUSP) "open_close_s" ,
sum(OTHER_READ_SUSP) "other_read_s" ,
sum(OTHER_REQ) "other_req" ,
sum(OTHER_SERV_SUSP) "other_serv_s" ,
sum(OTHER_WRITE_SUSP) "other_write_" ,
sum(PAGE_LATCH_SUSP) "page_latch_s" ,
sum(PARTSPLIT) "partsplit" ,
min(PLAN_NAME) "plan_name<" ,
sum(PLOCK_OTHER_SUSP) "plock_other_" ,
sum(PLOCK_PAGE_SUSP) "plock_page_s" ,
sum(PLOCK_PSET_SUSP) "plock_pset_s" ,
sum(PREPARE) "prepare" ,
sum(PREP_FROM_CACHE) "prep_from_ca" ,
sum(PREP_STMT_MATCH) "prep_stmt_ma" ,
sum(PREP_STMT_NO_MATCH) "prep_stmt_no" ,
sum(PREP_STMT_PURGED) "prep_stmt_pu" ,
sum(PROGRAMS) "programs" ,
sum(P_LOCK_CHANGE) "p_lock_chang" ,
sum(P_LOCK_LOCK) "p_lock_lock" ,
sum(P_LOCK_UNLOCK) "p_lock_unloc" ,
sum(QUERY_REQ) "query_req" ,
sum(REOPTIMIZATION) "reoptimizati" ,
sum(RID_POOL_FAIL_MXLT) "rid_pool_fai" ,
sum(RID_POOL_FAIL_NOSG) "rid_pool_fai" ,
sum(RID_POOL_USED) "rid_pool_use" ,
min(RLF_TABLE) "rlf_table<" ,
sum(RLF_TYPE) "rlf_type" ,
sum(ROLLBACK) "rollback" ,
sum(ROW_TRIGGER) "row_trigger" ,
min(RZ) "rz<" ,
sum(SCHEDUL_UDF_SUSP) "schedul_udf_" ,
sum(SCHED_STPRC_SUSP) "sched_stprc_" ,
sum(SELECT) "select" ,
sum(SERV_TASK_SUSP) "serv_task_su" ,
sum(SET_CURRENT_PREC) "set_current_" ,
sum(STATEMENT_TRIGGER) "statement_tr" ,
sum(STPROC_ABEND) "stproc_abend" ,
sum(STPROC_CALL) "stproc_call" ,
sum(STPROC_REJECTED) "stproc_rejec" ,
sum(STPROC_TIMEOUT) "stproc_timeo" ,
min(SUBSYSTEM_ID) "subsystem_id<" ,
sum(SUSPEND_FALSE_CONT) "suspend_fals" ,
sum(SUSPEND_IRLM_CONT) "suspend_irlm" ,
sum(SUSPEND_IRLM_LATCH) "suspend_irlm" ,
sum(SUSPEND_LOCK) "suspend_lock" ,
sum(SUSPEND_OTHER) "suspend_othe" ,
sum(SUSPEND_XES_CONT) "suspend_xes_" ,
sum(SU_IIPCP_ELIGIBLE) "su_iipcp_eli" ,
sum(SVPT_RELEASE) "svpt_release" ,
sum(SVPT_REQUESTS) "svpt_request" ,
sum(SVPT_ROLLBACK) "svpt_rollbac" ,
sum(SYNC_IO_SUSP) "sync_io_susp" ,
sum(SYNC_XES_CHANGE) "sync_xes_cha" ,
sum(SYNC_XES_LOCK) "sync_xes_loc" ,
sum(SYNC_XES_UNLOCK) "sync_xes_unl" ,
sum(SYSLOGR_REC_SUSP) "syslogr_rec_" ,
sum(TABLES_RETURNED) "tables_retur" ,
sum(TIMEOUT) "timeout" ,
min(TIMESTAMP) "timestamp<" ,
sum(TRIGGER_SQL_ERROR) "trigger_sql_" ,
sum(TS_SCAN_USED) "ts_scan_used" ,
sum(UDF_ABENDS) "udf_abends" ,
sum(UDF_EXECUTED) "udf_executed" ,
sum(UDF_REJECTED) "udf_rejected" ,
sum(UDF_TIMEOUTS) "udf_timeouts" ,
sum(UNLOCK_REQ) "unlock_req" ,
sum(UPDATE) "update" ,
sum(UPD_COMMIT_SUSP) "upd_commit_s" ,
$#out 20110511 15:22:37
}¢--- A540769.WK.SQL(GRIMM) cre=2006-08-09 mod=2006-08-03-09.41.34 F540769 -----
SET CURRENT SQLID = 'S100447';
DROP INDEX LDAP001A.DIR_SEARCHX2;
COMMIT;
CREATE INDEX LDAP001A.DIR_SEARCHX2
ON LDAP001A.DIR_SEARCH
( EID ASC ,
ATTR_ID ASC ,
VALUE ASC )
USING STOGROUP GSMS
PRIQTY 288000
SECQTY 14400
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
CLUSTER
BUFFERPOOL BP1
CLOSE YES
PIECESIZE 2 G
COPY NO
DEFER YES
;
CREATE INDEX LDAP001A.DIR_SEARCHX3
ON LDAP001A.DIR_SEARCH
( VALUE ASC ,
ATTR_ID ASC ,
EID ASC )
USING STOGROUP GSMS
PRIQTY 288000
SECQTY 14400
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
BUFFERPOOL BP1
CLOSE YES
PIECESIZE 2 G
COPY NO
DEFER YES
;
}¢--- A540769.WK.SQL(GRUPP0) cre=2006-05-03 mod=2006-05-03-09.16.18 F540769 ----
UPDATE OA1P.TTN170A1 A
SET A.TICKER_ID = (SELECT SUBSTR(VALUE,10,4)
FROM OA1P.TTN990A1
WHERE PGM = 'OTXSQL5P'
AND SETTING_NAME = 'INDEXTICKER'
AND SUBSTR(VALUE,20,2) = '01')
WHERE A.DELETE_FLAG = '0'
AND A.INSTR_KEY IN
(SELECT B.INSTR_KEY FROM OA1P.TTN100A1 B
WHERE B.VALORENSTAMMNUMMER = (SELECT SUBSTR(VALUE,1,9)
FROM OA1P.TTN990A1
WHERE PGM = 'OTXSQL5P'
AND SETTING_NAME = 'INDEXTICKER'
AND SUBSTR(VALUE,20,2) = '01')
AND B.DELETE_FLAG = '0')
}¢--- A540769.WK.SQL(GRUPP1) cre=2006-05-03 mod=2006-05-03-09.59.12 F540769 ----
UPDATE OA1A.TTN170A1 A
SET TICKER_ID =
(SELECT SUBSTR(VALUE,10,4)
FROM OA1A.TTN990A1
WHERE PGM = 'OTXSQL5P'
AND SETTING_NAME = 'INDEXTICKER'
AND SUBSTR(VALUE,20,2) = '01')
WHERE A.DELETE_FLAG = 'X'
AND A.INSTR_KEY IN
(SELECT B.INSTR_KEY FROM OA1A.TTN100A1 B
WHERE B.VALORENSTAMMNUMMER = (SELECT SUBSTR(VALUE,1,9)
FROM OA1A.TTN990A1
WHERE PGM = 'OTXSQL5P'
AND SETTING_NAME = 'INDEXTICKER'
AND SUBSTR(VALUE,20,2) = '01')
AND B.DELETE_FLAG = '0')
;
FEHLER
;
SELECT COUNT(*), DELETE_FLAG
FROM OA1A.TTN100A1 B
GROUP BY DELETE_FLAG
;
SELECT COUNT(*), DELETE_FLAG
FROM OA1A.TTN170A1 A
GROUP BY DELETE_FLAG
;
}¢--- A540769.WK.SQL(GUBLDBAF) cre= mod= ---------------------------------------
SET CURRENT SQLID='VDPS2';
SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","F281992" ;
CREATE VIEW VDPS2.XPS_VISID001 AS
SELECT T1.IDSYMBOL, T1.SCHEMESYMBOL, T3.IDSYMBOL IDSYMBOL_ID,
T3.SCHEMESYMBOL SCHEMESYMBOL_ID, T1.INSTITUTIONID,
T1.CREATETIMESTAMP, T1.UPDATETIMESTAMP, T1.VALIDFROMDATE,
T1.VALIDUNTILDATE, T3.CREATETIMESTAMP CREATETIMESTAMP_ID,
T3.UPDATETIMESTAMP UPDATETIMESTAMP_ID,
T3.VALIDFROMDATE VALIDFROMDATE_ID,
T3.VALIDUNTILDATE VALIDUNTILDATE_ID
FROM VDPS2.VTINSTIIDENT T1
INNER JOIN
VDPS2.VTINSTITUTION T2
ON T2.INSTITUTIONID = T1.INSTITUTIONID AND (T2.ROWSTATUS
IS NULL OR T2.ROWSTATUS <> 2)
INNER JOIN
VDPS2.VTINSTIIDENT T3
ON T3.INSTITUTIONID = T1.INSTITUTIONID AND T3.ROWSTATUS = 1
WHERE T1.ROWSTATUS = 1 ;
COMMIT;
}¢--- A540769.WK.SQL(GUBLER) cre=2006-09-19 mod=2006-09-19-13.47.26 F540769 ----
SELECT CHAR(P.NAME,22), CHAR(P.CREATOR, 8), 00010010
CHAR(P.TSNAME, 8), CHAR(A.TSNAME,8), 00020010
CHAR(P.DBNAME, 8), CHAR(A.DBNAME, 8) 00030010
FROM SYSIBM.SYSTABLES P 00040010
LEFT JOIN SYSIBM.SYSTABLES A 00050010
ON P.NAME = A.NAME AND A.CREATOR = 'VDPS2' 00060010
WHERE P.CREATOR LIKE 'GDB04%' 00070010
AND P.NAME IN ('VTRESTRICTIONSUSP ', 00080012
'VTCSMFSMANDDETAIL ', 00090005
'VTCONDITIONTRACK ', 00100005
'VTCONDCOMPONENTPRO ', 00110005
'VTCFCONDITION ', 00120006
'VTTRUST ', 00130014
'VTTRUSTDETAIL ', 00140014
'CTINSTRSP42DETAILS ', 00170006
'VTUNDERFIXREFCOMP ', 00180006
'VTTRADINGPLACE ', 00190006
'VTTIMEZONEINFO ', 00200006
'VTSPECTRADINGDAY ', 00210006
'VTUNDERFIXINGREF ', 00220006
'VTMANDATORYEXDATE ', 00230006
'VTOFFERCONDEXDATE ', 00240006
'VTCFEVENTEXDATE ', 00250006
'VTCASHFLOWREINLIST ', 00260006
'VTTRDPHYSSECCHANGE ', 00270006
'VTTRDPHYSSECOFUNC ', 00280006
'VTTRDPHYSSECTRANS ', 00290006
'VTTRDPHYSSECVALID ', 00300006
'VTCONTRACTSPECIFIC ', 00310006
'VTTRDSTATISTICS ', 00320006
'VTEOMLISTGROUPKEY ', 00330006
'VTEXDATE ', 00340006
'VTUNDERFXCOMPONENT ', 00350006
'VTFUTUNDERFXSTRUCT ', 00360006
'VTOPTUNDERFXSTRUCT ', 00370006
'VTLINUNDERFXSTRUCT ', 00380006
'DTUNDERFIXCOMP ', 00390006
'VTCFREINVESTLIST ', 00400006
'VTLISTING ', 00410006
'VTLISTGROUPSCHEME ', 00420006
'VTLISTINGGROUP ', 00430006
'VTLISTINGIDENT ', 00440015
'VTLISTINGIDENT_OLD ', 00440115
'VTINSTRRESTRICTION ', 00442015
'VTINSTRRESTRICTION_OLD') 00450008
ORDER BY P.CREATOR, P.NAME 00460013
00470000
; 00480000
X 00490000
CREATE TABLE GDB0414.VTRESTRICTIONSUSP 00500000
CREATE TABLE GDB0414.VTCSMFSMANDDETAIL 00510000
CREATE TABLE GDB0414.VTCONDITIONTRACK 00520000
CREATE TABLE GDB0413.VTCONDCOMPONENTPRO 00530000
CREATE TABLE GDB0408.VTCFCONDITION 00540000
ALTER TABLE GDB0413.VTTRUST ADD 00550000
ALTER TABLE GDB0413.VTTRUSTDETAIL ADD 00560000
ALTER TABLE GDB0414.CTINSTRSP42DETAILS 00570000
ALTER TABLE GDB0414.CTINSTRSP42DETAILS 00580000
ALTER TABLE GDB0414.CTINSTRSP42DETAILS 00590000
ALTER TABLE GDB0415.VTUNDERFIXREFCOMP 00600000
ALTERFORGETDATA TABLE GDB0413.VTTRADINGPLACE 00610000
ALTERFORGETDATA TABLE GDB0413.VTTIMEZONEINFO 00620000
ALTERFORGETDATA TABLE GDB0413.VTSPECTRADINGDAY 00630000
ALTERNODATA TABLE GDB0415.VTUNDERFIXINGREF 00640000
ALTERNODATA TABLE GDB0411.VTMANDATORYEXDATE 00650000
ALTERNODATA TABLE GDB0412.VTOFFERCONDEXDATE 00660000
ALTERNODATA TABLE GDB0415.VTCFEVENTEXDATE 00670000
ALTERNODATA TABLE GDB0414.VTCASHFLOWREINLIST 00680000
ALTERNODATA TABLE GDB0413.VTTRDPHYSSECCHANGE 00690000
ALTERNODATA TABLE GDB0413.VTTRDPHYSSECOFUNC 00700000
ALTERNODATA TABLE GDB0413.VTTRDPHYSSECTRANS 00710000
ALTERNODATA TABLE GDB0413.VTTRDPHYSSECVALID 00720000
ALTERNODATA TABLE GDB0409.VTCONTRACTSPECIFIC 00730000
ALTERNODATA TABLE GDB0413.VTTRDSTATISTICS 00740000
ALTERNODATA TABLE GDB0409.VTEOMLISTGROUPKEY 00750000
ALTERDATARENAMECOL TABLE GDB0409.VTEXDATE 00760000
ALTERDATARENAMECOL TABLE GDB0415.VTUNDERFXCOMPONENT 00770000
ALTERDATARENAMECOL TABLE GDB0409.VTFUTUNDERFXSTRUCT 00780000
ALTERDATARENAMECOL TABLE GDB0412.VTOPTUNDERFXSTRUCT 00790000
ALTERDATARENAMECOL TABLE GDB0411.VTLINUNDERFXSTRUCT 00800000
ALTERDATARENAMECOL TABLE GDB0414.DTUNDERFIXCOMP 00810000
ALTERDATARENAMECOL TABLE GDB0408.VTCFREINVESTLIST 00820000
ALTERDATARENAMECOL TABLE GDB0411.VTLISTING 00830000
ALTERDATARENAMECOL TABLE GDB0411.VTLISTGROUPSCHEME 00840000
ALTERDATARENAMECOL TABLE GDB0411.VTLISTINGGROUP 00850000
ALTERDATAMANUAL TABLE GDB0411.VTINSTRRESTRICTION 00860000
}¢--- A540769.WK.SQL(GUBLERAL) cre=2006-06-19 mod=2006-06-19-18.18.26 F540769 ---
SET CURRENT SQLID = 'S100447'; 00001001
CREATE ALIAS VDPS.XPS_VLIID002_V04 FOR VDPS2.XPS_VLIID002_V04; 00001208
COMMIT; 00001309
CREATE ALIAS VDPS.XPS_VLIID002_V02 FOR VDPS2.XPS_VLIID002_V02; 00001408
COMMIT; 00001608
X 00001708
CREATE ALIAS S107189.VTCAFLCOMPENSATION FOR VDPS2.VTCAFLCOMPENSATION; 00001808
CREATE ALIAS S107189.VTCASHFLOWCURROPT FOR VDPS2.VTCASHFLOWCURROPT ; 00001908
CREATE ALIAS S107189.VTCFDETAIL FOR VDPS2.VTCFDETAIL ; 00002008
CREATE ALIAS S107189.VTCFEXPRICEPART FOR VDPS2.VTCFEXPRICEPART ; 00002108
CREATE ALIAS S107189.VTCFFIXEDEXCHRATE FOR VDPS2.VTCFFIXEDEXCHRATE ; 00002208
CREATE ALIAS S107189.VTCFNUMBERFINAL FOR VDPS2.VTCFNUMBERFINAL ; 00002308
CREATE ALIAS S107189.VTCFNUMBERRANGE FOR VDPS2.VTCFNUMBERRANGE ; 00002408
CREATE ALIAS S107189.VTCASHFLOWREINLIST FOR VDPS2.VTCASHFLOWREINLIST; 00002508
CREATE ALIAS S107189.VTCASHFLOWREINVEST FOR VDPS2.VTCASHFLOWREINVEST; 00002608
CREATE ALIAS S107189.VTCFREPAYMENT FOR VDPS2.VTCFREPAYMENT ; 00002708
CREATE ALIAS S107189.VTCFCOMPONENTPROP FOR VDPS2.VTCFCOMPONENTPROP ; 00002808
CREATE ALIAS S107189.VTCASHFLOWTAXAMT FOR VDPS2.VTCASHFLOWTAXAMT ; 00002908
CREATE ALIAS S107189.VTCASHFLSUBPERIOD FOR VDPS2.VTCASHFLSUBPERIOD ; 00003008
CREATE ALIAS S107189.VTCFEVENTEXDATE FOR VDPS2.VTCFEVENTEXDATE ; 00003108
CREATE ALIAS S107189.VTCFEVNTEXDTLIQAMT FOR VDPS2.VTCFEVNTEXDTLIQAMT; 00003208
CREATE ALIAS S107189.VTCSEVENTDETAIL FOR VDPS2.VTCSEVENTDETAIL ; 00003308
CREATE ALIAS S107189.VTELIGIBLINSTRPROP FOR VDPS2.VTELIGIBLINSTRPROP; 00003408
CREATE ALIAS S107189.VTEVENTRESTRICTION FOR VDPS2.VTEVENTRESTRICTION; 00003508
CREATE ALIAS S107189.VTINSTRUMENTEVENT FOR VDPS2.VTINSTRUMENTEVENT ; 00003608
CREATE ALIAS S107189.VTTAXRATETAXAMOUNT FOR VDPS2.VTTAXRATETAXAMOUNT; 00003708
CREATE ALIAS S107189.VTTOFF FOR VDPS2.VTTOFF ; 00003808
CREATE ALIAS S107189.VTUNDERFIXING FOR VDPS2.VTUNDERFIXING ; 00003908
CREATE ALIAS S107189.VTUNDERFXCOMPONENT FOR VDPS2.VTUNDERFXCOMPONENT; 00004008
CREATE ALIAS S107189.VTCFVARINTRTFIXING FOR VDPS2.VTCFVARINTRTFIXING; 00004108
CREATE ALIAS S107189.VTHYBRIINSTRDETAIL FOR VDPS2.VTHYBRIINSTRDETAIL; 00004208
CREATE ALIAS S107189.VTPAIRINSTRUMENT FOR VDPS2.VTPAIRINSTRUMENT ; 00004308
CREATE ALIAS S107189.VTUNDERFIXINGREF FOR VDPS2.VTUNDERFIXINGREF ; 00004408
CREATE ALIAS S107189.VTUNDERFIXREFCOMP FOR VDPS2.VTUNDERFIXREFCOMP ; 00004508
CREATE ALIAS S107189.VTCFEXERCISE FOR VDPS2.VTCFEXERCISE ; 00004608
CREATE ALIAS S107189.VTCFEVENT FOR VDPS2.VTCFEVENT ; 00004708
CREATE ALIAS S107189.VTCASHFLOWAMOUNT FOR VDPS2.VTCASHFLOWAMOUNT ; 00004808
COMMIT; 00005007
CREATE ALIAS VDPS.VTCAFLCOMPENSATION FOR VDPS2.VTCAFLCOMPENSATION; 00010003
CREATE ALIAS VDPS.VTCASHFLOWCURROPT FOR VDPS2.VTCASHFLOWCURROPT ; 00020003
CREATE ALIAS VDPS.VTCFDETAIL FOR VDPS2.VTCFDETAIL ; 00030003
CREATE ALIAS VDPS.VTCFEXPRICEPART FOR VDPS2.VTCFEXPRICEPART ; 00040003
CREATE ALIAS VDPS.VTCFFIXEDEXCHRATE FOR VDPS2.VTCFFIXEDEXCHRATE ; 00050003
CREATE ALIAS VDPS.VTCFNUMBERFINAL FOR VDPS2.VTCFNUMBERFINAL ; 00060003
CREATE ALIAS VDPS.VTCFNUMBERRANGE FOR VDPS2.VTCFNUMBERRANGE ; 00070003
CREATE ALIAS VDPS.VTCASHFLOWREINLIST FOR VDPS2.VTCASHFLOWREINLIST; 00080003
CREATE ALIAS VDPS.VTCASHFLOWREINVEST FOR VDPS2.VTCASHFLOWREINVEST; 00090003
CREATE ALIAS VDPS.VTCFREPAYMENT FOR VDPS2.VTCFREPAYMENT ; 00100003
CREATE ALIAS VDPS.VTCFCOMPONENTPROP FOR VDPS2.VTCFCOMPONENTPROP ; 00110003
CREATE ALIAS VDPS.VTCASHFLOWTAXAMT FOR VDPS2.VTCASHFLOWTAXAMT ; 00120003
CREATE ALIAS VDPS.VTCASHFLSUBPERIOD FOR VDPS2.VTCASHFLSUBPERIOD ; 00130003
CREATE ALIAS VDPS.VTCFEVENTEXDATE FOR VDPS2.VTCFEVENTEXDATE ; 00140003
CREATE ALIAS VDPS.VTCFEVNTEXDTLIQAMT FOR VDPS2.VTCFEVNTEXDTLIQAMT; 00150003
CREATE ALIAS VDPS.VTCSEVENTDETAIL FOR VDPS2.VTCSEVENTDETAIL ; 00160003
CREATE ALIAS VDPS.VTELIGIBLINSTRPROP FOR VDPS2.VTELIGIBLINSTRPROP; 00170003
CREATE ALIAS VDPS.VTEVENTRESTRICTION FOR VDPS2.VTEVENTRESTRICTION; 00180003
CREATE ALIAS VDPS.VTINSTRUMENTEVENT FOR VDPS2.VTINSTRUMENTEVENT ; 00190003
CREATE ALIAS VDPS.VTTAXRATETAXAMOUNT FOR VDPS2.VTTAXRATETAXAMOUNT; 00200003
CREATE ALIAS VDPS.VTTOFF FOR VDPS2.VTTOFF ; 00210003
CREATE ALIAS VDPS.VTUNDERFIXING FOR VDPS2.VTUNDERFIXING ; 00220003
CREATE ALIAS VDPS.VTUNDERFXCOMPONENT FOR VDPS2.VTUNDERFXCOMPONENT; 00230003
CREATE ALIAS VDPS.VTCFVARINTRTFIXING FOR VDPS2.VTCFVARINTRTFIXING; 00240003
CREATE ALIAS VDPS.VTHYBRIINSTRDETAIL FOR VDPS2.VTHYBRIINSTRDETAIL; 00250003
CREATE ALIAS VDPS.VTPAIRINSTRUMENT FOR VDPS2.VTPAIRINSTRUMENT ; 00260003
CREATE ALIAS VDPS.VTUNDERFIXINGREF FOR VDPS2.VTUNDERFIXINGREF ; 00270003
CREATE ALIAS VDPS.VTUNDERFIXREFCOMP FOR VDPS2.VTUNDERFIXREFCOMP ; 00280003
CREATE ALIAS VDPS.VTCFEXERCISE FOR VDPS2.VTCFEXERCISE ; 00290003
CREATE ALIAS VDPS.VTCFEVENT FOR VDPS2.VTCFEVENT ; 00300003
CREATE ALIAS VDPS.VTCASHFLOWAMOUNT FOR VDPS2.VTCASHFLOWAMOUNT ; 00310003
-- ATE ALIAS VDPS.VTDENOMPROPERTIES FOR VDPS2.VTDENOMPROPERTIES ; 00320003
-- ATE ALIAS VDPS.VTINSTRADMINCFDATE FOR VDPS2.VTINSTRADMINCFDATE; 00330003
-- ATE ALIAS VDPS.VTINSTRADMINCFFEE FOR VDPS2.VTINSTRADMINCFFEE ; 00340004
-- ATE ALIAS VDPS.VTINSTRADMINCFPUBL FOR VDPS2.VTINSTRADMINCFPUBL; 00350005
-- ATE ALIAS VDPS.VTINSTRADMINICF FOR VDPS2.VTINSTRADMINICF ; 00360006
}¢--- A540769.WK.SQL(GUBLERDR) cre=2006-06-19 mod=2006-06-19-16.02.25 F540769 ---
SET CURRENT SQLID = 'S100447'; 00001000
XROP TABLESPACE VV27A1A.VDPS342; 00002001
DROP TABLESPACE VV27A1A.VDPS343; 00003000
DROP TABLESPACE VV27A1A.VDPS344; 00004000
DROP TABLESPACE VV27A1A.VDPS345; 00005000
DROP TABLESPACE VV27A1A.VDPS346; 00006000
DROP TABLESPACE VV27A1A.VDPS347; 00007000
COMMIT; 00007100
DROP TABLESPACE VV27A1A.VDPS348; 00008000
DROP TABLESPACE VV27A1A.VDPS349; 00009000
DROP TABLESPACE VV27A1A.VDPS350; 00010000
DROP TABLESPACE VV28A1A.VDPS351; 00020000
DROP TABLESPACE VV28A1A.VDPS352; 00030000
DROP TABLESPACE VV28A1A.VDPS353; 00040000
DROP TABLESPACE VV28A1A.VDPS354; 00050000
COMMIT; 00051000
DROP TABLESPACE VV28A1A.VDPS355; 00060000
DROP TABLESPACE VV28A1A.VDPS356; 00070000
DROP TABLESPACE VV28A1A.VDPS357; 00080000
DROP TABLESPACE VV28A1A.VDPS358; 00090000
DROP TABLESPACE VV28A1A.VDPS359; 00100000
DROP TABLESPACE VV28A1A.VDPS360; 00110000
DROP TABLESPACE VV28A1A.VDPS361; 00120000
DROP TABLESPACE VV28A1A.VDPS362; 00130000
DROP TABLESPACE VV28A1A.VDPS363; 00140000
COMMIT; 00141000
DROP TABLESPACE VV28A1A.VDPS364; 00150000
DROP TABLESPACE VV28A1A.VDPS365; 00160000
DROP TABLESPACE VV28A1A.VDPS366; 00170000
DROP TABLESPACE VV28A1A.VDPS367; 00180000
DROP TABLESPACE VV28A1A.VDPS368; 00190000
DROP TABLESPACE VV28A1A.VDPS369; 00200000
DROP TABLESPACE VV28A1A.VDPS370; 00210000
DROP TABLESPACE VV28A1A.VDPS371; 00220000
COMMIT; 00221000
DROP TABLESPACE VV28A1A.VDPS390; 00230000
DROP TABLESPACE VV22A1A.VDPS069; 00240000
DROP TABLESPACE VV23A1A.VDPS123; 00250000
DROP TABLESPACE VV23A1A.VDPS124; 00260000
DROP TABLESPACE VV23A1A.VDPS125; 00270000
DROP TABLESPACE VV23A1A.VDPS126; 00280000
}¢--- A540769.WK.SQL(GUBLERVT) cre=2006-09-19 mod=2006-09-19-17.53.17 F540769 ---
------------------------------------------------------------------------
-- --
-- Database 2 Administration Tool (DB2 Admin) , program 5697-L90 (C) --
-- --
-- ADB2GEN - Extract object definitions from the DB2 Catalog tables --
-- --
-- Input prepared on : DBAF (810) Extract time : 2006-09-19 17:50 --
-- --
-- Catalog values overridden : none
-- --
-- Generate : SG=N DB=Y TS=Y TB=Y VW=Y IX=Y SY=Y AL=Y LB=Y CM=Y FK=Y --
-- TG=Y UT=N UF=N SP=N SQ=N --
-- Grants : SG=N DB=Y TS=N TB=N VW=N SC=N UT=N UF=N SP=N SQ=N --
-- --
------------------------------------------------------------------------
--
SET CURRENT SQLID='S100447';
------------------------------------------------------------------------
-- --
-- ADB2GEN: Generate DDL for Tablespace=VDPS185 In Database DA540769 --
-- --
------------------------------------------------------------------------
--
------------------------------------------------------------------------
-- Database=DA540769 Stogroup=GSMS
-- Tablespace=DA540769.VDPS185
------------------------------------------------------------------------
--
CREATE TABLESPACE VDPS185
IN DA540769
USING STOGROUP GSMS
PRIQTY 72000 SECQTY 14400
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP32K
LOCKSIZE ROW
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID EBCDIC
DEFINE YES
MAXROWS 255;
--
------------------------------------------------------------------------
-- Table=A540769.VTLISTING In DA540769.VDPS185
------------------------------------------------------------------------
--
CREATE TABLE A540769.VTLISTING
(INSTRUMENTID INTEGER NOT NULL,
LISTINGNO INTEGER NOT NULL,
PROVIDER1ID CHAR(30) FOR SBCS DATA WITH DEFAULT NULL,
PROVIDER2ID CHAR(30) FOR SBCS DATA WITH DEFAULT NULL,
PROVIDER3ID CHAR(30) FOR SBCS DATA WITH DEFAULT NULL,
CREATETIMESTAMP VARCHAR(30) FOR SBCS DATA
WITH DEFAULT NULL,
UPDATETIMESTAMP VARCHAR(30) FOR SBCS DATA
WITH DEFAULT NULL,
ISMAINTRADINGPLACE SMALLINT WITH DEFAULT NULL,
ISHOMETRADINGPLACE SMALLINT WITH DEFAULT NULL,
ISONLIMITEDHALT SMALLINT WITH DEFAULT NULL,
HASNOMCURRSETTLE SMALLINT WITH DEFAULT NULL,
TRADINGPLACE INTEGER WITH DEFAULT NULL,
CURRENCY INTEGER WITH DEFAULT NULL,
MARKTPRACTIDSYMBOL CHAR(30) FOR SBCS DATA WITH DEFAULT NULL,
FIRSTTRADINGDATE VARCHAR(30) FOR SBCS DATA
WITH DEFAULT NULL,
LASTTRADINGDATE VARCHAR(30) FOR SBCS DATA
WITH DEFAULT NULL,
HALTFROMDATE VARCHAR(30) FOR SBCS DATA
WITH DEFAULT NULL,
HALTUNTILDATE VARCHAR(30) FOR SBCS DATA
WITH DEFAULT NULL,
FIRSTTRDDTAFHALT VARCHAR(30) FOR SBCS DATA
WITH DEFAULT NULL,
TRADINGSTATUSTYPE SMALLINT WITH DEFAULT NULL,
LISTINGSTATUSTYPE SMALLINT WITH DEFAULT NULL,
EXCHANGERATETYPE SMALLINT WITH DEFAULT NULL,
LISTPURPOSETYPE SMALLINT WITH DEFAULT NULL,
TRADINGSTATUSTYPEV VARCHAR(254) FOR SBCS DATA
WITH DEFAULT NULL,
LISTINGSTATUSTYPEV VARCHAR(254) FOR SBCS DATA
WITH DEFAULT NULL,
EXCHANGERATETYPEV VARCHAR(254) FOR SBCS DATA
WITH DEFAULT NULL,
LISTPURPOSETYPEV VARCHAR(254) FOR SBCS DATA
WITH DEFAULT NULL,
SHORTNAME_G VARCHAR(254) FOR SBCS DATA
WITH DEFAULT NULL,
SHORTNAME_E VARCHAR(254) FOR SBCS DATA
WITH DEFAULT NULL,
SHORTNAME_F VARCHAR(254) FOR SBCS DATA
WITH DEFAULT NULL,
SHORTNAME_I VARCHAR(254) FOR SBCS DATA
WITH DEFAULT NULL,
SHORTNAME_N VARCHAR(254) FOR SBCS DATA
WITH DEFAULT NULL,
DESCRIPTION_G VARCHAR(1000) FOR SBCS DATA
WITH DEFAULT NULL,
DESCRIPTION_E VARCHAR(1000) FOR SBCS DATA
WITH DEFAULT NULL,
DESCRIPTION_F VARCHAR(1000) FOR SBCS DATA
WITH DEFAULT NULL,
DESCRIPTION_I VARCHAR(1000) FOR SBCS DATA
WITH DEFAULT NULL,
DESCRIPTION_N VARCHAR(1000) FOR SBCS DATA
WITH DEFAULT NULL,
CSLISTINGCODETYPE SMALLINT WITH DEFAULT NULL,
CSLISTINGCODETYPEV VARCHAR(254) FOR SBCS DATA
WITH DEFAULT NULL,
HASINDMARPRACTICE SMALLINT WITH DEFAULT NULL,
PRICINGUNITNO FLOAT WITH DEFAULT NULL,
PRICINGCORRFACTOR FLOAT WITH DEFAULT NULL,
NONVERSEAMOUNT FLOAT WITH DEFAULT NULL,
VOLUMEAMOUNT FLOAT WITH DEFAULT NULL,
TRADINGUNITNO FLOAT WITH DEFAULT NULL,
PRICINGUNITTYPE SMALLINT WITH DEFAULT NULL,
QUOTATIONTYPE SMALLINT WITH DEFAULT NULL,
VOLUMEUNITTYPE SMALLINT WITH DEFAULT NULL,
ACCRUEDINTCALCTP SMALLINT WITH DEFAULT NULL,
FLATREASONTYPE SMALLINT WITH DEFAULT NULL,
TRADINGUNITTYPE SMALLINT WITH DEFAULT NULL,
TRADINGRULETYPE SMALLINT WITH DEFAULT NULL,
PRICINGUNITTYPEV VARCHAR(254) FOR SBCS DATA
WITH DEFAULT NULL,
QUOTATIONTYPEV VARCHAR(254) FOR SBCS DATA
WITH DEFAULT NULL,
VOLUMEUNITTYPEV VARCHAR(254) FOR SBCS DATA
WITH DEFAULT NULL,
ACCRUEDINTCALCTPV VARCHAR(254) FOR SBCS DATA
WITH DEFAULT NULL,
FLATREASONTYPEV VARCHAR(254) FOR SBCS DATA
WITH DEFAULT NULL,
TRADINGUNITTYPEV VARCHAR(254) FOR SBCS DATA
WITH DEFAULT NULL,
TRADINGRULETYPEV VARCHAR(254) FOR SBCS DATA
WITH DEFAULT NULL,
VALUEPRICETYPE SMALLINT WITH DEFAULT NULL,
VALUEPRICETYPEV VARCHAR(254) FOR SBCS DATA
WITH DEFAULT NULL,
HASLISTINGDETAIL SMALLINT WITH DEFAULT NULL,
EXCHANGETYPE SMALLINT WITH DEFAULT NULL,
EXCHANGETYPEV VARCHAR(254) FOR SBCS DATA
WITH DEFAULT NULL,
CONSTRAINT INSTRUMENTID
PRIMARY KEY (INSTRUMENTID,
LISTINGNO))
IN DA540769.VDPS185
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE;
--
------------------------------------------------------------------------
-- Database=DA540769
-- Index=A540769.VTXLISTING1 On A540769.VTLISTING
------------------------------------------------------------------------
--
CREATE UNIQUE INDEX A540769.VTXLISTING1
ON A540769.VTLISTING
(INSTRUMENTID ASC,
LISTINGNO ASC)
USING STOGROUP GSMS
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
NOT CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
--
------------------------------------------------------------------------
-- ADB2GEN - End of generated DDL --
------------------------------------------------------------------------
--
}¢--- A540769.WK.SQL(GUIDO) cre=2016-09-07 mod=2016-09-08-13.58.49 A540769 -----
set current query acceleration all;
set current application compatibility 'V11R1';
with u as
( -- cpu pro occurrence
SELECT occurrences occ
, EDB2TCB / occurrences c2c
FROM Pbdd.TACCT_GENERAL
where date(DATETIME) = '2016-08-29'
and occurrences > 0
)
, v as
( -- gruppiere by cpu
SELECT count(*) cnt
, sum(occ) occ
, c2c
FROM u
GROUP BY c2c
)
, w as
( -- gruppiere by cpu range: 3 range pro 10er Potenz
select
sum(occ) occ
, sum(c2c*occ) / sum(occ) c2c
, min(c2c) c2cMin
, max(c2c) c2cMax
from v
group by floor(log10(max(c2c, 1e-9)) * 3)
)
, x as
( -- füge die laufenden Totale dazu
select occ occ1
, sum(occ) over( order by c2cMin
range between unbounded preceding and current row
) occCum
, c2c c2c1
, sum(c2c) over( order by c2cMin
range between unbounded preceding and current row
) c2cCum
, w.*
from w
)
select *
from x
order by c2cMin
}¢--- A540769.WK.SQL(HAERDI) cre=2006-12-15 mod=2007-03-19-11.10.21 F540769 ----
select count(*), ndep
from oa1t.twm005a1
group by ndep
order by 1 desc
with ur
;
x
select count(*), nDep
from oa1t.twm005a1
-- where cTyp = 'VEVA'
group by nTyp, twmd1
order by 1 desc
;
}¢--- A540769.WK.SQL(HAERDIQ) cre=2006-12-15 mod=2006-12-15-13.51.19 F540769 ---
DELETE FROM PLAN_TABLE
WHERE QUERYNO = 123
;
SELECT CURRENT TIMESTAMP FROM SYSIBM.SYSDUMMY1;
EXPLAIN PLAN
SET QUERYNO = 123 FOR
SELECT *
FROM OA1A.TWM005A1
WHERE D$GUEA <= '2006-12-15-12.38.27.000001'
AND D$GUEB >= '2006-12-15-12.38.27.000001'
AND CSTAT BETWEEN 'A' AND 'A'
AND CDEFAULT BETWEEN X'00' AND X'FF'
AND CTYP = 'VEVA'
AND NDEP = '0835000000185000' || ''
AND TWMD1 = '412'
;
SELECT * FROM PLAN_VIEW5 WHERE QUERYNO = 123
-- SELECT CURRENT TIMESTAMP FROM SYSIBM.SYSDUMMY1
;
X- EXPLAIN PLAN
-- SET QUERYNO = 123 FOR
SELECT *
FROM OA1A.TWM005A1
WHERE D$GUEA <= '2006-12-15-12.38.27.000001'
AND D$GUEB >= '2006-12-15-12.38.27.000001'
AND CSTAT BETWEEN 'A' AND 'A'
AND CDEFAULT BETWEEN X'00' AND X'FF'
AND CTYP = 'VEVA'
AND NDEP = ''
AND TWMD1 = '412'
;
-- SELECT * FROM PLAN_VIEW5 WHERE QUERYNO = 123
SELECT CURRENT TIMESTAMP FROM SYSIBM.SYSDUMMY1
;
-- EXPLAIN PLAN
-- SET QUERYNO = 123 FOR
SELECT *
FROM OA1A.TWM005A1
WHERE D$GUEA <= '2006-12-15-12.38.27.000001'
AND D$GUEB >= '2006-12-15-12.38.27.000001'
AND CSTAT BETWEEN 'A' AND 'A'
AND CDEFAULT BETWEEN X'00' AND X'FF'
AND CTYP = 'VEVA'
AND NBU = '0005'
AND NDEP = ''
AND TWMD1 = ''
;
SELECT CURRENT TIMESTAMP FROM SYSIBM.SYSDUMMY1
-- SELECT * FROM PLAN_VIEW5 WHERE QUERYNO = 123
;
}¢--- A540769.WK.SQL(HAERDI2) cre=2007-03-19 mod=2007-03-19-11.12.20 F540769 ---
select current timestamp from sysibm.sysdummy1;
SELECT DISTINCT count(UWM005) FROM oa1t.TWM005A1
where NDEP = ' '
-- where NDEP = '0183029662185000'
with ur
;
select current timestamp from sysibm.sysdummy1;
}¢--- A540769.WK.SQL(HAEUPT) cre=2006-07-07 mod=2006-07-07-15.58.31 F540769 ----
select a3.wk001name, a3.wk001num, a1.wk001name, a1.wk001num
from A540769.TWK001A a1,
A540769.TWK001A a2,
A540769.TWK001A a3
where a2.wk001num =
( select max(q.wk001num)
from A540769.TWK001A q
where q.wk001num < a1.wk001num
)
and a3.wk001num =
( select max(q.wk001num)
from A540769.TWK001A q
where q.wk001num < a2.wk001num
)
;
delete
from A540769.TWK001A a3
where exists
( select *
from A540769.TWK001A a1,
A540769.TWK001A a2
where a2.wk001num =
( select max(q.wk001num)
from A540769.TWK001A q
where q.wk001num < a1.wk001num
)
and a3.wk001num =
( select max(q.wk001num)
from A540769.TWK001A q
where q.wk001num < a2.wk001num
)
)
;
rollback
;
select a1.wk001name, a1.wk001num
from A540769.TWK001A a1
where 3 <=
( select count(distinct q.wk001num)
from A540769.TWK001A q
where q.wk001num > a1.wk001num
)
;
xx
;
insert into gdb0351.vfi020h1
select distinct
k.tkkey ,k.boerse ,k.whrg ,k.kursdatum ,k.tk_kurstyp
,k.tk_zusatz ,k.generation ,k.mut_timestamp ,k.cs_ka_num
,k.sett_code ,k.kurs_lieferung ,k.kurs_umrechnung ,k.whr_umr
,k.menge ,k.boerse_tk ,k.erstellung ,k.flag_p ,k.status
,k.gueltig_von ,k.quelle ,k.log_eintrag ,k.instrad ,k.mut_stat
,k.ks_bpl_st ,k.ks_bpl_ht ,k.ks_bpl_ks ,k.ks_alt_ks ,k.ks_bpl_ha
,k.ks_ais_sp ,k.ks_bpl_in ,k.ks_bpl_sp
from gdb0351.vfi020a1 k,
(select k1.tkkey ,k1.boerse ,k1.whrg ,k5.kursdatum
from gdb0351.vfi020a1 k1,gdb0351.vfi020a1 k2,gdb0351.vfi020a1 k3,
gdb0351.vfi020a1 k4,gdb0351.vfi020a1 k5
where k1.tkkey=k2.tkkey
and k1.tkkey=k3.tkkey
and k1.tkkey=k4.tkkey
and k1.tkkey=k5.tkkey
and k1.boerse=k2.boerse
and k1.boerse=k3.boerse
and k1.boerse=k4.boerse
and k1.boerse=k5.boerse
and k1.whrg=k2.whrg
and k1.whrg=k3.whrg
and k1.whrg=k4.whrg
and k1.whrg=k5.whrg
and k1.kursdatum=(select max(kursdatum) from gdb0351.vfi020a1
where tkkey=k1.tkkey
and boerse=k1.boerse
and whrg=k1.whrg )
and k2.kursdatum=(select max(kursdatum) from gdb0351.vfi020a1
where tkkey=k1.tkkey
and boerse=k1.boerse
and whrg=k1.whrg
and kursdatum<k1.kursdatum )
and k3.kursdatum=(select max(kursdatum) from gdb0351.vfi020a1
where tkkey=k1.tkkey
and boerse=k1.boerse
and whrg=k1.whrg
and kursdatum<k2.kursdatum )
and k4.kursdatum=(select max(kursdatum) from gdb0351.vfi020a1
where tkkey=k1.tkkey
and boerse=k1.boerse
and whrg=k1.whrg
and kursdatum<k3.kursdatum )
and k5.kursdatum=(select max(kursdatum) from gdb0351.vfi020a1
where tkkey=k1.tkkey
and boerse=k1.boerse
and whrg=k1.whrg
and kursdatum<k4.kursdatum ) gdb0351.vfi020a1
--and k1.tkkey=1213853
--and k1.boerse='000000000380'
--and k1.whrg='0010'
) k0
where k.tkkey=k0.tkkey
and k.boerse=k0.boerse
and k.whrg=k0.whrg
and k.kursdatum<k0.kursdatum
--fetch first 1000 rows only
--with ur
----------------------
xelete from gdb0351.vfi020a1 k where exists
(select k1.tkkey ,k1.boerse ,k1.whrg ,k5.kursdatum
from gdb0351.vfi020a1 k1,gdb0351.vfi020a1 k2,gdb0351.vfi020a1 k3,
gdb0351.vfi020a1 k4,gdb0351.vfi020a1 k5
where k1.tkkey=k2.tkkey
and k1.tkkey=k3.tkkey
and k1.tkkey=k4.tkkey
and k1.tkkey=k5.tkkey
and k1.boerse=k2.boerse
and k1.boerse=k3.boerse
and k1.boerse=k4.boerse
and k1.boerse=k5.boerse
and k1.whrg=k2.whrg
and k1.whrg=k3.whrg
and k1.whrg=k4.whrg
and k1.whrg=k5.whrg
and k1.kursdatum=(select max(kursdatum) from gdb0351.vfi020a1
where tkkey=k1.tkkey
and boerse=k1.boerse
and whrg=k1.whrg )
and k2.kursdatum=(select max(kursdatum) from gdb0351.vfi020a1
where tkkey=k1.tkkey
and boerse=k1.boerse
and whrg=k1.whrg
and kursdatum<k1.kursdatum )
and k3.kursdatum=(select max(kursdatum) from gdb0351.vfi020a1
where tkkey=k1.tkkey
and boerse=k1.boerse
and whrg=k1.whrg
and kursdatum<k3.kursdatum )
and k5.kursdatum=(select max(kursdatum) from gdb0351.vfi020a1
where tkkey=k1.tkkey
and boerse=k1.boerse
and whrg=k1.whrg
and kursdatum<k4.kursdatum )
and k1.tkkey=1213853
and k1.boerse='000000000380'
and k1.whrg='0010'
) -- k0
-- and k.tkkey=k0.tkkey
---and k.boerse=k0.boerse
-- an d k.whrg=k0.whrg
-- and k.kursdatum<k0.kursdatum
;
rollback
;
}¢--- A540769.WK.SQL(HANS) cre=2010-03-18 mod=2010-03-19-09.45.17 A540769 ------
SET CURRENT SQLID='S100447';
drop table oA1T.tadm35A1;
CREATE TABLE OA1T.TADM35A1
(DB_NAME CHAR(8) NOT NULL,
DD_NAME CHAR(8) NOT NULL,
high_used_rba DECIMAL(10) not null with DEFAULT,
free_block_pct DECIMAL(6, 2) not null with DEFAULT,
cisplit DECIMAL(5) not null with DEFAULT,
casplit DECIMAL(5) not null with DEFAULT,
extents DECIMAL(4) not null with DEFAULT,
BLock_beyond DECIMAL(6) not null with DEFAULT,
over_flow_pct DECIMAL(6,2) not null with DEFAULT,
syn_chain DECIMAL(2, 0) not null with DEFAULT
)
IN DB2ADMIN.A035A;
insert into oa1t.tadm35a1 (db_name, dd_name) values('db', 'dd');
commit ;
}¢--- A540769.WK.SQL(HEX) cre=2013-05-10 mod=2013-05-10-13.19.17 A540769 -------
select hex(x'00000101'), hex(int(257))
from sysibm.sysDummy1
}¢--- A540769.WK.SQL(HOSTVARS) cre=2011-10-20 mod=2011-10-21-10.15.55 A540769 ---
$#@
call sqlConnect dbaf
call sqlPrepare 1, 'select count(*) from sysibm.sysTables' ,
' where name like ? and createdTS > ?'
c = sqlOpAllCl(1, st, ':cc', 'TWK60%', '1956-04-01-06.07.08.901234')
say 'sqlOpAllCl='c ' twk60%' cc
c = sqlOpAllCl(1, st, ':cc', 'TWK2%', '1967-05-31-06.07.08.901234')
say 'sqlOpAllCl='c ' twk2%' cc
c = sqlOpAllCl(1, st, ':cc', 'SYST%', '1978-06-30-12.34.56.789012')
say 'sqlOpAllCl='c 'sysT%' cc
call sqlPrepare 2, 'select count(*) from A540769.twk600a001' ,
' where i1 = ? and v2 > ? and upd > ?'
c = sqlOpAllCl(2, st, ':cc', 411, 'abc', '1956-04-01-06.07.08.901234')
say 'sqlOpAllCl='c '411 abc 1956-04-01' cc
$#out 20111021 10:06:36
$#out 20111021 10:06:32
$#out 20111021 10:05:59
$#out 20111021 10:00:19
$#out 20111021 09:58:17
$#out 20111021 09:58:04
$#out 20111021 09:37:18
$#out 20111021 09:37:14
$#out 20111021 09:36:53
$#out 20111020 16:40:12
$#out 20111020 16:40:03
$#out 20111020 16:34:00
$#out 20111020 16:33:55
$#out 20111020 16:31:28
$#out 20111020 16:31:24
$#out 20111020 16:31:03
$#out 20111020 16:30:56
$#out 20111020 16:30:49
$#out 20111020 16:30:42
$#out 20111020 16:30:36
$#out 20111020 16:30:14
$#out 20111020 16:29:06
$#out 20111020 16:27:12
}¢--- A540769.WK.SQL(HUBERT) cre=2006-12-05 mod=2006-12-05-16.01.13 F540769 ----
set current sqlid = 'A540769';
explain plan for
-- SELECT COALESCE(MAX( eobjid#), 0) + 1
SELECT MAX( eobjid#)
FROM oa1t.VWB173A1A
;
}¢--- A540769.WK.SQL(HUER) cre=2006-06-12 mod=2006-06-12-16.33.03 F540769 ------
-- DROP INDEX OA1A.ITN500A3 ;
-- DROP INDEX OA1A.ITN170A6 ;
DROP INDEX OA1A.ITN100A2 ;
DROP INDEX OA1A.ITN170A5 ;
}¢--- A540769.WK.SQL(HUNGER) cre=2012-06-18 mod=2012-06-18-11.00.34 A540769 ----
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 2 for
SELECT distinct
v858.ident_id AS UserId
,cast(';' as char(1))
,u831.partner_id AS USER_CIF
,cast(';' as char(1))
,SUBSTR(U100.CD100452,9,5) AS U_CUST_OFFICE
,cast(';' as char(1))
,u831.DOMIZIL AS USER_DOM
,cast(';' as char(1))
,U831.CUSTOMER_SEGMENT AS USER_SEGM
,cast(';' as char(1))
,o831.partner_id AS OWNER_CIF
,cast(';' as char(1))
,SUBSTR(U100.CD100452,9,5) AS O_CUST_OFFICE
,cast(';' as char(1))
,O831.DOMIZIL AS OWNER_DOM
,cast(';' as char(1))
,O831.CUSTOMER_SEGMENT AS OWNER_SEGM
,cast(';' as char(1))
,v832.ext_contract_id AS CNTRACT_ID
,cast(';' as char(1))
,v843.tab_text1 AS PROCUCT
,cast(';' as char(1))
,v835.service_key AS SERVICE
,cast(';' as char(1))
,S843.tab_text1 AS SERVICE_TEXT
,cast(';' as char(1))
,V859.SECID1_LAST_LOGON AS LAST_LOGON_SEC1
,cast(';' as char(1))
,V859.SECID2_LAST_LOGON AS LAST_LOGON_SEC2
,cast(';' as char(1))
,CAST((CASE
WHEN((V859.SECID1_LAST_LOGON> V859.SECID2_LAST_LOGON
AND V859.SECID1_LAST_LOGON^='9999-12-31-23.59.59.999999')
OR V859.SECID2_LAST_LOGON='9999-12-31-23.59.59.999999')
THEN V859.SECID1_LAST_LOGON
ELSE V859.SECID2_LAST_LOGON
END) AS CHAR(26)) lastLogon
FROM
oa1t.VKS831A1V O831
,oa1t.VKS831A1V U831
,oa1t.VKS832A1V V832
,oa1t.VKS833A1V V833
,oa1t.VKS835A1V V835
,oa1t.VKS858A1V V858
,oa1t.VKS859A1V V859
,oa1t.VKS843A1V V843
,oa1t.VKS843A1V S843
,oa1t.TCD100A1 U100
,oa1t.TCD100A1 O100
WHERE
V835.PRODUCT_ID IN (
'0095',
'0125',
'0141',
'0148',
'0149',
'0150',
'0151',
'0183',
'0191',
'0192',
'0193' )
and v835.partner_type = 3
AND V835.CONTRACT_KEY = V832.CONTRACT_KEY
AND V835.CONTRACT_KEY = V833.CONTRACT_KEY
and v833.partner_type = 3
AND V833.partner_key = u831.partner_key
AND U831.partner_ID = U100.CD100001
AND V835.arrang_partner_key = O831.partner_key
AND O831.partner_ID = O100.CD100001
and v833.partner_key = V858.partner_key
AND V858.ident_id = V859.ident_id
AND V859.application_type = 15
AND V843.tab_art = 'PRODUCT_ID'
AND V843.tab_code = V835.PRODUCT_ID
AND S843.tab_art = 'SERVICE_ID'
AND S843.tab_code = V835.SERVICE_KEY
AND S843.TAB_LANGUAGE_CODE = '001'
and current date < o831.valid_to_date
and current date < u831.valid_to_date
and current date < v832.valid_to_date
and current date < v833.valid_to_date
and current date < v858.valid_to_date
and current date < v859.valid_to_date
and current date between v835.valid_from_date and
v835.valid_to_date
ORDER BY u831.partner_id
WITH UR;
explain plan set queryno = 3 for
SELECT
v858.ident_id
,CHAR(DECIMAL(COUNT(distinct V841.ACTIVITY_TSTAMP),10,0))
FROM
oa1t.VKS831A1V O831
,oa1t.VKS831A1V U831
,oa1t.VKS832A1V V832
,oa1t.VKS833A1V V833
,oa1t.VKS835A1V V835
,oa1t.VKS858A1V V858
,oa1t.VKS859A1V V859
,oa1t.VKS841H1V V841
WHERE
V835.PRODUCT_ID IN (
'0095',
'0125',
'0141',
'0148',
'0149',
'0150',
'0151',
'0183',
'0191',
'0192',
'0193' )
and v835.partner_type = 3
AND V835.CONTRACT_KEY = V832.CONTRACT_KEY
AND V835.CONTRACT_KEY = V833.CONTRACT_KEY
and v833.partner_type = 3
AND V833.partner_key = u831.partner_key
AND V835.arrang_partner_key = O831.partner_key
and v833.partner_key = V858.partner_key
AND V858.ident_id = V859.ident_id
AND V859.application_type = 15
AND V858.IDENT_ID = V841.LOG_KEY
AND V841.APPLICATION_TYPE = 15
AND V841.LOG_CODE = '0000'
and current date < o831.valid_to_date
and current date < u831.valid_to_date
and current date < v832.valid_to_date
and current date < v833.valid_to_date
and current date < v858.valid_to_date
and current date < v859.valid_to_date
and current date between v835.valid_from_date and
v835.valid_to_date
GROUP BY V858.ident_id
WITH UR;
explain plan set queryno = 23 for
with b as
(
SELECT
v858.ident_id
,CHAR(DECIMAL(COUNT(distinct V841.ACTIVITY_TSTAMP),10,0))
countActTst
FROM
oa1t.VKS831A1V O831
,oa1t.VKS831A1V U831
,oa1t.VKS832A1V V832
,oa1t.VKS833A1V V833
,oa1t.VKS835A1V V835
,oa1t.VKS858A1V V858
,oa1t.VKS859A1V V859
,oa1t.VKS841H1V V841
WHERE
V835.PRODUCT_ID IN (
'0095',
'0125',
'0141',
'0148',
'0149',
'0150',
'0151',
'0183',
'0191',
'0192',
'0193' )
and v835.partner_type = 3
AND V835.CONTRACT_KEY = V832.CONTRACT_KEY
AND V835.CONTRACT_KEY = V833.CONTRACT_KEY
and v833.partner_type = 3
AND V833.partner_key = u831.partner_key
AND V835.arrang_partner_key = O831.partner_key
and v833.partner_key = V858.partner_key
AND V858.ident_id = V859.ident_id
AND V859.application_type = 15
AND V858.IDENT_ID = V841.LOG_KEY
AND V841.APPLICATION_TYPE = 15
AND V841.LOG_CODE = '0000'
and current date < o831.valid_to_date
and current date < u831.valid_to_date
and current date < v832.valid_to_date
and current date < v833.valid_to_date
and current date < v858.valid_to_date
and current date < v859.valid_to_date
and current date between v835.valid_from_date and
v835.valid_to_date
GROUP BY V858.ident_id
)
SELECT distinct
v858.ident_id AS UserId
,cast(';' as char(1))
,u831.partner_id AS USER_CIF
,cast(';' as char(1))
,SUBSTR(U100.CD100452,9,5) AS U_CUST_OFFICE
,cast(';' as char(1))
,u831.DOMIZIL AS USER_DOM
,cast(';' as char(1))
,U831.CUSTOMER_SEGMENT AS USER_SEGM
,cast(';' as char(1))
,o831.partner_id AS OWNER_CIF
,cast(';' as char(1))
,SUBSTR(U100.CD100452,9,5) AS O_CUST_OFFICE
,cast(';' as char(1))
,O831.DOMIZIL AS OWNER_DOM
,cast(';' as char(1))
,O831.CUSTOMER_SEGMENT AS OWNER_SEGM
,cast(';' as char(1))
,v832.ext_contract_id AS CNTRACT_ID
,cast(';' as char(1))
,v843.tab_text1 AS PROCUCT
,cast(';' as char(1))
,v835.service_key AS SERVICE
,cast(';' as char(1))
,S843.tab_text1 AS SERVICE_TEXT
,cast(';' as char(1))
,V859.SECID1_LAST_LOGON AS LAST_LOGON_SEC1
,cast(';' as char(1))
,V859.SECID2_LAST_LOGON AS LAST_LOGON_SEC2
,cast(';' as char(1))
,CAST((CASE
WHEN((V859.SECID1_LAST_LOGON> V859.SECID2_LAST_LOGON
AND V859.SECID1_LAST_LOGON^='9999-12-31-23.59.59.999999')
OR V859.SECID2_LAST_LOGON='9999-12-31-23.59.59.999999')
THEN V859.SECID1_LAST_LOGON
ELSE V859.SECID2_LAST_LOGON
END) AS CHAR(26)) lastLogon
, b.countActTst
FROM
oa1t.VKS831A1V O831
,oa1t.VKS831A1V U831
,oa1t.VKS832A1V V832
,oa1t.VKS833A1V V833
,oa1t.VKS835A1V V835
,oa1t.VKS858A1V V858
,oa1t.VKS859A1V V859
,oa1t.VKS843A1V V843
,oa1t.VKS843A1V S843
,oa1t.TCD100A1 U100
,oa1t.TCD100A1 O100
,b
WHERE
b.ident_id = v858.ident_id
and V835.PRODUCT_ID IN (
'0095',
'0125',
'0141',
'0148',
'0149',
'0150',
'0151',
'0183',
'0191',
'0192',
'0193' )
and v835.partner_type = 3
AND V835.CONTRACT_KEY = V832.CONTRACT_KEY
AND V835.CONTRACT_KEY = V833.CONTRACT_KEY
and v833.partner_type = 3
AND V833.partner_key = u831.partner_key
AND U831.partner_ID = U100.CD100001
AND V835.arrang_partner_key = O831.partner_key
AND O831.partner_ID = O100.CD100001
and v833.partner_key = V858.partner_key
AND V858.ident_id = V859.ident_id
AND V859.application_type = 15
AND V843.tab_art = 'PRODUCT_ID'
AND V843.tab_code = V835.PRODUCT_ID
AND S843.tab_art = 'SERVICE_ID'
AND S843.tab_code = V835.SERVICE_KEY
AND S843.TAB_LANGUAGE_CODE = '001'
and current date < o831.valid_to_date
and current date < u831.valid_to_date
and current date < v832.valid_to_date
and current date < v833.valid_to_date
and current date < v858.valid_to_date
and current date < v859.valid_to_date
and current date between v835.valid_from_date and
v835.valid_to_date
ORDER BY u831.partner_id
WITH UR;
select * from plan_view1
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by --collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(HUNGER1) cre=2012-06-18 mod=2012-06-18-10.27.02 A540769 ---
//STA0152A JOB (SK03,KE50,,SP00000000),
// MSGCLASS=T,
// NOTIFY=&SYSUID,
// TIME=1440
//JOBLIB DD DSN=PCL.U0000.P0.RZ2AKT.PERM.@008.LLB,DISP=SHR
//*MAIN CLASS=SUBP2
//****
//P00 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DEL 'KE.U0000.P0.EBVV.#STA0152.UNLOAD' SCR
IF MAXCC < 9 THEN SET MAXCC = 0
//*
//P02 EXEC PGM=IKJEFT1A,
// DYNAMNBR=20
//SYSPRINT DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSPUNCH DD SYSOUT=*
//SYSREC00 DD DSNAME=KE.U0000.P0.EBVV.#STA0152.UNLOAD,
// MGMTCLAS=COM#A091,
// DISP=(NEW,CATLG,DELETE)
//**********************************************************************
//* Report for Esther Rein N4354, PSENG
//* --------------------------------------------------
//*
//* Output: (last run, but STAT?? unknown)
//* - CifNo Owner
//* - Konzern-Produkt --> 0017
//* - Customer Office Owner and User
//* - Domicile Owner and User
//* - Owner Customer Id Contract id
//* - Segment Owner and User
//* - Client Assets ??
//*
//* Request:
//* Per CCE Owner
//* new Output requested:
//* - UserId
//* - USER_CIF
//* - U_CUST_OFFICE
//* - USER_DOM
//* - USER_SEGM
//* - OWNER_CIF
//* - O_CUST_OFFICE
//* - OWNER_DOM
//* - OWNER_SEGM
//* - CNTRACT_ID
//* - PROCUCT
//* - SERVICE_KEY
//* - SERVICE_TEXT: which services are activated
//* which are used in CCE -> not available in EBVV
//* - LAST_CCE_Login_SEC1
//* - LAST_CCE_LOGON_SEC2
//* - number of logins within 3 months --> STA0153
//* - DN user yes / no --> not necessary, see comments below
//* - last dn Login date --> not necessary, see comments below
//*--------------------------------------------------------------------
//* Are there really customers with Direct Net and Multiuser for
//* same cif? I checked with below query --> that's not standard
//*--------------------------------------------------------------------
//* QMF: COUNTDOPPELTIDENT (of A593397)
//*
//* SELECT V831.PARTNER_ID
//* FROM OA1P.VKS831A1V V831
//* ,OA1P.VKS858A1V C858
//* ,OA1P.VKS858A1V D858
//*
//* WHERE V831.PARTNER_KEY = D858.PARTNER_KEY
//* AND V831.PARTNER_KEY = C858.PARTNER_KEY
//* AND D858.IDENT_TYPE = 1
//* AND C858.IDENT_TYPE = 5
//*
//* GROUP BY V831.PARTNER_ID
//* HAVING COUNT(*) > 1
//*
//* WITH UR;
//*
//*
//* Result: 2 rows
//* --------------
//* 000000000001 TEST_IDENTIFIKATION for Reset
//* 083509400102 284476362015080802-P Testcontract ???
//*
//**********************************************************************
//SYSTSIN DD *
DSN SYSTEM(DBOF)
RUN PROGRAM(DSNTIAUL) PARM('SQL')
//SYSIN DD *
SELECT distinct
v858.ident_id AS UserId
,cast(';' as char(1))
,u831.partner_id AS USER_CIF
,cast(';' as char(1))
,SUBSTR(U100.CD100452,9,5) AS U_CUST_OFFICE
,cast(';' as char(1))
,u831.DOMIZIL AS USER_DOM
,cast(';' as char(1))
,U831.CUSTOMER_SEGMENT AS USER_SEGM
,cast(';' as char(1))
,o831.partner_id AS OWNER_CIF
,cast(';' as char(1))
,SUBSTR(U100.CD100452,9,5) AS O_CUST_OFFICE
,cast(';' as char(1))
,O831.DOMIZIL AS OWNER_DOM
,cast(';' as char(1))
,O831.CUSTOMER_SEGMENT AS OWNER_SEGM
,cast(';' as char(1))
,v832.ext_contract_id AS CNTRACT_ID
,cast(';' as char(1))
,v843.tab_text1 AS PROCUCT
,cast(';' as char(1))
,v835.service_key AS SERVICE
,cast(';' as char(1))
,S843.tab_text1 AS SERVICE_TEXT
,cast(';' as char(1))
,V859.SECID1_LAST_LOGON AS LAST_LOGON_SEC1
,cast(';' as char(1))
,V859.SECID2_LAST_LOGON AS LAST_LOGON_SEC2
,cast(';' as char(1))
,CAST((CASE
WHEN((V859.SECID1_LAST_LOGON> V859.SECID2_LAST_LOGON
AND V859.SECID1_LAST_LOGON^='9999-12-31-23.59.59.999999')
OR V859.SECID2_LAST_LOGON='9999-12-31-23.59.59.999999')
THEN V859.SECID1_LAST_LOGON
ELSE V859.SECID2_LAST_LOGON
END) AS CHAR(26))
FROM
OA1P.VKS831A1V O831
,OA1P.VKS831A1V U831
,OA1P.VKS832A1V V832
,OA1P.VKS833A1V V833
,OA1P.VKS835A1V V835
,OA1P.VKS858A1V V858
,OA1P.VKS859A1V V859
,OA1P.VKS843A1V V843
,OA1P.VKS843A1V S843
,OA1P.TCD100A1 U100
,OA1P.TCD100A1 O100
WHERE
V835.PRODUCT_ID IN (
'0095',
'0125',
'0141',
'0148',
'0149',
'0150',
'0151',
'0183',
'0191',
'0192',
'0193' )
and v835.partner_type = 3
AND V835.CONTRACT_KEY = V832.CONTRACT_KEY
AND V835.CONTRACT_KEY = V833.CONTRACT_KEY
and v833.partner_type = 3
AND V833.partner_key = u831.partner_key
AND U831.partner_ID = U100.CD100001
AND V835.arrang_partner_key = O831.partner_key
AND O831.partner_ID = O100.CD100001
and v833.partner_key = V858.partner_key
AND V858.ident_id = V859.ident_id
AND V859.application_type = 15
AND V843.tab_art = 'PRODUCT_ID'
AND V843.tab_code = V835.PRODUCT_ID
AND S843.tab_art = 'SERVICE_ID'
AND S843.tab_code = V835.SERVICE_KEY
AND S843.TAB_LANGUAGE_CODE = '001'
and current date < o831.valid_to_date
and current date < u831.valid_to_date
and current date < v832.valid_to_date
and current date < v833.valid_to_date
and current date < v858.valid_to_date
and current date < v859.valid_to_date
and current date between v835.valid_from_date and
v835.valid_to_date
ORDER BY u831.partner_id
WITH UR;
//*--------------------------------------------------------------------
//* First run (not all fields available yet) 06.06.2012 CHU A593397
//*--------------------------------------------------------------------
//* SELECT distinct
//* v858.ident_id AS UserId
//* ,cast(';' as char(1))
//* ,u831.partner_id AS USER_CIF
//* ,cast(';' as char(1))
//* ,SUBSTR(U100.CD100452,9,5) AS U_CUST_OFFICE
//* ,cast(';' as char(1))
//* ,u831.DOMIZIL AS USER_DOM
//* ,cast(';' as char(1))
//* ,U831.CUSTOMER_SEGMENT AS USER_SEGM
//* ,cast(';' as char(1))
//* ,o831.partner_id AS OWNER_CIF
//* ,cast(';' as char(1))
//* ,SUBSTR(U100.CD100452,9,5) AS O_CUST_OFFICE
//* ,cast(';' as char(1))
//* ,O831.DOMIZIL AS OWNER_DOM
//* ,cast(';' as char(1))
//* ,O831.CUSTOMER_SEGMENT AS OWNER_SEGM
//* ,cast(';' as char(1))
//* ,v832.ext_contract_id AS CNTRACT_ID
//* ,cast(';' as char(1))
//* ,v843.tab_text1 AS PROCUCT
//* ,cast(';' as char(1))
//* ,v835.service_key AS SERVICE
//* ,cast(';' as char(1))
//* ,S843.tab_text1 AS SERVICE_TEXT
//* ,cast(';' as char(1))
//* ,V859.SECID1_LAST_LOGON AS LAST_LOGON_SEC1
//* ,cast(';' as char(1))
//* ,V859.SECID2_LAST_LOGON AS LAST_LOGON_SEC2
//* ,cast(';' as char(1))
//* ,CAST((CASE
//* WHEN((V859.SECID1_LAST_LOGON> V859.SECID2_LAST_LOGON
//* AND V859.SECID1_LAST_LOGON^='9999-12-31-23.59.59.999999')
//* OR V859.SECID2_LAST_LOGON='9999-12-31-23.59.59.999999')
//* THEN V859.SECID1_LAST_LOGON
//* ELSE V859.SECID2_LAST_LOGON
//* END) AS CHAR(26))
//* FROM
//* OA1P.VKS831A1V O831
//* ,OA1P.VKS831A1V U831
//* ,OA1P.VKS832A1V V832
//* ,OA1P.VKS833A1V V833
//* ,OA1P.VKS835A1V V835
//* ,OA1P.VKS858A1V V858
//* ,OA1P.VKS859A1V V859
//* ,OA1P.VKS843A1V V843
//* ,OA1P.VKS843A1V S843
//* ,OA1P.TCD100A1 U100
//* ,OA1P.TCD100A1 O100
//* WHERE
//* V835.PRODUCT_ID IN (
//* '0095',
//* '0125',
//* '0141',
//* '0148',
//* '0149',
//* '0150',
//* '0151',
//* '0183',
//* '0191',
//* '0192',
//* '0193' )
//* and v835.partner_type = 3
//* AND V835.CONTRACT_KEY = V832.CONTRACT_KEY
//*
//* AND V835.CONTRACT_KEY = V833.CONTRACT_KEY
//* and v833.partner_type = 3
//*
//* AND V833.partner_key = u831.partner_key
//* AND U831.partner_ID = U100.CD100001
//*
//* AND V835.arrang_partner_key = O831.partner_key
//* AND O831.partner_ID = O100.CD100001
//*
//* and v833.partner_key = V858.partner_key
//* AND V858.ident_id = V859.ident_id
//* AND V859.application_type = 15
//*
//* AND V843.tab_art = 'PRODUCT_ID'
//* AND V843.tab_code = V835.PRODUCT_ID
//*
//* AND S843.tab_art = 'SERVICE_ID'
//* AND S843.tab_code = V835.SERVICE_KEY
//* AND S843.TAB_LANGUAGE_CODE = '001'
//*
//* and current date < o831.valid_to_date
//* and current date < u831.valid_to_date
//* and current date < v832.valid_to_date
//* and current date < v833.valid_to_date
//* and current date < v858.valid_to_date
//* and current date < v859.valid_to_date
//* and current date between v835.valid_from_date and
//* v835.valid_to_date
//* ORDER BY u831.partner_id
//* WITH UR;
}¢--- A540769.WK.SQL(HUNGER2) cre=2012-06-18 mod=2012-06-18-10.27.41 A540769 ---
//STA0153A JOB (SK03,KE50,,SP00000000),
// MSGCLASS=T,
// NOTIFY=&SYSUID,
// TIME=1440
//JOBLIB DD DSN=PCL.U0000.P0.RZ2AKT.PERM.@008.LLB,DISP=SHR
//*MAIN CLASS=SUBP2
//****
//P00 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DEL 'KE.U0000.P0.EBVV.#STA0153.UNLOAD' SCR
IF MAXCC < 9 THEN SET MAXCC = 0
//*
//P02 EXEC PGM=IKJEFT1A,
// DYNAMNBR=20
//SYSPRINT DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSPUNCH DD SYSOUT=*
//SYSREC00 DD DSNAME=KE.U0000.P0.EBVV.#STA0153.UNLOAD,
// MGMTCLAS=COM#A091,
// DISP=(NEW,CATLG,DELETE)
//**********************************************************************
//* Report for Esther Rein N4354, PSENG STA0152 and STA0153
//* --------------------------------------------------
//*
//* Output: (last run, but STAT?? unknown)
//* - CifNo Owner
//* - Konzern-Produkt --> 0017
//* - Customer Office Owner and User
//* - Domicile Owner and User
//* - Owner Customer Id Contract id
//* - Segment Owner and User
//* - Client Assets ??
//*
//* Request:
//* Per CCE Owner
//* new Output requested: --> STA0152
//* - UserId
//* - USER_CIF
//* - U_CUST_OFFICE
//* - USER_DOM
//* - USER_SEGM
//* - OWNER_CIF
//* - O_CUST_OFFICE
//* - OWNER_DOM
//* - OWNER_SEGM
//* - CNTRACT_ID
//* - PROCUCT
//* - SERVICE_KEY
//* - SERVICE_TEXT: which services are activated
//* which are used in CCE -> not available in EBVV
//* - LAST_CCE_Login_SEC1
//* - LAST_CCE_LOGON_SEC2
//* - number of logins within 3 months --> STA0153
//* - DN user yes / no --> not necessary, see comments below
//* - last dn Login date --> not necessary, see comments below
//*--------------------------------------------------------------------
//* Are there really customers with Direct Net and Multiuser for
//* same cif? I checked with below query --> that's not standard
//*--------------------------------------------------------------------
//* QMF: COUNTDOPPELTIDENT
//*
//* SELECT V831.PARTNER_ID
//* FROM OA1P.VKS831A1V V831
//* ,OA1P.VKS858A1V C858
//* ,OA1P.VKS858A1V D858
//*
//* WHERE V831.PARTNER_KEY = D858.PARTNER_KEY
//* AND V831.PARTNER_KEY = C858.PARTNER_KEY
//* AND D858.IDENT_TYPE = 1
//* AND C858.IDENT_TYPE = 5
//*
//* GROUP BY V831.PARTNER_ID
//* HAVING COUNT(*) > 1
//*
//* WITH UR;
//*
//*
//* Result:
//* -------
//* 000000000001 TEST_IDENTIFIKATION for Reset
//* 083509400102 284476362015080802-P ???
//*
//**********************************************************************
//SYSTSIN DD *
DSN SYSTEM(DBOF)
RUN PROGRAM(DSNTIAUL) PARM('SQL')
//SYSIN DD *
SELECT
v858.ident_id
,CHAR(DECIMAL(COUNT(distinct V841.ACTIVITY_TSTAMP),10,0))
FROM
OA1P.VKS831A1V O831
,OA1P.VKS831A1V U831
,OA1P.VKS832A1V V832
,OA1P.VKS833A1V V833
,OA1P.VKS835A1V V835
,OA1P.VKS858A1V V858
,OA1P.VKS859A1V V859
,OA1P.VKS841H1V V841
WHERE
V835.PRODUCT_ID IN (
'0095',
'0125',
'0141',
'0148',
'0149',
'0150',
'0151',
'0183',
'0191',
'0192',
'0193' )
and v835.partner_type = 3
AND V835.CONTRACT_KEY = V832.CONTRACT_KEY
AND V835.CONTRACT_KEY = V833.CONTRACT_KEY
and v833.partner_type = 3
AND V833.partner_key = u831.partner_key
AND V835.arrang_partner_key = O831.partner_key
and v833.partner_key = V858.partner_key
AND V858.ident_id = V859.ident_id
AND V859.application_type = 15
AND V858.IDENT_ID = V841.LOG_KEY
AND V841.APPLICATION_TYPE = 15
AND V841.LOG_CODE = '0000'
and current date < o831.valid_to_date
and current date < u831.valid_to_date
and current date < v832.valid_to_date
and current date < v833.valid_to_date
and current date < v858.valid_to_date
and current date < v859.valid_to_date
and current date between v835.valid_from_date and
v835.valid_to_date
GROUP BY V858.ident_id
WITH UR;
}¢--- A540769.WK.SQL(HYPO) cre=2006-08-11 mod=2006-08-11-13.56.58 F540769 ------
set current sqlid = 'S100447';
------------------------------------------------------------------------
-- --
-- Database 2 Administration Tool (DB2 Admin) , program 5697-L90 (C) --
-- --
-- ADB2GEN - Extract object definitions from the DB2 Catalog tables --
-- --
-- Input prepared on : DBAF (810) Extract time : 2006-08-11 13:55 --
-- --
-- Catalog values overridden : none
-- --
-- Generate : SG=N DB=Y TS=Y TB=Y VW=Y IX=Y SY=Y AL=Y LB=Y CM=Y FK=Y --
-- TG=Y UT=N UF=N SP=N SQ=N --
-- Grants : SG=Y DB=Y TS=N TB=N VW=N SC=N UT=N UF=N SP=N SQ=N --
-- --
------------------------------------------------------------------------
--
SET CURRENT SQLID='S100447';
------------------------------------------------------------------------
-- --
-- ADB2GEN: Generate DDL for Tablespace=S126A In Database DGDB0235 --
-- --
------------------------------------------------------------------------
--
--
------------------------------------------------------------------------
-- Database=DGDB0366 Stogroup=GSMS
-- Tablespace=DGDB0366.A126A
------------------------------------------------------------------------
--
CREATE TABLESPACE A126A
IN DGDB0366
USING STOGROUP GSMS
PRIQTY 48 SECQTY 7200
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 8
BUFFERPOOL BP0
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS NO
CCSID EBCDIC
DEFINE YES
MAXROWS 255;
--
COMMIT;
--
------------------------------------------------------------------------
-- Table=GDB0366.THY126G1 In DGDB0366.A126A
------------------------------------------------------------------------
--
CREATE TABLE GDB0366.THY126G1
(HY126001 CHAR(16) FOR SBCS DATA NOT NULL,
HY126002 DATE NOT NULL,
HY126003 DATE NOT NULL,
HY126004 DATE NOT NULL,
HY126005 DATE NOT NULL,
HY126006 SMALLINT NOT NULL,
HY126007 CHAR(12) FOR SBCS DATA NOT NULL,
HY126008 CHAR(20) FOR SBCS DATA NOT NULL,
HY126009 DECIMAL(15, 3) NOT NULL,
HY126010 DECIMAL(15, 3) NOT NULL,
HY126011 DECIMAL(15, 3) NOT NULL,
HY126012 CHAR(3) FOR SBCS DATA NOT NULL,
HY126013 CHAR(1) FOR SBCS DATA NOT NULL,
CONSTRAINT HY126001
PRIMARY KEY (HY126001,
HY126002,
HY126003,
HY126004,
HY126005,
HY126006))
IN DGDB0366.A126A
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE;
--
LABEL ON TABLE GDB0366.THY126G1 IS 'ERWEITERTE ABSCHLUESSE ALL';
--
LABEL ON GDB0366.THY126G1
(HY126013 IS 'C_BOLLO',
HY126012 IS 'C_KAS',
HY126011 IS 'A_FEES_EXPNCS',
HY126010 IS 'A_CMMSSN',
HY126009 IS 'A_INTRST',
HY126008 IS 'I_MRTGE_MSTR_20',
HY126007 IS 'I_CIF',
HY126006 IS 'I_CLSRE_T',
HY126005 IS 'D_BOOKING',
HY126004 IS 'D_INT_PRCPL_STMT_1',
HY126003 IS 'D_VALUE_TO',
HY126002 IS 'D_VALUE_FROM',
HY126001 IS 'I_ACNT_16');
--
COMMIT;
--
--
------------------------------------------------------------------------
-- Database=DGDB0366
-- Index=GDB0366.IHY126A0 On GDB0366.THY126G1
------------------------------------------------------------------------
--
CREATE UNIQUE INDEX GDB0366.IHY126A0
ON GDB0366.THY126G1
(HY126001 ASC,
HY126002 ASC,
HY126003 ASC,
HY126004 ASC,
HY126005 ASC,
HY126006 ASC)
USING STOGROUP GSMS
PRIQTY 48 SECQTY 7200
ERASE NO
FREEPAGE 10 PCTFREE 10
GBPCACHE CHANGED
NOT CLUSTER
BUFFERPOOL BP0
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
--
COMMIT;
--
------------------------------------------------------------------------
-- Database=DGDB0366
-- Index=GDB0366.IHY126G1 On GDB0366.THY126G1
------------------------------------------------------------------------
--
CREATE INDEX GDB0366.IHY126G1
ON GDB0366.THY126G1
(HY126008 ASC)
USING STOGROUP GSMS
PRIQTY 48 SECQTY 7200
ERASE NO
FREEPAGE 10 PCTFREE 10
GBPCACHE CHANGED
NOT CLUSTER
BUFFERPOOL BP0
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
--
COMMIT;
--
------------------------------------------------------------------------
-- Database=DGDB0366
-- Index=GDB0366.IHY126A2 On GDB0366.THY126G1
------------------------------------------------------------------------
--
CREATE INDEX GDB0366.IHY126A2
ON GDB0366.THY126G1
(HY126007 ASC)
USING STOGROUP GSMS
PRIQTY 48 SECQTY 7200
ERASE NO
FREEPAGE 10 PCTFREE 10
GBPCACHE CHANGED
NOT CLUSTER
BUFFERPOOL BP0
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
--
COMMIT;
--
------------------------------------------------------------------------
-- View=GDB0366.VHY126G1V
------------------------------------------------------------------------
--
--
SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","GDB0235" ;
--
CREATE VIEW GDB0366.VHY126G1V(I_ACNT_16, D_VALUE_FROM, D_VALUE_TO,
D_INT_PRCPL_STMT_1, D_BOOKING, I_CLSRE_T, I_CIF,
I_MRTGE_MSTR_20, A_INTRST, A_CMMSSN, A_FEES_EXPNCS, C_KAS,
C_BOLLO) AS
SELECT ALL GDB0366.THY126G1.HY126001, GDB0366.THY126G1.HY126002,
GDB0366.THY126G1.HY126003, GDB0366.THY126G1.HY126004,
GDB0366.THY126G1.HY126005, GDB0366.THY126G1.HY126006,
GDB0366.THY126G1.HY126007, GDB0366.THY126G1.HY126008,
GDB0366.THY126G1.HY126009, GDB0366.THY126G1.HY126010,
GDB0366.THY126G1.HY126011, GDB0366.THY126G1.HY126012,
GDB0366.THY126G1.HY126013
FROM GDB0366.THY126G1 ;
--
COMMIT;
--
------------------------------------------------------------------------
-- ADB2GEN - End of generated DDL --
------------------------------------------------------------------------
--
}¢--- A540769.WK.SQL(HYPX) cre=2006-08-11 mod=2006-08-11-16.05.42 F540769 ------
set current sqlid = 's100447';
------------------------------------------------------------------------
-- --
-- Database 2 Administration Tool (DB2 Admin) , program 5697-L90 (C) --
-- --
-- ADB2GEN - Extract object definitions from the DB2 Catalog tables --
-- --
-- Input prepared on : DBAF (810) Extract time : 2006-08-11 16:04 --
-- --
-- Catalog values overridden : none
-- --
-- Generate : SG=N DB=Y TS=Y TB=Y VW=Y IX=Y SY=Y AL=Y LB=Y CM=Y FK=Y --
-- TG=Y UT=N UF=N SP=N SQ=N --
-- Grants : SG=Y DB=Y TS=Y TB=N VW=N SC=N UT=N UF=N SP=N SQ=N --
-- --
------------------------------------------------------------------------
--
SET CURRENT SQLID='S100447';
------------------------------------------------------------------------
-- --
-- ADB2GEN: Generate DDL for Table=GDB0366.THY126G1
-- --
------------------------------------------------------------------------
--
------------------------------------------------------------------------
-- Table=GDB0366.THY126G1 In DGDB0366.A126A
------------------------------------------------------------------------
--
drop TABLE GDB0366.THY126G1;
commit;
CREATE TABLE GDB0366.THY126G1
(HY126001 CHAR(16) FOR SBCS DATA NOT NULL,
HY126002 DATE NOT NULL,
HY126003 DATE NOT NULL,
HY126004 DATE NOT NULL,
HY126005 DATE NOT NULL,
HY126006 SMALLINT NOT NULL,
HY126007 CHAR(12) FOR SBCS DATA NOT NULL,
HY126008 CHAR(20) FOR SBCS DATA NOT NULL,
HY126009 DECIMAL(15, 3) NOT NULL,
HY126010 DECIMAL(15, 3) NOT NULL,
HY126011 DECIMAL(15, 3) NOT NULL,
HY126012 CHAR(3) FOR SBCS DATA NOT NULL,
HY126013 CHAR(1) FOR SBCS DATA NOT NULL,
CONSTRAINT HY126001
PRIMARY KEY (HY126001,
HY126002,
HY126003,
HY126004,
HY126005,
HY126006))
IN DGDB0366.A126A
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE;
--
LABEL ON TABLE GDB0366.THY126G1 IS 'ERWEITERTE ABSCHLUESSE ALL';
--
LABEL ON GDB0366.THY126G1
(HY126013 IS 'C_BOLLO',
HY126012 IS 'C_KAS',
HY126011 IS 'A_FEES_EXPNCS',
HY126010 IS 'A_CMMSSN',
HY126009 IS 'A_INTRST',
HY126008 IS 'I_MRTGE_MSTR_20',
HY126007 IS 'I_CIF',
HY126006 IS 'I_CLSRE_T',
HY126005 IS 'D_BOOKING',
HY126004 IS 'D_INT_PRCPL_STMT_1',
HY126003 IS 'D_VALUE_TO',
HY126002 IS 'D_VALUE_FROM',
HY126001 IS 'I_ACNT_16');
--
COMMIT;
--
GRANT USE OF STOGROUP GSMS TO PUBLIC;
--
------------------------------------------------------------------------
-- Database=DGDB0366
-- Index=GDB0366.IHY126A0 On GDB0366.THY126G1
------------------------------------------------------------------------
--
CREATE UNIQUE INDEX GDB0366.IHY126G0
ON GDB0366.THY126G1
(HY126001 ASC,
HY126002 ASC,
HY126003 ASC,
HY126004 ASC,
HY126005 ASC,
HY126006 ASC)
USING STOGROUP GSMS
PRIQTY 48 SECQTY 7200
ERASE NO
FREEPAGE 10 PCTFREE 10
GBPCACHE CHANGED
NOT CLUSTER
BUFFERPOOL BP0
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
--
COMMIT;
--
------------------------------------------------------------------------
-- Database=DGDB0366
-- Index=GDB0366.IHY126A2 On GDB0366.THY126G1
------------------------------------------------------------------------
--
CREATE INDEX GDB0366.IHY126G2
ON GDB0366.THY126G1
(HY126007 ASC)
USING STOGROUP GSMS
PRIQTY 48 SECQTY 7200
ERASE NO
FREEPAGE 10 PCTFREE 10
GBPCACHE CHANGED
NOT CLUSTER
BUFFERPOOL BP0
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
--
COMMIT;
--
------------------------------------------------------------------------
-- Database=DGDB0366
-- Index=GDB0366.IHY126G1 On GDB0366.THY126G1
------------------------------------------------------------------------
--
CREATE INDEX GDB0366.IHY126G1
ON GDB0366.THY126G1
(HY126008 ASC)
USING STOGROUP GSMS
PRIQTY 48 SECQTY 7200
ERASE NO
FREEPAGE 10 PCTFREE 10
GBPCACHE CHANGED
NOT CLUSTER
BUFFERPOOL BP0
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
--
COMMIT;
--
------------------------------------------------------------------------
-- View=GDB0366.VHY126G1V
------------------------------------------------------------------------
--
--
SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","GDB0235" ;
--
CREATE VIEW GDB0366.VHY126G1V(I_ACNT_16, D_VALUE_FROM, D_VALUE_TO,
D_INT_PRCPL_STMT_1, D_BOOKING, I_CLSRE_T, I_CIF,
I_MRTGE_MSTR_20, A_INTRST, A_CMMSSN, A_FEES_EXPNCS, C_KAS,
C_BOLLO) AS
SELECT ALL GDB0366.THY126G1.HY126001, GDB0366.THY126G1.HY126002,
GDB0366.THY126G1.HY126003, GDB0366.THY126G1.HY126004,
GDB0366.THY126G1.HY126005, GDB0366.THY126G1.HY126006,
GDB0366.THY126G1.HY126007, GDB0366.THY126G1.HY126008,
GDB0366.THY126G1.HY126009, GDB0366.THY126G1.HY126010,
GDB0366.THY126G1.HY126011, GDB0366.THY126G1.HY126012,
GDB0366.THY126G1.HY126013
FROM GDB0366.THY126G1 ;
--
COMMIT;
--
------------------------------------------------------------------------
-- ADB2GEN - End of generated DDL --
------------------------------------------------------------------------
--
}¢--- A540769.WK.SQL(IAN) cre=2012-10-05 mod=2012-10-05-15.36.21 A540769 -------
select
UNDERLAYER
,titel_n
,BOERSE
,WHRG
,Q_KURS_UMRECHNUNG
,KURSDATUM
,Q_CS_KA_NUM
,cs_ta
,sorter
,TK_KURSTYP
,TK_ZUSATZ
,FEHLER
,DIFF_PROZ
,VERSION
,ais_sp
,TKKEY
,VERFALL
,valor_sc
,tk_titelart
,six_boerse
,excode
,cs_buart
,handlheit
,size_uamt
,bestand
,hboe
,isin
from (
SELECT
A.UNDERLAYER
,VALUE(B.TITEL_N,' ') as titel_n
,A.BOERSE
,A.WHRG
,A.Q_KURS_UMRECHNUNG
,A.KURSDATUM
,A.Q_CS_KA_NUM
,VALUE(B.CS_TA,'0.00') as cs_ta
,CASE A.FEHLER
WHEN 'V303' THEN 'A'
WHEN 'V304' THEN 'B'
WHEN 'V362' THEN 'C'
WHEN 'V302' THEN 'D'
WHEN 'V311' THEN 'E'
WHEN 'V313' THEN 'F'
WHEN 'V314' THEN 'G'
WHEN 'V347' THEN 'H'
ELSE 'Z'
END AS SORTER
,A.TK_KURSTYP
,A.TK_ZUSATZ
,A.FEHLER
,DIFF_PROZ
,A.VERSION
,VALUE(B.AIS_SP,' ') as ais_sp
,A.TKKEY
,A.VERFALL
,VALUE(B.VALOR_SC,0) as valor_sc
,VALUE(B.TK_TITELART,' ') as tk_titelart
,Value(A.SIX_Boerse,' ') as six_boerse
,Value(A.Excode,'00') as excode
,VALUE(B.CS_Buart,'0') as cs_buart
,VALUE(B.HANDLHEIT,0) as handlheit
,VALUE(B.SIZE_UAMT,0) as size_uamt
,VALUE(B.BESTAND,'0') as bestand
,VALUE(B.HBOE,' ') as hboe
,VALUE(C.ISIN,' ') as isin
FROM oa1t.VFI060A1 A
INNER JOIN oa1t.VFI010A2 B
ON B.TKKEY = A.TKKEY
AND B.BOERSE = A.BOERSE
AND B.WHRG = A.WHRG
AND B.BPL_ST = '0'
AND B.VERFALL= A.VERFALL
INNER JOIN oa1t.VFI011A1 C
ON C.TKKEY = A.TKKEY
AND C.VERFALL= A.VERFALL
WHERE A.FEHLER IN ('V302','V303','V304','V311'
,'V314','V347','V362','V313')
AND A.STATUS = 'A'
AND A.VERFALL = '31.12.9999'
AND ((B.VALOR_SC > 4 AND B.Valor_SC < 16) OR VALOR_SC IS NULL)
--AND A.MUT_TIMESTAMP > (CURRENT TIMESTAMP - 1 MONTH)
AND A.MUT_TIMESTAMP > (CURRENT TIMESTAMP - 1 day)
union all
SELECT DISTINCT
A.UNDERLAYER
,VALUE(B.TITEL_N,' ') as titel_n
,A.BOERSE
,A.WHRG
,A.Q_KURS_UMRECHNUNG
,A.KURSDATUM
,A.Q_CS_KA_NUM
,VALUE(B.CS_TA,'0.00') as cs_ta
,CASE A.FEHLER
WHEN 'V303' THEN 'A'
WHEN 'V304' THEN 'B'
WHEN 'V362' THEN 'C'
WHEN 'V302' THEN 'D'
WHEN 'V311' THEN 'E'
WHEN 'V313' THEN 'F'
WHEN 'V314' THEN 'G'
WHEN 'V347' THEN 'H'
ELSE 'Z'
END AS SORTER
,A.TK_KURSTYP
,A.TK_ZUSATZ
,A.FEHLER
,DIFF_PROZ
,A.VERSION
,VALUE(B.AIS_SP,' ') as ais_sp
,A.TKKEY
,A.VERFALL
,VALUE(B.VALOR_SC,0) as valor_sc
,VALUE(B.TK_TITELART,' ') as tk_titelart
,Value(A.SIX_Boerse,' ') as six_boerse
,Value(A.Excode,'00') as excode
,VALUE(B.CS_Buart,'0') as cs_buart
,VALUE(B.HANDLHEIT,0) as handlheit
,VALUE(B.SIZE_UAMT,0) as size_uamt
,VALUE(B.BESTAND,'0') as bestand
,VALUE(B.HBOE,' ') as hboe
,VALUE(C.ISIN,' ') as isin
FROM oa1t.VFI060A1 A
INNER JOIN oa1t.VFI010A2 B
ON B.TKKEY = A.TKKEY
AND (B.BOERSE ^= A.BOERSE
or B.WHRG ^= A.WHRG)
AND (A.FEHLER = 'V362' OR B.BPL_ST = '0')
AND B.VERFALL= A.VERFALL
--AND B.BPL_ST = '0'
INNER JOIN oa1t.VFI011A1 C
ON C.TKKEY = A.TKKEY
AND C.VERFALL= A.VERFALL
WHERE A.FEHLER IN ('V302','V303','V304','V311'
,'V314','V347','V362','V313')
AND A.STATUS = 'A'
AND A.VERFALL = '31.12.9999'
AND ((B.VALOR_SC > 4 AND B.Valor_SC < 16) OR VALOR_SC IS NULL)
--AND A.MUT_TIMESTAMP > (CURRENT TIMESTAMP - 1 MONTH)
AND A.MUT_TIMESTAMP > (CURRENT TIMESTAMP - 1 day)
) x
ORDER BY bestand DESC
,SORTER ASC
,UNDERLAYER ASC
,BOERSE ASC
,WHRG ASC
,KURSDATUM ASC
;x;
//
//A273818T JOB (SB00,KE20,,TT00000000),'BATCH SQL',
// NOTIFY=&SYSUID,REGION=5M,
// MSGCLASS=A,TIME=MAXIMUM
//* -------------------
//SQL EXEC PGM=IKJEFT01,
//* ----------------------------------------------------------
// DYNAMNBR=30
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM(DBTF)
RUN PROGRAM(DSNTEP2)
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
}¢--- A540769.WK.SQL(IMSFREE) cre=2008-10-23 mod=2008-10-23-15.59.56 F540769 ---
-----------------------------------------------------------------------
-- SELECT ALLER IMS-DATENBANKEN, WELCHE NICHT GENÜGEND --
-- FREESPACE HABEN --
-- (1.TEIL: DEFAULTWERTE / 2.TEIL: DB-ABHÄNGIGE WERTE) --
-----------------------------------------------------------------------
--
SELECT JN.DB_NAME, JN.DD_NAME,
DIGITS(JN.ALLOC) AS ALLOC,
DIGITS(MAX_SPC) AS MAX_SPC, DIGITS(JN.HIGHWATER) AS HIGHWATER,
DIGITS(JN.THRESHOLD) AS THRESHOLD,
DIGITS(JN.HI_ALLOC), DIGITS(JN.HI_ALLOC2),
JN.SW_FREE, JN.SP_FREE, JN.SP_IFREE,
JN.DB_TYP, digits(JN.TRK_SEC), 'DEFAULT',
JN.HI_ALCSPC, JN.CAPACITY
FROM (SELECT SP.DB_NAME, SP.DD_NAME,
(SP.HI_ALLOC-SP.FREESPC) AS ALLOC,
CASE
WHEN SP.TRK_SEC = 0 then
SP.HI_ALLOC2
WHEN SP.DB_TYP = 'HDAM'
AND SP.TRK_SEC > 0 THEN
8589934590
WHEN SP.DB_TYP = 'PHDAM'
AND SP.TRK_SEC > 0 THEN
4294967295
ELSE 0
END AS MAX_SPC,
CASE
WHEN SP.DB_TYP = 'HDAM' THEN
(8589934590 - (SW.FREESPCP * 8589934590 / 100))
WHEN SP.DB_TYP = 'PHDAM' THEN
(4294967295 - (SW.FREESPCP * 4294967295 / 100))
ELSE 0
END AS HIGHWATER,
CASE
WHEN SP.TRK_SEC = 0
AND SP.HI_ALLOC2 > 0
AND SW.FREESPCP > 0 THEN
SP.HI_ALLOC2 * SW.FREESPCP / 100
WHEN SP.DB_TYP = 'HDAM'
AND SW.FREESPCP > 0
AND SP.TRK_SEC > 0 THEN
8589934590 * SW.FREESPCP / 100
WHEN SP.DB_TYP = 'PHDAM'
AND SW.FREESPCP > 0
AND SP.TRK_SEC > 0 THEN
4294967295 * SW.FREESPCP / 100
ELSE 0
END AS THRESHOLD, SW.FREESPCP AS SW_FREE,
SP.HI_ALLOC, SP.HI_ALLOC2,
SP.FREESPCP AS SP_FREE,
SP.IFREESPCP AS SP_IFREE, SP.DB_TYP,
SP.TRK_SEC * CAPACITY AS TRK_SEC,
SP.EXTENTS, SP.HI_ALCSPC, SP.CAPACITY
FROM oa1t.TADM31A1 SP,
oa1t.TADM32A1 SW
WHERE SP.DB_ACCESS = 'OSAM'
AND SP.DB_TYP IN ('HDAM','PHDAM')
AND SP.FREESPCP < SW.FREESPCP
AND SW.DB_NAME = 'DEFAULT'
AND SW.DD_NAME = 'DEFAULT'
AND SW.END_DATUM >= CURRENT TIMESTAMP
AND SP.RUNTIME = (SELECT MAX(RUNTIME)
FROM oa1t.TADM31A1
WHERE DB_NAME = SP.DB_NAME
AND DD_NAME = SP.DD_NAME)
AND SP.RUNTIME >= CURRENT TIMESTAMP - 7 DAYS) AS JN
LEFT OUTER JOIN
oa1t.TADM32A1 SX
ON SX.DB_NAME = JN.DB_NAME
AND (SX.DD_NAME = JN.DD_NAME
OR SX.DD_NAME = 'ALL')
AND SX.END_DATUM >= CURRENT TIMESTAMP
AND (SX.FREESPCP > 0
OR SX.EXCLUDE = 'Y')
WHERE SX.DB_NAME IS NULL
AND ((JN.TRK_SEC > 0
AND (JN.HIGHWATER-JN.ALLOC) / JN.TRK_SEC < 1)
OR (JN.TRK_SEC = 0
AND JN.SP_FREE < JN.SW_FREE))
UNION
SELECT JN.DB_NAME, JN.DD_NAME,
DIGITS(JN.ALLOC) AS ALLOC,
DIGITS(MAX_SPC) AS MAX_SPC, DIGITS(JN.HIGHWATER) AS HIGHWATER,
DIGITS(JN.THRESHOLD) AS THRESHOLD,
DIGITS(JN.HI_ALLOC), DIGITS(JN.HI_ALLOC2),
JN.SW_FREE, JN.SP_FREE, JN.SP_IFREE,
JN.DB_TYP, digits(JN.TRK_SEC), 'DB-SPEZ',
JN.HI_ALCSPC, JN.CAPACITY
FROM (SELECT SP.DB_NAME, SP.DD_NAME,
(SP.HI_ALLOC-SP.FREESPC) AS ALLOC,
CASE
WHEN SP.TRK_SEC = 0 THEN
SP.HI_ALLOC2
WHEN SP.DB_TYP = 'HDAM'
AND SP.TRK_SEC > 0 THEN
8589934590
WHEN SP.DB_TYP = 'PHDAM'
AND SP.TRK_SEC > 0 THEN
4294967295
ELSE 0
END AS MAX_SPC,
CASE
WHEN SP.DB_TYP = 'HDAM' THEN
(8589934590 - (SW.FREESPCP * 8589934590 / 100))
WHEN SP.DB_TYP = 'PHDAM' THEN
(4294967295 - (SW.FREESPCP * 4294967295 / 100))
ELSE 0
END AS HIGHWATER,
CASE
WHEN SP.TRK_SEC = 0
AND SP.HI_ALLOC2 > 0
AND SW.FREESPCP > 0 THEN
SP.HI_ALLOC2 * SW.FREESPCP / 100
WHEN SP.DB_TYP = 'HDAM'
AND SW.FREESPCP > 0
AND SP.TRK_SEC > 0 THEN
8589934590 * SW.FREESPCP / 100
WHEN SP.DB_TYP = 'PHDAM'
AND SW.FREESPCP > 0
AND SP.TRK_SEC > 0 THEN
4294967295 * SW.FREESPCP / 100
ELSE 0
END AS THRESHOLD, SW.FREESPCP AS SW_FREE,
SP.HI_ALLOC, SP.HI_ALLOC2,
SP.FREESPCP AS SP_FREE,
SP.IFREESPCP AS SP_IFREE, SP.DB_TYP,
SP.TRK_SEC * CAPACITY AS TRK_SEC,
SP.EXTENTS, SP.HI_ALCSPC, SP.CAPACITY
FROM oa1t.TADM31A1 SP,
oa1t.TADM32A1 SW
WHERE SP.DB_ACCESS = 'OSAM'
AND SP.DB_TYP IN ('HDAM','PHDAM')
AND SP.FREESPCP < SW.FREESPCP
AND SW.DB_NAME = SP.DB_NAME
AND (SW.DD_NAME = SP.DD_NAME
OR SW.DD_NAME = 'ALL')
AND SW.EXCLUDE = 'N'
AND SW.END_DATUM >= CURRENT TIMESTAMP
AND SP.RUNTIME = (SELECT MAX(RUNTIME)
FROM oa1t.TADM31A1
WHERE DB_NAME = SP.DB_NAME
AND DD_NAME = SP.DD_NAME)
AND SP.RUNTIME >= CURRENT TIMESTAMP - 7 DAYS) AS JN
WHERE ((JN.TRK_SEC > 0
AND (JN.HIGHWATER-JN.ALLOC) / JN.TRK_SEC < 1)
OR (JN.TRK_SEC = 0
AND JN.SP_FREE < JN.SW_FREE))
WITH UR
}¢--- A540769.WK.SQL(IMSFRE0) cre=2008-10-21 mod=2008-10-21-18.25.23 F540769 ---
select
( 589934590 - (decimal(7, 10 ,2)* 589934590 / 100))
from sysibm.sysDummy1
;
select
(8589934590 - (decimal(7, 10 ,2)* 8589934590 / 100))
from sysibm.sysDummy1
;
-----------------------------------------------------------------------
-- SELECT ALLER IMS-DATENBANKEN, WELCHE NICHT GENÜGEND --
-- FREESPACE HABEN --
-- (1.TEIL: DEFAULTWERTE / 2.TEIL: DB-ABHÄNGIGE WERTE) --
-----------------------------------------------------------------------
--
SELECT JN.DB_NAME, JN.DD_NAME,
DIGITS(JN.ALLOC) AS ALLOC,
DIGITS(MAX_SPC) AS MAX_SPC, (JN.HIGHWATER) AS HIGHWATER,
DIGITS(JN.THRESHOLD) AS THRESHOLD,
DIGITS(JN.HI_ALLOC), DIGITS(JN.HI_ALLOC2),
JN.SW_FREE, JN.SP_FREE, JN.SP_IFREE,
JN.DB_TYP, digits(JN.TRK_SEC), 'DEFAULT',
JN.HI_ALCSPC, JN.CAPACITY
FROM (SELECT SP.DB_NAME, SP.DD_NAME,
(SP.HI_ALLOC-SP.FREESPC) AS ALLOC,
CASE
WHEN SP.TRK_SEC = 0 then
SP.HI_ALLOC2
WHEN SP.DB_TYP = 'HDAM'
AND SP.TRK_SEC > 0 THEN
8589934590
WHEN SP.DB_TYP = 'PHDAM'
AND SP.TRK_SEC > 0 THEN
4294967295
ELSE 0
END AS MAX_SPC,
CASE
WHEN SP.DB_TYP = 'HDAM' THEN
(8589934590 - (real(SW.FREESPCP)* 8589934590 / 100))
WHEN SP.DB_TYP = 'PHDAM' THEN
(4294967295 - (real(SW.FREESPCP)* 4294967295 / 100))
ELSE 0
END AS HIGHWATER,
CASE
WHEN SP.TRK_SEC = 0
AND SP.HI_ALLOC2 > 0
AND SW.FREESPCP > 0 THEN
SP.HI_ALLOC2 * SW.FREESPCP / 100
WHEN SP.DB_TYP = 'HDAM'
AND SW.FREESPCP > 0
AND SP.TRK_SEC > 0 THEN
8589934590 * SW.FREESPCP / 100
WHEN SP.DB_TYP = 'PHDAM'
AND SW.FREESPCP > 0
AND SP.TRK_SEC > 0 THEN
4294967295 * SW.FREESPCP / 100
ELSE 0
END AS THRESHOLD, SW.FREESPCP AS SW_FREE,
SP.HI_ALLOC, SP.HI_ALLOC2,
SP.FREESPCP AS SP_FREE,
SP.IFREESPCP AS SP_IFREE, SP.DB_TYP,
SP.TRK_SEC * CAPACITY AS TRK_SEC,
SP.EXTENTS, SP.HI_ALCSPC, SP.CAPACITY
FROM oa1a.TADM31A1 SP,
oa1a.TADM32A1 SW
WHERE SP.DB_ACCESS = 'OSAM'
AND SP.DB_TYP IN ('HDAM','PHDAM')
AND SP.FREESPCP < SW.FREESPCP
AND SW.DB_NAME = 'DEFAULT'
AND SW.DD_NAME = 'DEFAULT'
AND SW.END_DATUM >= CURRENT TIMESTAMP
AND SP.RUNTIME = (SELECT MAX(RUNTIME)
FROM oa1a.TADM31A1
WHERE DB_NAME = SP.DB_NAME
AND DD_NAME = SP.DD_NAME)
AND SP.RUNTIME >= CURRENT TIMESTAMP - 7 DAYS) AS JN
LEFT OUTER JOIN
oa1a.TADM32A1 SX
ON SX.DB_NAME = JN.DB_NAME
AND (SX.DD_NAME = JN.DD_NAME
OR SX.DD_NAME = 'ALL')
AND SX.END_DATUM >= CURRENT TIMESTAMP
AND (SX.FREESPCP > 0
OR SX.EXCLUDE = 'Y')
WHERE SX.DB_NAME IS NULL
AND ((JN.TRK_SEC > 0
AND (JN.HIGHWATER-JN.ALLOC) / JN.TRK_SEC < 1)
OR (JN.TRK_SEC = 0
AND JN.SP_FREE < JN.SW_FREE))
;
UNION
SELECT JN.DB_NAME, JN.DD_NAME,
DIGITS(JN.ALLOC) AS ALLOC,
DIGITS(MAX_SPC) AS MAX_SPC, DIGITS(JN.HIGHWATER) AS HIGHWATER,
DIGITS(JN.THRESHOLD) AS THRESHOLD,
DIGITS(JN.HI_ALLOC), DIGITS(JN.HI_ALLOC2),
JN.SW_FREE, JN.SP_FREE, JN.SP_IFREE,
JN.DB_TYP, digits(JN.TRK_SEC), 'DB-SPEZ',
JN.HI_ALCSPC, JN.CAPACITY
FROM (SELECT SP.DB_NAME, SP.DD_NAME,
(SP.HI_ALLOC-SP.FREESPC) AS ALLOC,
CASE
WHEN SP.TRK_SEC = 0 THEN
SP.HI_ALLOC2
WHEN SP.DB_TYP = 'HDAM'
AND SP.TRK_SEC > 0 THEN
8589934590
WHEN SP.DB_TYP = 'PHDAM'
AND SP.TRK_SEC > 0 THEN
4294967295
ELSE 0
END AS MAX_SPC,
CASE
WHEN SP.DB_TYP = 'HDAM' THEN
(8589934590 - (SW.FREESPCP * 8589934590 / 100))
WHEN SP.DB_TYP = 'PHDAM' THEN
(4294967295 - (SW.FREESPCP * 4294967295 / 100))
ELSE 0
END AS HIGHWATER,
CASE
WHEN SP.TRK_SEC = 0
AND SP.HI_ALLOC2 > 0
AND SW.FREESPCP > 0 THEN
SP.HI_ALLOC2 * SW.FREESPCP / 100
WHEN SP.DB_TYP = 'HDAM'
AND SW.FREESPCP > 0
AND SP.TRK_SEC > 0 THEN
8589934590 * SW.FREESPCP / 100
WHEN SP.DB_TYP = 'PHDAM'
AND SW.FREESPCP > 0
AND SP.TRK_SEC > 0 THEN
4294967295 * SW.FREESPCP / 100
ELSE 0
END AS THRESHOLD, SW.FREESPCP AS SW_FREE,
SP.HI_ALLOC, SP.HI_ALLOC2,
SP.FREESPCP AS SP_FREE,
SP.IFREESPCP AS SP_IFREE, SP.DB_TYP,
SP.TRK_SEC * CAPACITY AS TRK_SEC,
SP.EXTENTS, SP.HI_ALCSPC, SP.CAPACITY
FROM oa1a.TADM31A1 SP,
oa1a.TADM32A1 SW
WHERE SP.DB_ACCESS = 'OSAM'
AND SP.DB_TYP IN ('HDAM','PHDAM')
AND SP.FREESPCP < SW.FREESPCP
AND SW.DB_NAME = SP.DB_NAME
AND (SW.DD_NAME = SP.DD_NAME
OR SW.DD_NAME = 'ALL')
AND SW.EXCLUDE = 'N'
AND SW.END_DATUM >= CURRENT TIMESTAMP
AND SP.RUNTIME = (SELECT MAX(RUNTIME)
FROM oa1a.TADM31A1
WHERE DB_NAME = SP.DB_NAME
AND DD_NAME = SP.DD_NAME)
AND SP.RUNTIME >= CURRENT TIMESTAMP - 7 DAYS) AS JN
WHERE ((JN.TRK_SEC > 0
AND (JN.HIGHWATER-JN.ALLOC) / JN.TRK_SEC < 1)
OR (JN.TRK_SEC = 0
AND JN.SP_FREE < JN.SW_FREE))
WITH UR
}¢--- A540769.WK.SQL(IMSFRE2) cre=2008-10-23 mod=2008-10-23-14.55.16 F540769 ---
select
( real(589934590) - (decimal(7, 10 ,2)* 589934590 / 100))
from sysibm.sysDummy1
;
select
(real(8589934590) - (real(decimal(7, 10 ,2))* 8589934590 / 100))
from sysibm.sysDummy1
;
-----------------------------------------------------------------------
-- SELECT ALLER IMS-DATENBANKEN, WELCHE NICHT GENÜGEND --
-- FREESPACE HABEN --
-- (1.TEIL: DEFAULTWERTE / 2.TEIL: DB-ABHÄNGIGE WERTE) --
-----------------------------------------------------------------------
--
SELECT JN.DB_NAME, JN.DD_NAME,
(JN.ALLOC) AS ALLOC,
(MAX_SPC) AS MAX_SPC, (JN.HIGHWATER) AS HIGHWATER,
(JN.THRESHOLD) AS THRESHOLD,
(JN.HI_ALLOC), (JN.HI_ALLOC2),
JN.SW_FREE, JN.SP_FREE, JN.SP_IFREE,
JN.DB_TYP, (JN.TRK_SEC), 'DEFAULT',
JN.HI_ALCSPC, JN.CAPACITY
FROM (SELECT SP.DB_NAME, SP.DD_NAME,
(SP.HI_ALLOC-SP.FREESPC) AS ALLOC,
CASE
WHEN SP.TRK_SEC = 0 then
SP.HI_ALLOC2
WHEN SP.DB_TYP = 'HDAM'
AND SP.TRK_SEC > 0 THEN
8589934590
WHEN SP.DB_TYP = 'PHDAM'
AND SP.TRK_SEC > 0 THEN
4294967295
ELSE 0
END AS MAX_SPC,
CASE
WHEN SP.DB_TYP = 'HDAM' THEN
(8589934590 - (real(SW.FREESPCP)* 8589934590 / 100))
WHEN SP.DB_TYP = 'PHDAM' THEN
(4294967295 - (real(SW.FREESPCP)* 4294967295 / 100))
ELSE 0
END AS HIGHWATER,
CASE
WHEN SP.TRK_SEC = 0
AND SP.HI_ALLOC2 > 0
AND SW.FREESPCP > 0 THEN
real(SP.HI_ALLOC2) * SW.FREESPCP / 100
WHEN SP.DB_TYP = 'HDAM'
AND SW.FREESPCP > 0
AND SP.TRK_SEC > 0 THEN
real(8589934590) * SW.FREESPCP / 100
WHEN SP.DB_TYP = 'PHDAM'
AND SW.FREESPCP > 0
AND SP.TRK_SEC > 0 THEN
real(4294967295) * SW.FREESPCP / 100
ELSE 0
END AS THRESHOLD, SW.FREESPCP AS SW_FREE,
SP.HI_ALLOC, SP.HI_ALLOC2,
SP.FREESPCP AS SP_FREE,
SP.IFREESPCP AS SP_IFREE, SP.DB_TYP,
SP.TRK_SEC * CAPACITY AS TRK_SEC,
SP.EXTENTS, SP.HI_ALCSPC, SP.CAPACITY
FROM oa1a.TADM31A1 SP,
oa1a.TADM32A1 SW
WHERE SP.DB_ACCESS = 'OSAM'
AND SP.DB_TYP IN ('HDAM','PHDAM')
AND SP.FREESPCP < SW.FREESPCP
AND SW.DB_NAME = 'DEFAULT'
AND SW.DD_NAME = 'DEFAULT'
AND SW.END_DATUM >= CURRENT TIMESTAMP
AND SP.RUNTIME = (SELECT MAX(RUNTIME)
FROM oa1a.TADM31A1
WHERE DB_NAME = SP.DB_NAME
AND DD_NAME = SP.DD_NAME)
AND SP.RUNTIME >= CURRENT TIMESTAMP - 7 DAYS) AS JN
LEFT OUTER JOIN
oa1a.TADM32A1 SX
ON SX.DB_NAME = JN.DB_NAME
AND (SX.DD_NAME = JN.DD_NAME
OR SX.DD_NAME = 'ALL')
AND SX.END_DATUM >= CURRENT TIMESTAMP
AND (SX.FREESPCP > 0
OR SX.EXCLUDE = 'Y')
WHERE SX.DB_NAME IS NULL
AND ((JN.TRK_SEC > 0
AND real(JN.HIGHWATER-JN.ALLOC) / JN.TRK_SEC < 1)
OR (JN.TRK_SEC = 0
AND JN.SP_FREE < JN.SW_FREE))
;
-- UNION
SELECT JN.DB_NAME, JN.DD_NAME,
(JN.ALLOC) AS ALLOC,
(MAX_SPC) AS MAX_SPC, (JN.HIGHWATER) AS HIGHWATER,
(JN.THRESHOLD) AS THRESHOLD,
(JN.HI_ALLOC), (JN.HI_ALLOC2),
JN.SW_FREE, JN.SP_FREE, JN.SP_IFREE,
JN.DB_TYP, (JN.TRK_SEC), 'DB-SPEZ',
JN.HI_ALCSPC, JN.CAPACITY
FROM (SELECT SP.DB_NAME, SP.DD_NAME,
(SP.HI_ALLOC-SP.FREESPC) AS ALLOC,
CASE
WHEN SP.TRK_SEC = 0 THEN
SP.HI_ALLOC2
WHEN SP.DB_TYP = 'HDAM'
AND SP.TRK_SEC > 0 THEN
8589934590
WHEN SP.DB_TYP = 'PHDAM'
AND SP.TRK_SEC > 0 THEN
4294967295
ELSE 0
END AS MAX_SPC,
CASE
WHEN SP.DB_TYP = 'HDAM' THEN
(real(8589934590)- (SW.FREESPCP * 8589934590 / 100))
WHEN SP.DB_TYP = 'PHDAM' THEN
(Real(4294967295)- (SW.FREESPCP * 4294967295 / 100))
ELSE 0
END AS HIGHWATER,
CASE
WHEN SP.TRK_SEC = 0
AND SP.HI_ALLOC2 > 0
AND SW.FREESPCP > 0 THEN
real(SP.HI_ALLOC2) * SW.FREESPCP / 100
WHEN SP.DB_TYP = 'HDAM'
AND SW.FREESPCP > 0
AND SP.TRK_SEC > 0 THEN
real(8589934590) * SW.FREESPCP / 100
WHEN SP.DB_TYP = 'PHDAM'
AND SW.FREESPCP > 0
AND SP.TRK_SEC > 0 THEN
real(4294967295) * SW.FREESPCP / 100
ELSE 0
END AS THRESHOLD, SW.FREESPCP AS SW_FREE,
SP.HI_ALLOC, SP.HI_ALLOC2,
SP.FREESPCP AS SP_FREE,
SP.IFREESPCP AS SP_IFREE, SP.DB_TYP,
SP.TRK_SEC * CAPACITY AS TRK_SEC,
SP.EXTENTS, SP.HI_ALCSPC, SP.CAPACITY
FROM oa1a.TADM31A1 SP,
oa1a.TADM32A1 SW
WHERE SP.DB_ACCESS = 'OSAM'
AND SP.DB_TYP IN ('HDAM','PHDAM')
AND SP.FREESPCP < SW.FREESPCP
AND SW.DB_NAME = SP.DB_NAME
AND (SW.DD_NAME = SP.DD_NAME
OR SW.DD_NAME = 'ALL')
AND SW.EXCLUDE = 'N'
AND SW.END_DATUM >= CURRENT TIMESTAMP
AND SP.RUNTIME = (SELECT MAX(RUNTIME)
FROM oa1a.TADM31A1
WHERE DB_NAME = SP.DB_NAME
AND DD_NAME = SP.DD_NAME)
AND SP.RUNTIME >= CURRENT TIMESTAMP - 7 DAYS) AS JN
WHERE ((JN.TRK_SEC > 0
AND real(JN.HIGHWATER-JN.ALLOC) / JN.TRK_SEC < 1)
OR (JN.TRK_SEC = 0
AND JN.SP_FREE < JN.SW_FREE))
WITH UR
}¢--- A540769.WK.SQL(IMSFRE3) cre=2008-10-23 mod=2008-10-23-15.13.27 F540769 ---
SELECT JN.DB_NAME, JN.DD_NAME,
(JN.ALLOC) AS ALLOC,
(MAX_SPC) AS MAX_SPC, (JN.HIGHWATER) AS HIGHWATER,
(JN.THRESHOLD) AS THRESHOLD,
(JN.HI_ALLOC), (JN.HI_ALLOC2),
JN.SW_FREE, JN.SP_FREE, JN.SP_IFREE,
JN.DB_TYP, (JN.TRK_SEC), 'DB-SPEZ',
JN.HI_ALCSPC, JN.CAPACITY
FROM (SELECT SP.DB_NAME, SP.DD_NAME,
(SP.HI_ALLOC-SP.FREESPC) AS ALLOC,
CASE
WHEN SP.TRK_SEC = 0 THEN
SP.HI_ALLOC2
WHEN SP.DB_TYP = 'HDAM'
AND SP.TRK_SEC > 0 THEN
8589934590
WHEN SP.DB_TYP = 'PHDAM'
AND SP.TRK_SEC > 0 THEN
4294967295
ELSE 0
END AS MAX_SPC,
CASE
WHEN SP.DB_TYP = 'HDAM' THEN
(real(8589934590)- (real(SW.FREESPCP)
* 8589934590 / 100))
WHEN SP.DB_TYP = 'PHDAM' THEN
(Real(4294967295)- (real(SW.FREESPCP)
* 4294967295 / 100))
ELSE 0
END AS HIGHWATER,
CASE
WHEN SP.TRK_SEC = 0
AND SP.HI_ALLOC2 > 0
AND SW.FREESPCP > 0 THEN
real(SP.HI_ALLOC2) * SW.FREESPCP / 100
WHEN SP.DB_TYP = 'HDAM'
AND SW.FREESPCP > 0
AND SP.TRK_SEC > 0 THEN
real(8589934590) * SW.FREESPCP / 100
WHEN SP.DB_TYP = 'PHDAM'
AND SW.FREESPCP > 0
AND SP.TRK_SEC > 0 THEN
real(4294967295) * SW.FREESPCP / 100
ELSE 0
END AS THRESHOLD, SW.FREESPCP AS SW_FREE,
SP.HI_ALLOC, SP.HI_ALLOC2,
SP.FREESPCP AS SP_FREE,
SP.IFREESPCP AS SP_IFREE, SP.DB_TYP,
SP.TRK_SEC * CAPACITY AS TRK_SEC,
SP.EXTENTS, SP.HI_ALCSPC, SP.CAPACITY
FROM oa1a.TADM31A1 SP,
oa1a.TADM32A1 SW
WHERE SP.DB_ACCESS = 'OSAM'
AND SP.DB_TYP IN ('HDAM','PHDAM')
AND SP.FREESPCP < SW.FREESPCP
AND SW.DB_NAME = SP.DB_NAME
AND (SW.DD_NAME = SP.DD_NAME
OR SW.DD_NAME = 'ALL')
AND SW.EXCLUDE = 'N'
AND SW.END_DATUM >= CURRENT TIMESTAMP
AND SP.RUNTIME = (SELECT MAX(RUNTIME)
FROM oa1a.TADM31A1
WHERE DB_NAME = SP.DB_NAME
AND DD_NAME = SP.DD_NAME)
AND SP.RUNTIME >= CURRENT TIMESTAMP - 7 DAYS) AS JN
WHERE ((JN.TRK_SEC > 0
AND real(JN.HIGHWATER-JN.ALLOC) / JN.TRK_SEC < 1)
OR (JN.TRK_SEC = 0
AND JN.SP_FREE < JN.SW_FREE))
WITH UR
}¢--- A540769.WK.SQL(IMSFRE4) cre=2008-10-23 mod=2008-10-23-15.19.48 F540769 ---
SELECT SP.DB_NAME, SP.DD_NAME,
(SP.HI_ALLOC-SP.FREESPC) AS ALLOC,
CASE
WHEN SP.TRK_SEC = 0 THEN
SP.HI_ALLOC2
WHEN SP.DB_TYP = 'HDAM'
AND SP.TRK_SEC > 0 THEN
8589934590
WHEN SP.DB_TYP = 'PHDAM'
AND SP.TRK_SEC > 0 THEN
4294967295
ELSE 0
END AS MAX_SPC,
CASE
WHEN SP.DB_TYP = 'HDAM' THEN
(real(8589934590)- (real(SW.FREESPCP)
* 8589934590 / 100))
WHEN SP.DB_TYP = 'PHDAM' THEN
(Real(4294967295)- (real(SW.FREESPCP)
* 4294967295 / 100))
ELSE 0
END AS HIGHWATER,
CASE
WHEN SP.TRK_SEC = 0
AND SP.HI_ALLOC2 > 0
AND SW.FREESPCP > 0 THEN
real(SP.HI_ALLOC2) * SW.FREESPCP / 100
WHEN SP.DB_TYP = 'HDAM'
AND SW.FREESPCP > 0
AND SP.TRK_SEC > 0 THEN
real(8589934590) * SW.FREESPCP / 100
WHEN SP.DB_TYP = 'PHDAM'
AND SW.FREESPCP > 0
AND SP.TRK_SEC > 0 THEN
real(4294967295) * SW.FREESPCP / 100
ELSE 0
END AS THRESHOLD, SW.FREESPCP AS SW_FREE,
SP.HI_ALLOC, SP.HI_ALLOC2,
SP.FREESPCP AS SP_FREE,
SP.IFREESPCP AS SP_IFREE, SP.DB_TYP,
SP.TRK_SEC * CAPACITY AS TRK_SEC,
SP.EXTENTS, SP.HI_ALCSPC, SP.CAPACITY
FROM oa1t.TADM31A1 SP,
oa1t.TADM32A1 SW
WITH UR
}¢--- A540769.WK.SQL(IMSFRE5) cre=2008-10-23 mod=2008-10-23-15.27.50 F540769 ---
SELECT JN.DB_NAME, JN.DD_NAME,
(JN.ALLOC) AS ALLOC,
(MAX_SPC) AS MAX_SPC, (JN.HIGHWATER) AS HIGHWATER,
(JN.THRESHOLD) AS THRESHOLD,
(JN.HI_ALLOC), (JN.HI_ALLOC2),
JN.SW_FREE, JN.SP_FREE, JN.SP_IFREE,
JN.DB_TYP, (JN.TRK_SEC), 'DB-SPEZ',
JN.HI_ALCSPC, JN.CAPACITY
FROM (SELECT SP.DB_NAME, SP.DD_NAME,
real(SP.HI_ALLOC-SP.FREESPC) AS ALLOC,
CASE
WHEN SP.TRK_SEC = 0 THEN
real(SP.HI_ALLOC2)
WHEN SP.DB_TYP = 'HDAM'
AND SP.TRK_SEC > 0 THEN
8589934590
WHEN SP.DB_TYP = 'PHDAM'
AND SP.TRK_SEC > 0 THEN
4294967295
ELSE 0
END AS MAX_SPC,
CASE
WHEN SP.DB_TYP = 'HDAM' THEN
(real(8589934590)- (real(SW.FREESPCP)
))-- ?? * 8589934590 / 100))
WHEN SP.DB_TYP = 'PHDAM' THEN
(Real(4294967295)- (real(SW.FREESPCP)
))-- ?? * 4294967295 / 100))
ELSE 0
END AS HIGHWATER,
CASE
WHEN SP.TRK_SEC = 0
AND SP.HI_ALLOC2 > 0
AND SW.FREESPCP > 0 THEN
real(SP.HI_ALLOC2) * SW.FREESPCP / 100
WHEN SP.DB_TYP = 'HDAM'
AND SW.FREESPCP > 0
AND SP.TRK_SEC > 0 THEN
real(8589934590) * SW.FREESPCP / 100
WHEN SP.DB_TYP = 'PHDAM'
AND SW.FREESPCP > 0
AND SP.TRK_SEC > 0 THEN
real(4294967295) * SW.FREESPCP / 100
ELSE 0
END AS THRESHOLD, SW.FREESPCP AS SW_FREE,
real(SP.HI_ALLOC) hi_alloc,
real(SP.HI_ALLOC2) hi_alloc2,
real(SP.FREESPCP) AS SP_FREE,
real(SP.IFREESPCP) AS SP_IFREE, SP.DB_TYP,
real(SP.TRK_SEC) * CAPACITY AS TRK_SEC,
real(SP.EXTENTS) extents,
real(SP.HI_ALCSPC) hi_alcspc,
real(sp.CAPACITY) capacity
FROM oa1a.TADM31A1 SP,
oa1a.TADM32A1 SW
WHERE SP.DB_ACCESS = 'OSAM'
AND SP.DB_TYP IN ('HDAM','PHDAM')
AND SP.FREESPCP < SW.FREESPCP
AND SW.DB_NAME = SP.DB_NAME
AND (SW.DD_NAME = SP.DD_NAME
OR SW.DD_NAME = 'ALL')
AND SW.EXCLUDE = 'N'
AND SW.END_DATUM >= CURRENT TIMESTAMP
AND SP.RUNTIME = (SELECT MAX(RUNTIME)
FROM oa1a.TADM31A1
WHERE DB_NAME = SP.DB_NAME
AND DD_NAME = SP.DD_NAME)
AND SP.RUNTIME >= CURRENT TIMESTAMP - 7 DAYS) AS JN
WHERE ((JN.TRK_SEC > 0
AND real(JN.HIGHWATER-JN.ALLOC) / JN.TRK_SEC < 1)
OR (JN.TRK_SEC = 0
AND JN.SP_FREE < JN.SW_FREE))
WITH UR
}¢--- A540769.WK.SQL(IMSFRE6) cre=2008-10-23 mod=2008-10-23-15.28.38 F540769 ---
SELECT JN.DB_NAME, JN.DD_NAME,
(JN.ALLOC) AS ALLOC,
(MAX_SPC) AS MAX_SPC, (JN.HIGHWATER) AS HIGHWATER,
(JN.THRESHOLD) AS THRESHOLD,
(JN.HI_ALLOC), (JN.HI_ALLOC2),
JN.SW_FREE, JN.SP_FREE, JN.SP_IFREE,
JN.DB_TYP, (JN.TRK_SEC), 'DB-SPEZ',
JN.HI_ALCSPC, JN.CAPACITY
FROM (SELECT SP.DB_NAME, SP.DD_NAME,
real(SP.HI_ALLOC-SP.FREESPC) AS ALLOC,
CASE
WHEN SP.TRK_SEC = 0 THEN
real(SP.HI_ALLOC2)
WHEN SP.DB_TYP = 'HDAM'
AND SP.TRK_SEC > 0 THEN
8589934590
WHEN SP.DB_TYP = 'PHDAM'
AND SP.TRK_SEC > 0 THEN
4294967295
ELSE 0
END AS MAX_SPC,
CASE
WHEN SP.DB_TYP = 'HDAM' THEN
(real(8589934590)- (real(SW.FREESPCP)
* real(8589934590) / 100))
WHEN SP.DB_TYP = 'PHDAM' THEN
(Real(4294967295)- (real(SW.FREESPCP)
* real(4294967295) / 100))
ELSE 0
END AS HIGHWATER,
CASE
WHEN SP.TRK_SEC = 0
AND SP.HI_ALLOC2 > 0
AND SW.FREESPCP > 0 THEN
real(SP.HI_ALLOC2) * SW.FREESPCP / 100
WHEN SP.DB_TYP = 'HDAM'
AND SW.FREESPCP > 0
AND SP.TRK_SEC > 0 THEN
real(8589934590) * SW.FREESPCP / 100
WHEN SP.DB_TYP = 'PHDAM'
AND SW.FREESPCP > 0
AND SP.TRK_SEC > 0 THEN
real(4294967295) * SW.FREESPCP / 100
ELSE 0
END AS THRESHOLD, SW.FREESPCP AS SW_FREE,
real(SP.HI_ALLOC) hi_alloc,
real(SP.HI_ALLOC2) hi_alloc2,
real(SP.FREESPCP) AS SP_FREE,
real(SP.IFREESPCP) AS SP_IFREE, SP.DB_TYP,
real(SP.TRK_SEC) * CAPACITY AS TRK_SEC,
real(SP.EXTENTS) extents,
real(SP.HI_ALCSPC) hi_alcspc,
real(sp.CAPACITY) capacity
FROM oa1a.TADM31A1 SP,
oa1a.TADM32A1 SW
WHERE SP.DB_ACCESS = 'OSAM'
AND SP.DB_TYP IN ('HDAM','PHDAM')
AND SP.FREESPCP < SW.FREESPCP
AND SW.DB_NAME = SP.DB_NAME
AND (SW.DD_NAME = SP.DD_NAME
OR SW.DD_NAME = 'ALL')
AND SW.EXCLUDE = 'N'
AND SW.END_DATUM >= CURRENT TIMESTAMP
AND SP.RUNTIME = (SELECT MAX(RUNTIME)
FROM oa1a.TADM31A1
WHERE DB_NAME = SP.DB_NAME
AND DD_NAME = SP.DD_NAME)
AND SP.RUNTIME >= CURRENT TIMESTAMP - 7 DAYS) AS JN
WHERE ((JN.TRK_SEC > 0
AND real(JN.HIGHWATER-JN.ALLOC) / JN.TRK_SEC < 1)
OR (JN.TRK_SEC = 0
AND JN.SP_FREE < JN.SW_FREE))
WITH UR
}¢--- A540769.WK.SQL(IMSFRE7) cre=2008-10-23 mod=2008-10-23-15.47.57 F540769 ---
-----------------------------------------------------------------------
-- SELECT ALLER IMS-DATENBANKEN, WELCHE NICHT GENÜGEND --
-- FREESPACE HABEN --
-- (1.TEIL: DEFAULTWERTE / 2.TEIL: DB-ABHÄNGIGE WERTE) --
-----------------------------------------------------------------------
--
SELECT JN.DB_NAME, JN.DD_NAME,
digits(int(JN.ALLOC)) AS ALLOC,
digits(int(MAX_SPC)) AS MAX_SPC,
digits(int(JN.HIGHWATER)) AS HIGHWATER,
digits(int(JN.THRESHOLD)) AS THRESHOLD,
digits(int(JN.HI_ALLOC)),
digits(int(JN.HI_ALLOC2)),
JN.SW_FREE, JN.SP_FREE, JN.SP_IFREE,
JN.DB_TYP, (JN.TRK_SEC), 'DEFAULT',
JN.HI_ALCSPC, JN.CAPACITY
FROM (SELECT SP.DB_NAME, SP.DD_NAME,
(SP.HI_ALLOC-SP.FREESPC) AS ALLOC,
CASE
WHEN SP.TRK_SEC = 0 then
real(sP.HI_ALLOC2)
WHEN SP.DB_TYP = 'HDAM'
AND SP.TRK_SEC > 0 THEN
real(8589934590)
WHEN SP.DB_TYP = 'PHDAM'
AND SP.TRK_SEC > 0 THEN
real(4294967295)
ELSE 0
END AS MAX_SPC,
CASE
WHEN SP.DB_TYP = 'HDAM' THEN
(real(8589934590)
- (real(SW.FREESPCP)* real(8589934590) / 100))
WHEN SP.DB_TYP = 'PHDAM' THEN
(real(4294967295) - (real(SW.FREESPCP)
* real(4294967295) / 100))
ELSE 0
END AS HIGHWATER,
CASE
WHEN SP.TRK_SEC = 0
AND SP.HI_ALLOC2 > 0
AND SW.FREESPCP > 0 THEN
SP.HI_ALLOC2 * SW.FREESPCP / 100
WHEN SP.DB_TYP = 'HDAM'
AND SW.FREESPCP > 0
AND SP.TRK_SEC > 0 THEN
real(8589934590) * SW.FREESPCP / 100
WHEN SP.DB_TYP = 'PHDAM'
AND SW.FREESPCP > 0
AND SP.TRK_SEC > 0 THEN
real(4294967295) * SW.FREESPCP / 100
ELSE 0
END AS THRESHOLD, SW.FREESPCP AS SW_FREE,
SP.HI_ALLOC, SP.HI_ALLOC2,
SP.FREESPCP AS SP_FREE,
SP.IFREESPCP AS SP_IFREE, SP.DB_TYP,
SP.TRK_SEC * CAPACITY AS TRK_SEC,
SP.EXTENTS, SP.HI_ALCSPC, SP.CAPACITY
FROM oa1a.TADM31A1 SP,
oa1a.TADM32A1 SW
WHERE SP.DB_ACCESS = 'OSAM'
AND SP.DB_TYP IN ('HDAM','PHDAM')
AND SP.FREESPCP < SW.FREESPCP
AND SW.DB_NAME = 'DEFAULT'
AND SW.DD_NAME = 'DEFAULT'
AND SW.END_DATUM >= CURRENT TIMESTAMP
AND SP.RUNTIME = (SELECT MAX(RUNTIME)
FROM oa1a.TADM31A1
WHERE DB_NAME = SP.DB_NAME
AND DD_NAME = SP.DD_NAME)
AND SP.RUNTIME >= CURRENT TIMESTAMP - 7 DAYS) AS JN
LEFT OUTER JOIN
oa1a.TADM32A1 SX
ON SX.DB_NAME = JN.DB_NAME
AND (SX.DD_NAME = JN.DD_NAME
OR SX.DD_NAME = 'ALL')
AND SX.END_DATUM >= CURRENT TIMESTAMP
AND (SX.FREESPCP > 0
OR SX.EXCLUDE = 'Y')
WHERE SX.DB_NAME IS NULL
AND ((JN.TRK_SEC > 0
AND (JN.HIGHWATER-JN.ALLOC) / JN.TRK_SEC < 1)
OR (JN.TRK_SEC = 0
AND JN.SP_FREE < JN.SW_FREE))
UNION
SELECT JN.DB_NAME, JN.DD_NAME,
digits(int(JN.ALLOC)) AS ALLOC,
digits(int(MAX_SPC)) AS MAX_SPC,
digits(int(JN.HIGHWATER)) AS HIGHWATER,
digits(int(JN.THRESHOLD)) AS THRESHOLD,
digits(int(JN.HI_ALLOC)),
digits(int(JN.HI_ALLOC2)),
JN.SW_FREE, JN.SP_FREE, JN.SP_IFREE,
JN.DB_TYP, (JN.TRK_SEC), 'DB-SPEZ',
JN.HI_ALCSPC, JN.CAPACITY
FROM (SELECT SP.DB_NAME, SP.DD_NAME,
(SP.HI_ALLOC-SP.FREESPC) AS ALLOC,
CASE
WHEN SP.TRK_SEC = 0 THEN
SP.HI_ALLOC2
WHEN SP.DB_TYP = 'HDAM'
AND SP.TRK_SEC > 0 THEN
real(8589934590)
WHEN SP.DB_TYP = 'PHDAM'
AND SP.TRK_SEC > 0 THEN
real(4294967295)
ELSE 0
END AS MAX_SPC,
CASE
WHEN SP.DB_TYP = 'HDAM' THEN
(real(8589934590) -
(SW.FREESPCP * real(8589934590) / 100))
WHEN SP.DB_TYP = 'PHDAM' THEN
(real(4294967295) - (SW.FREESPCP
* real(4294967295) / 100))
ELSE 0
END AS HIGHWATER,
CASE
WHEN SP.TRK_SEC = 0
AND SP.HI_ALLOC2 > 0
AND SW.FREESPCP > 0 THEN
SP.HI_ALLOC2 * SW.FREESPCP / 100
WHEN SP.DB_TYP = 'HDAM'
AND SW.FREESPCP > 0
AND SP.TRK_SEC > 0 THEN
real(8589934590) * SW.FREESPCP / 100
WHEN SP.DB_TYP = 'PHDAM'
AND SW.FREESPCP > 0
AND SP.TRK_SEC > 0 THEN
real(4294967295) * SW.FREESPCP / 100
ELSE 0
END AS THRESHOLD, SW.FREESPCP AS SW_FREE,
SP.HI_ALLOC, SP.HI_ALLOC2,
SP.FREESPCP AS SP_FREE,
SP.IFREESPCP AS SP_IFREE, SP.DB_TYP,
SP.TRK_SEC * CAPACITY AS TRK_SEC,
SP.EXTENTS, SP.HI_ALCSPC, SP.CAPACITY
FROM oa1a.TADM31A1 SP,
oa1a.TADM32A1 SW
WHERE SP.DB_ACCESS = 'OSAM'
AND SP.DB_TYP IN ('HDAM','PHDAM')
AND SP.FREESPCP < SW.FREESPCP
AND SW.DB_NAME = SP.DB_NAME
AND (SW.DD_NAME = SP.DD_NAME
OR SW.DD_NAME = 'ALL')
AND SW.EXCLUDE = 'N'
AND SW.END_DATUM >= CURRENT TIMESTAMP
AND SP.RUNTIME = (SELECT MAX(RUNTIME)
FROM oa1a.TADM31A1
WHERE DB_NAME = SP.DB_NAME
AND DD_NAME = SP.DD_NAME)
AND SP.RUNTIME >= CURRENT TIMESTAMP - 7 DAYS) AS JN
WHERE ((JN.TRK_SEC > 0
AND (JN.HIGHWATER-JN.ALLOC) / JN.TRK_SEC < 1)
OR (JN.TRK_SEC = 0
AND JN.SP_FREE < JN.SW_FREE))
WITH UR
}¢--- A540769.WK.SQL(IMSFRE9) cre=2008-10-23 mod=2008-10-23-17.40.18 F540769 ---
-----------------------------------------------------------------------
-- SELECT ALLER IMS-DATENBANKEN, WELCHE NICHT GENÜGEND --
-- FREESPACE HABEN --
-- (1.TEIL: DEFAULTWERTE / 2.TEIL: DB-ABHÄNGIGE WERTE) --
-----------------------------------------------------------------------
--
SELECT JN.DB_NAME, JN.DD_NAME,
digits(decimal(JN.ALLOC)) AS ALLOC,
digits(decimal(MAX_SPC)) AS MAX_SPC,
digits(decimal(JN.HIGHWATER)) AS HIGHWATER,
digits(decimal(JN.THRESHOLD)) AS THRESHOLD,
digits(decimal(JN.HI_ALLOC)),
digits(decimal(JN.HI_ALLOC2)),
JN.SW_FREE, JN.SP_FREE, JN.SP_IFREE,
JN.DB_TYP, digits(decimal(JN.TRK_SEC)), 'DEFAULT',
JN.HI_ALCSPC, JN.CAPACITY
FROM (SELECT SP.DB_NAME, SP.DD_NAME,
(SP.HI_ALLOC-SP.FREESPC) AS ALLOC,
CASE
WHEN SP.TRK_SEC = 0 then
real(sP.HI_ALLOC2)
WHEN SP.DB_TYP = 'HDAM'
AND SP.TRK_SEC > 0 THEN
real(8589934590)
WHEN SP.DB_TYP = 'PHDAM'
AND SP.TRK_SEC > 0 THEN
real(4294967295)
ELSE 0
END AS MAX_SPC,
CASE
WHEN SP.DB_TYP = 'HDAM' THEN
(real(8589934590)
- (real(SW.FREESPCP)* real(8589934590) / 100))
WHEN SP.DB_TYP = 'PHDAM' THEN
(real(4294967295) - (real(SW.FREESPCP)
* real(4294967295) / 100))
ELSE 0
END AS HIGHWATER,
CASE
WHEN SP.TRK_SEC = 0
AND SP.HI_ALLOC2 > 0
AND SW.FREESPCP > 0 THEN
SP.HI_ALLOC2 * SW.FREESPCP / 100
WHEN SP.DB_TYP = 'HDAM'
AND SW.FREESPCP > 0
AND SP.TRK_SEC > 0 THEN
real(8589934590) * SW.FREESPCP / 100
WHEN SP.DB_TYP = 'PHDAM'
AND SW.FREESPCP > 0
AND SP.TRK_SEC > 0 THEN
real(4294967295) * SW.FREESPCP / 100
ELSE 0
END AS THRESHOLD, SW.FREESPCP AS SW_FREE,
SP.HI_ALLOC, SP.HI_ALLOC2,
SP.FREESPCP AS SP_FREE,
SP.IFREESPCP AS SP_IFREE, SP.DB_TYP,
SP.TRK_SEC * CAPACITY AS TRK_SEC,
SP.EXTENTS, SP.HI_ALCSPC, SP.CAPACITY
FROM oa1t.TADM31A1 SP,
oa1t.TADM32A1 SW
WHERE SP.DB_ACCESS = 'OSAM'
AND SP.DB_TYP IN ('HDAM','PHDAM')
AND SP.FREESPCP < SW.FREESPCP
AND SW.DB_NAME = 'DEFAULT'
AND SW.DD_NAME = 'DEFAULT'
AND SW.END_DATUM >= CURRENT TIMESTAMP
AND SP.RUNTIME = (SELECT MAX(RUNTIME)
FROM oa1t.TADM31A1
WHERE DB_NAME = SP.DB_NAME
AND DD_NAME = SP.DD_NAME)
AND SP.RUNTIME >= CURRENT TIMESTAMP - 7 DAYS) AS JN
LEFT OUTER JOIN
oa1t.TADM32A1 SX
ON SX.DB_NAME = JN.DB_NAME
AND (SX.DD_NAME = JN.DD_NAME
OR SX.DD_NAME = 'ALL')
AND SX.END_DATUM >= CURRENT TIMESTAMP
AND (SX.FREESPCP > 0
OR SX.EXCLUDE = 'Y')
WHERE SX.DB_NAME IS NULL
AND ((JN.TRK_SEC > 0
AND (JN.HIGHWATER-JN.ALLOC) / JN.TRK_SEC < 1)
OR (JN.TRK_SEC = 0
AND JN.SP_FREE < JN.SW_FREE))
UNION
SELECT JN.DB_NAME, JN.DD_NAME,
digits(decimal(JN.ALLOC)) AS ALLOC,
digits(decimal(MAX_SPC)) AS MAX_SPC,
digits(decimal(JN.HIGHWATER)) AS HIGHWATER,
digits(decimal(JN.THRESHOLD)) AS THRESHOLD,
digits(decimal(JN.HI_ALLOC)),
digits(decimal(JN.HI_ALLOC2)),
JN.SW_FREE, JN.SP_FREE, JN.SP_IFREE,
JN.DB_TYP, digits(decimal(JN.TRK_SEC)), 'DB-SPEZ',
JN.HI_ALCSPC, JN.CAPACITY
FROM (SELECT SP.DB_NAME, SP.DD_NAME,
(SP.HI_ALLOC-SP.FREESPC) AS ALLOC,
CASE
WHEN SP.TRK_SEC = 0 THEN
SP.HI_ALLOC2
WHEN SP.DB_TYP = 'HDAM'
AND SP.TRK_SEC > 0 THEN
real(8589934590)
WHEN SP.DB_TYP = 'PHDAM'
AND SP.TRK_SEC > 0 THEN
real(4294967295)
ELSE 0
END AS MAX_SPC,
CASE
WHEN SP.DB_TYP = 'HDAM' THEN
(real(8589934590) -
(SW.FREESPCP * real(8589934590) / 100))
WHEN SP.DB_TYP = 'PHDAM' THEN
(real(4294967295) - (SW.FREESPCP
* real(4294967295) / 100))
ELSE 0
END AS HIGHWATER,
CASE
WHEN SP.TRK_SEC = 0
AND SP.HI_ALLOC2 > 0
AND SW.FREESPCP > 0 THEN
SP.HI_ALLOC2 * SW.FREESPCP / 100
WHEN SP.DB_TYP = 'HDAM'
AND SW.FREESPCP > 0
AND SP.TRK_SEC > 0 THEN
real(8589934590) * SW.FREESPCP / 100
WHEN SP.DB_TYP = 'PHDAM'
AND SW.FREESPCP > 0
AND SP.TRK_SEC > 0 THEN
real(4294967295) * SW.FREESPCP / 100
ELSE 0
END AS THRESHOLD, SW.FREESPCP AS SW_FREE,
SP.HI_ALLOC, SP.HI_ALLOC2,
SP.FREESPCP AS SP_FREE,
SP.IFREESPCP AS SP_IFREE, SP.DB_TYP,
SP.TRK_SEC * CAPACITY AS TRK_SEC,
SP.EXTENTS, SP.HI_ALCSPC, SP.CAPACITY
FROM oa1t.TADM31A1 SP,
oa1t.TADM32A1 SW
WHERE SP.DB_ACCESS = 'OSAM'
AND SP.DB_TYP IN ('HDAM','PHDAM')
AND SP.FREESPCP < SW.FREESPCP
AND SW.DB_NAME = SP.DB_NAME
AND (SW.DD_NAME = SP.DD_NAME
OR SW.DD_NAME = 'ALL')
AND SW.EXCLUDE = 'N'
AND SW.END_DATUM >= CURRENT TIMESTAMP
AND SP.RUNTIME = (SELECT MAX(RUNTIME)
FROM oa1t.TADM31A1
WHERE DB_NAME = SP.DB_NAME
AND DD_NAME = SP.DD_NAME)
AND SP.RUNTIME >= CURRENT TIMESTAMP - 7 DAYS) AS JN
WHERE ((JN.TRK_SEC > 0
AND (JN.HIGHWATER-JN.ALLOC) / JN.TRK_SEC < 1)
OR (JN.TRK_SEC = 0
AND JN.SP_FREE < JN.SW_FREE))
WITH UR
}¢--- A540769.WK.SQL(INS) cre=2006-02-23 mod=2007-03-23-09.52.25 F540769 -------
select * 00010030
from 00020030
final table 00030030
( insert into A540769.TWK001A (wk001name, wk001num, wk001t1) 00040031
values ('zweinUnddreissg', 32, 'c') 00050030
) 00060030
; 00070028
final table ( 00080025
insert into A540769.TWK001A (wk001name, wk001num, wk001t1) 00090031
values ('dreinUnddreissg', 31, 'c') 00100025
) i2 00110026
; 00120024
rollback 00130022
}¢--- A540769.WK.SQL(INSPART) cre= mod= ----------------------------------------
insert into DGDB0211.TID155A1
(
TID155TST ,
TID155UUI ,
TID155CHA ,
TID155LNR ,
TID155VRS ,
TID155CRE ,
TID155IDT ,
TID155IDE ,
TID155ADT ,
TID155ADR ,
TID155BU ,
TID155BKS ,
TID155ARE ,
TID155CBE ,
TID155INS
)
values (
'1804-09-21-00.00.00.000000' ,
'uui-eins',
'a',
'a',
'a',
'a',
'a',
'a',
'a',
'a',
'a',
'a',
'a',
'a',
'a'
)
;
}¢--- A540769.WK.SQL(INSUSR) cre=2006-06-09 mod=2006-06-09-14.09.25 F540769 ----
-- SET CURRENT SQLID = 'A540769' ;
INSERT INTO GDB9998.TWKUSER (CH4) VALUES ('EINS');
COMMIT
;
SELECT * FROM GDB9998.TWKUSER ;
SELECT CURRENT SQLID, USER ,S.* FROM SYSIBM.SYSDUMMY1 S;
}¢--- A540769.WK.SQL(IXSTATS) cre=2014-04-30 mod=2014-04-30-22.15.50 A540769 ---
$#:
$*( index stats
show keyCombinations for indexKey (1), (1,2), (1,2,3) etc.
$*)
dbSys = DBOF
$;
>.fEdit('::v250')
@%-¢ixStats oa1p, iks833a4$!
proc @/ixStats/
parse upper arg , cr, ix
$=cr =- cr
$=ix =- ix
call sqlConnect $dbSys
tb = sql2One("select strip(tbCreator) || '.' || strip(tbName)" ,
"from sysibm.sysIndexes" ,
"where creator = '"cr"' and name = '"ix"'")
$$- '-- index' $cr'.'$ix 'tb' tb
call sql2St "select strip(colName) from sysibm.sysKeys",
"where ixCreator = '"cr"' and ixName = '"ix"'" ,
"order by colSeq", ky, ":m.dst"
cols = ''
colv = ''
do kx=1 to m.ky.0
cols = cols',' m.ky.kx
colv = colv "|| ', ' || value('' || "m.ky.kx", '')"
end
$$- '-- keys ' substr(cols, 3)
$;
$$- 'with g'm.ky.0 'as'
$$- '('
$$- ' select' m.ky.0 'keys, count(*) rows'cols
if 0 then
$$- ' from (select * from' tb 'fetch first 100 rows only) t'
else
$$- ' from' tb 't'
$$- ' group by' substr(cols, 3)
$$- ')'
$do kx=m.ky.0-1 by-1 to 1 $@¢
co1 = ''
do cx=1 to kx
co1 = co1',' m.ky.cx
end
co2 = ''
do cx=kx+1 to m.ky.0
co2 = co2', case when 1=0 then max(' || m.ky.cx || ')',
'else null end' m.ky.cx
end
$$- ', g'kx 'as'
$$- '('
$$- ' select' kx 'keys, sum(rows) rows'co1 co2
$$- ' from g' || (kx+1)
$$- ' group by' substr(co1, 3)
$$- ')'
$!
$$- ', g as'
$$- '('
$$- ' select * from g'm.ky.0
$do kx=m.ky.0-1 by-1 to 1 $@¢
$$- ' union all select * from g'kx
$!
$$- ')'
$$- ', t as'
$$- '('
$$- ' select keys, min(rows) rowsMin, max(rows) rowsMax'
$$- ' , avg(real(rows)) rowsAvg, sum(rows) rowsSum'
$$- ' , count(*) keyComb'
if 0 then
$$- " , max(right(' '||rows,12)" $*+
" || ': '" substr(colV, 10)") maxFlds"
$$- " from g"
$$- " group by keys"
$$- ')'
$$- 'select t.* from t order by keys'
m.sqlRetOk = 'w'
$|
say time() 'begin query index' $cr'.'$ix 'tb' tb
call sqlQuery 7
call sqlfTabReset ft, 7, 1, ,300
call sqlfTabOthers ft
call sqlfTab ft
say time() 'end query index' $cr'.'$ix 'tb' tb
call sqlClose 7
call sqlDisConnect
$/ixStats/
$#out 20140430 22:11:35
$#out 20140430 22:11:24
}¢--- A540769.WK.SQL(KASP) cre=2006-12-11 mod=2006-12-11-17.16.05 F540769 ------
SELECT UNDERLAYER , 00010000
LAUFNR , 00020000
VERFALL , 00030000
CASE WHEN BASISPREIS >= 10000000 THEN 9999999.999999 00040000
WHEN BASISPREIS <= -10000000 THEN -9999999.999999 00050000
ELSE DECIMAL(BASISPREIS,13,6) 00060000
END , 00070000
CASE WHEN KONTRAKT >= 10000000 THEN 9999999.999999 00080000
WHEN KONTRAKT <= -10000000 THEN -9999999.999999 00090000
ELSE DECIMAL(KONTRAKT ,13,6) 00100000
END , 00110000
VERSION , 00120000
MUT_TIMESTAMP, 00130000
TKKEY, YEAR(VERFALL), MONTH(VERFALL) 00140000
FROM OA1A.VFI011A1 A 00150000
WHERE A.UNDERLAYER = 30000000 00160000
AND A.LAUFNR = 2 00170000
AND A.VERFALL >= '01.01.1999' 00180000
AND A.MUT_TIMESTAMP = (SELECT MAX(MUT_TIMESTAMP) 00190000
FROM OA1A.VFI011A1 B 00200001
WHERE B.UNDERLAYER = A.UNDERLAYER 00210001
AND B.LAUFNR = A.LAUFNR 00220001
AND B.VERFALL = A.VERFALL 00230001
AND B.BASISPREIS = A.BASISPREIS 00240001
AND B.KONTRAKT = A.KONTRAKT 00250001
AND B.VERSION = A.VERSION) 00260001
ORDER BY 1, 2, 9, 10, 4, 5, 3, 6 00270000
; 00280000
XREATE VIEW OA1A.VFI011A1 00290001
( UNDERLAYER, LAUFNR, VERFALL, BASISPREIS, KONTRAKT, 00300001
VERSION, MUT_TIMESTAMP, TKKEY) AS 00310001
SELECT FI01101A, FI01102A, FI01103A, FI01104A, FI01105A, 00320001
FI01106A, FI01107A, FI01108A 00330001
FROM OA1A.TFI011A1 ; 00340001
00350000
}¢--- A540769.WK.SQL(KASPKEY) cre=2006-12-14 mod=2006-12-14-10.13.09 F540769 ---
select count(*), FI01108A
from oa1t.tfi011a1
group by fi01108a
order by 1 desc
with ur
}¢--- A540769.WK.SQL(KASPT) cre=2006-12-11 mod=2006-12-12-10.03.15 F540769 -----
EXPLAIN PLAN SET QUERYNO=231 FOR 00010009
SELECT UNDERLAYER , 00020009
LAUFNR , 00030009
VERFALL , 00040009
CASE WHEN BASISPREIS >= 10000000 THEN 9999999.999999 00050009
WHEN BASISPREIS <= -10000000 THEN -9999999.999999 00060009
ELSE DECIMAL(BASISPREIS,13,6) 00070009
END , 00080009
CASE WHEN KONTRAKT >= 10000000 THEN 9999999.999999 00090009
WHEN KONTRAKT <= -10000000 THEN -9999999.999999 00100009
ELSE DECIMAL(KONTRAKT ,13,6) 00110009
END , 00120009
VERSION , 00130009
MUT_TIMESTAMP, 00140009
TKKEY, YEAR(VERFALL), MONTH(VERFALL) 00150009
FROM Oa1t.VFI011A1 A 00160021
WHERE A.UNDERLAYER = 30000000 00170023
AND A.LAUFNR = 2 00180013
AND A.VERFALL >= '01.01.1999' 00190009
AND A.MUT_TIMESTAMP = (SELECT MAX(MUT_TIMESTAMP) 00200009
FROM Oa1t.VFI011A1 B 00210021
WHERE B.UNDERLAYER = A.UNDERLAYER 00220009
AND B.LAUFNR = A.LAUFNR 00230009
AND B.VERFALL = A.VERFALL 00240009
AND B.BASISPREIS = A.BASISPREIS 00250009
AND B.KONTRAKT = A.KONTRAKT 00260009
AND B.VERSION = A.VERSION) 00270009
ORDER BY 1, 2, 9, 10, 4, 5, 3, 6 00280009
; 00290009
select * 00300014
from A540769.plan_view5 v 00310024
where -- progname = 'DSNREXX' 00320014
queryno =231 -- between 1000000 and 1009999 00330014
order by applname, progname, queryNo, qblockno, planno 00340014
; 00350014
COMMIT 00360009
; 00370009
XREATE VIEW Oa1t.VFI011A1 00380021
( UNDERLAYER, LAUFNR, VERFALL, BASISPREIS, KONTRAKT, 00390009
VERSION, MUT_TIMESTAMP, TKKEY) AS 00400009
SELECT FI01101A, FI01102A, FI01103A, FI01104A, FI01105A, 00410009
FI01106A, FI01107A, FI01108A 00420009
FROM Oa1t.TFI011A1 ; 00430021
00440009
EXPLAIN PLAN SET QUERYNO=231 FOR 00450002
SELECT A.UNDERLAYER , 00460005
A.LAUFNR , 00470005
A.VERFALL , 00480005
CASE WHEN A.BASISPREIS >= 10000000 THEN 9999999.999999 00490005
WHEN A.BASISPREIS <= -10000000 THEN -9999999.999999 00500005
ELSE DECIMAL(A.BASISPREIS,13,6) 00510005
END , 00520000
CASE WHEN A.KONTRAKT >= 10000000 THEN 9999999.999999 00530005
WHEN A.KONTRAKT <= -10000000 THEN -9999999.999999 00540005
ELSE DECIMAL(A.KONTRAKT ,13,6) 00550008
END , 00560000
A.VERSION , 00570005
A.MUT_TIMESTAMP, 00580005
A.TKKEY, YEAR(A.VERFALL), MONTH(A.VERFALL) 00590005
FROM Oa1t.VFI011A1 A 00600021
JOIN 00610004
( SELECT UNDERLAYER, 00620004
LAUFNR, 00630004
VERFALL, 00640004
MAX(MUT_TIMESTAMP) MUT_TIMESTAMP, 00650006
BASISPREIS, 00660004
KONTRAKT, 00670004
VERSION 00680007
FROM Oa1t.VFI011A1 00690021
GROUP BY UNDERLAYER, 00700004
LAUFNR, 00710004
VERFALL, 00720004
BASISPREIS, 00730004
KONTRAKT, 00740004
VERSION 00750004
) B 00760004
ON 00770004
B.UNDERLAYER = A.UNDERLAYER 00780004
AND B.LAUFNR = A.LAUFNR 00790004
AND B.VERFALL = A.VERFALL 00800004
AND B.MUT_TIMESTAMP = A.MUT_TIMESTAMP 00810004
AND B.BASISPREIS = A.BASISPREIS 00820004
AND B.KONTRAKT = A.KONTRAKT 00830004
AND B.VERSION = A.VERSION 00840004
WHERE A.UNDERLAYER = 30000000 00850000
AND A.LAUFNR = 2 00860000
AND A.VERFALL >= '01.01.1999' 00870000
ORDER BY 1, 2, 9, 10, 4, 5, 3, 6 00880000
; 00890000
00900000
}¢--- A540769.WK.SQL(KASPVW) cre= mod= -----------------------------------------
SET CURRENT SQLID='OA1A';
SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","OA1A" ;
CREATE VIEW OA1A.VFI011A1
( UNDERLAYER, LAUFNR, VERFALL, BASISPREIS, KONTRAKT,
VERSION, MUT_TIMESTAMP, TKKEY) AS
SELECT FI01101A, FI01102A, FI01103A, FI01104A, FI01105A,
FI01106A, FI01107A, FI01108A
FROM OA1A.TFI011A1 ;
COMMIT;
}¢--- A540769.WK.SQL(KASPW) cre=2006-12-11 mod=2006-12-12-10.10.12 F540769 -----
EXPLAIN PLAN SET QUERYNO=231 FOR 00010002
-- WITH V AS 00020003
SELECT * 00030003
FROM OA1A.TFI011A1 00040013
WHERE FI01101A = 30000000 00050011
AND FI01102A = 2 00060004
AND FI01103A >= '01.01.1999' 00070004
; 00080003
SELECT * 00090012
FROM A540769.PLAN_VIEW5 V 00100014
WHERE QUERYNO = 231 00110012
ORDER BY APPLNAME, PROGNAME, QUERYNO, QBLOCKNO, PLANNO 00120012
; 00130012
EXPLAIN PLAN SET QUERYNO=231 FOR 00140012
-- WITH V AS 00150011
SELECT * 00160011
FROM OA1A.TFI011A1 00170013
WHERE FI01101A = 30000000 + 2 - 2 00180011
AND FI01102A = 2 00190011
AND FI01103A >= '01.01.1999' 00200011
; 00210011
SELECT * 00220012
FROM A540769.PLAN_VIEW5 V 00230014
WHERE QUERYNO = 231 00240012
ORDER BY APPLNAME, PROGNAME, QUERYNO, QBLOCKNO, PLANNO 00250012
; 00260012
EXPLAIN PLAN SET QUERYNO=231 FOR 00270012
-- WITH V AS 00280011
SELECT * 00290011
FROM OA1A.TFI011A1 00300013
WHERE FI01101A = DECIMAL(30000000) 00310011
AND FI01102A = 2 00320011
AND FI01103A >= '01.01.1999' 00330011
; 00340011
SELECT * 00350008
FROM A540769.PLAN_VIEW5 V 00360014
WHERE QUERYNO = 231 00370012
ORDER BY APPLNAME, PROGNAME, QUERYNO, QBLOCKNO, PLANNO 00380008
; 00390008
00400008
COMMIT; 00410003
SELECT UNDERLAYER , 00420001
LAUFNR , 00430001
VERFALL , 00440001
CASE WHEN BASISPREIS >= 10000000 THEN 9999999.999999 00450001
WHEN BASISPREIS <= -10000000 THEN -9999999.999999 00460001
ELSE DECIMAL(BASISPREIS,13,6) 00470001
END , 00480001
CASE WHEN KONTRAKT >= 10000000 THEN 9999999.999999 00490001
WHEN KONTRAKT <= -10000000 THEN -9999999.999999 00500001
ELSE DECIMAL(KONTRAKT ,13,6) 00510001
END , 00520001
VERSION , 00530001
MUT_TIMESTAMP, 00540001
TKKEY, YEAR(VERFALL), MONTH(VERFALL) 00550001
FROM V A 00560001
WHERE A.MUT_TIMESTAMP = (SELECT MAX(MUT_TIMESTAMP) 00570001
FROM V B 00580001
WHERE B.VERFALL = A.VERFALL 00590001
AND B.BASISPREIS = A.BASISPREIS 00600001
AND B.KONTRAKT = A.KONTRAKT 00610001
AND B.VERSION = A.VERSION) 00620001
ORDER BY 1, 2, 9, 10, 4, 5, 3, 6 00630001
; 00640001
}¢--- A540769.WK.SQL(KASP2) cre=2006-12-14 mod=2006-12-14-10.11.55 F540769 -----
SELECT UNDERLAYER, LAUFNR, VERFALL, CASE WHEN
BASISPREIS >= 10000000 THEN 9999999.999999 WHEN BASISPREIS <= -
10000000 THEN - 9999999.999999 ELSE DECIMAL (BASISPREIS, 13, 6) END,
CASE WHEN KONTRAKT >= 10000000 THEN 9999999.999999 WHEN KONTRAKT <= -
10000000 THEN - 9999999.999999 ELSE DECIMAL (KONTRAKT, 13, 6) END,
VERSION, MUT_TIMESTAMP, TKKEY, YEAR (VERFALL), MONTH (VERFALL) FROM
VFI011A1 A WHERE A.UNDERLAYER = :H AND A.LAUFNR = :H AND A.VERFALL >=
'01' ¨¨ SUBSTR (:H, 3, 8) AND A.MUT_TIMESTAMP = (SELECT MAX
(MUT_TIMESTAMP) FROM VFI011A1 WHERE UNDERLAYER = A.UNDERLAYER AND
LAUFNR = A.LAUFNR AND VERFALL = A.VERFALL AND BASISPREIS = A.BASISPREIS
AND KONTRAKT = A.KONTRAKT AND VERSION = A.VERSION) ORDER BY 1, 2, 9,
10, 4, 5, 3, 6
}¢--- A540769.WK.SQL(KEL1) cre=2006-05-23 mod=2006-05-24-07.54.39 F540769 ------
SELECT 00000127
RE506050 , (SELECT COUNT(*) -- C.RT06002 00000227
FROM OA1A.TRT061 C, 00000327
OA1A.TRE513A1 B 00000427
WHERE B.RE513010 = C.RT06001 00000527
AND B.RE513020 <= CURRENT TIMESTAMP 00000627
AND B.RE513030 >= CURRENT TIMESTAMP 00000727
AND B.RE513050 = A.RE506010 00000827
AND A.RE506020 = 'D' 00000927
AND A.RE506030 <= CURRENT TIMESTAMP 00001027
AND A.RE506040 >= CURRENT TIMESTAMP) 00001127
FROM OA1A.TRE506A1 A 00001227
WHERE RE506020 = 'D' 00001327
AND RE506030 <= CURRENT TIMESTAMP 00001427
AND RE506040 >= CURRENT TIMESTAMP 00001527
; 00001627
XPDATE OA1A.TRE506A1 00002027
SET RE506050 = 00003019
( SELECT MAX(C.RE513010) 00004019
FROM OA1A.TRE513A1 B, 00005019
OA1A.TRE513A1 C 00006019
WHERE RE506010 = B.RE513050 00007022
AND B.RE513010 = C.RE513010 00008019
AND B.RE513020 = C.RE513020 00009019
AND B.RE513010 = 'FRW' 00009119
) 00009220
WHERE EXISTS 00009419
( SELECT C.RE513010 00009519
FROM OA1A.TRE513A1 B, 00009619
OA1A.TRE513A1 C 00009719
WHERE RE506010 = B.RE513050 00009823
AND B.RE513010 = C.RE513010 00009919
AND B.RE513020 = C.RE513020 00010019
AND B.RE513010 = 'FRW' 00010119
) 00010219
; 00010319
XELECT RE506010, 00010627
RE506020, 00011003
RE506050, 00012004
( SELECT MAX(C.RE513010) 00013010
FROM OA1A.TRE513A1 B, 00014111
OA1A.TRE513A1 C 00014210
WHERE A.RE506010 = B.RE513050 00015008
AND B.RE513010 = C.RE513010 00015113
AND B.RE513020 = C.RE513020 00015213
AND B.RE513010 = 'FRW' 00015317
) KAS 00017007
FROM OA1A.TRE506A1 A 00020016
WHERE EXISTS 00020118
( SELECT C.RE513010 00021018
FROM OA1A.TRE513A1 B, 00022018
OA1A.TRE513A1 C 00023018
WHERE A.RE506010 = B.RE513050 00024018
AND B.RE513010 = C.RE513010 00025018
AND B.RE513020 = C.RE513020 00026018
AND B.RE513010 = 'FRW' 00027018
) 00028018
; 00030025
ROLLBACK 00031026
; 00032026
SELECT RE506010, 00040024
RE506020, 00050024
RE506050, 00060024
( SELECT MAX(C.RE513010) 00070024
FROM OA1A.TRE513A1 B, 00080024
OA1A.TRE513A1 C 00090024
WHERE A.RE506010 = B.RE513050 00100024
AND B.RE513010 = C.RE513010 00110024
AND B.RE513020 = C.RE513020 00120024
AND B.RE513010 = 'FRW' 00130024
) KAS 00140024
FROM OA1A.TRE506A1 A 00150024
WHERE EXISTS 00160024
( SELECT C.RE513010 00170024
FROM OA1A.TRE513A1 B, 00180024
OA1A.TRE513A1 C 00190024
WHERE A.RE506010 = B.RE513050 00200024
AND B.RE513010 = C.RE513010 00210024
AND B.RE513020 = C.RE513020 00220024
AND B.RE513010 = 'FRW' 00230024
) 00240024
00250024
}¢--- A540769.WK.SQL(KE49LO) cre=2008-10-17 mod=2008-11-06-08.32.57 F540769 ----
call sqlConnect dbtf
$;
$<<eof
SELECT COUNT(DISTINCT(V833.PARTNER_KEY)) cnt
FROM OA1t.VKS833A1V V833
, OA1t.VKS835A1V V835
WHERE V833.CONTRACT_COLL like '07%'
AND V833.PARTNER_TYPE = 3
AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
AND V833.VALID_TO_DATE
AND V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V833.PARTNER_KEY = V835.PARTNER_KEY
AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
AND V835.VALID_TO_DATE
AND LOCATE(V835.PRODUCT_ID, '0052
0053
0054
0055 ,
0056 ,
0057 ,
0058 ,
0142 ,
0152 ,
0153 ,
0167 ,
0168 ,
0169 ,
0179 ') > 0
with ur
eof $=sql£envCatStr(' ', 'sb')
call sqlPrepare 1, $sql
la = timing()
do x=1 to 10
call sqlOpAllCl 1, st, ':cnt'
ti = timing()
$£ ti (word(ti, 3) - word(la, 3)) 'cnt' cnt
la = ti
if 0 then do
call sqlCommit
call sqlPrepare 1, $sql
end
end
$*(
eof call sqlLn 1
$¨ $@{ $@for v $@{ $£ timing() strip($v)
$}
$}
$;
$*)
call sqlDisConnect
$***out 20081106 08:32:17
08:32:23 0 0.58 0.21 cnt 510
08:32:23 0 0.68 0.10 cnt 510
08:32:23 0 0.77 0.09 cnt 510
08:32:24 0 0.87 0.10 cnt 510
08:32:24 0 0.97 0.10 cnt 510
08:32:24 0 1.06 0.09 cnt 510
08:32:24 0 1.16 0.10 cnt 510
08:32:24 0 1.25 0.09 cnt 510
08:32:25 0 1.35 0.10 cnt 510
08:32:25 0 1.45 0.10 cnt 510
$***out 20081017 11:10:40
11:10:42 0 4.89 0.98 cnt 503
11:10:46 0 7.67 2.78 cnt 503
11:10:54 0 12.39 4.72 cnt 503
11:11:04 0 19.34 6.95 cnt 503
11:11:20 0 29.54 10.20 cnt 503
11:11:39 0 43.03 13.49 cnt 503
11:12:12 0 65.61 22.58 cnt 503
11:12:53 0 95.83 30.22 cnt 503
11:14:16 0 146.99 51.16 cnt 503
11:15:43 0 207.38 60.39 cnt 503
$***out 20081017 11:07:33
11:07:35 0 3.83 1.00 cnt 503
$***out 20081017 11:07:00
11:07:01 0 1.05 0.03 cnt 55
11:07:01 0 1.08 0.03 cnt 55
11:07:01 0 1.13 0.05 cnt 55
11:07:01 0 1.18 0.05 cnt 55
11:07:01 0 1.26 0.08 cnt 55
11:07:01 0 1.34 0.08 cnt 55
11:07:01 0 1.44 0.10 cnt 55
11:07:02 0 1.55 0.11 cnt 55
11:07:02 0 1.68 0.13 cnt 55
11:07:02 0 1.82 0.14 cnt 55
11:07:02 0 1.98 0.16 cnt 55
11:07:02 0 2.15 0.17 cnt 55
11:07:03 0 2.33 0.18 cnt 55
11:07:03 0 2.53 0.20 cnt 55
11:07:03 0 2.74 0.21 cnt 55
$***out 20081017 11:06:41
11:06:41 0 0.85 0.01 cnt 9
11:06:41 0 0.85 0 cnt 9
11:06:41 0 0.85 0 cnt 9
11:06:41 0 0.86 0.01 cnt 9
11:06:41 0 0.86 0 cnt 9
11:06:41 0 0.87 0.01 cnt 9
11:06:41 0 0.87 0 cnt 9
11:06:41 0 0.88 0.01 cnt 9
11:06:41 0 0.88 0 cnt 9
11:06:41 0 0.89 0.01 cnt 9
11:06:41 0 0.90 0.01 cnt 9
11:06:41 0 0.90 0 cnt 9
11:06:41 0 0.91 0.01 cnt 9
11:06:41 0 0.92 0.01 cnt 9
11:06:41 0 0.93 0.01 cnt 9
$***out 20081017 11:06:28
11:06:28 0 0.69 0 cnt 0
11:06:28 0 0.70 0.01 cnt 0
11:06:28 0 0.70 0 cnt 0
11:06:28 0 0.70 0 cnt 0
11:06:28 0 0.70 0 cnt 0
11:06:28 0 0.70 0 cnt 0
11:06:28 0 0.70 0 cnt 0
11:06:28 0 0.70 0 cnt 0
11:06:28 0 0.70 0 cnt 0
11:06:28 0 0.70 0 cnt 0
11:06:28 0 0.70 0 cnt 0
11:06:28 0 0.71 0.01 cnt 0
11:06:28 0 0.71 0 cnt 0
11:06:28 0 0.71 0 cnt 0
11:06:28 0 0.71 0 cnt 0
$***out 20081017 11:06:17
11:06:18 0 0.57 0 cnt 0
11:06:18 0 0.57 0 cnt 0
11:06:18 0 0.57 0 cnt 0
11:06:18 0 0.58 0.01 cnt 0
11:06:18 0 0.58 0 cnt 0
11:06:18 0 0.58 0 cnt 0
11:06:18 0 0.58 0 cnt 0
11:06:18 0 0.58 0 cnt 0
11:06:18 0 0.58 0 cnt 0
11:06:18 0 0.58 0 cnt 0
11:06:18 0 0.58 0 cnt 0
11:06:18 0 0.58 0 cnt 0
11:06:18 0 0.59 0.01 cnt 0
11:06:18 0 0.59 0 cnt 0
11:06:18 0 0.59 0 cnt 0
$***out 20081017 11:06:05
11:06:05 0 0.47 0.01 cnt 0
11:06:05 0 0.47 0 cnt 0
11:06:05 0 0.47 0 cnt 0
11:06:05 0 0.47 0 cnt 0
11:06:05 0 0.47 0 cnt 0
11:06:05 0 0.47 0 cnt 0
11:06:05 0 0.47 0 cnt 0
11:06:05 0 0.47 0 cnt 0
11:06:05 0 0.47 0 cnt 0
11:06:05 0 0.48 0.01 cnt 0
11:06:05 0 0.48 0 cnt 0
11:06:05 0 0.48 0 cnt 0
11:06:05 0 0.48 0 cnt 0
11:06:05 0 0.48 0 cnt 0
11:06:05 0 0.48 0 cnt 0
$***out 20081017 11:05:51
11:05:51 0 0.36 0 cnt 0
11:05:51 0 0.36 0 cnt 0
11:05:51 0 0.36 0 cnt 0
11:05:51 0 0.36 0 cnt 0
11:05:51 0 0.36 0 cnt 0
11:05:51 0 0.36 0 cnt 0
11:05:51 0 0.36 0 cnt 0
11:05:51 0 0.37 0.01 cnt 0
11:05:51 0 0.37 0 cnt 0
11:05:51 0 0.37 0 cnt 0
11:05:51 0 0.37 0 cnt 0
11:05:51 0 0.37 0 cnt 0
11:05:51 0 0.37 0 cnt 0
11:05:51 0 0.37 0 cnt 0
11:05:51 0 0.37 0 cnt 0
$***out 20081017 10:09:48
10:09:49 0 55.19 0.11 cnt 96
10:09:49 0 55.29 0.10 cnt 96
10:09:49 0 55.40 0.11 cnt 96
10:09:49 0 55.51 0.11 cnt 96
10:09:49 0 55.61 0.10 cnt 96
10:09:49 0 55.72 0.11 cnt 96
10:09:50 0 55.83 0.11 cnt 96
10:09:50 0 55.93 0.10 cnt 96
10:09:50 0 56.04 0.11 cnt 96
10:09:50 0 56.14 0.10 cnt 96
10:09:50 0 56.25 0.11 cnt 96
10:09:50 0 56.35 0.10 cnt 96
10:09:50 0 56.46 0.11 cnt 96
10:09:51 0 56.56 0.10 cnt 96
10:09:51 0 56.67 0.11 cnt 96
10:09:51 0 56.77 0.10 cnt 96
10:09:51 0 56.88 0.11 cnt 96
10:09:51 0 57.00 0.12 cnt 96
10:09:52 0 57.11 0.11 cnt 96
10:09:52 0 57.22 0.11 cnt 96
$***out 20081017 10:09:15
10:09:16 0 54.92 0.11 cnt 96
$***out 20081017 10:07:31
10:07:31 0 9.25 0.11 cnt 96
10:07:32 0 9.51 0.26 cnt 96
10:07:32 0 9.94 0.43 cnt 96
10:07:33 0 10.52 0.58 cnt 96
10:07:34 0 11.27 0.75 cnt 96
10:07:35 0 12.17 0.90 cnt 96
10:07:37 0 13.25 1.08 cnt 96
10:07:39 0 14.57 1.32 cnt 96
10:07:40 0 16.05 1.48 cnt 96
10:07:42 0 17.67 1.62 cnt 96
10:07:45 0 19.52 1.85 cnt 96
10:07:47 0 21.64 2.12 cnt 96
10:07:50 0 24.06 2.42 cnt 96
10:07:54 0 26.79 2.73 cnt 96
10:07:58 0 30.01 3.22 cnt 96
10:08:02 0 33.22 3.21 cnt 96
10:08:06 0 36.77 3.55 cnt 96
10:08:16 0 42.29 5.52 cnt 96
10:08:25 0 48.09 5.80 cnt 96
10:08:34 0 54.65 6.56 cnt 96
$***out 20081017 10:06:53
10:06:53 0 7.04 0.10 cnt 96
10:06:53 0 7.30 0.26 cnt 96
10:06:54 0 7.71 0.41 cnt 96
10:06:54 0 8.28 0.57 cnt 96
10:06:55 0 9.01 0.73 cnt 96
$***out 20081017 10:06:11
$***out 20081017 10:05:43
$***out 20081017 10:05:29
$***out 20081017 10:02:18
10:02:19 0 4.11 96
10:02:19 0 4.37 96
10:02:19 0 4.78 96
10:02:20 0 5.35 96
10:02:21 0 6.09 96
$***out 20081017 10:01:16
10:01:16 0 3.86 96
$***out 20081017 10:00:04
10:00:05 0 3.62 96
$***out 20081017 09:57:29
$***out 20081017 09:50:02
09:50:02 0 3.00
09:50:02 0 3.00 96
$***out 20081017 09:49:00
09:49:01 0 2.76
09:49:01 0 2.76 96
$***out 20081017 09:39:59
M.LINE
$***out 20081017 09:39:44
96
$***out 20081017 09:39:31
$***out 20081017 09:28:08
96
$***out 20081017 09:27:25
M.LINE
$***out 20081017 09:26:29
$***out 20081017 09:26:24
$***out 20081017 09:25:42
$***out 20081017 09:25:04
$***out
}¢--- A540769.WK.SQL(KE49L5) cre=2008-10-31 mod=2008-10-31-12.36.52 F540769 ----
select varbinary('asdf') from sysibm.sysdummy1;
x
SELECT
LOCATE('0142', '0052
0053
0054
0055 ,
0056 ,
0057 ,
0058 ,
0142 ,
0152 ,
0153 ,
0167 ,
0168 ,
0169 ,
0179 '),
position( 'xy' || ibmreqd, '0052
0053
0054
0055 ,
0056 ,
0057 ,
0058 ,
0142 ,
0152 ,
0153 ,
0167 ,
0168 ,
0169 ,
0179 xy' || ibmReqD
, octets)
from sysibm.sysDummy1
with ur
;
x
SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
FROM OA1P.VKS833A1V V833
, OA1P.VKS835A1V V835
WHERE V833.CONTRACT_COLL = '07475074735929-L'
AND V833.PARTNER_TYPE = 3
AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
AND V833.VALID_TO_DATE
AND V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V833.PARTNER_KEY = V835.PARTNER_KEY
AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
AND V835.VALID_TO_DATE
AND LOCATE(V835.PRODUCT_ID, '0052
0053
0054
0055 ,
0056 ,
0057 ,
0058 ,
0142 ,
0152 ,
0153 ,
0167 ,
0168 ,
0169 ,
0179 ') > 0
with ur
;
SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
FROM OA1P.VKS833A1V V833
, OA1P.VKS835A1V V835
WHERE V833.CONTRACT_COLL = '07475074735929-L'
AND V833.PARTNER_TYPE = 3
AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
AND V833.VALID_TO_DATE
AND V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V833.PARTNER_KEY = V835.PARTNER_KEY
AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
AND V835.VALID_TO_DATE
AND LOCATE(V835.PRODUCT_ID, '0052
0053
0054
0055 ,
0056 ,
0057 ,
0058 ,
0142 ,
0152 ,
0153 ,
0167 ,
0168 ,
0169 ,
0179 ') > 0
with ur
;
SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
FROM OA1P.VKS833A1V V833
, OA1P.VKS835A1V V835
WHERE V833.CONTRACT_COLL = '07475074735929-L'
AND V833.PARTNER_TYPE = 3
AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
AND V833.VALID_TO_DATE
AND V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V833.PARTNER_KEY = V835.PARTNER_KEY
AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
AND V835.VALID_TO_DATE
AND LOCATE(V835.PRODUCT_ID, '0052
0053
0054
0055 ,
0056 ,
0057 ,
0058 ,
0142 ,
0152 ,
0153 ,
0167 ,
0168 ,
0169 ,
0179 ') > 0
with ur
;
SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
FROM OA1P.VKS833A1V V833
, OA1P.VKS835A1V V835
WHERE V833.CONTRACT_COLL = '07475074735929-L'
AND V833.PARTNER_TYPE = 3
AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
AND V833.VALID_TO_DATE
AND V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V833.PARTNER_KEY = V835.PARTNER_KEY
AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
AND V835.VALID_TO_DATE
AND LOCATE(V835.PRODUCT_ID, '0052
0053
0054
0055 ,
0056 ,
0057 ,
0058 ,
0142 ,
0152 ,
0153 ,
0167 ,
0168 ,
0169 ,
0179 ') > 0
with ur
;
SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
FROM OA1P.VKS833A1V V833
, OA1P.VKS835A1V V835
WHERE V833.CONTRACT_COLL = '07475074735929-L'
AND V833.PARTNER_TYPE = 3
AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
AND V833.VALID_TO_DATE
AND V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V833.PARTNER_KEY = V835.PARTNER_KEY
AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
AND V835.VALID_TO_DATE
AND LOCATE(V835.PRODUCT_ID, '0052
0053
0054
0055 ,
0056 ,
0057 ,
0058 ,
0142 ,
0152 ,
0153 ,
0167 ,
0168 ,
0169 ,
0179 ') > 0
with ur
;
SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
FROM OA1P.VKS833A1V V833
, OA1P.VKS835A1V V835
WHERE V833.CONTRACT_COLL = '07475074735929-L'
AND V833.PARTNER_TYPE = 3
AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
AND V833.VALID_TO_DATE
AND V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V833.PARTNER_KEY = V835.PARTNER_KEY
AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
AND V835.VALID_TO_DATE
AND LOCATE(V835.PRODUCT_ID, '0052
0053
0054
0055 ,
0056 ,
0057 ,
0058 ,
0142 ,
0152 ,
0153 ,
0167 ,
0168 ,
0169 ,
0179 ') > 0
with ur
;
SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
FROM OA1P.VKS833A1V V833
, OA1P.VKS835A1V V835
WHERE V833.CONTRACT_COLL = '07475074735929-L'
AND V833.PARTNER_TYPE = 3
AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
AND V833.VALID_TO_DATE
AND V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V833.PARTNER_KEY = V835.PARTNER_KEY
AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
AND V835.VALID_TO_DATE
AND LOCATE(V835.PRODUCT_ID, '0052
0053
0054
0055 ,
0056 ,
0057 ,
0058 ,
0142 ,
0152 ,
0153 ,
0167 ,
0168 ,
0169 ,
0179 ') > 0
with ur
;
SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
FROM OA1P.VKS833A1V V833
, OA1P.VKS835A1V V835
WHERE V833.CONTRACT_COLL = '07475074735929-L'
AND V833.PARTNER_TYPE = 3
AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
AND V833.VALID_TO_DATE
AND V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V833.PARTNER_KEY = V835.PARTNER_KEY
AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
AND V835.VALID_TO_DATE
AND LOCATE(V835.PRODUCT_ID, '0052
0053
0054
0055 ,
0056 ,
0057 ,
0058 ,
0142 ,
0152 ,
0153 ,
0167 ,
0168 ,
0169 ,
0179 ') > 0
with ur
;
SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
FROM OA1P.VKS833A1V V833
, OA1P.VKS835A1V V835
WHERE V833.CONTRACT_COLL = '07475074735929-L'
AND V833.PARTNER_TYPE = 3
AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
AND V833.VALID_TO_DATE
AND V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V833.PARTNER_KEY = V835.PARTNER_KEY
AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
AND V835.VALID_TO_DATE
AND LOCATE(V835.PRODUCT_ID, '0052
0053
0054
0055 ,
0056 ,
0057 ,
0058 ,
0142 ,
0152 ,
0153 ,
0167 ,
0168 ,
0169 ,
0179 ') > 0
with ur
;
SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
FROM OA1P.VKS833A1V V833
, OA1P.VKS835A1V V835
WHERE V833.CONTRACT_COLL = '07475074735929-L'
AND V833.PARTNER_TYPE = 3
AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
AND V833.VALID_TO_DATE
AND V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V833.PARTNER_KEY = V835.PARTNER_KEY
AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
AND V835.VALID_TO_DATE
AND LOCATE(V835.PRODUCT_ID, '0052
0053
0054
0055 ,
0056 ,
0057 ,
0058 ,
0142 ,
0152 ,
0153 ,
0167 ,
0168 ,
0169 ,
0179 ') > 0
with ur
;
SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
FROM OA1P.VKS833A1V V833
, OA1P.VKS835A1V V835
WHERE V833.CONTRACT_COLL = '07475074735929-L'
AND V833.PARTNER_TYPE = 3
AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
AND V833.VALID_TO_DATE
AND V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V833.PARTNER_KEY = V835.PARTNER_KEY
AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
AND V835.VALID_TO_DATE
AND LOCATE(V835.PRODUCT_ID, '0052
0053
0054
0055 ,
0056 ,
0057 ,
0058 ,
0142 ,
0152 ,
0153 ,
0167 ,
0168 ,
0169 ,
0179 ') > 0
with ur
;
SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
FROM OA1P.VKS833A1V V833
, OA1P.VKS835A1V V835
WHERE V833.CONTRACT_COLL = '07475074735929-L'
AND V833.PARTNER_TYPE = 3
AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
AND V833.VALID_TO_DATE
AND V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V833.PARTNER_KEY = V835.PARTNER_KEY
AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
AND V835.VALID_TO_DATE
AND LOCATE(V835.PRODUCT_ID, '0052
0053
0054
0055 ,
0056 ,
0057 ,
0058 ,
0142 ,
0152 ,
0153 ,
0167 ,
0168 ,
0169 ,
0179 ') > 0
with ur
;
SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
FROM OA1P.VKS833A1V V833
, OA1P.VKS835A1V V835
WHERE V833.CONTRACT_COLL = '07475074735929-L'
AND V833.PARTNER_TYPE = 3
AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
AND V833.VALID_TO_DATE
AND V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V833.PARTNER_KEY = V835.PARTNER_KEY
AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
AND V835.VALID_TO_DATE
AND LOCATE(V835.PRODUCT_ID, '0052
0053
0054
0055 ,
0056 ,
0057 ,
0058 ,
0142 ,
0152 ,
0153 ,
0167 ,
0168 ,
0169 ,
0179 ') > 0
with ur
;
SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
FROM OA1P.VKS833A1V V833
, OA1P.VKS835A1V V835
WHERE V833.CONTRACT_COLL = '07475074735929-L'
AND V833.PARTNER_TYPE = 3
AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
AND V833.VALID_TO_DATE
AND V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V833.PARTNER_KEY = V835.PARTNER_KEY
AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
AND V835.VALID_TO_DATE
AND LOCATE(V835.PRODUCT_ID, '0052
0053
0054
0055 ,
0056 ,
0057 ,
0058 ,
0142 ,
0152 ,
0153 ,
0167 ,
0168 ,
0169 ,
0179 ') > 0
with ur
;
SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
FROM OA1P.VKS833A1V V833
, OA1P.VKS835A1V V835
WHERE V833.CONTRACT_COLL = '07475074735929-L'
AND V833.PARTNER_TYPE = 3
AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
AND V833.VALID_TO_DATE
AND V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V833.PARTNER_KEY = V835.PARTNER_KEY
AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
AND V835.VALID_TO_DATE
AND LOCATE(V835.PRODUCT_ID, '0052
0053
0054
0055 ,
0056 ,
0057 ,
0058 ,
0142 ,
0152 ,
0153 ,
0167 ,
0168 ,
0169 ,
0179 ') > 0
with ur
;
SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
FROM OA1P.VKS833A1V V833
, OA1P.VKS835A1V V835
WHERE V833.CONTRACT_COLL = '07475074735929-L'
AND V833.PARTNER_TYPE = 3
AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
AND V833.VALID_TO_DATE
AND V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V833.PARTNER_KEY = V835.PARTNER_KEY
AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
AND V835.VALID_TO_DATE
AND LOCATE(V835.PRODUCT_ID, '0052
0053
0054
0055 ,
0056 ,
0057 ,
0058 ,
0142 ,
0152 ,
0153 ,
0167 ,
0168 ,
0169 ,
0179 ') > 0
with ur
;
SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
FROM OA1P.VKS833A1V V833
, OA1P.VKS835A1V V835
WHERE V833.CONTRACT_COLL = '07475074735929-L'
AND V833.PARTNER_TYPE = 3
AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
AND V833.VALID_TO_DATE
AND V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V833.PARTNER_KEY = V835.PARTNER_KEY
AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
AND V835.VALID_TO_DATE
AND LOCATE(V835.PRODUCT_ID, '0052
0053
0054
0055 ,
0056 ,
0057 ,
0058 ,
0142 ,
0152 ,
0153 ,
0167 ,
0168 ,
0169 ,
0179 ') > 0
with ur
;
SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
FROM OA1P.VKS833A1V V833
, OA1P.VKS835A1V V835
WHERE V833.CONTRACT_COLL = '07475074735929-L'
AND V833.PARTNER_TYPE = 3
AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
AND V833.VALID_TO_DATE
AND V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V833.PARTNER_KEY = V835.PARTNER_KEY
AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
AND V835.VALID_TO_DATE
AND LOCATE(V835.PRODUCT_ID, '0052
0053
0054
0055 ,
0056 ,
0057 ,
0058 ,
0142 ,
0152 ,
0153 ,
0167 ,
0168 ,
0169 ,
0179 ') > 0
with ur
;
SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
FROM OA1P.VKS833A1V V833
, OA1P.VKS835A1V V835
WHERE V833.CONTRACT_COLL = '07475074735929-L'
AND V833.PARTNER_TYPE = 3
AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
AND V833.VALID_TO_DATE
AND V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V833.PARTNER_KEY = V835.PARTNER_KEY
AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
AND V835.VALID_TO_DATE
AND LOCATE(V835.PRODUCT_ID, '0052
0053
0054
0055 ,
0056 ,
0057 ,
0058 ,
0142 ,
0152 ,
0153 ,
0167 ,
0168 ,
0169 ,
0179 ') > 0
with ur
;
SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
FROM OA1P.VKS833A1V V833
, OA1P.VKS835A1V V835
WHERE V833.CONTRACT_COLL = '07475074735929-L'
AND V833.PARTNER_TYPE = 3
AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
AND V833.VALID_TO_DATE
AND V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V833.PARTNER_KEY = V835.PARTNER_KEY
AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
AND V835.VALID_TO_DATE
AND LOCATE(V835.PRODUCT_ID, '0052
0053
0054
0055 ,
0056 ,
0057 ,
0058 ,
0142 ,
0152 ,
0153 ,
0167 ,
0168 ,
0169 ,
0179 ') > 0
with ur
;
SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
FROM OA1P.VKS833A1V V833
, OA1P.VKS835A1V V835
WHERE V833.CONTRACT_COLL = '07475074735929-L'
AND V833.PARTNER_TYPE = 3
AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
AND V833.VALID_TO_DATE
AND V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V833.PARTNER_KEY = V835.PARTNER_KEY
AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
AND V835.VALID_TO_DATE
AND LOCATE(V835.PRODUCT_ID, '0052
0053
0054
0055 ,
0056 ,
0057 ,
0058 ,
0142 ,
0152 ,
0153 ,
0167 ,
0168 ,
0169 ,
0179 ') > 0
with ur
;
SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
FROM OA1P.VKS833A1V V833
, OA1P.VKS835A1V V835
WHERE V833.CONTRACT_COLL = '07475074735929-L'
AND V833.PARTNER_TYPE = 3
AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
AND V833.VALID_TO_DATE
AND V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V833.PARTNER_KEY = V835.PARTNER_KEY
AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
AND V835.VALID_TO_DATE
AND LOCATE(V835.PRODUCT_ID, '0052
0053
0054
0055 ,
0056 ,
0057 ,
0058 ,
0142 ,
0152 ,
0153 ,
0167 ,
0168 ,
0169 ,
0179 ') > 0
with ur
;
SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
FROM OA1P.VKS833A1V V833
, OA1P.VKS835A1V V835
WHERE V833.CONTRACT_COLL = '07475074735929-L'
AND V833.PARTNER_TYPE = 3
AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
AND V833.VALID_TO_DATE
AND V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V833.PARTNER_KEY = V835.PARTNER_KEY
AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
AND V835.VALID_TO_DATE
AND LOCATE(V835.PRODUCT_ID, '0052
0053
0054
0055 ,
0056 ,
0057 ,
0058 ,
0142 ,
0152 ,
0153 ,
0167 ,
0168 ,
0169 ,
0179 ') > 0
with ur
;
SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
FROM OA1P.VKS833A1V V833
, OA1P.VKS835A1V V835
WHERE V833.CONTRACT_COLL = '07475074735929-L'
AND V833.PARTNER_TYPE = 3
AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
AND V833.VALID_TO_DATE
AND V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V833.PARTNER_KEY = V835.PARTNER_KEY
AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
AND V835.VALID_TO_DATE
AND LOCATE(V835.PRODUCT_ID, '0052
0053
0054
0055 ,
0056 ,
0057 ,
0058 ,
0142 ,
0152 ,
0153 ,
0167 ,
0168 ,
0169 ,
0179 ') > 0
with ur
;
}¢--- A540769.WK.SQL(KE49L7) cre=2008-10-31 mod=2008-11-06-08.46.00 F540769 ----
call sqlConnect dbtf
$;
$<<eof
SELECT COUNT(distinct V833.PARTNER_KEY ), current timestamp
FROM OA1T.VKS833A1V V833
, OA1T.VKS835A1V V835
WHERE V833.CONTRACT_COLL like '07%'
AND V833.PARTNER_TYPE = 3
AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
AND V833.VALID_TO_DATE
AND V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V833.PARTNER_KEY = V835.PARTNER_KEY
AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
AND V835.VALID_TO_DATE
AND locate(' ' || strip(V835.PRODUCT_ID) ,
' 0052 0053 0054 0055 0056 0057 0058'
|| ' 0142 0152 0153 0167 0168 0169 0179'
|| space(1870) ||'x'
) > 0
with ur
eof $=sql£envCatStr(' ', 'sb')
$;
$=tbs=select count(distinct name) cnt from sysibm.systables
call sqlPrepare 1, $sql
la = timing()
do x=1 to 5
call sqlOpAllCl 1, st, ':cnt, :ti'
ti = timing()
$£ ti (word(ti, 3) - word(la, 3)) 'cnt' cnt 'ti' ti
la = ti
if 0 then
call sqlCommit
if 0 then
call sqlPrepare 1, $sql
if 0 then
if x // 2 = 0 then
call sqlPrepare 1, $sql
else
call sqlPrepare 1, $tbs
end
$*(
eof call sqlLn 1
$¨ $@{ $@for v $@{ $£ timing() strip($v)
$}
$}
$;
$*)
call sqlDisConnect
$***out 20081106 08:45:55
08:45:55 0 3.11 0.11 cnt 510 ti 08:45:55 0 3.11
08:45:55 0 3.22 0.11 cnt 510 ti 08:45:55 0 3.22
08:45:56 0 3.34 0.12 cnt 510 ti 08:45:56 0 3.34
08:45:56 0 3.45 0.11 cnt 510 ti 08:45:56 0 3.45
08:45:56 0 3.56 0.11 cnt 510 ti 08:45:56 0 3.56
$***out 20081106 08:45:28
08:45:28 0 2.54 0.09 cnt 510 ti 08:45:28 0 2.54
08:45:28 0 2.63 0.09 cnt 510 ti 08:45:28 0 2.63
08:45:28 0 2.72 0.09 cnt 510 ti 08:45:28 0 2.72
08:45:28 0 2.81 0.09 cnt 510 ti 08:45:28 0 2.81
08:45:29 0 2.90 0.09 cnt 510 ti 08:45:29 0 2.90
$***out 20081106 08:45:08
08:45:11 0 2.00 0.15 cnt 510 ti 08:45:11 0 2.00
08:45:12 0 2.09 0.09 cnt 510 ti 08:45:12 0 2.09
08:45:12 0 2.18 0.09 cnt 510 ti 08:45:12 0 2.18
08:45:12 0 2.26 0.08 cnt 510 ti 08:45:12 0 2.26
08:45:12 0 2.35 0.09 cnt 510 ti 08:45:12 0 2.35
$***out 20081106 08:42:51
08:42:51 0 1.63 0 cnt 0 ti 08:42:51 0 1.63
08:42:51 0 1.64 0.01 cnt 0 ti 08:42:51 0 1.64
08:42:51 0 1.64 0 cnt 0 ti 08:42:51 0 1.64
08:42:51 0 1.64 0 cnt 0 ti 08:42:51 0 1.64
08:42:51 0 1.64 0 cnt 0 ti 08:42:51 0 1.64
$***out 20081031 13:47:18
13:47:18 0 317.50 0.02 cnt 93 ti 13:47:18 0 317.50
13:47:18 0 317.53 0.03 cnt 93 ti 13:47:18 0 317.53
13:47:18 0 317.55 0.02 cnt 93 ti 13:47:18 0 317.55
13:47:18 0 317.57 0.02 cnt 93 ti 13:47:18 0 317.57
13:47:18 0 317.59 0.02 cnt 93 ti 13:47:18 0 317.59
$***out 20081031 13:47:02
13:47:02 0 315.37 0.11 cnt 93 ti 13:47:02 0 315.37
13:47:03 0 315.63 0.26 cnt 93 ti 13:47:03 0 315.63
13:47:03 0 316.06 0.43 cnt 93 ti 13:47:03 0 316.06
13:47:04 0 316.64 0.58 cnt 93 ti 13:47:04 0 316.64
13:47:05 0 317.40 0.76 cnt 93 ti 13:47:05 0 317.40
$***out 20081031 13:46:47
13:46:48 0 313.12 0.11 cnt 93 ti 13:46:48 0 313.12
13:46:48 0 313.39 0.27 cnt 93 ti 13:46:48 0 313.39
13:46:48 0 313.81 0.42 cnt 93 ti 13:46:48 0 313.81
13:46:49 0 314.40 0.59 cnt 93 ti 13:46:49 0 314.40
13:46:50 0 315.17 0.77 cnt 93 ti 13:46:50 0 315.17
$***out 20081031 13:46:35
13:46:35 0 310.90 0.11 cnt 93 ti 13:46:35 0 310.90
13:46:35 0 311.16 0.26 cnt 93 ti 13:46:35 0 311.16
13:46:36 0 311.57 0.41 cnt 93 ti 13:46:36 0 311.57
13:46:36 0 312.16 0.59 cnt 93 ti 13:46:36 0 312.16
13:46:37 0 312.91 0.75 cnt 93 ti 13:46:37 0 312.91
$***out 20081031 13:46:17
13:46:17 0 308.65 0.11 cnt 93 ti 13:46:17 0 308.65
13:46:17 0 308.92 0.27 cnt 93 ti 13:46:17 0 308.92
13:46:18 0 309.34 0.42 cnt 93 ti 13:46:18 0 309.34
13:46:19 0 309.94 0.60 cnt 93 ti 13:46:19 0 309.94
13:46:20 0 310.70 0.76 cnt 93 ti 13:46:20 0 310.70
$***out 20081031 13:46:05
13:46:06 0 308.34 0.02 cnt 93 ti 13:46:06 0 308.34
13:46:06 0 308.37 0.03 cnt 93 ti 13:46:06 0 308.37
13:46:06 0 308.39 0.02 cnt 93 ti 13:46:06 0 308.39
13:46:06 0 308.42 0.03 cnt 93 ti 13:46:06 0 308.42
13:46:06 0 308.44 0.02 cnt 93 ti 13:46:06 0 308.44
$***out 20081031 13:45:57
13:45:57 0 308.13 0.02 cnt 93 ti 13:45:57 0 308.13
13:45:57 0 308.16 0.03 cnt 93 ti 13:45:57 0 308.16
13:45:57 0 308.18 0.02 cnt 93 ti 13:45:57 0 308.18
13:45:57 0 308.21 0.03 cnt 93 ti 13:45:57 0 308.21
13:45:57 0 308.23 0.02 cnt 93 ti 13:45:57 0 308.23
$***out 20081031 13:45:31
13:45:32 0 306.00 0.11 cnt 93 ti 13:45:32 0 306.00
13:45:32 0 306.27 0.27 cnt 93 ti 13:45:32 0 306.27
13:45:32 0 306.69 0.42 cnt 93 ti 13:45:32 0 306.69
13:45:33 0 307.27 0.58 cnt 93 ti 13:45:33 0 307.27
13:45:34 0 308.02 0.75 cnt 93 ti 13:45:34 0 308.02
$***out 20081031 13:45:05
13:45:05 0 303.69 0.11 cnt 93 ti 13:45:05 0 303.69
13:45:06 0 303.96 0.27 cnt 93 ti 13:45:06 0 303.96
13:45:07 0 304.39 0.43 cnt 93 ti 13:45:07 0 304.39
13:45:08 0 305.02 0.63 cnt 93 ti 13:45:08 0 305.02
13:45:09 0 305.80 0.78 cnt 93 ti 13:45:09 0 305.80
$***out 20081031 13:44:53
13:44:54 0 303.38 0.02 cnt 93 ti 13:44:54 0 303.38
13:44:54 0 303.41 0.03 cnt 93 ti 13:44:54 0 303.41
13:44:54 0 303.43 0.02 cnt 93 ti 13:44:54 0 303.43
13:44:54 0 303.45 0.02 cnt 93 ti 13:44:54 0 303.45
13:44:54 0 303.48 0.03 cnt 93 ti 13:44:54 0 303.48
$***out 20081031 13:44:16
13:44:16 0 303.18 0.02 cnt 93 ti 13:44:16 0 303.18
13:44:16 0 303.20 0.02 cnt 93 ti 13:44:16 0 303.20
13:44:17 0 303.23 0.03 cnt 93 ti 13:44:17 0 303.23
13:44:17 0 303.25 0.02 cnt 93 ti 13:44:17 0 303.25
13:44:17 0 303.27 0.02 cnt 93 ti 13:44:17 0 303.27
$***out 20081031 13:44:04
13:44:04 0 302.97 0.02 cnt 93 ti 13:44:04 0 302.97
13:44:04 0 303.00 0.03 cnt 93 ti 13:44:04 0 303.00
13:44:04 0 303.02 0.02 cnt 93 ti 13:44:04 0 303.02
13:44:04 0 303.04 0.02 cnt 93 ti 13:44:04 0 303.04
13:44:04 0 303.07 0.03 cnt 93 ti 13:44:04 0 303.07
$***out 20081031 13:43:17
13:43:17 0 302.77 0.02 cnt 93 ti 13:43:17 0 302.77
13:43:17 0 302.79 0.02 cnt 93 ti 13:43:17 0 302.79
13:43:17 0 302.82 0.03 cnt 93 ti 13:43:17 0 302.82
13:43:17 0 302.84 0.02 cnt 93 ti 13:43:17 0 302.84
13:43:17 0 302.86 0.02 cnt 93 ti 13:43:17 0 302.86
$***out 20081031 13:41:07
13:41:08 0 300.62 0.12 cnt 93 ti 13:41:08 0 300.62
13:41:08 0 300.88 0.26 cnt 93 ti 13:41:08 0 300.88
13:41:09 0 301.31 0.43 cnt 93 ti 13:41:09 0 301.31
13:41:09 0 301.89 0.58 cnt 93 ti 13:41:09 0 301.89
13:41:10 0 302.65 0.76 cnt 93 ti 13:41:10 0 302.65
$***out 20081031 13:41:01
13:41:01 0 300.31 0.02 cnt 93 ti 13:41:01 0 300.31
13:41:01 0 300.34 0.03 cnt 93 ti 13:41:01 0 300.34
13:41:01 0 300.36 0.02 cnt 93 ti 13:41:01 0 300.36
13:41:01 0 300.39 0.03 cnt 93 ti 13:41:01 0 300.39
13:41:01 0 300.41 0.02 cnt 93 ti 13:41:01 0 300.41
$***out 20081031 13:40:49
13:40:49 0 300.10 0.02 cnt 93 ti 13:40:49 0 300.10
13:40:49 0 300.12 0.02 cnt 93 ti 13:40:49 0 300.12
13:40:49 0 300.15 0.03 cnt 93 ti 13:40:49 0 300.15
13:40:49 0 300.17 0.02 cnt 93 ti 13:40:49 0 300.17
13:40:49 0 300.20 0.03 cnt 93 ti 13:40:49 0 300.20
$***out 20081031 13:40:33
13:40:34 0 297.94 0.11 cnt 93 ti 13:40:34 0 297.94
13:40:34 0 298.21 0.27 cnt 93 ti 13:40:34 0 298.21
13:40:34 0 298.64 0.43 cnt 93 ti 13:40:34 0 298.64
13:40:35 0 299.22 0.58 cnt 93 ti 13:40:35 0 299.22
13:40:36 0 299.98 0.76 cnt 93 ti 13:40:36 0 299.98
$***out 20081031 13:40:19
13:40:19 0 297.64 0.02 cnt 93 ti 13:40:19 0 297.64
13:40:19 0 297.66 0.02 cnt 93 ti 13:40:19 0 297.66
13:40:19 0 297.69 0.03 cnt 93 ti 13:40:19 0 297.69
13:40:19 0 297.71 0.02 cnt 93 ti 13:40:19 0 297.71
13:40:19 0 297.73 0.02 cnt 93 ti 13:40:19 0 297.73
$***out 20081031 13:38:12
13:38:12 0 295.29 0.04 cnt 93 ti 13:38:12 0 295.29
13:38:12 0 295.31 0.02 cnt 93 ti 13:38:12 0 295.31
13:38:12 0 295.33 0.02 cnt 93 ti 13:38:12 0 295.33
13:38:12 0 295.36 0.03 cnt 93 ti 13:38:12 0 295.36
13:38:12 0 295.38 0.02 cnt 93 ti 13:38:12 0 295.38
$***out 20081031 13:37:13
13:37:13 0 295.08 0.02 cnt 0 ti 13:37:13 0 295.08
13:37:13 0 295.10 0.02 cnt 0 ti 13:37:13 0 295.10
13:37:13 0 295.12 0.02 cnt 0 ti 13:37:13 0 295.12
13:37:13 0 295.14 0.02 cnt 0 ti 13:37:13 0 295.14
13:37:13 0 295.17 0.03 cnt 0 ti 13:37:13 0 295.17
$***out 20081031 13:36:04
13:36:04 0 294.81 0.04 cnt 0 ti 13:36:04 0 294.81
13:36:04 0 294.82 0.01 cnt 0 ti 13:36:04 0 294.82
13:36:04 0 294.84 0.02 cnt 0 ti 13:36:04 0 294.84
13:36:04 0 294.86 0.02 cnt 0 ti 13:36:04 0 294.86
13:36:04 0 294.88 0.02 cnt 0 ti 13:36:04 0 294.88
$***out 20081031 12:44:34
12:44:35 0 246.49 0.12 cnt 93 ti 12:44:35 0 246.49
12:44:35 0 246.74 0.25 cnt 93 ti 12:44:35 0 246.74
12:44:36 0 247.13 0.39 cnt 93 ti 12:44:36 0 247.13
12:44:36 0 247.67 0.54 cnt 93 ti 12:44:36 0 247.67
12:44:37 0 248.36 0.69 cnt 93 ti 12:44:37 0 248.36
$***out 20081031 11:40:23
11:40:23 0 188.89 0.14 cnt 0 ti 11:40:23 0 188.89
11:40:24 0 189.18 0.29 cnt 0 ti 11:40:24 0 189.18
11:40:24 0 189.61 0.43 cnt 0 ti 11:40:24 0 189.61
11:40:25 0 190.19 0.58 cnt 0 ti 11:40:25 0 190.19
11:40:26 0 190.97 0.78 cnt 0 ti 11:40:26 0 190.97
11:40:28 0 191.90 0.93 cnt 0 ti 11:40:28 0 191.90
11:40:29 0 193.04 1.14 cnt 0 ti 11:40:29 0 193.04
11:40:32 0 194.42 1.38 cnt 0 ti 11:40:32 0 194.42
11:40:34 0 196.02 1.60 cnt 0 ti 11:40:34 0 196.02
11:40:37 0 198.00 1.98 cnt 0 ti 11:40:37 0 198.00
$***out 20081031 11:39:43
$***out 20081031 11:39:25
$***out 20081031 11:39:11
$***out 20081031 11:38:02
11:38:02 0 188.08 0.04 cnt 0 ti 11:38:02 0 188.08
11:38:02 0 188.10 0.02 cnt 0 ti 11:38:02 0 188.10
11:38:02 0 188.11 0.01 cnt 0 ti 11:38:02 0 188.11
11:38:02 0 188.13 0.02 cnt 0 ti 11:38:02 0 188.13
11:38:02 0 188.15 0.02 cnt 0 ti 11:38:02 0 188.15
11:38:02 0 188.17 0.02 cnt 0 ti 11:38:02 0 188.17
11:38:02 0 188.19 0.02 cnt 0 ti 11:38:02 0 188.19
11:38:02 0 188.21 0.02 cnt 0 ti 11:38:02 0 188.21
11:38:02 0 188.23 0.02 cnt 0 ti 11:38:02 0 188.23
11:38:02 0 188.25 0.02 cnt 0 ti 11:38:02 0 188.25
$***out 20081031 11:34:46
11:34:46 0 178.86 0.10 cnt 95 ti 11:34:46 0 178.86
11:34:46 0 179.12 0.26 cnt 95 ti 11:34:46 0 179.12
11:34:47 0 179.55 0.43 cnt 95 ti 11:34:47 0 179.55
11:34:49 0 180.18 0.63 cnt 95 ti 11:34:49 0 180.18
11:34:51 0 181.00 0.82 cnt 95 ti 11:34:51 0 181.00
11:34:53 0 181.97 0.97 cnt 95 ti 11:34:53 0 181.97
11:34:55 0 183.12 1.15 cnt 95 ti 11:34:55 0 183.12
11:34:58 0 184.47 1.35 cnt 95 ti 11:34:58 0 184.47
11:35:01 0 186.14 1.67 cnt 95 ti 11:35:01 0 186.14
11:35:04 0 187.92 1.78 cnt 95 ti 11:35:04 0 187.92
$***out 20081031 11:34:02
11:34:03 0 169.56 0.13 cnt 95 ti 11:34:03 0 169.56
11:34:04 0 169.83 0.27 cnt 95 ti 11:34:04 0 169.83
11:34:05 0 170.26 0.43 cnt 95 ti 11:34:05 0 170.26
11:34:06 0 170.85 0.59 cnt 95 ti 11:34:06 0 170.85
11:34:08 0 171.64 0.79 cnt 95 ti 11:34:08 0 171.64
11:34:10 0 172.62 0.98 cnt 95 ti 11:34:10 0 172.62
11:34:13 0 173.89 1.27 cnt 95 ti 11:34:13 0 173.89
11:34:16 0 175.30 1.41 cnt 95 ti 11:34:16 0 175.30
11:34:18 0 176.85 1.55 cnt 95 ti 11:34:18 0 176.85
11:34:21 0 178.58 1.73 cnt 95 ti 11:34:21 0 178.58
$***out 20081017 11:46:32
11:46:34 0 190.21 0.14 cnt 96 ti 11:46:34 0 190.21
11:46:35 0 190.48 0.27 cnt 96 ti 11:46:35 0 190.48
11:46:35 0 190.90 0.42 cnt 96 ti 11:46:35 0 190.90
11:46:36 0 191.52 0.62 cnt 96 ti 11:46:36 0 191.52
11:46:38 0 192.29 0.77 cnt 96 ti 11:46:38 0 192.29
11:46:39 0 193.23 0.94 cnt 96 ti 11:46:39 0 193.23
11:46:42 0 194.48 1.25 cnt 96 ti 11:46:42 0 194.48
11:46:43 0 195.77 1.29 cnt 96 ti 11:46:43 0 195.77
11:46:46 0 197.40 1.63 cnt 96 ti 11:46:46 0 197.40
11:46:49 0 199.12 1.72 cnt 96 ti 11:46:49 0 199.12
$***out 20081017 11:19:01
11:19:02 0 147.86 0.11 cnt 96
11:19:02 0 148.12 0.26 cnt 96
11:19:03 0 148.54 0.42 cnt 96
11:19:03 0 149.12 0.58 cnt 96
11:19:04 0 149.86 0.74 cnt 96
11:19:05 0 150.74 0.88 cnt 96
11:19:06 0 151.78 1.04 cnt 96
11:19:08 0 153.03 1.25 cnt 96
11:19:10 0 154.48 1.45 cnt 96
11:19:12 0 156.07 1.59 cnt 96
$***out 20081017 11:17:40
11:17:40 0 139.35 0.12 cnt 2304 sum 2304
11:17:40 0 139.62 0.27 cnt 2304 sum 2304
11:17:41 0 140.05 0.43 cnt 2304 sum 2304
11:17:42 0 140.62 0.57 cnt 2304 sum 2304
11:17:43 0 141.36 0.74 cnt 2304 sum 2304
11:17:44 0 142.27 0.91 cnt 2304 sum 2304
11:17:45 0 143.36 1.09 cnt 2304 sum 2304
11:17:47 0 144.61 1.25 cnt 2304 sum 2304
11:17:49 0 146.03 1.42 cnt 2304 sum 2304
11:17:51 0 147.64 1.61 cnt 2304 sum 2304
$***out 20081017 11:13:42
11:13:43 0 130.56 0.11 cnt 96 sum 2304
11:13:43 0 130.82 0.26 cnt 96 sum 2304
11:13:43 0 131.23 0.41 cnt 96 sum 2304
11:13:44 0 131.79 0.56 cnt 96 sum 2304
11:13:45 0 132.52 0.73 cnt 96 sum 2304
11:13:46 0 133.40 0.88 cnt 96 sum 2304
11:13:48 0 134.45 1.05 cnt 96 sum 2304
11:13:49 0 135.67 1.22 cnt 96 sum 2304
11:13:52 0 137.21 1.54 cnt 96 sum 2304
11:13:55 0 139.12 1.91 cnt 96 sum 2304
$***out 20081017 11:13:23
$***out 20081017 10:59:39
10:59:39 0 121.01 0.11 cnt 96
10:59:39 0 121.05 0.04 cnt 79399
10:59:40 0 121.32 0.27 cnt 96
10:59:40 0 121.37 0.05 cnt 79399
10:59:40 0 121.78 0.41 cnt 96
10:59:40 0 121.83 0.05 cnt 79399
10:59:41 0 122.41 0.58 cnt 96
10:59:41 0 122.45 0.04 cnt 79399
10:59:42 0 123.20 0.75 cnt 96
10:59:42 0 123.26 0.06 cnt 79399
10:59:43 0 124.15 0.89 cnt 96
10:59:44 0 124.20 0.05 cnt 79399
10:59:45 0 125.28 1.08 cnt 96
10:59:45 0 125.32 0.04 cnt 79399
10:59:47 0 126.59 1.27 cnt 96
10:59:47 0 126.63 0.04 cnt 79399
10:59:49 0 128.07 1.44 cnt 96
10:59:49 0 128.12 0.05 cnt 79399
10:59:52 0 129.93 1.81 cnt 96
10:59:52 0 129.98 0.05 cnt 79399
$***out 20081017 10:59:16
$***out 20081017 10:56:15
10:56:15 0 111.59 0.11 cnt 96
10:56:16 0 111.86 0.27 cnt 96
10:56:16 0 112.28 0.42 cnt 96
10:56:17 0 112.86 0.58 cnt 96
10:56:18 0 113.60 0.74 cnt 96
10:56:19 0 114.50 0.90 cnt 96
10:56:21 0 115.56 1.06 cnt 96
10:56:23 0 116.85 1.29 cnt 96
10:56:25 0 118.30 1.45 cnt 96
10:56:30 0 120.59 2.29 cnt 96
$***out 20081017 10:55:54
$***out 20081017 10:54:37
10:54:38 0 102.48 0.10 cnt 96
10:54:38 0 102.76 0.28 cnt 97
10:54:39 0 103.19 0.43 cnt 98
10:54:40 0 103.79 0.60 cnt 99
10:54:41 0 104.58 0.79 cnt 100
10:54:43 0 105.50 0.92 cnt 101
10:54:44 0 106.63 1.13 cnt 102
10:54:46 0 107.87 1.24 cnt 103
10:54:48 0 109.32 1.45 cnt 104
10:54:51 0 111.14 1.82 cnt 105
$***out 20081017 10:53:57
10:53:57 0 93.92 0.11 cnt 96
10:53:57 0 94.19 0.27 cnt 96
10:53:58 0 94.60 0.41 cnt 96
10:53:59 0 95.17 0.57 cnt 96
10:54:00 0 95.90 0.73 cnt 96
10:54:01 0 96.80 0.90 cnt 96
10:54:02 0 97.84 1.04 cnt 96
10:54:04 0 99.09 1.25 cnt 96
10:54:06 0 100.57 1.48 cnt 96
10:54:08 0 102.22 1.65 cnt 96
$***out 20081017 10:53:19
$***out 20081017 10:50:53
10:50:54 0 84.51 0.13 cnt 86015
10:50:54 0 84.78 0.27 cnt 498626
10:50:55 0 85.20 0.42 cnt 866330
10:50:57 0 85.87 0.67 cnt 503144
10:50:59 0 86.72 0.85 cnt 347676
10:51:01 0 87.72 1.00 cnt 352583
10:51:03 0 88.85 1.13 cnt 508860
10:51:04 0 90.08 1.23 cnt 240231
10:51:06 0 91.47 1.39 cnt 728660
10:51:10 0 93.48 2.01 cnt 406200
$***out 20081017 10:50:01
$***out 20081017 10:46:46
10:46:48 0 81.10 0.14 cnt 96
10:46:48 0 81.36 0.26 cnt 96
10:46:48 0 81.38 0.02 cnt 85957
10:46:48 0 81.79 0.41 cnt 96
10:46:48 0 81.80 0.01 cnt 85957
10:46:49 0 82.39 0.59 cnt 96
10:46:49 0 82.41 0.02 cnt 85957
10:46:50 0 83.13 0.72 cnt 96
10:46:50 0 83.14 0.01 cnt 85957
10:46:51 0 84.05 0.91 cnt 96
$***out 20081017 10:19:47
10:19:48 0 58.03 0.11 cnt 96
10:19:48 0 58.30 0.27 cnt 96
10:19:49 0 58.72 0.42 cnt 96
10:19:49 0 59.27 0.55 cnt 96
10:19:50 0 60.00 0.73 cnt 96
10:19:52 0 60.91 0.91 cnt 96
10:19:53 0 61.99 1.08 cnt 96
10:19:55 0 63.24 1.25 cnt 96
10:19:57 0 64.67 1.43 cnt 96
10:19:59 0 66.40 1.73 cnt 96
10:20:03 0 68.50 2.10 cnt 96
10:20:06 0 70.71 2.21 cnt 96
10:20:12 0 73.59 2.88 cnt 96
10:20:16 0 76.72 3.13 cnt 96
10:20:24 0 80.74 4.02 cnt 96
$***out 20081017 10:19:33
$***out 20081017 10:09:48
10:09:49 0 55.19 0.11 cnt 96
10:09:49 0 55.29 0.10 cnt 96
10:09:49 0 55.40 0.11 cnt 96
10:09:49 0 55.51 0.11 cnt 96
10:09:49 0 55.61 0.10 cnt 96
10:09:49 0 55.72 0.11 cnt 96
10:09:50 0 55.83 0.11 cnt 96
10:09:50 0 55.93 0.10 cnt 96
10:09:50 0 56.04 0.11 cnt 96
10:09:50 0 56.14 0.10 cnt 96
10:09:50 0 56.25 0.11 cnt 96
10:09:50 0 56.35 0.10 cnt 96
10:09:50 0 56.46 0.11 cnt 96
10:09:51 0 56.56 0.10 cnt 96
10:09:51 0 56.67 0.11 cnt 96
10:09:51 0 56.77 0.10 cnt 96
10:09:51 0 56.88 0.11 cnt 96
10:09:51 0 57.00 0.12 cnt 96
10:09:52 0 57.11 0.11 cnt 96
10:09:52 0 57.22 0.11 cnt 96
$***out 20081017 10:09:15
10:09:16 0 54.92 0.11 cnt 96
$***out 20081017 10:07:31
10:07:31 0 9.25 0.11 cnt 96
10:07:32 0 9.51 0.26 cnt 96
10:07:32 0 9.94 0.43 cnt 96
10:07:33 0 10.52 0.58 cnt 96
10:07:34 0 11.27 0.75 cnt 96
10:07:35 0 12.17 0.90 cnt 96
10:07:37 0 13.25 1.08 cnt 96
10:07:39 0 14.57 1.32 cnt 96
10:07:40 0 16.05 1.48 cnt 96
10:07:42 0 17.67 1.62 cnt 96
10:07:45 0 19.52 1.85 cnt 96
10:07:47 0 21.64 2.12 cnt 96
10:07:50 0 24.06 2.42 cnt 96
10:07:54 0 26.79 2.73 cnt 96
10:07:58 0 30.01 3.22 cnt 96
10:08:02 0 33.22 3.21 cnt 96
10:08:06 0 36.77 3.55 cnt 96
10:08:16 0 42.29 5.52 cnt 96
10:08:25 0 48.09 5.80 cnt 96
10:08:34 0 54.65 6.56 cnt 96
$***out 20081017 10:06:53
10:06:53 0 7.04 0.10 cnt 96
10:06:53 0 7.30 0.26 cnt 96
10:06:54 0 7.71 0.41 cnt 96
10:06:54 0 8.28 0.57 cnt 96
10:06:55 0 9.01 0.73 cnt 96
$***out 20081017 10:06:11
$***out 20081017 10:05:43
$***out 20081017 10:05:29
$***out 20081017 10:02:18
10:02:19 0 4.11 96
10:02:19 0 4.37 96
10:02:19 0 4.78 96
10:02:20 0 5.35 96
10:02:21 0 6.09 96
$***out 20081017 10:01:16
10:01:16 0 3.86 96
$***out 20081017 10:00:04
10:00:05 0 3.62 96
$***out 20081017 09:57:29
$***out 20081017 09:50:02
09:50:02 0 3.00
09:50:02 0 3.00 96
$***out 20081017 09:49:00
09:49:01 0 2.76
09:49:01 0 2.76 96
$***out 20081017 09:39:59
M.LINE
$***out 20081017 09:39:44
96
$***out 20081017 09:39:31
$***out 20081017 09:28:08
96
$***out 20081017 09:27:25
M.LINE
$***out 20081017 09:26:29
$***out 20081017 09:26:24
$***out 20081017 09:25:42
$***out 20081017 09:25:04
$***out
}¢--- A540769.WK.SQL(KE49L8) cre=2008-11-06 mod=2008-11-06-09.30.55 F540769 ----
call sqlConnect dbtf
$;
$<<eof
SELECT COUNT(distinct V833.PARTNER_KEY ), current timestamp
FROM OA1T.VKS833A1V V833
, OA1T.VKS835A1V V835
WHERE V833.CONTRACT_COLL like '07%'
AND V833.PARTNER_TYPE = 3
AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
AND V833.VALID_TO_DATE
AND V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V833.PARTNER_KEY = V835.PARTNER_KEY
AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
AND V835.VALID_TO_DATE
AND posstr(
left(V835.PRODUCT_ID || space(33), 35)
|| ' 0142 0152 0153 0167 0168 0169 0179'
|| space(187),
' ' || '0167' ) > 0
with ur
eof $=sql£envCatStr(' ', 'sb')
$;
$=tbs=select count(distinct name) cnt from sysibm.systables
call sqlPrepare 1, $sql
la = timing()
do x=1 to 5
call sqlOpAllCl 1, st, ':cnt, :ti'
ti = timing()
$£ ti (word(ti, 3) - word(la, 3)) 'cnt' cnt 'ti' ti
la = ti
if 0 then
call sqlCommit
if 0 then
call sqlPrepare 1, $sql
if 0 then
if x // 2 = 0 then
call sqlPrepare 1, $sql
else
call sqlPrepare 1, $tbs
end
$*(
eof call sqlLn 1
$¨ $@{ $@for v $@{ $£ timing() strip($v)
$}
$}
$;
$*)
call sqlDisConnect
$***out 20081106 08:47:18
08:47:18 0 4.68 0.10 cnt 658 ti 08:47:18 0 4.68
08:47:19 0 4.77 0.09 cnt 658 ti 08:47:19 0 4.77
08:47:19 0 4.87 0.10 cnt 658 ti 08:47:19 0 4.87
08:47:19 0 4.96 0.09 cnt 658 ti 08:47:19 0 4.96
08:47:19 0 5.05 0.09 cnt 658 ti 08:47:19 0 5.05
$***out 20081106 08:47:04
08:47:04 0 4.12 0.09 cnt 658 ti 08:47:04 0 4.12
08:47:05 0 4.21 0.09 cnt 658 ti 08:47:05 0 4.21
08:47:05 0 4.30 0.09 cnt 658 ti 08:47:05 0 4.30
08:47:05 0 4.39 0.09 cnt 658 ti 08:47:05 0 4.39
08:47:05 0 4.49 0.10 cnt 658 ti 08:47:05 0 4.49
$***out 20081106 08:46:32
08:46:32 0 3.93 0.01 cnt 0 ti 08:46:32 0 3.93
08:46:32 0 3.93 0 cnt 0 ti 08:46:32 0 3.93
08:46:32 0 3.93 0 cnt 0 ti 08:46:32 0 3.93
08:46:32 0 3.93 0 cnt 0 ti 08:46:32 0 3.93
08:46:32 0 3.93 0 cnt 0 ti 08:46:32 0 3.93
$***out 20081106 08:46:11
$***out 20081106 08:46:08
$***out 20081106 08:41:50
08:41:50 0 6.87 0.02 cnt 93 ti 08:41:50 0 6.87
08:41:50 0 6.90 0.03 cnt 93 ti 08:41:50 0 6.90
08:41:50 0 6.93 0.03 cnt 93 ti 08:41:50 0 6.93
08:41:50 0 6.95 0.02 cnt 93 ti 08:41:50 0 6.95
08:41:50 0 6.98 0.03 cnt 93 ti 08:41:50 0 6.98
$***out 20081106 08:41:24
08:41:26 0 4.31 0.17 cnt 93 ti 08:41:26 0 4.31
08:41:27 0 4.61 0.30 cnt 93 ti 08:41:27 0 4.61
08:41:29 0 5.09 0.48 cnt 93 ti 08:41:29 0 5.09
08:41:38 0 5.96 0.87 cnt 93 ti 08:41:38 0 5.96
08:41:39 0 6.75 0.79 cnt 93 ti 08:41:39 0 6.75
$***out 20081106 08:40:40
$***out 20081106 08:40:15
}¢--- A540769.WK.SQL(KE5480A) cre=2008-11-13 mod=2008-11-13-18.21.54 F540769 ---
set current sqlId = 'A540769';
declare global temporary table
tab (tab_text3 char(4) not null, tab_code char(20) not null,
tab_type2 integer not null, tab_type1 integer not null)
;
--create unique index session.tab
-- on session.tab (tab_code asc, tab_type2 asc, tab_type1 asc,
-- tab_text3 asc)
--;
insert into session.tab
(
select V843.TAB_TEXT3, V843.TAB_CODE, V843.TAB_TYPE2, V843B.TAB_TYPE1
from oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B
where V843.TAB_ART =
'PRODU3T_ID' AND
V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3
)
;
SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, tab.TAB_TEXT3, V858.VALID_TO_DATE,
V859.VALID_TO_DATE, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
, session.tab tab,
oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= ' ' AND
V833.PARTNER_TYPE = 3
AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 and
V835.CONTRACT_KEY = V833.CONTRACT_KEY
AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID
AND tab.TAB_CODE = V835.PRODUCT_ID AND tab.TAB_TYPE2 =
V858.IDENT_TYPE
AND V859.APPLICATION_TYPE =
tab.TAB_TYPE1
AND ( V833.LAST_UPDATE_TIME > current timestamp - 7 days
or V835.LAST_UPDATE_TIME > current timestamp - 7 days
OR V858.VALID_TO_DATE BETWEEN current date - 7 days
and current date + 7 days
or V859.VALID_TO_DATE BETWEEN current date - 7 days
and current date + 7 days
OR V859.VALID_FROM_DATE >= current date - 7 days
)
ORDER BY V833.PARTNER_KEY, V831.PARTNER_ID, V858.IDENT_ID,
tab.TAB_TEXT3, V859.APPLICATION_TYPE, V858.VALID_TO_DATE,
V859.VALID_TO_DATE WITH UR
}¢--- A540769.WK.SQL(KE5480B) cre=2008-11-14 mod=2008-11-18-12.09.24 F540769 ---
delete from A540769.plan_table
;
declare global temporary table
tab (tab_text3 char(4) not null, tab_code char(20) not null,
tab_type2 integer not null, tab_type1 integer not null)
;
--create unique index session.tab
-- on session.tab (tab_code asc, tab_type2 asc, tab_type1 asc,
-- tab_text3 asc)
--;
explain plan set queryno = 55 for
insert into session.tab
(
select V843.TAB_TEXT3, V843.TAB_CODE, V843.TAB_TYPE2, V843B.TAB_TYPE1
from oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B
where V843.TAB_ART =
'PRODUCT_ID' AND
V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3
)
;
explain plan set queryno = 99 for
SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, tab.TAB_TEXT3, V858.VALID_TO_DATE,
V859.VALID_TO_DATE, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
, session.tab tab,
oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= ? AND
V833.PARTNER_TYPE = 3
AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 and
V835.CONTRACT_KEY = V833.CONTRACT_KEY
AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID
AND tab.TAB_CODE = V835.PRODUCT_ID AND tab.TAB_TYPE2 =
V858.IDENT_TYPE
AND V859.APPLICATION_TYPE =
tab.TAB_TYPE1
AND ( V833.LAST_UPDATE_TIME > ?
or V835.LAST_UPDATE_TIME > ?
OR V858.VALID_TO_DATE BETWEEN ? AND ?
or V859.VALID_TO_DATE BETWEEN ? AND ?
OR V859.VALID_FROM_DATE >= ?
)
ORDER BY V833.PARTNER_KEY, V831.PARTNER_ID, V858.IDENT_ID,
tab.TAB_TEXT3, V859.APPLICATION_TYPE, V858.VALID_TO_DATE,
V859.VALID_TO_DATE WITH UR
;
explain plan set queryno = 111 for
with u as
(
SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3,
V833.LAST_UPDATE_TIME v833last,
V835.LAST_UPDATE_TIME v835Last,
V858.VALID_TO_DATE v858validTo,
V859.VALID_From_DATE v859validFrom,
V859.VALID_TO_DATE v859validTo, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
, oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= ? AND
V833.PARTNER_TYPE = 3
AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 and
V835.CONTRACT_KEY = V833.CONTRACT_KEY
AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = V835.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
)
select * from u where V833LAST > ?
union all select * from u where V835LAST > ?
union all select * from u where V858VALIDTO BETWEEN ? AND ?
union all select * from u where V859VALIDTO BETWEEN ? AND ?
or V859VALIDFrom >= ?
ORDER BY PARTNER_KEY, PARTNER_ID, IDENT_ID,
TAB_TEXT3, APPLICATION_TYPE, V858VALIDTO,
V859VALIDTO WITH UR
;
explain plan set queryno = 222 for
SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE,
V859.VALID_TO_DATE, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
, oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= ? AND
V833.PARTNER_TYPE = 3
AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 and
V835.CONTRACT_KEY = V833.CONTRACT_KEY
AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = V835.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND ( V833.LAST_UPDATE_TIME > ?
or V835.LAST_UPDATE_TIME > ?
OR V858.VALID_TO_DATE BETWEEN ? AND ?
or V859.VALID_TO_DATE BETWEEN ? AND ?
OR V859.VALID_FROM_DATE >= ?
)
ORDER BY V833.PARTNER_KEY, V831.PARTNER_ID, V858.IDENT_ID,
V843.TAB_TEXT3, V859.APPLICATION_TYPE, V858.VALID_TO_DATE,
V859.VALID_TO_DATE WITH UR
;
explain plan set queryno = 333 for
with a as
(
SELECT DISTINCT V833.PARTNER_KEY
,V833.PARTNER_TYPE, V833.CONTRACT_KEY, V833.LAST_UPDATE_TIME
,V835.PRODUCT_ID, V835.LAST_UPDATE_TIME V835LAST
FROM
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
WHERE V833.PARTNER_KEY >= ? AND
V833.PARTNER_TYPE = 3
and V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 AND
V835.CONTRACT_KEY = V833.CONTRACT_KEY
)
SELECT DISTINCT a.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE,
V859.VALID_TO_DATE, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
a
, oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE
V831.PARTNER_KEY = a.PARTNER_KEY
AND V858.PARTNER_KEY =
a.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = a.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND ( a.LAST_UPDATE_TIME > ?
or a.V835LAST > ?
OR V858.VALID_TO_DATE BETWEEN ? AND ?
or V859.VALID_TO_DATE BETWEEN ? AND ?
OR V859.VALID_FROM_DATE >= ?
)
ORDER BY a.PARTNER_KEY, V831.PARTNER_ID, V858.IDENT_ID,
V843.TAB_TEXT3, V859.APPLICATION_TYPE, V858.VALID_TO_DATE,
V859.VALID_TO_DATE WITH UR
;
select * from plan_view5a
-- where queryno in ( 149, 222)
-- order by applname, progname, queryNo, qblockno, planno
with ur
;
rollback
;
x
select min(partner_key), max(partner_key)
from oa1p.VKS833A1V
with ur
;
x
}¢--- A540769.WK.SQL(KE5480C) cre=2008-11-18 mod=2008-11-18-10.16.56 F540769 ---
set current sqlId = 'A540769';
delete from A540769.plan_table
;
explain plan set queryno = 300 for
SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE aa,
V859.VALID_TO_DATE bb, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
, oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= ' ' AND
V833.PARTNER_TYPE = 3
AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 AND
V835.CONTRACT_KEY = V833.CONTRACT_KEY
AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = V835.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND ( V833.LAST_UPDATE_TIME > current timestamp - 7 days
or V835.LAST_UPDATE_TIME > current timestamp - 7 days
OR V858.VALID_TO_DATE BETWEEN current date - 7 days
and current date + 7 days
or V859.VALID_TO_DATE BETWEEN current date - 7 days
and current date + 7 days
OR V859.VALID_FROM_DATE >= current date - 7 days
)
;
select index, v.* from plan_view5a v
order by applname, progname, queryNo, timestamp ,
qblockno, planno
;
rollback
;
SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE aa,
V859.VALID_TO_DATE bb, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
, oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= ' ' AND
V833.PARTNER_TYPE = 3
AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 AND
V835.CONTRACT_KEY = V833.CONTRACT_KEY
AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = V835.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND ( V833.LAST_UPDATE_TIME > current timestamp - 7 days
or V835.LAST_UPDATE_TIME > current timestamp - 7 days
OR V858.VALID_TO_DATE BETWEEN current date - 7 days
and current date + 7 days
or V859.VALID_TO_DATE BETWEEN current date - 7 days
and current date + 7 days
OR V859.VALID_FROM_DATE >= current date - 7 days
)
;
}¢--- A540769.WK.SQL(KE54805) cre=2008-11-11 mod=2008-11-18-10.03.03 F540769 ---
set current sqlId = 'A540769';
delete from A540769.plan_table
;
explain plan set queryno = 111 for
SELECT DISTINCT V833.PARTNER_KEY
FROM
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
WHERE V833.PARTNER_KEY >= ? AND
V833.PARTNER_TYPE = 3
and V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 AND
V835.CONTRACT_KEY = V833.CONTRACT_KEY
AND ( V833.LAST_UPDATE_TIME > ?
or V835.LAST_UPDATE_TIME > ?
)
ORDER BY V833.PARTNER_KEY
WITH UR
;
explain plan set queryno = 200 for
SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE,
V859.VALID_TO_DATE, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
, oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= ? AND
V833.PARTNER_TYPE = 3
AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 and
V835.CONTRACT_KEY = V833.CONTRACT_KEY
AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = V835.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND ( V833.LAST_UPDATE_TIME > ?
or V835.LAST_UPDATE_TIME > ?
OR V858.VALID_TO_DATE BETWEEN ? AND ?
or V859.VALID_TO_DATE BETWEEN ? AND ?
OR V859.VALID_FROM_DATE >= ?
)
ORDER BY V833.PARTNER_KEY, V831.PARTNER_ID, V858.IDENT_ID,
V843.TAB_TEXT3, V859.APPLICATION_TYPE, V858.VALID_TO_DATE,
V859.VALID_TO_DATE WITH UR
;
explain plan set queryno = 290 for
SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE,
V859.VALID_TO_DATE, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
, oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY || '' >= ? AND
V833.PARTNER_TYPE = 3
AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 and
V835.CONTRACT_KEY = V833.CONTRACT_KEY
AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = V835.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND ( V833.LAST_UPDATE_TIME > ?
or V835.LAST_UPDATE_TIME > ?
OR V858.VALID_TO_DATE BETWEEN ? AND ?
or V859.VALID_TO_DATE BETWEEN ? AND ?
OR V859.VALID_FROM_DATE >= ?
)
ORDER BY V833.PARTNER_KEY, V831.PARTNER_ID, V858.IDENT_ID,
V843.TAB_TEXT3, V859.APPLICATION_TYPE, V858.VALID_TO_DATE,
V859.VALID_TO_DATE WITH UR
;
explain plan set queryno = 295 for
with a as
(
SELECT DISTINCT V833.PARTNER_KEY
,V833.PARTNER_TYPE, V833.CONTRACT_KEY, V833.LAST_UPDATE_TIME
,V835.PRODUCT_ID, V835.LAST_UPDATE_TIME V835LAST
FROM
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
WHERE V833.PARTNER_KEY >= ? AND
V833.PARTNER_TYPE = 3
and V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 AND
V835.CONTRACT_KEY = V833.CONTRACT_KEY
)
SELECT DISTINCT a.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE,
V859.VALID_TO_DATE, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
a
, oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE
V831.PARTNER_KEY = a.PARTNER_KEY
AND V858.PARTNER_KEY =
a.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = a.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND ( a.LAST_UPDATE_TIME > ?
or a.V835LAST > ?
OR V858.VALID_TO_DATE BETWEEN ? AND ?
or V859.VALID_TO_DATE BETWEEN ? AND ?
OR V859.VALID_FROM_DATE >= ?
)
ORDER BY a.PARTNER_KEY, V831.PARTNER_ID, V858.IDENT_ID,
V843.TAB_TEXT3, V859.APPLICATION_TYPE, V858.VALID_TO_DATE,
V859.VALID_TO_DATE WITH UR
;
explain plan set queryno = 300 for
SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE aa,
V859.VALID_TO_DATE bb, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
, oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= ' ' AND
V833.PARTNER_TYPE = 3
AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 AND
V835.CONTRACT_KEY = V833.CONTRACT_KEY
AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = V835.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND ( V833.LAST_UPDATE_TIME > current timestamp - 7 days
or V835.LAST_UPDATE_TIME > current timestamp - 7 days
OR V858.VALID_TO_DATE BETWEEN current date - 7 days
and current date + 7 days
or V859.VALID_TO_DATE BETWEEN current date - 7 days
and current date + 7 days
OR V859.VALID_FROM_DATE >= current date - 7 days
)
;
explain plan set queryno = 304 for
SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE aa,
V859.VALID_TO_DATE bb, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
, oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= 'a' AND
V833.PARTNER_TYPE = 3
AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 AND
V835.CONTRACT_KEY = V833.CONTRACT_KEY
AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = V835.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND ( V833.LAST_UPDATE_TIME > current timestamp - 7 days
or V835.LAST_UPDATE_TIME > current timestamp - 7 days
OR V858.VALID_TO_DATE BETWEEN current date - 7 days
and current date + 7 days
or V859.VALID_TO_DATE BETWEEN current date - 7 days
and current date + 7 days
OR V859.VALID_FROM_DATE >= current date - 7 days
)
;
explain plan set queryno = 308 for
SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE aa,
V859.VALID_TO_DATE bb, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
, oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= 'A' AND
V833.PARTNER_TYPE = 3
AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 AND
V835.CONTRACT_KEY = V833.CONTRACT_KEY
AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = V835.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND ( V833.LAST_UPDATE_TIME > current timestamp - 7 days
or V835.LAST_UPDATE_TIME > current timestamp - 7 days
OR V858.VALID_TO_DATE BETWEEN current date - 7 days
and current date + 7 days
or V859.VALID_TO_DATE BETWEEN current date - 7 days
and current date + 7 days
OR V859.VALID_FROM_DATE >= current date - 7 days
)
;
explain plan set queryno = 310 for
SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE aa,
V859.VALID_TO_DATE bb, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
, oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= '0' AND
V833.PARTNER_TYPE = 3
AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 AND
V835.CONTRACT_KEY = V833.CONTRACT_KEY
AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = V835.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND ( V833.LAST_UPDATE_TIME > current timestamp - 7 days
or V835.LAST_UPDATE_TIME > current timestamp - 7 days
OR V858.VALID_TO_DATE BETWEEN current date - 7 days
and current date + 7 days
or V859.VALID_TO_DATE BETWEEN current date - 7 days
and current date + 7 days
OR V859.VALID_FROM_DATE >= current date - 7 days
)
;
explain plan set queryno = 315 for
SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE aa,
V859.VALID_TO_DATE bb, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
, oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= '5' AND
V833.PARTNER_TYPE = 3
AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 AND
V835.CONTRACT_KEY = V833.CONTRACT_KEY
AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = V835.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND ( V833.LAST_UPDATE_TIME > current timestamp - 7 days
or V835.LAST_UPDATE_TIME > current timestamp - 7 days
OR V858.VALID_TO_DATE BETWEEN current date - 7 days
and current date + 7 days
or V859.VALID_TO_DATE BETWEEN current date - 7 days
and current date + 7 days
OR V859.VALID_FROM_DATE >= current date - 7 days
)
;
explain plan set queryno = 319 for
SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE aa,
V859.VALID_TO_DATE bb, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
, oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= '9' AND
V833.PARTNER_TYPE = 3
AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 AND
V835.CONTRACT_KEY = V833.CONTRACT_KEY
AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = V835.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND ( V833.LAST_UPDATE_TIME > current timestamp - 7 days
or V835.LAST_UPDATE_TIME > current timestamp - 7 days
OR V858.VALID_TO_DATE BETWEEN current date - 7 days
and current date + 7 days
or V859.VALID_TO_DATE BETWEEN current date - 7 days
and current date + 7 days
OR V859.VALID_FROM_DATE >= current date - 7 days
)
;
select * from plan_view5a
-- where queryno in ( 149, 222)
-- order by applname, progname, queryNo, qblockno, planno
union select * from cmnbatch.plan_view5a
where progName = 'KE5480'
-- and version = '2008-08-07-18.52.54.033048'
-- and collid = 'HP3'
and (
bind_time = '2008-08-07-18.52.54.033048'
and queryno = 1613
or bind_time = '2008-11-15-00.48.01.023700'
and queryno = 531
)
order by applname, progname, queryNo, timestamp ,
qblockno, planno
;
rollback
;
x
select left(V858.PARTNER_KEY, 1), count(*)
from oa1p.VKS858A1V V858
group by left(V858.PARTNER_KEY, 1)
order by 1
with ur
;
x
}¢--- A540769.WK.SQL(KE54806) cre=2008-11-11 mod=2008-11-11-16.48.59 F540769 ---
with a as
(
SELECT DISTINCT V833.PARTNER_KEY
FROM
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
WHERE V833.PARTNER_KEY >= ' ' AND
V833.PARTNER_TYPE = 3
and V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 AND
V835.CONTRACT_KEY = V833.CONTRACT_KEY
AND ( V833.LAST_UPDATE_TIME > current timestamp - 7 days
or V835.LAST_UPDATE_TIME > current timestamp - 7 days
)
)
select count(*) from a
with ur
}¢--- A540769.WK.SQL(KE54807) cre=2008-11-11 mod=2008-11-11-16.54.37 F540769 ---
with a as
(
SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE aa,
V859.VALID_TO_DATE bb, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
, oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= ' ' AND
V833.PARTNER_TYPE = 3
AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 AND
V835.CONTRACT_KEY = V833.CONTRACT_KEY
AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = V835.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND ( V833.LAST_UPDATE_TIME > current timestamp - 7 days
or V835.LAST_UPDATE_TIME > current timestamp - 7 days
OR V858.VALID_TO_DATE BETWEEN current date - 7 days
and current date + 7 days
or V859.VALID_TO_DATE BETWEEN current date - 7 days
and current date + 7 days
OR V859.VALID_FROM_DATE >= current date - 7 days
)
)
select count(*)
from a
with ur
}¢--- A540769.WK.SQL(KE54808) cre=2008-11-11 mod=2008-11-18-12.57.50 F540769 ---
with a as
(
SELECT DISTINCT V833.PARTNER_KEY
,V833.PARTNER_TYPE, V833.CONTRACT_KEY, V833.LAST_UPDATE_TIME
,V835.PRODUCT_ID, V835.LAST_UPDATE_TIME V835LAST
FROM
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
WHERE V833.PARTNER_KEY >= ' ' AND
V833.PARTNER_TYPE = 3
and V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 AND
V835.CONTRACT_KEY = V833.CONTRACT_KEY
)
SELECT DISTINCT a.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE,
V859.VALID_TO_DATE v859valid, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
a
, oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE
V831.PARTNER_KEY = a.PARTNER_KEY
AND V858.PARTNER_KEY =
a.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = a.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND ( a.LAST_UPDATE_TIME > current timestamp - 7 days
or a.V835LAST > current timestamp - 7 days
OR V858.VALID_TO_DATE BETWEEN current date - 7 days
and current date + 7 days
or V859.VALID_TO_DATE BETWEEN current date - 7 days
and current date + 7 days
OR V859.VALID_FROM_DATE >= current date - 7 days
)
WITH UR
}¢--- A540769.WK.SQL(KE54809) cre=2008-11-13 mod=2008-11-13-18.01.35 F540769 ---
set current sqlId = 'A540769';
delete from A540769.plan_table
;
declare global temporary table
tab (tab_text3 char(4) not null, tab_code char(20) not null,
tab_type2 integer not null, tab_type1 integer not null)
;
--create unique index session.tab
-- on session.tab (tab_code asc, tab_type2 asc, tab_type1 asc,
-- tab_text3 asc)
--;
explain plan set queryno = 55 for
insert into session.tab
(
select V843.TAB_TEXT3, V843.TAB_CODE, V843.TAB_TYPE2, V843B.TAB_TYPE1
from oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B
where V843.TAB_ART =
'PRODUCT_ID' AND
V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3
)
;
explain plan set queryno = 99 for
SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, tab.TAB_TEXT3, V858.VALID_TO_DATE,
V859.VALID_TO_DATE, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
, session.tab tab,
oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= ? AND
V833.PARTNER_TYPE = 3
AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 and
V835.CONTRACT_KEY = V833.CONTRACT_KEY
AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID
AND tab.TAB_CODE = V835.PRODUCT_ID AND tab.TAB_TYPE2 =
V858.IDENT_TYPE
AND V859.APPLICATION_TYPE =
tab.TAB_TYPE1
AND ( V833.LAST_UPDATE_TIME > ?
or V835.LAST_UPDATE_TIME > ?
OR V858.VALID_TO_DATE BETWEEN ? AND ?
or V859.VALID_TO_DATE BETWEEN ? AND ?
OR V859.VALID_FROM_DATE >= ?
)
ORDER BY V833.PARTNER_KEY, V831.PARTNER_ID, V858.IDENT_ID,
tab.TAB_TEXT3, V859.APPLICATION_TYPE, V858.VALID_TO_DATE,
V859.VALID_TO_DATE WITH UR
;
explain plan set queryno = 111 for
with u as
(
SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3,
V833.LAST_UPDATE_TIME v833last,
V835.LAST_UPDATE_TIME v835Last,
V858.VALID_TO_DATE v858validTo,
V859.VALID_From_DATE v859validFrom,
V859.VALID_TO_DATE v859validTo, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
, oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= ? AND
V833.PARTNER_TYPE = 3
AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 and
V835.CONTRACT_KEY = V833.CONTRACT_KEY
AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = V835.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
)
select * from u where V833LAST > ?
union all select * from u where V835LAST > ?
union all select * from u where V858VALIDTO BETWEEN ? AND ?
union all select * from u where V859VALIDTO BETWEEN ? AND ?
or V859VALIDFrom >= ?
ORDER BY PARTNER_KEY, PARTNER_ID, IDENT_ID,
TAB_TEXT3, APPLICATION_TYPE, V858VALIDTO,
V859VALIDTO WITH UR
;
explain plan set queryno = 222 for
SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE,
V859.VALID_TO_DATE, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
, oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= ? AND
V833.PARTNER_TYPE = 3
AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 and
V835.CONTRACT_KEY = V833.CONTRACT_KEY
AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = V835.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND ( V833.LAST_UPDATE_TIME > ?
or V835.LAST_UPDATE_TIME > ?
OR V858.VALID_TO_DATE BETWEEN ? AND ?
or V859.VALID_TO_DATE BETWEEN ? AND ?
OR V859.VALID_FROM_DATE >= ?
)
ORDER BY V833.PARTNER_KEY, V831.PARTNER_ID, V858.IDENT_ID,
V843.TAB_TEXT3, V859.APPLICATION_TYPE, V858.VALID_TO_DATE,
V859.VALID_TO_DATE WITH UR
;
explain plan set queryno = 333 for
with a as
(
SELECT DISTINCT V833.PARTNER_KEY
,V833.PARTNER_TYPE, V833.CONTRACT_KEY, V833.LAST_UPDATE_TIME
,V835.PRODUCT_ID, V835.LAST_UPDATE_TIME V835LAST
FROM
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
WHERE V833.PARTNER_KEY >= ? AND
V833.PARTNER_TYPE = 3
and V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 AND
V835.CONTRACT_KEY = V833.CONTRACT_KEY
)
SELECT DISTINCT a.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE,
V859.VALID_TO_DATE, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
a
, oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE
V831.PARTNER_KEY = a.PARTNER_KEY
AND V858.PARTNER_KEY =
a.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = a.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND ( a.LAST_UPDATE_TIME > ?
or a.V835LAST > ?
OR V858.VALID_TO_DATE BETWEEN ? AND ?
or V859.VALID_TO_DATE BETWEEN ? AND ?
OR V859.VALID_FROM_DATE >= ?
)
ORDER BY a.PARTNER_KEY, V831.PARTNER_ID, V858.IDENT_ID,
V843.TAB_TEXT3, V859.APPLICATION_TYPE, V858.VALID_TO_DATE,
V859.VALID_TO_DATE WITH UR
;
select * from plan_view5a
-- where queryno in ( 149, 222)
-- order by applname, progname, queryNo, qblockno, planno
union select * from cmnbatch.plan_view5a
where progName = 'KE5480'
-- and version = '2008-08-07-18.52.54.033048'
-- and collid = 'HP3'
and bind_time = '2008-08-07-18.52.54.033048'
and queryno = 1613
order by applname, progname, queryNo, timestamp ,
qblockno, planno
with ur
;
rollback
;
}¢--- A540769.WK.SQL(KS841) cre=2016-03-18 mod=2016-03-18-11.28.26 A540769 -----
alter tablespace ks09a1p.a841a compress no;
}¢--- A540769.WK.SQL(KUDT) cre=2006-06-16 mod=2006-06-16-18.02.50 F540769 ------
UPDATE OA1T.TXC102A1
SET XC102_RUNSTART_TS = '2002-01-01-00.00.00.000000'
-- , XC102_RECIP_BUID = ''
;
COMMIT
;
SELECT COUNT(*), MIN(XC102_RUNSTART_TS), MAX(XC102_RUNSTART_TS)
, SUM(LENGTH(XC102_ACT_CONTENT))
FROM OA1T.TXC102A1
FOR UPDATE
;
XOMMIT
;
UPDATE OA1T.TXC102A1
SET XC102_RUNSTART_TS = '2006-02-01-06.27.28.123'
;
X
XNSERT INTO OA1T.TXC102A1 SELECT * FROM OA1T.TXC102A1;
COMMIT;
SELECT COUNT(*), MIN(XC102_RUNSTART_TS), MAX(XC102_RUNSTART_TS)
, SUM(LENGTH(XC102_ACT_CONTENT))
FROM OA1T.TXC102A1
FOR UPDATE
;
;
XX
SELECT * FROM OA1T.TXC102A1
FETCH FIRST 20 ROWS ONLY
;
}¢--- A540769.WK.SQL(KUDU) cre=2006-06-14 mod=2006-11-24-09.29.42 F540769 ------
INSERT INTO A540769.TXC102A1 SELECT * FROM A540769.TXC102A1;
ROLLBACK;
X
UPDATE A540769.TXC102A1
SET XC102_RUNSTART_TS = '0001-01-01-00.00.00.000000'
, XC102_RECIP_BUID = ''
;
COMMIT
;
SELECT COUNT(*), MIN(XC102_RUNSTART_TS), MAX(XC102_RUNSTART_TS)
, MIN(XC102_RECIP_BUID), MAX(XC102_RECIP_BUID)
, SUM(LENGTH(XC102_ACT_CONTENT))
FROM A540769.TXC102A1
FOR UPDATE
;
X
COMMIT
UPDATE A540769.TXC102A1
SET XC102_RUNSTART_TS = '0001-01-01-00.00.00.000000'
, XC102_RECIP_BUID = 'WA5'
;
;
X
SELECT COUNT(*), MIN(XC102_RUNSTART_TS), MAX(XC102_RUNSTART_TS)
, SUM(LENGTH(XC102_ACT_CONTENT))
FROM A540769.TXC102A1
FOR UPDATE
;
;
XX
SELECT * FROM OA1T.TXC102A1
FETCH FIRST 20 ROWS ONLY
;
}¢--- A540769.WK.SQL(LABYRIN) cre=2011-11-09 mod=2011-11-14-17.18.34 A540769 ---
with labyrinth (lab) as -- das leere Labyrinth
( select 'X|XXXXXXXXXXXXXXXXX' -- 1
|| 'X| X X X X' -- 2
|| 'X XXX X XXX XXX X' -- 3
|| 'X X X XXX X X' -- 4
|| 'X XXXXXXX XXX X X' -- 5
|| 'X X X X X X' -- 6
|| 'XXX X XXX XX X XX X' -- 7
|| 'X X X X X' -- 8
|| 'X XXXXX X XXXXXX XX' -- 9
|| 'X X *' --10
|| 'XXXXXXXXXXXXXXXXXXX' --11
-- 123456789 123456789
from sysibm.sysDummy1
)
, zeilen (Z) as -- Anzahl Zeilen
( select 1 from sysibm.sysDummy1
union all select z+1 from zeilen where z < 11
)
, schritt (delta, chr) as -- die 4 möglichen Schritte
( select 1, '>' from sysibm.sysDummy1 -- nach rechts
union all select -1, '<' from sysibm.sysDummy1 -- nach links
union all select 19, '|' from sysibm.sysDummy1 -- nach unten
union all select -19, 'i' from sysibm.sysDummy1 -- nach oben
)
, suche (lab, pos, sta, len) as -- Suche einen Weg
( select lab, 21, 'ok', 0 -- Start: das leere Labyrinth
from labyrinth
union all select -- Schritt a: probiere alle Schritte
lab, pos + delta, 'p' || chr, len+1
from suche, schritt
where sta = 'ok' and len < 999
union all select -- Schritt b: markiere Schritt falls ok
left(lab, pos-1) || substr(sta, 2) || substr(lab, pos+1) ,
pos, 'ok', len+1
from suche
where sta like 'p%' and substr(lab, pos, 1) = ' ' and len < 999
union all select -- Ende: Ziel gefunden?
lab, pos, 'zi', len+1
from suche
where sta like 'p%' and substr(lab, pos, 1) = '*' and len < 999
)
-- Zeilen der Labyrinthe anzeigen
select substr(lab, 19 * z - 18, 19) ,len
from suche, zeilen
where sta = 'zi'
order by len, lab, z
}¢--- A540769.WK.SQL(LABYRIN1) cre=2011-11-09 mod=2011-11-14-17.00.20 A540769 ---
-- rekursives with
-- fuer die Zahlen 1..11
with Zeilen (Z) as
-- Start 1
( select 1 from sysibm.sysDummy1
-- Schritt z+1
union all select z+1 from Zeilen where z < 11
)
select * from Zeilen
}¢--- A540769.WK.SQL(LABYRIN2) cre=2011-11-09 mod=2011-11-14-17.00.34 A540769 ---
with labyrinth (lab) as -- das leere Labyrinth
( select 'X|XXXXXXXXXXXXXXXXX' -- 1
|| 'X| X X X X' -- 2
|| 'X XXX X XXX XXX X' -- 3
|| 'X X X XXX X X' -- 4
|| 'X XXXXXXX XXX X X' -- 5
|| 'X X X X X X' -- 6
|| 'XXX X XXX XX X XX X' -- 7
|| 'X X X X X' -- 8
|| 'X XXXXX X XXXXXX XX' -- 9
|| 'X X *' --10
|| 'XXXXXXXXXXXXXXXXXXX' --11
-- 123456789 123456789
from sysibm.sysDummy1
)
, zeilen (z) as -- die ZeilenNummer 1..11
( select 1 from sysibm.sysDummy1
union all select z+1 from zeilen where z < 11
)
-- Zeilen des Labyrinths anzeigen
select substr(lab, 19 * z - 18, 19)
from labyrinth, zeilen
order by lab, z
}¢--- A540769.WK.SQL(LABYRIN3) cre=2011-11-09 mod=2011-11-14-17.10.07 A540769 ---
with labyrinth (lab) as -- das leere Labyrinth
( select 'X|XXXXXXXXXXXXXXXXX' -- 1
|| 'X| X X X X' -- 2
|| 'X XXX X XXX XXX X' -- 3
|| 'X X X XXX X X' -- 4
|| 'X XXXXXXX XXX X X' -- 5
|| 'X X X X X X' -- 6
|| 'XXX X XXX XX X XX X' -- 7
|| 'X X X X X' -- 8
|| 'X XXXXX X XXXXXX XX' -- 9
|| 'X X *' --10
|| 'XXXXXXXXXXXXXXXXXXX' --11
-- 123456789 123456789
from sysibm.sysDummy1
)
, zeilen (Z) as -- Anzahl Zeilen
( select 1 from sysibm.sysDummy1
union all select z+1 from zeilen where z < 11
)
, suche (lab, pos, sta) as -- Suche einen Weg
( select lab, 21, 'ok' -- Start: das leere Labyrinth
from labyrinth
-- Schritt: probiere nach rechts
union all select lab, pos + 1, 'pr'
from suche
where sta = 'ok'
) -- Zeilen der Labyrinthe anzeigen
select substr(lab, 19 * z - 18, 19), sta
from suche,zeilen
order by lab, sta, z
}¢--- A540769.WK.SQL(LABYRIN4) cre=2011-11-09 mod=2011-11-14-17.12.08 A540769 ---
with labyrinth (lab) as -- das leere Labyrinth byrinth
( select 'X|XXXXXXXXXXXXXXXXX' -- 1
|| 'X| X X X X' -- 2
|| 'X XXX X XXX XXX X' -- 3
|| 'X X X XXX X X' -- 4
|| 'X XXXXXXX XXX X X' -- 5
|| 'X X X X X X' -- 6
|| 'XXX X XXX XX X XX X' -- 7
|| 'X X X X X' -- 8
|| 'X XXXXX X XXXXXX XX' -- 9
|| 'X X *' --10
|| 'XXXXXXXXXXXXXXXXXXX' --11
-- 123456789 123456789
from sysibm.sysDummy1
)
, zeilen (Z) as -- Anzahl Zeilen
( select 1 from sysibm.sysDummy1
union all select z+1 from zeilen where z < 11
)
, suche (lab, pos, sta, len) as -- Suche einen Weg
( select lab, 21, 'ok', 0 -- Start: das leere Labyrinth
from labyrinth
-- Schritt a: probiere nach rechts
union all select lab, pos+ 1, 'pr', len+1
from suche
where sta = 'ok' and len < 999
union all select -- Schritt b: markiere Schritt falls ok
left(lab, pos-1) || '>' || substr(lab, pos+1) ,
pos, 'ok', len+1
from suche
where sta like 'p%' and substr(lab, pos, 1) = ' ' and len < 999
)
-- Zeilen der Labyrinthe anzeigen
select substr(lab, 19 * z - 18, 19), sta, len
from suche,zeilen
order by lab, sta, z
}¢--- A540769.WK.SQL(LABYRIN5) cre=2011-11-09 mod=2011-11-14-17.12.22 A540769 ---
with labyrinth (lab) as -- das leere Labyrinth
( select 'X|XXXXXXXXXXXXXXXXX' -- 1
|| 'X| X X X X' -- 2
|| 'X XXX X XXX XXX X' -- 3
|| 'X X X XXX X X' -- 4
|| 'X XXXXXXX XXX X X' -- 5
|| 'X X X X X X' -- 6
|| 'XXX X XXX XX X XX X' -- 7
|| 'X X X X X' -- 8
|| 'X XXXXX X XXXXXX XX' -- 9
|| 'X X *' --10
|| 'XXXXXXXXXXXXXXXXXXX' --11
-- 123456789 123456789
from sysibm.sysDummy1
)
, zeilen (Z) as -- Anzahl Zeilen
( select 1 from sysibm.sysDummy1
union all select z+1 from zeilen where z < 11
)
, suche (lab, pos, sta, len) as -- Suche einen Weg
( select lab, 21, 'ok', 0 -- Start: das leere Labyrinth
from labyrinth
-- Schritt a1: probiere nach rechts
union all select lab, pos+ 1, 'p>', len+1 -- probiere nach rechts
from suche
where sta = 'ok' and len < 999
-- Schritt a2: probiere nach unten
union all select lab, pos+19, 'p|', len+1
from suche
where sta = 'ok' and len < 999
-- Schritt b: markiere Schritt falls ok
union all select
left(lab, pos-1) || substr(sta, 2) || substr(lab, pos+1) ,
pos, 'ok', len+1
from suche
where sta like 'p%' and substr(lab, pos, 1) = ' ' and len < 999
)
-- Zeilen der Labyrinthe anzeigen
select substr(lab, 19 * z - 18, 19), len
from suche,zeilen
where sta = 'ok'
order by lab, z
}¢--- A540769.WK.SQL(LASTUSED) cre=2009-04-21 mod=2009-04-21-08.09.22 F540769 ---
select lastUsed, count(*)
from sysibm.sysindexspacestats
group by lastUsed
order by lastUsed
}¢--- A540769.WK.SQL(LEUZAL) cre=2006-07-07 mod=2006-07-12-09.15.34 F540769 ----
SET CURRENT SQLID = 'S100447';
CREATE ALIAS OA1P06.VPC104A1A FOR OA1P.VPC104A1A ;
CREATE ALIAS OA1P05.VPC104A1A FOR OA1P.VPC104A1A ;
CREATE ALIAS OA1P04.VPC104A1A FOR OA1P.VPC104A1A ;
CREATE ALIAS OA1P03.VPC104A1A FOR OA1P.VPC104A1A ;
CREATE ALIAS OA1P02.VPC104A1A FOR OA1P.VPC104A1A ;
CREATE ALIAS OA1P01.VPC104A1A FOR OA1P.VPC104A1A ;
COMMIT;
CREATE ALIAS OA1P06.TPC104A1 FOR OA1P.TPC104A1 ;
CREATE ALIAS OA1P05.TPC104A1 FOR OA1P.TPC104A1 ;
CREATE ALIAS OA1P04.TPC104A1 FOR OA1P.TPC104A1 ;
CREATE ALIAS OA1P03.TPC104A1 FOR OA1P.TPC104A1 ;
CREATE ALIAS OA1P02.TPC104A1 FOR OA1P.TPC104A1 ;
CREATE ALIAS OA1P01.TPC104A1 FOR OA1P.TPC104A1 ;
COMMIT;
DROP ALIAS OA1P06.VPC104A1 ;
DROP ALIAS OA1P05.VPC104A1 ;
DROP ALIAS OA1P04.VPC104A1 ;
DROP ALIAS OA1P03.VPC104A1 ;
DROP ALIAS OA1P02.VPC104A1 ;
DROP ALIAS OA1P01.VPC104A1 ;
COMMIT;
DROP ALIAS OA1P06.VPC104A1P ;
DROP ALIAS OA1P05.VPC104A1P ;
DROP ALIAS OA1P04.VPC104A1P ;
DROP ALIAS OA1P03.VPC104A1P ;
DROP ALIAS OA1P02.VPC104A1P ;
DROP ALIAS OA1P01.VPC104A1P ;
COMMIT;
}¢--- A540769.WK.SQL(LIKE) cre=2010-12-15 mod=2010-12-15-12.04.37 A540769 ------
select
case when 'a' = 'a ' then '=' else '\' end "'a' = 'a '",
case when 'a' like 'a ' then 'like' else '\' end
"'a' like 'a '",
case when 'a ' like 'a' then 'like' else '\' end
"'a ' like 'a'"
from sysibm.sysDummy1
}¢--- A540769.WK.SQL(LIKEESC) cre=2008-08-19 mod=2008-08-19-15.29.42 F540769 ---
select name
from sysibm.sysTables
where name like '%\_%' escape '\' and type = 'T'
fetch first 100 rows only
;
with d as
( select 'abcdef' d from sysibm.sysdummy1
union select 'ab_def' d from sysibm.sysdummy1
union select 'ab%def' d from sysibm.sysdummy1
union select 'ab\def' d from sysibm.sysdummy1
)
select *
from d
where d like '%\\%' escape '\'
fetch first 100 rows only
}¢--- A540769.WK.SQL(LISTC) cre=2008-08-18 mod=2008-08-18-16.05.59 F540769 -----
$= subsys = DBAF
call sqlConnect DBAF
$;
$<<tbs
TWK202A1
tbs $@{ sel = ''
$@for v $@{ sel = sel", '"strip($v)"'" $}
sel = 'in ('substr(sel, 3)')'
say sel
$=sel £ sel
$}
$;
$<<¢s1
select t.creator cr, t.name tb, t.dbName db, t.tsName ts,
p.iPrefix ip, p.partition pa, p.dsNum nu
from sysibm.systables t, sysibm.sysTablePart p
where t.dbName = p.dbName and t.tsName = p.tsname
and name $sel
s1 call sql 3
$¨ $@{
$@for v $@{
$$ ${v.CR} ${v.TB} ${v.DB} ${v.TS} ${v.PA} ${v.IP} $*+
${v.NU}
do x=1 to ${v.NU}
dsn = $subsys'.DSNDBC.'${v.DB}'.'${v.TS},
|| '.'${v.IP}right(x, 4, 0) ,
|| '.A'right(max(1,${v.PA}), 3, 0)
$£ dsn
$£ dsn sysdsn("'"dsn"'")
end
$}
$}
$***out 20080818 16:05:41
A540769 TWK202A1 DA540769 A202A 1 I -1
A540769 TWK202A1 DA540769 A202A 2 I -1
A540769 TWK202A1 DA540769 A202A 3 I -1
A540769 TWK202A1 DA540769 A202A 4 I -1
GDB9998 TWK202A1 DGDB9998 A202A 1 I 1
DBAF.DSNDBC.DGDB9998.A202A.I0001.A001
DBAF.DSNDBC.DGDB9998.A202A.I0001.A001 OK
GDB9998 TWK202A1 DGDB9998 A202A 2 I 1
DBAF.DSNDBC.DGDB9998.A202A.I0001.A002
DBAF.DSNDBC.DGDB9998.A202A.I0001.A002 OK
GDB9998 TWK202A1 DGDB9998 A202A 3 I 1
DBAF.DSNDBC.DGDB9998.A202A.I0001.A003
DBAF.DSNDBC.DGDB9998.A202A.I0001.A003 OK
GDB9998 TWK202A1 DGDB9998 A202A 4 I 1
DBAF.DSNDBC.DGDB9998.A202A.I0001.A004
DBAF.DSNDBC.DGDB9998.A202A.I0001.A004 OK
$***out 20080818 16:02:11
A540769 TWK202A1 DA540769 A202A 1 I -1
A540769 TWK202A1 DA540769 A202A 2 I -1
A540769 TWK202A1 DA540769 A202A 3 I -1
A540769 TWK202A1 DA540769 A202A 4 I -1
GDB9998 TWK202A1 DGDB9998 A202A 1 I 1
DBAF.DSNDBC.DGDB9998.A202A.I0001.A001
DBAF.DSNDBC.DGDB9998.A202A.I0001.A001 OK
GDB9998 TWK202A1 DGDB9998 A202A 2 I 1
DBAF.DSNDBC.DGDB9998.A202A.I0002.A001
DBAF.DSNDBC.DGDB9998.A202A.I0002.A001 DATASET NOT FOUND
GDB9998 TWK202A1 DGDB9998 A202A 3 I 1
DBAF.DSNDBC.DGDB9998.A202A.I0003.A001
DBAF.DSNDBC.DGDB9998.A202A.I0003.A001 DATASET NOT FOUND
GDB9998 TWK202A1 DGDB9998 A202A 4 I 1
DBAF.DSNDBC.DGDB9998.A202A.I0004.A001
DBAF.DSNDBC.DGDB9998.A202A.I0004.A001 DATASET NOT FOUND
$***out 20080818 15:35:58
BUA XBALD001IT002001 XBALD001 SIT00301 0 I 1
DAEG.DSNDBC.XBALD001.SIT00301.I0001.A0001
DAEG.DSNDBC.XBALD001.SIT00301.I0001.A0001 DATASET NOT FOUND
BUA XBALD001PM001002 XBALD001 SPM00201 0 I 1
DAEG.DSNDBC.XBALD001.SPM00201.I0001.A0001
DAEG.DSNDBC.XBALD001.SPM00201.I0001.A0001 DATASET NOT FOUND
BUA XBALD001PS001001 XBALD001 SPS00101 0 I 1
DAEG.DSNDBC.XBALD001.SPS00101.I0001.A0001
DAEG.DSNDBC.XBALD001.SPS00101.I0001.A0001 DATASET NOT FOUND
BUA XBALD001PS002001 XBALD001 SPS00401 0 I 1
DAEG.DSNDBC.XBALD001.SPS00401.I0001.A0001
DAEG.DSNDBC.XBALD001.SPS00401.I0001.A0001 DATASET NOT FOUND
BUA XBALM001IT002001 XBALM001 SIT002 0 I 1
DAEG.DSNDBC.XBALM001.SIT002.I0001.A0001
DAEG.DSNDBC.XBALM001.SIT002.I0001.A0001 DATASET NOT FOUND
BUA XBALM001PS002001 XBALM001 SPS003 0 I 1
DAEG.DSNDBC.XBALM001.SPS003.I0001.A0001
DAEG.DSNDBC.XBALM001.SPS003.I0001.A0001 DATASET NOT FOUND
BUA XBALZ001IT002001 XBALZ001 SIT002 0 I 1
DAEG.DSNDBC.XBALZ001.SIT002.I0001.A0001
DAEG.DSNDBC.XBALZ001.SIT002.I0001.A0001 DATASET NOT FOUND
BUA XBALZ001PS001001 XBALZ001 SPS001 0 I 1
DAEG.DSNDBC.XBALZ001.SPS001.I0001.A0001
DAEG.DSNDBC.XBALZ001.SPS001.I0001.A0001 DATASET NOT FOUND
BUA XBALZ001PS002001 XBALZ001 SPS003 0 I 1
DAEG.DSNDBC.XBALZ001.SPS003.I0001.A0001
DAEG.DSNDBC.XBALZ001.SPS003.I0001.A0001 DATASET NOT FOUND
$***out 20080818 15:35:11
BUA XBALD001IT002001 XBALD001 SIT00301 0 I 1
DAEG.DSNDBC.XBALD001.SIT00301.I 1.A 1 INVALID DATASET NAME, 'DAEG.DSNDBC.XBA
BUA XBALD001PM001002 XBALD001 SPM00201 0 I 1
DAEG.DSNDBC.XBALD001.SPM00201.I 1.A 1 INVALID DATASET NAME, 'DAEG.DSNDBC.XBA
BUA XBALD001PS001001 XBALD001 SPS00101 0 I 1
DAEG.DSNDBC.XBALD001.SPS00101.I 1.A 1 INVALID DATASET NAME, 'DAEG.DSNDBC.XBA
BUA XBALD001PS002001 XBALD001 SPS00401 0 I 1
DAEG.DSNDBC.XBALD001.SPS00401.I 1.A 1 INVALID DATASET NAME, 'DAEG.DSNDBC.XBA
BUA XBALM001IT002001 XBALM001 SIT002 0 I 1
DAEG.DSNDBC.XBALM001.SIT002.I 1.A 1 INVALID DATASET NAME, 'DAEG.DSNDBC.XBALM
BUA XBALM001PS002001 XBALM001 SPS003 0 I 1
DAEG.DSNDBC.XBALM001.SPS003.I 1.A 1 INVALID DATASET NAME, 'DAEG.DSNDBC.XBALM
BUA XBALZ001IT002001 XBALZ001 SIT002 0 I 1
DAEG.DSNDBC.XBALZ001.SIT002.I 1.A 1 INVALID DATASET NAME, 'DAEG.DSNDBC.XBALZ
BUA XBALZ001PS001001 XBALZ001 SPS001 0 I 1
DAEG.DSNDBC.XBALZ001.SPS001.I 1.A 1 INVALID DATASET NAME, 'DAEG.DSNDBC.XBALZ
BUA XBALZ001PS002001 XBALZ001 SPS003 0 I 1
DAEG.DSNDBC.XBALZ001.SPS003.I 1.A 1 INVALID DATASET NAME, 'DAEG.DSNDBC.XBALZ
$***out 20080818 15:34:58
BUA XBALD001IT002001 XBALD001 SIT00301 0 I 1
$***out 20080818 15:34:18
$***out 20080818 15:33:37
$***out 20080818 15:31:11
BUA XBALD001IT002001 XBALD001 SIT00301 0 I 1
DAEG.DSNDBC.XBALD001.SIT00301.I
BUA XBALD001PM001002 XBALD001 SPM00201 0 I 1
DAEG.DSNDBC.XBALD001.SPM00201.I
BUA XBALD001PS001001 XBALD001 SPS00101 0 I 1
DAEG.DSNDBC.XBALD001.SPS00101.I
BUA XBALD001PS002001 XBALD001 SPS00401 0 I 1
DAEG.DSNDBC.XBALD001.SPS00401.I
BUA XBALM001IT002001 XBALM001 SIT002 0 I 1
DAEG.DSNDBC.XBALM001.SIT002.I
BUA XBALM001PS002001 XBALM001 SPS003 0 I 1
DAEG.DSNDBC.XBALM001.SPS003.I
BUA XBALZ001IT002001 XBALZ001 SIT002 0 I 1
DAEG.DSNDBC.XBALZ001.SIT002.I
BUA XBALZ001PS001001 XBALZ001 SPS001 0 I 1
DAEG.DSNDBC.XBALZ001.SPS001.I
BUA XBALZ001PS002001 XBALZ001 SPS003 0 I 1
DAEG.DSNDBC.XBALZ001.SPS003.I
$***out 20080818 15:31:02
$***out 20080818 15:30:54
$***out 20080818 15:30:17
$***out 20080818 15:30:04
$***out 20080818 15:29:49
$***out 20080818 15:23:36
BUA XBALD001IT002001 XBALD001 SIT00301 0 I
BUA XBALD001PM001002 XBALD001 SPM00201 0 I
BUA XBALD001PS001001 XBALD001 SPS00101 0 I
BUA XBALD001PS002001 XBALD001 SPS00401 0 I
BUA XBALM001IT002001 XBALM001 SIT002 0 I
BUA XBALM001PS002001 XBALM001 SPS003 0 I
BUA XBALZ001IT002001 XBALZ001 SIT002 0 I
BUA XBALZ001PS001001 XBALZ001 SPS001 0 I
BUA XBALZ001PS002001 XBALZ001 SPS003 0 I
$***out 20080818 15:22:57
$***out 20080818 15:22:44
$***out 20080818 15:17:03
CR TB DB TS I
BUA XBALD001IT002001 XBALD001 SIT00301 I 0
BUA XBALD001PM001002 XBALD001 SPM00201 I 0
BUA XBALD001PS001001 XBALD001 SPS00101 I 0
BUA XBALD001PS002001 XBALD001 SPS00401 I 0
BUA XBALM001IT002001 XBALM001 SIT002 I 0
BUA XBALM001PS002001 XBALM001 SPS003 I 0
BUA XBALZ001IT002001 XBALZ001 SIT002 I 0
BUA XBALZ001PS001001 XBALZ001 SPS001 I 0
BUA XBALZ001PS002001 XBALZ001 SPS003 I 0
$***out 20080818 15:16:42
$***out 20080818 15:16:19
$***out 20080818 15:15:59
$***out 20080818 15:15:21
}¢--- A540769.WK.SQL(LOCALE) cre=2006-11-06 mod=2006-11-09-08.30.42 F540769 ----
set current locale lc_ctype = '' ;
select substr( current locale lc_ctype, 1, 12), current date
, upper('abcdef aäâà eéèêë iïî oöôò uüûù +ABÄÖÜ') "upper"
, translate(upper('abcäöü+ABÄÖÜ'), 'ÄÖÜ', 'äöü') "translate(upper"
from sysibm.sysdummy1;
set current locale lc_ctype = 'De_CH' ;
select substr( current locale lc_ctype, 1, 12), current date
, upper('abcdef aäâà eéèêë iïî oöôò uüûù +ABÄÖÜ') "upper"
, translate(upper('abcäöü+ABÄÖÜ'), 'ÄÖÜ', 'äöü') "translate(upper"
from sysibm.sysdummy1;
}¢--- A540769.WK.SQL(LOCKDROL) cre=2016-05-30 mod=2016-05-30-09.47.24 A540769 ---
//A540769L JOB (CP00,KE50),'DB2 REO', 00010000
// MSGCLASS=T,TIME=1440, 00020000
// NOTIFY=&SYSUID,REGION=0M, 00030000
// SCHENV=DB2,CLASS=M1 00040000
//JOBLIB DD DISP=SHR,DSN=PCL.U0000.P0.RZ4AKT.PERM.@008.LLB
//*
//S1 EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99, 00020001
// PARM='%WSH'
//SYSPROC DD DSN=A540769.WK.REXX,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD DUMMY
//WSH DD *
call sqlConnect
$*(
say time() 'locking table qz92crt.TQZ91WK970A1 in exclusive mode'
call sqlExec 'lock table qz92crt.TQZ91WK970A1 in exclusive mode'
say time() 'locked table qz92crt.TQZ91WK970A1 in exclusive mode'
$*)
call sqlExec "update qz92crt.TQZ91WK970A1 set WK970CHC = 'upd'", "*say"
say time() 'updated'
call sqlExec "drop table qz92crt.TQZ91WK970A1", "*say"
say time() 'dropped'
call sqlCommit
say time() 'committed'
call sleep 00
}¢--- A540769.WK.SQL(LOCKDROP) cre=2016-05-30 mod=2016-05-30-09.49.52 A540769 ---
-sta DB(QZ91A1S) SPACE(AWK970A) acc(ro)
lock table qz91crs.TQZ91WK970A1 in$exclusive mode
set current sqlid = 'S100447';
create table qz91crs.TQZ91WK970A1
( a char(19) ) in qz91a1S.awk970a
;
}¢--- A540769.WK.SQL(LOGEXACM) cre=2014-10-02 mod=2014-10-06-09.14.21 A540769 ---
with n as
(
select 'new' on
, (select count(*)
from oa1p.tqz065Abend o
where t.timestamp = o.timestamp
and t.rz = o.rz
and t.dbSys = o.dbSys
and t.ssid = o.ssid
and t.EVENT_TYPE = o.EVENT_TYPE
and t.CORRID_ID = o.CORRID_ID
and t.JOBNAME = o.JOBNAME
and t.CONN_ID = o.CONN_ID
and t.AUTHID = o.AUTHID
and t.ASID = o.ASID
and t.TCB = o.TCB
) othCnt
, t.* from A540769.tqz065Abend t
where rz = 'RZ2'
and timestamp between '2014-10-05-04.00.00'
and '2014-10-09-00.00.00'
union all
select 'old' on
, (select count(*)
from a540769.tqz065Abend o
where t.timestamp = o.timestamp
and t.rz = o.rz
and t.dbSys = o.dbSys
and t.ssid = o.ssid
and t.EVENT_TYPE = o.EVENT_TYPE
and t.CORRID_ID = o.CORRID_ID
and t.JOBNAME = o.JOBNAME
and t.CONN_ID = o.CONN_ID
and t.AUTHID = o.AUTHID
and t.ASID = o.ASID
and t.TCB = o.TCB
) othCnt
, t.* from oa1p.tqz065Abend t
where rz = 'RZ2'
and timestamp between '2014-10-05-04.00.00'
and '2014-10-09-00.00.00'
)
select min(on), max(on)
, othCnt
, timestamp
, rz
, dbSys
, ssid
, EVENT_TYPE
, CORRID_ID
, JOBNAME
, CONN_ID
, AUTHID
, ASID
, TCB
from n
-- where othCnt <> 1
group by othCnt
, timestamp
, rz
, dbSys
, ssid
, EVENT_TYPE
, CORRID_ID
, JOBNAME
, CONN_ID
, AUTHID
, ASID
, TCB
-- having min(on) = max(on)
order by timestamp, rz, dbSys, event_type, min(on)
}¢--- A540769.WK.SQL(LOGEXDDL) cre=2014-10-02 mod=2015-06-08-22.08.19 A540769 ---
SET CURRENT SQLID='S100447';
alter TABLE OA1P.TQZ060Timeout
alter column "TYPE" set data type CHARacter(40) ;-- SBCS DATA;
commit;
x;
------------------------------------------------------------------------
-- Database=dA540769 Stogroup=GSMS
-- Table space=dA540769.A060A
------------------------------------------------------------------------
--
xrop TABLESPACE dA540769.A060A;
drop TABLESPACE dA540769.A063A;
drop TABLESPACE dA540769.A064A;
drop TABLESPACE dA540769.A065A;
commit;
CREATE TABLESPACE A060A
IN dA540769
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
TRACKMOD YES
LOGGED
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID EBCDIC
DEFINE YES
MAXROWS 255;
--
--
------------------------------------------------------------------------
-- Table=A540769.TQZ060Timeout In dA540769.A060A
------------------------------------------------------------------------
--
CREATE TABLE A540769.TQZ060Timeout
(TIMESTAMP TIMESTAMP NOT NULL,
SSID CHAR(4) FOR SBCS DATA NOT NULL,
EVENT_TYPE CHAR(1) FOR SBCS DATA NOT NULL,
VICTIM_PLAN CHAR(10) FOR SBCS DATA NOT NULL,
VICTIM_CORR_ID CHAR(18) FOR SBCS DATA NOT NULL,
VICTIM_CONN_ID CHAR(18) FOR SBCS DATA NOT NULL,
HOLDER_PLAN CHAR(10) FOR SBCS DATA NOT NULL,
HOLDER_CORR_ID CHAR(18) FOR SBCS DATA NOT NULL,
HOLDER_CONN_ID CHAR(18) FOR SBCS DATA NOT NULL,
REASON_CODE CHAR(10) FOR SBCS DATA NOT NULL,
"TYPE" CHAR(25) FOR SBCS DATA NOT NULL,
NAME CHAR(80) FOR SBCS DATA NOT NULL,
rz char(3) FOR SBCS DATA NOT NULL with default '?',
dbSys char(4) FOR SBCS DATA NOT NULL with default '?',
loadDate date not null with default
)
IN dA540769.A060A
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE
APPEND NO ;
--
COMMENT ON TABLE A540769.TQZ060Timeout
IS 'DB2 DEADLOCK & TIMEOUT AUSWERTUNG - IN DIESER TABELLE SIND SÄMTL
ICHE DEADLOCKS & TIMEOUTS SÄMTLICHER DB2 SUBSYSTEME AUS DEM RZ1 ZUSAMMEN
GEFASST.';
CREATE INDEX A540769.IQZ060A1 --- es gibt halt noch duplicates
ON A540769.TQZ060Timeout --- weil wir luw-id nicht mitnehmen ...
(rz, timestamp, dbSys, ssid, event_type, victim_corr_id
,holder_corr_id, name
)
CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE YES
DEFER NO
COPY NO
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 0
PCTFREE 5
GBPCACHE CHANGED
;
--
------------------------------------------------------------------------
-- Database=dA540769 Stogroup=GSMS
-- Table space=dA540769.A063A
------------------------------------------------------------------------
--
CREATE TABLESPACE A063A
IN dA540769
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
TRACKMOD YES
LOGGED
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID EBCDIC
DEFINE YES
MAXROWS 255;
--
--
------------------------------------------------------------------------
-- Table=A540769.tqz063UOW In dA540769.A063A
------------------------------------------------------------------------
--
CREATE TABLE A540769.tqz063UOW
(TIMESTAMP TIMESTAMP NOT NULL,
SSID CHAR(4) FOR SBCS DATA NOT NULL,
EVENT_TYPE CHAR(1) FOR SBCS DATA NOT NULL,
PLAN_NAME CHAR(10) FOR SBCS DATA NOT NULL,
CORRID_ID CHAR(18) FOR SBCS DATA NOT NULL,
CONN_ID CHAR(18) FOR SBCS DATA NOT NULL,
AUTHID CHAR(10) FOR SBCS DATA NOT NULL,
LOGREC CHAR(10) FOR SBCS DATA NOT NULL,
rz char(3) FOR SBCS DATA NOT NULL with default '?',
dbSys char(4) FOR SBCS DATA NOT NULL with default '?',
loadDate date not null with default
)
IN dA540769.A063A
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE
APPEND NO ;
--
COMMENT ON TABLE A540769.tqz063UOW
IS 'DB2 UNCOMMITTED UOW AUSWERTUNG - IN DIESER TABELLE SIND SÄMTLICH
E UNCOMMITED UOWS SÄMTLICHER DB2 SUBSYSTEME AUS DEM RZ1 ZUSAMMENGEFASST.
';
CREATE INDEX A540769.IQZ063A1
ON A540769.TQZ063UOW
(rz, timestamp, dbSys, ssid, event_type, corrid_id, conn_id
,logrec
)
CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE YES
DEFER NO
COPY NO
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 0
PCTFREE 5
GBPCACHE CHANGED ;
--
------------------------------------------------------------------------
-- --
-- ADB2GEN: Generate DDL for Table space=A064A In Database dA540769 --
-- --
------------------------------------------------------------------------
--
------------------------------------------------------------------------
-- Database=dA540769 Stogroup=GSMS
-- Table space=dA540769.A064A
------------------------------------------------------------------------
--
CREATE TABLESPACE A064A
IN dA540769
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
TRACKMOD YES
LOGGED
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID EBCDIC
DEFINE YES
MAXROWS 255;
--
--
------------------------------------------------------------------------
-- Table=A540769.tqz064LockEscal In dA540769.A064A
------------------------------------------------------------------------
--
CREATE TABLE A540769.tqz064LockEscal
(TIMESTAMP TIMESTAMP NOT NULL,
SSID CHAR(4) FOR SBCS DATA NOT NULL,
EVENT_TYPE CHAR(1) FOR SBCS DATA NOT NULL,
PLAN_NAME CHAR(10) FOR SBCS DATA NOT NULL,
PACKAGE_NAME CHAR(18) FOR SBCS DATA NOT NULL,
COLLECTION_ID CHAR(18) FOR SBCS DATA NOT NULL,
CORRID_ID CHAR(18) FOR SBCS DATA NOT NULL,
CONN_ID CHAR(18) FOR SBCS DATA NOT NULL,
RESOURCE CHAR(80) FOR SBCS DATA NOT NULL,
LOCK_STATE CHAR(1) FOR SBCS DATA NOT NULL,
STATEMENT CHAR(10) FOR SBCS DATA NOT NULL,
rz char(3) FOR SBCS DATA NOT NULL with default '?',
dbSys char(4) FOR SBCS DATA NOT NULL with default '?',
loadDate date not null with default
)
IN dA540769.A064A
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE
APPEND NO ;
--
COMMENT ON TABLE A540769.tqz064LockEscal
IS 'DB2 LOCK ESCALATION AUSWERTUNG - IN DIESER TABELLE SIND SÄMTLICH
E LOCK ESCALATION SÄMTLICHER DB2 SUBSYSTEME AUS DEM RZ1 ZUSAMMENGEFASST.
';
CREATE INDEX A540769.IQZ064A1
ON A540769.TQZ064LockEscal
(rz, timestamp, dbSys, ssid, event_type, corrid_id, conn_id
,resource
)
CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE YES
DEFER NO
COPY NO
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 0
PCTFREE 5
GBPCACHE CHANGED ;
--
--
------------------------------------------------------------------------
-- --
-- ADB2GEN: Generate DDL for Table space=A065A In Database dA540769 --
-- --
------------------------------------------------------------------------
--
------------------------------------------------------------------------
-- Database=dA540769 Stogroup=GSMS
-- Table space=dA540769.A065A
------------------------------------------------------------------------
--
CREATE TABLESPACE A065A
IN dA540769
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
TRACKMOD YES
LOGGED
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID EBCDIC
DEFINE YES
MAXROWS 255;
--
--
------------------------------------------------------------------------
-- Table=A540769.tqz065Abend In dA540769.A065A
------------------------------------------------------------------------
--
CREATE TABLE A540769.tqz065Abend
(TIMESTAMP TIMESTAMP NOT NULL,
SSID CHAR(4) FOR SBCS DATA NOT NULL,
EVENT_TYPE CHAR(1) FOR SBCS DATA NOT NULL,
CORRID_ID CHAR(18) FOR SBCS DATA NOT NULL,
JOBNAME CHAR(18) FOR SBCS DATA NOT NULL,
CONN_ID CHAR(18) FOR SBCS DATA NOT NULL,
AUTHID CHAR(10) FOR SBCS DATA NOT NULL,
ASID CHAR(10) FOR SBCS DATA NOT NULL,
TCB CHAR(20) FOR SBCS DATA NOT NULL,
rz char(3) FOR SBCS DATA NOT NULL with default '?',
dbSys char(4) FOR SBCS DATA NOT NULL with default '?',
loadDate date not null with default
)
IN dA540769.A065A
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE
APPEND NO ;
--
COMMENT ON TABLE A540769.tqz065Abend
IS 'DB2 ABORMAL EOT AUSWERTUNG - IN DIESER TABELLE SIND SÄMTLICHE AB
NORMAL EOT SÄMTLICHER DB2 SUBSYSTEME AUS DEM RZ1 ZUSAMMENGEFASST.';
--
CREATE INDEX A540769.IQZ065A1
ON A540769.tqz065Abend
(rz, timestamp, dbSys, ssid, event_type, corrid_id, conn_id
,jobname
)
CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE YES
DEFER NO
COPY NO
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 0
PCTFREE 5
GBPCACHE CHANGED ;
COMMIT;
}¢--- A540769.WK.SQL(LOGEXESC) cre=2014-12-10 mod=2015-10-03-11.48.05 A540769 ---
set current application compatibility 'V11R1';
select rz, dbSys, loadDate, count(*)
from oa1p.tqz064LockEscal
where loadDate > current date - 3 days
group by rollup(loadDate, rz, dbSys)
order by rz, dbSys, loadDate desc
;X;
with s as
( select
date(trunc_timestamp(timestamp, 'mon')) tst
, e.*
from oa1p.tqz064lockEscal e
where rz = 'RZ2' and dbSys = 'DBOF'
and resource like '%DG01%'
and timestamp >= current timestamp - 2 year
)
select tst
, count(*) count
, sum(case when resource like '%127%' then 1 else 0 end) c127
, min(resource), max(resource)
, min(plan_name), max(plan_name)
, min(package_name), max(package_name)
, min(event_type), max(event_type)
, count(*)
, min(loadDate), tst
from s
group by tst
order by tst desc
;x;
select
count(*)
, left(resource, 16)
-- , trunc_timestamp(timestamp, 'mon')
from oa1p.TQZ064LOCKESCAL
where rz = 'RZ2' and dbSys = 'DVBP'
and timestamp > '2014-12-01-00.00.00'
-- group by trunc_timestamp(timestamp, 'mon')
group by left(resource, 16)
order by 1 desc
;x;
with s as
( select case when loadDate < '14.11.2014' then 1 else 0 end t1
, date(trunc_timestamp(timestamp, 'iw')) tst
, e.*
from oa1p.tqz064lockEscal e
where rz = 'RZ2' and dbSys = 'DBOF'
and resource like '%VV%'
and timestamp >= '2014-07-01-00.00.00'
)
select tst
, count(*) count
, min(resource), max(resource)
, min(plan_name), max(plan_name)
, min(package_name), max(package_name)
, min(event_type), max(event_type)
, count(*)
, min(loadDate), tst
from s
group by tst
order by tst desc
;x;
with s as
( select case when loadDate <= '03.10.2014' then 0 else 1 end t1
, trunc_timestamp(timestamp, 'dd') tst
, t.*
from oa1p.tqz064lockEscal t
where rz = 'RR2' and dbSys = 'DBOF'
and resource like '%VV%'
)
select
count(*)
, min(loadDate), tst
, min(resource), max(resource)
, min(plan_name), max(plan_name)
, min(package_name), max(package_name)
, min(event_type), max(event_type)
from s
group by t1, tst
order by t1 desc, tst desc
;x;
select sum(case when event_type = 'D' then 1 else 0 end) deadlock
, sum(case when event_type = 'T' then 1 else 0 end) timeout
, count(*)
, trunc_timestamp(timestamp, 'mon')
from oa1p.tqz060timeout
where rz = 'RZ2' and dbSys = 'DBOF'
and name like '%WB%'
and timestamp > current timestamp - 1 year
group by trunc_timestamp(timestamp, 'mon')
order by 4 desc
;x;
select *
from oa1p.tqz064LockEscal
where rz = 'RZ2' and dbSys = 'DBOF'
and resource like '%WB%'
and timestamp > currentDA540769mp - 1 month
order by timestamp desc
;x;
select *
from oa1p.tqz060timeout
where rz = 'RZ2' and dbSys = 'DBOF'
and name like '%WB%'
and timestamp > current timestamp - 1 month
order by timestamp desc
}¢--- A540769.WK.SQL(LOGEXLCM) cre=2014-10-02 mod=2014-10-06-09.13.11 A540769 ---
with n as
(
select 'new' on
, (select count(*)
from oa1p.tqz064LockEscal o
where t.timestamp = o.timestamp
and t.rz = o.rz
and t.dbSys = o.dbSys
and t.ssid = o.ssid
and t.EVENT_TYPE = o.EVENT_TYPE
and t.PLAN_NAME = o.PLAN_NAME
and t.PACKAGE_NAME = o.PACKAGE_NAME
and t.COLLECTION_ID = o.COLLECTION_ID
and t.CORRID_ID = o.CORRID_ID
and t.CONN_ID = o.CONN_ID
and t.RESOURCE = o.RESOURCE
and t.LOCK_STATE = o.LOCK_STATE
and t.STATEMENT = o.STATEMENT
) othCnt
, t.* from A540769.tqz064LockEscal t
where rz = 'RZ2'
and timestamp between '2014-10-05-04.00.00'
and '2014-10-09-00.00.00'
union all
select 'old' on
, (select count(*)
from a540769.tqz064LockEscal o
where t.timestamp = o.timestamp
and t.rz = o.rz
and t.dbSys = o.dbSys
and t.ssid = o.ssid
and t.EVENT_TYPE = o.EVENT_TYPE
and t.PLAN_NAME = o.PLAN_NAME
and t.PACKAGE_NAME = o.PACKAGE_NAME
and t.COLLECTION_ID = o.COLLECTION_ID
and t.CORRID_ID = o.CORRID_ID
and t.CONN_ID = o.CONN_ID
and t.RESOURCE = o.RESOURCE
and t.LOCK_STATE = o.LOCK_STATE
and t.STATEMENT = o.STATEMENT
) othCnt
, t.* from oa1p.tqz064LockEscal t
where rz = 'RZ2'
and timestamp between '2014-10-05-04.00.00'
and '2014-10-09-00.00.00'
)
select othCnt, min(on), max(on)
, othCnt
, timestamp
, rz
, dbSys
, ssid
, EVENT_TYPE
, PLAN_NAME
, PACKAGE_NAME
, COLLECTION_ID
, CORRID_ID
, CONN_ID
, RESOURCE
, LOCK_STATE
, STATEMENT
from n
-- where othCnt <> 1
group by othCnt
, timestamp
, rz
, dbSys
, ssid
, EVENT_TYPE
, PLAN_NAME
, PACKAGE_NAME
, COLLECTION_ID
, CORRID_ID
, CONN_ID
, RESOURCE
, LOCK_STATE
, STATEMENT
-- having min(on) = max(on)
order by timestamp, rz, dbSys, event_type, min(on)
;
select count(*) from A540769.tqz064LockEscal ;
select * from A540769.tqz064LockEscal
where timestamp = '2014-09-29-06.00.51';
select * from oa1p.tqz064LockEscal
where timestamp = '2014-09-29-06.00.51';
}¢--- A540769.WK.SQL(LOGEXLOA) cre=2014-10-02 mod=2014-10-03-16.25.14 A540769 ---
$#@
m.dsl.1 = DSN.ABLF.LOGE2.RZ2.TADM60A1.D14276.T160821
m.dsl.2 = DSN.ABLF.LOGE2.RZ2.TADM63A1.D14276.T160821
m.dsl.3 = DSN.ABLF.LOGE2.RZ2.TADM64A1.D14276.T160821
m.dsl.4 = DSN.ABLF.LOGE2.RZ2.TADM65A1.D14276.T160822
m.dsl.0 = 4
$=rz=RZ2
$=ab=logE2
$=now =- f('%t s')
if $rz = RZ4 then
$=paPr = DSN.ABLF.LOGE2
else if pos($rz, RZ2 RR2 RQ2) > 0 then
$=paPr = DBOF.DBAA.ABLF.LOGE2
else
$=paPr = DE0G.DBAA.ABLF.LOGE2
$<>
$>. fEdit()
$@=/job/
//QMW8300P JOB (CP00,KE50),'DB2 MVEXT',
// MSGCLASS=T,TIME=1440,
// NOTIFY=&SYSUID,REGION=0M,SCHENV=DB2
//*MAIN CLASS=P2
//*
//* db2 log Extract ablauf $ab from $rz
//* generated by abub at $now
//*
$do dx=1 to m.dsl.0 $@/table/
$** .DE0G.TADM60A1.D14107.T080224
$=iDsn =- strip(m.dsl.dx)
px = pos('.'$rz'.', $iDsn)
d1 = substr($iDsn, px + 5)
tb = left(d1, 8)
if px < 1 | translate(substr(d1, 9),
, 000000000, 123456789) \== '.D00000.T000000' then $@¢
$$ //* bad dsn $iDsn
iterate
$! else if tb == 'TADM60A1' then $@¢
$= tb = TimeO
$= crTb = OA1P.TQZ060TIMEOUT
m.doneTimeO = 1
$! else if tb == 'TADM63A1' then $@¢
$= tb = UOW
$= crTb = OA1P.TQZ063UOW
m.doneUOW = 1
$! else if tb == 'TADM64A1' then $@¢
$= tb = LockE
$= crTb = OA1P.TQZ064LOCKESCAL
m.doneLockE = 1
$! else if tb == 'TADM65A1' then $@¢
$= tb = Abend
$= crTb = OA1P.TQZ065ABEND
m.doneAbend = 1
$! else $@¢
$$- '//* bad tb' tb 'in dsn' $iDsn
iterate
$!
$$- '//* dsn' $iDsn
$$- '//* tb' tb '==>' $tb '==>' $crTb
$=iDsn=- m.dsl.dx
if $rz = sysvar(sysnode) then
$= csm = $''
else
$= csm = SUBSYS=(CSM,'SYSTEM=$rz'),
$@=¢
//* ------ load $rz $iDsn
//L$dx EXEC PGM=DSNUTILB,
// PARM=(DP4G,'LOA#DELIMITER')
//DSSPRINT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//UTPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSTEMPL DD DSN=DP4G.DBAA.LISTDEF(TEMPL),DISP=SHR
//IN DD DISP=SHR,$csm
// DSN=$iDsn
//SYSIN DD *
EXEC SQL
delete from $crTb WHERE RZ = '?'
ENDEXEC
LOAD DATA RESUME YES INDDN IN LOG YES
SHRLEVEL CHANGE
WORKDDN(TSYUTS,TSOUTS)
FORMAT DELIMITED COLDEL ','
INTO TABLE $crTb
(
$@%¢colsNoRz $tb $!
)
EXEC SQL
delete from $crTb n
where rz = '?'
and exists (select 1 from $crTb a
where rz = '$rz' -- for pta, beta has only 3 months
and loadDate > current date - 100 days
and a.timestamp = n.timestamp
and a.dbSys = n.dbSys and a.ssid = n.ssid
and a.event_type = n.event_type
$!
if $tb == 'TimeO' then $@=¢
and a.victim_corr_id = n.victim_corr_id )
-- and a.holder_corr_id = n.holder_corr_id
-- and a.name = n.name)
$! else if $tb == 'UOW' then $@=¢
and a.plan_name = n.plan_name
and a.corrid_id = n.corrid_ID )
-- and a.logRec = n.logRec)
$! else if $tb == 'LockE' then $@=¢
and a.plan_name = n.plan_name
and a.corrid_id = n.corrid_ID )
-- and a.conn_id = n.conn_id
-- and a.package_name = n.package_name)
$! else if $tb == 'Abend' then $@=¢
and a.jobname = n.jobname
and a.corrid_id = n.corrid_ID )
-- and a.conn_id = n.conn_id
-- and a.authid = n.authid )
$! else $@=¢
implement table $crTb in DSN.ABUB.A.SKELS(QMW83)
$!
$@=¢
ENDEXEC
EXEC SQL
update $crTb set rz = '$rz'
where rz = '?'
ENDEXEC
// IF L$dx.RUN AND (L$dx.RC = 0 OR L$dx.RC = 4) THEN
//D$dx EXEC PGM=IEFBR14 $*(
//DEL DD DISP=(OLD,DELETE),$csm
// DSN=$iDsn $*)
// ENDIF
$!
$/table/
$@¢ if m.doneTimeO == 1 & m.doneUOW == 1 & m.doneLockE == 1 ,
& m.doneAbend == 1 then $@=¢
// IF RC <= 4 AND NOT ABEND THEN
//PARMCOPY EXEC PGM=CSMUTIL,PARM='CSM,COPYREPLACE'
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSN=$paPr.PARMNEW,
// ${csm}DISP=SHR
//SYSUT2 DD DSN=$paPr.PARMOLD,
// ${csm}DISP=(MOD,CATLG),
// MGMTCLAS=COM#A092,DCB=(RECFM=FB,DSORG=PS,LRECL=(80)),
// SPACE=(TRK,(1,1))
// ENDIF
$! else $@=¢
//* parm wird nicht kopiert da nicht alle Loads
//* doneTimeO $-¢m.doneTimeO $!
//* doneUOW $-¢m.doneUOW $!
//* doneLockE $-¢m.doneLockE $!
//* doneAbend $-¢m.doneAbend $!
//* paPr $paPr
$!
$!
$/job/
$proc $@/colsNoRz/
parse arg , tb
$@=¢
TIMESTAMP
, DBSYS
, SSID
, EVENT_TYPE
$! if tb == 'TimeO' then $@=¢
, VICTIM_PLAN
, VICTIM_CORR_ID
, VICTIM_CONN_ID
, HOLDER_PLAN
, HOLDER_CORR_ID
, HOLDER_CONN_ID
, REASON_CODE
, TYPE
, NAME
$! else if tb == 'UOW' then $@=¢
, PLAN_NAME
, CORRID_ID
, CONN_ID
, AUTHID
, LOGREC
$! else if tb == 'LockE' then $@=¢
, PLAN_NAME
, PACKAGE_NAME
, COLLECTION_ID
, CORRID_ID
, CONN_ID
, RESOURCE
, LOCK_STATE
, STATEMENT
$! else if tb == 'Abend' then $@=¢
, CORRID_ID
, JOBNAME
, CONN_ID
, AUTHID
, ASID
, TCB
$! else
call err 'bad tb' tb
$/colsNoRz/
}¢--- A540769.WK.SQL(LOGEXNN) cre=2015-10-02 mod=2015-10-02-21.54.03 A540769 ---
select *
from OA1P.TQZ060TIMEOUT b
where (rz, timestamp, dbSys, ssid
, event_Type, victim_corr_id, holder_corr_id
, victim_conn_id, holder_conn_id)
in ( select rz, timestamp, dbSys, ssid
, event_Type, victim_corr_id, holder_corr_id
, victim_conn_id, holder_conn_id
from OA1P.TQZ060TIMEOUT n
where rz = '?' and name <> ''
and victim_corr_id <> ''
and exists
(select 1
from OA1P.TQZ060TIMEOUT a
where a.rz = 'RZ2'
and a.timestamp = n.timestamp
and a.dbSys = n.dbSys and a.ssid = n.ssid
and a.event_type = n.event_type
and a.victim_corr_id = n.victim_corr_id
and a.victim_conn_id = n.victim_conn_id
and a.holder_corr_id = n.holder_corr_id
and a.holder_conn_id = n.holder_conn_id
and a.name = ''
))
order by rz, timestamp, dbSys, ssid
, event_Type, victim_corr_id, holder_corr_id
, victim_conn_id, holder_conn_id
;
select *
from OA1P.TQZ060TIMEOUT n
where rz = '?' and name <> ''
and victim_corr_id <> ''
and exists
(select 1
from OA1P.TQZ060TIMEOUT a
where a.rz = 'RZ2'
and a.timestamp = n.timestamp
and a.dbSys = n.dbSys and a.ssid = n.ssid
and a.event_type = n.event_type
and a.victim_corr_id = n.victim_corr_id
and a.victim_conn_id = n.victim_conn_id
and a.holder_corr_id = n.holder_corr_id
and a.holder_conn_id = n.holder_conn_id
and a.name = ''
)
order by rz, timestamp, dbSys, ssid
, event_Type, victim_corr_id, holder_corr_id
, victim_conn_id, holder_conn_id
;
select *
from OA1P.TQZ060TIMEOUT n
where rz = '?' and timestamp = '2015-10-02-01.36.00'
and dbSys = 'DBOF' and ssid = 'DOF5'
order by rz, timestamp, dbSys, ssid
, event_Type, victim_corr_id, holder_corr_id
, victim_conn_id, holder_conn_id
;
select *
from OA1P.TQZ060TIMEOUT n
where rz = 'RZ2' and timestamp = '2015-10-02-01.36.00'
and dbSys = 'DBOF' and ssid = 'DOF5'
order by rz, timestamp, dbSys, ssid
, event_Type, victim_corr_id, holder_corr_id
, victim_conn_id, holder_conn_id
;x;
and exists (select 1 from $crTb a
where rz = '$rz' -- for pta, beta has only 3 months
and loadDate > current date - 100 days
and a.timestamp = n.timestamp
and a.dbSys = n.dbSys and a.ssid = n.ssid
and a.event_type = n.event_type
$tb == 'TimeO' then $@=¢
and a.victim_corr_id = n.victim_corr_id )
-- and a.holder_corr_id = n.holder_corr_id
}¢--- A540769.WK.SQL(LOGEXTCM) cre=2014-10-02 mod=2014-10-06-09.10.15 A540769 ---
with n as
(
select 'new' on
, (select count(*)
from oa1p.tqz060Timeout o
where t.timestamp = o.timestamp
and t.rz = o.rz
and t.dbSys = o.dbSys
and t.ssid = o.ssid
and t.EVENT_TYPE = o.EVENT_TYPE
and t.VICTIM_CORR_ID = o.VICTIM_CORR_ID
and t.HOLDER_CORR_ID = o.HOLDER_CORR_ID
and t.NAME = o.NAME
-- or strip(t.name) || ' 00'
-- = left(o.name, length(strip(t.name))+3) )
) othCnt
, t.* from A540769.tqz060Timeout t
where rz = 'RZ2'
and timestamp between '2014-10-06-04.00.00'
and '2014-10-09-05.00.00'
union all
select 'old' on
, (select count(*)
from a540769.tqz060Timeout o
where t.timestamp = o.timestamp
and t.rz = o.rz
and t.dbSys = o.dbSys
and t.ssid = o.ssid
and t.EVENT_TYPE = o.EVENT_TYPE
and t.VICTIM_CORR_ID = o.VICTIM_CORR_ID
and t.HOLDER_CORR_ID = o.HOLDER_CORR_ID
and t.NAME = o.NAME
-- or strip(o.name) || ' 00'
-- = left(t.name, length(strip(o.name))+3) )
) othCnt
, t.* from oa1p.tqz060Timeout t
where rz = 'RZ2'
and timestamp between '2014-10-05-04.00.00'
and '2014-10-09-05.00.00'
)
select min(on), max(on)
, othCnt
, timestamp
, rz
, dbSys
, ssid
, EVENT_TYPE
, VICTIM_CORR_ID
, HOLDER_CORR_ID
, NAME
from n
where othCnt <> 1
group by othCnt
, timestamp
, rz
, dbSys
, ssid
, EVENT_TYPE
, VICTIM_CORR_ID
, HOLDER_CORR_ID
, NAME
having min(on) = max(on)
order by timestamp, rz, dbSys, event_type, min(on)
;x;
select * from n
where othCnt <> 1
order by timestamp, rz, dbSys, event_type, on
}¢--- A540769.WK.SQL(LOGEXTIM) cre=2014-10-21 mod=2015-07-07-09.49.20 A540769 ---
with s as
(
select
case when timestamp between '2015-07-05-09.23.00'
and '2015-07-05-09.29.00' then 1
when timestamp between '2015-06-28-09.12.00'
and '2015-06-28-09.19.00' then 2
when timestamp between '2015-06-21-09.00.00'
and '2015-06-21-09.04.00' then 3
else 0 end g
, t.*
from oa1p.tqz060timeout t
where rz = 'RZ2' and dbSys = 'DBOF'
and timestamp between '2015-06-21-09.00.00'
and '2015-06-21-09.04.00'
)
select count(*), holder_corr_id
, min(timestamp), max(timestamp)
, min(name), max(name)
from s
group by holder_corr_id
order by 1 desc
;X;
with s as
(
select trunc_timestamp(timestamp, 'dd') tst
, case when timestamp between '2015-07-05-09.23.00'
and '2015-07-05-09.29.00' then 1
when timestamp between '2015-06-28-09.12.00'
and '2015-06-28-09.19.00' then 2
when timestamp between '2015-06-21-09.00.00'
and '2015-06-21-09.04.00' then 3
else 0 end g
, t.*
from oa1p.tqz060timeout t
where rz = 'RZ2' and dbSys = 'DBOF'
-- and name like '%NZ01A1P%'
-- and name like '%NZ01A1P%A200A%'
-- and (victim_plan like 'WI5611%'
-- or holder_plan like 'WI5611%')
and timestamp between '2015-06-21-00.00.00'
and '2015-07-06-00.00.00'
)
select g -- date(min(timestamp)) --- , date(max(timestamp))
, sum(case when event_type = 'D' then 1 else 0 end) deadlock
, sum(case when event_type = 'T' then 1 else 0 end) timeout
, count(*)
, min(timestamp), max(timestamp)
, min(name), max(name)
-- , min(plan_name), max(plan_name)
-- , min(package_name), max(package_name)
, min(event_type), max(event_type)
, min(loadDate), max(loadDate) tst
from s
group by tst, g
order by tst desc, g
;x;
select int(count(*)) total
, int(sum(case when event_type = 'D' then 1 else 0 end)) deadlo
, int(sum(case when event_type = 'T' then 1 else 0 end))timeout
, substr(type, 1, 10) type
, left(name, 16)
from oa1p.tqz060timeout t
where rz = 'RZ2' and dbSys = 'DBOF'
and name like '%VV%'
and timestamp >= '2015-05-01-00.00.00'
group by type, left(name, 16)
order by 1 desc
;x;
with s as
( select case when loadDate < '14.11.2014' then 1 else 0 end t1
, trunc_timestamp(timestamp, 'iw') tst
, t.*
from oa1p.tqz060timeout t
where rz = 'RZ2' and dbSys = 'DBOF'
and name like '%VV%'
--and name like '%VDPS230%'
and timestamp >= '2014-11-01-00.00.00'
)
select date(tst)
, sum(case when event_type = 'D' then 1 else 0 end) deadlock
, sum(case when event_type = 'T' then 1 else 0 end) timeout
, min(name), max(name)
-- , min(plan_name), max(plan_name)
-- , min(package_name), max(package_name)
, min(event_type), max(event_type)
, count(*)
, min(loadDate), tst
from s
group by tst
order by tst desc
;x;
with s as
( select case when loadDate <= '03.10.2014' then 0 else 1 end t1
, trunc_timestamp(timestamp, 'dd') tst
, t.*
from oa1p.tqz064lockEscal t
where rz = 'RZ2' and dbSys = 'DBOF'
and resource like '%VV%'
)
select
count(*)
, min(loadDate), tst
, min(resource), max(resource)
, min(plan_name), max(plan_name)
, min(package_name), max(package_name)
, min(event_type), max(event_type)
from s
group by t1, tst
order by t1 desc, tst desc
;x;
select sum(case when event_type = 'D' then 1 else 0 end) deadlock
, sum(case when event_type = 'T' then 1 else 0 end) timeout
, count(*)
, trunc_timestamp(timestamp, 'mon')
from oa1p.tqz060timeout
where rz = 'RZ2' and dbSys = 'DBOF'
and name like '%WB%'
and timestamp > current timestamp - 1 year
group by trunc_timestamp(timestamp, 'mon')
order by 4 desc
;x;
select *
from oa1p.tqz064LockEscal
where rz = 'RZ2' and dbSys = 'DBOF'
and resource like '%WB%'
and timestamp > currentDA540769mp - 1 month
order by timestamp desc
;x;
select *
from oa1p.tqz060timeout
where rz = 'RZ2' and dbSys = 'DBOF'
and name like '%WB%'
and timestamp > current timestamp - 1 month
order by timestamp desc
}¢--- A540769.WK.SQL(LOGEXTO) cre=2014-10-31 mod=2015-10-03-11.10.43 A540769 ---
set current application compatibility 'V11R1';
select rz, dbSys, loadDate, count(*)
from oa1p.tqz060timeout
where loadDate > current date - 10 days
group by rollup(loadDate, rz, dbSys)
order by rz, dbSys, loadDate desc
;X;
select ' ' || reason_code
, sum(case when event_type = 'D' then 1 else 0 end) d
, sum(case when event_type = 'T' then 1 else 0 end) t
, sum(case when event_type = '' then 1 else 0 end) sp
, sum(case when event_type not in ('D', 'T', '')
then 1 else 0 end) oth
, count(*) cnt
from oa1p.tqz060Timeout t
group by reason_code
;x;
select count(*), event_type, reason_code
from oa1p.tqz060Timeout t
group by event_type, reason_code
;x;
where rz = 'RZ2' and dbSys = 'DBOF'
and victim_plan like 'DSNUTI%'
-- and name like '%SYSUTI%'
order by timestamp desc
fetch first 100 rows only
;x;
with g as
(
select count(*) cnt
, date(min(timestamp)) d
, sum(case when timestamp > current Timestamp - 1 month
then 1 else 0 end) cMo
, substr(name, 1, 15) n17
, min(name) rMin, max(name) rMax
from oa1p.tqz060Timeout t
where rz = 'RZ2' and dbSys = 'DBOF'
and (
holder_plan like 'RV5650%'
or victim_plan like 'RV5650%'
-- or plan_name like '%serv%' or package_name like '%serv%'
or name like 'RV01A1P .A200A%'
)
and timestamp > current timestamp - 1 year
group by substr(name, 1, 15), trunc_timestamp(timestamp, 'mon')
order by 2, 3
)
, t as
(
select sum(cnt) cnt, sum(cMo) cMo, n17
from g
group by n17
)
select g.*
from g join t on g.n17 = t.n17
order by cMo desc, cnt desc, n17
;x;L
with g as
(
select count(*) cnt
, sum(case when timestamp > current Timestamp - 1 month
then 1 else 0 end) cMo
, substr(name, 1, 17) n17
, type
, min(name) rMin, max(name) rMax
from oa1p.tqz060timeout t
where rz = 'RZ2' and dbSys = 'DBOF'
and name like '%VV%'
and timestamp > current timestamp - 1 year
group by substr(name, 1, 17), type
order by 2, 3
)
, s as
(
select sum(cnt) cnt, sum(cMo) cMo, n17
from g
group by n17
)
, t as
(
select cnt, cMo
, row_number() over(order by cnt desc) rCn
, row_number() over(order by cMo desc) rMo
, n17
from s
)
select g.*, rCn, rMo
from g join t on g.n17 = t.n17
order by cMo desc, cnt desc, n17, type
;x;L
select sum(case when event_type = 'D' then 1 else 0 end) deadlock
, sum(case when event_type = 'T' then 1 else 0 end) timeout
, min(name), max(name)
, min(plan_name), max(plan_name)
, min(package_name), max(package_name)
, min(event_type), max(event_type)
, count(*)
, min(loadDate), tst
from s
where rz = 'RR2' and dbSys = 'DBOF'
and name like '%VV%'
and timestamp > current timestamp - 1 year
group by t1, tst
order by t1 desc, tst desc
;x;
with s as
( select case when loadDate <= '03.10.2014' then 0 else 1 end t1
, trunc_timestamp(timestamp, 'dd') tst
, t.*
from oa1p.tqz060timeout t
)
select sum(case when event_type = 'D' then 1 else 0 end) deadlock
, sum(case when event_type = 'T' then 1 else 0 end) timeout
, min(name), max(name)
, min(plan_name), max(plan_name)
, min(package_name), max(package_name)
, min(event_type), max(event_type)
, count(*)
, min(loadDate), tst
from s
where rz = 'RR2' and dbSys = 'DBOF'
and name like '%VV%'
and timestamp > current timestamp - 1 year
group by t1, tst
order by t1 desc, tst desc
;x;
with s as
( select case when loadDate <= '03.10.2014' then 0 else 1 end t1
, trunc_timestamp(timestamp, 'dd') tst
, t.*
from oa1p.tqz064lockEscal t
where rz = 'RR2' and dbSys = 'DBOF'
and resource like '%VV%'
)
select
count(*)
, min(loadDate), tst
, min(resource), max(resource)
, min(plan_name), max(plan_name)
, min(package_name), max(package_name)
, min(event_type), max(event_type)
from s
group by t1, tst
order by t1 desc, tst desc
;x;
select sum(case when event_type = 'D' then 1 else 0 end) deadlock
, sum(case when event_type = 'T' then 1 else 0 end) timeout
, count(*)
, trunc_timestamp(timestamp, 'mon')
from oa1p.tqz060timeout
where rz = 'RZ2' and dbSys = 'DBOF'
and name like '%WB%'
and timestamp > current timestamp - 1 year
group by trunc_timestamp(timestamp, 'mon')
order by 4 desc
;x;
select *
from oa1p.tqz064LockEscal
where rz = 'RZ2' and dbSys = 'DBOF'
and resource like '%WB%'
and timestamp > currentDA540769mp - 1 month
order by timestamp desc
;x;
select *
from oa1p.tqz060timeout
where rz = 'RZ2' and dbSys = 'DBOF'
and name like '%WB%'
and timestamp > current timestamp - 1 month
order by timestamp desc
}¢--- A540769.WK.SQL(LOGEXUCM) cre=2014-10-02 mod=2014-10-06-09.11.56 A540769 ---
with n as
(
select 'new' on
, (select count(*)
from oa1p.tqz063Uow o
where t.timestamp = o.timestamp
and t.rz = o.rz
and t.dbSys = o.dbSys
and t.ssid = o.ssid
and t.EVENT_TYPE = o.EVENT_TYPE
and t.PLAN_NAME = o.PLAN_NAME
and t.CORRID_ID = o.CORRID_ID
and t.CONN_ID = o.CONN_ID
and t.AUTHID = o.AUTHID
and t.LOGREC = o.LOGREC
) othCnt
, t.* from A540769.tqz063Uow t
where rz = 'RZ2'
and timestamp between '2014-10-05-04.00.00'
and '2014-10-09-00.00.00'
union all
select 'old' on
, (select count(*)
from a540769.tqz063Uow o
where t.timestamp = o.timestamp
and t.rz = o.rz
and t.dbSys = o.dbSys
and t.ssid = o.ssid
and t.EVENT_TYPE = o.EVENT_TYPE
and t.PLAN_NAME = o.PLAN_NAME
and t.CORRID_ID = o.CORRID_ID
and t.CONN_ID = o.CONN_ID
and t.AUTHID = o.AUTHID
and t.LOGREC = o.LOGREC
) othCnt
, t.* from oa1p.tqz063Uow t
where rz = 'RZ2'
and timestamp between '2014-10-05-04.00.00'
and '2014-10-09-00.00.00'
)
select * from n
-- where othCnt <> 1
order by timestamp, rz, dbSys, event_type, on
}¢--- A540769.WK.SQL(MAPTAB) cre=2015-02-02 mod=2015-02-02-15.17.40 A540769 ----
$#@
call sqlconnect dx0g
m.sqlRetOk = m.sqlRetOk '-601'
$;
call sqlstmts
$<=¢
SET CURRENT SQLID = 'S100447';
CREATE DATABASE DB2MAPP
BUFFERPOOL BP2
INDEXBP BP1
STOGROUP GSMS
CCSID EBCDIC;
$do ix=1 to 10 $@=¢
$=ix=- right(ix, 2, 0)
CREATE TABLESPACE MAPTAB$ix
IN DB2MAPP
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
BUFFERPOOL BP2
CLOSE YES
LOCKMAX SYSTEM
SEGSIZE 64
FREEPAGE 0
PCTFREE 5
GBPCACHE CHANGED
DEFINE NO
LOGGED
TRACKMOD YES
COMPRESS YES
LOCKSIZE ANY
MAXROWS 255
CCSID EBCDIC;
CREATE TABLE S100447.MAPTAB$ix
("TYPE" CHARACTER(1) FOR SBCS DATA
NOT NULL
,SOURCE_RID CHARACTER(5) FOR SBCS DATA
NOT NULL
,TARGET_XRID CHARACTER(9) FOR SBCS DATA
NOT NULL
WITH DEFAULT
,LRSN CHARACTER(6) FOR SBCS DATA
NOT NULL
)
IN DB2MAPP.MAPTAB$ix
APPEND NO
NOT VOLATILE CARDINALITY
DATA CAPTURE CHANGES
AUDIT NONE
CCSID EBCDIC;
CREATE UNIQUE INDEX S100447.MAPTAB${ix}_IX
ON S100447.MAPTAB$ix
(SOURCE_RID ASC
,"TYPE" ASC
,TARGET_XRID ASC
,LRSN ASC
)
NOT CLUSTER
DEFINE YES
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
DEFER NO
COPY NO
USING STOGROUP GSMS
PRIQTY -1
SECQTY -1
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
PIECESIZE 2097152K;
commit;
$!
$!
}¢--- A540769.WK.SQL(MAT) cre=2006-08-10 mod=2006-08-10-18.01.53 F540769 -------
lock table oa1a.tit001a1 in exclusive mode
}¢--- A540769.WK.SQL(MATUSE) cre=2007-05-14 mod=2007-05-14-12.16.08 F540769 ----
set current refresh age = any;
select current refresh age from sysibm.sysdummy1;
SELECT NI920001
, NI920002
, NI920003
, COUNT(*) COUNT
, SUM(CASE WHEN NI920005 ='U' THEN 1 ELSE 0 END) URVRS
, SUM(CASE WHEN NI920005 ='S' THEN 1 ELSE 0 END) SRVS
, SUM(CASE WHEN NI920005 ='E' THEN 1 ELSE 0 END) ERRS
, SUM(CASE WHEN NI920005 ='W' THEN 1 ELSE 0 END) WARNS
, SUM(CASE WHEN NI920005 ='I' THEN 1 ELSE 0 END) INFOS
FROM gdb0237.TNI920A101A
WHERE NI920001='20070511'
GROUP BY NI920001
, NI920002
, NI920003
;
}¢--- A540769.WK.SQL(MATUSENO) cre=2007-05-14 mod=2007-05-14-12.16.38 F540769 ---
select current refresh age from sysibm.sysdummy1;
SELECT NI920001
, NI920002
, NI920003
, COUNT(*) COUNT
, SUM(CASE WHEN NI920005 ='U' THEN 1 ELSE 0 END) URVRS
, SUM(CASE WHEN NI920005 ='S' THEN 1 ELSE 0 END) SRVS
, SUM(CASE WHEN NI920005 ='E' THEN 1 ELSE 0 END) ERRS
, SUM(CASE WHEN NI920005 ='W' THEN 1 ELSE 0 END) WARNS
, SUM(CASE WHEN NI920005 ='I' THEN 1 ELSE 0 END) INFOS
FROM gdb0237.TNI920A101A
WHERE NI920001='20070511'
GROUP BY NI920001
, NI920002
, NI920003
;
}¢--- A540769.WK.SQL(METZ) cre=2006-06-12 mod=2006-06-12-15.12.34 F540769 ------
SET CURRENT SQLID = 'S100447';
CREATE ALIAS VDPS.XPS_VLIID001_V03 FOR VDPS2.XPS_VLIID001_V03;
}¢--- A540769.WK.SQL(MF) cre=2012-05-23 mod=2012-05-23-12.45.49 A540769 --------
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
set current schema = oa1t;
explain plan set queryno = 3 for
SELECT DISTINCT (A.ID_MITTELFLUSS),A.BUID_KUNDE,A.CIFNUMMER_KUNDE,
a.KUNDEN_BEZIEHUNGNR,a.AUFTRAGSNUMMER,a.BEWEGUNGSART_Depot,
A.VALOR,A.VALOREN_SEQUENZNR,A.MF_PRODUKT,A.BUCHUNGSDATUM,A.BUWHR,
a .ZU_ABFLUSS,a.VOLUMEN_NOM_STCK,a.LIFE_CYCLE_STATUs,
B.POLICEN_NR
FROM VMF150A1V A LEFT OUTER JOIN VMF401A1V B
ON A.ID_MITTELFLUSS = b.UUID
where a.LIFE_CYCLE_STATUS IN (0, 90)
AND A.ERSTELLUNGSTIMSTMP BETWEEN '2012-03-23-00.00.00.000000'
and '2012-05-23-23.59.59.999999' and a.STORNO ^= 'S'
AND A.BETRAG_BUWHR = 0 WITH UR
;
set current schema = A540769;
select * from plan_view1
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by --collid, progName, applName, explain_time,
queryNo, qBlockNo, planno,
stage, predNo
with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(MFDEL) cre=2012-07-12 mod=2012-07-12-14.20.20 A540769 -----
select *
from oa1t.tmf202a1
where buid = '0000'
and ( selcd = 'MF8320 CID-RIGHTS'
or selcd = 'MF8320 SF-RIGHTS' )
and letzteMut = (
select timestamp(TEV_TIMESTAMP)
from oa1t.vmf202a1
)
}¢--- A540769.WK.SQL(MFHISV0) cre=2014-10-17 mod=2014-10-17-14.24.53 A540769 ---
declare global temporary table session.key
( MF150001 char(16)
) ccsid ebcdic on commit delete rows
;
select current timestamp , 'start' from sysibm.sysDummy1
;
insert into session.key
select mf150001
from oa1p.tmf150a1
where mf150013 between '23.09.2013' and '30.09.2013'
order by mf150013
fetch first 500 rows only
;
select count(*)
from session.key
;
select current timestamp , 'key' from sysibm.sysDummy1
;
insert into oa1p.tmf150h1
select MF150001
, MF150002
, MF150003
, MF150004
, MF150005
, MF150006
, MF150007
, MF150008
, MF150009
, MF150010
, MF150011
, MF150012
, MF150013
, MF150014
, MF150015
, MF150016
, MF150017
, MF150018
, MF150019
, MF150020
, MF150021
, MF150022
, MF150023
, MF150024
, MF150025
, MF150026
, MF150027
, MF150028
, MF150029
, MF150030
, MF150031
, MF150032
, MF150033
, MF150034
, MF150035
, MF150036
, MF150037
, MF150038
, MF150039
, MF150040
, MF150041
, MF150042
, MF150043
, MF150044
, MF150045
, MF150046
, MF150047
, MF150051
, MF150052
, MF150053
, MF150054
, MF150055
, MF150056
, MF150059
, MF150060
, MF150062
, MF150063
, MF150064
, MF150065
, MF150066
, MF150067
, MF150068
, MF150069
, MF150070
, MF150071
, MF150072
, MF150073
, MF150074
, MF150075
, MF150076
, MF150077
, MF150078
, MF150079
, MF150080
, MF150081
, MF150082
, MF150083
, MF150084
, MF150085
, MF150086
, MF150087
, MF150088
, MF150089
, MF150090
, MF150091
, MF150092
, MF150019A
from oa1p.tmf150a1
where mf150001 in (select mf150001 from session.key)
;
select current timestamp , 'ins h' from sysibm.sysDummy1
;
delete from oa1p.tmf150a1
where mf150001 in (select mf150001 from session.key)
;
select current timestamp , 'del a' from sysibm.sysDummy1
;
delete from session.key
;
select current timestamp , 'start' from sysibm.sysDummy1
;
insert into session.key
select mf150001
from oa1p.tmf150a1
where mf150013 between '23.09.2013' and '30.09.2013'
order by mf150013
fetch first 500 rows only
;
select count(*)
from session.key
;
select current timestamp , 'key' from sysibm.sysDummy1
;
insert into oa1p.tmf150h1
select MF150001
, MF150002
, MF150003
, MF150004
, MF150005
, MF150006
, MF150007
, MF150008
, MF150009
, MF150010
, MF150011
, MF150012
, MF150013
, MF150014
, MF150015
, MF150016
, MF150017
, MF150018
, MF150019
, MF150020
, MF150021
, MF150022
, MF150023
, MF150024
, MF150025
, MF150026
, MF150027
, MF150028
, MF150029
, MF150030
, MF150031
, MF150032
, MF150033
, MF150034
, MF150035
, MF150036
, MF150037
, MF150038
, MF150039
, MF150040
, MF150041
, MF150042
, MF150043
, MF150044
, MF150045
, MF150046
, MF150047
, MF150051
, MF150052
, MF150053
, MF150054
, MF150055
, MF150056
, MF150059
, MF150060
, MF150062
, MF150063
, MF150064
, MF150065
, MF150066
, MF150067
, MF150068
, MF150069
, MF150070
, MF150071
, MF150072
, MF150073
, MF150074
, MF150075
, MF150076
, MF150077
, MF150078
, MF150079
, MF150080
, MF150081
, MF150082
, MF150083
, MF150084
, MF150085
, MF150086
, MF150087
, MF150088
, MF150089
, MF150090
, MF150091
, MF150092
, MF150019A
from oa1p.tmf150a1
where mf150001 in (select mf150001 from session.key)
;
select current timestamp , 'ins h' from sysibm.sysDummy1
;
delete from oa1p.tmf150a1
where mf150001 in (select mf150001 from session.key)
;
select current timestamp , 'del a' from sysibm.sysDummy1
;
rollback
;
select current timestamp , 'rollBack' from sysibm.sysDummy1
;
}¢--- A540769.WK.SQL(MFHISV0E) cre=2014-10-17 mod=2014-10-17-13.41.25 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
declare global temporary table session.key
( MF150001 char(16)
) ccsid ebcdic on commit delete rows
;
explain plan set queryno = 1 for
insert into session.key
select mf150001
from oa1p.tmf150a1
where mf150013 between '23.09.2013' and '24.09.2013'
order by mf150013
fetch first 10 rows only
;
explain plan set queryno = 5 for
insert into oa1p.tmf150h1
select MF150001
, MF150002
, MF150003
, MF150004
, MF150005
, MF150006
, MF150007
, MF150008
, MF150009
, MF150010
, MF150011
, MF150012
, MF150013
, MF150014
, MF150015
, MF150016
, MF150017
, MF150018
, MF150019
, MF150020
, MF150021
, MF150022
, MF150023
, MF150024
, MF150025
, MF150026
, MF150027
, MF150028
, MF150029
, MF150030
, MF150031
, MF150032
, MF150033
, MF150034
, MF150035
, MF150036
, MF150037
, MF150038
, MF150039
, MF150040
, MF150041
, MF150042
, MF150043
, MF150044
, MF150045
, MF150046
, MF150047
, MF150051
, MF150052
, MF150053
, MF150054
, MF150055
, MF150056
, MF150059
, MF150060
, MF150062
, MF150063
, MF150064
, MF150065
, MF150066
, MF150067
, MF150068
, MF150069
, MF150070
, MF150071
, MF150072
, MF150073
, MF150074
, MF150075
, MF150076
, MF150077
, MF150078
, MF150079
, MF150080
, MF150081
, MF150082
, MF150083
, MF150084
, MF150085
, MF150086
, MF150087
, MF150088
, MF150089
, MF150090
, MF150091
, MF150092
, MF150019A
from oa1p.tmf150a1
where mf150001 in (select mf150001 from session.key)
;
explain plan set queryno = 9 for
delete from oa1p.tmf150a1
where mf150001 in (select mf150001 from session.key)
;
select * from plan_view1
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
with ur
;
rollback
;;;;
;
rollback
;
select current timestamp , 'rollBack' from sysibm.sysDummy1
;
}¢--- A540769.WK.SQL(MFJOIN) cre=2010-09-03 mod=2010-09-03-20.56.09 A540769 ----
select current timestamp from sysibm.sysdummy1;
select t.part, t.mf150023, t.mf150013
from A540769.tmfnvhash t
where t.part <> ( select t.part
from A540769.tmfnvpart p
where t.mf150hash between p.von and p.bis)
;
select current timestamp from sysibm.sysdummy1;
and (t.part <> p.part or t.part < 0 or t.part > 11047)
order by t.part asc,
t.MF150023 ASC,
t.MF150013 DESC
with ur
;
}¢--- A540769.WK.SQL(MFPART) cre=2010-04-17 mod=2010-04-17-13.15.28 A540769 ----
--lect 'when MF150013 <= ''' || strip(limitKey) || ''' then '
-- || right(' ' || strip(char(partition)), 5) ,
-- partition, limitkey, limitkey_internal,
-- hex(limitkey_internal)
-- from sysibm.systablePart
-- where dbName = 'MF01A1P' and tsName = 'A150A'
-- order by partition
with p as
(
select case
when MF150013 <= '31.12.2000' then 1
when MF150013 <= '31.12.2001' then 2
when MF150013 <= '31.12.2002' then 3
when MF150013 <= '31.12.2003' then 4
when MF150013 <= '31.12.2004' then 5
when MF150013 <= '31.12.2005' then 6
when MF150013 <= '31.12.2006' then 7
when MF150013 <= '31.12.2007' then 8
when MF150013 <= '31.12.2008' then 9
when MF150013 <= '03.01.2009' then 10
when MF150013 <= '06.01.2009' then 11
when MF150013 <= '09.01.2009' then 12
when MF150013 <= '12.01.2009' then 13
when MF150013 <= '15.01.2009' then 14
when MF150013 <= '18.01.2009' then 15
when MF150013 <= '21.01.2009' then 16
when MF150013 <= '24.01.2009' then 17
when MF150013 <= '27.01.2009' then 18
when MF150013 <= '31.01.2009' then 19
when MF150013 <= '03.02.2009' then 20
when MF150013 <= '06.02.2009' then 21
when MF150013 <= '09.02.2009' then 22
when MF150013 <= '12.02.2009' then 23
when MF150013 <= '15.02.2009' then 24
when MF150013 <= '18.02.2009' then 25
when MF150013 <= '21.02.2009' then 26
when MF150013 <= '24.02.2009' then 27
when MF150013 <= '27.02.2009' then 28
when MF150013 <= '28.02.2009' then 29
when MF150013 <= '03.03.2009' then 30
when MF150013 <= '06.03.2009' then 31
when MF150013 <= '09.03.2009' then 32
when MF150013 <= '12.03.2009' then 33
when MF150013 <= '15.03.2009' then 34
when MF150013 <= '18.03.2009' then 35
when MF150013 <= '21.03.2009' then 36
when MF150013 <= '24.03.2009' then 37
when MF150013 <= '27.03.2009' then 38
when MF150013 <= '31.03.2009' then 39
when MF150013 <= '03.04.2009' then 40
when MF150013 <= '06.04.2009' then 41
when MF150013 <= '09.04.2009' then 42
when MF150013 <= '12.04.2009' then 43
when MF150013 <= '15.04.2009' then 44
when MF150013 <= '18.04.2009' then 45
when MF150013 <= '21.04.2009' then 46
when MF150013 <= '24.04.2009' then 47
when MF150013 <= '27.04.2009' then 48
when MF150013 <= '30.04.2009' then 49
when MF150013 <= '03.05.2009' then 50
when MF150013 <= '06.05.2009' then 51
when MF150013 <= '09.05.2009' then 52
when MF150013 <= '12.05.2009' then 53
when MF150013 <= '15.05.2009' then 54
when MF150013 <= '18.05.2009' then 55
when MF150013 <= '21.05.2009' then 56
when MF150013 <= '24.05.2009' then 57
when MF150013 <= '27.05.2009' then 58
when MF150013 <= '31.05.2009' then 59
when MF150013 <= '03.06.2009' then 60
when MF150013 <= '06.06.2009' then 61
when MF150013 <= '09.06.2009' then 62
when MF150013 <= '12.06.2009' then 63
when MF150013 <= '15.06.2009' then 64
when MF150013 <= '18.06.2009' then 65
when MF150013 <= '21.06.2009' then 66
when MF150013 <= '24.06.2009' then 67
when MF150013 <= '27.06.2009' then 68
when MF150013 <= '30.06.2009' then 69
when MF150013 <= '03.07.2009' then 70
when MF150013 <= '06.07.2009' then 71
when MF150013 <= '09.07.2009' then 72
when MF150013 <= '12.07.2009' then 73
when MF150013 <= '15.07.2009' then 74
when MF150013 <= '18.07.2009' then 75
when MF150013 <= '21.07.2009' then 76
when MF150013 <= '24.07.2009' then 77
when MF150013 <= '27.07.2009' then 78
when MF150013 <= '31.07.2009' then 79
when MF150013 <= '03.08.2009' then 80
when MF150013 <= '06.08.2009' then 81
when MF150013 <= '09.08.2009' then 82
when MF150013 <= '12.08.2009' then 83
when MF150013 <= '15.08.2009' then 84
when MF150013 <= '18.08.2009' then 85
when MF150013 <= '21.08.2009' then 86
when MF150013 <= '24.08.2009' then 87
when MF150013 <= '27.08.2009' then 88
when MF150013 <= '31.08.2009' then 89
when MF150013 <= '03.09.2009' then 90
when MF150013 <= '06.09.2009' then 91
when MF150013 <= '09.09.2009' then 92
when MF150013 <= '12.09.2009' then 93
when MF150013 <= '15.09.2009' then 94
when MF150013 <= '18.09.2009' then 95
when MF150013 <= '21.09.2009' then 96
when MF150013 <= '24.09.2009' then 97
when MF150013 <= '27.09.2009' then 98
when MF150013 <= '30.09.2009' then 99
when MF150013 <= '03.10.2009' then 100
when MF150013 <= '06.10.2009' then 101
when MF150013 <= '09.10.2009' then 102
when MF150013 <= '12.10.2009' then 103
when MF150013 <= '15.10.2009' then 104
when MF150013 <= '18.10.2009' then 105
when MF150013 <= '21.10.2009' then 106
when MF150013 <= '24.10.2009' then 107
when MF150013 <= '27.10.2009' then 108
when MF150013 <= '31.10.2009' then 109
when MF150013 <= '03.11.2009' then 110
when MF150013 <= '06.11.2009' then 111
when MF150013 <= '09.11.2009' then 112
when MF150013 <= '12.11.2009' then 113
when MF150013 <= '15.11.2009' then 114
when MF150013 <= '18.11.2009' then 115
when MF150013 <= '21.11.2009' then 116
when MF150013 <= '24.11.2009' then 117
when MF150013 <= '27.11.2009' then 118
when MF150013 <= '30.11.2009' then 119
when MF150013 <= '03.12.2009' then 120
when MF150013 <= '06.12.2009' then 121
when MF150013 <= '09.12.2009' then 122
when MF150013 <= '12.12.2009' then 123
when MF150013 <= '15.12.2009' then 124
when MF150013 <= '18.12.2009' then 125
when MF150013 <= '21.12.2009' then 126
when MF150013 <= '24.12.2009' then 127
when MF150013 <= '27.12.2009' then 128
when MF150013 <= '31.12.2009' then 129
when MF150013 <= '03.01.2010' then 130
when MF150013 <= '06.01.2010' then 131
when MF150013 <= '09.01.2010' then 132
when MF150013 <= '12.01.2010' then 133
when MF150013 <= '15.01.2010' then 134
when MF150013 <= '18.01.2010' then 135
when MF150013 <= '21.01.2010' then 136
when MF150013 <= '24.01.2010' then 137
when MF150013 <= '27.01.2010' then 138
when MF150013 <= '31.01.2010' then 139
when MF150013 <= '03.02.2010' then 140
when MF150013 <= '06.02.2010' then 141
when MF150013 <= '09.02.2010' then 142
when MF150013 <= '12.02.2010' then 143
when MF150013 <= '15.02.2010' then 144
when MF150013 <= '18.02.2010' then 145
when MF150013 <= '21.02.2010' then 146
when MF150013 <= '24.02.2010' then 147
when MF150013 <= '27.02.2010' then 148
when MF150013 <= '28.02.2010' then 149
when MF150013 <= '03.03.2010' then 150
when MF150013 <= '06.03.2010' then 151
when MF150013 <= '09.03.2010' then 152
when MF150013 <= '12.03.2010' then 153
when MF150013 <= '15.03.2010' then 154
when MF150013 <= '18.03.2010' then 155
when MF150013 <= '21.03.2010' then 156
when MF150013 <= '24.03.2010' then 157
when MF150013 <= '27.03.2010' then 158
when MF150013 <= '31.03.2010' then 159
when MF150013 <= '03.04.2010' then 160
when MF150013 <= '06.04.2010' then 161
when MF150013 <= '09.04.2010' then 162
when MF150013 <= '12.04.2010' then 163
when MF150013 <= '15.04.2010' then 164
when MF150013 <= '18.04.2010' then 165
when MF150013 <= '21.04.2010' then 166
when MF150013 <= '24.04.2010' then 167
when MF150013 <= '27.04.2010' then 168
when MF150013 <= '30.04.2010' then 169
when MF150013 <= '03.05.2010' then 170
when MF150013 <= '06.05.2010' then 171
when MF150013 <= '09.05.2010' then 172
when MF150013 <= '12.05.2010' then 173
when MF150013 <= '15.05.2010' then 174
when MF150013 <= '18.05.2010' then 175
when MF150013 <= '21.05.2010' then 176
when MF150013 <= '24.05.2010' then 177
when MF150013 <= '27.05.2010' then 178
when MF150013 <= '31.05.2010' then 179
when MF150013 <= '03.06.2010' then 180
when MF150013 <= '06.06.2010' then 181
when MF150013 <= '09.06.2010' then 182
when MF150013 <= '12.06.2010' then 183
when MF150013 <= '15.06.2010' then 184
when MF150013 <= '18.06.2010' then 185
when MF150013 <= '21.06.2010' then 186
when MF150013 <= '24.06.2010' then 187
when MF150013 <= '27.06.2010' then 188
when MF150013 <= '30.06.2010' then 189
when MF150013 <= '03.07.2010' then 190
when MF150013 <= '06.07.2010' then 191
when MF150013 <= '09.07.2010' then 192
when MF150013 <= '12.07.2010' then 193
when MF150013 <= '15.07.2010' then 194
when MF150013 <= '18.07.2010' then 195
when MF150013 <= '21.07.2010' then 196
when MF150013 <= '24.07.2010' then 197
when MF150013 <= '27.07.2010' then 198
when MF150013 <= '31.07.2010' then 199
when MF150013 <= '03.08.2010' then 200
when MF150013 <= '06.08.2010' then 201
when MF150013 <= '09.08.2010' then 202
when MF150013 <= '12.08.2010' then 203
when MF150013 <= '15.08.2010' then 204
when MF150013 <= '18.08.2010' then 205
when MF150013 <= '21.08.2010' then 206
when MF150013 <= '24.08.2010' then 207
when MF150013 <= '27.08.2010' then 208
when MF150013 <= '31.08.2010' then 209
when MF150013 <= '03.09.2010' then 210
when MF150013 <= '06.09.2010' then 211
when MF150013 <= '09.09.2010' then 212
when MF150013 <= '12.09.2010' then 213
when MF150013 <= '15.09.2010' then 214
when MF150013 <= '18.09.2010' then 215
when MF150013 <= '21.09.2010' then 216
when MF150013 <= '24.09.2010' then 217
when MF150013 <= '27.09.2010' then 218
when MF150013 <= '30.09.2010' then 219
when MF150013 <= '03.10.2010' then 220
when MF150013 <= '06.10.2010' then 221
when MF150013 <= '09.10.2010' then 222
when MF150013 <= '12.10.2010' then 223
when MF150013 <= '15.10.2010' then 224
when MF150013 <= '18.10.2010' then 225
when MF150013 <= '21.10.2010' then 226
when MF150013 <= '24.10.2010' then 227
when MF150013 <= '27.10.2010' then 228
when MF150013 <= '31.10.2010' then 229
when MF150013 <= '03.11.2010' then 230
when MF150013 <= '06.11.2010' then 231
when MF150013 <= '09.11.2010' then 232
when MF150013 <= '12.11.2010' then 233
when MF150013 <= '15.11.2010' then 234
when MF150013 <= '18.11.2010' then 235
when MF150013 <= '21.11.2010' then 236
when MF150013 <= '24.11.2010' then 237
when MF150013 <= '27.11.2010' then 238
when MF150013 <= '30.11.2010' then 239
when MF150013 <= '03.12.2010' then 240
when MF150013 <= '06.12.2010' then 241
when MF150013 <= '09.12.2010' then 242
when MF150013 <= '12.12.2010' then 243
when MF150013 <= '15.12.2010' then 244
when MF150013 <= '18.12.2010' then 245
when MF150013 <= '21.12.2010' then 246
when MF150013 <= '24.12.2010' then 247
when MF150013 <= '27.12.2010' then 248
when MF150013 <= '31.12.2010' then 249
when MF150013 <= '03.01.2011' then 250
when MF150013 <= '06.01.2011' then 251
when MF150013 <= '09.01.2011' then 252
when MF150013 <= '12.01.2011' then 253
when MF150013 <= '31.12.2099' then 254
else 9999
end part
, count(*) cnt, mf150013
from oa1p.tmf150a1
-- where mf150013 < '31.12.2004'
GROUP BY mf150013
)
select part, sum(cnt), min(mf150013), max(mf150013)
from p
group by part
with ur
;
}¢--- A540769.WK.SQL(MFTST) cre=2010-09-03 mod=2010-09-03-14.37.42 A540769 -----
select count(*), left(MF150023, 1)
from oa1a.tmf150a1
where MF150013 between '25.06.2010' and '05.07.2010'
group by left(MF150023, 1)
with ur
}¢--- A540769.WK.SQL(MF01084) cre=2006-04-05 mod=2006-04-05-13.24.31 F540769 ---
CREATE UNIQUE INDEX OA1A.IMF150A8
ON OA1A.TMF150A1
( MF150023 ASC ,
MF150013 ASC ,
MF150001 ASC ,
MF150019 ASC )
USING STOGROUP GSMS
PRIQTY 48
SECQTY 7200
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
BUFFERPOOL BP1
CLOSE YES
PIECESIZE 1 G
COPY NO
;
}¢--- A540769.WK.SQL(MF01086) cre=2006-04-05 mod=2006-04-05-13.32.54 F540769 ---
CREATE UNIQUE INDEX OA1A.IMF150A8
ON OA1A.TMF150A1
( MF150023 ASC ,
MF150013 ASC ,
MF150001 ASC ,
MF150019 ASC )
USING STOGROUP GSMS
PRIQTY 48
SECQTY 7200
ERASE NO
FREEPAGE 0
PCTFREE 10
GBPCACHE CHANGED
BUFFERPOOL BP1
CLOSE YES
PIECESIZE 1 G
COPY NO
;
}¢--- A540769.WK.SQL(MF15UNL) cre=2011-01-14 mod=2011-01-24-10.08.14 A540769 ---
with r (l, p, v, b) as
( -- r = rekursiv Partitionen berechnen,
-- p = Partition, v=von inklusiv, b=bis exklusiv
select 0, 0, date('01.01.1800'), date('01.01.1900')
from sysibm.sysdummy1
union all select l+1, -1,
(select min(MF150013) from oa1t.tmf150a1 where MF150013 >= r.b),b
from r where p >= 0 and v < current date - 10 month and l < 999
union all select l+1, year(v)*24+month(v)*2 +10-48002, v,
v + (16-day(v)) days
from r where p = -1 and day(v) <= 15 and l < 999
union all select l+1, year(v)*24+month(v)*2 +11-48002, v,
v - (day(v)-1) days + 1 month
from r where p = -1 and day(v) > 15 and l < 999
)
, p (p, v, b) as
(
select strip(char(p)), v, b
from r
where p > 0 and b < current date - 10 month
)
, t (p, v, b, n, t) as
( -- für jede Partition utility ctl: copy, load, copy
select p.*, 1, 'COPY TABLESPACE MF01A1T.MF150H DSNUM ' || p
from p
union all select p.*, 2, ' COPYDDN(TCOPYD) SHRLEVEL REFERENCE'
from p
union all select p.*,10, 'EXEC SQL' from p
union all select p.*,11, ' DECLARE CUR' || p ||' CURSOR FOR' from p
union all select p.*,12, ' SELECT *' from p
union all select p.*,13, ' FROM OA1T.TMF150A1' from p
union all select p.*,14, ' WHERE MF150013 >= '''
|| char(v) || '''' from p
union all select p.*,15, ' and MF150013 < '''
|| char(b) || '''' from p
union all select p.*,16, ' order by MF150013 asc, MF150067 asc'
from p
union all select p.*,17, 'ENDEXEC' from p
union all select p.*,21, 'LOAD DATA INCURSOR CUR' || p from p
union all select p.*,22, ' LOG NO RESUME YES ' from p
union all select p.*,23, ' SORTDEVT DISK SORTNUM 50' from p
union all select p.*,24, ' WORKDDN(TSYUTS,TSOUTS)' from p
union all select p.*,25, ' INTO TABLE OA1T.TMF150H1' from p
union all select p.*,26, ' IGNOREFIELDS YES PART ' || p from p
union all select p.*,31, 'COPY TABLESPACE MF01A1T.MF150H DSNUM ' || p
from p
union all select p.*,32, ' COPYDDN(TCOPYD) SHRLEVEL REFERENCE'
from p
)
select char(t, 80) from t order by v, n
;; ????????????
??????????????????
with d (l, d) as
( select 0, min(MF150013)+2 month from oa1t.tmf150a1
union all select l+1, d + 1 day from d where l < 5
)
select d, (select count(*) from oa1t.tmf150a1 where MF150013=d) a
, (select count(*) from oa1t.tmf150h1 where MF150013=d) h
from d
;;
( select 0count(*), MF150013
from oa1t.tmf150a1
where MF150013 <
(select min(MF150013) + 5 days from oa1t.tmf150a1)
group by MF150013
with ur
;;
select count(*), MF150013
from oa1t.tmf150a1
where MF150013 < '18.02.2010'
group by MF150013
with ur
;;
select min(MF150013), max(MF150013)
from oa1t.tmf150a1 ;
select min(MF150013), max(MF150013)
from oa1t.tmf150H1 ;
;;
}¢--- A540769.WK.SQL(MF150) cre=2007-11-26 mod=2007-11-26-15.54.26 F540769 -----
select year(mf150013), count(*)
from oa1t.tmf150a1
group by year(mf150013)
order by 1
}¢--- A540769.WK.SQL(MF150HAL) cre=2015-12-24 mod=2016-02-01-14.41.18 A540769 ---
set current sqlid = 'S100447';
alter TABLE OA1P.TMF150H1 add partition ENDING ( '15.01.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '31.01.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '15.02.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '28.02.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '15.03.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '31.03.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '15.04.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '30.04.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '15.05.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '31.05.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '15.06.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '30.06.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '15.07.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '31.07.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '15.08.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '31.08.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '25.09.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '30.09.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '15.10.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '31.10.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '15.11.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '30.11.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '15.12.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '31.12.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '15.01.2016' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '31.01.2016' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '15.02.2016' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '29.02.2016' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '15.03.2016' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '31.03.2016' ) ;
commit;
?elect count(*) from oa1p.tmf150h1 where MF150013 = '03.03.2077'
20160201 14:40:28
}¢--- A540769.WK.SQL(MF15013) cre=2010-04-14 mod=2010-04-14-13.02.44 A540769 ---
select mf150013, count(*)
FROM OA1A.tmf150a1
group by mf150013
order by mf150013 desc
fetch first 100 rows only
with ur
MF150013
---------+---------+-----
13.10.2009 480145
12.10.2009 166740
11.10.2009 19
10.10.2009 44929
09.10.2009 710150
08.10.2009 642392
07.10.2009 739393
06.10.2009 816595
05.10.2009 1303576
04.10.2009 18787
03.10.2009 49964
02.10.2009 946430
01.10.2009 1483369
30.09.2009 1740273
29.09.2009 1482908
28.09.2009 1417973
27.09.2009 20287
26.09.2009 54240
25.09.2009 1256858
24.09.2009 684063
23.09.2009 561024
22.09.2009 570560
21.09.2009 806047
20.09.2009 16217
19.09.2009 44641
}¢--- A540769.WK.SQL(MF200) cre= mod= ------------------------------------------
------------------------------------------------------------------------
-- --
-- Database 2 Administration Tool (DB2 Admin) , program 5697-L90 (C) --
-- --
-- ADB2GEN - Extract object definitions from the DB2 Catalog tables --
-- --
-- Input prepared on : DBAF (810) Extract time : 2006-09-26 13:26 --
-- --
-- Catalog values overridden : none
-- --
-- Generate : SG=N DB=Y TS=Y TB=Y VW=Y IX=Y SY=Y AL=Y LB=Y CM=Y FK=Y --
-- TG=Y UT=N UF=N SP=N SQ=N --
-- Grants : SG=N DB=Y TS=N TB=N VW=N SC=N UT=N UF=N SP=N SQ=N --
-- --
------------------------------------------------------------------------
--
SET CURRENT SQLID='S100447';
------------------------------------------------------------------------
-- --
-- ADB2GEN: Generate DDL for Tablespace=A401A01 In Database AV03A1A --
-- --
------------------------------------------------------------------------
--
------------------------------------------------------------------------
-- Database=AV03A1A Stogroup=GSMS
-- Tablespace=AV03A1A.A401A01
------------------------------------------------------------------------
--
CREATE TABLESPACE A401A01
IN AV03A1A
USING STOGROUP GSMS
PRIQTY 48 SECQTY 7200
ERASE NO
FREEPAGE 0 PCTFREE 0
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID EBCDIC
DEFINE YES
MAXROWS 255;
--
------------------------------------------------------------------------
-- Table=OA1A01.TAV401A1 In AV03A1A.A401A01
------------------------------------------------------------------------
--
CREATE TABLE OA1A01.TAV401A1
(AV401001 CHAR(16) FOR SBCS DATA NOT NULL,
AV401002 CHAR(3) FOR SBCS DATA NOT NULL,
AV401003 CHAR(12) FOR SBCS DATA NOT NULL,
AV401004 CHAR(5) FOR SBCS DATA NOT NULL,
AV401005 DECIMAL(15, 3) WITH DEFAULT NULL,
AV401006 DECIMAL(15, 3) WITH DEFAULT NULL,
AV401007 DECIMAL(15, 3) NOT NULL,
AV401008 CHAR(1) FOR SBCS DATA NOT NULL,
AV401009 CHAR(4) FOR SBCS DATA NOT NULL,
AV401010 CHAR(2) FOR SBCS DATA NOT NULL,
AV401011 DECIMAL(15, 6) WITH DEFAULT NULL,
AV401012 DATE WITH DEFAULT NULL,
AV401013 CHAR(4) FOR SBCS DATA NOT NULL,
AV401014 CHAR(4) FOR SBCS DATA NOT NULL,
AV401015 DECIMAL(15, 6) WITH DEFAULT NULL,
AV401016 DECIMAL(15, 6) NOT NULL,
AV401017 CHAR(3) FOR SBCS DATA NOT NULL,
AV401018 DECIMAL(15, 6) NOT NULL,
AV401019 DECIMAL(15, 3) NOT NULL,
AV401020 DECIMAL(15, 3) NOT NULL,
AV401021 DATE WITH DEFAULT NULL,
AV401022 DECIMAL(15, 6) NOT NULL,
AV401023 DECIMAL(15, 6) NOT NULL,
AV401024 DECIMAL(15, 3) NOT NULL,
AV401025 DECIMAL(15, 3) NOT NULL,
AV401026 DECIMAL(15, 3) NOT NULL,
AV401027 DATE WITH DEFAULT NULL,
AV401028 DECIMAL(15, 6) WITH DEFAULT NULL,
AV401029 DECIMAL(15, 6) NOT NULL,
AV401030 DECIMAL(15, 6) NOT NULL,
AV401031 DATE WITH DEFAULT NULL,
AV401032 DECIMAL(15, 6) NOT NULL,
AV401033 DECIMAL(15, 6) NOT NULL,
AV401034 DECIMAL(15, 6) NOT NULL,
AV401035 DATE WITH DEFAULT NULL,
AV401036 DECIMAL(15, 6) NOT NULL,
AV401037 DATE WITH DEFAULT NULL,
AV401038 DECIMAL(15, 3) NOT NULL,
AV401039 DECIMAL(15, 6) NOT NULL,
AV401040 DECIMAL(15, 3) NOT NULL,
AV401041 CHAR(7) FOR SBCS DATA NOT NULL,
AV401042 CHAR(1) FOR SBCS DATA NOT NULL,
AV401043 DATE WITH DEFAULT NULL,
AV401044 DECIMAL(15, 3) NOT NULL,
AV401045 CHAR(1) FOR SBCS DATA NOT NULL,
AV401046 CHAR(4) FOR SBCS DATA NOT NULL,
AV401047 CHAR(2) FOR SBCS DATA NOT NULL,
AV401048 DATE WITH DEFAULT NULL,
AV401049 DECIMAL(15, 6) NOT NULL,
AV401050 DECIMAL(15, 3) NOT NULL,
AV401051 CHAR(3) FOR SBCS DATA NOT NULL,
AV401052 DECIMAL(15, 3) NOT NULL,
AV401053 CHAR(1) FOR SBCS DATA NOT NULL,
AV401054 DECIMAL(15, 3) NOT NULL,
AV401055 CHAR(1) FOR SBCS DATA NOT NULL,
AV401056 DECIMAL(15, 6) NOT NULL,
AV401057 CHAR(1) FOR SBCS DATA NOT NULL,
AV401058 DECIMAL(15, 6) NOT NULL,
AV401059 DECIMAL(15, 3) NOT NULL,
AV401060 DECIMAL(15, 3) NOT NULL,
CONSTRAINT AV401001
PRIMARY KEY (AV401001,
AV401002,
AV401003,
AV401004))
IN AV03A1A.A401A01
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE;
--
LABEL ON TABLE OA1A01.TAV401A1 IS 'Safekeeping Security';
--
LABEL ON OA1A01.TAV401A1
(AV401060 IS 'CollateralValue2CHF ',
AV401059 IS 'CollateralValue2ValCurr ',
AV401058 IS 'CollateralRatio2Base ',
AV401057 IS 'CollateralRatio2Type ',
AV401056 IS 'Interest-Rate ',
AV401055 IS 'CollateralRatioTyp ',
AV401054 IS 'Agio for Redemption ',
AV401053 IS 'AvgPurchPriceType ',
AV401052 IS 'CollateralValueCHF ',
AV401051 IS 'AnalysisCountryCd ',
AV401050 IS 'NonRealPLValueTotal ',
AV401049 IS 'NonRealPLPercTotal ',
AV401048 IS 'PrematureRedemptDate ',
AV401047 IS 'InterestFreqCd ',
AV401046 IS 'Analysis CurrCd ',
AV401045 IS 'Booking Type Cd ',
AV401044 IS 'MarketValue Pos Curr ',
AV401043 IS 'Maturity Date ',
AV401042 IS 'Dynamic Text Flag ',
AV401041 IS 'CSLife Fund Policy No ',
AV401040 IS 'CollateralValueValCurr ',
AV401039 IS 'CollateralRatio ',
AV401038 IS 'ExpEarnValCurr ',
AV401037 IS 'PriceYrLowDate ',
AV401036 IS 'PriceYrLow ',
AV401035 IS 'PriceYrHighDate ',
AV401034 IS 'PriceYrHigh ',
AV401033 IS 'YieldPercCP ',
AV401032 IS 'YieldPercMP ',
AV401031 IS 'ExchangeRateDate ',
AV401030 IS 'ExchangeRateCHF ',
AV401029 IS 'ExchangeRateCurr ',
AV401028 IS 'ContractStrikePrice ',
AV401027 IS 'ContractExpiryDate ',
AV401026 IS 'ContractSize ',
AV401025 IS 'NonRealPLValPrice ',
AV401024 IS 'NonRealPLValCurr ',
AV401023 IS 'NonRealPLPercPrice ',
AV401022 IS 'NonRealPLPercCurr ',
AV401021 IS 'AccruedInterestDate ',
AV401020 IS 'AccruedInterestCHF ',
AV401019 IS 'AccruedInterestValCurr ',
AV401018 IS 'Duration ',
AV401017 IS 'StockExchangeCd ',
AV401016 IS 'AvgPurchPriceCurrExRate ',
AV401015 IS 'AvgPurchPrice ',
AV401014 IS 'AvgPurchPriceCurrCd ',
AV401013 IS 'SecurityPriceCurrCd ',
AV401012 IS 'SecurityPriceDate ',
AV401011 IS 'SecurityPrice ',
AV401010 IS 'SecurityPriceType ',
AV401009 IS 'AssetClass ',
AV401008 IS 'ValueType ',
AV401007 IS 'NominalNo ',
AV401006 IS 'MarketValueCHF ',
AV401005 IS 'MarketValueValCurr ',
AV401004 IS 'Security Sequence No ',
AV401003 IS 'Security No ',
AV401002 IS 'Sequence No ',
AV401001 IS 'Safekeeping Acc No ');
--
------------------------------------------------------------------------
-- Database=AV03A1A
-- Index=OA1A01.IAV401A0 On OA1A01.TAV401A1
------------------------------------------------------------------------
--
CREATE UNIQUE INDEX OA1A01.IAV401A0
ON OA1A01.TAV401A1
(AV401001 ASC,
AV401002 ASC,
AV401003 ASC,
AV401004 ASC)
USING STOGROUP GSMS
PRIQTY 48 SECQTY 7200
ERASE NO
FREEPAGE 0 PCTFREE 0
GBPCACHE CHANGED
CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
--
------------------------------------------------------------------------
-- Database=AV03A1A
-- Index=OA1A01.IAV401A1 On OA1A01.TAV401A1
------------------------------------------------------------------------
--
CREATE UNIQUE INDEX OA1A01.IAV401A1
ON OA1A01.TAV401A1
(AV401003 ASC,
AV401001 ASC,
AV401002 ASC,
AV401004 ASC,
AV401007 ASC,
AV401014 ASC)
USING STOGROUP GSMS
PRIQTY 48 SECQTY 7200
ERASE NO
FREEPAGE 0 PCTFREE 0
GBPCACHE CHANGED
NOT CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
--
COMMIT;
--
------------------------------------------------------------------------
-- ADB2GEN - End of generated DDL --
------------------------------------------------------------------------
--
}¢--- A540769.WK.SQL(MF200A) cre=2006-09-12 mod=2006-09-12-14.54.23 F540769 ----
alter TABLE GDB9998.TWK200A1
add
MF200094 CHAR(16) FOR SBCS DATA
;
commit;
}¢--- A540769.WK.SQL(MF200I) cre=2006-09-12 mod=2006-09-12-14.55.16 F540769 ----
insert into GDB9998.TWK200a1 (MF200001, mf200093, mf200094)
values('fuenf' , 'fuenf93', 'fuenf94')
;
commit;
select * from GDB9998.TWK200A1
;
x
CREATE TABLE GDB9998.TWK200A1
(MF200001 CHAR(16) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200002 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200003 CHAR(5) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200004 CHAR(25) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200005 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200006 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200007 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200008 CHAR(3) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200009 CHAR(5) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200010 CHAR(4) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200011 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200012 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200013 DATE NOT NULL WITH DEFAULT,
MF200014 CHAR(4) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200015 CHAR(4) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200016 CHAR(4) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200017 CHAR(12) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200018 DECIMAL(15, 3) NOT NULL WITH DEFAULT,
MF200019 DECIMAL(15, 3) NOT NULL WITH DEFAULT,
MF200020 CHAR(8) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200021 TIMESTAMP NOT NULL WITH DEFAULT,
MF200022 CHAR(4) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200023 CHAR(12) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200024 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200025 CHAR(3) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200026 CHAR(3) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200027 CHAR(3) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200028 CHAR(3) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200029 CHAR(3) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200030 CHAR(16) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200031 CHAR(2) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200032 CHAR(7) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200033 CHAR(7) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200034 CHAR(4) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200035 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200036 CHAR(18) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200037 DECIMAL(15, 0) NOT NULL WITH DEFAULT,
MF200038 CHAR(16) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200039 CHAR(2) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200040 CHAR(2) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200041 CHAR(2) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200042 CHAR(4) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200043 DECIMAL(15, 3) NOT NULL WITH DEFAULT,
MF200044 CHAR(5) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200045 CHAR(4) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200046 CHAR(4) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200047 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200051 CHAR(3) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200052 CHAR(3) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200053 DECIMAL(15, 3) NOT NULL WITH DEFAULT,
MF200054 CHAR(7) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200055 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200056 CHAR(8) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200059 CHAR(5) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200060 TIMESTAMP NOT NULL WITH DEFAULT,
MF200062 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200063 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200064 DATE NOT NULL WITH DEFAULT,
MF200065 DATE NOT NULL WITH DEFAULT,
MF200066 CHAR(16) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200067 CHAR(16) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200068 CHAR(16) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200069 CHAR(4) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200070 CHAR(7) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200071 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200072 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200073 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200074 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200075 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200076 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200077 CHAR(6) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200078 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200079 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200080 DATE NOT NULL WITH DEFAULT,
MF200081 CHAR(5) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200082 CHAR(26) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200083 SMALLINT NOT NULL WITH DEFAULT,
MF200084 SMALLINT NOT NULL WITH DEFAULT,
MF200085 SMALLINT NOT NULL WITH DEFAULT,
MF200086 CHAR(35) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200087 CHAR(35) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200088 CHAR(35) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200089 CHAR(35) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200090 SMALLINT NOT NULL WITH DEFAULT,
MF200091 SMALLINT NOT NULL WITH DEFAULT,
MF200092 CHAR(16) FOR SBCS DATA NOT NULL
WITH DEFAULT)
IN DGDB9998.A200A
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE;
--
LABEL ON TABLE GDB9998.TWK200A1 IS 'dokumentierende Mittelflüsse';
--
LABEL ON GDB9998.TWK200A1
(MF200092 IS 'RM-PID international',
MF200091 IS 'Limiten-Hierarchie',
MF200090 IS 'Limiten-Typ',
MF200089 IS 'Ort Begünstigter',
MF200088 IS 'Name Begünstigter',
MF200087 IS 'Ort Auftraggeber',
MF200086 IS 'Name Auftraggeber',
MF200085 IS 'Life-Cycle-Status',
MF200084 IS 'Relevant-Group',
MF200083 IS 'Transaction-Typ',
MF200082 IS 'Lade_Timestamp_ID',
MF200081 IS 'Preiskomponente',
MF200080 IS 'mutierbar bis',
MF200079 IS 'Depot_Uebertrag',
MF200078 IS 'Vorheriger GP-Typ',
MF200077 IS 'Bankenclearing-Nr',
MF200076 IS 'Kommentar_Status',
MF200075 IS 'Edit-Status Gesamt',
MF200074 IS 'Edit-Status Hauptgruppe',
MF200073 IS 'Edit-Status Untergruppe',
MF200072 IS 'Edit-Status Gegenpartei',
MF200071 IS 'Prüfziffer Kundencif',
MF200070 IS 'Stammnummer Kundencif',
MF200069 IS 'Bankstelle Kundencif',
MF200068 IS 'int. Form OE Kundenbüro GP',
MF200067 IS 'int. Form OE Kundenbüro',
MF200066 IS 'int. Form OE-ID KV',
MF200065 IS 'Cif-Saldierungsdatum',
MF200064 IS 'Cif-Eröffnungsdatum',
MF200063 IS 'Mittelfluss-Identifikation',
MF200062 IS 'Coupon-Mantel',
MF200060 IS 'Erstellungstimestamp',
MF200059 IS 'Auftragslaufnummer',
MF200056 IS 'Policennr.',
MF200055 IS 'Richtung des Mittelflusses',
MF200054 IS 'Leitweg',
MF200053 IS 'Volumen in Nominal/Stück',
MF200052 IS 'Bearbeitungscode',
MF200051 IS 'Domizil Gegenpartei',
MF200047 IS 'Buchungsart',
MF200046 IS 'Programm_ID des Corbaservices',
MF200045 IS 'Depotstelle bzw. GMF_Laufnr.',
MF200044 IS 'Sequenz-Nummer zu Valor',
MF200043 IS 'Betrag zu Bestandeswährung',
MF200042 IS 'Bestandeswährung',
MF200041 IS 'Untergruppe Gegenpartei',
MF200040 IS 'Hauptgruppe Gegenpartei',
MF200039 IS 'Gegenpartei-Geldmarktzusatz',
MF200038 IS 'Gegenpartei-Beziehungsnummer',
MF200037 IS 'CSID Gegenpartei',
MF200036 IS 'Gegenpartei',
MF200035 IS 'Gegenpartei-Typ',
MF200034 IS 'BUID Gegenpartei',
MF200033 IS 'KundenverantwortlicheR',
MF200032 IS 'Kundenbüro Kunde',
MF200031 IS 'Kunden-Geldmarktzusatz',
MF200030 IS 'Kunden-Beziehungsnummer',
MF200029 IS 'Depotartenschlüssel',
MF200028 IS 'Kontoartenschlüssel',
MF200027 IS 'Kundendomizil',
MF200026 IS 'Kundensegment',
MF200025 IS 'Kundenart',
MF200024 IS 'PVV-Kunde',
MF200023 IS 'Cifnummer Kunde',
MF200022 IS 'BUID Kunde',
MF200021 IS 'Mutationsdatum',
MF200020 IS 'MutationsPID',
MF200019 IS 'Betrag in CHF',
MF200018 IS 'Betrag in FWhrg',
MF200017 IS 'Valor',
MF200016 IS 'Währung',
MF200015 IS 'Urheber',
MF200014 IS 'Grund',
MF200013 IS 'Buchungsdatum',
MF200012 IS 'Bewegungsverdichtung',
MF200011 IS 'Produkteklassifizierung',
MF200010 IS 'MF-Produkt',
MF200009 IS 'Produktenr_Prok/Bew.Art Depot',
MF200008 IS 'Bewegungsart Depot/Edelmetall',
MF200007 IS 'zu bewerten',
MF200006 IS 'nachzuerfassen',
MF200005 IS 'Storno',
MF200004 IS 'Auftragsnummer',
MF200003 IS 'Lieferantentyp',
MF200002 IS 'RZ-Herkunft',
MF200001 IS 'ID Mittelfluss (UUID)');
--
------------------------------------------------------------------------
-- Database=DGDB9998
-- Index=GDB9998.IWK200A1 On GDB9998.TWK200A1
------------------------------------------------------------------------
--
CREATE INDEX GDB9998.IWK200A1
ON GDB9998.TWK200A1
(MF200067 ASC,
MF200013 DESC)
USING STOGROUP GSMS
PRIQTY 48 SECQTY 7200
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
CLUSTER
(PART 1 VALUES('0010ZZZZZZZZ9999'),
PART 2 VALUES('0011BACOBACO1299'),
PART 3 VALUES('0011BACOBACO1399'),
PART 4 VALUES('0011BACOBACO1599'),
PART 5 VALUES('0011BACOBACO1699'),
PART 6 VALUES('0011BACOBACO1799'),
PART 7 VALUES('0011BACOBACO2299'),
PART 8 VALUES('0011BACOBACO2599'),
PART 9 VALUES('0011BACOBACO2799'),
PART 10 VALUES('0011BAHEBAHE9999'),
PART 11 VALUES('0011BAHTBAHT9999'),
PART 12 VALUES('0011BCMBBCMB9999'),
PART 13 VALUES('0011BCMSBCMS9999'),
PART 14 VALUES('0011BCRFBCRF9999'),
PART 15 VALUES('0011BCTLBCTL9999'),
PART 16 VALUES('0011BCZTBCZT9999'),
PART 17 VALUES('0011BCZWBCZW9999'),
PART 18 VALUES('0011BDNUBDNU9999'),
PART 19 VALUES('0011BGBABGBA9999'),
PART 20 VALUES('0011CKZFCKZF9999'),
PART 21 VALUES('0012PZZZPZZZ9999'),
PART 22 VALUES('0012SCNNSCNN9999'),
PART 23 VALUES('0012SCRRSCRR9999'),
PART 24 VALUES('0012SCZSSCZS9999'),
PART 25 VALUES('0012SWESSWES9999'),
PART 26 VALUES('0012SWLNSWLN9999'),
PART 27 VALUES('0013ZZZZZZZZ9999'),
PART 28 VALUES('0014ZZZZZZZZ9999'),
PART 29 VALUES('0015NCZZNCZZ9999'),
PART 30 VALUES('0015NZZZNZZZ9999'),
PART 31 VALUES('0020ZZZZZZZZ9999'),
PART 32 VALUES('9999ZZZZZZZZ9999'))
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES;
--
COMMIT;
--
------------------------------------------------------------------------
-- ADB2GEN - End of generated DDL --
------------------------------------------------------------------------
--
}¢--- A540769.WK.SQL(MF200LA) cre=2006-08-31 mod=2006-08-31-10.51.45 F540769 ---
------------------------------------------------------------------------
-- --
-- Database 2 Administration Tool (DB2 Admin) , program 5697-L90 (C) --
-- --
-- ADB2GEN - Extract object definitions from the DB2 Catalog tables --
-- --
-- Input prepared on : DBTF (810) Extract time : 2006-08-29 15:00 --
-- --
-- Catalog values overridden : none
-- --
-- Generate : SG=N DB=Y TS=Y TB=Y VW=Y IX=Y SY=Y AL=Y LB=Y CM=Y FK=Y --
-- TG=Y UT=N UF=N SP=N SQ=N --
-- Grants : SG=N DB=Y TS=N TB=N VW=N SC=N UT=N UF=N SP=N SQ=N --
-- --
------------------------------------------------------------------------
--
SET CURRENT SQLID='S100447';
------------------------------------------------------------------------
-- --
-- ADB2GEN: Generate DDL for Tablespace=A200A In Database DA540769 --
-- --
------------------------------------------------------------------------
--
------------------------------------------------------------------------
-- Database=DA540769 Stogroup=GSMS (for partition 1)
-- Tablespace=DA540769.A200A
------------------------------------------------------------------------
--
CREATE TABLESPACE A200A
IN DA540769
USING STOGROUP GSMS
PRIQTY 48 SECQTY 7200
FREEPAGE 10 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
DSSIZE 64G
NUMPARTS 32
(PART 16 FREEPAGE 0 PCTFREE 5)
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID EBCDIC
DEFINE YES
MAXROWS 255;
--
------------------------------------------------------------------------
-- Table=A540769.twk200A1 In DA540769.A200A
------------------------------------------------------------------------
--
CREATE TABLE A540769.TWK200A1
(MF200001 CHAR(16) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200002 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200003 CHAR(5) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200004 CHAR(25) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200005 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200006 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200007 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200008 CHAR(3) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200009 CHAR(5) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200010 CHAR(4) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200011 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200012 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200013 DATE NOT NULL WITH DEFAULT,
MF200014 CHAR(4) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200015 CHAR(4) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200016 CHAR(4) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200017 CHAR(12) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200018 DECIMAL(15, 3) NOT NULL WITH DEFAULT,
MF200019 DECIMAL(15, 3) NOT NULL WITH DEFAULT,
MF200020 CHAR(8) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200021 TIMESTAMP NOT NULL WITH DEFAULT,
MF200022 CHAR(4) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200023 CHAR(12) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200024 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200025 CHAR(3) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200026 CHAR(3) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200027 CHAR(3) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200028 CHAR(3) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200029 CHAR(3) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200030 CHAR(16) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200031 CHAR(2) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200032 CHAR(7) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200033 CHAR(7) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200034 CHAR(4) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200035 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200036 CHAR(18) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200037 DECIMAL(15, 0) NOT NULL WITH DEFAULT,
MF200038 CHAR(16) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200039 CHAR(2) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200040 CHAR(2) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200041 CHAR(2) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200042 CHAR(4) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200043 DECIMAL(15, 3) NOT NULL WITH DEFAULT,
MF200044 CHAR(5) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200045 CHAR(4) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200046 CHAR(4) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200047 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200051 CHAR(3) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200052 CHAR(3) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200053 DECIMAL(15, 3) NOT NULL WITH DEFAULT,
MF200054 CHAR(7) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200055 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200056 CHAR(8) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200059 CHAR(5) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200060 TIMESTAMP NOT NULL WITH DEFAULT,
MF200062 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200063 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200064 DATE NOT NULL WITH DEFAULT,
MF200065 DATE NOT NULL WITH DEFAULT,
MF200066 CHAR(16) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200067 CHAR(16) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200068 CHAR(16) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200069 CHAR(4) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200070 CHAR(7) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200071 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200072 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200073 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200074 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200075 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200076 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200077 CHAR(6) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200078 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200079 CHAR(1) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200080 DATE NOT NULL WITH DEFAULT,
MF200081 CHAR(5) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200082 CHAR(26) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200083 SMALLINT NOT NULL WITH DEFAULT,
MF200084 SMALLINT NOT NULL WITH DEFAULT,
MF200085 SMALLINT NOT NULL WITH DEFAULT,
MF200086 CHAR(35) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200087 CHAR(35) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200088 CHAR(35) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200089 CHAR(35) FOR SBCS DATA NOT NULL
WITH DEFAULT,
MF200090 SMALLINT NOT NULL WITH DEFAULT,
MF200091 SMALLINT NOT NULL WITH DEFAULT,
MF200092 CHAR(16) FOR SBCS DATA NOT NULL
WITH DEFAULT
-- CONSTRAINT MF200001
-- PRIMARY KEY (MF200001)
)
IN DA540769.A200A
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE;
--
LABEL ON TABLE A540769.twk200A1 IS 'dokumentierende Mittelflüsse';
--
LABEL ON A540769.TWK200A1
(MF200092 IS 'RM-PID international',
MF200091 IS 'Limiten-Hierarchie',
MF200090 IS 'Limiten-Typ',
MF200089 IS 'Ort Begünstigter',
MF200088 IS 'Name Begünstigter',
MF200087 IS 'Ort Auftraggeber',
MF200086 IS 'Name Auftraggeber',
MF200085 IS 'Life-Cycle-Status',
MF200084 IS 'Relevant-Group',
MF200083 IS 'Transaction-Typ',
MF200082 IS 'Lade_Timestamp_ID',
MF200081 IS 'Preiskomponente',
MF200080 IS 'mutierbar bis',
MF200079 IS 'Depot_Uebertrag',
MF200078 IS 'Vorheriger GP-Typ',
MF200077 IS 'Bankenclearing-Nr',
MF200076 IS 'Kommentar_Status',
MF200075 IS 'Edit-Status Gesamt',
MF200074 IS 'Edit-Status Hauptgruppe',
MF200073 IS 'Edit-Status Untergruppe',
MF200072 IS 'Edit-Status Gegenpartei',
MF200071 IS 'Prüfziffer Kundencif',
MF200070 IS 'Stammnummer Kundencif',
MF200069 IS 'Bankstelle Kundencif',
MF200068 IS 'int. Form OE Kundenbüro GP',
MF200067 IS 'int. Form OE Kundenbüro',
MF200066 IS 'int. Form OE-ID KV',
MF200065 IS 'Cif-Saldierungsdatum',
MF200064 IS 'Cif-Eröffnungsdatum',
MF200063 IS 'Mittelfluss-Identifikation',
MF200062 IS 'Coupon-Mantel',
MF200060 IS 'Erstellungstimestamp',
MF200059 IS 'Auftragslaufnummer',
MF200056 IS 'Policennr.',
MF200055 IS 'Richtung des Mittelflusses',
MF200054 IS 'Leitweg',
MF200053 IS 'Volumen in Nominal/Stück',
MF200052 IS 'Bearbeitungscode',
MF200051 IS 'Domizil Gegenpartei',
MF200047 IS 'Buchungsart',
MF200046 IS 'Programm_ID des Corbaservices',
MF200045 IS 'Depotstelle bzw. GMF_Laufnr.',
MF200044 IS 'Sequenz-Nummer zu Valor',
MF200043 IS 'Betrag zu Bestandeswährung',
MF200042 IS 'Bestandeswährung',
MF200041 IS 'Untergruppe Gegenpartei',
MF200040 IS 'Hauptgruppe Gegenpartei',
MF200039 IS 'Gegenpartei-Geldmarktzusatz',
MF200038 IS 'Gegenpartei-Beziehungsnummer',
MF200037 IS 'CSID Gegenpartei',
MF200036 IS 'Gegenpartei',
MF200035 IS 'Gegenpartei-Typ',
MF200034 IS 'BUID Gegenpartei',
MF200033 IS 'KundenverantwortlicheR',
MF200032 IS 'Kundenbüro Kunde',
MF200031 IS 'Kunden-Geldmarktzusatz',
MF200030 IS 'Kunden-Beziehungsnummer',
MF200029 IS 'Depotartenschlüssel',
MF200028 IS 'Kontoartenschlüssel',
MF200027 IS 'Kundendomizil',
MF200026 IS 'Kundensegment',
MF200025 IS 'Kundenart',
MF200024 IS 'PVV-Kunde',
MF200023 IS 'Cifnummer Kunde',
MF200022 IS 'BUID Kunde',
MF200021 IS 'Mutationsdatum',
MF200020 IS 'MutationsPID',
MF200019 IS 'Betrag in CHF',
MF200018 IS 'Betrag in FWhrg',
MF200017 IS 'Valor',
MF200016 IS 'Währung',
MF200015 IS 'Urheber',
MF200014 IS 'Grund',
MF200013 IS 'Buchungsdatum',
MF200012 IS 'Bewegungsverdichtung',
MF200011 IS 'Produkteklassifizierung',
MF200010 IS 'MF-Produkt',
MF200009 IS 'Produktenr_Prok/Bew.Art Depot',
MF200008 IS 'Bewegungsart Depot/Edelmetall',
MF200007 IS 'zu bewerten',
MF200006 IS 'nachzuerfassen',
MF200005 IS 'Storno',
MF200004 IS 'Auftragsnummer',
MF200003 IS 'Lieferantentyp',
MF200002 IS 'RZ-Herkunft',
MF200001 IS 'ID Mittelfluss (UUID)');
--
--
------------------------------------------------------------------------
-- Database=DA540769
-- Index=A540769.IMF200A1 On A540769.twk200A1
------------------------------------------------------------------------
--
CREATE INDEX A540769.IWK200A1
ON A540769.TWK200A1
(MF200067 ASC,
MF200013 DESC)
USING STOGROUP GSMS
PRIQTY 48 SECQTY 7200
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
CLUSTER
(PART 1 VALUES('0010ZZZZZZZZ9999'),
PART 2 VALUES('0011BACOBACO1299'),
PART 3 VALUES('0011BACOBACO1399'),
PART 4 VALUES('0011BACOBACO1599'),
PART 5 VALUES('0011BACOBACO1699'),
PART 6 VALUES('0011BACOBACO1799'),
PART 7 VALUES('0011BACOBACO2299'),
PART 8 VALUES('0011BACOBACO2599'),
PART 9 VALUES('0011BACOBACO2799'),
PART 10 VALUES('0011BAHEBAHE9999'),
PART 11 VALUES('0011BAHTBAHT9999'),
PART 12 VALUES('0011BCMBBCMB9999'),
PART 13 VALUES('0011BCMSBCMS9999'),
PART 14 VALUES('0011BCRFBCRF9999'),
PART 15 VALUES('0011BCTLBCTL9999'),
PART 16 VALUES('0011BCZTBCZT9999'),
PART 17 VALUES('0011BCZWBCZW9999'),
PART 18 VALUES('0011BDNUBDNU9999'),
PART 19 VALUES('0011BGBABGBA9999'),
PART 20 VALUES('0011CKZFCKZF9999'),
PART 21 VALUES('0012PZZZPZZZ9999'),
PART 22 VALUES('0012SCNNSCNN9999'),
PART 23 VALUES('0012SCRRSCRR9999'),
PART 24 VALUES('0012SCZSSCZS9999'),
PART 25 VALUES('0012SWESSWES9999'),
PART 26 VALUES('0012SWLNSWLN9999'),
PART 27 VALUES('0013ZZZZZZZZ9999'),
PART 28 VALUES('0014ZZZZZZZZ9999'),
PART 29 VALUES('0015NCZZNCZZ9999'),
PART 30 VALUES('0015NZZZNZZZ9999'),
PART 31 VALUES('0020ZZZZZZZZ9999'),
PART 32 VALUES('9999ZZZZZZZZ9999'))
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES;
commit;
}¢--- A540769.WK.SQL(MF202) cre=2006-08-31 mod=2006-08-31-13.21.08 F540769 -----
set current sqlid = 'S100447' ;
------------------------------------------------------------------------
-- --
-- Database 2 Administration Tool (DB2 Admin) , program 5697-L90 (C) --
-- --
-- ADB2GEN - Extract object definitions from the DB2 Catalog tables --
-- --
-- Input prepared on : DBTF (810) Extract time : 2006-08-31 13:18 --
-- --
-- Catalog values overridden : none
-- --
-- Generate : SG=N DB=Y TS=Y TB=Y VW=Y IX=Y SY=Y AL=Y LB=Y CM=Y FK=Y --
-- TG=Y UT=N UF=N SP=N SQ=N --
-- Grants : SG=N DB=Y TS=N TB=N VW=N SC=N UT=N UF=N SP=N SQ=N --
-- --
------------------------------------------------------------------------
--
SET CURRENT SQLID='S100447';
------------------------------------------------------------------------
-- --
-- ADB2GEN: Generate DDL for Tablespace=A202A In Database DA540769 --
-- --
------------------------------------------------------------------------
--
------------------------------------------------------------------------
-- Database=DA540769 Stogroup=GSMS
-- Tablespace=DA540769.A202A
------------------------------------------------------------------------
--
CREATE TABLESPACE A202A
IN DA540769
USING STOGROUP GSMS
PRIQTY 48 SECQTY 7200
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID EBCDIC
DEFINE YES
MAXROWS 255;
--
------------------------------------------------------------------------
-- Table=A540769.TWK202A1 In DA540769.A202A
------------------------------------------------------------------------
--
CREATE TABLE A540769.TWK202A1
(BUID CHAR(4) FOR SBCS DATA NOT NULL,
SELCD CHAR(20) FOR SBCS DATA NOT NULL,
GUELTIGAB TIMESTAMP NOT NULL,
GUELTIGBIS TIMESTAMP NOT NULL,
SPRACHE SMALLINT NOT NULL,
LETZTEMUT TIMESTAMP NOT NULL,
LETZTEMUTPID CHAR(7) FOR SBCS DATA NOT NULL,
"PARAMETER" VARCHAR(2048) FOR SBCS DATA NOT NULL,
CONSTRAINT BUID
PRIMARY KEY (BUID,
SELCD,
GUELTIGAB))
IN DA540769.A202A
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE;
--
------------------------------------------------------------------------
-- Database=DA540769
-- Index=A540769.IWK202A0 On A540769.TWK202A1
------------------------------------------------------------------------
--
CREATE UNIQUE INDEX A540769.IWK202A0
ON A540769.TWK202A1
(BUID ASC,
SELCD ASC,
GUELTIGAB ASC)
USING STOGROUP GSMS
PRIQTY 48 SECQTY 7200
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
--
}¢--- A540769.WK.SQL(MF202AKT) cre= mod= ---------------------------------------
------------------------------------------------------------------------
-- --
-- Database 2 Administration Tool (DB2 Admin) , program 5697-L90 (C) --
-- --
-- ADB2GEN - Extract object definitions from the DB2 Catalog tables --
-- --
-- Input prepared on : DBTF (810) Extract time : 2006-08-29 12:19 --
-- --
-- Catalog values overridden : none
-- --
-- Generate : SG=N DB=Y TS=Y TB=Y VW=Y IX=Y SY=Y AL=Y LB=Y CM=Y FK=Y --
-- TG=Y UT=N UF=N SP=N SQ=N --
-- Grants : SG=N DB=Y TS=N TB=N VW=N SC=N UT=N UF=N SP=N SQ=N --
-- --
------------------------------------------------------------------------
--
SET CURRENT SQLID='S100447';
------------------------------------------------------------------------
-- --
-- ADB2GEN: Generate DDL for Tablespace=A202A In Database MF01A1T --
-- --
------------------------------------------------------------------------
--
------------------------------------------------------------------------
-- Database=MF01A1T Stogroup=GSMS
-- Tablespace=MF01A1T.A202A
------------------------------------------------------------------------
--
CREATE TABLESPACE A202A
IN MF01A1T
USING STOGROUP GSMS
PRIQTY 48 SECQTY 7200
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID EBCDIC
DEFINE YES
MAXROWS 255;
--
------------------------------------------------------------------------
-- Table=OA1T.TMF202A1 In MF01A1T.A202A
------------------------------------------------------------------------
--
CREATE TABLE OA1T.TMF202A1
(BUID CHAR(4) FOR SBCS DATA NOT NULL,
SELCD CHAR(20) FOR SBCS DATA NOT NULL,
GUELTIGAB TIMESTAMP NOT NULL,
GUELTIGBIS TIMESTAMP NOT NULL,
SPRACHE SMALLINT NOT NULL,
LETZTEMUT TIMESTAMP NOT NULL,
LETZTEMUTPID CHAR(7) FOR SBCS DATA NOT NULL,
STEUERUNG VARCHAR(2048) FOR SBCS DATA NOT NULL,
CONSTRAINT BUID
PRIMARY KEY (BUID,
SELCD,
GUELTIGAB))
IN MF01A1T.A202A
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE;
--
------------------------------------------------------------------------
-- Database=MF01A1T
-- Index=OA1T.IMF202A0 On OA1T.TMF202A1
------------------------------------------------------------------------
--
CREATE UNIQUE INDEX OA1T.IMF202A0
ON OA1T.TMF202A1
(BUID ASC,
SELCD ASC,
GUELTIGAB ASC)
USING STOGROUP GSMS
PRIQTY 48 SECQTY 7200
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
--
------------------------------------------------------------------------
-- View=OA1T.VMF202A1
------------------------------------------------------------------------
--
--
SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","GDB0389" ;
--
CREATE VIEW OA1T.VMF202A1(TEV_DAT_ISO, TEV_DAT_EUR) AS
SELECT CHAR(DATE(SUBSTR(OA1T.TMF202A1.STEUERUNG, 1, 10)), ISO),
CHAR(DATE(SUBSTR(OA1T.TMF202A1.STEUERUNG, 1, 10)), EUR)
FROM OA1T.TMF202A1
WHERE OA1T.TMF202A1.BUID = '0000'
AND OA1T.TMF202A1.SELCD = 'TEV_ORDERDATE'
AND OA1T.TMF202A1.GUELTIGAB <= CURRENT TIMESTAMP
AND OA1T.TMF202A1.GUELTIGBIS >= CURRENT TIMESTAMP ;
--
------------------------------------------------------------------------
-- View=OA1T.VMF202A0
------------------------------------------------------------------------
--
--
SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","F558781" ;
--
CREATE VIEW OA1T.VMF202A0(KSEGM) AS
SELECT SUBSTR(OA1T.TMF202A1.SELCD, 18, 3)
FROM OA1T.TMF202A1,
OA1T.VMF202A1
WHERE OA1T.TMF202A1.BUID = '0000'
AND SUBSTR(OA1T.TMF202A1.SELCD, 1, 17) = 'TA-NTA-REL-KSEGM '
AND SUBSTR(OA1T.TMF202A1.STEUERUNG, 18, 1) = 'J'
AND OA1T.TMF202A1.GUELTIGAB <= TIMESTAMP(
OA1T.VMF202A1.TEV_DAT_ISO || '-00.00.00.000000')
AND OA1T.TMF202A1.GUELTIGBIS >= TIMESTAMP(
OA1T.VMF202A1.TEV_DAT_ISO || '-00.00.00.000000') ;
--
COMMIT;
--
-- REBIND PACKAGE(MF.MF5210.(A06M025609))
--
-- REBIND PACKAGE(MF.MF5230.(A06M025609))
--
-- REBIND PACKAGE(MF.MF7000.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF7010.(MFR0000056))
--
-- REBIND PACKAGE(MF.MF7010.(MFR0000049))
--
-- REBIND PACKAGE(MF.MF7020.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF7110.(MFR0000065))
--
-- REBIND PACKAGE(MF.MF7120.(MFR0000035))
--
-- REBIND PACKAGE(MF.MF7120.(MFR0000049))
--
-- REBIND PACKAGE(MF.MF7120.(MFR0000001))
--
-- REBIND PACKAGE(MF.MF7200.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF7200.(MFR0000001))
--
-- REBIND PACKAGE(MF.MF7200.(MFR0000090))
--
-- REBIND PACKAGE(MF.MF7210.(MFR0000056))
--
-- REBIND PACKAGE(MF.MF7210.(MFR0000049))
--
-- REBIND PACKAGE(MF.MF7210.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF7220.(MFR0000049))
--
-- REBIND PACKAGE(MF.MF7220.(MFR0000060))
--
-- REBIND PACKAGE(MF.MF7220.(MFR0000065))
--
-- REBIND PACKAGE(MF.MF7230.(MFR0000073))
--
-- REBIND PACKAGE(MF.MF7230.(MFR0000081))
--
-- REBIND PACKAGE(MF.MF7230.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF7240.(MFR0000035))
--
-- REBIND PACKAGE(MF.MF7240.(MFR0000049))
--
-- REBIND PACKAGE(MF.MF7240.(MFR0000060))
--
-- REBIND PACKAGE(MF.MF7250.(MFR0000035))
--
-- REBIND PACKAGE(MF.MF7250.(MFR0000049))
--
-- REBIND PACKAGE(MF.MF7250.(MFR0000073))
--
-- REBIND PACKAGE(MF.MF7260.(MFR0000035))
--
-- REBIND PACKAGE(MF.MF7260.(MFR0000049))
--
-- REBIND PACKAGE(MF.MF7260.(MFR0000060))
--
-- REBIND PACKAGE(MF.MF7300.(MFR0000060))
--
-- REBIND PACKAGE(MF.MF7300.(MFR0000065))
--
-- REBIND PACKAGE(MF.MF7300.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF7310.(MFR0000060))
--
-- REBIND PACKAGE(MF.MF7310.(MFR0000065))
--
-- REBIND PACKAGE(MF.MF7310.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF7320.(MFR0000049))
--
-- REBIND PACKAGE(MF.MF7320.(MFR0000060))
--
-- REBIND PACKAGE(MF.MF7320.(MFR0000065))
--
-- REBIND PACKAGE(MF.MF7330.(MFR0000060))
--
-- REBIND PACKAGE(MF.MF7330.(MFR0000065))
--
-- REBIND PACKAGE(MF.MF7330.(MFR0000078))
--
-- REBIND PACKAGE(MF.MF7331.(A06M024135))
--
-- REBIND PACKAGE(MF.MF7340.(MFR0000060))
--
-- REBIND PACKAGE(MF.MF7340.(MFR0000065))
--
-- REBIND PACKAGE(MF.MF7340.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF7360.(MFR0000060))
--
-- REBIND PACKAGE(MF.MF7360.(MFR0000065))
--
-- REBIND PACKAGE(MF.MF7360.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF7380.(MFR0000049))
--
-- REBIND PACKAGE(MF.MF7380.(MFR0000065))
--
-- REBIND PACKAGE(MF.MF7500.(MFR0000073))
--
-- REBIND PACKAGE(MF.MF7500.(MFR0000081))
--
-- REBIND PACKAGE(MF.MF7500.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF7510.(MFR0000073))
--
-- REBIND PACKAGE(MF.MF7510.(MFR0000081))
--
-- REBIND PACKAGE(MF.MF7510.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF7550.(MFR0000035))
--
-- REBIND PACKAGE(MF.MF7550.(MFR0000049))
--
-- REBIND PACKAGE(MF.MF7570.(MFR0000049))
--
-- REBIND PACKAGE(MF.MF7570.(MFR0000065))
--
-- REBIND PACKAGE(MF.MF7580.(MFR0000049))
--
-- REBIND PACKAGE(MF.MF7590.(MFR0000049))
--
-- REBIND PACKAGE(MF.MF7750.(MFR0000065))
--
-- REBIND PACKAGE(MF.MF7750.(MFR0000073))
--
-- REBIND PACKAGE(MF.MF7801.(MFR0000065))
--
-- REBIND PACKAGE(MF.MF7801.(MFR0000073))
--
-- REBIND PACKAGE(MF.MF7801.(MFR0000078))
--
-- REBIND PACKAGE(MF.MF7802.(MFR0000065))
--
-- REBIND PACKAGE(MF.MF7802.(MFR0000073))
--
-- REBIND PACKAGE(MF.MF7802.(MFR0000078))
--
-- REBIND PACKAGE(MF.MF7900.(MFR0000001))
--
-- REBIND PACKAGE(MF.MF7902.(MFR0000049))
--
-- REBIND PACKAGE(MF.MF7930.(MFR0000056))
--
-- REBIND PACKAGE(MF.MF7930.(MFR0000049))
--
-- REBIND PACKAGE(MF.MF7930.(MFR0000060))
--
-- REBIND PACKAGE(MF.MF8110.(MFR0000073))
--
-- REBIND PACKAGE(MF.MF8110.(MFR0000078))
--
-- REBIND PACKAGE(MF.MF8110.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF8111.(A06M023542))
--
-- REBIND PACKAGE(MF.MF8111.(A06M023446))
--
-- REBIND PACKAGE(MF.MF8111.(A06M023686))
--
-- REBIND PACKAGE(MF.MF8120.(MFR0000073))
--
-- REBIND PACKAGE(MF.MF8120.(MFR0000078))
--
-- REBIND PACKAGE(MF.MF8120.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF8121.(A06M024078))
--
-- REBIND PACKAGE(MF.MF8121.(A06M024620))
--
-- REBIND PACKAGE(MF.MF8130.(MFR0000075))
--
-- REBIND PACKAGE(MF.MF8130.(MFR0000004))
--
-- REBIND PACKAGE(MF.MF8130.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF8210.(MFR0000001))
--
-- REBIND PACKAGE(MF.MF8210.(MFR0000019))
--
-- REBIND PACKAGE(MF.MF8210.(MFR0000004))
--
-- REBIND PACKAGE(MF.MF8211.(A06M024078))
--
-- REBIND PACKAGE(MF.MF8211.(A06M024620))
--
-- REBIND PACKAGE(MF.MF8230.(A06M022797))
--
-- REBIND PACKAGE(MF.MF8230.(A06M024620))
--
-- REBIND PACKAGE(MF.MF8230.(A06M025317))
--
-- REBIND PACKAGE(MF.MF8310.(MFR0000049))
--
-- REBIND PACKAGE(MF.MF8310.(MFR0000065))
--
-- REBIND PACKAGE(MF.MF8310.(MFR0000073))
--
-- REBIND PACKAGE(MF.MF8320.(MFR0000065))
--
-- REBIND PACKAGE(MF.MF8320.(MFR0000073))
--
-- REBIND PACKAGE(MF.MF8320.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF8500.(MFR0000073))
--
-- REBIND PACKAGE(MF.MF8500.(MFR0000081))
--
-- REBIND PACKAGE(MF.MF8500.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF8501.(A19R002525))
--
-- REBIND PACKAGE(MF.MF8501.(A19R001839))
--
-- REBIND PACKAGE(MF.MF8502.(A19R002525))
--
-- REBIND PACKAGE(MF.MF8502.(A19R001839))
--
-- REBIND PACKAGE(MF.MF8505.(MFR0000073))
--
-- REBIND PACKAGE(MF.MF8505.(MFR0000081))
--
-- REBIND PACKAGE(MF.MF8505.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF8600.(MFR0000073))
--
-- REBIND PACKAGE(MF.MF8600.(MFR0000081))
--
-- REBIND PACKAGE(MF.MF8600.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF8610.(MFR0000035))
--
-- REBIND PACKAGE(MF.MF8610.(MFR0000049))
--
-- REBIND PACKAGE(MF.MF8620.(MFR0000073))
--
-- REBIND PACKAGE(MF.MF8620.(MFR0000081))
--
-- REBIND PACKAGE(MF.MF8620.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF8630.(MFR0000035))
--
-- REBIND PACKAGE(MF.MF8630.(MFR0000049))
--
-- REBIND PACKAGE(MF.MF8630.(MFR0000060))
--
-- REBIND PACKAGE(MF.MF8700.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF8703.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF8704.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF8705.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF8706.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF8707.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF8708.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF8710.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF8711.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF8714.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF8715.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF8717.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF8718.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF8719.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF8910.(MFR0000049))
--
-- REBIND PACKAGE(MF.MF8910.(MFR0000065))
--
-- REBIND PACKAGE(MF.MF8910.(MFR0000073))
--
-- REBIND PACKAGE(MF.MF8920.(MFR0000049))
--
-- REBIND PACKAGE(MF.MF8920.(MFR0000060))
--
-- REBIND PACKAGE(MF.MF8920.(MFR0000073))
--
-- REBIND PACKAGE(MF.MF8930.(MFR0000049))
--
-- REBIND PACKAGE(MF.MF8930.(MFR0000065))
--
-- REBIND PACKAGE(MF.MF8930.(MFR0000073))
--
-- REBIND PACKAGE(MF.MF8940.(MFR0000035))
--
-- REBIND PACKAGE(MF.MF8940.(MFR0000049))
--
-- REBIND PACKAGE(MF.MF8950.(MFR0000049))
--
-- REBIND PACKAGE(MF.MF8960.(MFR0000082))
--
-- REBIND PACKAGE(MF.MF9002.(MFR0000049))
--
-- REBIND PACKAGE(MF.MF9002.(MFR0000065))
--
-- REBIND PACKAGE(MF.MF9004.(MFR0000049))
--
-- REBIND PACKAGE(MF.MF9004.(MFR0000065))
--
-- REBIND PACKAGE(MF.MF9008.(MFR0000054))
--
-- REBIND PACKAGE(MF.MF9010.(MFR0000054))
--
-- REBIND PACKAGE(MF.MF9910.(A06M023542))
--
-- REBIND PACKAGE(MF.MF9911.(A06M023542))
--
-- REBIND PACKAGE(MF.YMFC001.(A06M02230450715910))
--
-- REBIND PACKAGE(MF.YMFC001.(A06M02297650A10D70))
--
-- REBIND PACKAGE(MF.YMFC001.(A06M02311350D6EB91))
--
-- REBIND PACKAGE(MF.YMFC001.(A06M02482152286595))
--
-- REBIND PACKAGE(MF.YMFC001.(A06M025182525A6405))
--
-- REBIND PACKAGE(MF.YMFC001.(A06M0253205267EE12))
--
-- REBIND PACKAGE(MF.YMFC001.(A06M02560752CBFAD5))
--
-- REBIND PACKAGE(MF.YMFC001.(A06M02613253048EFA))
--
-- REBIND PACKAGE(MF.YMFC001.(A06M025610536F8CA6))
--
-- REBIND PACKAGE(MF.YMFC001.(A06M026644538DB03D))
--
-- REBIND PACKAGE(MF.YMFC001.(A06M02663553B40B61))
--
-- REBIND PACKAGE(MF.YMFC001.(A06M02715954369B52))
--
-- REBIND PACKAGE(MF.YMFC001.(MFR000000954B51993))
--
-- REBIND PACKAGE(MF.YMFC002.(A06M02352052285F4F))
--
-- REBIND PACKAGE(MF.YMFC002.(A06M0253205267EDEC))
--
-- REBIND PACKAGE(MF.YMFC002.(A06M02560752CE9ADE))
--
-- REBIND PACKAGE(MF.YMFC002.(A06M025610532EF354))
--
-- REBIND PACKAGE(MF.YMFC002.(A06M0266355399BFDF))
--
-- REBIND PACKAGE(MF.YMFC002.(A06M026729543BE13E))
--
-- REBIND PACKAGE(MF.YMFC003.(A06M020968))
--
-- REBIND PACKAGE(MF.YMFC003.(A06M019961))
--
-- REBIND PACKAGE(MF.YMFC003.(A06M021412))
--
-- REBIND PACKAGE(MF.YMFC003.(A06M022304504CA443))
--
-- REBIND PACKAGE(MF.YMFC003.(A06M02297650A10D96))
--
-- REBIND PACKAGE(MF.YMFC003.(A06M02325450EE84A7))
--
-- REBIND PACKAGE(MF.YMFC003.(A06M02352052235FA5))
--
-- REBIND PACKAGE(MF.YMFC003.(A06M0253205267EDA1))
--
-- REBIND PACKAGE(MF.YMFC003.(A06M02561053318ADB))
--
-- REBIND PACKAGE(MF.YMFC003.(A06M02663553B40C7F))
--
-- REBIND PACKAGE(MF.YMFC003.(A06M026729543BE1D2))
--
-- REBIND PACKAGE(MF.YMFC004.(A06M021412))
--
-- REBIND PACKAGE(MF.YMFC004.(A06M0214124FE1F2B4))
--
-- REBIND PACKAGE(MF.YMFC004.(A06M02230450715DAD))
--
-- REBIND PACKAGE(MF.YMFC004.(A06M02297650A51B36))
--
-- REBIND PACKAGE(MF.YMFC004.(A06M024821521377A6))
--
-- REBIND PACKAGE(MF.YMFC004.(A06M025054525C03A9))
--
-- REBIND PACKAGE(MF.YMFC004.(A06M0253205267ED7F))
--
-- REBIND PACKAGE(MF.YMFC004.(A06M02560752CD309B))
--
-- REBIND PACKAGE(MF.YMFC004.(A06M02561053610904))
--
-- REBIND PACKAGE(MF.YMFC004.(A06M0266445384AF2E))
--
-- REBIND PACKAGE(MF.YMFC004.(A06M02663553B40C82))
--
-- REBIND PACKAGE(MF.YMFC004.(A06M0271595435601A))
--
-- REBIND PACKAGE(MF.YMFC004.(MFR000000954B518D8))
--
-- REBIND PACKAGE(MF.YMFC005.(A06M020690))
--
-- REBIND PACKAGE(MF.YMFC005.(A06M020707))
--
-- REBIND PACKAGE(MF.YMFC005.(A06M020487))
--
-- REBIND PACKAGE(MF.YMFC005.(A06M021412))
--
-- REBIND PACKAGE(MF.YMFC005.(A06M02230450715A63))
--
-- REBIND PACKAGE(MF.YMFC005.(A06M02311350D6EBAB))
--
-- REBIND PACKAGE(MF.YMFC005.(A06M0248215228681C))
--
-- REBIND PACKAGE(MF.YMFC005.(A06M025182525A642C))
--
-- REBIND PACKAGE(MF.YMFC005.(A06M025054525E4A6B))
--
-- REBIND PACKAGE(MF.YMFC005.(A06M0253205267ED6B))
--
-- REBIND PACKAGE(MF.YMFC005.(A06M02560752CD30BC))
--
-- REBIND PACKAGE(MF.YMFC005.(A06M02663553B40C8B))
--
-- REBIND PACKAGE(MF.YMFC005.(A06M027159543560E3))
--
-- REBIND PACKAGE(MF.YMFC005.(MFR000000954B518E5))
--
-- REBIND PACKAGE(MF.YMFC006.(A06M0256105337E5BC))
--
-- REBIND PACKAGE(MF.YMFC006.(A06M02651253788C6C))
--
-- REBIND PACKAGE(MF.YMFC006.(A06M02663553B40C96))
--
-- REBIND PACKAGE(MF.YMFC006.(A06M0267295435676D))
--
-- REBIND PACKAGE(MF.YMFC007.(A06M020785))
--
-- REBIND PACKAGE(MF.YMFC007.(A06M0207854FF313A9))
--
-- REBIND PACKAGE(MF.YMFC007.(A06M02230450715940))
--
-- REBIND PACKAGE(MF.YMFC007.(A06M025607529C9320))
--
-- REBIND PACKAGE(MF.YMFC007.(A06M02561053676932))
--
-- REBIND PACKAGE(MF.YMFC007.(A06M026644538C6680))
--
-- REBIND PACKAGE(MF.YMFC007.(A06M02672954356807))
--
-- REBIND PACKAGE(MF.YMFC008.(A06M020785))
--
-- REBIND PACKAGE(MF.YMFC008.(A06M0207854FF3150D))
--
-- REBIND PACKAGE(MF.YMFC008.(A06M02230450715943))
--
-- REBIND PACKAGE(MF.YMFC008.(A06M02297650A10DCF))
--
-- REBIND PACKAGE(MF.YMFC008.(A06M02345050FD12BA))
--
-- REBIND PACKAGE(MF.YMFC008.(A06M024821521377CD))
--
-- REBIND PACKAGE(MF.YMFC008.(A06M0253205267ECFB))
--
-- REBIND PACKAGE(MF.YMFC008.(A06M025607529C932F))
--
-- REBIND PACKAGE(MF.YMFC008.(A06M0256105337E4D3))
--
-- REBIND PACKAGE(MF.YMFC008.(A06M0266445385E835))
--
-- REBIND PACKAGE(MF.YMFC008.(A06M02663553B40BA6))
--
-- REBIND PACKAGE(MF.YMFC008.(A06M02672954356873))
--
-- REBIND PACKAGE(MF.YMFC009.(A06M02560752A46A58))
--
-- REBIND PACKAGE(MF.YMFC009.(A06M025610536F7BBB))
--
-- REBIND PACKAGE(MF.YMFC009.(A06M026512537892FC))
--
-- REBIND PACKAGE(MF.YMFC009.(A06M02663553B40BAE))
--
-- REBIND PACKAGE(MF.YMFC009.(A06M027159543BDEC1))
--
-- REBIND PACKAGE(MF.YMFC010.(A06M025610536F8F8B))
--
-- REBIND PACKAGE(MF.YMFC010.(A06M026512537890CD))
--
-- REBIND PACKAGE(MF.YMFC010.(A06M02700053E10A95))
--
-- REBIND PACKAGE(MF.YMFC010.(A06M02663553E211CE))
--
-- REBIND PACKAGE(MF.YMFC010.(A06M02715954355D79))
--
-- REBIND PACKAGE(MF.YMFC011.(A06M023520524A9DFD))
--
-- REBIND PACKAGE(MF.YMFC011.(A06M0253205270DCB2))
--
-- REBIND PACKAGE(MF.YMFC011.(A06M02560752CBFB1D))
--
-- REBIND PACKAGE(MF.YMFC011.(A06M026274532EB0A2))
--
-- REBIND PACKAGE(MF.YMFC011.(A06M025610536F7C29))
--
-- REBIND PACKAGE(MF.YMFC011.(A06M0266355384BF23))
--
-- REBIND PACKAGE(MF.YMFC011.(A06M02738954282462))
--
-- REBIND PACKAGE(MF.YMFC011.(A06M026729543BE222))
--
-- REBIND PACKAGE(MF.YMFC012.(A06M02560752CD2C29))
--
-- REBIND PACKAGE(MF.YMFC012.(A06M026264533D5907))
--
-- REBIND PACKAGE(MF.YMFC012.(A06M02561053413707))
--
-- REBIND PACKAGE(MF.YMFC012.(A06M026512537891BA))
--
-- REBIND PACKAGE(MF.YMFC012.(A06M026644538F50EA))
--
-- REBIND PACKAGE(MF.YMFC012.(A06M02663553BBFDA1))
--
-- REBIND PACKAGE(MF.YMFC012.(A06M026729543BE65F))
--
-- REBIND PACKAGE(MF.YMFC014.(A06M02560752CD1B68))
--
-- REBIND PACKAGE(MF.YMFC014.(A06M02341952FCBB0E))
--
-- REBIND PACKAGE(MF.YMFC014.(A06M0267295436A722))
--
-- REBIND PACKAGE(MF.YMFC015.(A06M02561053426693))
--
-- REBIND PACKAGE(MF.YMFC015.(A06M02689853C676A7))
--
-- REBIND PACKAGE(MF.YMFC015.(A06M02663553D6564F))
--
-- REBIND PACKAGE(MF.YMFC015.(A06M027159542D71EB))
--
-- REBIND PACKAGE(MF.YMFC015.(MFR000000954B517BE))
--
-- REBIND PACKAGE(MF.YMFC016.(A06M02561053398C72))
--
-- REBIND PACKAGE(MF.YMFC016.(A06M02689853C676AF))
--
-- REBIND PACKAGE(MF.YMFC016.(A06M02663553D655D0))
--
-- REBIND PACKAGE(MF.YMFC016.(A06M027159542D7226))
--
-- REBIND PACKAGE(MF.YMFC016.(MFR000000954B517C5))
--
-- REBIND PACKAGE(MF.YMFC017.(A06M025610536F7CDF))
--
-- REBIND PACKAGE(MF.YMFC017.(A06M02651253789276))
--
-- REBIND PACKAGE(MF.YMFC017.(A06M02672953DE3680))
--
-- REBIND PACKAGE(MF.YMFC017.(A06M02699153DF8D59))
--
-- REBIND PACKAGE(MF.YMFC017.(A06M02663553DFB7EE))
--
-- REBIND PACKAGE(MF.YMFC017.(A06M02728854106546))
--
-- REBIND PACKAGE(MF.YMFC017.(A06M027159543BDF1E))
--
-- REBIND PACKAGE(MF.YMFC101.(A06M02663553C5771E))
--
-- REBIND PACKAGE(MF.YMFC101.(A06M02698453F5D78F))
--
-- REBIND PACKAGE(MF.YMFC101.(A06M027338541EFE8E))
--
-- REBIND PACKAGE(MF.YMFC101.(A06M027159544F7F40))
--
-- REBIND PACKAGE(MF.YMFC101.(A06M027452547D9E63))
--
-- REBIND PACKAGE(MF.YMFC101.(MFR000000654914B9C))
--
-- REBIND PACKAGE(MF.YMFC101.(MFR000000954B50523))
--
-- REBIND PACKAGE(MF.YMFC101.(MFR0000024552BF4EF))
--
-- REBIND PACKAGE(MF.YMFC101.(MFR0000032556D9795))
--
-- REBIND PACKAGE(MF.YMFC101.(MFR0000046556DD5C7))
--
-- REBIND PACKAGE(MF.YMFC101.(MFR0000034559E8A78))
--
-- REBIND PACKAGE(MF.YMFC101.(MFR0000050561B7A9A))
--
-- REBIND PACKAGE(MF.YMFC101.(MFR00000615665540F))
--
-- REBIND PACKAGE(MF.YMFC101.(MFR000000456729578))
--
-- REBIND PACKAGE(MF.YMFC101.(MFR00000045672987C))
--
-- REBIND PACKAGE(MF.YMFC101.(MFR000006656B0DB0A))
--
-- REBIND PACKAGE(MF.YMFC101.(MFR000007556F0221D))
--
-- REBIND PACKAGE(MF.YMFC101.(MFR0000079574C7074))
--
-- REBIND PACKAGE(MF.YMFC101.(MFR0000083578E3B26))
--
-- REBIND PACKAGE(MF.YMFC102.(A06M026729543D2C85))
--
-- REBIND PACKAGE(MF.YMFC102.(A06M027452546CAFDA))
--
-- REBIND PACKAGE(MF.YMFC102.(MFR0000006548983E6))
--
-- REBIND PACKAGE(MF.YMFC102.(MFR000000954AAB638))
--
-- REBIND PACKAGE(MF.YMFC102.(MFR0000024550571A7))
--
-- REBIND PACKAGE(MF.YMFC102.(MFR000003455A514AE))
--
-- REBIND PACKAGE(MF.YMFC102.(MFR000005755D1E863))
--
-- REBIND PACKAGE(MF.YMFC102.(MFR0000050561BC80D))
--
-- REBIND PACKAGE(MF.YMFC103.(A06M026729543D2CBA))
--
-- REBIND PACKAGE(MF.YMFC103.(A06M027452546CB0A9))
--
-- REBIND PACKAGE(MF.YMFC103.(MFR0000006548983F7))
--
-- REBIND PACKAGE(MF.YMFC103.(MFR000000954B530F8))
--
-- REBIND PACKAGE(MF.YMFC103.(MFR000002454E9E006))
--
-- REBIND PACKAGE(MF.YMFC103.(MFR000003455A51C2E))
--
-- REBIND PACKAGE(MF.YMFC103.(MFR0000050561B7CAB))
--
-- REBIND PACKAGE(MF.YMFC104.(A06M026729543D2F02))
--
-- REBIND PACKAGE(MF.YMFC104.(A06M027110546B44FB))
--
-- REBIND PACKAGE(MF.YMFC104.(A06M027452547D8B15))
--
-- REBIND PACKAGE(MF.YMFC104.(MFR0000006548F0CB0))
--
-- REBIND PACKAGE(MF.YMFC104.(MFR000000954B69679))
--
-- REBIND PACKAGE(MF.YMFC104.(MFR00000315522A939))
--
-- REBIND PACKAGE(MF.YMFC104.(MFR0000024554B731D))
--
-- REBIND PACKAGE(MF.YMFC104.(MFR00000435565C9AA))
--
-- REBIND PACKAGE(MF.YMFC104.(MFR0000032556DBA77))
--
-- REBIND PACKAGE(MF.YMFC104.(MFR0000046556DD4E1))
--
-- REBIND PACKAGE(MF.YMFC104.(MFR0000034559BDB0F))
--
-- REBIND PACKAGE(MF.YMFC104.(MFR000000455DAF055))
--
-- REBIND PACKAGE(MF.YMFC104.(MFR000005855E475DE))
--
-- REBIND PACKAGE(MF.YMFC104.(MFR0000050561B7D10))
--
-- REBIND PACKAGE(MF.YMFC104.(MFR000006156604E3B))
--
-- REBIND PACKAGE(MF.YMFC104.(MFR000006656B1D6BC))
--
-- REBIND PACKAGE(MF.YMFC104.(MFR000000456F1559D))
--
-- REBIND PACKAGE(MF.YMFC104.(MFR000007556F15DB9))
--
-- REBIND PACKAGE(MF.YMFC104.(MFR0000079574C707A))
--
-- REBIND PACKAGE(MF.YMFC104.(MFR0000083578E3B39))
--
-- REBIND PACKAGE(MF.YMFC105.(A06M026729543D2ECA))
--
-- REBIND PACKAGE(MF.YMFC105.(A06M027452547D8B1C))
--
-- REBIND PACKAGE(MF.YMFC105.(MFR000000654914C82))
--
-- REBIND PACKAGE(MF.YMFC105.(MFR000000954B50618))
--
-- REBIND PACKAGE(MF.YMFC105.(MFR00000245538B3F4))
--
-- REBIND PACKAGE(MF.YMFC105.(MFR0000032556DC541))
--
-- REBIND PACKAGE(MF.YMFC105.(MFR0000046556DD4D6))
--
-- REBIND PACKAGE(MF.YMFC105.(MFR0000034559BDB1D))
--
-- REBIND PACKAGE(MF.YMFC105.(MFR0000050561B7D86))
--
-- REBIND PACKAGE(MF.YMFC105.(MFR000006156655415))
--
-- REBIND PACKAGE(MF.YMFC105.(MFR000006656C59C6A))
--
-- REBIND PACKAGE(MF.YMFC105.(MFR000007556F02225))
--
-- REBIND PACKAGE(MF.YMFC105.(MFR0000079574C707F))
--
-- REBIND PACKAGE(MF.YMFC105.(MFR0000083578E3B49))
--
-- REBIND PACKAGE(MF.YMFC106.(A06M027159543D3B09))
--
-- REBIND PACKAGE(MF.YMFC106.(A06M027452546CB444))
--
-- REBIND PACKAGE(MF.YMFC106.(MFR0000006548985B4))
--
-- REBIND PACKAGE(MF.YMFC106.(MFR000000954BE6D4D))
--
-- REBIND PACKAGE(MF.YMFC106.(MFR000003455A28BE6))
--
-- REBIND PACKAGE(MF.YMFC106.(MFR0000050561B8D77))
--
-- REBIND PACKAGE(MF.YMFC106.(MFR000006156605954))
--
-- REBIND PACKAGE(MF.YMFC106.(MFR000006656CB3A49))
--
-- REBIND PACKAGE(MF.YMFC106.(MFR00000795728AD7F))
--
-- REBIND PACKAGE(MF.YMFC106.(MFR000008357583124))
--
-- REBIND PACKAGE(MF.YMFC107.(A06M027159543BD679))
--
-- REBIND PACKAGE(MF.YMFC107.(A06M027452546CB47E))
--
-- REBIND PACKAGE(MF.YMFC107.(MFR0000006548985C6))
--
-- REBIND PACKAGE(MF.YMFC107.(MFR000000954BE6CAE))
--
-- REBIND PACKAGE(MF.YMFC107.(MFR0000034559E3B11))
--
-- REBIND PACKAGE(MF.YMFC107.(MFR000006156546BC2))
--
-- REBIND PACKAGE(MF.YMFC107.(MFR00000835757D747))
--
-- REBIND PACKAGE(MF.YMFC108.(A06M027159544CD861))
--
-- REBIND PACKAGE(MF.YMFC108.(A06M027452546CB4C1))
--
-- REBIND PACKAGE(MF.YMFC108.(MFR00000045489A997))
--
-- REBIND PACKAGE(MF.YMFC108.(MFR00000045489B0EC))
--
-- REBIND PACKAGE(MF.YMFC108.(MFR00000065490163B))
--
-- REBIND PACKAGE(MF.YMFC108.(MFR000000954BB9CE9))
--
-- REBIND PACKAGE(MF.YMFC108.(MFR000003455A28C08))
--
-- REBIND PACKAGE(MF.YMFC108.(MFR0000050561B8E06))
--
-- REBIND PACKAGE(MF.YMFC108.(MFR0000061566059BA))
--
-- REBIND PACKAGE(MF.YMFC108.(MFR000006656B2128C))
--
-- REBIND PACKAGE(MF.YMFC108.(MFR00000795728ADD0))
--
-- REBIND PACKAGE(MF.YMFC108.(MFR0000083575831C8))
--
-- REBIND PACKAGE(MF.YMFC109.(A06M026729543D30E5))
--
-- REBIND PACKAGE(MF.YMFC109.(A06M027452546DBEFA))
--
-- REBIND PACKAGE(MF.YMFC109.(MFR00000065489895E))
--
-- REBIND PACKAGE(MF.YMFC109.(MFR000000954C4D95A))
--
-- REBIND PACKAGE(MF.YMFC109.(MFR000002354E1EE99))
--
-- REBIND PACKAGE(MF.YMFC109.(MFR000003455A514FD))
--
-- REBIND PACKAGE(MF.YMFC109.(MFR0000050561B8F9A))
--
-- REBIND PACKAGE(MF.YMFC110.(A06M027159543BD86F))
--
-- REBIND PACKAGE(MF.YMFC110.(A06M027452546DC21F))
--
-- REBIND PACKAGE(MF.YMFC110.(MFR000000654898A18))
--
-- REBIND PACKAGE(MF.YMFC110.(MFR000000954A91AF8))
--
-- REBIND PACKAGE(MF.YMFC110.(MFR000003455A2928D))
--
-- REBIND PACKAGE(MF.YMFC110.(MFR0000050561B7AAE))
--
-- REBIND PACKAGE(MF.YMFC110.(MFR000006156605015))
--
-- REBIND PACKAGE(MF.YMFC110.(MFR000006656C594B5))
--
-- REBIND PACKAGE(MF.YMFC110.(MFR00000795728AE0D))
--
-- REBIND PACKAGE(MF.YMFC110.(MFR00000835767C4BD))
--
-- REBIND PACKAGE(MF.YMFC111.(A06M026729543D2CFF))
--
-- REBIND PACKAGE(MF.YMFC111.(A06M027680546E0BCD))
--
-- REBIND PACKAGE(MF.YMFC111.(A06M027452547C4712))
--
-- REBIND PACKAGE(MF.YMFC111.(MFR00000065489840B))
--
-- REBIND PACKAGE(MF.YMFC111.(MFR000000954BE6AB0))
--
-- REBIND PACKAGE(MF.YMFC111.(MFR000002455127F24))
--
-- REBIND PACKAGE(MF.YMFC111.(MFR000003455A514E6))
--
-- REBIND PACKAGE(MF.YMFC111.(MFR0000050561BC9E6))
--
-- REBIND PACKAGE(MF.YMFC112.(A06M027159543D38B4))
--
-- REBIND PACKAGE(MF.YMFC112.(A06M027452546DC37F))
--
-- REBIND PACKAGE(MF.YMFC112.(MFR000000654898AFC))
--
-- REBIND PACKAGE(MF.YMFC112.(MFR000000954A91662))
--
-- REBIND PACKAGE(MF.YMFC112.(MFR00000245523C86D))
--
-- REBIND PACKAGE(MF.YMFC112.(MFR000003455A294D6))
--
-- REBIND PACKAGE(MF.YMFC112.(MFR0000050561BCD4F))
--
-- REBIND PACKAGE(MF.YMFC112.(MFR000000456645719))
--
-- REBIND PACKAGE(MF.YMFC112.(MFR000006156657951))
--
-- REBIND PACKAGE(MF.YMFC112.(MFR000006656B1CA60))
--
-- REBIND PACKAGE(MF.YMFC112.(MFR000007256F7A308))
--
-- REBIND PACKAGE(MF.YMFC112.(MFR0000079573DC572))
--
-- REBIND PACKAGE(MF.YMFC112.(MFR00000835767C4C4))
--
-- REBIND PACKAGE(MF.YMFC113.(A06M02715954315ED7))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR0000004547C851B))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR0000004547C8D6F))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR0000004547C954B))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR0000004547C980C))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR0000004547C9981))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR0000004547C9BCE))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR0000004547C9DEF))
--
-- REBIND PACKAGE(MF.YMFC113.(A06M027452547DA0D2))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR0000004547F0A9B))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR00000045480695B))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR000000454857785))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR0000004548584D3))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR00000045485C1AB))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR00000045485D2F7))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR00000045485D51B))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR00000045486BBDA))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR00000045486E315))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR00000045486E5A7))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR00000045486E6D4))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR00000045486E8D7))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR00000045486F91D))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR000000454871A0D))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR000000454883902))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR0000004548848D3))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR0000004548851E8))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR000000454885516))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR00000045488580B))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR0000004548862E2))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR00000045489A7B6))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR0000006548F0B50))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR0000024552BCF02))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR0000032556D97A0))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR00000505631ED02))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR0000061564C942A))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR000006656BC60A7))
--
-- REBIND PACKAGE(MF.YMFC113.(MFR00000835767C4CA))
--
-- REBIND PACKAGE(MF.YMFC114.(A06M02715954315F12))
--
-- REBIND PACKAGE(MF.YMFC114.(A06M027452547D87D2))
--
-- REBIND PACKAGE(MF.YMFC114.(MFR000000654898B8E))
--
-- REBIND PACKAGE(MF.YMFC114.(MFR000000954B3E2FB))
--
-- REBIND PACKAGE(MF.YMFC114.(MFR0000083578E4191))
--
-- REBIND PACKAGE(MF.YMFC115.(A06M02663553A30FCC))
--
-- REBIND PACKAGE(MF.YMFC115.(A06M026729543D333A))
--
-- REBIND PACKAGE(MF.YMFC115.(A06M027452546DB354))
--
-- REBIND PACKAGE(MF.YMFC115.(MFR000000654898C30))
--
-- REBIND PACKAGE(MF.YMFC115.(MFR000000954A402D2))
--
-- REBIND PACKAGE(MF.YMFC115.(MFR0000024552BE538))
--
-- REBIND PACKAGE(MF.YMFC115.(MFR0000050561A96A5))
--
-- REBIND PACKAGE(MF.YMFC115.(MFR000006156545415))
--
-- REBIND PACKAGE(MF.YMFC115.(MFR000006656C590E1))
--
-- REBIND PACKAGE(MF.YMFC115.(MFR0000004570E1153))
--
-- REBIND PACKAGE(MF.YMFC115.(MFR0000079573DC675))
--
-- REBIND PACKAGE(MF.YMFC115.(MFR00000835767C4D6))
--
-- REBIND PACKAGE(MF.YMFC116.(A06M02663553A30FEF))
--
-- REBIND PACKAGE(MF.YMFC116.(A06M026729543BB49C))
--
-- REBIND PACKAGE(MF.YMFC116.(A06M027452546DB38A))
--
-- REBIND PACKAGE(MF.YMFC116.(MFR000000654898C41))
--
-- REBIND PACKAGE(MF.YMFC116.(MFR000000954A410A3))
--
-- REBIND PACKAGE(MF.YMFC116.(MFR000002454F3056F))
--
-- REBIND PACKAGE(MF.YMFC116.(MFR0000050561A9685))
--
-- REBIND PACKAGE(MF.YMFC116.(MFR0000061565453DB))
--
-- REBIND PACKAGE(MF.YMFC116.(MFR000006656A095E2))
--
-- REBIND PACKAGE(MF.YMFC116.(MFR0000004570E1158))
--
-- REBIND PACKAGE(MF.YMFC116.(MFR00000835767C4E0))
--
-- REBIND PACKAGE(MF.YMFC117.(A06M026729543D316A))
--
-- REBIND PACKAGE(MF.YMFC117.(A06M027680546E0852))
--
-- REBIND PACKAGE(MF.YMFC117.(A06M027452547C48AB))
--
-- REBIND PACKAGE(MF.YMFC117.(MFR000000654898973))
--
-- REBIND PACKAGE(MF.YMFC117.(MFR000000954C50E17))
--
-- REBIND PACKAGE(MF.YMFC117.(MFR000003455A51514))
--
-- REBIND PACKAGE(MF.YMFC117.(MFR0000050561B95FF))
--
-- REBIND PACKAGE(MF.YMFC118.(A06M026729543BAB2C))
--
-- REBIND PACKAGE(MF.YMFC118.(A06M027452546DC53A))
--
-- REBIND PACKAGE(MF.YMFC118.(MFR000000654898CE6))
--
-- REBIND PACKAGE(MF.YMFC118.(MFR000000954B3EE03))
--
-- REBIND PACKAGE(MF.YMFC118.(MFR0000024554B758C))
--
-- REBIND PACKAGE(MF.YMFC118.(MFR000003455B4E2B8))
--
-- REBIND PACKAGE(MF.YMFC118.(MFR0000050561B8A9F))
--
-- REBIND PACKAGE(MF.YMFC118.(MFR0000061566050F0))
--
-- REBIND PACKAGE(MF.YMFC118.(MFR000006656C59673))
--
-- REBIND PACKAGE(MF.YMFC118.(MFR00000795728AE83))
--
-- REBIND PACKAGE(MF.YMFC118.(MFR0000083575FEE4D))
--
-- REBIND PACKAGE(MF.YMFC119.(MFR0000034559BEA25))
--
-- REBIND PACKAGE(MF.YMFC120.(MFR0000034559BEDB5))
--
-- REBIND PACKAGE(MF.YMFC120.(MFR000005055F01B84))
--
-- REBIND PACKAGE(MF.YMFC202.(MFR000003455A29E00))
--
-- REBIND PACKAGE(MF.YMFC202.(MFR00000505641ED35))
--
-- REBIND PACKAGE(MF.YMFC202.(MFR00000615660567D))
--
-- REBIND PACKAGE(MF.YMFC202.(MFR000006656C1F613))
--
-- REBIND PACKAGE(MF.YMFC202.(MFR0000079574189AF))
--
-- REBIND PACKAGE(MF.YMFC203.(MFR000003455A29E77))
--
-- REBIND PACKAGE(MF.YMFC203.(MFR0000050561B7C7C))
--
-- REBIND PACKAGE(MF.YMFC203.(MFR0000061566056EA))
--
-- REBIND PACKAGE(MF.YMFC203.(MFR000006656C1F86A))
--
-- REBIND PACKAGE(MF.YMFC203.(MFR000007957418A72))
--
-- REBIND PACKAGE(MF.YMFC209.(MFR000003455A297A0))
--
-- REBIND PACKAGE(MF.YMFC209.(MFR0000050561B9011))
--
-- REBIND PACKAGE(MF.YMFC209.(MFR000006156605B7E))
--
-- REBIND PACKAGE(MF.YMFC209.(MFR000006656B0D50E))
--
-- REBIND PACKAGE(MF.YMFC209.(MFR0000079574192C4))
--
-- REBIND PACKAGE(MF.YMFC211.(MFR000003455A29EE0))
--
-- REBIND PACKAGE(MF.YMFC211.(MFR0000050561BC8A9))
--
-- REBIND PACKAGE(MF.YMFC211.(MFR000006156605751))
--
-- REBIND PACKAGE(MF.YMFC211.(MFR000006656C1FB75))
--
-- REBIND PACKAGE(MF.YMFC211.(MFR000007256F7A3D3))
--
-- REBIND PACKAGE(MF.YMFC211.(MFR000007957418AC3))
--
-- REBIND PACKAGE(MF.YMFC217.(MFR000003455A297FC))
--
-- REBIND PACKAGE(MF.YMFC217.(MFR0000050561B9648))
--
-- REBIND PACKAGE(MF.YMFC217.(MFR000006156605B52))
--
-- REBIND PACKAGE(MF.YMFC217.(MFR000006656C1FF7C))
--
-- REBIND PACKAGE(MF.YMFC217.(MFR000007256F7A481))
--
-- REBIND PACKAGE(MF.YMFC217.(MFR000007957419FF1))
--
-- REBIND PACKAGE(MF.YMFC219.(MFR00000505612A1DF))
--
-- REBIND PACKAGE(MF.YMFC219.(MFR0000061566057E5))
--
-- REBIND PACKAGE(MF.YMFC219.(MFR000006656C33628))
--
-- REBIND PACKAGE(MF.YMFC220.(MFR000005055FA980A))
--
-- REBIND PACKAGE(MF.YMFC220.(MFR0000061565465A2))
--
-- REBIND PACKAGE(MF.YMFC220.(MFR000006656C33B6B))
--
-- REBIND PACKAGE(MF.YMFC999.(MFR00000045486EAC4))
--
-- REBIND PACKAGE(MF.YMFC999.(MFR00000045486F46B))
--
-- REBIND PACKAGE(MF.YMFINFC.(A06M0267295403125F))
--
-- REBIND PACKAGE(MF.YMFINFO.(MFR0000050560270B4))
--
-- REBIND PACKAGE(MF.YMFINFO.(MFR0000050560270B4CICS))
--
-- REBIND PACKAGE(MF.YMFLPID.(MFR0000050560270B9))
--
-- REBIND PACKAGE(MF.YMFLPID.(MFR00000725729AA52))
--
-- REBIND PACKAGE(MF.YMFLPID.(MFR00000815735FF48))
--
-- REBIND PACKAGE(MF.YMFLPID.(MFR0000082577E5826))
--
-- REBIND PACKAGE(MF.YMFX155.(A06M0274525468DBC9))
--
-- REBIND PACKAGE(MF.YMFX155.(MFR000000654898DC6))
--
-- REBIND PACKAGE(MF.YMFX155.(MFR000000954BFD972))
--
-- REBIND PACKAGE(MF.YMFX155.(MFR0000034559E93E5))
--
-- REBIND PACKAGE(MF.YMFX155.(MFR0000050561B7A28))
--
-- REBIND PACKAGE(MF.YMFX155.(MFR000006156605569))
--
-- REBIND PACKAGE(MF.YMFX155.(MFR000006656C5AABD))
--
-- REBIND PACKAGE(MF.YMFX155.(MFR00000835767C612))
--
-- REBIND PACKAGE(YY.YYMFX55.(A06M020383))
--
-- REBIND PACKAGE(YY.YYMFX55.(A06M020384))
--
-- REBIND PACKAGE(YY.YYMFX55.(A06M020968))
--
-- REBIND PACKAGE(YY.YYMFX55.(A06M022304503C93C0))
--
-- REBIND PACKAGE(YY.YYMFX55.(A06M02297650A10E78))
--
-- REBIND PACKAGE(YY.YYMFX55.(A06M02325450EE84BE))
--
-- REBIND PACKAGE(YY.YYMFX55.(A06M02482152137894))
--
-- REBIND PACKAGE(YY.YYMFX55.(A06M0253205267EB08))
--
-- REBIND PACKAGE(YY.YYMFX55.(A06M02560752CC0743))
--
-- REBIND PACKAGE(YY.YYMFX55.(A06M025610533C1C84))
--
-- REBIND PACKAGE(YY.YYMFX55.(A06M0265125378B7F6))
--
-- REBIND PACKAGE(YY.YYMFX55.(A06M02663553B40D21))
--
-- REBIND PACKAGE(YY.YYMFX55.(A06M0271595436A01A))
--
------------------------------------------------------------------------
-- ADB2GEN - End of generated DDL --
------------------------------------------------------------------------
--
}¢--- A540769.WK.SQL(MF202REB) cre= mod= ---------------------------------------
REBIND PACKAGE(MF.MF5210.(A06M025609))
--
REBIND PACKAGE(MF.MF5230.(A06M025609))
--
REBIND PACKAGE(MF.MF7000.(MFR0000082))
--
REBIND PACKAGE(MF.MF7010.(MFR0000056))
--
REBIND PACKAGE(MF.MF7010.(MFR0000049))
--
REBIND PACKAGE(MF.MF7020.(MFR0000082))
--
REBIND PACKAGE(MF.MF7110.(MFR0000065))
--
REBIND PACKAGE(MF.MF7120.(MFR0000035))
--
REBIND PACKAGE(MF.MF7120.(MFR0000049))
--
REBIND PACKAGE(MF.MF7120.(MFR0000001))
--
REBIND PACKAGE(MF.MF7200.(MFR0000082))
--
REBIND PACKAGE(MF.MF7200.(MFR0000001))
--
REBIND PACKAGE(MF.MF7200.(MFR0000090))
--
REBIND PACKAGE(MF.MF7210.(MFR0000056))
--
REBIND PACKAGE(MF.MF7210.(MFR0000049))
--
REBIND PACKAGE(MF.MF7210.(MFR0000082))
--
REBIND PACKAGE(MF.MF7220.(MFR0000049))
--
REBIND PACKAGE(MF.MF7220.(MFR0000060))
--
REBIND PACKAGE(MF.MF7220.(MFR0000065))
--
REBIND PACKAGE(MF.MF7230.(MFR0000073))
--
REBIND PACKAGE(MF.MF7230.(MFR0000081))
--
REBIND PACKAGE(MF.MF7230.(MFR0000082))
--
REBIND PACKAGE(MF.MF7240.(MFR0000035))
--
REBIND PACKAGE(MF.MF7240.(MFR0000049))
--
REBIND PACKAGE(MF.MF7240.(MFR0000060))
--
REBIND PACKAGE(MF.MF7250.(MFR0000035))
--
REBIND PACKAGE(MF.MF7250.(MFR0000049))
--
REBIND PACKAGE(MF.MF7250.(MFR0000073))
--
REBIND PACKAGE(MF.MF7260.(MFR0000035))
--
REBIND PACKAGE(MF.MF7260.(MFR0000049))
--
REBIND PACKAGE(MF.MF7260.(MFR0000060))
--
REBIND PACKAGE(MF.MF7300.(MFR0000060))
--
REBIND PACKAGE(MF.MF7300.(MFR0000065))
--
REBIND PACKAGE(MF.MF7300.(MFR0000082))
--
REBIND PACKAGE(MF.MF7310.(MFR0000060))
--
REBIND PACKAGE(MF.MF7310.(MFR0000065))
--
REBIND PACKAGE(MF.MF7310.(MFR0000082))
--
REBIND PACKAGE(MF.MF7320.(MFR0000049))
--
REBIND PACKAGE(MF.MF7320.(MFR0000060))
--
REBIND PACKAGE(MF.MF7320.(MFR0000065))
--
REBIND PACKAGE(MF.MF7330.(MFR0000060))
--
REBIND PACKAGE(MF.MF7330.(MFR0000065))
--
REBIND PACKAGE(MF.MF7330.(MFR0000078))
--
REBIND PACKAGE(MF.MF7331.(A06M024135))
--
REBIND PACKAGE(MF.MF7340.(MFR0000060))
--
REBIND PACKAGE(MF.MF7340.(MFR0000065))
--
REBIND PACKAGE(MF.MF7340.(MFR0000082))
--
REBIND PACKAGE(MF.MF7360.(MFR0000060))
--
REBIND PACKAGE(MF.MF7360.(MFR0000065))
--
REBIND PACKAGE(MF.MF7360.(MFR0000082))
--
REBIND PACKAGE(MF.MF7380.(MFR0000049))
--
REBIND PACKAGE(MF.MF7380.(MFR0000065))
--
REBIND PACKAGE(MF.MF7500.(MFR0000073))
--
REBIND PACKAGE(MF.MF7500.(MFR0000081))
--
REBIND PACKAGE(MF.MF7500.(MFR0000082))
--
REBIND PACKAGE(MF.MF7510.(MFR0000073))
--
REBIND PACKAGE(MF.MF7510.(MFR0000081))
--
REBIND PACKAGE(MF.MF7510.(MFR0000082))
--
REBIND PACKAGE(MF.MF7550.(MFR0000035))
--
REBIND PACKAGE(MF.MF7550.(MFR0000049))
--
REBIND PACKAGE(MF.MF7570.(MFR0000049))
--
REBIND PACKAGE(MF.MF7570.(MFR0000065))
--
REBIND PACKAGE(MF.MF7580.(MFR0000049))
--
REBIND PACKAGE(MF.MF7590.(MFR0000049))
--
REBIND PACKAGE(MF.MF7750.(MFR0000065))
--
REBIND PACKAGE(MF.MF7750.(MFR0000073))
--
REBIND PACKAGE(MF.MF7801.(MFR0000065))
--
REBIND PACKAGE(MF.MF7801.(MFR0000073))
--
REBIND PACKAGE(MF.MF7801.(MFR0000078))
--
REBIND PACKAGE(MF.MF7802.(MFR0000065))
--
REBIND PACKAGE(MF.MF7802.(MFR0000073))
--
REBIND PACKAGE(MF.MF7802.(MFR0000078))
--
REBIND PACKAGE(MF.MF7900.(MFR0000001))
--
REBIND PACKAGE(MF.MF7902.(MFR0000049))
--
REBIND PACKAGE(MF.MF7930.(MFR0000056))
--
REBIND PACKAGE(MF.MF7930.(MFR0000049))
--
REBIND PACKAGE(MF.MF7930.(MFR0000060))
--
REBIND PACKAGE(MF.MF8110.(MFR0000073))
--
REBIND PACKAGE(MF.MF8110.(MFR0000078))
--
REBIND PACKAGE(MF.MF8110.(MFR0000082))
--
REBIND PACKAGE(MF.MF8111.(A06M023542))
--
REBIND PACKAGE(MF.MF8111.(A06M023446))
--
REBIND PACKAGE(MF.MF8111.(A06M023686))
--
REBIND PACKAGE(MF.MF8120.(MFR0000073))
--
REBIND PACKAGE(MF.MF8120.(MFR0000078))
--
REBIND PACKAGE(MF.MF8120.(MFR0000082))
--
REBIND PACKAGE(MF.MF8121.(A06M024078))
--
REBIND PACKAGE(MF.MF8121.(A06M024620))
--
REBIND PACKAGE(MF.MF8130.(MFR0000075))
--
REBIND PACKAGE(MF.MF8130.(MFR0000004))
--
REBIND PACKAGE(MF.MF8130.(MFR0000082))
--
REBIND PACKAGE(MF.MF8210.(MFR0000001))
--
REBIND PACKAGE(MF.MF8210.(MFR0000019))
--
REBIND PACKAGE(MF.MF8210.(MFR0000004))
--
REBIND PACKAGE(MF.MF8211.(A06M024078))
--
REBIND PACKAGE(MF.MF8211.(A06M024620))
--
REBIND PACKAGE(MF.MF8230.(A06M022797))
--
REBIND PACKAGE(MF.MF8230.(A06M024620))
--
REBIND PACKAGE(MF.MF8230.(A06M025317))
--
REBIND PACKAGE(MF.MF8310.(MFR0000049))
--
REBIND PACKAGE(MF.MF8310.(MFR0000065))
--
REBIND PACKAGE(MF.MF8310.(MFR0000073))
--
REBIND PACKAGE(MF.MF8320.(MFR0000065))
--
REBIND PACKAGE(MF.MF8320.(MFR0000073))
--
REBIND PACKAGE(MF.MF8320.(MFR0000082))
--
REBIND PACKAGE(MF.MF8500.(MFR0000073))
--
REBIND PACKAGE(MF.MF8500.(MFR0000081))
--
REBIND PACKAGE(MF.MF8500.(MFR0000082))
--
REBIND PACKAGE(MF.MF8501.(A19R002525))
--
REBIND PACKAGE(MF.MF8501.(A19R001839))
--
REBIND PACKAGE(MF.MF8502.(A19R002525))
--
REBIND PACKAGE(MF.MF8502.(A19R001839))
--
REBIND PACKAGE(MF.MF8505.(MFR0000073))
--
REBIND PACKAGE(MF.MF8505.(MFR0000081))
--
REBIND PACKAGE(MF.MF8505.(MFR0000082))
--
REBIND PACKAGE(MF.MF8600.(MFR0000073))
--
REBIND PACKAGE(MF.MF8600.(MFR0000081))
--
REBIND PACKAGE(MF.MF8600.(MFR0000082))
--
REBIND PACKAGE(MF.MF8610.(MFR0000035))
--
REBIND PACKAGE(MF.MF8610.(MFR0000049))
--
REBIND PACKAGE(MF.MF8620.(MFR0000073))
--
REBIND PACKAGE(MF.MF8620.(MFR0000081))
--
REBIND PACKAGE(MF.MF8620.(MFR0000082))
--
REBIND PACKAGE(MF.MF8630.(MFR0000035))
--
REBIND PACKAGE(MF.MF8630.(MFR0000049))
--
REBIND PACKAGE(MF.MF8630.(MFR0000060))
--
REBIND PACKAGE(MF.MF8700.(MFR0000082))
--
REBIND PACKAGE(MF.MF8703.(MFR0000082))
--
REBIND PACKAGE(MF.MF8704.(MFR0000082))
--
REBIND PACKAGE(MF.MF8705.(MFR0000082))
--
REBIND PACKAGE(MF.MF8706.(MFR0000082))
--
REBIND PACKAGE(MF.MF8707.(MFR0000082))
--
REBIND PACKAGE(MF.MF8708.(MFR0000082))
--
REBIND PACKAGE(MF.MF8710.(MFR0000082))
--
REBIND PACKAGE(MF.MF8711.(MFR0000082))
--
REBIND PACKAGE(MF.MF8714.(MFR0000082))
--
REBIND PACKAGE(MF.MF8715.(MFR0000082))
--
REBIND PACKAGE(MF.MF8717.(MFR0000082))
--
REBIND PACKAGE(MF.MF8718.(MFR0000082))
--
REBIND PACKAGE(MF.MF8719.(MFR0000082))
--
REBIND PACKAGE(MF.MF8910.(MFR0000049))
--
REBIND PACKAGE(MF.MF8910.(MFR0000065))
--
REBIND PACKAGE(MF.MF8910.(MFR0000073))
--
REBIND PACKAGE(MF.MF8920.(MFR0000049))
--
REBIND PACKAGE(MF.MF8920.(MFR0000060))
--
REBIND PACKAGE(MF.MF8920.(MFR0000073))
--
REBIND PACKAGE(MF.MF8930.(MFR0000049))
--
REBIND PACKAGE(MF.MF8930.(MFR0000065))
--
REBIND PACKAGE(MF.MF8930.(MFR0000073))
--
REBIND PACKAGE(MF.MF8940.(MFR0000035))
--
REBIND PACKAGE(MF.MF8940.(MFR0000049))
--
REBIND PACKAGE(MF.MF8950.(MFR0000049))
--
REBIND PACKAGE(MF.MF8960.(MFR0000082))
--
REBIND PACKAGE(MF.MF9002.(MFR0000049))
--
REBIND PACKAGE(MF.MF9002.(MFR0000065))
--
REBIND PACKAGE(MF.MF9004.(MFR0000049))
--
REBIND PACKAGE(MF.MF9004.(MFR0000065))
--
REBIND PACKAGE(MF.MF9008.(MFR0000054))
--
REBIND PACKAGE(MF.MF9010.(MFR0000054))
--
REBIND PACKAGE(MF.MF9910.(A06M023542))
--
REBIND PACKAGE(MF.MF9911.(A06M023542))
--
REBIND PACKAGE(MF.YMFC001.(A06M02230450715910))
--
REBIND PACKAGE(MF.YMFC001.(A06M02297650A10D70))
--
REBIND PACKAGE(MF.YMFC001.(A06M02311350D6EB91))
--
REBIND PACKAGE(MF.YMFC001.(A06M02482152286595))
--
REBIND PACKAGE(MF.YMFC001.(A06M025182525A6405))
--
REBIND PACKAGE(MF.YMFC001.(A06M0253205267EE12))
--
REBIND PACKAGE(MF.YMFC001.(A06M02560752CBFAD5))
--
REBIND PACKAGE(MF.YMFC001.(A06M02613253048EFA))
--
REBIND PACKAGE(MF.YMFC001.(A06M025610536F8CA6))
--
REBIND PACKAGE(MF.YMFC001.(A06M026644538DB03D))
--
REBIND PACKAGE(MF.YMFC001.(A06M02663553B40B61))
--
REBIND PACKAGE(MF.YMFC001.(A06M02715954369B52))
--
REBIND PACKAGE(MF.YMFC001.(MFR000000954B51993))
--
REBIND PACKAGE(MF.YMFC002.(A06M02352052285F4F))
--
REBIND PACKAGE(MF.YMFC002.(A06M0253205267EDEC))
--
REBIND PACKAGE(MF.YMFC002.(A06M02560752CE9ADE))
--
REBIND PACKAGE(MF.YMFC002.(A06M025610532EF354))
--
REBIND PACKAGE(MF.YMFC002.(A06M0266355399BFDF))
--
REBIND PACKAGE(MF.YMFC002.(A06M026729543BE13E))
--
REBIND PACKAGE(MF.YMFC003.(A06M020968))
--
REBIND PACKAGE(MF.YMFC003.(A06M019961))
--
REBIND PACKAGE(MF.YMFC003.(A06M021412))
--
REBIND PACKAGE(MF.YMFC003.(A06M022304504CA443))
--
REBIND PACKAGE(MF.YMFC003.(A06M02297650A10D96))
--
REBIND PACKAGE(MF.YMFC003.(A06M02325450EE84A7))
--
REBIND PACKAGE(MF.YMFC003.(A06M02352052235FA5))
--
REBIND PACKAGE(MF.YMFC003.(A06M0253205267EDA1))
--
REBIND PACKAGE(MF.YMFC003.(A06M02561053318ADB))
--
REBIND PACKAGE(MF.YMFC003.(A06M02663553B40C7F))
--
REBIND PACKAGE(MF.YMFC003.(A06M026729543BE1D2))
--
REBIND PACKAGE(MF.YMFC004.(A06M021412))
--
REBIND PACKAGE(MF.YMFC004.(A06M0214124FE1F2B4))
--
REBIND PACKAGE(MF.YMFC004.(A06M02230450715DAD))
--
REBIND PACKAGE(MF.YMFC004.(A06M02297650A51B36))
--
REBIND PACKAGE(MF.YMFC004.(A06M024821521377A6))
--
REBIND PACKAGE(MF.YMFC004.(A06M025054525C03A9))
--
REBIND PACKAGE(MF.YMFC004.(A06M0253205267ED7F))
--
REBIND PACKAGE(MF.YMFC004.(A06M02560752CD309B))
--
REBIND PACKAGE(MF.YMFC004.(A06M02561053610904))
--
REBIND PACKAGE(MF.YMFC004.(A06M0266445384AF2E))
--
REBIND PACKAGE(MF.YMFC004.(A06M02663553B40C82))
--
REBIND PACKAGE(MF.YMFC004.(A06M0271595435601A))
--
REBIND PACKAGE(MF.YMFC004.(MFR000000954B518D8))
--
REBIND PACKAGE(MF.YMFC005.(A06M020690))
--
REBIND PACKAGE(MF.YMFC005.(A06M020707))
--
REBIND PACKAGE(MF.YMFC005.(A06M020487))
--
REBIND PACKAGE(MF.YMFC005.(A06M021412))
--
REBIND PACKAGE(MF.YMFC005.(A06M02230450715A63))
--
REBIND PACKAGE(MF.YMFC005.(A06M02311350D6EBAB))
--
REBIND PACKAGE(MF.YMFC005.(A06M0248215228681C))
--
REBIND PACKAGE(MF.YMFC005.(A06M025182525A642C))
--
REBIND PACKAGE(MF.YMFC005.(A06M025054525E4A6B))
--
REBIND PACKAGE(MF.YMFC005.(A06M0253205267ED6B))
--
REBIND PACKAGE(MF.YMFC005.(A06M02560752CD30BC))
--
REBIND PACKAGE(MF.YMFC005.(A06M02663553B40C8B))
--
REBIND PACKAGE(MF.YMFC005.(A06M027159543560E3))
--
REBIND PACKAGE(MF.YMFC005.(MFR000000954B518E5))
--
REBIND PACKAGE(MF.YMFC006.(A06M0256105337E5BC))
--
REBIND PACKAGE(MF.YMFC006.(A06M02651253788C6C))
--
REBIND PACKAGE(MF.YMFC006.(A06M02663553B40C96))
--
REBIND PACKAGE(MF.YMFC006.(A06M0267295435676D))
--
REBIND PACKAGE(MF.YMFC007.(A06M020785))
--
REBIND PACKAGE(MF.YMFC007.(A06M0207854FF313A9))
--
REBIND PACKAGE(MF.YMFC007.(A06M02230450715940))
--
REBIND PACKAGE(MF.YMFC007.(A06M025607529C9320))
--
REBIND PACKAGE(MF.YMFC007.(A06M02561053676932))
--
REBIND PACKAGE(MF.YMFC007.(A06M026644538C6680))
--
REBIND PACKAGE(MF.YMFC007.(A06M02672954356807))
--
REBIND PACKAGE(MF.YMFC008.(A06M020785))
--
REBIND PACKAGE(MF.YMFC008.(A06M0207854FF3150D))
--
REBIND PACKAGE(MF.YMFC008.(A06M02230450715943))
--
REBIND PACKAGE(MF.YMFC008.(A06M02297650A10DCF))
--
REBIND PACKAGE(MF.YMFC008.(A06M02345050FD12BA))
--
REBIND PACKAGE(MF.YMFC008.(A06M024821521377CD))
--
REBIND PACKAGE(MF.YMFC008.(A06M0253205267ECFB))
--
REBIND PACKAGE(MF.YMFC008.(A06M025607529C932F))
--
REBIND PACKAGE(MF.YMFC008.(A06M0256105337E4D3))
--
REBIND PACKAGE(MF.YMFC008.(A06M0266445385E835))
--
REBIND PACKAGE(MF.YMFC008.(A06M02663553B40BA6))
--
REBIND PACKAGE(MF.YMFC008.(A06M02672954356873))
--
REBIND PACKAGE(MF.YMFC009.(A06M02560752A46A58))
--
REBIND PACKAGE(MF.YMFC009.(A06M025610536F7BBB))
--
REBIND PACKAGE(MF.YMFC009.(A06M026512537892FC))
--
REBIND PACKAGE(MF.YMFC009.(A06M02663553B40BAE))
--
REBIND PACKAGE(MF.YMFC009.(A06M027159543BDEC1))
--
REBIND PACKAGE(MF.YMFC010.(A06M025610536F8F8B))
--
REBIND PACKAGE(MF.YMFC010.(A06M026512537890CD))
--
REBIND PACKAGE(MF.YMFC010.(A06M02700053E10A95))
--
REBIND PACKAGE(MF.YMFC010.(A06M02663553E211CE))
--
REBIND PACKAGE(MF.YMFC010.(A06M02715954355D79))
--
REBIND PACKAGE(MF.YMFC011.(A06M023520524A9DFD))
--
REBIND PACKAGE(MF.YMFC011.(A06M0253205270DCB2))
--
REBIND PACKAGE(MF.YMFC011.(A06M02560752CBFB1D))
--
REBIND PACKAGE(MF.YMFC011.(A06M026274532EB0A2))
--
REBIND PACKAGE(MF.YMFC011.(A06M025610536F7C29))
--
REBIND PACKAGE(MF.YMFC011.(A06M0266355384BF23))
--
REBIND PACKAGE(MF.YMFC011.(A06M02738954282462))
--
REBIND PACKAGE(MF.YMFC011.(A06M026729543BE222))
--
REBIND PACKAGE(MF.YMFC012.(A06M02560752CD2C29))
--
REBIND PACKAGE(MF.YMFC012.(A06M026264533D5907))
--
REBIND PACKAGE(MF.YMFC012.(A06M02561053413707))
--
REBIND PACKAGE(MF.YMFC012.(A06M026512537891BA))
--
REBIND PACKAGE(MF.YMFC012.(A06M026644538F50EA))
--
REBIND PACKAGE(MF.YMFC012.(A06M02663553BBFDA1))
--
REBIND PACKAGE(MF.YMFC012.(A06M026729543BE65F))
--
REBIND PACKAGE(MF.YMFC014.(A06M02560752CD1B68))
--
REBIND PACKAGE(MF.YMFC014.(A06M02341952FCBB0E))
--
REBIND PACKAGE(MF.YMFC014.(A06M0267295436A722))
--
REBIND PACKAGE(MF.YMFC015.(A06M02561053426693))
--
REBIND PACKAGE(MF.YMFC015.(A06M02689853C676A7))
--
REBIND PACKAGE(MF.YMFC015.(A06M02663553D6564F))
--
REBIND PACKAGE(MF.YMFC015.(A06M027159542D71EB))
--
REBIND PACKAGE(MF.YMFC015.(MFR000000954B517BE))
--
REBIND PACKAGE(MF.YMFC016.(A06M02561053398C72))
--
REBIND PACKAGE(MF.YMFC016.(A06M02689853C676AF))
--
REBIND PACKAGE(MF.YMFC016.(A06M02663553D655D0))
--
REBIND PACKAGE(MF.YMFC016.(A06M027159542D7226))
--
REBIND PACKAGE(MF.YMFC016.(MFR000000954B517C5))
--
REBIND PACKAGE(MF.YMFC017.(A06M025610536F7CDF))
--
REBIND PACKAGE(MF.YMFC017.(A06M02651253789276))
--
REBIND PACKAGE(MF.YMFC017.(A06M02672953DE3680))
--
REBIND PACKAGE(MF.YMFC017.(A06M02699153DF8D59))
--
REBIND PACKAGE(MF.YMFC017.(A06M02663553DFB7EE))
--
REBIND PACKAGE(MF.YMFC017.(A06M02728854106546))
--
REBIND PACKAGE(MF.YMFC017.(A06M027159543BDF1E))
--
REBIND PACKAGE(MF.YMFC101.(A06M02663553C5771E))
--
REBIND PACKAGE(MF.YMFC101.(A06M02698453F5D78F))
--
REBIND PACKAGE(MF.YMFC101.(A06M027338541EFE8E))
--
REBIND PACKAGE(MF.YMFC101.(A06M027159544F7F40))
--
REBIND PACKAGE(MF.YMFC101.(A06M027452547D9E63))
--
REBIND PACKAGE(MF.YMFC101.(MFR000000654914B9C))
--
REBIND PACKAGE(MF.YMFC101.(MFR000000954B50523))
--
REBIND PACKAGE(MF.YMFC101.(MFR0000024552BF4EF))
--
REBIND PACKAGE(MF.YMFC101.(MFR0000032556D9795))
--
REBIND PACKAGE(MF.YMFC101.(MFR0000046556DD5C7))
--
REBIND PACKAGE(MF.YMFC101.(MFR0000034559E8A78))
--
REBIND PACKAGE(MF.YMFC101.(MFR0000050561B7A9A))
--
REBIND PACKAGE(MF.YMFC101.(MFR00000615665540F))
--
REBIND PACKAGE(MF.YMFC101.(MFR000000456729578))
--
REBIND PACKAGE(MF.YMFC101.(MFR00000045672987C))
--
REBIND PACKAGE(MF.YMFC101.(MFR000006656B0DB0A))
--
REBIND PACKAGE(MF.YMFC101.(MFR000007556F0221D))
--
REBIND PACKAGE(MF.YMFC101.(MFR0000079574C7074))
--
REBIND PACKAGE(MF.YMFC101.(MFR0000083578E3B26))
--
REBIND PACKAGE(MF.YMFC102.(A06M026729543D2C85))
--
REBIND PACKAGE(MF.YMFC102.(A06M027452546CAFDA))
--
REBIND PACKAGE(MF.YMFC102.(MFR0000006548983E6))
--
REBIND PACKAGE(MF.YMFC102.(MFR000000954AAB638))
--
REBIND PACKAGE(MF.YMFC102.(MFR0000024550571A7))
--
REBIND PACKAGE(MF.YMFC102.(MFR000003455A514AE))
--
REBIND PACKAGE(MF.YMFC102.(MFR000005755D1E863))
--
REBIND PACKAGE(MF.YMFC102.(MFR0000050561BC80D))
--
REBIND PACKAGE(MF.YMFC103.(A06M026729543D2CBA))
--
REBIND PACKAGE(MF.YMFC103.(A06M027452546CB0A9))
--
REBIND PACKAGE(MF.YMFC103.(MFR0000006548983F7))
--
REBIND PACKAGE(MF.YMFC103.(MFR000000954B530F8))
--
REBIND PACKAGE(MF.YMFC103.(MFR000002454E9E006))
--
REBIND PACKAGE(MF.YMFC103.(MFR000003455A51C2E))
--
REBIND PACKAGE(MF.YMFC103.(MFR0000050561B7CAB))
--
REBIND PACKAGE(MF.YMFC104.(A06M026729543D2F02))
--
REBIND PACKAGE(MF.YMFC104.(A06M027110546B44FB))
--
REBIND PACKAGE(MF.YMFC104.(A06M027452547D8B15))
--
REBIND PACKAGE(MF.YMFC104.(MFR0000006548F0CB0))
--
REBIND PACKAGE(MF.YMFC104.(MFR000000954B69679))
--
REBIND PACKAGE(MF.YMFC104.(MFR00000315522A939))
--
REBIND PACKAGE(MF.YMFC104.(MFR0000024554B731D))
--
REBIND PACKAGE(MF.YMFC104.(MFR00000435565C9AA))
--
REBIND PACKAGE(MF.YMFC104.(MFR0000032556DBA77))
--
REBIND PACKAGE(MF.YMFC104.(MFR0000046556DD4E1))
--
REBIND PACKAGE(MF.YMFC104.(MFR0000034559BDB0F))
--
REBIND PACKAGE(MF.YMFC104.(MFR000000455DAF055))
--
REBIND PACKAGE(MF.YMFC104.(MFR000005855E475DE))
--
REBIND PACKAGE(MF.YMFC104.(MFR0000050561B7D10))
--
REBIND PACKAGE(MF.YMFC104.(MFR000006156604E3B))
--
REBIND PACKAGE(MF.YMFC104.(MFR000006656B1D6BC))
--
REBIND PACKAGE(MF.YMFC104.(MFR000000456F1559D))
--
REBIND PACKAGE(MF.YMFC104.(MFR000007556F15DB9))
--
REBIND PACKAGE(MF.YMFC104.(MFR0000079574C707A))
--
REBIND PACKAGE(MF.YMFC104.(MFR0000083578E3B39))
--
REBIND PACKAGE(MF.YMFC105.(A06M026729543D2ECA))
--
REBIND PACKAGE(MF.YMFC105.(A06M027452547D8B1C))
--
REBIND PACKAGE(MF.YMFC105.(MFR000000654914C82))
--
REBIND PACKAGE(MF.YMFC105.(MFR000000954B50618))
--
REBIND PACKAGE(MF.YMFC105.(MFR00000245538B3F4))
--
REBIND PACKAGE(MF.YMFC105.(MFR0000032556DC541))
--
REBIND PACKAGE(MF.YMFC105.(MFR0000046556DD4D6))
--
REBIND PACKAGE(MF.YMFC105.(MFR0000034559BDB1D))
--
REBIND PACKAGE(MF.YMFC105.(MFR0000050561B7D86))
--
REBIND PACKAGE(MF.YMFC105.(MFR000006156655415))
--
REBIND PACKAGE(MF.YMFC105.(MFR000006656C59C6A))
--
REBIND PACKAGE(MF.YMFC105.(MFR000007556F02225))
--
REBIND PACKAGE(MF.YMFC105.(MFR0000079574C707F))
--
REBIND PACKAGE(MF.YMFC105.(MFR0000083578E3B49))
--
REBIND PACKAGE(MF.YMFC106.(A06M027159543D3B09))
--
REBIND PACKAGE(MF.YMFC106.(A06M027452546CB444))
--
REBIND PACKAGE(MF.YMFC106.(MFR0000006548985B4))
--
REBIND PACKAGE(MF.YMFC106.(MFR000000954BE6D4D))
--
REBIND PACKAGE(MF.YMFC106.(MFR000003455A28BE6))
--
REBIND PACKAGE(MF.YMFC106.(MFR0000050561B8D77))
--
REBIND PACKAGE(MF.YMFC106.(MFR000006156605954))
--
REBIND PACKAGE(MF.YMFC106.(MFR000006656CB3A49))
--
REBIND PACKAGE(MF.YMFC106.(MFR00000795728AD7F))
--
REBIND PACKAGE(MF.YMFC106.(MFR000008357583124))
--
REBIND PACKAGE(MF.YMFC107.(A06M027159543BD679))
--
REBIND PACKAGE(MF.YMFC107.(A06M027452546CB47E))
--
REBIND PACKAGE(MF.YMFC107.(MFR0000006548985C6))
--
REBIND PACKAGE(MF.YMFC107.(MFR000000954BE6CAE))
--
REBIND PACKAGE(MF.YMFC107.(MFR0000034559E3B11))
--
REBIND PACKAGE(MF.YMFC107.(MFR000006156546BC2))
--
REBIND PACKAGE(MF.YMFC107.(MFR00000835757D747))
--
REBIND PACKAGE(MF.YMFC108.(A06M027159544CD861))
--
REBIND PACKAGE(MF.YMFC108.(A06M027452546CB4C1))
--
REBIND PACKAGE(MF.YMFC108.(MFR00000045489A997))
--
REBIND PACKAGE(MF.YMFC108.(MFR00000045489B0EC))
--
REBIND PACKAGE(MF.YMFC108.(MFR00000065490163B))
--
REBIND PACKAGE(MF.YMFC108.(MFR000000954BB9CE9))
--
REBIND PACKAGE(MF.YMFC108.(MFR000003455A28C08))
--
REBIND PACKAGE(MF.YMFC108.(MFR0000050561B8E06))
--
REBIND PACKAGE(MF.YMFC108.(MFR0000061566059BA))
--
REBIND PACKAGE(MF.YMFC108.(MFR000006656B2128C))
--
REBIND PACKAGE(MF.YMFC108.(MFR00000795728ADD0))
--
REBIND PACKAGE(MF.YMFC108.(MFR0000083575831C8))
--
REBIND PACKAGE(MF.YMFC109.(A06M026729543D30E5))
--
REBIND PACKAGE(MF.YMFC109.(A06M027452546DBEFA))
--
REBIND PACKAGE(MF.YMFC109.(MFR00000065489895E))
--
REBIND PACKAGE(MF.YMFC109.(MFR000000954C4D95A))
--
REBIND PACKAGE(MF.YMFC109.(MFR000002354E1EE99))
--
REBIND PACKAGE(MF.YMFC109.(MFR000003455A514FD))
--
REBIND PACKAGE(MF.YMFC109.(MFR0000050561B8F9A))
--
REBIND PACKAGE(MF.YMFC110.(A06M027159543BD86F))
--
REBIND PACKAGE(MF.YMFC110.(A06M027452546DC21F))
--
REBIND PACKAGE(MF.YMFC110.(MFR000000654898A18))
--
REBIND PACKAGE(MF.YMFC110.(MFR000000954A91AF8))
--
REBIND PACKAGE(MF.YMFC110.(MFR000003455A2928D))
--
REBIND PACKAGE(MF.YMFC110.(MFR0000050561B7AAE))
--
REBIND PACKAGE(MF.YMFC110.(MFR000006156605015))
--
REBIND PACKAGE(MF.YMFC110.(MFR000006656C594B5))
--
REBIND PACKAGE(MF.YMFC110.(MFR00000795728AE0D))
--
REBIND PACKAGE(MF.YMFC110.(MFR00000835767C4BD))
--
REBIND PACKAGE(MF.YMFC111.(A06M026729543D2CFF))
--
REBIND PACKAGE(MF.YMFC111.(A06M027680546E0BCD))
--
REBIND PACKAGE(MF.YMFC111.(A06M027452547C4712))
--
REBIND PACKAGE(MF.YMFC111.(MFR00000065489840B))
--
REBIND PACKAGE(MF.YMFC111.(MFR000000954BE6AB0))
--
REBIND PACKAGE(MF.YMFC111.(MFR000002455127F24))
--
REBIND PACKAGE(MF.YMFC111.(MFR000003455A514E6))
--
REBIND PACKAGE(MF.YMFC111.(MFR0000050561BC9E6))
--
REBIND PACKAGE(MF.YMFC112.(A06M027159543D38B4))
--
REBIND PACKAGE(MF.YMFC112.(A06M027452546DC37F))
--
REBIND PACKAGE(MF.YMFC112.(MFR000000654898AFC))
--
REBIND PACKAGE(MF.YMFC112.(MFR000000954A91662))
--
REBIND PACKAGE(MF.YMFC112.(MFR00000245523C86D))
--
REBIND PACKAGE(MF.YMFC112.(MFR000003455A294D6))
--
REBIND PACKAGE(MF.YMFC112.(MFR0000050561BCD4F))
--
REBIND PACKAGE(MF.YMFC112.(MFR000000456645719))
--
REBIND PACKAGE(MF.YMFC112.(MFR000006156657951))
--
REBIND PACKAGE(MF.YMFC112.(MFR000006656B1CA60))
--
REBIND PACKAGE(MF.YMFC112.(MFR000007256F7A308))
--
REBIND PACKAGE(MF.YMFC112.(MFR0000079573DC572))
--
REBIND PACKAGE(MF.YMFC112.(MFR00000835767C4C4))
--
REBIND PACKAGE(MF.YMFC113.(A06M02715954315ED7))
--
REBIND PACKAGE(MF.YMFC113.(MFR0000004547C851B))
--
REBIND PACKAGE(MF.YMFC113.(MFR0000004547C8D6F))
--
REBIND PACKAGE(MF.YMFC113.(MFR0000004547C954B))
--
REBIND PACKAGE(MF.YMFC113.(MFR0000004547C980C))
--
REBIND PACKAGE(MF.YMFC113.(MFR0000004547C9981))
--
REBIND PACKAGE(MF.YMFC113.(MFR0000004547C9BCE))
--
REBIND PACKAGE(MF.YMFC113.(MFR0000004547C9DEF))
--
REBIND PACKAGE(MF.YMFC113.(A06M027452547DA0D2))
--
REBIND PACKAGE(MF.YMFC113.(MFR0000004547F0A9B))
--
REBIND PACKAGE(MF.YMFC113.(MFR00000045480695B))
--
REBIND PACKAGE(MF.YMFC113.(MFR000000454857785))
--
REBIND PACKAGE(MF.YMFC113.(MFR0000004548584D3))
--
REBIND PACKAGE(MF.YMFC113.(MFR00000045485C1AB))
--
REBIND PACKAGE(MF.YMFC113.(MFR00000045485D2F7))
--
REBIND PACKAGE(MF.YMFC113.(MFR00000045485D51B))
--
REBIND PACKAGE(MF.YMFC113.(MFR00000045486BBDA))
--
REBIND PACKAGE(MF.YMFC113.(MFR00000045486E315))
--
REBIND PACKAGE(MF.YMFC113.(MFR00000045486E5A7))
--
REBIND PACKAGE(MF.YMFC113.(MFR00000045486E6D4))
--
REBIND PACKAGE(MF.YMFC113.(MFR00000045486E8D7))
--
REBIND PACKAGE(MF.YMFC113.(MFR00000045486F91D))
--
REBIND PACKAGE(MF.YMFC113.(MFR000000454871A0D))
--
REBIND PACKAGE(MF.YMFC113.(MFR000000454883902))
--
REBIND PACKAGE(MF.YMFC113.(MFR0000004548848D3))
--
REBIND PACKAGE(MF.YMFC113.(MFR0000004548851E8))
--
REBIND PACKAGE(MF.YMFC113.(MFR000000454885516))
--
REBIND PACKAGE(MF.YMFC113.(MFR00000045488580B))
--
REBIND PACKAGE(MF.YMFC113.(MFR0000004548862E2))
--
REBIND PACKAGE(MF.YMFC113.(MFR00000045489A7B6))
--
REBIND PACKAGE(MF.YMFC113.(MFR0000006548F0B50))
--
REBIND PACKAGE(MF.YMFC113.(MFR0000024552BCF02))
--
REBIND PACKAGE(MF.YMFC113.(MFR0000032556D97A0))
--
REBIND PACKAGE(MF.YMFC113.(MFR00000505631ED02))
--
REBIND PACKAGE(MF.YMFC113.(MFR0000061564C942A))
--
REBIND PACKAGE(MF.YMFC113.(MFR000006656BC60A7))
--
REBIND PACKAGE(MF.YMFC113.(MFR00000835767C4CA))
--
REBIND PACKAGE(MF.YMFC114.(A06M02715954315F12))
--
REBIND PACKAGE(MF.YMFC114.(A06M027452547D87D2))
--
REBIND PACKAGE(MF.YMFC114.(MFR000000654898B8E));
--
REBIND PACKAGE(MF.YMFC114.(MFR000000954B3E2FB));
--
REBIND PACKAGE(MF.YMFC114.(MFR0000083578E4191));
--
REBIND PACKAGE(MF.YMFC115.(A06M02663553A30FCC));
--
REBIND PACKAGE(MF.YMFC115.(A06M026729543D333A));
--
REBIND PACKAGE(MF.YMFC115.(A06M027452546DB354));
--
REBIND PACKAGE(MF.YMFC115.(MFR000000654898C30));
--
REBIND PACKAGE(MF.YMFC115.(MFR000000954A402D2));
--
REBIND PACKAGE(MF.YMFC115.(MFR0000024552BE538));
--
REBIND PACKAGE(MF.YMFC115.(MFR0000050561A96A5));
--
REBIND PACKAGE(MF.YMFC115.(MFR000006156545415));
--
REBIND PACKAGE(MF.YMFC115.(MFR000006656C590E1));
--
REBIND PACKAGE(MF.YMFC115.(MFR0000004570E1153));
--
REBIND PACKAGE(MF.YMFC115.(MFR0000079573DC675));
--
REBIND PACKAGE(MF.YMFC115.(MFR00000835767C4D6));
--
REBIND PACKAGE(MF.YMFC116.(A06M02663553A30FEF));
--
REBIND PACKAGE(MF.YMFC116.(A06M026729543BB49C));
--
REBIND PACKAGE(MF.YMFC116.(A06M027452546DB38A));
--
REBIND PACKAGE(MF.YMFC116.(MFR000000654898C41));
--
REBIND PACKAGE(MF.YMFC116.(MFR000000954A410A3));
--
REBIND PACKAGE(MF.YMFC116.(MFR000002454F3056F))
--
REBIND PACKAGE(MF.YMFC116.(MFR0000050561A9685))
--
REBIND PACKAGE(MF.YMFC116.(MFR0000061565453DB))
--
REBIND PACKAGE(MF.YMFC116.(MFR000006656A095E2))
--
REBIND PACKAGE(MF.YMFC116.(MFR0000004570E1158))
--
REBIND PACKAGE(MF.YMFC116.(MFR00000835767C4E0))
--
REBIND PACKAGE(MF.YMFC117.(A06M026729543D316A))
--
REBIND PACKAGE(MF.YMFC117.(A06M027680546E0852))
--
REBIND PACKAGE(MF.YMFC117.(A06M027452547C48AB))
--
REBIND PACKAGE(MF.YMFC117.(MFR000000654898973))
--
REBIND PACKAGE(MF.YMFC117.(MFR000000954C50E17))
--
REBIND PACKAGE(MF.YMFC117.(MFR000003455A51514))
--
REBIND PACKAGE(MF.YMFC117.(MFR0000050561B95FF))
--
REBIND PACKAGE(MF.YMFC118.(A06M026729543BAB2C))
--
REBIND PACKAGE(MF.YMFC118.(A06M027452546DC53A))
--
REBIND PACKAGE(MF.YMFC118.(MFR000000654898CE6))
--
REBIND PACKAGE(MF.YMFC118.(MFR000000954B3EE03))
--
REBIND PACKAGE(MF.YMFC118.(MFR0000024554B758C))
--
REBIND PACKAGE(MF.YMFC118.(MFR000003455B4E2B8))
--
REBIND PACKAGE(MF.YMFC118.(MFR0000050561B8A9F))
--
REBIND PACKAGE(MF.YMFC118.(MFR0000061566050F0))
--
REBIND PACKAGE(MF.YMFC118.(MFR000006656C59673))
--
REBIND PACKAGE(MF.YMFC118.(MFR00000795728AE83))
--
REBIND PACKAGE(MF.YMFC118.(MFR0000083575FEE4D))
--
REBIND PACKAGE(MF.YMFC119.(MFR0000034559BEA25))
--
REBIND PACKAGE(MF.YMFC120.(MFR0000034559BEDB5))
--
REBIND PACKAGE(MF.YMFC120.(MFR000005055F01B84))
--
REBIND PACKAGE(MF.YMFC202.(MFR000003455A29E00))
--
REBIND PACKAGE(MF.YMFC202.(MFR00000505641ED35))
--
REBIND PACKAGE(MF.YMFC202.(MFR00000615660567D))
--
REBIND PACKAGE(MF.YMFC202.(MFR000006656C1F613))
--
REBIND PACKAGE(MF.YMFC202.(MFR0000079574189AF))
--
REBIND PACKAGE(MF.YMFC203.(MFR000003455A29E77))
--
REBIND PACKAGE(MF.YMFC203.(MFR0000050561B7C7C))
--
REBIND PACKAGE(MF.YMFC203.(MFR0000061566056EA))
--
REBIND PACKAGE(MF.YMFC203.(MFR000006656C1F86A))
--
REBIND PACKAGE(MF.YMFC203.(MFR000007957418A72))
--
REBIND PACKAGE(MF.YMFC209.(MFR000003455A297A0))
--
REBIND PACKAGE(MF.YMFC209.(MFR0000050561B9011))
--
REBIND PACKAGE(MF.YMFC209.(MFR000006156605B7E))
--
REBIND PACKAGE(MF.YMFC209.(MFR000006656B0D50E))
--
REBIND PACKAGE(MF.YMFC209.(MFR0000079574192C4))
--
REBIND PACKAGE(MF.YMFC211.(MFR000003455A29EE0))
--
REBIND PACKAGE(MF.YMFC211.(MFR0000050561BC8A9))
--
REBIND PACKAGE(MF.YMFC211.(MFR000006156605751))
--
REBIND PACKAGE(MF.YMFC211.(MFR000006656C1FB75))
--
REBIND PACKAGE(MF.YMFC211.(MFR000007256F7A3D3))
--
REBIND PACKAGE(MF.YMFC211.(MFR000007957418AC3))
--
REBIND PACKAGE(MF.YMFC217.(MFR000003455A297FC))
--
REBIND PACKAGE(MF.YMFC217.(MFR0000050561B9648))
--
REBIND PACKAGE(MF.YMFC217.(MFR000006156605B52))
--
REBIND PACKAGE(MF.YMFC217.(MFR000006656C1FF7C))
--
REBIND PACKAGE(MF.YMFC217.(MFR000007256F7A481))
--
REBIND PACKAGE(MF.YMFC217.(MFR000007957419FF1))
--
REBIND PACKAGE(MF.YMFC219.(MFR00000505612A1DF))
--
REBIND PACKAGE(MF.YMFC219.(MFR0000061566057E5))
--
REBIND PACKAGE(MF.YMFC219.(MFR000006656C33628))
--
REBIND PACKAGE(MF.YMFC220.(MFR000005055FA980A))
--
REBIND PACKAGE(MF.YMFC220.(MFR0000061565465A2))
--
REBIND PACKAGE(MF.YMFC220.(MFR000006656C33B6B))
--
REBIND PACKAGE(MF.YMFC999.(MFR00000045486EAC4))
--
REBIND PACKAGE(MF.YMFC999.(MFR00000045486F46B))
--
REBIND PACKAGE(MF.YMFINFC.(A06M0267295403125F))
--
REBIND PACKAGE(MF.YMFINFO.(MFR0000050560270B4))
--
REBIND PACKAGE(MF.YMFINFO.(MFR0000050560270B4CICS))
--
REBIND PACKAGE(MF.YMFLPID.(MFR0000050560270B9))
--
REBIND PACKAGE(MF.YMFLPID.(MFR00000725729AA52))
--
REBIND PACKAGE(MF.YMFLPID.(MFR00000815735FF48))
--
REBIND PACKAGE(MF.YMFLPID.(MFR0000082577E5826))
--
REBIND PACKAGE(MF.YMFX155.(A06M0274525468DBC9))
--
REBIND PACKAGE(MF.YMFX155.(MFR000000654898DC6))
--
REBIND PACKAGE(MF.YMFX155.(MFR000000954BFD972))
--
REBIND PACKAGE(MF.YMFX155.(MFR0000034559E93E5))
--
REBIND PACKAGE(MF.YMFX155.(MFR0000050561B7A28))
--
REBIND PACKAGE(MF.YMFX155.(MFR000006156605569))
--
REBIND PACKAGE(MF.YMFX155.(MFR000006656C5AABD))
--
REBIND PACKAGE(MF.YMFX155.(MFR00000835767C612))
--
REBIND PACKAGE(YY.YYMFX55.(A06M020383))
--
REBIND PACKAGE(YY.YYMFX55.(A06M020384))
--
REBIND PACKAGE(YY.YYMFX55.(A06M020968))
--
REBIND PACKAGE(YY.YYMFX55.(A06M022304503C93C0))
--
REBIND PACKAGE(YY.YYMFX55.(A06M02297650A10E78))
--
REBIND PACKAGE(YY.YYMFX55.(A06M02325450EE84BE))
--
REBIND PACKAGE(YY.YYMFX55.(A06M02482152137894))
--
REBIND PACKAGE(YY.YYMFX55.(A06M0253205267EB08))
--
REBIND PACKAGE(YY.YYMFX55.(A06M02560752CC0743))
--
REBIND PACKAGE(YY.YYMFX55.(A06M025610533C1C84))
--
REBIND PACKAGE(YY.YYMFX55.(A06M0265125378B7F6))
--
REBIND PACKAGE(YY.YYMFX55.(A06M02663553B40D21))
--
REBIND PACKAGE(YY.YYMFX55.(A06M0271595436A01A))
--
------------------------------------------------------------------------
-- ADB2GEN - End of generated DDL --
------------------------------------------------------------------------
--
}¢--- A540769.WK.SQL(MF7800) cre=2014-11-27 mod=2014-11-27-17.03.53 A540769 ----
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
select *
declare global temporary table session.Tkey_Ver_1 as
(select MF150001
from oa1p.tmf150a1
)
with no data
on commit delete rows
;
explain plan set queryno = 3 for
insert into oa1p.tmf150h1
(MF150001, MF150002, MF150003, MF150004, MF150005, MF150006
,MF150007, MF150008, MF150009, MF150010, MF150011, MF150012
,MF150013, MF150014, MF150015, MF150016, MF150017, MF150018
,MF150019, MF150020, MF150021, MF150022, MF150023, MF150024
,MF150025, MF150026, MF150027, MF150028, MF150029, MF150030
,MF150031, MF150032, MF150033, MF150034, MF150035, MF150036
,MF150037, MF150038, MF150039, MF150040, MF150041, MF150042
,MF150043, MF150044, MF150045, MF150046, MF150047, MF150051
,MF150052, MF150053, MF150054, MF150055, MF150056, MF150059
,MF150060, MF150062, MF150063, MF150064, MF150065, MF150066
,MF150067, MF150068, MF150069, MF150070, MF150071, MF150072
,MF150073, MF150074, MF150075, MF150076, MF150077, MF150078
,MF150079, MF150080, MF150081, MF150082, MF150083, MF150084
,MF150085, MF150086, MF150087, MF150088, MF150089, MF150090
,MF150091, MF150092, MF150019A)
select
MF150001, MF150002, MF150003, MF150004, MF150005, MF150006
,MF150007, MF150008, MF150009, MF150010, MF150011, MF150012
,MF150013, MF150014, MF150015, MF150016, MF150017, MF150018
,MF150019, MF150020, MF150021, MF150022, MF150023, MF150024
,MF150025, MF150026, MF150027, MF150028, MF150029, MF150030
,MF150031, MF150032, MF150033, MF150034, MF150035, MF150036
,MF150037, MF150038, MF150039, MF150040, MF150041, MF150042
,MF150043, MF150044, MF150045, MF150046, MF150047, MF150051
,MF150052, MF150053, MF150054, MF150055, MF150056, MF150059
,MF150060, MF150062, MF150063, MF150064, MF150065, MF150066
,MF150067, MF150068, MF150069, MF150070, MF150071, MF150072
,MF150073, MF150074, MF150075, MF150076, MF150077, MF150078
,MF150079, MF150080, MF150081, MF150082, MF150083, MF150084
,MF150085, MF150086, MF150087, MF150088, MF150089, MF150090
,MF150091, MF150092, MF150019A
from oa1p.tmf150a1
where MF150001 in
(select MF150001 from session.Tkey_Ver_1)
;
explain plan set queryno = 7 for
delete from oa1p.tmf150a1 a
where MF150001 in
(select MF150001 from session.Tkey_Ver_1)
;
select * from plan_view1
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
with ur
;
rollback
;;;;
/********************************************************************/
/* */
/* Letzte Source-Änderung: 21. May. 2012 09:12 F542850 */
/* */
/********************************************************************/
/* ----------------------------------------------------------------- * 00010002
¦ vvv ¦ 00020002
¦ Package.....: MFR_sfl_history ~~~~~ ¦ 00030002
¦ ( O O ) ¦ 00040002
+ -----------------------------------------------oooo--(_)--oooo--- + 00050002
¦ ¦ 00060002
¦ Autor.......: Corrado Garbagnati KGCG 21 ¦ 00070002
¦ Datum.......: 10/09/2010 ¦ 00080002
¦ .oooO ¦ 00090002
+ -------------------------------------------------( )-Oooo.----- + 00100002
¦ \ ( ( ) ¦ 00110002
¦ \_) ) / ¦ 00120002
¦ (_/ ¦ 00130002
+ ----------------------------------------------------------------- + 00140002
¦ ¦ 00160002
¦ Exports.....: MF7800 ¦ 00160002
¦ ¦ 00160002
+ ----------------------------------------------------------------- + 00140002
¦ Beschreibung: ¦ 00150002
¦ ¦ 00160002
¦ Das Programm historisiert Flüsse, welcher älter als ein Jahr ¦ 00160002
¦ sind. Dieser Prozess koptiert die Daten in TMF150H1 und löscht ¦ 00160002
¦ sie in TMF150A1. ¦ 00160002
¦ Um regelmässiges Absetzen von Commits zu ermöglichen, werden ¦ 00160002
¦ die Daten in Blöcken kopiert. Die Blockgrösse ist in ¦ 00160002
¦ Makro @blocksize (1000) definiert. Dieser Wert kann ¦ 00160002
¦ von "aussen" nicht verändert werden. ¦ 00160002
¦ ¦ 00160002
¦ Das Programm läuft wöchentich jeweils am Sonntag. ¦ 00160002
¦ ¦ 00160002
¦ Es stehen mehrere Transfer-Algorithmen zur Verfügung, die ¦ 00160002
¦ unterschiedliche Strategien verfolgen: ¦ 00160002
¦ ¦ 00160002
¦ Version 0 und 1: ¦ 00160002
¦ ¦ 00160002
¦ - Ermitteln der zu transferrierenden Flüsse und speichern ¦ 00160002
¦ deren Schlüssel in temporärer DB2-Tabelle ¦ 00160002
¦ ¦ 00160002
¦ - Kopieren dieser Flüsse in TMF150H1 anhand dieser Schlüssel ¦ 00160002
¦ ¦ 00160002
¦ - Löschen dieser Flüsse in TMF150A1 ¦ 00160002
¦ ¦ 00160002
¦ Vorteil: Daten verbeiben innerhalb von DB2 ¦ 00160002
¦ Nachteil: Daten können nicht mit Garantie in Clustering- ¦ 00160002
¦ Reihenfolge in TMF150H1 eingefügt werden ¦ 00160002
¦ (Fragmentierung). ¦ 00160002
¦ Datensuche erfolgt sowohl beim Kopieren als auch ¦ 00160002
¦ beim Löschen. ¦ 00160002
¦ ¦ 00160002
¦ Version 2: ¦ 00160002
¦ ¦ 00160002
¦ - Lesen der gelöschten Daten (SELECT FROM DELETE) mittels ¦ 00160002
¦ Cusrorverarbeitung. ¦ 00160002
¦ ¦ 00160002
¦ - Einfügen der Flüsse in TMF150H1 (FETCH and INSERT). ¦ 00160002
¦ ¦ 00160002
¦ Vorteil: Einfügen der Daten in TMF150H1 in Clustering- ¦ 00160002
¦ Reihenfolge. ¦ 00160002
¦ Nachteil: Daten verbleiben nicht innerhalb von DB2 (kopieren ¦ 00160002
¦ in den Adressraum des Programmes). ¦ 00160002
¦ ¦ 00160002
¦ Version 3 (Walters Vorschlag): ¦ 00160002
¦ ¦ 00160002
¦ - Ermitteln der zu transferrierenden Flüsse und speichern ¦ 00160002
¦ deren Schlüssel in temporärer DB2-Tabelle ¦ 00160002
¦ ¦ 00160002
¦ - Kopieren dieser Flüsse in TMF150H1 anhand dieser Schlüssel ¦ 00160002
¦ ¦ 00160002
¦ - Löschen dieser Flüsse in TMF150A1 ¦ 00160002
¦ ¦ 00160002
¦ Vorteil: Daten verbeiben innerhalb von DB2 ¦ 00160002
¦ Nachteil: Daten können nicht mit Garantie in Clustering- ¦ 00160002
¦ Reihenfolge in TMF150H1 eingefügt werden ¦ 00160002
¦ (Fragmentierung). ¦ 00160002
¦ Datensuche erfolgt sowohl beim Kopieren als auch ¦ 00160002
¦ beim Löschen. ¦ 00160002
¦ Anzahl der ermittelten Flüsse ist variable. ¦ 00160002
¦ ¦ 00160002
¦ Version 4: ¦ 00160002
¦ ¦ 00160002
¦ - Lesen der eingefügten Daten (SELECT FROM INSERT) mittels ¦ 00160002
¦ Cusrorverarbeitung (ROWSET FETCH). ¦ 00160002
¦ ¦ 00160002
¦ - Kopieren der UUID in temp. Tabelle (ROWSET INSERT) ¦ 00160002
¦ Cusrorverarbeitung (ROWSET FETCH). ¦ 00160002
¦ ¦ 00160002
¦ - Löschen in TMF150A1 anhand der temp. Tabelle. ¦ 00160002
¦ ¦ 00160002
¦ Nachteil: Daten verbleiben nicht innerhalb von DB2 (kopieren ¦ 00160002
¦ in den Adressraum des Programmes). ¦ 00160002
¦ Daten werden auch in temp. Tabelle kopiert ¦ 00160002
¦ (FINAL TABLE). ¦ 00160002
¦ ¦ 00160002
¦ Durch Performancetests soll der effektivere Algorithmus ¦ 00160002
¦ evaluiert werden. ¦ 00160002
¦ ¦ 00160002
¦ Berechnung des "älter als" Datums: ¦ 00160002
¦ ¦ 00160002
¦ - Aktuelles Datum - 365 Tage ¦ 00160002
¦ ¦ 00160002
¦ - Falls dieses Datum nicht auf einen Sonntag fällt, muss ¦ 00160002
¦ der vorangegangene Sonntag ermittelt werden. ¦ 00160002
¦ ¦ 00160002
¦ Programmparameter (aus Konfigurationsdatei): ¦ 00160002
¦ ¦ 00160002
¦ <?xml version="1.0" encoding="ebcdic-cp-ch" standalone="yes"?> ¦ 00160002
¦ <|--configuration of programm MF7800--> ¦ 00160002
¦ <configuration> ¦ 00160002
¦ <parameter-list> ¦ 00160002
¦ <parameter name="use-version"> 2</parameter>¦ 00160002
¦ <parameter name="print-after-#sfl"> 5000</parameter>¦ 00160002
¦ <parameter name="stop-after-#sfl"> 50000</parameter>¦ 00160002
¦ <parameter name="older-than-date"> 01.09.2009</parameter>¦ 00160002
¦ </parameter-list> ¦ 00160002
¦ </configuration> ¦ 00160002
¦ ¦ 00160002
¦ ¦ 00160002
¦ use-version: Verwende Version 2 (Default: Version 1) ¦ 00160002
¦ ¦ 00160002
¦ print-after-#sfl: Schreibe Meldung nach 5000 Flüssen ¦ 00160002
¦ (Default: 50000) ¦ 00160002
¦ ¦ 00160002
¦ stop-after-#sfl: Stoppe Verarbeitung nach 50000 Flüssen ¦ 00160002
¦ (Default: -1 - kein Stopp) ¦ 00160002
¦ ¦ 00160002
¦ older-than-date: Verwende dises "älter als" Datum ¦ 00160002
¦ (Default: berechnetes Dat.) ¦ 00160002
¦ ¦ 00160002
+ ----------------------------------------------------------------- + 00170002
¦ Bemerkung...: ¦ 00180002
¦ ¦ 00160002
¦ Die ersten Unittests wurden im DBAF mit dem Schema GDB0389 ¦ 00160002
¦ gemacht (siehe Makro @schema). Für den üblichen ET sollte ¦ 00160002
¦ kein Schema angegeben werden (Blank). Wird durch den Promote ¦ 00160002
¦ eingefügt. ¦ 00160002
¦ ¦ 00160002
+ ----------------------------------------------------------------- + 00170002
¦ Aenderungen.: ¦ 00180002
¦ ¦ 00190002
¦ 18.05.2012 Requirements: MFR-FoF_nfr_CS_Standard Ph.Franzos ¦ 00190002
¦ CR : 7079 PF0512 ¦ 00190002
¦ EPLI V4.2: SQL-Statements dürfen nur noch ¦ 00190002
¦ innerhalb einer Procedur deklariert werden. ¦ 00190002
¦ ¦ 00190002
¦ 10.09.2010 Intial ¦
¦ ¦
¦ CR 7021 (NEUVA) ¦
¦ Requirement MFR-FoF_nfr_Table_0001 ¦
¦ MFR-FoF_nfr_Table_0002 ¦
¦ Deployment: DC 4-2010 ¦
¦ ¦
* ----------------------------------------------------------------- */00200002
1/* ----------------------------------------------------------------- * 00930002
¦ Package ¦ 00940002
* ----------------------------------------------------------------- */00950002
MFR_sfl_history: package exports (MF7800);
%;
%/* Macros */;
%;
%/* Condition codes */;
%dcl @cc_ok char; %@cc_ok = '0';
%dcl @cc_err char; %@cc_err = '999';
%;
%/* SQL-States */;
%xinclude YMFWS00H;
%dcl @sqlDuplicate char; %@sqlDuplicate = '''23505''';
%;
%/* DB2-Schema GDB0389 (wird für Unittests verwendet: sonst Blank) */;
%dcl @schema char; %@schema = '';
%;
%/* setze Schema vor Tabellennamen */;
%@table: proc ($schema, $tableName) returns (char);
dcl $schema char;
dcl $tableName char;
/* Aufruf ohne Schema */
if length (trim ($schema)) < 1 then return (trim ($tableName));
return (trim ($schema) || '.' || trim ($tableName));
%end @table;
%activate @table;
%;
%/* Anzahl Historisierungen in einer Unit of Work */;
%dcl @blocksize char; %@blocksize = '500';
%dcl @blocksize_3 char; %@blocksize_3 = '10';
%;
%/* Format Buchungsdatum */;
%dcl @dateFmt char; %@dateFmt = '''DD.MM.YYYY''';
%;
%/* Default Datum */;
%dcl @dfltDate char; %@dfltDate = '''01.01.0001''';
%;
%/* sonstiges */;
%xinclude MFRMACH;
%;
1/* -Built-In's------------------------------------------------------ */01430002
dcl ( 01440002
addr 01590002
,datetime 01590002
,days 01590002
,daystodate 01590002
,edit 01590002
,float 01590002
,handle
,hbound
,hex
,huge
,lbound 01590002
,length 01590002
,lowercase
,mod 01590002
,omitted 01590002
,oncode 01590002
,onloc 01590002
,packagename 01590002
,plidelete 01590002
,plidump 01590002
,plifill
,present
,procedurename
,ptrvalue
,round
,sqrt
,sysnull
,uppercase
,validdate
,weekday
) builtin; 01600002
01010002
/* -External(s)----------------------------------------------------- */01430002
/* -Define(s)------------------------------------------------------- */01430002
define structure
1 rtSta_t /* Runtime Statistik */
,2 sumX float dec (16) /* Summe */
,2 sumX2 float dec (16) /* Summe der Quadrate */
,2 maxX float dec (16) /* Maximum */
,2 minX float dec (16) /* Minimum */
,2 nn fixed bin (31) /* Anzahl Messungen */
,2 text char (256) varz /* Freitext */
;
define alias fTransfer_t /* Transferfunktion A1 ---> H1 */
limited entry (file variable nonasgn
,handle sqlca_t nonasgn
,char (10) byaddr nonasgn
,char (10) byaddr nonasgn
,(*) handle rtSta_t byaddr nonasgn
)
returns (byvalue fixed bin (31))
options (byvalue)
variable;
01010002
/* -Constant(s)----------------------------------------------------- */01430002
/* YXRRSAF: verwendete Befehle */
dcl cConnect char value ('CONNECT');
dcl cDisconnect char value ('DISCONNECT');
dcl cCommit char value ('COMMIT');
dcl cRollback char value ('ROLLBACK');
/* Packagename */
dcl cPkg char value (packagename ());
/* Anzahl Transfers bevor Meldung */
dcl cMsgInterval char value (50000);
/* Anzahl Transfers bevor Statistik */
dcl cStaInterval char value (-1);
/* -Module(s)------------------------------------------------------- */01430002
%xinclude YMFSU0XH; /* support */
%xinclude YMFCF0XH; /* configuration */
%xinclude YMFMI0XH; /* misc.: timer, ...*/
%include YXRRSAF; /* recoverable attach facility */
/* -Based Variable(s)----------------------------------------------- */01430002
1/* ----------------------------------------------------------------- * 00930002
¦ MF7800 ¦ 00940002
* ----------------------------------------------------------------- */00950002
MF7800: proc ($args) options (MAIN); 00960002
dcl $args char (*) var nonasgn parm;
/* innerhalb PROC PF0512 */
1/* ----------------------------------------------------------------- * 01430002
¦ DB2 Tabellendeklarationen ¦
* ----------------------------------------------------------------- */
EXEC SQL
declare @table (@schema, tmf150a1) table
%include TMF150D; /* hat Strichpunkt im Copybook */
%;
EXEC SQL
declare @table (@schema, tmf150h1) table
%include TMF150D; /* hat Strichpunkt im Copybook */
%;
01010002
/* -External(s)----------------------------------------------------- */01430002
dcl SYSPRINT file print stream output ext;
/* -Constant(s)----------------------------------------------------- */01430002
dcl cPgm char value (procedurename ());
dcl ddConf char value ('file://dd:ddconf');
/* -Module(s)------------------------------------------------------- */01430002
/* -Variable(s) (automatic storage)--------------------------------- */01430002
dcl starttimePgm type tod_t init (@getTod ()) nonasgn;
dcl startDateTime type datetime_t init (datetime ()) nonasgn;
dcl starttime type tod_t init (@getTod ());
dcl doTransfer type fTransfer_t init (doTransferVersion_1);
dcl nMsgInterval fixed bin (31) init (cMsgInterval);
dcl nStaInterval fixed bin (31) init (cStaInterval);
dcl nTransfer fixed bin (31) init (0);
dcl nStop fixed bin (31) init (-1);
dcl useVersion fixed bin (31) init (1);
dcl nFlow fixed bin (31) init (0);
dcl nn fixed bin (31);
dcl fromDate char (10) init (@dfltDate);
dcl toDate char (10) init (calcToDate ());
dcl stopped bit (1) aligned;
dcl sqlca type sqlca_t;
dcl hSqlca handle sqlca_t init (handle (sqlca));
dcl 1 ausl, /* RETD und PARMD */
%include RETURND;,
2 $@rkeyl char (4),
2 $@rkeyf char (76),
%include PARMD;,
2 $@ssid char(4), /* DB2-Subsystem */
2 $@plan char(8) /* Plan */
;
dcl hRtStaTbl (10) handle rtSta_t init ((8) null ()
,newRtSta ('transfer total')
,newRtSta ('commit'));
/* -Error-Handling-------------------------------------------------- */
%include PGMANFA;
%;
1/* -Prologue-------------------------------------------------------- */01430002
call pliretc (@cc_err); /* init: error */
put edit
((@nRep) @repChar)
(skip, a)
('Package', cPkg, 'Compiletime', @compiletime)
(skip, a, x(5), a, col(45), a, x(5), a)
('Program', cPgm)
(skip, a, x(5), a)
;
call @suppPkg (SYSPRINT);
call @printTimeAndInfo (SYSPRINT, 'entering prologue');
put skip list ((@nRep) @repChar);
/* berechne Von-Datum
* (Von- bzw. Bis-Datum kann noch überschrieben werden
* in @getConfiguration - transfer-Funktion)
*/
fromDate = calcFromDate (toDate);
/* lese Parameter (PARM-Member)
*/
%include YYCNTRL; /* enthält auch READ-call */
put edit
((@nRep) @repChar)
(skip, a)
('SSID=', $@ssid, 'Plan=', $@plan)
(skip, a, a, x(5), a, a)
((@nRep) @repChar)
(skip, a)
;
/* lese Parameter (Konfiguration)
*/
call @getConfiguration (transfer, ddConf, *, SYSPRINT);
put skip list ((@nRep) @repChar);
/* überprüfe Von-Bis-Datum
*/
call checkHistPeriod (SYSPRINT, fromDate, toDate);
put edit
('transferring flows, between', fromDate, 'and', toDate)
(skip, a, x(1), a, x(1), a, x(1), a)
;
1 /* baue Verbindung zur DB auf (establish thread)
*/
call execRRSAFCmd (SYSPRINT, cConnect, $@ssid, $@plan);
select (useVersion);
when (0) do;
put skip list ('using verion 0 (with temporary table)');
put skip list ((@nRep) @repChar);
doTransfer = doTransferVersion_0; );
hRtStaTbl (1) = newRtSta
('fill UUID in temporary table');
hRtStaTbl (2) = newRtSta ('insert flows into TMF150H1');
hRtStaTbl (3) = newRtSta ('delete flows in TMF150A1');
/* erzeuge Global Temporay Table für UUID
*/
call @printTimeAndInfo (SYSPRINT
,"declare table 'Tkey_Ver_0'");
EXEC SQL
declare global temporary table session.Tkey_Ver_1 as
(select MF150001
from @table (@schema, tmf150a1)
)
with no data
on commit delete rows
;
if ^@chkSQL (@sqlOk) then
call exitPgm (SYSPRINT,"declare table 'Tkey_Ver_0' failed"
,hSqlCa);
end;
when (1) do;
put skip list ('using verion 1 (with temporary table)');
put skip list ((@nRep) @repChar);
doTransfer = doTransferVersion_1; );
hRtStaTbl (1) = newRtSta
('fill UUID, CIF, bookingdate and OU into temporary table');
hRtStaTbl (2) = newRtSta ('insert flows into TMF150H1');
hRtStaTbl (3) = newRtSta ('delete flows in TMF150A1');
/* erzeuge Global Temporay Table für UUID, Buchungsdatum und OE
*/
call @printTimeAndInfo (SYSPRINT
,"declare table 'Tkey_Ver_1'");
EXEC SQL
declare global temporary table session.Tkey_Ver_1 as
(select MF150001
,MF150023
,MF150013
,MF150067
from @table (@schema, tmf150a1)
)
with no data
on commit delete rows
;
if ^@chkSQL (@sqlOk) then
call exitPgm (SYSPRINT,"declare table 'Tkey_Ver_1' failed"
,hSqlCa);
end;
1 when (2) do;
put skip list ('using verion 2 (select from delete - insert)');
put skip list (' ---> data shuffling');
put skip list ((@nRep) @repChar);
doTransfer = doTransferVersion_2; );
hRtStaTbl (1) =
newRtSta ('open cursor - delete flows in TMF150A1');
hRtStaTbl (2) =
newRtSta ('fetch and insert flows into TMF150H1');
hRtStaTbl (3) = newRtSta ('close cursor');
end;
when (3) do;
put skip list ("using verion 3 (walther's solution)");
put skip list ((@nRep) @repChar);
doTransfer = doTransferVersion_3; );
hRtStaTbl (1) = newRtSta
('fill bookingdate and OU into temporary table');
hRtStaTbl (2) = newRtSta ('insert flows into TMF150H1');
hRtStaTbl (3) = newRtSta ('delete flows in TMF150A1');
/* erzeuge Global Temporay Table für Buchungsdatun und OE
*/
call @printTimeAndInfo (SYSPRINT, 'declare table Tkey_Ver_3');
EXEC SQL
declare global temporary table session.Tkey_Ver_3 as
(select MF150013
,MF150067
from @table (@schema, tmf150a1)
)
with no data
on commit delete rows
;
if ^@chkSQL (@sqlOk) then
call exitPgm (SYSPRINT,"declare table 'Tkey_Ver_3' failed"
,hSqlCa);
end;
1 when (4) do;
put skip list ('using verion 4 (select from insert - delete)');
put skip list ((@nRep) @repChar);
doTransfer = doTransferVersion_4; );
hRtStaTbl (1) = newRtSta
('open cursor - insert flows in TMF150H1');
hRtStaTbl (2) = newRtSta
('fetch and delete flows in TMF150A1');
hRtStaTbl (3) = newRtSta ('fill UUID into temporary table');
hRtStaTbl (4) = newRtSta ('delete SFL in TMF150A1');
hRtStaTbl (5) = newRtSta ('close cursor');
/* erzeuge Global Temporay Table für UUID
*/
call @printTimeAndInfo (SYSPRINT
,"declare table 'Tkey_Ver_4'");
EXEC SQL
declare global temporary table session.Tkey_Ver_4 as
(select MF150001
from @table (@schema, tmf150a1)
)
with no data
on commit delete rows
;
if ^@chkSQL (@sqlOk) then
call exitPgm (SYSPRINT,"declare table 'Tkey_Ver_4' failed"
,hSqlCa);
end;
other call exitPgm (SYSPRINT, 'not a valid version specified|');
end;
call @printElapsedTime (SYSPRINT, starttime
,'ending prologue');
1/* -MAINline-------------------------------------------------------- */01430002
call @printTimeAndInfo (SYSPRINT, 'entering MAINline');
put skip list ((@nRep) @repChar);
/* counting # of flows to be transferred
*/
nFlow = #ofSFL (SYSPRINT, hSqlca, fromDate, toDate);
put edit
('# of flows expected:', nFlow)
(skip, a, col(30), p'zzz,zzz,zzz,zz9')
;
if nStop > 0 then
put edit
('ATTENTION: stopping after # of flows transferred:'
, nStop)
(skip, a, x(3), p'zzz,zzz,zzz,zz9')
;
if useVersion ^= 3 then
put edit
('transferring flows in blocks of '
,trim (edit (@blocksize, 'zzzzz9')))
(skip, a, x(1), a)
;
put skip list ((@nRep) @repChar);
/* transferring single flows: TMF150A1 ---> TMF150H1
*/
startTime = @getTod ();
nn = doTransfer (SYSPRINT, hSqlca, fromDate, toDate, hRtStaTbl);
call add2RtStat (hRtStaTbl (9), starttime);
do while (nn > 0)
until (stopped);
nTransfer += nn;
/* print message
*/
if mod (nTransfer, nMsgInterval) = 0 then
call @printTimeAndInfo (SYSPRINT
,'# of transfers --->'
|| edit (nTransfer, 'z,zzz,zzz,zz9'));
stopped = (nStop > 0 & nStop <= nTransfer);
if stopped then
put skip list ('ATTENTION: processing stopped|');
else do;
/* committing changes
*/
startTime = @getTod ();
call execRRSAFCmd (SYSPRINT, cCommit, *, *);
call add2RtStat (hRtStaTbl (10), starttime);
/* print statistics
*/
if nStaInterval > 0
& mod (nTransfer, nStaInterval) = 0 then
call printRtStaTbl (SYSPRINT, hRtStaTbl);
/* transferring single flows: TMF150A1 ---> TMF150H1
*/
startTime = @getTod ();
nn = doTransfer (SYSPRINT
,hSqlca, fromDate, toDate, hRtStaTbl);
call add2RtStat (hRtStaTbl (9), starttime);
end;
end;
put skip list ((@nRep) @repChar);
/* last commit
*/
startTime = @getTod ();
call execRRSAFCmd (SYSPRINT, cCommit, *, *);
call add2RtStat (hRtStaTbl (10), starttime);
1/* -Epilog---------------------------------------------------------- */01430002
call @printTimeAndInfo (SYSPRINT, 'entering epilogue');
put skip list ((@nRep) @repChar);
put edit
('Program - Statistics', (@nRep) @repChar)
(skip, a, skip, a)
(' Expected flow(s)', nFlow)
(skip, a, col(30), p'zzz,zzz,zzz,zz9')
(' Transfer(s)', nTransfer)
(skip, a, col(30), p'zzz,zzz,zzz,zz9')
(' Blocksize', @blocksize)
(skip, a, col(30), p'zzz,zzz,zzz,zz9')
;
/* drucke Runtime-Statistik aus
* und rufe Destruktoren auf: gebe Heap-Memory frei
*/
call printRtStaTbl (SYSPRINT, hRtStaTbl);
call deleteRtStaTbl (hRtStaTbl);
/* baue Verbindung zur DB ab (also commits changes)
*/
call execRRSAFCmd (SYSPRINT, cDisconnect, *, *);
/* Zeitmessung (elpased time)
*/
call @printStartEndTime (SYSPRINT, startDateTime);
call @printElapsedTime (SYSPRINT, starttimePgm, 'program');
close file (*);
/* Condition Code
*/
call pliretc (@cc_ok); /* ok */
1/* ----------------------------------------------------------------- *
¦ Prozeduren/Funktionen INTERN ¦
* ----------------------------------------------------------------- */
/* -transfer 'getConfiguration'------------------------------Level 2 */
transfer: proc ($type, $name, $value)
options (nodescriptor);
dcl $type type cf_t parm;
dcl $name type cf_name_t nonasgn parm;
dcl $value type cf_name_t nonasgn optional parm;
dcl nn fixed bin (31);
dcl dateTmp char (10);
if $type ^= cf_parameter then return; /* falscher Typ */
if omitted ($value) then return; /* kein Wert angegeben */
if length ($value) = 0 then return; /* kein Wert mitgegeben */
/* Parameter(s) (Name/Value Pair)
*/
select (lowercase ($name));
/* use version
*/
when ('use-version') do;
nn = @char2Int ($value);
if nn > 0 & nn < 5 then useVersion = nn;
end;
/* use this from date
*/
when ('from-date') do;
dateTmp = $value;
if validdate (dateTmp, @dateFmt) then p;
fromDate = dateTmp; p;
end;
/* use this to date
*/
when ('to-date') do;
dateTmp = $value;
if validdate (dateTmp, @dateFmt) then p;
toDate = dateTmp; p;
end;
/* print message to SYSPRINT after # of SFLs transfered
*/
when ('print-msg-after-#sfl') do;
nn = @char2Int ($value);
if nn > 0 then nMsgInterval = nn;
end;
/* print statistcs SYSPRINT after # of SFLs transfered
*/
when ('print-sta-after-#sfl') do;
nn = @char2Int ($value);
if nn > 0 then nStaInterval = nn;
end;
/* stop processing after # of SFLs transfered
*/
when ('stop-after-#sfl') do;
nn = @char2Int ($value);
if nn > 0 then nStop = nn;
end;
other;
end;
end transfer;
end MF7800; 07640002
1/* ----------------------------------------------------------------- * 01430002
¦ Prozeduren/Funktionen EXTERN ¦
* ----------------------------------------------------------------- */
/* -transfer SFL TMF150A1 --> TMF150H1-----------------------Level 1 */
doTransferVersion_0: proc ($ddPrint
,$hSqlCa, $fromDate, $toDate, $hRtStaTbl)
returns (byvalue fixed bin (31))
options (byvalue);
dcl $ddPrint file variable nonasgn parm; /* Printstream */
dcl $hSqlca handle sqlca_t nonasgn parm; /* SQLCA */
dcl $fromDate char (10) byaddr nonasgn parm;
dcl $toDate char (10) byaddr nonasgn parm;
dcl $hRtStaTbl (*) handle rtSta_t byaddr nonasgn parm;
dcl fromDate_a char (10) init ($fromDate);
dcl toDate_a char (10) init ($toDate);
dcl starttime type tod_t;
dcl sqlca type sqlca_t based (ptrvalue ($hSqlCa));
starttime = @getTod ();
EXEC SQL
insert into session.Tkey_Ver_1
(mf150001
)
select MF150001 from @table (@schema, tmf150a1)
where MF150013 between :fromDate_a
and :toDate_a
order by MF150013
,MF150067
fetch first @blocksize rows only
;
if ^(@chkSql (@sqlOk)
| @chkSql (@sqlNoData)) then
call exitPgm ($ddPrint
,"insert 'session.Tkey_Ver_1' failed"
,$hSqlCa);
call add2RtStat ($hRtStaTbl (1), starttime);
if @chkSql (@sqlNoData) then return (0);
1 starttime = @getTod ();
EXEC SQL
insert into @table (@schema, tmf150h1)
(MF150001, MF150002, MF150003, MF150004, MF150005, MF150006
,MF150007, MF150008, MF150009, MF150010, MF150011, MF150012
,MF150013, MF150014, MF150015, MF150016, MF150017, MF150018
,MF150019, MF150020, MF150021, MF150022, MF150023, MF150024
,MF150025, MF150026, MF150027, MF150028, MF150029, MF150030
,MF150031, MF150032, MF150033, MF150034, MF150035, MF150036
,MF150037, MF150038, MF150039, MF150040, MF150041, MF150042
,MF150043, MF150044, MF150045, MF150046, MF150047, MF150051
,MF150052, MF150053, MF150054, MF150055, MF150056, MF150059
,MF150060, MF150062, MF150063, MF150064, MF150065, MF150066
,MF150067, MF150068, MF150069, MF150070, MF150071, MF150072
,MF150073, MF150074, MF150075, MF150076, MF150077, MF150078
,MF150079, MF150080, MF150081, MF150082, MF150083, MF150084
,MF150085, MF150086, MF150087, MF150088, MF150089, MF150090
,MF150091, MF150092, MF150019A)
select
MF150001, MF150002, MF150003, MF150004, MF150005, MF150006
,MF150007, MF150008, MF150009, MF150010, MF150011, MF150012
,MF150013, MF150014, MF150015, MF150016, MF150017, MF150018
,MF150019, MF150020, MF150021, MF150022, MF150023, MF150024
,MF150025, MF150026, MF150027, MF150028, MF150029, MF150030
,MF150031, MF150032, MF150033, MF150034, MF150035, MF150036
,MF150037, MF150038, MF150039, MF150040, MF150041, MF150042
,MF150043, MF150044, MF150045, MF150046, MF150047, MF150051
,MF150052, MF150053, MF150054, MF150055, MF150056, MF150059
,MF150060, MF150062, MF150063, MF150064, MF150065, MF150066
,MF150067, MF150068, MF150069, MF150070, MF150071, MF150072
,MF150073, MF150074, MF150075, MF150076, MF150077, MF150078
,MF150079, MF150080, MF150081, MF150082, MF150083, MF150084
,MF150085, MF150086, MF150087, MF150088, MF150089, MF150090
,MF150091, MF150092, MF150019A
from @table (@schema, tmf150a1)
where MF150001 in
(select MF150001 from session.Tkey_Ver_1)
;
if ^@chkSql (@sqlOk) then
call exitPgm ($ddPrint
,"insert into 'TMF150H1' failed"
,$hSqlCa);
call add2RtStat ($hRtStaTbl (2), starttime);
starttime = @getTod ();
EXEC SQL
delete from @table (@schema, tmf150a1) a
where MF150001 in
(select MF150001 from session.Tkey_Ver_1)
;
if ^@chkSql (@sqlOk) then
call exitPgm ($ddPrint
,"delete flows in 'TMF150A1' failed"
,$hSqlCa);
call add2RtStat ($hRtStaTbl (3), starttime);
return (sqlca.sqlerrd (3)); /* # of deletes in TMF150A1 */
end doTransferVersion_0;
1/* -transfer SFL TMF150A1 --> TMF150H1-----------------------Level 1 */
doTransferVersion_1: proc ($ddPrint
,$hSqlCa, $fromDate, $toDate, $hRtStaTbl)
returns (byvalue fixed bin (31))
options (byvalue);
dcl $ddPrint file variable nonasgn parm; /* Printstream */
dcl $hSqlca handle sqlca_t nonasgn parm; /* SQLCA */
dcl $fromDate char (10) byaddr nonasgn parm;
dcl $toDate char (10) byaddr nonasgn parm;
dcl $hRtStaTbl (*) handle rtSta_t byaddr nonasgn parm;
dcl fromDate_a char (10) init ($fromDate);
dcl toDate_a char (10) init ($toDate);
dcl starttime type tod_t;
dcl sqlca type sqlca_t based (ptrvalue ($hSqlCa));
starttime = @getTod ();
EXEC SQL
insert into session.Tkey_Ver_1
(mf150001
,mf150023
,mf150013
,mf150067)
select MF150001
,MF150023
,MF150013
,MF150067 from @table (@schema, tmf150a1)
where MF150013 >= :fromDate_a
and MF150013 <= :toDate_a
order by MF150013
,MF150067
fetch first @blocksize rows only
;
if ^(@chkSql (@sqlOk)
| @chkSql (@sqlNoData)) then
call exitPgm ($ddPrint
,"insert 'session.Tkey_Ver_1' failed"
,$hSqlCa);
call add2RtStat ($hRtStaTbl (1), starttime);
if @chkSql (@sqlNoData) then return (0);
1 starttime = @getTod ();
EXEC SQL
insert into @table (@schema, tmf150h1)
(MF150001, MF150002, MF150003, MF150004, MF150005, MF150006
,MF150007, MF150008, MF150009, MF150010, MF150011, MF150012
,MF150013, MF150014, MF150015, MF150016, MF150017, MF150018
,MF150019, MF150020, MF150021, MF150022, MF150023, MF150024
,MF150025, MF150026, MF150027, MF150028, MF150029, MF150030
,MF150031, MF150032, MF150033, MF150034, MF150035, MF150036
,MF150037, MF150038, MF150039, MF150040, MF150041, MF150042
,MF150043, MF150044, MF150045, MF150046, MF150047, MF150051
,MF150052, MF150053, MF150054, MF150055, MF150056, MF150059
,MF150060, MF150062, MF150063, MF150064, MF150065, MF150066
,MF150067, MF150068, MF150069, MF150070, MF150071, MF150072
,MF150073, MF150074, MF150075, MF150076, MF150077, MF150078
,MF150079, MF150080, MF150081, MF150082, MF150083, MF150084
,MF150085, MF150086, MF150087, MF150088, MF150089, MF150090
,MF150091, MF150092, MF150019A)
select
MF150001, MF150002, MF150003, MF150004, MF150005, MF150006
,MF150007, MF150008, MF150009, MF150010, MF150011, MF150012
,MF150013, MF150014, MF150015, MF150016, MF150017, MF150018
,MF150019, MF150020, MF150021, MF150022, MF150023, MF150024
,MF150025, MF150026, MF150027, MF150028, MF150029, MF150030
,MF150031, MF150032, MF150033, MF150034, MF150035, MF150036
,MF150037, MF150038, MF150039, MF150040, MF150041, MF150042
,MF150043, MF150044, MF150045, MF150046, MF150047, MF150051
,MF150052, MF150053, MF150054, MF150055, MF150056, MF150059
,MF150060, MF150062, MF150063, MF150064, MF150065, MF150066
,MF150067, MF150068, MF150069, MF150070, MF150071, MF150072
,MF150073, MF150074, MF150075, MF150076, MF150077, MF150078
,MF150079, MF150080, MF150081, MF150082, MF150083, MF150084
,MF150085, MF150086, MF150087, MF150088, MF150089, MF150090
,MF150091, MF150092, MF150019A
from @table (@schema, tmf150a1)
where MF150001 in
(select MF150001 from session.Tkey_Ver_1
order by MF150013
,MF150067)
;
if ^@chkSql (@sqlOk) then
call exitPgm ($ddPrint
,"insert into 'TMF150H1' failed"
,$hSqlCa);
call add2RtStat ($hRtStaTbl (2), starttime);
starttime = @getTod ();
EXEC SQL
delete from @table (@schema, tmf150a1) a
where (MF150023
,MF150013) in
(select MF150023
,MF150013 from session.Tkey_Ver_1)
and MF150001 in
(select MF150001 from session.Tkey_Ver_1)
;
if ^@chkSql (@sqlOk) then
call exitPgm ($ddPrint
,"delete flows in 'TMF150A1' failed"
,$hSqlCa);
call add2RtStat ($hRtStaTbl (3), starttime);
return (sqlca.sqlerrd (3)); /* # of deletes in TMF150A1 */
end doTransferVersion_1;
1/* -transfer SFL TMF150A1 --> TMF150H1-----------------------Level 1 */
doTransferVersion_2: proc ($ddPrint
,$hSqlCa, $fromDate, $toDate, $hRtStaTbl)
returns (byvalue fixed bin (31))
options (byvalue);
dcl $ddPrint file variable nonasgn parm; /* Printstream */
dcl $hSqlca handle sqlca_t nonasgn parm; /* SQLCA */
dcl $fromDate char (10) byaddr nonasgn parm;
dcl $toDate char (10) byaddr nonasgn parm;
dcl $hRtStaTbl (*) handle rtSta_t byaddr nonasgn parm;
dcl nn fixed bin (31) init (0);
dcl fromDate_b char (10) init ($fromDate);
dcl toDate_b char (10) init ($toDate);
dcl starttime type tod_t;
dcl 1 ioT150_b,
%include TMF150P; /* hat Strichpunkt im Copybook */
dcl sqlca type sqlca_t based (ptrvalue ($hSqlCa));
EXEC SQL
declare cur_getAndDelete_b cursor for
select
MF150001, MF150002, MF150003, MF150004, MF150005, MF150006
,MF150007, MF150008, MF150009, MF150010, MF150011, MF150012
,MF150013, MF150014, MF150015, MF150016, MF150017, MF150018
,MF150019, MF150020, MF150021, MF150022, MF150023, MF150024
,MF150025, MF150026, MF150027, MF150028, MF150029, MF150030
,MF150031, MF150032, MF150033, MF150034, MF150035, MF150036
,MF150037, MF150038, MF150039, MF150040, MF150041, MF150042
,MF150043, MF150044, MF150045, MF150046, MF150047, MF150051
,MF150052, MF150053, MF150054, MF150055, MF150056, MF150059
,MF150060, MF150062, MF150063, MF150064, MF150065, MF150066
,MF150067, MF150068, MF150069, MF150070, MF150071, MF150072
,MF150073, MF150074, MF150075, MF150076, MF150077, MF150078
,MF150079, MF150080, MF150081, MF150082, MF150083, MF150084
,MF150085, MF150086, MF150087, MF150088, MF150089, MF150090
,MF150091, MF150092, MF150019A
from old table
(delete from @table (@schema, tmf150a1) a
where a.MF150001 in
(select b.MF150001
from @table (@schema, tmf150a1) b
where b.MF150013 >= :fromDate_b
and b.MF150013 <= :toDate_b
order by MF150013
,MF150067
fetch first @blocksize rows only
)
)
order by MF150013
,MF150067
;
1 starttime = @getTod ();
EXEC SQL
open cur_getAndDelete_b;
if ^@chkSql (@sqlOk) then
call exitPgm ($ddPrint
,"open cursor 'cur_getAndDelete_b' failed"
,$hSqlCa);
call add2RtStat ($hRtStaTbl (1), starttime);
starttime = @getTod ();
do while (getData ());
EXEC SQL
insert into @table (@schema, tmf150h1)
values (:ioT150_b)
;
if ^(@chkSql (@sqlOk)
| @chkSql (@sqlDuplicate)) then
call exitPgm ($ddPrint
,"insert flows into 'TMF150H1' failed"
,$hSqlCa);
nn += 1;
end;
call add2RtStat ($hRtStaTbl (2), starttime);
starttime = @getTod ();
EXEC SQL
close cur_getAndDelete_b;
if ^@chkSql (@sqlOk) then
call exitPgm ($ddPrint
,"close cursor 'cur_getAndDelete_b' failed"
,$hSqlCa);
call add2RtStat ($hRtStaTbl (3), starttime);
return (nn);
/* -lese Daten ein------------------------------------------Level 2- */
getData: proc returns (byvalue bit (1) aligned);
EXEC SQL
fetch cur_getAndDelete_b
into :ioT150_b
;
if @chkSql (@sqlOk) then return (@true);
if @chkSql (@sqlNodata) then return (@false);
call exitPgm ($ddPrint
,"fetch cursor 'cur_getAndDelete_b' failed"
,$hSqlCa);
end getData;
end doTransferVersion_2;
1/* -transfer SFL TMF150A1 --> TMF150H1-----------------------Level 1 */
doTransferVersion_3: proc ($ddPrint
,$hSqlCa, $fromDate, $toDate, $hRtStaTbl)
returns (byvalue fixed bin (31))
options (byvalue);
dcl $ddPrint file variable nonasgn parm; /* Printstream */
dcl $hSqlca handle sqlca_t nonasgn parm; /* SQLCA */
dcl $fromDate char (10) byaddr nonasgn parm;
dcl $toDate char (10) byaddr nonasgn parm;
dcl $hRtStaTbl (*) handle rtSta_t byaddr nonasgn parm;
dcl fromDate_c char (10) init ($fromDate);
dcl toDate_c char (10) init ($toDate);
dcl starttime type tod_t;
dcl sqlca type sqlca_t based (ptrvalue ($hSqlCa));
starttime = @getTod ();
EXEC SQL
insert into session.Tkey_Ver_3
(mf150013
,mf150067)
select MF150013
,MF150067 from
(select MF150013
,MF150067 from @table (@schema, tmf150a1)
where MF150013 >= :fromDate_c
and MF150013 <= :toDate_c
fetch first @blocksize_3 rows only
) i
group by MF150013
,MF150067
;
if ^(@chkSql (@sqlOk)
| @chkSql (@sqlNoData)) then
call exitPgm ($ddPrint
,"insert into 'session.Tkey_Ver_3' failed"
,$hSqlCa);
call add2RtStat ($hRtStaTbl (1), starttime);
if @chkSql (@sqlNoData) then return (0);
1 starttime = @getTod ();
EXEC SQL
insert into @table (@schema, tmf150h1)
(MF150001, MF150002, MF150003, MF150004, MF150005, MF150006
,MF150007, MF150008, MF150009, MF150010, MF150011, MF150012
,MF150013, MF150014, MF150015, MF150016, MF150017, MF150018
,MF150019, MF150020, MF150021, MF150022, MF150023, MF150024
,MF150025, MF150026, MF150027, MF150028, MF150029, MF150030
,MF150031, MF150032, MF150033, MF150034, MF150035, MF150036
,MF150037, MF150038, MF150039, MF150040, MF150041, MF150042
,MF150043, MF150044, MF150045, MF150046, MF150047, MF150051
,MF150052, MF150053, MF150054, MF150055, MF150056, MF150059
,MF150060, MF150062, MF150063, MF150064, MF150065, MF150066
,MF150067, MF150068, MF150069, MF150070, MF150071, MF150072
,MF150073, MF150074, MF150075, MF150076, MF150077, MF150078
,MF150079, MF150080, MF150081, MF150082, MF150083, MF150084
,MF150085, MF150086, MF150087, MF150088, MF150089, MF150090
,MF150091, MF150092, MF150019A)
select
MF150001, MF150002, MF150003, MF150004, MF150005, MF150006
,MF150007, MF150008, MF150009, MF150010, MF150011, MF150012
,MF150013, MF150014, MF150015, MF150016, MF150017, MF150018
,MF150019, MF150020, MF150021, MF150022, MF150023, MF150024
,MF150025, MF150026, MF150027, MF150028, MF150029, MF150030
,MF150031, MF150032, MF150033, MF150034, MF150035, MF150036
,MF150037, MF150038, MF150039, MF150040, MF150041, MF150042
,MF150043, MF150044, MF150045, MF150046, MF150047, MF150051
,MF150052, MF150053, MF150054, MF150055, MF150056, MF150059
,MF150060, MF150062, MF150063, MF150064, MF150065, MF150066
,MF150067, MF150068, MF150069, MF150070, MF150071, MF150072
,MF150073, MF150074, MF150075, MF150076, MF150077, MF150078
,MF150079, MF150080, MF150081, MF150082, MF150083, MF150084
,MF150085, MF150086, MF150087, MF150088, MF150089, MF150090
,MF150091, MF150092, MF150019A
from @table (@schema, tmf150a1)
where (MF150013
,MF150067) in
(select MF150013
,MF150067 from session.Tkey_Ver_3)
;
if ^@chkSql (@sqlOk) then
call exitPgm ($ddPrint
,"insert flow into 'TMF150H1' failed"
,$hSqlCa);
call add2RtStat ($hRtStaTbl (2), starttime);
starttime = @getTod ();
EXEC SQL
delete from @table (@schema, tmf150a1)
where (MF150013
,MF150067) in
(select MF150013
,MF150067 from session.Tkey_Ver_3)
;
if ^@chkSql (@sqlOk) then
call exitPgm ($ddPrint
,"delete flows in 'TMF150A1' failed"
,$hSqlCa);
call add2RtStat ($hRtStaTbl (3), starttime);
return (sqlca.sqlerrd (3)); /* # of deletes in TMF150A1 */
end doTransferVersion_3;
1/* -transfer SFL TMF150A1 --> TMF150H1-----------------------Level 1 */
doTransferVersion_4: proc ($ddPrint
,$hSqlCa, $fromDate, $toDate, $hRtStaTbl)
returns (byvalue fixed bin (31))
options (byvalue);
dcl $ddPrint file variable nonasgn parm; /* Printstream */
dcl $hSqlca handle sqlca_t nonasgn parm; /* SQLCA */
dcl $fromDate char (10) byaddr nonasgn parm;
dcl $toDate char (10) byaddr nonasgn parm;
dcl $hRtStaTbl (*) handle rtSta_t byaddr nonasgn parm;
dcl nn fixed bin (31) init (0);
dcl nRow fixed bin (31);
dcl is@End bit (1) aligned init (@false);
dcl fromDate_d char (10) init ($fromDate);
dcl toDate_d char (10) init ($toDate);
dcl starttime type tod_t;
dcl starttime_i type tod_t;
dcl uuidTbl (@blocksize) char (16) init ((@blocksize)(''));
dcl sqlca type sqlca_t based (ptrvalue ($hSqlCa));
EXEC SQL
declare cur_getAndInsert_d cursor
with rowset positioning for
select MF150001 from final table (
insert into @table (@schema, tmf150h1)
(MF150001, MF150002, MF150003, MF150004, MF150005, MF150006
,MF150007, MF150008, MF150009, MF150010, MF150011, MF150012
,MF150013, MF150014, MF150015, MF150016, MF150017, MF150018
,MF150019, MF150020, MF150021, MF150022, MF150023, MF150024
,MF150025, MF150026, MF150027, MF150028, MF150029, MF150030
,MF150031, MF150032, MF150033, MF150034, MF150035, MF150036
,MF150037, MF150038, MF150039, MF150040, MF150041, MF150042
,MF150043, MF150044, MF150045, MF150046, MF150047, MF150051
,MF150052, MF150053, MF150054, MF150055, MF150056, MF150059
,MF150060, MF150062, MF150063, MF150064, MF150065, MF150066
,MF150067, MF150068, MF150069, MF150070, MF150071, MF150072
,MF150073, MF150074, MF150075, MF150076, MF150077, MF150078
,MF150079, MF150080, MF150081, MF150082, MF150083, MF150084
,MF150085, MF150086, MF150087, MF150088, MF150089, MF150090
,MF150091, MF150092, MF150019A)
select
MF150001, MF150002, MF150003, MF150004, MF150005, MF150006
,MF150007, MF150008, MF150009, MF150010, MF150011, MF150012
,MF150013, MF150014, MF150015, MF150016, MF150017, MF150018
,MF150019, MF150020, MF150021, MF150022, MF150023, MF150024
,MF150025, MF150026, MF150027, MF150028, MF150029, MF150030
,MF150031, MF150032, MF150033, MF150034, MF150035, MF150036
,MF150037, MF150038, MF150039, MF150040, MF150041, MF150042
,MF150043, MF150044, MF150045, MF150046, MF150047, MF150051
,MF150052, MF150053, MF150054, MF150055, MF150056, MF150059
,MF150060, MF150062, MF150063, MF150064, MF150065, MF150066
,MF150067, MF150068, MF150069, MF150070, MF150071, MF150072
,MF150073, MF150074, MF150075, MF150076, MF150077, MF150078
,MF150079, MF150080, MF150081, MF150082, MF150083, MF150084
,MF150085, MF150086, MF150087, MF150088, MF150089, MF150090
,MF150091, MF150092, MF150019A
from @table (@schema, tmf150a1) a
where (a.MF150001
,a.MF150013
,a.MF150067) in
(select b.MF150001
,b.MF150013
,b.MF150067
from @table (@schema, tmf150a1) b
where b.MF150013 >= :fromDate_d
and b.MF150013 <= :toDate_d
order by b.MF150013
,b.MF150067
fetch first @blocksize rows only
)
) order by input sequence
;
1 starttime = @getTod ();
EXEC SQL
open cur_getAndInsert_d;
if ^@chkSql (@sqlOk) then
call exitPgm ($ddPrint
,"open cursor 'cur_getAndInsert_d' failed"
,$hSqlCa);
call add2RtStat ($hRtStaTbl (1), starttime);
starttime = @getTod ();
nRow = getData (is@End);
do while (nRow > 0);
/* insert UUID into session table
*/
starttime_i = @getTod ();
EXEC SQL
insert into session.Tkey_Ver_4
values (:uuidTbl)
for :nRow rows
;
if ^@chkSql (@sqlOk) then
call exitPgm ($ddPrint
,'insert into session.Tkey_Ver_4 failed'
,$hSqlCa);
call add2RtStat ($hRtStaTbl (3), starttime_i);
/* delete flows in TMF150A1
*/
starttime_i = @getTod ();
EXEC SQL
delete from @table (@schema, tmf150a1)
where MF150001 in
(select MF150001 from session.Tkey_Ver_4)
;
if ^@chkSql (@sqlOk) then
call exitPgm ($ddPrint
,"delete flows in 'TMF150A1' failed"
,$hSqlCa);
call add2RtStat ($hRtStaTbl (4), starttime_i);
nn += nRow;
if is@End then nRow = 0; /* no more data */
else nRow = getData (is@End);
end;
call add2RtStat ($hRtStaTbl (2), starttime);
starttime = @getTod ();
EXEC SQL
close cur_getAndInsert_d;
if ^@chkSql (@sqlOk) then
call exitPgm ($ddPrint
,"close cursor 'cur_getAndInsert_d' failed"
,$hSqlCa);
call add2RtStat ($hRtStaTbl (5), starttime);
return (nn);
/* -lese Daten ein------------------------------------------Level 2- */
getData: proc ($is@End)
returns (byvalue fixed bin (31));
dcl $is@End bit (1) aligned;
EXEC SQL
fetch next rowset from cur_getAndInsert_d
for @blocksize rows
into :uuidTbl
;
if ^(@chkSql (@sqlOk)
| @chkSql (@sqlNoData)) then
call exitPgm ($ddPrint
,"fetch cursor 'cur_getAndInsert_d' failed"
,$hSqlCa);
$is@End = (@chkSql (@sqlNoData));
return (sqlca.sqlerrd (3)); /* # of rows in rowset */
end getData;
end doTransferVersion_4;
1/* -commit changes-------------------------------------------Level 1 */
#ofSFL: proc ($ddPrint, $hSqlca, $fromDate, $toDate)
options (byvalue)
returns (byvalue fixed bin (31));
dcl $ddPrint file variable byvalue nonasgn parm;
dcl $hSqlca handle sqlca_t nonasgn parm; /* SQLCA */
dcl $fromDate char (10) byaddr nonasgn parm;
dcl $toDate char (10) byaddr nonasgn parm;
dcl nn_c fixed bin (31) init (0);
dcl fromDate_z char (10) init ($fromDate);
dcl toDate_z char (10) init ($toDate);
dcl starttime type tod_t init (@getTod ());
dcl sqlca type sqlca_t based (ptrvalue ($hSqlCa));
EXEC SQL
select count (*)
into :nn_c
from @table (@schema, tmf150a1)
where MF150013 >= :fromDate_z
and MF150013 <= :toDate_z
with ur
;
if @chkSql (@sqlOk) then do;
call @printElapsedTime ($ddPrint, starttime
,"select 'count (*)'");
return (nn_c);
end;
call exitPgm ($ddPrint
,"select 'count (*)' failed"
,$hSqlCa);
end #ofSFL;
/* -commit changes-------------------------------------------Level 1 */
execRRSAFCmd: proc ($ddPrint, $cmd, $ssid, $plan)
options (byvalue);
dcl $ddPrint file variable byvalue nonasgn parm;
dcl $cmd char (12) byaddr parm;
dcl $ssid char (4) byaddr optional parm;
dcl $plan char (8) byaddr optional parm;
dcl rc fixed bin (31);
if $cmd = cConnect then rc = YXRRSAF ($cmd, $ssid, $plan);
else rc = YXRRSAF ($cmd);
if rc ^= 0 then
call exitPgm ($ddPrint
,"YXRRSAF: "
|| $cmd
|| " failed (RC=x'"
|| hex (rc)
|| "')"
);
end execRRSAFCmd;
1/* -calculate to-date----------------------------------------Level 1 */
calcToDate: proc
returns (char (10));
dcl nDays fixed bin (31) init ((days () - 365));
dcl ii fixed bin (31);
do ii = 1 to 7;
if weekday (nDays) = 1 then /* Sunday */
return (daystodate (nDays, @dateFmt));
nDays -= 1;
end;
return ('01.01.0001');
end calcToDate;
/* -calculate from-date--------------------------------------Level 1 */
calcFromDate: proc ($toDate)
returns (char (10));
dcl $toDate char (10) nonasgn parm;
dcl nDays fixed bin (31) init (days ($toDate, @dateFmt));
return (daystodate (nDays - 6, @dateFmt));
end calcFromDate;
/* -check period---------------------------------------------Level 1 */
checkHistPeriod: proc ($ddPrint, $fromDate, $toDate);
dcl $ddPrint file variable;
dcl $fromDate char (10) nonasgn parm;
dcl $toDate char (10) nonasgn parm;
if days ($fromDate, @dateFmt) <= days ($toDate, @dateFmt) then
return;
call exitPgm ($ddPrint
,'from-date '
|| $fromDate
|| ' greater then to-date '
|| $toDate
);
end checkHistPeriod;
1/* -new runtime statistics container-------------------------Level 1 */
newRtSta: proc ($text)
returns (byvalue handle rtSta_t);
dcl hRtStat handle rtSta_t init (new (:rtSta_t:)) nonasgn;
dcl $text char (*) varz;
call plifill (ptrvalue (hRtStat), '00'x, size (:rtSta_t:));
hRtStat=>sumX = 0.0;
hRtStat=>sumX2 = 0.0;
hRtStat=>minX = huge (hRtStat=>minX);
hRtStat=>maxX = 0.0;
hRtStat=>text = $text;
return (hRtStat);
end newRtSta;
/* add sample to runtime statistics--------------------------Level 1 */
add2RtStat: proc ($hRtStat, $tod)
options (byvalue inline);
dcl $hRtStat handle rtSta_t nonasgn parm;
dcl $tod type tod_t byaddr nonasgn parm;
call addSample2RtStat ($hRtStat, @calcTodDiff (@getTod (), $tod));
end add2RtStat;
/* add sample to runtime statistics--------------------------Level 1 */
addSample2RtStat: proc ($hRtStat, $sampleX)
options (byvalue);
dcl $hRtStat handle rtSta_t nonasgn parm;
dcl $sampleX float dec (16) nonasgn parm;
$hRtStat=>sumX += $sampleX;
$hRtStat=>sumX2 += $sampleX * $sampleX;
if $sampleX > $hRtStat=>maxX then $hRtStat=>maxX = $sampleX;
if $sampleX < $hRtStat=>minX then $hRtStat=>minX = $sampleX;
$hRtStat=>nn += 1;
end addSample2RtStat;
1/* print runtime statistics----------------------------------Level 1 */
printRtStat: proc ($ddPrint, $hRtStat)
options (byvalue);
dcl $ddPrint file variable nonasgn parm;
dcl $hRtStat handle rtSta_t nonasgn parm;
dcl covariance float dec (16) init (0.0);
dcl deviation float dec (16) init (0.0);
dcl mean float dec (16) init (0.0);
if $hRtStat=>nn > 1 then do;
/* calculate covariance (Varianz)
*/
covariance = ($hRtStat=>sumX2 -
($hRtStat=>sumX * $hRtStat=>sumX /
float ($hRtStat=>nn, 16))) /
float (($hRtStat=>nn - 1), 16);
/* calculate standard deviation (Standardabweichung)
*/
deviation = sqrt (covariance);
end;
/* calculate mean (Mittelwert)
*/
if $hRtStat=>nn > 0 then
mean = $hRtStat=>sumX / float ($hRtStat=>nn, 16);
put file ($ddPrint) edit
('Runtime statistic - ', $hRtStat=>text)
(skip, a, a)
('# of samples', $hRtStat=>nn)
(skip, a, col(30), p'zzz,zzz,zz9')
('minimum', round ($hRtStat=>minX, 3))
(skip, a, col(30), p'zzz,zzz,zz9V.999')
('maximum', round ($hRtStat=>maxX, 3))
(skip, a, col(30), p'zzz,zzz,zz9V.999')
('deviation', round (deviation, 3))
(skip, a, col(30), p'zzz,zzz,zz9V.999')
('covariance', round (covariance, 3))
(skip, a, col(30), p'zzz,zzz,zz9V.999')
('mean', round (mean, 3))
(skip, a, col(30), p'zzz,zzz,zz9V.999')
;
end printRtStat;
1/* print runtime statistics table----------------------------Level 1 */
printRtStaTbl: proc ($ddPrint, $hRtStaTbl)
options (byvalue);
dcl $ddPrint file variable nonasgn parm;
dcl $hRtStaTbl (*) handle rtSta_t nonasgn parm;
dcl ii fixed bin (31);
do ii = lbound ($hRtStaTbl) to hbound ($hRtStaTbl);
if $hRtStaTbl (ii) ^= null () then do;
put skip file ($ddPrint) list ((@nRep) @repChar);
call printRtStat ($ddPrint, $hRtStaTbl (ii));
end;
end;
put skip file ($ddPrint) list ((@nRep) @repChar);
end printRtStaTbl; 07640002
/* delete runtime statistics table---------------------------Level 1 */
deleteRtStaTbl: proc ($hRtStaTbl)
options (byvalue);
dcl $hRtStaTbl (*) handle rtSta_t nonasgn parm;
dcl ii fixed bin (31);
do ii = lbound ($hRtStaTbl) to hbound ($hRtStaTbl);
if $hRtStaTbl (ii) ^= null () then
call plidelete ($hRtStaTbl (ii));
end;
end deleteRtStaTbl; 07640002
end MFR_sfl_history; 07640002
/* -CS-KGCG 21----------------------------------------------------- */07650002
}¢--- A540769.WK.SQL(MIRCOA) cre= mod= -----------------------------------------
--#SET TERMINATOR ?
SET CURRENT SQLID='S100447'?
SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","OA1P" ?
CREATE TRIGGER OA1A.VFI027A1_UPD
INSTEAD OF UPDATE ON OA1A.VFI027A1
REFERENCING NEW AS N
OLD AS O
FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
VALUES(CASE WHEN(O.TKKEY < 1700001 AND N.TKKEY < 1700001) OR (O.
TKKEY BETWEEN 1700001 AND 3200000 AND N.TKKEY BETWEEN
1700001 AND 3200000) OR (O.TKKEY BETWEEN 3200001 AND
4500000 AND N.TKKEY BETWEEN 3200001 AND 4500000) OR (O.
TKKEY BETWEEN 4500001 AND 5000000 AND N.TKKEY BETWEEN
4500001 AND 5000000) OR (O.TKKEY BETWEEN 5000001 AND
6980000 AND N.TKKEY BETWEEN 5000001 AND 6980000) OR (O.
TKKEY BETWEEN 6980001 AND 9200000 AND N.TKKEY BETWEEN
6980001 AND 9200000) OR (O.TKKEY BETWEEN 9200001 AND
10000000 AND N.TKKEY BETWEEN 9200001 AND 10000000) OR (
O.TKKEY BETWEEN 10000001 AND 10500000 AND N.TKKEY
BETWEEN 10000001 AND 10500000) OR (O.TKKEY BETWEEN
10500001 AND 11000000 AND N.TKKEY BETWEEN 10500001 AND
11000000) OR (O.TKKEY > 11000000 AND N.TKKEY > 11000000
) THEN 0 ELSE RAISE_ERROR('70001',
'TKKEY update in a different phys. table is not possible vi
a trigger, use a separate insert and delete statement'
) END) ;
VALUES(CASE WHEN N.BOERSE = O.BOERSE AND N.WHRG = O.WHRG AND N.
KURSDATUM = O.KURSDATUM THEN 0 ELSE RAISE_ERROR('70002',
'Some key values (Boerse/Whrg/Kursdatum) cannot be changed,
message generated because of trigger condition'
) END) ;
UPDATE OA1A.TFI027A1 U
SET (U.TKKEY, U.VERFALL, U.STATUS, U.MUT_TIMESTAMP,
U.TK_KURSTYP, U.TK_ZUSATZ, U.CS_KA_NUM, U.KURS_LIEFERUNG,
U.KURS_UMRECHNUNG, U.MENGE, U.BOERSE_TK, U.ERSTELLUNG,
U.QUELLE, U.LOG_EINTRAG, U.INSTRAD, U.KS_BPL_ST,
U.KS_BPL_HT, U.KS_BPL_KS, U.KS_ALT_KS, U.KS_BPL_HA,
U.KS_AIS_SP, U.KS_BPL_IN, U.KS_BPL_SP, U.EXCODE) = (N.TKKEY,
N.VERFALL, N.STATUS, CURRENT TIMESTAMP, N.TK_KURSTYP,
N.TK_ZUSATZ, N.CS_KA_NUM, N.KURS_LIEFERUNG,
N.KURS_UMRECHNUNG, N.MENGE, N.BOERSE_TK, N.ERSTELLUNG,
N.QUELLE, N.LOG_EINTRAG, N.INSTRAD, N.KS_BPL_ST,
N.KS_BPL_HT, N.KS_BPL_KS, N.KS_ALT_KS, N.KS_BPL_HA,
N.KS_AIS_SP, N.KS_BPL_IN, N.KS_BPL_SP, N.EXCODE)
WHERE O.TKKEY < 1700001
AND N.TKKEY < 1700001
AND O.TKKEY = U.TKKEY
AND O.BOERSE = U.BOERSE
AND O.WHRG = U.WHRG
AND O.KURSDATUM = U.KURSDATUM
AND O.VERFALL = U.VERFALL
AND O.STATUS = U.STATUS
AND O.MUT_TIMESTAMP = U.MUT_TIMESTAMP ;
UPDATE OA1A.TFI027B1 U
SET (U.TKKEY, U.VERFALL, U.STATUS, U.MUT_TIMESTAMP,
U.TK_KURSTYP, U.TK_ZUSATZ, U.CS_KA_NUM, U.KURS_LIEFERUNG,
U.KURS_UMRECHNUNG, U.MENGE, U.BOERSE_TK, U.ERSTELLUNG,
U.QUELLE, U.LOG_EINTRAG, U.INSTRAD, U.KS_BPL_ST,
U.KS_BPL_HT, U.KS_BPL_KS, U.KS_ALT_KS, U.KS_BPL_HA,
U.KS_AIS_SP, U.KS_BPL_IN, U.KS_BPL_SP, U.EXCODE) = (N.TKKEY,
N.VERFALL, N.STATUS, CURRENT TIMESTAMP, N.TK_KURSTYP,
N.TK_ZUSATZ, N.CS_KA_NUM, N.KURS_LIEFERUNG,
N.KURS_UMRECHNUNG, N.MENGE, N.BOERSE_TK, N.ERSTELLUNG,
N.QUELLE, N.LOG_EINTRAG, N.INSTRAD, N.KS_BPL_ST,
N.KS_BPL_HT, N.KS_BPL_KS, N.KS_ALT_KS, N.KS_BPL_HA,
N.KS_AIS_SP, N.KS_BPL_IN, N.KS_BPL_SP, N.EXCODE)
WHERE O.TKKEY BETWEEN 1700001 AND 3200000
AND N.TKKEY BETWEEN 1700001 AND 3200000
AND O.TKKEY = U.TKKEY
AND O.BOERSE = U.BOERSE
AND O.WHRG = U.WHRG
AND O.KURSDATUM = U.KURSDATUM
AND O.VERFALL = U.VERFALL
AND O.STATUS = U.STATUS
AND O.MUT_TIMESTAMP = U.MUT_TIMESTAMP ;
UPDATE OA1A.TFI027C1 U
SET (U.TKKEY, U.VERFALL, U.STATUS, U.MUT_TIMESTAMP,
U.TK_KURSTYP, U.TK_ZUSATZ, U.CS_KA_NUM, U.KURS_LIEFERUNG,
U.KURS_UMRECHNUNG, U.MENGE, U.BOERSE_TK, U.ERSTELLUNG,
U.QUELLE, U.LOG_EINTRAG, U.INSTRAD, U.KS_BPL_ST,
U.KS_BPL_HT, U.KS_BPL_KS, U.KS_ALT_KS, U.KS_BPL_HA,
U.KS_AIS_SP, U.KS_BPL_IN, U.KS_BPL_SP, U.EXCODE) = (N.TKKEY,
N.VERFALL, N.STATUS, CURRENT TIMESTAMP, N.TK_KURSTYP,
N.TK_ZUSATZ, N.CS_KA_NUM, N.KURS_LIEFERUNG,
N.KURS_UMRECHNUNG, N.MENGE, N.BOERSE_TK, N.ERSTELLUNG,
N.QUELLE, N.LOG_EINTRAG, N.INSTRAD, N.KS_BPL_ST,
N.KS_BPL_HT, N.KS_BPL_KS, N.KS_ALT_KS, N.KS_BPL_HA,
N.KS_AIS_SP, N.KS_BPL_IN, N.KS_BPL_SP, N.EXCODE)
WHERE O.TKKEY BETWEEN 3200001 AND 4500000
AND N.TKKEY BETWEEN 3200001 AND 4500000
AND O.TKKEY = U.TKKEY
AND O.BOERSE = U.BOERSE
AND O.WHRG = U.WHRG
AND O.KURSDATUM = U.KURSDATUM
AND O.VERFALL = U.VERFALL
AND O.STATUS = U.STATUS
AND O.MUT_TIMESTAMP = U.MUT_TIMESTAMP ;
UPDATE OA1A.TFI027D1 U
SET (U.TKKEY, U.VERFALL, U.STATUS, U.MUT_TIMESTAMP,
U.TK_KURSTYP, U.TK_ZUSATZ, U.CS_KA_NUM, U.KURS_LIEFERUNG,
U.KURS_UMRECHNUNG, U.MENGE, U.BOERSE_TK, U.ERSTELLUNG,
U.QUELLE, U.LOG_EINTRAG, U.INSTRAD, U.KS_BPL_ST,
U.KS_BPL_HT, U.KS_BPL_KS, U.KS_ALT_KS, U.KS_BPL_HA,
U.KS_AIS_SP, U.KS_BPL_IN, U.KS_BPL_SP, U.EXCODE) = (N.TKKEY,
N.VERFALL, N.STATUS, CURRENT TIMESTAMP, N.TK_KURSTYP,
N.TK_ZUSATZ, N.CS_KA_NUM, N.KURS_LIEFERUNG,
N.KURS_UMRECHNUNG, N.MENGE, N.BOERSE_TK, N.ERSTELLUNG,
N.QUELLE, N.LOG_EINTRAG, N.INSTRAD, N.KS_BPL_ST,
N.KS_BPL_HT, N.KS_BPL_KS, N.KS_ALT_KS, N.KS_BPL_HA,
N.KS_AIS_SP, N.KS_BPL_IN, N.KS_BPL_SP, N.EXCODE)
WHERE O.TKKEY BETWEEN 4500001 AND 5000000
AND N.TKKEY BETWEEN 4500001 AND 5000000
AND O.TKKEY = U.TKKEY
AND O.BOERSE = U.BOERSE
AND O.WHRG = U.WHRG
AND O.KURSDATUM = U.KURSDATUM
AND O.VERFALL = U.VERFALL
AND O.STATUS = U.STATUS
AND O.MUT_TIMESTAMP = U.MUT_TIMESTAMP ;
UPDATE OA1A.TFI027E1 U
SET (U.TKKEY, U.VERFALL, U.STATUS, U.MUT_TIMESTAMP,
U.TK_KURSTYP, U.TK_ZUSATZ, U.CS_KA_NUM, U.KURS_LIEFERUNG,
U.KURS_UMRECHNUNG, U.MENGE, U.BOERSE_TK, U.ERSTELLUNG,
U.QUELLE, U.LOG_EINTRAG, U.INSTRAD, U.KS_BPL_ST,
U.KS_BPL_HT, U.KS_BPL_KS, U.KS_ALT_KS, U.KS_BPL_HA,
U.KS_AIS_SP, U.KS_BPL_IN, U.KS_BPL_SP, U.EXCODE) = (N.TKKEY,
N.VERFALL, N.STATUS, CURRENT TIMESTAMP, N.TK_KURSTYP,
N.TK_ZUSATZ, N.CS_KA_NUM, N.KURS_LIEFERUNG,
N.KURS_UMRECHNUNG, N.MENGE, N.BOERSE_TK, N.ERSTELLUNG,
N.QUELLE, N.LOG_EINTRAG, N.INSTRAD, N.KS_BPL_ST,
N.KS_BPL_HT, N.KS_BPL_KS, N.KS_ALT_KS, N.KS_BPL_HA,
N.KS_AIS_SP, N.KS_BPL_IN, N.KS_BPL_SP, N.EXCODE)
WHERE O.TKKEY BETWEEN 5000001 AND 6980000
AND N.TKKEY BETWEEN 5000001 AND 6980000
AND O.TKKEY = U.TKKEY
AND O.BOERSE = U.BOERSE
AND O.WHRG = U.WHRG
AND O.KURSDATUM = U.KURSDATUM
AND O.VERFALL = U.VERFALL
AND O.STATUS = U.STATUS
AND O.MUT_TIMESTAMP = U.MUT_TIMESTAMP ;
UPDATE OA1A.TFI027F1 U
SET (U.TKKEY, U.VERFALL, U.STATUS, U.MUT_TIMESTAMP,
U.TK_KURSTYP, U.TK_ZUSATZ, U.CS_KA_NUM, U.KURS_LIEFERUNG,
U.KURS_UMRECHNUNG, U.MENGE, U.BOERSE_TK, U.ERSTELLUNG,
U.QUELLE, U.LOG_EINTRAG, U.INSTRAD, U.KS_BPL_ST,
U.KS_BPL_HT, U.KS_BPL_KS, U.KS_ALT_KS, U.KS_BPL_HA,
U.KS_AIS_SP, U.KS_BPL_IN, U.KS_BPL_SP, U.EXCODE) = (N.TKKEY,
N.VERFALL, N.STATUS, CURRENT TIMESTAMP, N.TK_KURSTYP,
N.TK_ZUSATZ, N.CS_KA_NUM, N.KURS_LIEFERUNG,
N.KURS_UMRECHNUNG, N.MENGE, N.BOERSE_TK, N.ERSTELLUNG,
N.QUELLE, N.LOG_EINTRAG, N.INSTRAD, N.KS_BPL_ST,
N.KS_BPL_HT, N.KS_BPL_KS, N.KS_ALT_KS, N.KS_BPL_HA,
N.KS_AIS_SP, N.KS_BPL_IN, N.KS_BPL_SP, N.EXCODE)
WHERE O.TKKEY BETWEEN 6980001 AND 9200000
AND N.TKKEY BETWEEN 6980001 AND 9200000
AND O.TKKEY = U.TKKEY
AND O.BOERSE = U.BOERSE
AND O.WHRG = U.WHRG
AND O.KURSDATUM = U.KURSDATUM
AND O.VERFALL = U.VERFALL
AND O.STATUS = U.STATUS
AND O.MUT_TIMESTAMP = U.MUT_TIMESTAMP ;
UPDATE OA1A.TFI027G1 U
SET (U.TKKEY, U.VERFALL, U.STATUS, U.MUT_TIMESTAMP,
U.TK_KURSTYP, U.TK_ZUSATZ, U.CS_KA_NUM, U.KURS_LIEFERUNG,
U.KURS_UMRECHNUNG, U.MENGE, U.BOERSE_TK, U.ERSTELLUNG,
U.QUELLE, U.LOG_EINTRAG, U.INSTRAD, U.KS_BPL_ST,
U.KS_BPL_HT, U.KS_BPL_KS, U.KS_ALT_KS, U.KS_BPL_HA,
U.KS_AIS_SP, U.KS_BPL_IN, U.KS_BPL_SP, U.EXCODE) = (N.TKKEY,
N.VERFALL, N.STATUS, CURRENT TIMESTAMP, N.TK_KURSTYP,
N.TK_ZUSATZ, N.CS_KA_NUM, N.KURS_LIEFERUNG,
N.KURS_UMRECHNUNG, N.MENGE, N.BOERSE_TK, N.ERSTELLUNG,
N.QUELLE, N.LOG_EINTRAG, N.INSTRAD, N.KS_BPL_ST,
N.KS_BPL_HT, N.KS_BPL_KS, N.KS_ALT_KS, N.KS_BPL_HA,
N.KS_AIS_SP, N.KS_BPL_IN, N.KS_BPL_SP, N.EXCODE)
WHERE O.TKKEY BETWEEN 9200001 AND 10000000
AND N.TKKEY BETWEEN 9200001 AND 10000000
AND O.TKKEY = U.TKKEY
AND O.BOERSE = U.BOERSE
AND O.WHRG = U.WHRG
AND O.KURSDATUM = U.KURSDATUM
AND O.VERFALL = U.VERFALL
AND O.STATUS = U.STATUS
AND O.MUT_TIMESTAMP = U.MUT_TIMESTAMP ;
UPDATE OA1A.TFI027H1 U
SET (U.TKKEY, U.VERFALL, U.STATUS, U.MUT_TIMESTAMP,
U.TK_KURSTYP, U.TK_ZUSATZ, U.CS_KA_NUM, U.KURS_LIEFERUNG,
U.KURS_UMRECHNUNG, U.MENGE, U.BOERSE_TK, U.ERSTELLUNG,
U.QUELLE, U.LOG_EINTRAG, U.INSTRAD, U.KS_BPL_ST,
U.KS_BPL_HT, U.KS_BPL_KS, U.KS_ALT_KS, U.KS_BPL_HA,
U.KS_AIS_SP, U.KS_BPL_IN, U.KS_BPL_SP, U.EXCODE) = (N.TKKEY,
N.VERFALL, N.STATUS, CURRENT TIMESTAMP, N.TK_KURSTYP,
N.TK_ZUSATZ, N.CS_KA_NUM, N.KURS_LIEFERUNG,
N.KURS_UMRECHNUNG, N.MENGE, N.BOERSE_TK, N.ERSTELLUNG,
N.QUELLE, N.LOG_EINTRAG, N.INSTRAD, N.KS_BPL_ST,
N.KS_BPL_HT, N.KS_BPL_KS, N.KS_ALT_KS, N.KS_BPL_HA,
N.KS_AIS_SP, N.KS_BPL_IN, N.KS_BPL_SP, N.EXCODE)
WHERE O.TKKEY BETWEEN 10000001 AND 10500000
AND N.TKKEY BETWEEN 10000001 AND 10500000
AND O.TKKEY = U.TKKEY
AND O.BOERSE = U.BOERSE
AND O.WHRG = U.WHRG
AND O.KURSDATUM = U.KURSDATUM
AND O.VERFALL = U.VERFALL
AND O.STATUS = U.STATUS
AND O.MUT_TIMESTAMP = U.MUT_TIMESTAMP ;
UPDATE OA1A.TFI027I1 U
SET (U.TKKEY, U.VERFALL, U.STATUS, U.MUT_TIMESTAMP,
U.TK_KURSTYP, U.TK_ZUSATZ, U.CS_KA_NUM, U.KURS_LIEFERUNG,
U.KURS_UMRECHNUNG, U.MENGE, U.BOERSE_TK, U.ERSTELLUNG,
U.QUELLE, U.LOG_EINTRAG, U.INSTRAD, U.KS_BPL_ST,
U.KS_BPL_HT, U.KS_BPL_KS, U.KS_ALT_KS, U.KS_BPL_HA,
U.KS_AIS_SP, U.KS_BPL_IN, U.KS_BPL_SP, U.EXCODE) = (N.TKKEY,
N.VERFALL, N.STATUS, CURRENT TIMESTAMP, N.TK_KURSTYP,
N.TK_ZUSATZ, N.CS_KA_NUM, N.KURS_LIEFERUNG,
N.KURS_UMRECHNUNG, N.MENGE, N.BOERSE_TK, N.ERSTELLUNG,
N.QUELLE, N.LOG_EINTRAG, N.INSTRAD, N.KS_BPL_ST,
N.KS_BPL_HT, N.KS_BPL_KS, N.KS_ALT_KS, N.KS_BPL_HA,
N.KS_AIS_SP, N.KS_BPL_IN, N.KS_BPL_SP, N.EXCODE)
WHERE O.TKKEY BETWEEN 10500001 AND 11000000
AND N.TKKEY BETWEEN 10500001 AND 11000000
AND O.TKKEY = U.TKKEY
AND O.BOERSE = U.BOERSE
AND O.WHRG = U.WHRG
AND O.KURSDATUM = U.KURSDATUM
AND O.VERFALL = U.VERFALL
AND O.STATUS = U.STATUS
AND O.MUT_TIMESTAMP = U.MUT_TIMESTAMP ;
UPDATE OA1A.TFI027J1 U
SET (U.TKKEY, U.VERFALL, U.STATUS, U.MUT_TIMESTAMP,
U.TK_KURSTYP, U.TK_ZUSATZ, U.CS_KA_NUM, U.KURS_LIEFERUNG,
U.KURS_UMRECHNUNG, U.MENGE, U.BOERSE_TK, U.ERSTELLUNG,
U.QUELLE, U.LOG_EINTRAG, U.INSTRAD, U.KS_BPL_ST,
U.KS_BPL_HT, U.KS_BPL_KS, U.KS_ALT_KS, U.KS_BPL_HA,
U.KS_AIS_SP, U.KS_BPL_IN, U.KS_BPL_SP, U.EXCODE) = (N.TKKEY,
N.VERFALL, N.STATUS, CURRENT TIMESTAMP, N.TK_KURSTYP,
N.TK_ZUSATZ, N.CS_KA_NUM, N.KURS_LIEFERUNG,
N.KURS_UMRECHNUNG, N.MENGE, N.BOERSE_TK, N.ERSTELLUNG,
N.QUELLE, N.LOG_EINTRAG, N.INSTRAD, N.KS_BPL_ST,
N.KS_BPL_HT, N.KS_BPL_KS, N.KS_ALT_KS, N.KS_BPL_HA,
N.KS_AIS_SP, N.KS_BPL_IN, N.KS_BPL_SP, N.EXCODE)
WHERE O.TKKEY > 11000000
AND N.TKKEY > 11000000
AND O.TKKEY = U.TKKEY
AND O.BOERSE = U.BOERSE
AND O.WHRG = U.WHRG
AND O.KURSDATUM = U.KURSDATUM
AND O.VERFALL = U.VERFALL
AND O.STATUS = U.STATUS
AND O.MUT_TIMESTAMP = U.MUT_TIMESTAMP ;
END ?
--#SET TERMINATOR ;
COMMIT;
}¢--- A540769.WK.SQL(MVEXTGG) cre=2014-04-23 mod=2014-04-24-08.12.25 A540769 ---
select count(*), rz, dbMbr
from oa1p.tQZ050cmd
group by rz, dbMbr
;
delete
from oa1p.tQZ050cmd
where rz = '?'
;
select count(*), rz, dbMbr
from oa1p.tQZ050cmd
group by rz, dbMbr
;
commit
;x;
select *
from oa1p.tQZ050cmd
where rz = '?' and system like 'S2%'
order by tst desc
; x;
delete from oa1p.tQZ050cmd c
where rz = '?' and dbSys = '?' and verb = '?'
and exists (select 1 from oa1p.tQZ050cmd o
where o.rz = 'RZ2' and o.tst = c.tst and o.dbMbr = c.dbMbr
and o.system = c.system and o.corr = c.corr
and o.cmd = c.cmd)
;
commit
;
select count(*), rz
from oa1p.tQZ050cmd
group by rz
}¢--- A540769.WK.SQL(MVEXTSEL) cre=2014-04-02 mod=2015-11-09-07.50.27 A540769 ---
select rz, dbSys, count(*), max(load), max(tst), min(tst)
from oa1p.tqz050Cmd
where load > current date - 5 day
group by rz, dbSys
order by rz, dbSys
;X;
select count(*), count(distinct load), min(load)
from oa1p.tqz050Cmd
where load > current date - 1 month
group by date(load)
order by 3 desc
;X;
select count(*), rz, min(dbMbr), max(dbMbr)
, min(system), max(system)
, max(tst), min(tst)
, max(load), min(load)
-- ,min(rz), max(rz), min(dbSys),max(dbSys)
from oa1p.Tqz050cmd
where load >= current date - 7 days
group by rz
order by rz
; x;
select * from oa1p.tqz050cmd
where rz like '%?%' or dbSys like '%?%'
; x
select count(*), dbMbr, system, year(timestamp)
, min(timestamp), max(timestamp)
-- ,min(rz), max(rz), min(dbSys),max(dbSys)
from oa1p.Tqz050cmd
where timestamp >= '2013-01-01-00.00.00'
group by dbMbr, system, year(timestamp)
order by dbMbr, system, year(timestamp) desc
; x;
select count(*), rz, dbSys, dbMbr, system, min(tst), max(tst)
from oa1p.tqz050cmd
group by rz, dbSys, dbMbr, system
order by rz, dbSys, dbMbr, system
; Y;
order by rz, dbSys, dbMbr, system
; Y;
update oa1p.tqz050cmd set dbSys = 'DBOF'
where rz = 'RZ2' and dbSys = '?' and dbMbr like 'DOF%'
;
commit;
update oa1p.tqz050cmd set dbSys = 'DVBP'
where rz = 'RZ2' and dbSys = '?' and dbMbr like 'DBP%'
;
commit;
update oa1p.tqz050cmd set dbSys = 'DP2G'
where rz = 'RZ2' and dbSys = '?' and dbMbr like 'DP2%'
;
commit;
select *
from oa1p.tqz050cmd
where tst = '2012-10-31-16.22.22.74'
order by tst desc
fetch first 1000 rows only
;x;
xpdate oa1p.tqz050cmd set dbSys = 'DC0G'
where rz = 'RZ8' and dbSys = '?' and dbMbr like 'DC0%'
;
commit;
update oa1p.tqz050cmd set dbSys = 'DCVG'
where rz = 'RZ8' and dbSys = '?' and dbMbr like 'DCV%'
;
commit;
update oa1p.tqz050cmd set dbSys = 'DP8G'
where rz = 'RZ8' and dbSys = '?' and dbMbr like 'DP8%'
;
commit;
commit;
update oa1p.tqz050cmd set rz = 'RZ8'
where rz = 'RZZ' and system like 'S8%'
;
update oa1p.tqz050cmd set dbSys = 'DE0G'
where rz = 'RZZ' and dbSys = '?' and dbMbr like 'DE0%'
;
commit;
update oa1p.tqz050cmd set dbSys = 'DEVG'
where rz = 'RZZ' and dbSys = '?' and dbMbr like 'DEV%'
;
commit;
update oa1p.tqz050cmd set dbSys = 'DBBA'
where rz = 'RZ1' and dbSys = '?' and dbMbr like 'DBA%'
;
commit;
delete from oa1p.tqz050cmd
where rz = 'RZ1' -- and dbSys = '?'
;
update oa1p.tqz050cmd set dbSys = 'DBOL'
where rz = 'RZ4' and dbSys = '?' and dbMbr like 'DOL%'
;
select *
from oa1p.tqz050cmd
order by tst desc
fetch first 2000 rows only
}¢--- A540769.WK.SQL(NI02097) cre=2007-03-22 mod=2007-03-22-13.34.10 F540769 ---
select ni107140, ni107146, ni107142, ni107144
from oa1t.TNI107A101A
order by abs(ni107142) desc
fetch first 23 rows only
;
select ni107140, ni107146, ni107142, ni107144
from oa1t01.TNI107A101A
order by abs(ni107144) asc
fetch first 23 rows only
;
select ni107140, ni107146, ni107142, ni107144
from oa1t02.TNI107A101A
order by abs(ni107146) desc
fetch first 23 rows only
;
x
select ni107068, ni107071, ni107069, ni107070
from oa1t.TNI107A101A
order by abs(ni107069) desc
fetch first 23 rows only
;
select ni107068, ni107071, ni107069, ni107070
from oa1t01.TNI107A101A
order by abs(ni107070) asc
fetch first 23 rows only
;
select ni107068, ni107071, ni107069, ni107070
from oa1t02.TNI107A101A
order by abs(ni107071) desc
fetch first 23 rows only
;
x
select ni107142, count(*)
from oa1t.TNI107A101A
group by ni107142
order by ni107142 desc
;
x
-- new
select ni107140, ni107146, ni107142, ni107144
from oa1t.TNI107A101A
;
-- old
select ni107068, ni107071, ni107069, ni107070
from oa1T.TNI107A101A
;
-- new
select ni107140, ni107146, ni107142, ni107144
from oa1t.TNI107A101A
;
}¢--- A540769.WK.SQL(NI5470) cre=2014-08-22 mod=2014-08-22-14.23.21 A540769 ----
set current path = oa1p;
SELECT
-- begin prb insert penc
-- tacct_program p, fsoFmtE7, all, expr ~
fosFmtE7(p.ELAPSEPKG) "pkgElap"
, fosFmtE7(p.CPUTCBPKG) "pkgCpu"
, fosFmtE7(p.CLASS7CPU_ZIIP) "pkgZIIP"
, fosPrWait(p.ELAPSYNCIO, p.ELPLOCK, p.ELPOTHREAD, p.ELPOTHWRIT
, p.ELPUNITSW, p.ELPARCQIS, p.ELPDRAIN, p.ELPCLAIM
, p.ELPARCREAD, p.ELPPGLAT, p.GBLMSGELAP, p.GBLLOKELAP
, p.SPWAITELAP, p.FUNCWAIT, p.LOBWAITELAP, p.WTELAWTK
, p.WTELAWTM, p.WTELAWTN, p.WTELAWTO
, p.WTELAWTQ) "wait % 1. % 2. % 3."
, fosFmtE7(p.BPGETPAGE) "bpGetPg"
, fosFmtE7(p.BPPGUPDAT) "bpUpdPg"
, fosFmtE7(p.BPSYNCRD) "bpSynRe"
, fosFmtE7(p.SQLCALL) SQLCALL
, fosFmtE7(p.SQLCOUNT) SQLCOUNT
, fosFmtE7(p.SELECTS) SELECTS
, fosFmtE7(p.INSERTS) INSERTS
, fosFmtE7(p.UPDATES) UPDATES
, fosFmtE7(p.DELETES) DELETES
, fosFmtE7(p.DESCRIBES) "describ"
, fosFmtE7(p.PREPARES) "prepare"
, fosFmtE7(p.OPENS) OPENS
, fosFmtE7(p.FETCHES) FETCHES
, fosFmtE7(p.CLOSES) CLOSES
, real((p.ELAPSYNCIO + p.ELPLOCK + p.ELPOTHREAD + p.ELPOTHWRIT
+ p.ELPUNITSW + p.ELPARCQIS + p.ELPDRAIN + p.ELPCLAIM
+ p.ELPARCREAD + p.ELPPGLAT + p.GBLMSGELAP + p.GBLLOKELAP
+ p.SPWAITELAP + p.FUNCWAIT + p.LOBWAITELAP + p.WTELAWTK
+ p.WTELAWTM + p.WTELAWTN + p.WTELAWTO + p.WTELAWTQ)) "wait"
, fosFmtE7(p.OCCURRENCES) OCCURRENCES
, p.SYSTEMID
, p.SUBSYSTEM
, p.PLANNAME
, p.AUTHID
, p.CONNECTION
, p.CORRID
, p.ORIGPRIMID
, p.CONNTYPE
, p.DATETIME
, p.DATE
, p.LOCATION
, p.GROUPNAME
, p.ENDUSERID
, p.ENDUSERTX
, p.ENDUSERWN
, p.CORRNAME
, fosFmtE7(p.CLASS7CNT) CLASS7CNT
, fosFmtE7(p.CLASS8CNT) CLASS8CNT
, fosFmtE7(p.IFCIDSEQ#) IFCIDSEQ#
, fosFmtE7(p.CPUSUCONV) CPUSUCONV
, p.EXECLOCATION
, p.COLLECTIONID
, p.PROGRAMNAME
, p.CONSISTOKEN
, fosFmtE7(p.ELAPSYNCIO) "syncIOW"
, fosFmtE7(p.ELPLOCK) ELPLOCK
, fosFmtE7(p.ELPOTHREAD) "othReaW"
, fosFmtE7(p.ELPOTHWRIT) "othWriW"
, fosFmtE7(p.ELPUNITSW) "unitSwW"
, fosFmtE7(p.ELPARCQIS) "arcLQuW"
, fosFmtE7(p.ELPDRAIN) "drainW"
, fosFmtE7(p.ELPCLAIM) "claimW"
, fosFmtE7(p.ELPARCREAD) "arcLReW"
, fosFmtE7(p.ELPPGLAT) "pgLatW"
, fosFmtE7(p.GBLMSGELAP) "glMsgW"
, fosFmtE7(p.GBLLOKELAP) "glLockW"
, fosFmtE7(p.SPWAITELAP) "stPrW"
, fosFmtE7(p.SPROCCNT) SPROCCNT
, fosFmtE7(p.FUNCWAIT) FUNCWAIT
, fosFmtE7(p.FUNCCNT) FUNCCNT
, fosFmtE7(p.LOBWAITELAP) "lobW"
, fosFmtE7(p.WTELAWTK) "glChiW"
, fosFmtE7(p.WTELAWTM) "glOthW"
, fosFmtE7(p.WTELAWTN) "glPrtW"
, fosFmtE7(p.WTELAWTO) "glPgPhW"
, fosFmtE7(p.WTELAWTQ) "glOtPhW"
, fosFmtE7(p.RLFCPULIMITU) RLFCPULIMITU
, fosFmtE7(p.RLFCPUUSEDU) RLFCPUUSEDU
, fosFmtE7(p.SUSPLATCH) SUSPLATCH
, fosFmtE7(p.SUSPOTHER) SUSPOTHER
, fosFmtE7(p.LOCKREQS) LOCKREQS
, fosFmtE7(p.UNLOCKREQS) UNLOCKREQS
, fosFmtE7(p.QUERYREQS) QUERYREQS
, fosFmtE7(p.CHNGREQS) CHNGREQS
, fosFmtE7(p.IRLMREQS) IRLMREQS
, fosFmtE7(p.CLAIMREQ) CLAIMREQ
, fosFmtE7(p.DRAINREQ) DRAINREQ
, p.LOADTS
-- end prb insert penc
FROM PBXX.TACCT_PROGRAM p
WHERE PLANNAME = 'NI5470'
AND DATETIME BETWEEN '2014-08-22-02.00.00.00'
and '2014-08-22-03.50.00.00'
with ur
}¢--- A540769.WK.SQL(NZ240) cre=2013-01-14 mod=2013-01-14-15.27.49 A540769 -----
with p as
( select case
when NZ240003 <= x'00D1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' then -1
when NZ240003 <= x'00D5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' then 53
when NZ240003 <= x'00D9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' then 54
when NZ240003 <= x'00DDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' then 55
when NZ240003 <= x'00E1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' then 56
when NZ240003 <= x'00E5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' then 57
when NZ240003 <= x'00E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' then 58
when NZ240003 <= x'00EdFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' then 59
else 60
end part, n.*
from oa1a.tnz240a1 n
)
select part, count(*), hex(min(NZ240003)), hex(max(NZ240003))
from P
where nz240003 > x'00D0'
group by part
;
declare global temporary table session.ins
as (select * from oa1a.tnz240a1)
with no data
;
insert into session.ins
select *
from oa1a.tnz240a1
where NZ240003 between x'00E6' and x'00e9FF'
fetch first 20 rows only
;
update session.ins set NZ240003 = left(NZ240003, 19) || '?'
;
insert into oa1a.tnz240a1
select * from session.ins
;
with p as
( select case
when NZ240003 <= x'00D1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' then -1
when NZ240003 <= x'00D5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' then 53
when NZ240003 <= x'00D9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' then 54
when NZ240003 <= x'00DDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' then 55
when NZ240003 <= x'00E1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' then 56
when NZ240003 <= x'00E5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' then 57
when NZ240003 <= x'00E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' then 58
when NZ240003 <= x'00EdFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' then 59
else 60
end part, n.*
from oa1a.tnz240a1 n
)
select part, count(*), hex(min(NZ240003)), hex(max(NZ240003))
from P
where nz240003 > x'00D0'
group by part
;
rollback
;x;
}¢--- A540769.WK.SQL(NZ240INS) cre=2013-01-14 mod=2013-01-16-11.59.49 A540769 ---
$#@
$*( generate jobs
each looping
insert into one partition of tnz240a1
sleep
rollback
$*)
$>.fEdit()
$@insJob{A, "x'0000'", "x'0002FF'"} $** part 1
$@insJob{B, "x'002A'", "x'002DFF'"} $** part 12
$@insJob{C, "x'00CE'", "x'00D1FF'"} $** part 52
$@insJob{D, "x'00E6'", "x'00E9FF'"} $** part 58
$@insJob{E, "x'00EA'", "x'00EDFF'"} $** part 59
$@insJob{I, "x'00EE'", "x'00EFFF'"} $** part 60
$@insJob{J, "x'00F0'", "x'00F3FF'"} $** part 61
$@insJob{K, "x'00F8'", "x'00FBFF'"} $** part 63
$@insJob{L, "x'00FC'", "x'FFFFFF'"} $** part 64
$@proc insJob $@/insJob/
parse arg , jc, vFr, vTo
$= jc =- jc
$@=/jcl/
//A540769$jc JOB (CP00,KE50),'DB2 nz440 ins', 00010000
// MSGCLASS=T,TIME=1440, 00020000
// NOTIFY=&SYSUID,REGION=0M 00030000
//*MAIN CLASS=LOG0 00040001
//*
//S1 EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99, 00020001
// PARM='WSH'
//SYSPROC DD DSN=A540769.WK.REXX,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//*OUT DD SYSOUT=* avoid truncation
//SYSTSIN DD DUMMY
//WSH DD *
$/jcl/
$$ $"$#@"
$$- $'$= vFr =- "'vFr'"'
$$- $'$= vTo =- "'vTo'"'
$@#/wshIn/
call errAddCleanup 'call sqlExec rollback'
call sqlConnect DBAF
$;
$@do ix=1 to 120 $@/loop/
say time() 'inserting'
$;
$<=¢
declare global temporary table session.ins
as (select * from oa1a.tnz240a1)
with no data
;
insert into session.ins
select *
from oa1a.tnz240a1
where NZ240003 between $vFr and $vTo
fetch first 50 rows only
;
update session.ins set NZ240003 = left(NZ240003, 19) || '?'
;
insert into oa1a.tnz240a1
select * from session.ins
;
$! call sqlStmts
call sleep 30
say time() 'rolling back'
call sqlExec rollback
$/loop/
$/wshIn/
$/insJob/
$#out 20130115 14:32:38
$#out 20130115 14:24:22
$#out 20130114 20:02:38
$#out 20130114 19:54:59
$#out 20130114 19:52:44
$#out 20130114 19:51:40
$#out 20130114 19:50:41
}¢--- A540769.WK.SQL(OBID) cre=2010-01-25 mod=2010-01-25-12.16.25 A540769 ------
with id as
( select 102 id from sysibm.sysDummy1
union select 113 id from sysibm.sysDummy1
)
select 'ts obid', s.obId, dbName, name
from sysibm.sysTablespace s, id
where dbname = 'DB2ADMIN' and OBID = id
union select 'ts psid', s.psId, dbName, name
from sysibm.sysTablespace s, id
where dbname = 'DB2ADMIN' and psID = id
union select 'tb obid', t.obId, dbName, name
from sysibm.sysTables t, id
where dbname = 'DB2ADMIN' and obID = id
union select 'ix obid', x.obId, dbName, name
from sysibm.sysIndexes x, id
where dbname = 'DB2ADMIN' and obID = id
;
select *
from sysibm.sysTables
where dbname = 'DB2ADMIN' and OBID = 102
;
select *
from sysibm.sysIndexes
where dbname = 'DB2ADMIN' and OBID = 102
}¢--- A540769.WK.SQL(OCF) cre= mod= --------------------------------------------
select tid150md, tid150tst, tid150uui, tid150cha from oa1a . tid150a1;
select tid150md, tid150tst, tid150uui, tid150cha from oa1a . tid150a1
where tid150md = 1010
and TID150TST >= '2004-10-10-11.06.00.000000'
and tid150uui like '% %'
union select tid150md, tid150tst, tid150uui, tid150cha
from oa1a.tid150a1
where tid150md > 1010
and tid150md < 1013
and tid150uui like '%'
union select tid150md, tid150tst, tid150uui, tid150cha
from oa1a.tid150a1
where tid150md = 1010
and TID150TST <= '2004-10-13-21.48.00.000000'
and tid150uui like '% %'
order by tid150tst desc;
}¢--- A540769.WK.SQL(OCF2) cre= mod= -------------------------------------------
select
o1.tid150uui, o1.cnt,
o2.tid150tst, o2.tid150cha,
o3.tid150tst, o3.tid150cha
from
(select
tid150uui, count(*) cnt,
min(tid150tst) minTst, max(tid150tst) maxTst
from oa1a . tid150a1
group by tid150uui
having count(*) > 0
) o1
join
(select
tid150cha, tid150tst, tid150uui
from oa1a . tid150a1
) o2
on o2.tid150tst = o1.minTst
and o2.tid150uui = o1.tid150uui
left join
(select
tid150cha, tid150tst, tid150uui
from oa1a . tid150a1
) o3
on o3.tid150tst = o1.maxTst
and o3.tid150uui = o1.tid150uui
and o3.tid150tst > o2.tid150tst
order by o1.tid150uui asc
;
}¢--- A540769.WK.SQL(OLDNAME) cre=2007-03-13 mod=2007-03-20-13.26.31 F540769 ---
select char(dbName, 8) "db", count(*) "total",
sum(case when creator = 'IMF' then 1 else 0 end) "imf" ,
sum(case when creator = 'ODV' then 1 else 0 end) "odv" ,
sum(case when creator = 'OA1P' then 1 else 0 end) "oa1p" ,
sum(case when creator in ('IMF', 'ODV', 'OA1P')
then 0 else 1 end) "other" ,
char(max(case when creator in ('IMF', 'ODV', 'OA1P')
then '' else creator end), 8) "other"
from sysibm.systables
where type = 'T' and dbName in
( select s.dbname
from sysibm.systables s
where s.type = 'T' and s.creator in ('IMF', 'ODV')
)
group by dbName
order by dbName
;
select count(distinct dbName) "dbCnt", count(*) "tbCnt",
sum(case when creator = 'IMF' then 1 else 0 end) "imf" ,
sum(case when creator = 'ODV' then 1 else 0 end) "odv" ,
sum(case when creator = 'OA1P' then 1 else 0 end) "oa1p" ,
sum(case when creator in ('IMF', 'ODV', 'OA1P')
then 0 else 1 end) "other" ,
char(max(case when creator in ('IMF', 'ODV', 'OA1P')
then '' else creator end), 8) "other"
from sysibm.systables
where type = 'T' and dbName in
( select s.dbname
from sysibm.systables s
where s.type = 'T' and s.creator in ('IMF', 'ODV')
)
;
select char(d.name, 8),
sum(coalesce(t.cnt , 0)) "tables" ,
sum(coalesce(ts.byte, 0)) "tbBytes",
sum(coalesce(ts.cnt , 0)) "tbParts",
sum(coalesce(i.cnt , 0)) "indexes" ,
sum(coalesce(xs.byte, 0)) "ixBytes",
sum(coalesce(xs.cnt , 0)) "ixParts"
from sysibm.sysDatabase d
left join
( select dbName, count(*) cnt from sysibm.systables
where type = 'T' group by dbName
) t
on t.dbName = d.name
left join
( select dbName,
sum(coalesce(float(space), 0) * 1024) byte,
count(*) cnt
from sysIbm.tableSpaceStats
group by dbName
) ts
on ts.dbname = d.name
left join
( select dbName, count(*) cnt from sysibm.sysIndexes
group by dbName
) i
on i.dbName = d.name
left join
( select dbName,
sum(coalesce(float(space), 0)* 1024) byte,
count(*) cnt
from sysIbm.indexSpaceStats
group by dbName
) xs
on xs.dbName = d.name
where d.name in
( select s.dbname
from sysibm.systables s
where s.type = 'T' and s.creator in ('IMF', 'ODV')
)
group by d.name
order by d.name
;
select count(distinct d.name) "dbCnt" ,
sum(coalesce(t.cnt , 0)) "tables" ,
sum(coalesce(ts.byte, 0)) "tbBytes",
sum(coalesce(ts.cnt , 0)) "tbParts",
sum(coalesce(i.cnt , 0)) "indexes",
sum(coalesce(xs.byte, 0)) "ixBytes",
sum(coalesce(xs.cnt , 0)) "ixParts"
from sysibm.sysDatabase d
left join
( select dbName, count(*) cnt from sysibm.systables
where type = 'T' group by dbName
) t
on t.dbName = d.name
left join
( select dbName,
sum(coalesce(float(space), 0) * 1024) byte,
count(*) cnt
from sysIbm.tableSpaceStats
group by dbName
) ts
on ts.dbname = d.name
left join
( select dbName, count(*) cnt from sysibm.sysIndexes
group by dbName
) i
on i.dbName = d.name
left join
( select dbName,
sum(coalesce(float(space), 0)* 1024) byte,
count(*) cnt
from sysIbm.indexSpaceStats
group by dbName
) xs
on xs.dbName = d.name
where d.name in
( select s.dbname
from sysibm.systables s
where s.type = 'T' and s.creator in ('IMF', 'ODV')
)
;
;
x
with cre as
( select creator, name, dbname, tsName,
case when creator like 'OA1P%' then 'OA1P%'
when substr(creator, 2, 1) in ('0','1','2','3','4',
'5','6','7','8','9')
then left(creator, 1) || '%user'
when left(creator, 3) in ('BMC', 'DB2')
then left(creator, 3) || '%'
else creator
end creGr
from sysibm.systables
where type = 'T'
)
select char(t.creGr, 8), t.cnt "tables",
coalesce(ts.byte, 0) "tblBytes", ts.cnt "tblParts",
coalesce(i.cnt, 0) "indexes", xs.sp "idxBytes", xs.pt "idxParts"
from
( select creGr, count(*) cnt
from cre
group by creGr
) t
left join
(select creGr, sum(float(space) * 1024) byte, count(*) cnt
from cre c, sysIbm.tableSpaceStats s
where c.dbname = s.dbName and c.tsName = s.Name
group by creGr
) ts
on t.creGr = ts.creGr
left join
( select creGr, count(*) cnt
from cre c, sysibm.sysindexes x
where c.creator = x.tbCreator and c.name = x.tbName
group by creGr
) i
on t.creGr = i.creGr
left join
( select creGr, sum(float(q.space)* 1024) sp, count(*) pt
from cre c, sysibm.sysindexes x, sysIbm.indexSpaceStats q
where c.creator = x.tbCreator and c.name = x.tbName
and x.dbname = q.dbName and x.indexSpace = q.indexSpace
group by creGr
) xs
on t.creGr = xs.creGr
order by 2 desc
;
x
with cre as
( select creator, name,
case when creator = 'IMF' then 'IMF'
when creator = 'ODV' then 'ODV'
when creator like 'OA1P%' then 'OA1P%'
when left(creator, 2) in ('A0','A1','A2','A3','A4',
'A5','A6','A7','A8','A9') then 'Auser'
when left(creator, 2) in ('F0','F1','F2','F3','F4',
'F5','F6','F7','F8','F9') then 'Fuser'
else creator
end creGr
from sysibm.systables
)
select char(creGr, 8), count(*)
from cre
group by creGr
order by creGr
;
x
select char(creator, 8), count(*), count(distinct dbname)
from sysibm.systables
group by creator
order by 2 desc
;
select char(creator, 8), count(*), count(distinct dbname)
from sysibm.systables
group by creator
order by 2 desc
;
select char(coalesce(n.db, o.db), 8) "db",
coalesce(o.cnt, 0) "oldCnt", o.mi "oldMin", o.ma "oldMax",
coalesce(n.cnt, 0) "newCnt", n.mi "newMin", n.ma "newMax"
from
( select dbname db, count(distinct creator) cnt,
char(min(creator), 8) mi, char(max(creator), 8) ma
from sysibm.systables
where type = 'T' and creator like 'OA1%'
group by dbname
) n
full join
( select dbname db, count(distinct creator) cnt,
char(min(creator), 8) mi, char(max(creator), 8) ma
from sysibm.systables
where type = 'T' and not creator like 'OA1%'
select char(dbName, 8) "db", count(*) "imf+odv+other",
sum(case when creator = 'IMF' then 1 else 0 end) "imf",
sum(case when creator = 'ODV' then 1 else 0 end) "odv"
from sysibm.systables
where type = 'T' and creator in ('IMF', 'ODV')
group by dbName
order by dbName
;
x
with cre as
( select creator, name, dbname, tsName,
case when creator like 'OA1P%' then 'OA1P%'
when substr(creator, 2, 1) in ('0','1','2','3','4',
'5','6','7','8','9')
then left(creator, 1) || '%user'
when left(creator, 3) in ('BMC', 'DB2')
then left(creator, 3) || '%'
else creator
end creGr
from sysibm.systables
where type = 'T'
)
select char(t.creGr, 8), t.cnt "tables",
coalesce(ts.byte, 0) "tblBytes", ts.cnt "tblParts",
coalesce(i.cnt, 0) "indexes", xs.sp "idxBytes", xs.pt "idxParts"
from
( select creGr, count(*) cnt
from cre
group by creGr
) t
left join
(select creGr, sum(float(space) * 1024) byte, count(*) cnt
from cre c, sysIbm.tableSpaceStats s
where c.dbname = s.dbName and c.tsName = s.Name
group by creGr
) ts
on t.creGr = ts.creGr
left join
( select creGr, count(*) cnt
from cre c, sysibm.sysindexes x
where c.creator = x.tbCreator and c.name = x.tbName
group by creGr
) i
on t.creGr = i.creGr
left join
( select creGr, sum(float(q.space)* 1024) sp, count(*) pt
from cre c, sysibm.sysindexes x, sysIbm.indexSpaceStats q
where c.creator = x.tbCreator and c.name = x.tbName
and x.dbname = q.dbName and x.indexSpace = q.indexSpace
group by creGr
) xs
on t.creGr = xs.creGr
order by 2 desc
;
x
with cre as
( select creator, name,
case when creator = 'IMF' then 'IMF'
when creator = 'ODV' then 'ODV'
when creator like 'OA1P%' then 'OA1P%'
when left(creator, 2) in ('A0','A1','A2','A3','A4',
'A5','A6','A7','A8','A9') then 'Auser'
when left(creator, 2) in ('F0','F1','F2','F3','F4',
'F5','F6','F7','F8','F9') then 'Fuser'
else creator
end creGr
from sysibm.systables
)
select char(creGr, 8), count(*)
from cre
group by creGr
order by creGr
;
x
select char(creator, 8), count(*), count(distinct dbname)
from sysibm.systables
group by creator
order by 2 desc
;
select char(creator, 8), count(*), count(distinct dbname)
from sysibm.systables
group by creator
order by 2 desc
;
select char(coalesce(n.db, o.db), 8) "db",
coalesce(o.cnt, 0) "oldCnt", o.mi "oldMin", o.ma "oldMax",
coalesce(n.cnt, 0) "newCnt", n.mi "newMin", n.ma "newMax"
from
( select dbname db, count(distinct creator) cnt,
char(min(creator), 8) mi, char(max(creator), 8) ma
from sysibm.systables
where type = 'T' and creator like 'OA1%'
group by dbname
) n
full join
( select dbname db, count(distinct creator) cnt,
char(min(creator), 8) mi, char(max(creator), 8) ma
from sysibm.systables
where type = 'T' and not creator like 'OA1%'
group by dbname
) o
on n.db = o.db
order by 2 desc, 5 desc
;
x
select dbname, count(distinct creator),
char(min(creator), 8), char(max(creator), 8)
from sysibm.systables
where type = 'T' -- and dbname like 'A%'
group by dbname
order by 2 desc
}¢--- A540769.WK.SQL(OLDNAMP) cre=2007-03-20 mod=2007-03-20-12.22.33 F540769 ---
select d.name,
( select count(*) from sysibm.systables c
where c.type = 'T' and c.dbName = d.name ) "tables"
from sysibm.sysDatabase d
where d.name like 'AV%' -- in ( 'DBJ01', 'DBP01' )
group by d.name
order by d.name
;
select d.name,
( select count(*) from sysibm.systables c
where c.type = 'T' and c.dbName = d.name ) "tables"
from sysibm.sysDatabase d
where d.name like 'AV%' -- in ( 'DBJ01', 'DBP01' )
order by d.name
;
}¢--- A540769.WK.SQL(OPTHINCO) cre=2008-03-11 mod=2008-03-11-11.20.37 F540769 ---
INSERT INTO CMNBATCH.PLAN_TABLE (
"QUERYNO"
, QBLOCKNO
, APPLNAME
, PROGNAME
, PLANNO
, METHOD
, CREATOR
, TNAME
, TABNO
, ACCESSTYPE
, MATCHCOLS
, ACCESSCREATOR
, ACCESSNAME
, INDEXONLY
, SORTN_UNIQ
, SORTN_JOIN
, SORTN_ORDERBY
, SORTN_GROUPBY
, SORTC_UNIQ
, SORTC_JOIN
, SORTC_ORDERBY
, SORTC_GROUPBY
, TSLOCKMODE
, TIMESTAMP
, REMARKS
, PREFETCH
, COLUMN_FN_EVAL
, MIXOPSEQ
, VERSION
, COLLID
, ACCESS_DEGREE
, ACCESS_PGROUP_ID
, JOIN_DEGREE
, JOIN_PGROUP_ID
, SORTC_PGROUP_ID
, SORTN_PGROUP_ID
, PARALLELISM_MODE
, MERGE_JOIN_COLS
, CORRELATION_NAME
, PAGE_RANGE
, JOIN_TYPE
, GROUP_MEMBER
, IBM_SERVICE_DATA
, WHEN_OPTIMIZE
, QBLOCK_TYPE
, BIND_TIME
, OPTHINT
, HINT_USED
, PRIMARY_ACCESSTYPE
, PARENT_QBLOCKNO
, TABLE_TYPE
, TABLE_ENCODE
, TABLE_SCCSID
, TABLE_MCCSID
, TABLE_DCCSID
, ROUTINE_ID
, CTEREF
, STMTTOKEN
) select
QUERYNO
, QBLOCKNO
, APPLNAME
, PROGNAME
, PLANNO
, METHOD
, CREATOR
, TNAME
, TABNO
, ACCESSTYPE
, MATCHCOLS
, ACCESSCREATOR
, ACCESSNAME
, INDEXONLY
, SORTN_UNIQ
, SORTN_JOIN
, SORTN_ORDERBY
, SORTN_GROUPBY
, SORTC_UNIQ
, SORTC_JOIN
, SORTC_ORDERBY
, SORTC_GROUPBY
, TSLOCKMODE
, TIMESTAMP
, REMARKS
, PREFETCH
, COLUMN_FN_EVAL
, MIXOPSEQ
, 'A18Q002827' -- VERSION
, COLLID
, ACCESS_DEGREE
, ACCESS_PGROUP_ID
, JOIN_DEGREE
, JOIN_PGROUP_ID
, SORTC_PGROUP_ID
, SORTN_PGROUP_ID
, PARALLELISM_MODE
, MERGE_JOIN_COLS
, CORRELATION_NAME
, PAGE_RANGE
, JOIN_TYPE
, GROUP_MEMBER
, IBM_SERVICE_DATA
, WHEN_OPTIMIZE
, QBLOCK_TYPE
, current timestamp -- BIND_TIME
, 'WK1' -- OPTHINT
, HINT_USED
, PRIMARY_ACCESSTYPE
, PARENT_QBLOCKNO
, TABLE_TYPE
, TABLE_ENCODE
, TABLE_SCCSID
, TABLE_MCCSID
, TABLE_DCCSID
, ROUTINE_ID
, CTEREF
, STMTTOKEN
from CMNBATCH.PLAN_TABLE
-- where progName = 'RI0810' and timestamp > '200802'
-- and queryNo = 3974
where progname = 'RI0810'
and bind_time = '2008-02-09-00.39.32.954891'
and Queryno = 3974
;
select * from cmnBatch.plan_table
where optHint = 'WK1'
;
commit
;
,
}¢--- A540769.WK.SQL(OPTHINTC) cre=2010-11-18 mod=2010-11-18-10.47.07 A540769 ---
set current sqlid = 'S100447';
-- drop TABLESPACE db2admin.AOPTHINT;
commit;
CREATE TABLESPACE AOPTHINT
IN DB2ADMIN
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
TRACKMOD YES
LOGGED
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS NO
CCSID Unicode
DEFINE YES
MAXROWS 255
;
create table s100447.tOptHint
like cmnBatch.plan_table
in db2Admin.aOptHint
;
-- Achtung (teil)copy aus planvw, aenderungen dort ||||||| 00010000
-- Achtung (teil)copy aus planvw, aenderungen dort ||||||| 00020000
-- Achtung (teil)copy aus planvw, aenderungen dort ||||||| 00030000
-- SET CURRENT SQLID = 'S100447'; 00040000
-- drop VIEW S100447.vOptHint_VIEW1 ; 00050001
CREATE VIEW S100447.vOptHint_VIEW1 as 00060001
SELECT SUBSTR(DIGITS(QUERYNO), 5) AS STMT, 00070000
QBLOCK_TYPE AS "TYPE", 00080000
00090000
CASE WHEN PRIMARY_ACCESSTYPE = 'D' then 'dirRow' 00100000
WHEN ACCESSTYPE = 'I ' THEN 'ixScan' 00110000
WHEN ACCESSTYPE = 'I1' THEN 'ixOne ' 00120000
WHEN ACCESSTYPE = 'R ' THEN 'tsScan' 00130000
WHEN ACCESSTYPE = 'N ' THEN 'ixSPin' 00140000
WHEN ACCESSTYPE = 'M ' THEN 'ixScMu' 00150000
WHEN ACCESSTYPE = 'MX' THEN 'ixScMX' 00160000
WHEN ACCESSTYPE = 'MI' THEN 'ixScIn' 00170000
WHEN ACCESSTYPE = 'MU' THEN 'ixScUn' 00180000
WHEN ACCESSTYPE = 'T ' THEN 'ixSPRS' 00190000
WHEN ACCESSTYPE = ' ' THEN ' ' 00200000
ELSE '??' || accessType 00210000
END AS ACCESS, 00220000
00230000
CASE WHEN ACCESSTYPE = 'R ' THEN ' ' WHEN 00240000
PRIMARY_ACCESSTYPE = 'D' THEN ' ' ELSE SUBSTR( 00250000
ACCESSNAME, 1, 12) END AS "INDEX", 00260000
SUBSTR(TNAME, 1, 12) AS "TABLE", 00270000
00280000
CASE WHEN TABLE_TYPE IS NULL THEN ' ' ELSE TABLE_TYPE 00290000
END AS TTYP, 00300000
CASE WHEN METHOD = 3 THEN ' ' WHEN ACCESSTYPE = 'R ' 00310000
THEN ' ' ELSE SUBSTR(DIGITS(MATCHCOLS), 5, 1) CONCAT 00320000
' ' CONCAT INDEXONLY END AS MC_O, 00330000
CASE METHOD WHEN 0 THEN ' ' WHEN 1 THEN 'NLJOIN' WHEN 00340000
2 THEN 'SMJOIN' WHEN 3 THEN 'SORT ' WHEN 4 THEN 'HYJOIN' 00350000
ELSE NULL END AS METHOD, 00360000
CASE JOIN_TYPE WHEN 'F' THEN 'FULL ' WHEN 'L' THEN 'LEFT ' 00370000
WHEN 'S' THEN 'STAR ' ELSE ' ' END AS "JOIN", 00380000
SORTN_UNIQ CONCAT SORTN_JOIN CONCAT SORTN_ORDERBY CONCAT 00390000
SORTN_GROUPBY AS UJOG, 00400000
SORTC_UNIQ CONCAT SORTC_JOIN CONCAT SORTC_ORDERBY CONCAT 00410000
SORTC_GROUPBY AS UJOC, TSLOCKMODE AS LCK, 00420000
SUBSTR(CORRELATION_NAME, 1, 4) AS CORR, 00430000
CASE PARALLELISM_MODE WHEN 'C' THEN 'CPU' WHEN 'I' THEN 00440000
'I-O' WHEN 'X' THEN 'SYSPLEX' ELSE NULL END AS PARAL, 00450000
STRIP(DIGITS(ACCESS_DEGREE), LEADING, '0') CONCAT ' ' 00460000
CONCAT STRIP(DIGITS(JOIN_DEGREE), LEADING, '0') AS AJ_DEG, 00470000
STRIP(DIGITS(ACCESS_PGROUP_ID), LEADING, '0') CONCAT ' ' 00480000
CONCAT STRIP(DIGITS(JOIN_PGROUP_ID), LEADING, '0') AS 00490000
PG_DEG, STRIP(DIGITS(MERGE_JOIN_COLS), LEADING, '0') AS MC, 00500000
PREFETCH AS PRE, 00510000
STRIP(DIGITS(QUERYNO), LEADING, '0') AS QNO, 00520000
SUBSTR(DIGITS(QBLOCKNO), 4, 2) CONCAT ' ' CONCAT SUBSTR( 00530000
DIGITS(PLANNO), 4, 2) AS BL_PL, PARENT_QBLOCKNO, 00540000
QBLOCKNO, PLANNO, TNAME, ACCESSNAME, OPTHINT, 00550000
HINT_USED, APPLNAME, "COLLID", PROGNAME, VERSION, 00560000
TIMESTAMP, QUERYNO, MIXOPSEQ, BIND_TIME 00570000
FROM s100447.tOpthint A 00580001
; 00590000
------------------------------------------------------------------------00600000
insert into s100447.tOptHint
select * from cmnbatch.plan_table where opthint <> ''
union select * from cmnbatch.plan_table where opthint <> ''
union select * from S100006.plan_table where opthint <> ''
union select * from S100447.plan_table where opthint <> ''
union select * from S103931.plan_table where opthint <> ''
;
commit;
;yx
;
select count(*), opthint, length(opthint), hex(opthint)
from cmnBatch.plan_table
group by opthint
order by opthint
with ur
}¢--- A540769.WK.SQL(OPTHISBQ) cre=2014-07-09 mod=2014-07-09-16.26.38 A540769 ---
//A540769W JOB (CP00,KE50),'DB2 bind', 00010000
// MSGCLASS=T,TIME=1440, 00020000
// NOTIFY=&SYSUID,REGION=0M,SCHENV=DB2 00030000
//*MAIN CLASS=LOG 00040000
//P04 EXEC PGM=IKJEFT01
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSTSIN DD *
DSN SYS(DBOF)
BIND QUERY EXPLAININPUTSCHEMA('A540769')
}¢--- A540769.WK.SQL(OPTHISEL) cre=2014-10-14 mod=2014-10-14-09.05.51 A540769 ---
select *
from oa1p.tQZ081OptHintPlan p
where explain_time = '2014-08-06-16.23.48.000000'
;x;
with p as
(
select explain_time, count(*) cPlan
from oa1p.tQZ081OptHintPlan p
group by explain_time
)
, j as
( select value(q.explain_time, p.explain_time) explain
, case when q.explain_time is null then 0 else 1 end cQuery
, case when p.explain_time is null then 0 else cPlan end cPlan
, q.desc
from oa1p.tQZ080OptHintQuery q
full outer join p
on q.explain_time = p.explain_time
)
select min(explain) explain_min
, microSecond(max(explain)) max
, sum(cQuery) cQuery
, sum(cPlan) cPlan
, desc
, max(explain) explain_max
from j
group by trunc_timestamp(explain, 'ss'), desc
order by 1 desc, desc
;
select e from q
order by 1 desc
;x;
group by trunc_timestamp(explain_time, 'sec'), desc
)
, p as
( select explain_time, count(*) cPlan
from oa1p.tQZ081OptHintPlan
group by explain_time
)
select value(p.explain_time, q.explain_time), cPlan
, cQuery, desc, descTo
from q full outer join p
on p.explain_time = q.explain_time
order by 1 desc
;
with q as
( select min(explain_time) explain_min
, max(explain_time) explain_max
, count(*) cQuery
, desc
from oa1p.tQZ080OptHintQuery
group by trunc_timestamp(explain_time, 'sec'), desc
)
with q as
( select explain_time, count(*) cQuery, min(desc) desc, max(desc) descTo
from oa1p.tQZ080OptHintQuery
group by explain_time
)
, p as
( select explain_time, count(*) cPlan
from oa1p.tQZ081OptHintPlan
group by explain_time
)
select value(p.explain_time, q.explain_time), cPlan
, cQuery, desc, descTo
from q full outer join p
on p.explain_time = q.explain_time
order by 1 desc
;
select *
from oa1p.tQZ080OptHintQuery
order by explain_time desc
;
commit
;x;
select *
from oa1p.tQZ081OptHintPlan
order by explain_time desc
;
commit
;x;
update oa1p.tQZ081OptHintPlan set explain_time = bind_time
where explain_time is null
or explain_time < '1111-11-11-11.11.11'
;
delete from oa1p.tQZ080OptHintQuery
where explain_time in ('2014-08-08-15.44.50.000000'
,'2014-08-06-16.23.11.000000')
;
delete from oa1p.tQZ081OptHintPlan
where explain_time in ('2014-08-08-15.44.50.000000'
,'2014-08-06-16.23.11.000000')
;
rollback
;x;
update OA1P.TQZ080OptHintQuery set query_text = ''
;
xelete from OA1P.TQZ080OptHintQuery
where explain_time = '2014-08-06-16.23.48.000000'
;
xelete from OA1P.TQZ081OptHintPlan
where explain_time = '2014-08-08-19.27.49.000000'
;
xpdate OA1P.TQZ080OptHintQuery
set explain_time = '2014-08-06-16.23.48.000000'
where explain_time = '2014-08-08-19.27.49.000000'
;
}¢--- A540769.WK.SQL(OPTHISFQ) cre=2014-07-14 mod=2014-07-14-17.06.18 A540769 ---
//A540769W JOB (CP00,KE50),'DB2 bind', 00010000
// MSGCLASS=T,TIME=1440, 00020000
// NOTIFY=&SYSUID,REGION=0M,SCHENV=DB2 00030000
//*MAIN CLASS=LOG 00040000
//P04 EXEC PGM=IKJEFT01
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSTSIN DD *
DSN SYS(DBOF)
free QUERY queryid(4)
}¢--- A540769.WK.SQL(OPTHISIO) cre=2014-07-09 mod=2014-09-16-19.13.21 A540769 ---
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.dsn_userquery_table;
insert into A540769.plan_table
select *
from cmnbatch.plan_table
-- from cmnbatch.plan_view2Det
where collid = 'BP'
and progName = 'YBPSUCH'
and explain_time = '2014-04-20-03.58.20.271427'
and queryno = 713
;
-- insert opthint text and options
INSERT INTO DSN_USERQUERY_TABLE
( QUERYNO, SCHEMA, HINT_SCOPE,
QUERY_TEXT,
REOPT
)
SELECT 713, p.qualifier, 0, -- 0=system, 1=package
s.STATEMENT,
'Y'
from sysibm.sysPackStmt s
join sysibm.sysPackage p
on s.location = p.location and s.collid = p.collid
and s.name = p.name
and s.version = p.version and s.contoken = p.contoken
where s.location ='' and s.collid = 'BP' and s.name = 'YBPSUCH'
and s.version = 'BPST000070594A877D'
and s.queryno = 713
;
commit
;
select * from plan_view1;
select * from dsn_userquery_table;
;x
;x;
select * from sysibm.sysQuery
;
select p.qualifier, s.statement
from sysibm.sysPackStmt s
join sysibm.sysPackage p
on s.location = p.location and s.collid = p.collid
and s.name = p.name
and s.version = p.version and s.contoken = p.contoken
where s.location ='' and s.collid = 'BP' and s.name = 'YBPSUCH'
and s.version = 'BPST000070594A877D'
and s.queryno = 713
;
-- -dsn BIND QUERY EXPLAININPUTSCHEMA( A540769 )
;x;
-- insert opthint text and options
}¢--- A540769.WK.SQL(OPTHISIP) cre=2014-07-09 mod=2014-07-16-07.46.43 A540769 ---
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
delete from A540769.dsn_userquery_table;
INSERT INTO DSN_USERQUERY_TABLE
( QUERYNO, SCHEMA, HINT_SCOPE
, QUERY_TEXT
)
SELECT 70, p.qualifier, 0, -- 0=system, 1=package
s.STATEMENT
from sysibm.sysPackStmt s
join sysibm.sysPackage p
on s.location = p.location and s.collid = p.collid
and s.name = p.name
and s.version = p.version and s.contoken = p.contoken
where s.location ='' and s.collid = 'BP' and s.name = 'YBPSUCH'
and s.version = 'BPST000070594A877D'
and s.queryno = 713
;
explain plan set queryno = 70 for
SELECT A.BP20401, A.BP20404, A.BP20410, A.BP20411, B.BP20004,
B.BP20017, B.BP20013, B.BP20022, C.BP20501, C.BP20504, C.BP20509,
C.BP20510, C.BP20512
FROM oa1p.TBP204A1 A, oa1p.TBP200A1 B, oa1p.TBP205A1
C WHERE A.BP20401 = ? AND A.BP20402 <= ? AND A.BP20403
>= ? AND A.BP20405 = ? AND A.BP20409 = 'A' AND
B.BP20001 = A.BP20411 AND B.BP20002 <= ? AND B.BP20005 =
? AND B.BP20003 >= ? AND C.BP20501 = A.BP20411 AND
C.BP20502 <= ? AND C.BP20503 >= ?
AND C.BP20505 = '9999-12-31-23.59.59.999999'
AND ( ( C.BP20508 = 1 AND C.BP20513 <> 'LAE ' ) OR (
C.BP20508 = 3 AND C.BP20513 = 'LAE ' ) )
;
commit
;
select * from plan_view1
order by -- collid, progName, version, bind_time,
queryNo, qblockno, planno, mixOpSeq
}¢--- A540769.WK.SQL(OPTHISRB) cre=2014-07-09 mod=2014-07-09-17.54.23 A540769 ---
//A540769W JOB (CP00,KE50),'DB2 REO', 00010000
// MSGCLASS=T,TIME=1440, 00020000
// NOTIFY=&SYSUID,REGION=0M 00030000
//*MAIN CLASS=LOG 00040000
//P04 EXEC PGM=IKJEFT01
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSTSIN DD *
DSN SYS(DBOF)
REBIND PACKAGE ( A540769.YBPSUCH.(BPST000070594A877D) )
END
}¢--- A540769.WK.SQL(PALLY) cre=2011-06-23 mod=2011-06-23-14.34.42 A540769 -----
SELECT
row_number() over (),
name
FROM Sysibm.sysColumns
fetch first 100 rows only
}¢--- A540769.WK.SQL(PART) cre= mod= -------------------------------------------
select char(t.name,20) ,
t.creator, char(' '),
t.dbname, char(' '),
t.tsname, char(' '),
char(coalesce(char(p.partition), '<<null>>') || ' '),
char(coalesce(char(int(p.limitKey)), '<<null>>'))
from sysibm.systables t
left join sysibm.systablepart p
on t.tsname = p.tsname and t.dbname = p.dbname
where t.name = 'TID150A1' and t.creator = 'OA1P'
order by p.partition
;
select char(tid150md), char(' '),
char(coalesce(sum(cnt), 0)), char(' '),
char(count(distinct tid150tst)) , char(' '),
char(coalesce(char(min(tid150tst)), '--') || ' '),
char(coalesce(char(max(tid150tst)), '--'))
from
( select tid150tst, tid150md, count(*) cnt
from OA1P.tid150a1
group by tid150md, tid150tst
) g
group by tid150md
order by tid150md
;
}¢--- A540769.WK.SQL(PARTJOIN) cre= mod= ---------------------------------------
select char(c.name,20) ,
c.creator, char(' '),
c.dbname, char(' '),
c.tsname, char(' '),
char(c.p_part) , char(' '),
char(c.p_limit) , char(' '),
char(coalesce(sum(cnt), 0)) tst_all, char(' '),
char(coalesce(sum(tstDis), 0)) tst_dist, char(' '),
char(coalesce(
char(min(tid150md)) || ' '||
char(max(tid150md)) || ' ' ||
char(min(tstMin)) || ' ' ||
char(max(tstMax)) || ' '
, '<<null>>'))
from
( select
t.name, t.creator, t.dbname, t.tsname,
p.partition p_part, int(p.limitkey) p_limit,
q.partition q_part, int(q.limitkey) q_limnu,
case when q.limitkey is null then -9999 else int(q.limitkey
end q_limit
from sysibm.systables t
join sysibm.systablepart p
on t.tsname = p.tsname and t.dbname = p.dbname
left join sysibm.systablepart q
on p.tsname = q.tsname and p.dbname = q.dbname
and p.partition - 1 = q.partition
where t.name = 'TID150A1' and t.creator = 'OA1P' ) c
left join
( select tid150md, count(*) cnt,
count(distinct tid150tst) tstDis,
min(tid150tst) tstMin, max(tid150tst) tstMax
from OA1P.tid150a1
group by tid150md
) d
on d.tid150md <= c.p_limit and d.tid150md > c.q_limit
group by c.p_limit, c.q_limit, c.p_part, c.q_part,
c.name, c.creator, c.dbname, c.tsname
order by c.p_limit, c.q_limit
;
}¢--- A540769.WK.SQL(PARTKEY) cre=2007-03-15 mod=2007-03-16-16.10.26 F540769 ---
with nn as
( select partition prt, char(left(limitkey, 10), 10) key
from sysibm.systablepart n
where n.dbname = 'NZ06A1P' and n.tsName = 'A265A'
), oo as
( select partition prt, char(left(limitkey, 10), 10) key
from sysibm.systablepart n
where n.dbname = 'NZ06A1P' and n.tsName = 'A260A'
)
select n.prt "new", min(o.prt) "oldMin", max(o.prt) "oldMax",
m.key "newKeyBef", n.key "newKey",
min(p.key) "oldBefMin", max(o.key) "oldKeyMax"
from nn n
left join nn m on n.prt - 1 = m.prt
left join
( oo o left join oo p on o.prt-1 = p.prt)
on m.key <= o.key and n.key > p.key
group by n.prt, n.key, m.key
-- group by "newKey", n.key, m.key
order by n.prt -- , o.prt
;
x
select 'new' , count(*), char(min(tsname), 8), char(max(tsName), 8),
partition, limitkey
from sysibm.systablepart
where dbname = 'NZ06A1P'
-- and tsName >= 'A260A' and tsName <= 'A264A'
and tsName in ('A241A', 'A241A', 'A243A', 'A244A',
'A259A', 'A265A', 'A266A')
group by partition, limitKey
union
select 'old' , count(*), char(min(tsname), 8), char(max(tsName), 8),
partition, limitkey
from sysibm.systablepart
where dbname = 'NZ06A1P'
and tsName >= 'A260A' and tsName <= 'A264A'
-- and tsName in ('A241A', 'A241A', 'A243A', 'A244A',
-- 'A259A', 'A265A', 'A266A')
group by partition, limitKey
order by 6 asc, 5 asc
;
}¢--- A540769.WK.SQL(PATST1) cre=2006-11-28 mod=2006-11-28-13.04.08 F540769 ----
sql=
select 'before', current timestamp from sysibm.sysdummy1
;
sql=
with c1 as
( select trunc_Timestamp(current_timestamp - 1 month, 'MON') von,
trunc_Timestamp(current_timestamp , 'MON') bis
from sysibm.sysdummy1
) ,
c as
(
select c1.*, days(bis) - days(von) noDays,
(days(bis)-days(von))*24*3600 secs
from c1
) ,
e as
( select t.*,
occurrences * real(class2_cpu) / secs cpu,
case
when lower(plan_name) = 'asnapply' then 'gAsnApply'
when plan_name <> upper(plan_name) then 'aSer'
when left(plan_name, 3) = 'ACT' then 'aBMC'
when left(plan_name, 3) = 'ADM' then 'aBMC'
when left(plan_name, 3) = 'AEX' then 'aBMC'
when left(plan_name, 3) = 'ASU' then 'aBMC'
when left(plan_name, 3) = 'CM7' then 'aBMC'
when left(plan_name, 3) = 'ADB' then 'aDBA'
when left(plan_name, 3) = 'AFR' then '|AFR'
when left(plan_name, 3) = 'ALA' then '|ALA'
when left(plan_name, 3) = 'CBR' then 'aCBri'
when left(plan_name, 3) = 'CNT' then '|CNT'
when left(plan_name, 3) = 'CSQ' then 'aMQ'
when left(plan_name, 3) = 'DB2' then 'aDBA'
when plan_name = 'DISTSERV' then 'gDistServ'
when plan_name = 'DSNUTIL' then 'aUtil'
when left(plan_name, 3) = 'DSN' then 'aDSN'
when left(plan_name, 2) = 'DS' then '|DS'
when left(plan_name, 3) = 'FPE' then 'aDBA'
when left(plan_name, 3) = 'FRN' then '|FRN'
when plan_name = 'FILEAID' then 'aFileAid'
when left(plan_name, 3) = 'HPS' then 'aHPS'
when left(plan_name, 3) = 'ISL' then '|ISL'
when left(plan_name, 3) = 'JSK' then '|JSK'
when left(plan_name, 3) = 'MB1' then 'aSer'
when left(plan_name, 3) = 'MB2' then 'aSer'
when left(plan_name, 3) = 'MQ1' then 'aMQ'
when left(plan_name, 3) = 'MSA' then 'aSer'
when left(plan_name, 3) = 'M24' then '|M24'
when left(plan_name, 3) = 'NTA' then 'aCics'
when left(plan_name, 3) = 'QMF' then 'aQMF'
when left(plan_name, 3) = 'SAS' then 'aSAS'
when left(plan_name, 3) = 'SMU' then '|SMU'
when left(plan_name, 3) = 'SPD' then '|SPD'
when left(plan_name, 3) = 'STR' then '|STR'
when left(plan_name, 2) = 'S6' then '|S6'
when left(plan_name, 3) = 'XIN' then 'aXX'
when connect_type = 'UTILITY' then 'aUtil'
when plan_name = '' then '|Leer'
else 'g' || left(plan_name, 2)
end gp
from DB2PMPDB.TACCT_EXTRACT t, c
where interval_time >= von and interval_time < bis
)
select gp , left(subsystem_id, 3),
sum(cpu), count(*), sum(occurrences)
from e
group by gp , left(subsystem_id, 3)
order by 3 desc
with ur
;
sql=
select 'before', current timestamp from sysibm.sysdummy1
;
x
select gp, left(subsystem_id, 3), plan_name, connect_type,
sum(cpu), count(*), sum(occurrences)
from e
group by gp, left(subsystem_id, 3), plan_name, connect_type
order by 1, 2, 3, 4
with ur
;
}¢--- A540769.WK.SQL(PC010) cre=2010-02-11 mod=2010-02-11-10.26.52 A540769 -----
select *
from OA1T02.VPC016A1A
where TIS_UWI = x'00025D0ABF54853D0CC26B90D4FA2084F2F50001'
-- where TIS_UWI = x'000CE34CBF48EBE34A02C0B30FDE2084F2F10001'
; and INSTR_LEVEL = '2'
; -- TL1_ASSET_CAT
TL2_REGION
SL1_AIS_ASSET_CAT
SL2_CUR
= x'00025D0A BF54853D 0CC26B90 D4FA2084 F2F50001'
}¢--- A540769.WK.SQL(PDBCORR) cre=2009-06-25 mod=2009-06-30-15.05.15 A540769 ---
SELECT timestamp,
subsystem_id,
connect_type,
connect_id,
corrName,
plan_name,
occurrences,
COMMIT,
ROLLBACK ,
PROGRAMS ,
SELECT ,
INSERT ,
UPDATE ,
DELETE ,
OPEN ,
FETCH
FROM RZ2DD.TACCT_GENERAL
WHERE TIMESTAMP >= current timestamp - 2 month
-- AND TIMESTAMP <= '2099-07-02-00.00.00.000000'
AND (upper(plan_Name) like 'DB2B%'
or upper(corrName) like 'DB2B%'
)
ORDER BY TIMESTAMP DESC
;
}¢--- A540769.WK.SQL(PDBDEAD) cre=2010-04-27 mod=2010-04-27-12.06.24 A540769 ---
-- count locks by resource from pdb
-- ==> dp2g.tadm60a1
with n as
(
select case when posStr(substr(name, 10), '.') < 1 then name
else left(name, 9+posStr(substr(name, 10), '.')) end nm
, s.*
from oa1p.tadm60a1 s
)
select count(*), type, nm, min(reason_code), max(reason_code)
from n
where ssid like 'DOF%' -- and timestamp > '2010-04-20-00.00.00'
and name like '%WI02%'
group by nm, type
order by 1 desc
fetch first 100 rows only
with ur
; x;
select *
from oa1a.tadm60a1
where timestamp > current timestamp - 14 day
and name like 'VV21A1T .VDPS026%'
order by timestamp desc
;x;
select *
from oa1p.tadm60a1
where ssid like 'DOF%' -- and timestamp > '2010-04-20-00.00.00'
and name like '%WI02%'
order by 1 desc
fetch first 100 rows only
with ur
; x;
select trunc_timestamp(timestamp, 'DD') , count(*) dbof,
sum(case when name like '%WI02%' then 1 else 0 end) wi02,
sum(case when name like '%WI02%'
and name like '%A112%' then 1 else 0 end) wi02a112
from oa1p.tadm60a1
where ssid like 'DOF%' and timestamp > '2010-01-01-00.00.00'
group by trunc_timestamp(timestamp, 'DD')
order by 1 desc
fetch first 100 rows only
with ur
;
x
select EN1PART, count(*), min(EB1POSTENNUMMER), max(EB1POSTENNUMMER)
from bua.XBDRW001PS001001
group by EN1PART
with ur
;
x
set current sqlid = 'S100447';
alter table bua.txbe011
volatile
;
commit;
x
select jobName, timestamp(max(runtime)) - timestamp(min(runtime))
-- runtime
from oa1p.tadm11a1 s
where runtime >= '2009-11-15-00.00.00'
and runtime < '2009-11-17-00.00.00'
and utility_type = 'W'
and jobName = 'QR38702P'
group by jobName
order by 2 desc
;
x
select jobName, runtime, s.* from oa1p.tadm11a1 s
where jobName like 'QR4980%'
order by runtime desc
;
x
select changeid, name, status from s100447.adbChg
where changeid = 0002342
;
x
select count(*), sum(bigint(length(ea1inhalt)))
from BUA.XBCQ4009IT002001 ;
x
select 'x' || char(bigInt(123)) || 'y'
from sysibm.sysdummy1
;
x
------------------------------------------------------------------------
-- --
-- Database 2 Administration Tool (DB2 Admin) , program 5697-L90 --
-- --
-- ADB2GEN - Extract object definitions from the DB2 Catalog tables --
-- --
-- Input prepared on : DBOF (915) Extract time : 2009-09-11 11:18 --
-- --
-- Catalog values overridden : none
-- --
-- Generate : SG=N DB=Y TS=Y TB=Y VW=Y IX=Y SY=Y AL=Y LB=Y CM=Y FK=Y --
-- TG=Y UT=N UF=N SP=N SQ=N RO=N --
-- Grants : SG=N DB=Y TS=N TB=N VW=N SC=N UT=N UF=N SP=N SQ=N --
-- --
------------------------------------------------------------------------
------------------------------------------------------------------------
-- --
-- ADB2GEN: Generate DDL for Tablespace=A835A In Database KS09A1P --
-- --
------------------------------------------------------------------------
--
------------------------------------------------------------------------
-- Database=KS09A1P Stogroup=GSMS
-- Tablespace=KS09A1P.A835A
------------------------------------------------------------------------
--
SET CURRENT SQLID='S100447 ';
--
CREATE TABLESPACE A835A
IN KS09A1P
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 4 PCTFREE 50
GBPCACHE CHANGED
TRACKMOD YES
LOGGED
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID EBCDIC
DEFINE YES
MAXROWS 255;
--
COMMIT;
--
------------------------------------------------------------------------
-- Table=OA1P .TKS835A1 In KS09A1P.A835A
------------------------------------------------------------------------
--
SET CURRENT SQLID='OA1P ';
--
CREATE TABLE OA1P.TKS835A1
(KS835010 CHAR(20) FOR SBCS DATA NOT NULL,
KS835020 CHAR(20) FOR SBCS DATA NOT NULL,
KS835030 CHAR(20) FOR SBCS DATA NOT NULL,
KS835040 INTEGER NOT NULL,
KS835050 CHAR(20) FOR SBCS DATA NOT NULL,
KS835060 CHAR(4) FOR SBCS DATA NOT NULL,
KS835070 CHAR(20) FOR SBCS DATA NOT NULL,
KS835080 CHAR(20) FOR SBCS DATA NOT NULL,
KS835090 CHAR(140) FOR SBCS DATA NOT NULL,
KS835100 CHAR(2) FOR SBCS DATA NOT NULL,
KS835110 DATE NOT NULL,
KS835120 DATE NOT NULL,
KS835130 DATE NOT NULL,
KS835140 DATE NOT NULL,
KS835150 TIMESTAMP NOT NULL,
KS835160 CHAR(10) FOR SBCS DATA NOT NULL,
KS835170 TIMESTAMP NOT NULL,
PRIMARY KEY (KS835010,
KS835030,
KS835040,
KS835020,
KS835050,
KS835060))
IN KS09A1P.A835A
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE
APPEND NO ;
--
LABEL ON TABLE OA1P.TKS835A1 IS 'SERVICE';
--
LABEL ON OA1P.TKS835A1
(KS835170 IS 'CONTROL_TIME',
KS835160 IS 'LAST_UPDATE_ID',
KS835150 IS 'LAST_UPDATE_TIME',
KS835140 IS 'VALID_TO_DATE',
KS835130 IS 'VALID_FROM_DATE',
KS835120 IS 'LOCK_TO_DATE',
KS835110 IS 'LOCK_FROM_DATE',
KS835100 IS 'STATE',
KS835090 IS 'COMMENT',
KS835080 IS 'PRODUCT_ID',
KS835070 IS 'ARRANG_PARTNER_KEY',
KS835060 IS 'ARRANGEMENT_TYPE',
KS835050 IS 'ARRANGEMENT_ID',
KS835040 IS 'PARTNER_TYPE',
KS835030 IS 'PARTNER_KEY',
KS835020 IS 'SERVICE_KEY',
KS835010 IS 'CONTRACT_KEY');
--
COMMIT;
--
------------------------------------------------------------------------
-- Database=KS09A1P
-- Index=OA1P .IKS835A0 On OA1P .TKS835A1
------------------------------------------------------------------------
--
CREATE UNIQUE INDEX OA1P.IKS835A0
ON OA1P.TKS835A1
(KS835010 ASC,
KS835030 ASC,
KS835040 ASC,
KS835020 ASC,
KS835050 ASC,
KS835060 ASC)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 8 PCTFREE 50
GBPCACHE CHANGED
NOT CLUSTER
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
COPY NO
DEFER NO
DEFINE YES;
--
COMMIT;
--
------------------------------------------------------------------------
-- Database=KS09A1P
-- Index=OA1P .IKS835A1 On OA1P .TKS835A1
------------------------------------------------------------------------
--
CREATE INDEX OA1P.IKS835A1
ON OA1P.TKS835A1
(KS835080 ASC)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 8 PCTFREE 30
GBPCACHE CHANGED
NOT CLUSTER
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
COPY NO
DEFER NO
DEFINE YES;
--
COMMIT;
--
------------------------------------------------------------------------
-- Database=KS09A1P
-- Index=OA1P .IKS835A10 On OA1P .TKS835A1
------------------------------------------------------------------------
--
CREATE INDEX OA1P.IKS835A10
ON OA1P.TKS835A1
(KS835030 ASC,
KS835040 ASC,
KS835010 ASC,
KS835080 ASC)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
NOT CLUSTER
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
COPY NO
DEFER NO
DEFINE YES
PIECESIZE 2 G;
--
COMMIT;
--
------------------------------------------------------------------------
-- Database=KS09A1P
-- Index=OA1P .IKS835A3 On OA1P .TKS835A1
------------------------------------------------------------------------
--
CREATE INDEX OA1P.IKS835A3
ON OA1P.TKS835A1
(KS835050 ASC,
KS835060 ASC)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 8 PCTFREE 40
GBPCACHE CHANGED
NOT CLUSTER
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
COPY NO
DEFER NO
DEFINE YES;
--
COMMIT;
--
------------------------------------------------------------------------
-- Database=KS09A1P
-- Index=OA1P .IKS835A4 On OA1P .TKS835A1
------------------------------------------------------------------------
--
CREATE INDEX OA1P.IKS835A4
ON OA1P.TKS835A1
(KS835020 ASC)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 8 PCTFREE 30
GBPCACHE CHANGED
NOT CLUSTER
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
COPY NO
DEFER NO
DEFINE YES;
--
COMMIT;
--
------------------------------------------------------------------------
-- Database=KS09A1P
-- Index=OA1P .IKS835A5 On OA1P .TKS835A1
------------------------------------------------------------------------
--
CREATE INDEX OA1P.IKS835A5
ON OA1P.TKS835A1
(KS835030 ASC,
KS835040 ASC,
KS835060 ASC,
KS835050 ASC)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 8 PCTFREE 40
GBPCACHE CHANGED
CLUSTER
COMPRESS NO
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFER NO
DEFINE YES;
--
COMMIT;
--
------------------------------------------------------------------------
-- Database=KS09A1P
-- Index=OA1P .IKS835A6 On OA1P .TKS835A1
------------------------------------------------------------------------
--
CREATE INDEX OA1P.IKS835A6
ON OA1P.TKS835A1
(KS835050 DESC,
KS835060 DESC)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 8 PCTFREE 30
GBPCACHE CHANGED
NOT CLUSTER
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
COPY NO
DEFER NO
DEFINE YES;
--
COMMIT;
--
------------------------------------------------------------------------
-- Database=KS09A1P
-- Index=OA1P .IKS835A7 On OA1P .TKS835A1
------------------------------------------------------------------------
--
CREATE INDEX OA1P.IKS835A7
ON OA1P.TKS835A1
(KS835130 DESC)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 8 PCTFREE 30
GBPCACHE CHANGED
NOT CLUSTER
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
COPY NO
DEFER NO
DEFINE YES;
--
COMMIT;
--
------------------------------------------------------------------------
-- Database=KS09A1P
-- Index=OA1P .IKS835A8 On OA1P .TKS835A1
------------------------------------------------------------------------
--
CREATE INDEX OA1P.IKS835A8
ON OA1P.TKS835A1
(KS835010 ASC,
KS835080 ASC)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 8 PCTFREE 30
GBPCACHE CHANGED
NOT CLUSTER
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
COPY NO
DEFER NO
DEFINE YES;
--
COMMIT;
--
------------------------------------------------------------------------
-- Database=KS09A1P
-- Index=OA1P .IKS835A9TEMP On OA1P .TKS835A1
------------------------------------------------------------------------
--
CREATE INDEX OA1P.IKS835A9TEMP
ON OA1P.TKS835A1
(KS835070 ASC)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 8 PCTFREE 30
GBPCACHE CHANGED
NOT CLUSTER
COMPRESS NO
BUFFERPOOL BP1
CLOSE NO
COPY NO
DEFER NO
DEFINE YES
PIECESIZE 2 G;
--
COMMIT;
--
------------------------------------------------------------------------
-- View=OA1P .VKS835A1V
------------------------------------------------------------------------
--
--
CREATE VIEW OA1P.VKS835A1V(CONTRACT_KEY, SERVICE_KEY, PARTNER_KEY,
PARTNER_TYPE, ARRANGEMENT_ID, ARRANGEMENT_TYPE,
ARRANG_PARTNER_KEY, PRODUCT_ID, COMMENT, STATE, LOCK_FROM_DATE,
LOCK_TO_DATE, VALID_FROM_DATE, VALID_TO_DATE, LAST_UPDATE_TIME,
LAST_UPDATE_ID, CONTROL_TIME) AS
SELECT ALL KS835010, KS835020, KS835030, KS835040, KS835050,
KS835060, KS835070, KS835080, KS835090, KS835100, KS835110,
KS835120, KS835130, KS835140, KS835150, KS835160, KS835170
FROM OA1P.TKS835A1 ;
--
COMMIT;
--
------------------------------------------------------------------------
-- ADB2GEN - End of generated DDL --
------------------------------------------------------------------------
--
}¢--- A540769.WK.SQL(PDBEOT) cre=2010-08-05 mod=2010-08-06-08.13.55 A540769 ----
-- abnormal eot pro Monat
SELECT substr(char(trunc_timestamp(timestamp, 'MM')), 1, 10),
-- smallint(max(dayofMonth(timestamp))-min(dayOfMonth(timestamp)) +1)
-- "ma-mi+1",
smallint(count(distinct date(timestamp))) "#days",
count(*) "all",
sum(case when corrid_id like '%WB0670 %' then 1 else 0 end) wb0670,
sum(case when corrid_id like '%WB0930 %' then 1 else 0 end) wb0930,
sum(case when corrid_id like '%WC0211 %' then 1 else 0 end) wc0211,
sum(case when corrid_id like '%WC0214 %' then 1 else 0 end) wc0214
FROM OA1P.TADM65A1
WHERE -- TIMESTAMP > '2010-07-15-00.00.00' and
event_type = 'A' and ssid like 'DOF%'
group by trunc_timestamp(timestamp, 'MM')
order by 1 desc
with ur
;;
-- abnormal eot pro Tag
SELECT substr(char(trunc_timestamp(timestamp, 'DD')), 1, 10),
smallint(max(dayofMonth(timestamp))-min(dayOfMonth(timestamp)) +1)
"ma-mi+1",
smallint(count(distinct date(timestamp))) "#days",
sum(case when corrid_id like '%WB0670 %' then 1 else 0 end) wb0670,
sum(case when corrid_id like '%WB0930 %' then 1 else 0 end) wb0930,
sum(case when corrid_id like '%WC0211 %' then 1 else 0 end) wc0211,
sum(case when corrid_id like '%WC0214 %' then 1 else 0 end) wc0214
FROM OA1P.TADM65A1
WHERE TIMESTAMP > '2010-06-01-00.00.00' and
event_type = 'A' and ssid like 'DOF%'
group by trunc_timestamp(timestamp, 'DD')
order by 1 desc
with ur
;;
AND SSID LIKE 'DOF%'
AND name like '%WKDBDOF%'
ORDER BY TIMESTAMP DESC
;;
SELECT *
FROM OA1P.TADM60A1
WHERE DATE(TIMESTAMP) between '01.07.2010'
AND '05.08.2010'
AND SSID LIKE 'DOF%'
AND VICTIM_PLAN LIKE 'WB0670%%'
ORDER BY TIMESTAMP DESC
}¢--- A540769.WK.SQL(PDBG#XC) cre=2013-01-14 mod=2013-01-14-08.35.19 A540769 ---
select corrName, timestamp, class1_elapsed,
timestamp + class1_elapsed seconds "dT+ela",
timestamp - class1_elapsed seconds "dT-ela",
g.*
from rz2xx.tACCT_GENERAL g
where timestamp between '2013-01-03-23.00.00.000000'
and '2013-01-04-01.00.00.000000'
and corrName = 'NZT1900P'
;;;;
select *
from rz2xx.tacct_general
where timestamp between '2013-01-03-00.00.00'
and '2013-01-05-00.00.00'
and plan_name = 'MB5020'
order by class1_elapsed desc
fetch first 100 rows only
}¢--- A540769.WK.SQL(PDBG#X2X) cre=2013-01-14 mod=2013-01-14-12.33.46 A540769 ---
select 'rz1' ,
plan_name planName, timestamp,
timestamp - class1_elapsed seconds ,
class1_elapsed ,
class1_cpu_total ,
class2_elapsed ,
class2_cpu_total ,
subsystem_id ,
corrName ,
g.*
from RZ2mm.TACCT_GENERAL g
where 1=1
and subsystem_id like 'DOF%'
and timestamp > '2012-10-01-00.00.00'
and plan_name = 'PW5230'
order by 3
;;;;
set current path oa1p;
select plan_name planName
, fosFmte7(sum(OCCURRENCES)) occ
, fosFmte7(sum(commit)) commit
, fosFmte7(sum(class1_elapsed)) c1Ela
, fosFmte7(sum(class1_cpu_total)) c1cpu
, fosFmte7(sum(class1_su_cpu )) c1su
, fosFmte7(sum(class2_elapsed)) c2Ela
, fosFmte7(sum(class2_cpu_total)) c2cpu
, fosFmte7(sum(class2_su_cpu )) c2su
, min(subsystem_id), max(subsystem_id)
, min(group_name), max(group_name)
-- , CONNECT_TYPE
-- , CONNECT_ID
-- , CORRNAME
, min(TIMESTAMP)
, max(TIMESTAMP)
from RZ2mm.TACCT_GENERAL g
where 1=1
and subsystem_id like 'DOF%'
and timestamp between '2013-01-04-00.00.00'
and '2013-01-06-23.59.59'
and timestamp - class1_elapsed seconds
between '2013-01-04-00.00.00'
and '2013-01-04-23.59.59'
group by -- date(timestamp)
plan_name
-- , subsystem_id
-- , group_name
-- , CONNECT_TYPE
-- , CONNECT_ID
-- , CORRNAME
order by sum(class2_cpu_total) desc
fetch first 500 rows only
;;;
select *
from RZ2xx.TACCT_GENERAL g
where plan_name like 'java%'
and subsystem_id like 'DOF%'
and timestamp between '2013-01-04-09.05.00'
and '2013-01-04-09.07.00'
order by class2_cpu_total desc
fetch first 1000 rows only
;x;
set current path oa1p;
select plan_name planName
, fosFmte7(sum(OCCURRENCES)) occ
, fosFmte7(sum(commit)) commit
, fosFmte7(sum(class1_elapsed)) c1Ela
, fosFmte7(sum(class1_cpu_total)) c1cpu
, fosFmte7(sum(class1_su_cpu )) c1su
, fosFmte7(sum(class2_elapsed)) c2Ela
, fosFmte7(sum(class2_cpu_total)) c2cpu
, fosFmte7(sum(class2_su_cpu )) c2su
, min(subsystem_id), max(subsystem_id)
, min(group_name), max(group_name)
-- , CONNECT_TYPE
-- , CONNECT_ID
-- , CORRNAME
, min(TIMESTAMP)
, max(TIMESTAMP)
from RZ2dd.TACCT_GENERAL g
where 1=1
--and plan_name in ('ER0044')
and subsystem_id like 'DOF%'
and timestamp between '2013-01-04-00.00.00'
and '2013-01-04-23.59.59'
group by date(timestamp)
, plan_name
-- , subsystem_id
-- , group_name
-- , CONNECT_TYPE
-- , CONNECT_ID
-- , CORRNAME
order by sum(class2_cpu_total) desc
fetch first 100 rows only
;;;
?????????????????????????????
set current path oa1p;
select planname
, fosFmte7(sum(OCCURRENCES)) occ
, fosFmte7(sum(p2Commits)) commit
, fosFmte7(sum(ELAPSETOD )) c1Ela
, fosFmte7(sum(ELAPSETCB + ELAPSESRB )) c1cpu
, fosFmte7(sum((ELAPSETCB + ELAPSESRB)
*occurrences*16000000/CPUSUCONV))c1su
, fosFmte7(sum(EDB2TOD )) c2Ela
, fosFmte7(sum(EDB2TCB + EDB2SRB )) c2cpu
, fosFmte7(sum((EDB2TCB + EDB2SRB)
*occurrences * 16000000/CPUSUCONV)) c2su
-- , min(cpusuconv), avg(cpusuconv), max(cpusuconv)
, min(subsystem_id), max(subsystem_id)
, min(groupname), max(groupname)
-- , CONNTYPE
-- , CONNECTION
-- , CORRNAME
, min(datetime)
, max(datetime)
from Pbdd.TACCT_GENERAL g
where 1=1
-- and planname in ('ER0044')
and subsystem like 'DOF%'
and datetime between '2013-01-04-00.00.00'
and '2013-01-04-23.59.59'
group by date(datetime)
, planname
-- , subsystem
, groupname
--, CONNTYPE
--, CONNECTion
--, CORRNAME
, PLANNAME
-- order by subsystem
order by sum(EDB2TCB + EDB2SRB ) desc
fetch first 100 rows only
;;;
?????????????????????????????
with s as(
select date(timestamp) dt, hour(timestamp) hh, int(sum(commit))commit
from RZ2hh.TACCT_GENERAL g
where plan_name in ('ER0044')
and subsystem_id like 'DOF%'
and timestamp between '2012-12-01-00.00.00'
and '2012-12-31-00.00.00'
group by timestamp
)
, d as (
select dt from s group by dt
)
select d.dt,
right(' ' || value(strip(char(s00.commit)), ''), 4)
|| right(' ' || value(strip(char(s01.commit)), ''), 4)
|| right(' ' || value(strip(char(s02.commit)), ''), 4)
|| right(' ' || value(strip(char(s03.commit)), ''), 4)
|| right(' ' || value(strip(char(s04.commit)), ''), 4)
|| right(' ' || value(strip(char(s05.commit)), ''), 4)
|| right(' ' || value(strip(char(s06.commit)), ''), 4)
|| right(' ' || value(strip(char(s07.commit)), ''), 4)
|| right(' ' || value(strip(char(s08.commit)), ''), 4)
|| right(' ' || value(strip(char(s09.commit)), ''), 4)
|| right(' ' || value(strip(char(s10.commit)), ''), 4)
|| right(' ' || value(strip(char(s11.commit)), ''), 4)
|| right(' ' || value(strip(char(s12.commit)), ''), 4)
|| right(' ' || value(strip(char(s13.commit)), ''), 4)
|| right(' ' || value(strip(char(s14.commit)), ''), 4)
|| right(' ' || value(strip(char(s15.commit)), ''), 4)
|| right(' ' || value(strip(char(s16.commit)), ''), 4)
|| right(' ' || value(strip(char(s17.commit)), ''), 4)
|| right(' ' || value(strip(char(s18.commit)), ''), 4)
|| right(' ' || value(strip(char(s19.commit)), ''), 4)
|| right(' ' || value(strip(char(s20.commit)), ''), 4)
|| right(' ' || value(strip(char(s21.commit)), ''), 4)
|| right(' ' || value(strip(char(s22.commit)), ''), 4)
|| right(' ' || value(strip(char(s23.commit)), ''), 4)
from d
left join s s00 on s00.dt = d.dt and s00.hh = 00
left join s s01 on s01.dt = d.dt and s01.hh = 01
left join s s02 on s02.dt = d.dt and s02.hh = 02
left join s s03 on s03.dt = d.dt and s03.hh = 03
left join s s04 on s04.dt = d.dt and s04.hh = 04
left join s s05 on s05.dt = d.dt and s05.hh = 05
left join s s06 on s06.dt = d.dt and s06.hh = 06
left join s s07 on s07.dt = d.dt and s07.hh = 07
left join s s08 on s08.dt = d.dt and s08.hh = 08
left join s s09 on s09.dt = d.dt and s09.hh = 09
left join s s10 on s10.dt = d.dt and s10.hh = 10
left join s s11 on s11.dt = d.dt and s11.hh = 11
left join s s12 on s12.dt = d.dt and s12.hh = 12
left join s s13 on s13.dt = d.dt and s13.hh = 13
left join s s14 on s14.dt = d.dt and s14.hh = 14
left join s s15 on s15.dt = d.dt and s15.hh = 15
left join s s16 on s16.dt = d.dt and s16.hh = 16
left join s s17 on s17.dt = d.dt and s17.hh = 17
left join s s18 on s18.dt = d.dt and s18.hh = 18
left join s s19 on s19.dt = d.dt and s19.hh = 19
left join s s20 on s20.dt = d.dt and s20.hh = 20
left join s s21 on s21.dt = d.dt and s21.hh = 21
left join s s22 on s22.dt = d.dt and s22.hh = 22
left join s s23 on s23.dt = d.dt and s23.hh = 23
order by d.dt desc
;;;;
select plan_name, timestamp,
fosFmte7(sum(class1_cpu_total)) "c1cpu",
fosFmte7(sum(class2_cpu_total)) "c2cpu",
fosFmte7(sum(sqls) ) "sqls",
int(sum(commit)) "commit",
int(sum(rollback)) "rollback",
fosFmte7(sum(real(select))) "select",
fosFmte7(sum(real(open))) "open",
fosFmte7(sum(real(fetch))) "fetch",
fosFmte7(sum(real(insert))) "insert",
fosFmte7(sum(real(update))) "update",
fosFmte7(sum(real(delete))) "delete",
fosFmte7(sum(real(PROGRAMS))) "pkgs"
from s
-- group by plan_name, floor(log10(class1_elapsed/max(sqls, 1))*3)
-- order by plan_name, min(class1_elapsed/max(sqls, 1))
group by plan_name, timestamp
order by plan_name, timestamp desc
;;;
??????????????
with s as(
select real(select+open+fetch+insert+update+delete) sqls,
real(max(1, commit+rollback)) cr,
g.*
from RZ2hh.TACCT_GENERAL g
where plan_name in ('ER0044')
and subsystem_id like 'DOF%'
and timestamp between '2012-12-01-00.00.00'
and '2012-12-31-00.00.00'
)
select plan_name, timestamp,
fosFmte7(sum(class1_cpu_total)) "c1cpu",
fosFmte7(sum(class2_cpu_total)) "c2cpu",
fosFmte7(sum(sqls) ) "sqls",
int(sum(commit)) "commit",
int(sum(rollback)) "rollback",
fosFmte7(sum(real(select))) "select",
fosFmte7(sum(real(open))) "open",
fosFmte7(sum(real(fetch))) "fetch",
fosFmte7(sum(real(insert))) "insert",
fosFmte7(sum(real(update))) "update",
fosFmte7(sum(real(delete))) "delete",
fosFmte7(sum(real(PROGRAMS))) "pkgs"
from s
-- group by plan_name, floor(log10(class1_elapsed/max(sqls, 1))*3)
-- order by plan_name, min(class1_elapsed/max(sqls, 1))
group by plan_name, timestamp
order by plan_name, timestamp desc
;;;
??????????????
with s as(
select real(select+open+fetch+insert+update+delete) sqls,
real(max(1, commit+rollback)) cr,
g.*
from RZ2HH.TACCT_GENERAL g
where plan_name in ('PW5200', 'PW5220')
and subsystem_id like 'DOF%'
and timestamp between '2012-01-01-00.00.00'
and '2012-12-02-00.00.00'
)
select trunc_timestamp(timestamp,'HH'),
plan_name,
fosFmte7((class1_elapsed)/(cr) ) "c1ela/coR",
fosFmte7((class2_elapsed)/(cr) ) "c2ela/coR",
fosFmte7((class1_cpu_total)/(cr)) "c1cpu/coR",
fosFmte7((class2_cpu_total)/(cr)) "c2cpu/coR",
fosFmte7((CLASS3_ASYNCH_IXL) /(cr) ) "c3IXL/coR",
int((occurrences)) "occ",
int((commit)) "commit",
int((rollback)) "rollBack",
fosFmte7((sqls)/(cr) ) "sqls/coR",
fosFmte7((class3_global_cont)/(cr)) "c2gloCon",
fosFmte7((class3_DB_IO)/(cr)) "c3dbIo",
fosFmte7((class3_LOG_WRT_IO)/(cr)) "c2logIo",
fosFmte7((real(OPEN_CLOSE_SUSP))/(cr)) "opClo",
fosFmte7((CLASS3_OPEN_CLOSE)/(cr)) "c3opClo",
fosFmte7((real(SERV_TASK_SUSP))/(cr)) "serTa",
fosFmte7((CLASS3_SERV_TASK)/(cr)) "c3serTa",
fosFmte7((real(commit))/(cr)) "commit",
fosFmte7((real(rollback))/(cr)) "rollback",
fosFmte7((real(select))/(cr)) "select",
fosFmte7((real(open) )/(cr)) "open",
fosFmte7((real(fetch) )/(cr)) "fetch",
fosFmte7((real(insert))/(cr)) "insert",
fosFmte7((real(update))/(cr)) "update",
fosFmte7((real(delete))/(cr)) "delete",
fosFmte7((real(INCREMENTAL_BIND))/(cr))"incrBi",
fosFmte7((real(PROGRAMS)) /(cr)) "pkgs"
from s
-- group by trunc_timestamp(timestamp,'HH'), plan_name
order by plan_name, (class1_elapsed)/(cr) desc
fetch first 1000 rows only
;;;
;;;
select count(*), plan_name
from rz1xx.tacct_program
where pck_id = 'YWPR2PX' and group_Name = 'DE0G'
group by plan_name
with ur
set current path = oa1p;
with i as
(
select plan_name
, sum(class2_elapsed) ela
, sum(class2_cpu_total) cpu
, sum(commit) com
, sum(select) sel
, sum(open) op
, sum(fetch) fet
, min(timestamp) von
, max(timestamp) bis
from rz2mm.tacct_general
where timestamp > '2011-01-01 00:00:00' and commit > 0
and plan_name in ('PW0602', 'PW0408')
group by plan_name, floor( 2*log10(class2_elapsed / commit))
)
select plan_name
, fosFmte7(ela / com) "ela/com"
, fosFmte7(com) commit
, fosFmtE7(cpu / com) "cpu/com"
, fosFmtE7(sel / com) "sel/Com"
, fosFmtE7(op / com) "ope/Com"
, fosFmtE7(fet / com) "fet/Com"
, von , bis
from i
order by plan_name, ela/com desc
with ur
}¢--- A540769.WK.SQL(PDBGEN) cre=2010-02-01 mod=2012-09-20-14.58.34 A540769 ----
set current path = 'OA1P';
select plan_name, fosFmtE7(sum(occurrences)) occs,
fosFmtE7(sum(class1_cpu_total)) cpuTotal,
fosFmtE7(sum(class2_cpu_total)) cpuDb2,
fosFmtE7(max(class1_elapsed/occurrences)) maxEla
from RZ1dd.TACCT_GENERAL g
where timestamp > current timestamp - 5 days
group by plan_name
order by sum(occurrences) desc
fetch first 1000 rows only
with ur
;x;
set current path = 'OA1P';
select timestamp,
fosFmtE7(sum(class1_cpu_total)) cpuTotal,
fosFmtE7(sum(class2_cpu_total)) cpuDb2,
fosFmtE7(max(class1_elapsed/occurrences)) maxEla
from RZ1hh.TACCT_GENERAL g
where corrname like 'QT0%BRK%'
and timestamp between '2012-08-26-00.00.00'
and '2012-08-27-00.00.00'
group by timestamp
order by timestamp desc
with ur
;x;
select timestamp - class1_elapsed seconds, g.*
from RZ1mm.TACCT_GENERAL g
where corrname like 'QT0%BRK%'
and timestamp between '2012-08-26-00.00.00'
and '2012-08-27-00.00.00'
order by timestamp desc
with ur
;x;
select class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
-- and connect_id like 'MFT5614P%'
and connect_id like 'TNT780%'
and plan_name in ('TN7080')
-- and insert >= 1
ORDER BY timestamp desc
--ORDER BY CLASS1_ELAPSED desc
with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 9 DAY
and plan_name = 'RB5000'
and insert >= 1
ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
from RZ2XX.TACCT_GENERAL g
with ur
;
}¢--- A540769.WK.SQL(PDBGENAV) cre=2011-07-14 mod=2012-09-07-18.20.04 A540769 ---
set current path = oa1p;
with s as(
select real(select+open+fetch+insert+update+delete) sqls, g.*
from RZ2XX.TACCT_GENERAL g
where plan_name = 'AV0142' and subsystem_id like 'DOF%'
and timestamp between '2012-09-05-00.00.00'
and '2012-12-02-00.00.00'
)
select
fosFmte7(min(class1_elapsed) ) "c1ela min",
fosFmte7(max(class1_elapsed) ) "c1ela max",
fosFmte7(sum(class1_elapsed)/sum(Occurrences) ) "c1ela/occ",
fosFmte7(sum(class2_elapsed)/sum(Occurrences) ) "c2ela/occ",
fosFmte7(sum(class1_cpu_total)/sum(Occurrences)) "c1cpu/occ",
fosFmte7(sum(class2_cpu_total)/sum(Occurrences)) "c2cpu/occ",
fosFmte7(sum(CLASS3_ASYNCH_IXL) /sum(Occurrences) ) "c3IXL/occ",
int(sum(occurrences)) "occ",
fosFmte7(sum(sqls)/sum(Occurrences) ) "sqls/occ",
fosFmte7(sum(class3_global_cont)/sum(Occurrences)) "c2gloCon",
fosFmte7(sum(class3_DB_IO)/sum(Occurrences)) "c3dbIo",
fosFmte7(sum(class3_LOG_WRT_IO)/sum(Occurrences)) "c2logIo",
fosFmte7(sum(real(OPEN_CLOSE_SUSP))/sum(Occurrences)) "opClo",
fosFmte7(sum(CLASS3_OPEN_CLOSE)/sum(Occurrences)) "c3opClo",
fosFmte7(sum(real(SERV_TASK_SUSP))/sum(Occurrences)) "serTa",
fosFmte7(sum(CLASS3_SERV_TASK)/sum(Occurrences)) "c3serTa",
fosFmte7(sum(real(commit))/sum(Occurrences)) "commit",
fosFmte7(sum(real(rollback))/sum(Occurrences)) "rollback",
fosFmte7(sum(real(select))/sum(Occurrences)) "select",
fosFmte7(sum(real(open) )/sum(Occurrences)) "open",
fosFmte7(sum(real(fetch) )/sum(Occurrences)) "fetch",
fosFmte7(sum(real(insert))/sum(Occurrences)) "insert",
fosFmte7(sum(real(update))/sum(Occurrences)) "update",
fosFmte7(sum(real(delete))/sum(Occurrences)) "delete",
fosFmte7(sum(real(INCREMENTAL_BIND))/sum(Occurrences))"incrBi",
fosFmte7(sum(real(PROGRAMS)) /sum(Occurrences)) "pkgs"
from s
group by floor(log10(class1_elapsed)*3)
order by min(class1_elapsed)
;;;
select real(select+open+fetch+insert+update+delete) sqls, g.*
from RZ2XX.TACCT_GENERAL g
where plan_name = 'AV0142' and subsystem_id like 'DOF%'
and timestamp between '2012-07-01-00.00.00'
and '2012-12-02-00.00.00'
order by timestamp desc
;x;
with s as(
select real(select+open+fetch+insert+update+delete) sqls, g.*
from RZ2XX.TACCT_GENERAL g
where plan_name = 'AV0142' and subsystem_id like 'DOF%'
and timestamp between '2012-09-01-00.00.00'
and '2012-12-02-00.00.00'
)
select connect_id, date(timestamp) ,
fosFmtE7(class1_cpu_total/sqls) "c1cpu/sql",
fosFmtE7(class2_cpu_total/sqls) "c2cpu/sql",
fosFmtE7(class1_elapsed/sqls) "c1ela/sql",
fosFmtE7(class2_elapsed/sqls) "c2ela/sql",
int(occurrences) "occ",
fosfmte7(class1_cpu_total) "c1cpu",
fosfmte7(class2_cpu_total) "c2cpu",
fosFmtE7(sqls) sqls,
fosFmtE7(class2_elapsed) "c2ela",
fosFmtE7(class2_cpu_total) "c2cpu",
fosFmtE7(class3_global_cont) "c2gloCon",
fosFmtE7(class3_DB_IO) "c3dbIo",
fosFmtE7(class3_LOG_WRT_IO) "c2logIo",
fosFmtE7(OPEN_CLOSE_SUSP) "opClo",
fosFmtE7(CLASS3_OPEN_CLOSE) "c3opClo",
fosFmtE7(SERV_TASK_SUSP) "serTa",
fosFmtE7(CLASS3_SERV_TASK) "c3serTa",
fosFmtE7(select) "select",
fosFmtE7(select) "select",
fosFmtE7(open ) "open",
fosFmtE7(fetch ) "fetch",
fosFmtE7(insert) "insert",
fosFmtE7(update) "update",
fosFmtE7(delete) "delete",
s.*
from s
order by connect_id, timestamp
;;;
select *
from rz2xx.tacct_general
where plan_name = 'AV8465' and subsystem_id like 'DOF%'
order by timestamp desc
with ur
;;;
select count(*), plan_name
from rz1xx.tacct_program
where pck_id = 'YWPR2PX' and group_Name = 'DE0G'
group by plan_name
with ur
}¢--- A540769.WK.SQL(PDBGENBE) cre=2010-12-02 mod=2011-07-13-11.33.48 A540769 ---
set current path oa1p;
set current schema = RZ2MM;
select *
from tacct_general
-- where corrName = 'BES0404P'
where plan_Name = 'BE5000'
and timestamp = '2011-06-30-09.53.00.000000'
-- and timestamp between '2011-06-30-09.00.00'
-- and '2011-06-30-11.00.00'
order by timestamp
with ur
;;;
select date(timestamp),
fosFmte7(sum(class2_elapsed)) "c2ElaSu",
fosFmte7(max(class2_elapsed)) "c2ElaMa",
fosFmte7(sum(select+fetch+insert+update+delete)) "opsSum",
fosFmte7(max(select+fetch+insert+update+delete)) "opsMax",
fosFmte7(sum(select+fetch+insert+update+delete)
/ sum(commit)) "ops/com",
fosFmte7(sum(LOG_WRT_IO_SUSP)
/ sum(commit)) "lIO/com",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(SYNC_IO_SUSP)) "synIOTi",
fosFmte7(sum(CLASS3_DB_IO)
/ sum(DB_IO_SUSP)) "dbIOTi",
fosFmte7(sum(class3_LOG_WRT_IO)
/ sum(LOG_WRT_IO_SUSP)) "logIOTi",
fosFmte7(sum(class2_cpu_total)
/ sum(select+fetch+insert+update+delete)) "c2Cpu/o",
fosFmte7(sum(CLASS3_LOCK_LATCH)
/ sum(select+fetch+insert+update+delete)) "locLa/o",
fosFmte7(sum(CLASS3_PAGE_LATCH)
/ sum(select+fetch+insert+update+delete)) "pgLat/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(select+fetch+insert+update+delete)) "synIO/o",
fosFmte7(sum(CLASS3_LOG_WRT_io)
/ sum(select+fetch+insert+update+delete)) "logIO/o",
fosFmte7(sum(class1_elapsed)) "c1Ela",
fosFmte7(sum(class2_elapsed)) "c2Ela",
fosFmte7(sum(class2_cpu_total)) "c2Cpu",
fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
fosFmte7(sum(deadlock)) "deadlock",
fosFmte7(sum(timeout)) "timeout",
fosFmte7(sum(occurrences)) occ,
fosFmtE7(sum(select)) sel,
fosFmtE7(sum(open)) open,
fosFmtE7(sum(fetch)) fetch,
fosFmtE7(sum(insert)) ins,
fosFmtE7(sum(update)) upd,
fosFmtE7(sum(delete)) del
from TACCT_GENERAL g
where 1=1 and plan_name = 'BE5000'
and timestamp > current timestamp - 375 days
group by date(timestamp)
order by date(timestamp) desc
-- order by sum(class2_elapsed) desc
fetch first 1000 rows only
with ur
; x
set current path oa1p;
set current schema = RZ2MM;
select timestamp,
fosFmte7((class3_LOG_WRT_IO)
/ (LOG_WRT_IO_SUSP)) "logIOTi",
fosFmte7((class2_elapsed)
/ (0.0+select+fetch+insert+update+delete)) "c2Ela/o",
fosFmte7((class2_cpu_total)
/ (0.0+select+fetch+insert+update+delete)) "c2Cpu/o",
fosFmte7((CLASS3_LOCK_LATCH)
/ (0.0+select+fetch+insert+update+delete)) "locLa/o",
fosFmte7((CLASS3_SYNC_IO)
/ (0.0+select+fetch+insert+update+delete)) "synIO/o",
fosFmte7((CLASS3_SYNC_IO)
/ (SYNC_IO_SUSP)) "synIOTi",
fosFmte7((CLASS3_DB_IO)
/ (DB_IO_SUSP)) "dbIOTi",
fosFmte7((class3_LOG_WRT_IO)
/ (LOG_WRT_IO_SUSP)) "logIOTi",
g.*
from TACCT_GENERAL g
where plan_name = 'BE5000' and insert > 200000
-- and timestamp > current timestamp - 30 days
-- order by class2_elapsed desc
order by class3_LOG_WRT_IO
/ (LOG_WRT_IO_SUSP) desc
fetch first 300 rows only
with ur
; x
set current schema = RZ2DD;
select date(timestamp), class1_elapsed, class2_elapsed,
fosFmte7(occurrences) occ,
fosFmtE7( (select)) sel,
fosFmtE7( (insert)) ins,
update upd,
g.*
from TACCT_GENERAL g
where plan_name = 'BE5000'
and timestamp > current timestamp - 5 days
order by class2_elapsed desc
with ur
;
set current schema = RZ2xx;
select timestamp ,
fosFmte7(sum(class2_elapsed)
/ sum(select+fetch+insert+update+delete)) "c2Ela/o",
fosFmte7(sum(class2_cpu_total)
/ sum(select+fetch+insert+update+delete)) "c2Cpu/o",
fosFmte7(sum(CLASS3_LOCK_LATCH)
/ sum(select+fetch+insert+update+delete)) "locLa/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(select+fetch+insert+update+delete)) "synIO/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(SYNC_IO_SUSP)) "synIOTi",
fosFmte7(sum(class1_elapsed)) "c1Ela",
fosFmte7(sum(class2_elapsed)) "c2Ela",
fosFmte7(sum(class2_cpu_total)) "c2Cpu",
fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
fosFmte7(sum(occurrences)) occ,
fosFmtE7(sum(select)) sel,
fosFmtE7(sum(open)) open,
fosFmtE7(sum(fetch)) fetch,
fosFmtE7(sum(insert)) ins,
fosFmtE7(sum(update)) upd,
fosFmtE7(sum(delete)) del
from TACCT_GENERAL g
where plan_name = 'BE5000'
and timestamp > current timestamp - 5 days
group by timestamp
order by sum(class2_elapsed) desc
fetch first 100 rows only
with ur
;
set current schema = RZ2xx;
select date(timestamp),
fosFmte7(sum(class2_elapsed)) "c2ElaSu",
fosFmte7(max(class2_elapsed)) "c2ElaMa",
fosFmte7(sum(select+fetch+insert+update+delete)) "opsSum",
fosFmte7(max(select+fetch+insert+update+delete)) "opsMax",
fosFmte7(sum(class2_cpu_total)
/ sum(select+fetch+insert+update+delete)) "c2Cpu/o",
fosFmte7(sum(CLASS3_LOCK_LATCH)
/ sum(select+fetch+insert+update+delete)) "locLa/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(select+fetch+insert+update+delete)) "synIO/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(SYNC_IO_SUSP)) "synIOTi",
fosFmte7(sum(class1_elapsed)) "c1Ela",
fosFmte7(sum(class2_elapsed)) "c2Ela",
fosFmte7(sum(class2_cpu_total)) "c2Cpu",
fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
fosFmte7(sum(occurrences)) occ,
fosFmtE7(sum(select)) sel,
fosFmtE7(sum(open)) open,
fosFmtE7(sum(fetch)) fetch,
fosFmtE7(sum(insert)) ins,
fosFmtE7(sum(update)) upd,
fosFmtE7(sum(delete)) del
from TACCT_GENERAL g
where plan_name = 'BE5000'
and timestamp > current timestamp - 5 days
group by date(timestamp)
order by sum(class2_elapsed) desc
fetch first 100 rows only
with ur
;
set current schema = RZ2MM;
select min(timestamp), max(timestamp)
from TACCT_GENERAL g
;;
select timestamp,
fosFmte7(sum(class2_elapsed)
/ sum(select+fetch+insert+update+delete)) "c2Ela/o",
fosFmte7(sum(class2_cpu_total)
/ sum(select+fetch+insert+update+delete)) "c2Cpu/o",
fosFmte7(sum(CLASS3_LOCK_LATCH)
/ sum(select+fetch+insert+update+delete)) "locLa/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(select+fetch+insert+update+delete)) "synIO/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(SYNC_IO_SUSP)) "synIOTi",
fosFmte7(sum(class1_elapsed)) "c1Ela",
fosFmte7(sum(class2_elapsed)) "c2Ela",
fosFmte7(sum(class2_cpu_total)) "c2Cpu",
fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
fosFmte7(sum(occurrences)) occ,
fosFmtE7(sum(select)) sel,
fosFmtE7(sum(open)) open,
fosFmtE7(sum(fetch)) fetch,
fosFmtE7(sum(insert)) ins,
fosFmtE7(sum(update)) upd,
fosFmtE7(sum(delete)) del
from TACCT_GENERAL g
where plan_name = 'BE5000'
-- and timestamp > current timestamp - 10 days
group by timestamp
order by sum(class2_elapsed) desc
fetch first 1000 rows only
with ur
; x
select *
from TACCT_GENERAL g
where timestamp > current timestamp - 3 days
and ( corrName like 'MFT15%'
or corrName like 'MFT18%'
or corrName like 'MFT56%'
or connect_id like 'MFT56%'
or corrName = 'MFT3100P'
)
order by timestamp desc
with ur
;
}¢--- A540769.WK.SQL(PDBGENBG) cre=2012-07-19 mod=2012-07-19-15.57.01 A540769 ---
select *
from rr2xx.tacct_general
where plan_name = 'BG8020'
order by timestamp desc
}¢--- A540769.WK.SQL(PDBGENBP) cre=2011-01-20 mod=2011-01-20-13.24.02 A540769 ---
set current path oa1p;
select date(timestamp), fosFmtE7(class1_cpu_total) c1Cpu,
smallint(occurrences) occ,
fosFmtE7(class1_elapsed) c1Ela,
fosFmtE7(class2_elapsed) c2Ela,
fosFmtE7(select) sel,
fosFmtE7(open) open,
fosFmtE7(fetch) fetch,
fosFmtE7(commit) comm,
fosFmtE7(rollback) rollBa,
fosFmtE7(RID_POOL_USED) ridUsed,
g.*
from RZ2dd.TACCT_GENERAL g
where -- plan_name = 'MI5700'
plan_name like 'EU500%'
and timestamp > '2009-11-01-00.00.00'
and fetch > 1e6
order by timestamp desc
;x;
select class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
-- and connect_id like 'MFT5614P%'
and connect_id like 'TNT780%'
and plan_name in ('TN7080')
-- and insert >= 1
ORDER BY timestamp desc
--ORDER BY CLASS1_ELAPSED desc
with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 9 DAY
and plan_name = 'RB5000'
and insert >= 1
ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
from RZ2XX.TACCT_GENERAL g
with ur
;
}¢--- A540769.WK.SQL(PDBGENBX) cre=2011-01-25 mod=2011-12-20-08.28.35 A540769 ---
set current path = oa1p;
select time(timestamp - class1_elapsed seconds) von, timestamp,
SUBSYSTEM_ID subS,
fosfmte7(class3_db_IO / class3_Log_wrt_IO) "db/log",
fosfmte7(class3_db_IO) db_io , fosFmte7(class3_Log_wrt_IO) logIO,
g.*
from RZ2MM.TACCT_GENERAL g
where corrName like 'BXT64%'
and timestamp between '2011-12-01-00.00.00'
and '2011-12-02-00.00.00'
and subsystem_id like 'DOF%'
and class3_Log_wrt_IO > 0
and plan_name = 'DSNUTIL'
-- and class2_elapsed > 600
order by class2_elapsed desc
WITH UR
;x;
select count(*), sum(occurrences), sum(class2_elapsed),
sum(class3_db_IO) / sum(class3_Log_wrt_IO) "db/log",
sum(class3_db_IO) dbio, sum(class3_Log_wrt_IO) "log",
timestamp
from RZ2HH.TACCT_GENERAL g
where -- corrName like 'BXT64%'
timestamp between '2011-12-01-00.00.00'
and '2011-12-02-00.00.00'
and subsystem_id like 'DOF%'
and class3_Log_wrt_IO > 0
-- and plan_name = 'DSNUTIL'
-- and class2_elapsed > 600
group by timestamp
order by timestamp desc
WITH UR
;x;
select *
from RZ2DD.TACCT_GENERAL g
where corrName like 'BXT64%'
and timestamp between '2010-05-31-00.00.00'
and '2012-10-01-09.00.00'
and subsystem_id like 'DOF%'
and plan_name = 'DSNUTIL'
and class2_elapsed > 600
order by class2_elapsed desc
WITH UR
;x;
select *
from RZ2DD.TACCT_GENERAL g
where corrName like 'BXT6431P%'
and plan_name = 'DSNUTIL'
and timestamp > current timestamp - 1 year
order by class2_elapsed desc
with ur
;x;
select class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
-- and connect_id like 'MFT5614P%'
and connect_id like 'TNT780%'
and plan_name in ('TN7080')
-- and insert >= 1
ORDER BY timestamp desc
--ORDER BY CLASS1_ELAPSED desc
with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 9 DAY
and plan_name = 'RB5000'
and insert >= 1
ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
from RZ2XX.TACCT_GENERAL g
with ur
;
}¢--- A540769.WK.SQL(PDBGENCD) cre=2011-08-22 mod=2012-05-21-08.55.20 A540769 ---
select timestamp - class1_elapsed seconds, timestamp, g.*
from RZ2XX.TACCT_GENERAL g
where timestamp between '2012-05-18-09.00.00'
and '2012-05-18-12.10.00'
-- or timestamp between '2011-08-11-23.41.00'
-- and '2011-08-11-23.47.00'
-- timestamp in ( '2011-08-20-00.07.14.094155'
-- ,'2011-08-11-23.45.22.160512' )
-- )and( corrName like 'CDT690%'
and plan_name in -- ('MB5020'
-- ('NZ0610'
('CI0900'
)
order by plan_name, class2_cpu_total desc
;x;
select class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
sMB5020 (1000* (class2_cpu_total
NZ0610 + class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
-- and connect_id like 'MFT5614P%'
and connect_id like 'TNT780%'
and plan_name in ('TN7080')
-- and insert >= 1
ORDER BY timestamp desc
--ORDER BY CLASS1_ELAPSED desc
with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 9 DAY
and plan_name = 'RB5000'
and insert >= 1
ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
from RZ2XX.TACCT_GENERAL g
with ur
;
}¢--- A540769.WK.SQL(PDBGENCT) cre=2010-05-14 mod=2012-05-22-15.14.54 A540769 ---
select *
from RZ2HH.TACCT_GENERAL g
where timestamp > current timestamp - 3 days
and plan_name like 'CZ0580%'
order by class2_cpu_total desc
;x;
select timestamp ,
int(sum(occurrences)) "occ",
dec(sum(class2_elapsed)/sum(occurrences),5,2) "c2ela/occ",
dec(sum(select+open+fetch+insert+update+delete)/sum(occurrences)
,5,2) "sopiud/occ",
sum(class2_elapsed) "c2ela",
sum(class2_cpu_total) "c2cpu",
sum(class3_global_cont) "c2gloCon",
sum(class3_DB_IO) "c3dbIo",
sum(class3_LOG_WRT_IO) "c2logIo",
sum(OPEN_CLOSE_SUSP) "opClo",
sum(CLASS3_OPEN_CLOSE) "c3opClo",
sum(SERV_TASK_SUSP) "serTa",
sum(CLASS3_SERV_TASK) "c3serTa",
sum(select) "select",
sum(open ) "open",
sum(fetch ) "fetch",
sum(insert) "insert",
sum(update) "update",
sum(delete) "delete"
from RZ2HH.TACCT_GENERAL g
where timestamp > trunc_timestamp(current timestamp - 15 DAY, 'DD')
-- and timestamp > '2010-05-11-17.00.00'
-- and connect_id like 'MFT5614P%'
-- and corrname like 'MFT5614P'
and plan_name like 'CZ0580%'
-- and insert >= 1
group by timestamp
ORDER BY timestamp desc
with ur
;
X
select timestamp, int(sum(occurrences)) "occ",
dec(sum(class2_elapsed)/sum(occurrences),5,2) "c2ela/occ",
sum(OPEN_CLOSE_susp) / sum(occurrences) "OCsusp",
sum(CLASS3_OPEN_CLOSE) / sum(occurrences) "OCtime"
from RZ2dd.TACCT_GENERAL g
where timestamp > trunc_timestamp(current timestamp - 99 DAY, 'DD')
and plan_name like 'CT0790%'
group BY timestamp
ORDER BY timestamp desc
with ur
;x;
select insert, class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 9 DAY
and plan_name = 'RB5000'
and insert >= 1
ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
from RZ2XX.TACCT_GENERAL g
with ur
;
}¢--- A540769.WK.SQL(PDBGENCY) cre=2010-12-03 mod=2010-12-03-11.05.06 A540769 ---
set current path oa1p;
set current schema = RZ2XX;
select timestamp,
class1_elapsed,
class2_elapsed,
CLASS3_SYNC_IO,
fosFmte7((CLASS3_SYNC_IO)
/ (SYNC_IO_SUSP)) "synIOTi",
fosFmte7((class2_elapsed)
/ (0.0+select+fetch+insert+update+delete)) "c2Ela/o",
fosFmte7((class2_cpu_total)
/ (0.0+select+fetch+insert+update+delete)) "c2Cpu/o",
fosFmte7((CLASS3_LOCK_LATCH)
/ (0.0+select+fetch+insert+update+delete)) "locLa/o",
fosFmte7((CLASS3_SYNC_IO)
/ (0.0+select+fetch+insert+update+delete)) "synIO/o",
g.*
from TACCT_GENERAL g
where plan_name = 'CY5150'
and timestamp > current timestamp - 3 days
order by class2_elapsed desc
fetch first 300 rows only
with ur
; x
set current schema = RZ2DD;
select date(timestamp), class1_elapsed, class2_elapsed,
fosFmte7(occurrences) occ,
fosFmtE7( (select)) sel,
fosFmtE7( (insert)) ins,
update upd,
g.*
from TACCT_GENERAL g
where plan_name = 'BE5000'
and timestamp > current timestamp - 5 days
order by class2_elapsed desc
with ur
;
set current schema = RZ2xx;
select timestamp ,
fosFmte7(sum(class2_elapsed)
/ sum(select+fetch+insert+update+delete)) "c2Ela/o",
fosFmte7(sum(class2_cpu_total)
/ sum(select+fetch+insert+update+delete)) "c2Cpu/o",
fosFmte7(sum(CLASS3_LOCK_LATCH)
/ sum(select+fetch+insert+update+delete)) "locLa/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(select+fetch+insert+update+delete)) "synIO/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(SYNC_IO_SUSP)) "synIOTi",
fosFmte7(sum(class1_elapsed)) "c1Ela",
fosFmte7(sum(class2_elapsed)) "c2Ela",
fosFmte7(sum(class2_cpu_total)) "c2Cpu",
fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
fosFmte7(sum(occurrences)) occ,
fosFmtE7(sum(select)) sel,
fosFmtE7(sum(open)) open,
fosFmtE7(sum(fetch)) fetch,
fosFmtE7(sum(insert)) ins,
fosFmtE7(sum(update)) upd,
fosFmtE7(sum(delete)) del
from TACCT_GENERAL g
where plan_name = 'BE5000'
and timestamp > current timestamp - 5 days
group by timestamp
order by sum(class2_elapsed) desc
fetch first 100 rows only
with ur
;
set current schema = RZ2xx;
select date(timestamp),
fosFmte7(sum(class2_elapsed)) "c2ElaSu",
fosFmte7(max(class2_elapsed)) "c2ElaMa",
fosFmte7(sum(select+fetch+insert+update+delete)) "opsSum",
fosFmte7(max(select+fetch+insert+update+delete)) "opsMax",
fosFmte7(sum(class2_cpu_total)
/ sum(select+fetch+insert+update+delete)) "c2Cpu/o",
fosFmte7(sum(CLASS3_LOCK_LATCH)
/ sum(select+fetch+insert+update+delete)) "locLa/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(select+fetch+insert+update+delete)) "synIO/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(SYNC_IO_SUSP)) "synIOTi",
fosFmte7(sum(class1_elapsed)) "c1Ela",
fosFmte7(sum(class2_elapsed)) "c2Ela",
fosFmte7(sum(class2_cpu_total)) "c2Cpu",
fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
fosFmte7(sum(occurrences)) occ,
fosFmtE7(sum(select)) sel,
fosFmtE7(sum(open)) open,
fosFmtE7(sum(fetch)) fetch,
fosFmtE7(sum(insert)) ins,
fosFmtE7(sum(update)) upd,
fosFmtE7(sum(delete)) del
from TACCT_GENERAL g
where plan_name = 'BE5000'
and timestamp > current timestamp - 5 days
group by date(timestamp)
order by sum(class2_elapsed) desc
fetch first 100 rows only
with ur
;
set current schema = RZ2MM;
select min(timestamp), max(timestamp)
from TACCT_GENERAL g
;;
select timestamp,
fosFmte7(sum(class2_elapsed)
/ sum(select+fetch+insert+update+delete)) "c2Ela/o",
fosFmte7(sum(class2_cpu_total)
/ sum(select+fetch+insert+update+delete)) "c2Cpu/o",
fosFmte7(sum(CLASS3_LOCK_LATCH)
/ sum(select+fetch+insert+update+delete)) "locLa/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(select+fetch+insert+update+delete)) "synIO/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(SYNC_IO_SUSP)) "synIOTi",
fosFmte7(sum(class1_elapsed)) "c1Ela",
fosFmte7(sum(class2_elapsed)) "c2Ela",
fosFmte7(sum(class2_cpu_total)) "c2Cpu",
fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
fosFmte7(sum(occurrences)) occ,
fosFmtE7(sum(select)) sel,
fosFmtE7(sum(open)) open,
fosFmtE7(sum(fetch)) fetch,
fosFmtE7(sum(insert)) ins,
fosFmtE7(sum(update)) upd,
fosFmtE7(sum(delete)) del
from TACCT_GENERAL g
where plan_name = 'BE5000'
-- and timestamp > current timestamp - 10 days
group by timestamp
order by sum(class2_elapsed) desc
fetch first 1000 rows only
with ur
; x
select *
from TACCT_GENERAL g
where timestamp > current timestamp - 3 days
and ( corrName like 'MFT15%'
or corrName like 'MFT18%'
or corrName like 'MFT56%'
or connect_id like 'MFT56%'
or corrName = 'MFT3100P'
)
order by timestamp desc
with ur
;
}¢--- A540769.WK.SQL(PDBGEND) cre=2011-02-23 mod=2011-02-23-09.34.07 A540769 ---
select min(timestamp), max(timestamp)
from rz2xx.tacct_general
}¢--- A540769.WK.SQL(PDBGENDG) cre=2012-05-23 mod=2012-05-23-16.36.21 A540769 ---
select *
from RZ2DD.TACCT_GENERAL g
where plan_name = 'DG8130'
and timestamp > current timestamp - 50 days
order by timestamp desc
;x;
select class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
sMB5020 (1000* (class2_cpu_total
NZ0610 + class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
-- and connect_id like 'MFT5614P%'
and connect_id like 'TNT780%'
and plan_name in ('TN7080')
-- and insert >= 1
ORDER BY timestamp desc
--ORDER BY CLASS1_ELAPSED desc
with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 9 DAY
and plan_name = 'RB5000'
and insert >= 1
ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
from RZ2XX.TACCT_GENERAL g
with ur
;
}¢--- A540769.WK.SQL(PDBGENEC) cre=2011-09-20 mod=2011-09-29-09.37.44 A540769 ---
select class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
-- and connect_id like 'MFT5614P%'
and connect_id like 'TNT780%'
and plan_name in ('TN7080')
-- and insert >= 1
ORDER BY timestamp desc
--ORDER BY CLASS1_ELAPSED desc
with ur
;
X
select *
from RZ2MM.TACCT_GENERAL g
where plan_name in ('EC5492')
and timestamp between '2011-09-03-00.40.00'
and '2011-09-03-02.00.00'
order by timestamp desc
with ur
;x;
select insert, class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 9 DAY
and plan_name = 'RB5000'
and insert >= 1
ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
from RZ2XX.TACCT_GENERAL g
with ur
;
}¢--- A540769.WK.SQL(PDBGENEL) cre=2010-09-20 mod=2010-09-29-14.11.58 A540769 ---
select *
from RZ2HH.TACCT_GENERAL g
where corrName = 'YELARJ01'
and timestamp > '2010-09-17-00.00.00'
order by timestamp desc
;x;
select timestamp, plan_name,
sum(occurrences) occ,
sum(CLASS1_ELAPSED) / sum(occurrences) c1Ela ,
sum(CLASS1_CPU_TOTAL) / sum(occurrences) c1Cpu ,
sum(CLASS2_ELAPSED) / sum(occurrences) c2Ela ,
sum(CLASS2_CPU_TOTAL) / sum(occurrences) c2Cpu
from RZ2MM.TACCT_GENERAL g
where plan_Name in ('XBLE80', 'XBLE82', 'XBLE84')
and subsystem_id like 'DBP%'
and timestamp between '2010-09-18-14.00.00'
and '2010-09-18-18.00.00'
group by timestamp, plan_name
order by plan_name, 4 desc
;x;
select class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
-- and connect_id like 'MFT5614P%'
and connect_id like 'TNT780%'
and plan_name in ('TN7080')
-- and insert >= 1
ORDER BY timestamp desc
--ORDER BY CLASS1_ELAPSED desc
with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 9 DAY
and plan_name = 'RB5000'
and insert >= 1
ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
from RZ2XX.TACCT_GENERAL g
with ur
;
}¢--- A540769.WK.SQL(PDBGENER) cre=2012-12-19 mod=2012-12-24-13.54.17 A540769 ---
set current path oa1p;
set current path = oa1p;
select *
from RZ2dd.TACCT_GENERAL g
where plan_name in ('ER0044')
and timestamp between '2012-12-21-00.00.00'
and '2012-12-21-23.59.59'
order by subsystem_id
;;;
with s as(
select date(timestamp) dt, hour(timestamp) hh, int(sum(commit))commit
from RZ2hh.TACCT_GENERAL g
where plan_name in ('ER0044')
and subsystem_id like 'DOF%'
and timestamp between '2012-12-01-00.00.00'
and '2012-12-31-00.00.00'
group by timestamp
)
, d as (
select dt from s group by dt
)
select d.dt,
right(' ' || value(strip(char(s00.commit)), ''), 4)
|| right(' ' || value(strip(char(s01.commit)), ''), 4)
|| right(' ' || value(strip(char(s02.commit)), ''), 4)
|| right(' ' || value(strip(char(s03.commit)), ''), 4)
|| right(' ' || value(strip(char(s04.commit)), ''), 4)
|| right(' ' || value(strip(char(s05.commit)), ''), 4)
|| right(' ' || value(strip(char(s06.commit)), ''), 4)
|| right(' ' || value(strip(char(s07.commit)), ''), 4)
|| right(' ' || value(strip(char(s08.commit)), ''), 4)
|| right(' ' || value(strip(char(s09.commit)), ''), 4)
|| right(' ' || value(strip(char(s10.commit)), ''), 4)
|| right(' ' || value(strip(char(s11.commit)), ''), 4)
|| right(' ' || value(strip(char(s12.commit)), ''), 4)
|| right(' ' || value(strip(char(s13.commit)), ''), 4)
|| right(' ' || value(strip(char(s14.commit)), ''), 4)
|| right(' ' || value(strip(char(s15.commit)), ''), 4)
|| right(' ' || value(strip(char(s16.commit)), ''), 4)
|| right(' ' || value(strip(char(s17.commit)), ''), 4)
|| right(' ' || value(strip(char(s18.commit)), ''), 4)
|| right(' ' || value(strip(char(s19.commit)), ''), 4)
|| right(' ' || value(strip(char(s20.commit)), ''), 4)
|| right(' ' || value(strip(char(s21.commit)), ''), 4)
|| right(' ' || value(strip(char(s22.commit)), ''), 4)
|| right(' ' || value(strip(char(s23.commit)), ''), 4)
from d
left join s s00 on s00.dt = d.dt and s00.hh = 00
left join s s01 on s01.dt = d.dt and s01.hh = 01
left join s s02 on s02.dt = d.dt and s02.hh = 02
left join s s03 on s03.dt = d.dt and s03.hh = 03
left join s s04 on s04.dt = d.dt and s04.hh = 04
left join s s05 on s05.dt = d.dt and s05.hh = 05
left join s s06 on s06.dt = d.dt and s06.hh = 06
left join s s07 on s07.dt = d.dt and s07.hh = 07
left join s s08 on s08.dt = d.dt and s08.hh = 08
left join s s09 on s09.dt = d.dt and s09.hh = 09
left join s s10 on s10.dt = d.dt and s10.hh = 10
left join s s11 on s11.dt = d.dt and s11.hh = 11
left join s s12 on s12.dt = d.dt and s12.hh = 12
left join s s13 on s13.dt = d.dt and s13.hh = 13
left join s s14 on s14.dt = d.dt and s14.hh = 14
left join s s15 on s15.dt = d.dt and s15.hh = 15
left join s s16 on s16.dt = d.dt and s16.hh = 16
left join s s17 on s17.dt = d.dt and s17.hh = 17
left join s s18 on s18.dt = d.dt and s18.hh = 18
left join s s19 on s19.dt = d.dt and s19.hh = 19
left join s s20 on s20.dt = d.dt and s20.hh = 20
left join s s21 on s21.dt = d.dt and s21.hh = 21
left join s s22 on s22.dt = d.dt and s22.hh = 22
left join s s23 on s23.dt = d.dt and s23.hh = 23
order by d.dt desc
;;;;
select plan_name, timestamp,
fosFmte7(sum(class1_cpu_total)) "c1cpu",
fosFmte7(sum(class2_cpu_total)) "c2cpu",
fosFmte7(sum(sqls) ) "sqls",
int(sum(commit)) "commit",
int(sum(rollback)) "rollback",
fosFmte7(sum(real(select))) "select",
fosFmte7(sum(real(open))) "open",
fosFmte7(sum(real(fetch))) "fetch",
fosFmte7(sum(real(insert))) "insert",
fosFmte7(sum(real(update))) "update",
fosFmte7(sum(real(delete))) "delete",
fosFmte7(sum(real(PROGRAMS))) "pkgs"
from s
-- group by plan_name, floor(log10(class1_elapsed/max(sqls, 1))*3)
-- order by plan_name, min(class1_elapsed/max(sqls, 1))
group by plan_name, timestamp
order by plan_name, timestamp desc
;;;
??????????????
with s as(
select real(select+open+fetch+insert+update+delete) sqls,
real(max(1, commit+rollback)) cr,
g.*
from RZ2hh.TACCT_GENERAL g
where plan_name in ('ER0044')
and subsystem_id like 'DOF%'
and timestamp between '2012-12-01-00.00.00'
and '2012-12-31-00.00.00'
)
select plan_name, timestamp,
fosFmte7(sum(class1_cpu_total)) "c1cpu",
fosFmte7(sum(class2_cpu_total)) "c2cpu",
fosFmte7(sum(sqls) ) "sqls",
int(sum(commit)) "commit",
int(sum(rollback)) "rollback",
fosFmte7(sum(real(select))) "select",
fosFmte7(sum(real(open))) "open",
fosFmte7(sum(real(fetch))) "fetch",
fosFmte7(sum(real(insert))) "insert",
fosFmte7(sum(real(update))) "update",
fosFmte7(sum(real(delete))) "delete",
fosFmte7(sum(real(PROGRAMS))) "pkgs"
from s
-- group by plan_name, floor(log10(class1_elapsed/max(sqls, 1))*3)
-- order by plan_name, min(class1_elapsed/max(sqls, 1))
group by plan_name, timestamp
order by plan_name, timestamp desc
;;;
??????????????
with s as(
select real(select+open+fetch+insert+update+delete) sqls,
real(max(1, commit+rollback)) cr,
g.*
from RZ2HH.TACCT_GENERAL g
where plan_name in ('PW5200', 'PW5220')
and subsystem_id like 'DOF%'
and timestamp between '2012-01-01-00.00.00'
and '2012-12-02-00.00.00'
)
select trunc_timestamp(timestamp,'HH'),
plan_name,
fosFmte7((class1_elapsed)/(cr) ) "c1ela/coR",
fosFmte7((class2_elapsed)/(cr) ) "c2ela/coR",
fosFmte7((class1_cpu_total)/(cr)) "c1cpu/coR",
fosFmte7((class2_cpu_total)/(cr)) "c2cpu/coR",
fosFmte7((CLASS3_ASYNCH_IXL) /(cr) ) "c3IXL/coR",
int((occurrences)) "occ",
int((commit)) "commit",
int((rollback)) "rollBack",
fosFmte7((sqls)/(cr) ) "sqls/coR",
fosFmte7((class3_global_cont)/(cr)) "c2gloCon",
fosFmte7((class3_DB_IO)/(cr)) "c3dbIo",
fosFmte7((class3_LOG_WRT_IO)/(cr)) "c2logIo",
fosFmte7((real(OPEN_CLOSE_SUSP))/(cr)) "opClo",
fosFmte7((CLASS3_OPEN_CLOSE)/(cr)) "c3opClo",
fosFmte7((real(SERV_TASK_SUSP))/(cr)) "serTa",
fosFmte7((CLASS3_SERV_TASK)/(cr)) "c3serTa",
fosFmte7((real(commit))/(cr)) "commit",
fosFmte7((real(rollback))/(cr)) "rollback",
fosFmte7((real(select))/(cr)) "select",
fosFmte7((real(open) )/(cr)) "open",
fosFmte7((real(fetch) )/(cr)) "fetch",
fosFmte7((real(insert))/(cr)) "insert",
fosFmte7((real(update))/(cr)) "update",
fosFmte7((real(delete))/(cr)) "delete",
fosFmte7((real(INCREMENTAL_BIND))/(cr))"incrBi",
fosFmte7((real(PROGRAMS)) /(cr)) "pkgs"
from s
-- group by trunc_timestamp(timestamp,'HH'), plan_name
order by plan_name, (class1_elapsed)/(cr) desc
fetch first 1000 rows only
;;;
;;;
select count(*), plan_name
from rz1xx.tacct_program
where pck_id = 'YWPR2PX' and group_Name = 'DE0G'
group by plan_name
with ur
set current path = oa1p;
with i as
(
select plan_name
, sum(class2_elapsed) ela
, sum(class2_cpu_total) cpu
, sum(commit) com
, sum(select) sel
, sum(open) op
, sum(fetch) fet
, min(timestamp) von
, max(timestamp) bis
from rz2mm.tacct_general
where timestamp > '2011-01-01 00:00:00' and commit > 0
and plan_name in ('PW0602', 'PW0408')
group by plan_name, floor( 2*log10(class2_elapsed / commit))
)
select plan_name
, fosFmte7(ela / com) "ela/com"
, fosFmte7(com) commit
, fosFmtE7(cpu / com) "cpu/com"
, fosFmtE7(sel / com) "sel/Com"
, fosFmtE7(op / com) "ope/Com"
, fosFmtE7(fet / com) "fet/Com"
, von , bis
from i
order by plan_name, ela/com desc
with ur
}¢--- A540769.WK.SQL(PDBGENES) cre=2010-11-05 mod=2010-11-05-22.23.13 A540769 ---
select id, rz, count(*), min(timeSTamp), max(timestamp)
from A540769.tacct_general
group by id, rz
;;;
set current schema = rz2DD;
-- insert into A540769.tacct_general
with w as
( select
case
when corrName like 'NIT16%'
and log_recs_written > 30 then 'ni250Load'
when plan_name = 'NI5310' then 'ni250Update'
when plan_name = 'NI5340' then 'ni250Insert'
when corrName like 'MFT15%' then 'mfLoad'
when corrName like 'MFT18%' then 'mfPflege'
when connect_id like 'MFT56%' then 'mfTurnover'
when corrName = 'MFT3100P' then 'mfAuswertung'
else '' end id,
left(current schema, 3) rz, g.*, current date insDate
from tacct_general g
-- ) , sel as
) select * from w where id <> '' and timestamp >
current timestamp - 3 days
order by timestamp desc
;
( select * from w where id <> ''
)
select * from sel
where not exists (select 1
from A540769.TACCT_GENERAL o
where o.id = sel.id and o.rz = sel.rz
and o.timestamp = sel.timestamp
and o.subsystem_id = sel.subsystem_id
)
;
}¢--- A540769.WK.SQL(PDBGENEU) cre=2011-01-26 mod=2011-01-27-16.13.46 A540769 ---
set current path = oa1p;
select date(timestamp)
, subsystem_id
-- , substr(strip(min(subsystem_id))
-- || case when min(subsystem_id) = max(subsystem_id) then ''
-- else '*' || substr(max(subsystem_id), 4, 1) end, 1, 6)
, fosFmtE7(class2_elapsed/fetch) "c2Ela/fe"
, fosFmtE7(class2_cpu_total/fetch) "c2Cpu/fe"
, fosFmtE7(fetch) "fetch"
, fosFmtE7(class1_elapsed) "c1Ela"
, fosFmtE7(class2_elapsed) "c2Ela"
, fosFmtE7(class1_cpu_total) "c1Cpu"
, fosFmtE7(class2_cpu_total) "c2Cpu"
, g.*
from RZ2DD.TACCT_GENERAL g
where plan_name = 'EU5000'
and fetch >1e6
and timestamp > '2008-11-01-00.00.00'
order by timestamp desc
;x;
select class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
-- and connect_id like 'MFT5614P%'
and connect_id like 'TNT780%'
and plan_name in ('TN7080')
-- and insert >= 1
ORDER BY timestamp desc
--ORDER BY CLASS1_ELAPSED desc
with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 9 DAY
and plan_name = 'RB5000'
and insert >= 1
ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
from RZ2XX.TACCT_GENERAL g
with ur
;
}¢--- A540769.WK.SQL(PDBGENEX) cre=2010-07-01 mod=2011-05-19-08.07.40 A540769 ---
set current schema = RR2xx;
insert into A540769.tacct_general
with w as
( select
case
when corrName like 'MFT15%' then 'mfLoad'
when corrName like 'MFT18%' then 'mfPflege'
when connect_id like 'MFT56%' then 'mfTurnover'
when corrName = 'MFT3100P' then 'mfAuswertung'
when corrName like 'NIT15%' then 'ni150load'
when corrName like 'NIT16%' and log_recs_written > 30
then 'ni250Load'
when CONNECT_ID like 'NIT17%' then 'ni150InsEmpClu'
when CONNECT_ID like 'NIT18%' or plan_name = 'NI5392'
then 'ni250InsNoPos'
when plan_name = 'NI5310' then 'ni250Update'
when plan_name = 'NI5340' then 'ni250Insert'
else '' end id,
left(current schema, 3) rz,
current date insDate,
g.*
from tacct_general g
) , sel as
( select * from w where id <> ''
)
select * from sel
where not exists (select 1
from A540769.TACCT_GENERAL o
where o.id = sel.id and o.rz = sel.rz
and o.timestamp = sel.timestamp
and o.subsystem_id = sel.subsystem_id
)
;
}¢--- A540769.WK.SQL(PDBGENEY) cre=2010-08-03 mod=2011-05-19-08.28.35 A540769 ---
set current schema A540769;
select id, rz, count(*), min(insDate), max(insDate)
from tacct_general
group by id, rz
order by 1 desc, 2 asc
;
commit
;;;
select insDate, rz, count(*)
from tacct_general
group by insDate, rz
order by 1 desc, 2 asc
;
set current schema rr2xx;
-- insert into A540769.tacct_general
with w as
( select
case
when corrName like 'NIT15%' then 'ni150load'
when corrName like 'NIT16%' and log_recs_written > 30
then 'ni250Load'
when CONNECT_ID like 'NIT17%' then 'ni150InsEmptyClu'
when CONNECT_ID like 'NIT18%' or plan_name = 'NI5392'
then 'ni250InsNoPos'
when plan_name = 'NI5310' then 'ni250Update'
when plan_name = 'NI5340' then 'ni250Insert'
else '' end id,
left(current schema, 3) rz, g.*, current date insDate
from tacct_general g
where timestamp > '2011-04-14-00.00.00'
) , sel as
( select * from w where id <> ''
)
select * from sel
order by date(timestamp) desc, id, timestamp
with ur
;;;
select * from sel
where not exists (select 1
from A540769.TACCT_GENERAL o
where o.id = sel.id and o.rz = sel.rz
and o.timestamp = sel.timestamp
and o.subsystem_id = sel.subsystem_id
)
;
set current schema = 'A540769';
select insDate, rz, count(*)
from tacct_general
group by insDate, rz
order by 1 desc, 2 asc
;
select date(timestamp), rz, count(*)
from tacct_general
group by date(timestamp), rz
order by 1 desc, 2 asc
;
select *
from tacct_general
update tacct_general set id = 'ni150InsEmpClu'
where id = 'ni150InsEmptyCl'
;
}¢--- A540769.WK.SQL(PDBGENFI) cre=2011-09-30 mod=2011-09-30-09.42.10 A540769 ---
select insert, class2_elapsed / max(1, insert),
g.*
from RZ2XX.TACCT_GENERAL g
where plan_name in ('FI7300')
and timestamp > '2011-09-25-00.00.00'
order by timestamp desc
with ur
;x;
select class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
-- and connect_id like 'MFT5614P%'
and connect_id like 'TNT780%'
and plan_name in ('TN7080')
-- and insert >= 1
ORDER BY timestamp desc
--ORDER BY CLASS1_ELAPSED desc
with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 9 DAY
and plan_name = 'RB5000'
and insert >= 1
ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
from RZ2XX.TACCT_GENERAL g
with ur
;
}¢--- A540769.WK.SQL(PDBGENHO) cre=2012-07-13 mod=2012-07-13-10.14.06 A540769 ---
set current path oa1p;
set current schema = RZ2hh;
select plan_name, dayOfWeek_iso(timestamp) dayOfWeek,
hour(timestamp) hh,
count(*) count,
fosFmte7(sum(commit)) "commit",
fosFmte7(sum(select)) "select",
fosFmte7(sum(class1_elapsed)) "c1Ela",
fosFmte7(sum(class1_cpu_total)) "c1Cpu",
fosFmte7(sum(class2_cpu_total)) "c2Cpu",
fosFmte7(sum(class3_Sync_IO )) "c3Syn",
fosFmte7(min(CLASS3_LOCK_LATCH)) "~c3LoLa",
fosFmte7(min(class2_elapsed)) "c2Ela-",
fosFmte7(max(class2_elapsed)) "-c2Ela",
fosFmte7(min(class2_cpu_total)) "c2Cpu-",
fosFmte7(max(class2_cpu_total)) "-c2Cpu",
fosFmte7(min(class3_Sync_IO )) "c3Syn-",
fosFmte7(max(class3_Sync_Io )) "-c3Syn"
from TACCT_GENERAL g
where plan_name = 'VZ52C'
and timestamp > '2012-06-10-00.00.00'
group by dayOfWeek_iso(timestamp) , plan_name,
hour(timestamp)
order by dayOfWeek_iso(timestamp) ,
hour(timestamp)
;x
set current path oa1p;
set current schema = RZ2xx;
select *
from TACCT_GENERAL g
where plan_name = 'XBLE86'
and timestamp > '2012-06-06-00.00.00'
order by insert desc
-- order by class2_elapsed desc
fetch first 100 rows only
;;
set current schema = RZ2xx;
select substr(strip(group_name) || ' ' || strip(connect_type), 1, 9),
count(*) count,
fosFmte7(min(class1_elapsed)) "c1Ela-",
fosFmte7(max(class1_elapsed)) "-c1Ela",
fosFmte7(avg(class1_elapsed)) "~c1Ela",
fosFmte7(avg(class2_elapsed)) "~c2Ela",
fosFmte7(min(class1_cpu_total)) "~c1Cpu",
fosFmte7(min(class2_cpu_total)) "~c2Cpu",
fosFmte7(min(class3_Sync_IO )) "~c3Syn",
fosFmte7(min(CLASS3_LOCK_LATCH)) "~c3LoLa",
fosFmte7(min(class2_elapsed)) "c2Ela-",
fosFmte7(max(class2_elapsed)) "-c2Ela",
fosFmte7(min(class2_cpu_total)) "c2Cpu-",
fosFmte7(max(class2_cpu_total)) "-c2Cpu",
fosFmte7(min(class3_Sync_IO )) "c3Syn-",
fosFmte7(max(class3_Sync_Io )) "-c3Syn",
avg(commit) "~commit"
from TACCT_GENERAL g
where plan_name = 'XBLE80'
and timestamp between '2010-12-03-00.00.00'
and '2010-12-04-00.00.00'
group by group_name, connect_type,
int(log10(max(class1_elapsed, 0.001)) * 2.)
order by group_name, connect_type,
min(class1_elapsed)
;x
set current schema = RZ2xx;
select *
from TACCT_GENERAL g
where plan_name = 'XBLE80'
and timestamp between '2010-12-03-00.00.00'
and '2010-12-04-00.00.00'
and class3_Sync_IO = 0
and CLASS3_LOCK_LATCH = 0
order by class2_elapsed
fetch first 100 rows only
;;
set current schema = RZ2xx;
select *
from TACCT_GENERAL g
where plan_name = 'XBLE80'
and class2_Elapsed > 50
order by class2_Elapsed desc
;x
select timestamp ,
fosFmte7(sum(class2_elapsed)
/ sum(0.0+select+fetch+insert+update+delete)) "c2Ela/o",
fosFmte7(sum(class2_elapsed)
/ sum(0.0+commit)) "c2Ela/c",
fosFmte7(sum(0.0+ select+fetch+insert+update+delete)) "opsSum",
fosFmte7(sum(class2_cpu_total)
/ sum(0.0+select+fetch+insert+update+delete)) "c2Cpu/o",
fosFmte7(sum(CLASS3_LOCK_LATCH)
/ sum(0.0+select+fetch+insert+update+delete)) "locLa/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(0.0+select+fetch+insert+update+delete)) "synIO/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(SYNC_IO_SUSP)) "synIOTi",
fosFmte7(sum(class1_elapsed)) "c1Ela",
fosFmte7(sum(class2_elapsed)) "c2Ela",
fosFmte7(sum(class2_cpu_total)) "c2Cpu",
fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
fosFmte7(sum(occurrences)) occ,
fosFmtE7(sum(0+select)) sel,
fosFmtE7(sum(open)) open,
fosFmtE7(sum(fetch)) fetch,
fosFmtE7(sum(insert)) ins,
fosFmtE7(sum(update)) upd,
fosFmtE7(sum(delete)) del,
fosFmtE7(sum(commit)) commit
from (select g.*, commit coms
from TACCT_GENERAL g) g
where plan_name = 'XBLE80'
and timestamp > current timestamp - 5 days
group by timestamp
-- order by min(timestamp) desc
order by real(sum(class2_elapsed)) / sum(coms) desc
fetch first 100 rows only
with ur
; x
set current schema = RZ2MM;
select timestamp,
fosFmte7((class2_elapsed)
/ (0.0+select+fetch+insert+update+delete)) "c2Ela/o",
fosFmte7((class2_cpu_total)
/ (0.0+select+fetch+insert+update+delete)) "c2Cpu/o",
fosFmte7((CLASS3_LOCK_LATCH)
/ (0.0+select+fetch+insert+update+delete)) "locLa/o",
fosFmte7((CLASS3_SYNC_IO)
/ (0.0+select+fetch+insert+update+delete)) "synIO/o",
fosFmte7((CLASS3_LOG_WRT_IO)
/ (0.0+select+fetch+insert+update+delete)) "logWr/o",
fosFmte7((CLASS3_SYNC_IO)
/ (SYNC_IO_SUSP)) "synIOTi",
commit,
insert,
(0.0+select+fetch+insert+update+delete) "sqls",
g.*
from TACCT_GENERAL g
where plan_name = 'XBLE80' -- and insert/occurrences > 100000
and timestamp > current timestamp - 5 days
order by class2_elapsed
/ (0.0+select+fetch+insert+update+delete) desc
fetch first 300 rows only
with ur
; x
select timestamp,
fosFmte7((class2_elapsed)
/ (0.0+select+fetch+insert+update+delete)) "c2Ela/o",
fosFmte7((class2_cpu_total)
/ (0.0+select+fetch+insert+update+delete)) "c2Cpu/o",
fosFmte7((CLASS3_LOCK_LATCH)
/ (0.0+select+fetch+insert+update+delete)) "locLa/o",
fosFmte7((CLASS3_SYNC_IO)
/ (0.0+select+fetch+insert+update+delete)) "synIO/o",
fosFmte7((CLASS3_SYNC_IO)
/ (SYNC_IO_SUSP)) "synIOTi",
g.*
from TACCT_GENERAL g
where plan_name = 'XB5000'
-- and timestamp > current timestamp - 5 days
order by class2_elapsed desc
fetch first 300 rows only
with ur
; x
set current schema = RZ2DD;
select date(timestamp), class1_elapsed, class2_elapsed,
fosFmte7(occurrences) occ,
fosFmtE7( (select)) sel,
fosFmtE7( (insert)) ins,
update upd,
g.*
from TACCT_GENERAL g
where plan_name = 'BE5000'
and timestamp > current timestamp - 5 days
order by class2_elapsed desc
with ur
;
set current schema = RZ2xx;
select timestamp ,
fosFmte7(sum(class2_elapsed)
/ sum(select+fetch+insert+update+delete)) "c2Ela/o",
fosFmte7(sum(class2_cpu_total)
/ sum(select+fetch+insert+update+delete)) "c2Cpu/o",
fosFmte7(sum(CLASS3_LOCK_LATCH)
/ sum(select+fetch+insert+update+delete)) "locLa/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(select+fetch+insert+update+delete)) "synIO/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(SYNC_IO_SUSP)) "synIOTi",
fosFmte7(sum(class1_elapsed)) "c1Ela",
fosFmte7(sum(class2_elapsed)) "c2Ela",
fosFmte7(sum(class2_cpu_total)) "c2Cpu",
fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
fosFmte7(sum(occurrences)) occ,
fosFmtE7(sum(select)) sel,
fosFmtE7(sum(open)) open,
fosFmtE7(sum(fetch)) fetch,
fosFmtE7(sum(insert)) ins,
fosFmtE7(sum(update)) upd,
fosFmtE7(sum(delete)) del
from TACCT_GENERAL g
where plan_name = 'BE5000'
and timestamp > current timestamp - 5 days
group by timestamp
order by sum(class2_elapsed) desc
fetch first 100 rows only
with ur
;
set current schema = RZ2xx;
select date(timestamp),
fosFmte7(sum(class2_elapsed)) "c2ElaSu",
fosFmte7(max(class2_elapsed)) "c2ElaMa",
fosFmte7(sum(select+fetch+insert+update+delete)) "opsSum",
fosFmte7(max(select+fetch+insert+update+delete)) "opsMax",
fosFmte7(sum(class2_cpu_total)
/ sum(select+fetch+insert+update+delete)) "c2Cpu/o",
fosFmte7(sum(CLASS3_LOCK_LATCH)
/ sum(select+fetch+insert+update+delete)) "locLa/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(select+fetch+insert+update+delete)) "synIO/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(SYNC_IO_SUSP)) "synIOTi",
fosFmte7(sum(class1_elapsed)) "c1Ela",
fosFmte7(sum(class2_elapsed)) "c2Ela",
fosFmte7(sum(class2_cpu_total)) "c2Cpu",
fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
fosFmte7(sum(occurrences)) occ,
fosFmtE7(sum(select)) sel,
fosFmtE7(sum(open)) open,
fosFmtE7(sum(fetch)) fetch,
fosFmtE7(sum(insert)) ins,
fosFmtE7(sum(update)) upd,
fosFmtE7(sum(delete)) del
from TACCT_GENERAL g
where plan_name = 'BE5000'
and timestamp > current timestamp - 5 days
group by date(timestamp)
order by sum(class2_elapsed) desc
fetch first 100 rows only
with ur
;
set current schema = RZ2MM;
select min(timestamp), max(timestamp)
from TACCT_GENERAL g
;;
select timestamp,
fosFmte7(sum(class2_elapsed)
/ sum(select+fetch+insert+update+delete)) "c2Ela/o",
fosFmte7(sum(class2_cpu_total)
/ sum(select+fetch+insert+update+delete)) "c2Cpu/o",
fosFmte7(sum(CLASS3_LOCK_LATCH)
/ sum(select+fetch+insert+update+delete)) "locLa/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(select+fetch+insert+update+delete)) "synIO/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(SYNC_IO_SUSP)) "synIOTi",
fosFmte7(sum(class1_elapsed)) "c1Ela",
fosFmte7(sum(class2_elapsed)) "c2Ela",
fosFmte7(sum(class2_cpu_total)) "c2Cpu",
fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
fosFmte7(sum(occurrences)) occ,
fosFmtE7(sum(select)) sel,
fosFmtE7(sum(open)) open,
fosFmtE7(sum(fetch)) fetch,
fosFmtE7(sum(insert)) ins,
fosFmtE7(sum(update)) upd,
fosFmtE7(sum(delete)) del
from TACCT_GENERAL g
where plan_name = 'BE5000'
-- and timestamp > current timestamp - 10 days
group by timestamp
order by sum(class2_elapsed) desc
fetch first 1000 rows only
with ur
; x
select *
from TACCT_GENERAL g
where timestamp > current timestamp - 3 days
and ( corrName like 'MFT15%'
or corrName like 'MFT18%'
or corrName like 'MFT56%'
or connect_id like 'MFT56%'
or corrName = 'MFT3100P'
)
order by timestamp desc
with ur
;
}¢--- A540769.WK.SQL(PDBGENII) cre=2011-07-12 mod=2011-07-12-16.29.16 A540769 ---
set current path = oa1p;
select trunc_timestamp(timestamp, 'HH'),
fosfmte7(sum(occurrences)) occ,
fosfmte7(sum(CLASS1_IIP_CPU)) c1IIP,
fosfmte7(sum(CLASS2_IIP_CPU)) c2IIP,
fosfmte7(sum(CLASS2_IIP_CPU)
/ sum(occurrences)) "c2IIP/oc",
fosfmte7(sum(CLASS1_ELAPSED)
/ sum(occurrences)) "c1ela/oc",
fosfmte7(sum(CLASS1_CPU_TOTAL)
/ sum(occurrences)) "c1cpu/oc",
fosfmte7(sum(CLASS2_ELAPSED )
/ sum(occurrences)) "c2ela/oc",
fosfmte7(sum(CLASS2_CPU_TOTAL)
/ sum(occurrences)) "c2epu/oc",
fosfmte7(sum(IIPCP_ELIGIBLE)) iipEl
from rz2HH.tacct_general
where subsystem_id = 'DOF1'
and timestamp >= '2011-06-20-00.00.00'
and CONNECT_ID = 'SERVER' and CORRNAME = 'java'
and PLAN_NAME = 'DISTSERV'
group by trunc_timestamp(timestamp, 'HH')
order by trunc_timestamp(timestamp, 'HH') desc
with ur
;;
select trunc_timestamp(timestamp, 'HH'),
fosfmte7(sum(occurrences)) occ,
fosfmte7(sum(CLASS1_IIP_CPU)) c1IIP,
fosfmte7(sum(CLASS2_IIP_CPU)) c2IIP,
fosfmte7(sum(case
when CONNECT_ID = 'SERVER' and CORRNAME = 'java'
and PLAN_NAME = 'DISTSERV' then CLASS2_IIP_CPU
else 0 end)) j2IIP,
fosfmte7(sum(CLASS2_IIP_CPU)
/ sum(occurrences)) "c2IIP/oc",
fosfmte7(sum(IIPCP_ELIGIBLE)) iipEl
from rz2HH.tacct_general
where subsystem_id = 'DOF1'
and timestamp >= '2011-07-04-00.00.00'
group by trunc_timestamp(timestamp, 'HH')
order by trunc_timestamp(timestamp, 'HH') desc
with ur
;;
select *
from rz2XX.tacct_general
where subsystem_id = 'DOF1'
and timestamp >= '2011-07-09-09.30.00'
and timestamp <= '2011-07-09-23.30.00'
and CONNECT_ID = 'SERVER' and CORRNAME = 'java'
and PLAN_NAME = 'DISTSERV'
order by CLASS2_IIP_CPU desc
-- order by timestamp desc
fetch first 100 rows only
with ur
;;;
select *
from rz2DD.tacct_general
where subsystem_id = 'DOF1'
and timestamp >= '2011-06-01-00.00.00'
and CONNECT_ID = 'SERVER' and CORRNAME = 'java'
and PLAN_NAME = 'DISTSERV'
-- order by CLASS2_IIP_CPU desc
order by timestamp desc
fetch first 1000 rows only
with ur
;;;
}¢--- A540769.WK.SQL(PDBGENIN) cre=2010-07-01 mod=2011-04-18-10.35.55 A540769 ---
select * from A540769.tacct_general
order by timestamp desc
}¢--- A540769.WK.SQL(PDBGENIO) cre=2010-07-17 mod=2010-07-17-17.26.08 A540769 ---
with a as
(
select (CLASS3_SYNC_IO+CLASS3_DB_IO+CLASS3_LOG_WRT_IO
+CLASS3_OTHER_READ + OTHER_WRITE_SUSP) / CLASS1_ELAPSED
* min(1800, CLASS1_ELAPSED) io30,
CLASS3_SYNC_IO+CLASS3_DB_IO+CLASS3_LOG_WRT_IO
+CLASS3_OTHER_READ + OTHER_WRITE_SUSP ioTo, t.*
from rz2xx.tacct_general t
where timestamp between '2010-07-10-23.10.00'
and '2010-07-11-05.00.00'
and timestamp -class1_elapsed seconds
between '2010-07-10-22.55.00'
and '2010-07-10-23.25.00'
)
select plan_name, sum(io30), sum(ioTo), count(*),
min(timestamp), max(timestamp)
from a
group by plan_name
having sum(io30) > 10
order by 2 desc
;
;x;
select (CLASS3_SYNC_IO+CLASS3_DB_IO+CLASS3_LOG_WRT_IO
+CLASS3_OTHER_READ + OTHER_WRITE_SUSP) / CLASS1_ELAPSED
* min(1800, CLASS1_ELAPSED),
CLASS3_SYNC_IO+CLASS3_DB_IO+CLASS3_LOG_WRT_IO
+CLASS3_OTHER_READ + OTHER_WRITE_SUSP, t.*
from rz2xx.tacct_general t
where timestamp between '2010-07-10-23.00.00'
and '2010-07-11-00.59.00'
order by 1 desc
;
set current path oa1p;
set current schema = A540769;
with g as
(
select date(timestamp) g1,
case when timestamp between '1919-05-19-11.00.00'
and '1919-05-19-12.30.00' then 'o'
else ' ' end g2,
g.*
from TACCT_GENERAL g
)
select min(timestamp - class1_elapsed seconds) "von",
time(max(timestamp)) "bis",
fosFmte7(sum(class1_elapsed)) "ela sec",
fosFmte7(sum(occurrences)) occ,
oa1p.fosFmtE7(sum(select)) sel,
oa1p.fosFmtE7(sum(insert)) ins,
oa1p.fosFmtE7(sum(update)) upd,
oa1p.fosFmtE7(sum(delete)) del,
oa1p.fosFmtE7(sum(commit)) com,
oa1p.fosFmtE7(sum(class2_elapsed)/sum(insert+update)) "ela/i+u" ,
fosFmte7(sum(class2_cpu_total) / sum(insert+update)) "cpu/i+u",
fosFmte7(sum(CLASS3_LOCK_LATCH)/sum(insert+update)) "LocLat/i+u",
fosFmte7(sum(CLASS3_SYNC_IO)/sum(insert+update)) "syncIO/i+u",
count(distinct subsystem_id) "#ssid", plan_name, id,
fosFmte7(sum(CLASS3_LOG_WRT_IO) /sum(insert+update)) "logWa/iu",
fosFmte7(sum(real(Log_RECS_WRITTEN ))
/sum(insert+update)) "logRe/iu",
fosFmte7(sum(fosRealK(BYTES_PER_LOG_REC))
/sum(insert+update)) "logBy/i+u"
-- min(SUBSYSTEM_ID), max(SUBSYSTEM_ID)
from g
where -- timestamp > current timestamp - 9992 month
rz = 'RZ1' and id like 'ni250%'
-- and connect_ID like 'NI229%'
-- and plan_name in ( 'NI5310', 'NI5340')
-- and insert >= 1
group by g1, g2, id, plan_name
-- having sum(insert+update) > 0
order by id, 1 desc
with ur
;
with g as
(
select date(timestamp) g1,
case when timestamp between '1919-05-19-11.00.00'
and '1919-05-19-12.30.00' then 'o'
else ' ' end g2,
g.*
from TACCT_GENERAL g
)
select min(timestamp - class1_elapsed seconds) "von",
time(max(timestamp)) "bis",
fosFmte7(sum(class1_elapsed)) "ela sec",
fosFmte7(sum(occurrences)) occ,
oa1p.fosFmtE7(sum(select)) sel,
oa1p.fosFmtE7(sum(insert)) ins,
oa1p.fosFmtE7(sum(update)) upd,
oa1p.fosFmtE7(sum(delete)) del,
oa1p.fosFmtE7(sum(commit)) com,
oa1p.fosFmtE7(sum(class2_elapsed)) "c2ela" ,
fosFmte7(sum(class2_cpu_total) ) "c2cpu",
fosFmte7(sum(CLASS3_LOCK_LATCH)) "LocLat",
fosFmte7(sum(CLASS3_SYNC_IO)) "syncIO",
count(distinct subsystem_id) "#ssid", plan_name, id,
fosFmte7(sum(CLASS3_LOG_WRT_IO) ) "logWa",
fosFmte7(sum(real(Log_RECS_WRITTEN ))) "logRecs",
fosFmte7(sum(fosRealK(BYTES_PER_LOG_REC))) "logByte"
-- min(SUBSYSTEM_ID), max(SUBSYSTEM_ID)
from g
where -- timestamp > current timestamp - 9992 month
rz = 'RZ1' and id like 'ni250Loa%'
-- and connect_ID like 'NI229%'
-- and plan_name in ( 'NI5310', 'NI5340')
-- and insert >= 1
group by g1, g2, id, plan_name
-- having sum(insert+update) > 0
order by id, 1 desc
with ur
;
X;
with g as
(
select date(timestamp) g1,
case when timestamp between '2019-05-19-11.00.00'
and '2019-05-19-12.30.00'
or timestamp between '2019-05-19-13.00.00'
and '2019-05-19-13.30.00' then 'a'
when timestamp between '2019-05-19-16.00.00'
and '2019-05-19-23.00.00' then 'b'
when timestamp between '2019-04-14-21.50.00'
and '2019-04-14-23.20.00' then 'c'
else ' ' end g2,
g.*
from TACCT_GENERAL g
where not timestamp between '2010-05-19-12.30.00'
and '2010-05-19-13.00.00'
)
select min(timestamp - class1_elapsed seconds) "von",
time(max(timestamp)) "bis",
fosFmte7(sum(class1_elapsed)) "ela sec",
fosFmte7(sum(occurrences)) occ,
oa1p.fosFmtE7(sum(select)) sel,
oa1p.fosFmtE7(sum(insert)) ins,
oa1p.fosFmtE7(sum(update)) upd,
oa1p.fosFmtE7(sum(delete)) del,
oa1p.fosFmtE7(sum(commit)) com,
oa1p.fosFmtE7(sum(class2_elapsed)/sum(insert+update)) "ela/i+u" ,
fosFmte7(sum(class2_cpu_total) / sum(insert+update)) "cpu/i+u",
fosFmte7(sum(CLASS3_LOCK_LATCH)/sum(insert+update)) "LocLat/i+u",
fosFmte7(sum(CLASS3_SYNC_IO)/sum(insert+update)) "syncIo/i+u",
count(distinct subsystem_id) "#ssid", plan_name,
min(SUBSYSTEM_ID), max(SUBSYSTEM_ID)
from g
where timestamp > current timestamp - 9992 month
and rz = 'RR2' and id like 'ni250%'
-- and connect_ID like 'NI229%'
and plan_name in ( 'NI5310', 'NI5340')
-- and insert >= 1
group by id
having sum(insert+update) > 0
order by plan_Name, 1 desc
with ur
;
;x;
xet current path oa1p;
set current schema = RZ2DD;
select date(timestamp),
fosFmte7(sum(occurrences)) occ,
oa1p.fosFmtE7(sum(select)) sel,
oa1p.fosFmtE7(sum(insert)) ins,
oa1p.fosFmtE7(sum(update)) upd,
oa1p.fosFmtE7(sum(delete)) del,
oa1p.fosFmtE7(sum(class2_elapsed)/sum(insert+update)) "ela/i+u" ,
fosFmte7(sum(class2_cpu_total) / sum(insert+update)) "cpu/i+u",
fosFmte7(sum(CLASS3_LOCK_LATCH)/sum(insert+update)) "LocLat/i+u",
fosFmte7(sum(CLASS3_SYNC_IO)/sum(insert+update)) "syncIo/i+u"
from RZ2dd.TACCT_GENERAL g
where timestamp > current timestamp - 1 month
-- and connect_ID like 'NI229%'
and plan_name = 'NI5340'
-- and insert >= 1
group by timestamp
ORDER BY Timestamp desc
with ur
;
X
select plan_name,
fosFmte7(sum(occurrences)) occ,
oa1p.fosFmtE7(sum(select)) sel,
oa1p.fosFmtE7(sum(insert)) ins,
oa1p.fosFmtE7(sum(update)) upd,
oa1p.fosFmtE7(sum(delete)) del,
min(timestamp), max(timestamp)
from TACCT_GENERAL g
where timestamp > '2010-03-21-00.30.00.000'
and timestamp < '2010-03-21-02.30.00.000'
-- and connect_ID like 'NI229%'
-- and plan_name = 'NI5340'
-- and insert >= 1
group by plan_name
order by sum(select+insert+update+delete) desc
with ur
;
X
select sum(select) sel , sum(insert) ins, sum(update) upd,
sum(class2_elapsed) / sum(insert) "ela/ins" ,
sum(class2_cpu_total) / sum(insert) "cpu/ins",
sum(LOCK_LATCH_SUSP),
sum(CLASS3_LOCK_LATCH)/sum(insert) "LocLat/ins",
sum(SYNC_IO_SUSP),
sum(CLASS3_SYNC_IO)/sum(insert) "syncIo/ins",
sum(occurrences) occ,
timestamp
from RZ2hh.TACCT_GENERAL g
where timestamp > current timestamp - 2 DAY
-- and connect_ID like 'NI229%'
and plan_name = 'NI5340'
-- and insert >= 1
ORDER BY Timestamp desc
with ur
;
X
select subsystem_id, count(*), min(timestamp), max(timestamp)
from RR2HH.TACCT_GENERAL g
-- where corrName like 'NI%'
group by subsystem_id
order by subsystem_id
with ur
;
xelect class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RR2HH.TACCT_GENERAL g
where -- timestamp > current timestamp - 120 DAY
corrname like 'NI229%'
-- or corrname like 'NI22922%'
-- and plan_name like 'DSNUT%'
-- and insert >= 1
ORDER BY CLASS1_ELAPSED desc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
}¢--- A540769.WK.SQL(PDBGENKC) cre=2011-08-31 mod=2011-08-31-06.39.52 A540769 ---
select *
from RZ2XX.TACCT_GENERAL g
where plan_name in ('KC5400', 'N00000')
and timestamp > '2011-08-27-00.00.00'
order by timestamp desc
with ur
;x;
select class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
-- and connect_id like 'MFT5614P%'
and connect_id like 'TNT780%'
and plan_name in ('TN7080')
-- and insert >= 1
ORDER BY timestamp desc
--ORDER BY CLASS1_ELAPSED desc
with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 9 DAY
and plan_name = 'RB5000'
and insert >= 1
ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
from RZ2XX.TACCT_GENERAL g
with ur
;
}¢--- A540769.WK.SQL(PDBGENKS) cre=2013-01-31 mod=2013-01-31-18.45.43 A540769 ---
select *
from rz2dd.tacct_general
where corrname like 'CKS6007%'
and timestamp > current timestamp - 40 days
}¢--- A540769.WK.SQL(PDBGENMF) cre=2010-04-20 mod=2011-11-15-12.16.45 A540769 ---
set current path oa1p;
select *
from rz2XX.TACCT_GENERAL g
where --timestamp > current timestamp - 3 day
plan_Name = 'MF7270'
order by timestamp desc
fetch first 100 rows only
;;;
with g as
(
select date(timestamp) g1,
case when timestamp between '2000-05-19-11.00.00'
and '2000-05-19-12.30.00' then 'x'
else ' ' end g2,
g.*
from TACCT_GENERAL g
where not timestamp between '2010-05-19-12.30.00'
and '2010-05-19-13.00.00'
)
select min(timestamp - class1_elapsed seconds) "von",
time(max(timestamp)) "bis",
fosFmte7(sum(occurrences)) occ,
fosFmte7(sum(class1_elapsed)) "ela sec",
fosFmte7(sum(class1_cpu_total)) "tot cpu",
fosFmte7(sum(class2_cpu_total)) "db2 cpu",
fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
fosFmte7(sum(CLASS3_GLOBAL_CONT)) "gloCon",
oa1p.fosFmtE7(sum(select)) "select",
oa1p.fosFmtE7(sum(open)) "open",
oa1p.fosFmtE7(sum(fetch)) "fetch",
oa1p.fosFmtE7(sum(commit)) "commit",
oa1p.fosFmtE7(sum(insert)) "insert",
oa1p.fosFmtE7(sum(update)) "update",
oa1p.fosFmtE7(sum(delete)) "delete",
oa1p.fosFmtE7(sum(class2_elapsed)/sum(insert+update)) "ela/i+u" ,
fosFmte7(sum(class2_cpu_total) / sum(insert+update)) "cpu/i+u",
fosFmte7(sum(CLASS3_LOCK_LATCH)/sum(insert+update)) "LocLat/i+u",
fosFmte7(sum(CLASS3_SYNC_IO)/sum(insert+update)) "syncIo/i+u",
count(distinct subsystem_id) "#ssid",
plan_name,
min(connect_id) || '-' || max(connect_id) "connectionId"
from g
where timestamp > current timestamp - 666 days
-- and connect_ID like 'NI229%'
and plan_name in ( 'MF8500', 'MF7230', 'MF7310')
and (plan_name <> 'MF8500' or connect_id like 'MFT56%')
-- and insert >= 1
group by g1, g2, plan_name, left(connect_Id, 5)
having sum(insert+update) > 0
order by plan_Name, 1 desc
with ur
;
X;
select *
from rz2dd.TACCT_GENERAL g
where timestamp > current timestamp - 2 day
and plan_Name like 'MF%'
order by timestamp desc
fetch first 100 rows only
;;;
set current schema = RZ2MM;
select dayofWeek(timestamp), class1_elapsed, class2_elapsed,
fosFmte7(occurrences) occ,
fosFmtE7( (select)) sel,
fosFmtE7( (insert)) ins,
update upd,
g.*
from TACCT_GENERAL g
where plan_name = 'MF7800'
and timestamp between '2010-12-19-00.00.00'
and '2010-12-20-00.00.00'
order by timestamp desc
with ur
; x
select *
from TACCT_GENERAL g
where timestamp > current timestamp - 3 days
and ( corrName like 'MFT15%'
or corrName like 'MFT18%'
or corrName like 'MFT56%'
or connect_id like 'MFT56%'
or corrName = 'MFT3100P'
)
order by timestamp desc
with ur
;
x;
set current path oa1p;
set current schema = RR2HH;
select *
from TACCT_GENERAL g
where timestamp > current timestamp - 5 days
and corrName = 'YMFNVLOH'
order by timestamp desc
with ur
;
x;
select timestamp - class1_elapsed seconds "von",
timestamp "bis",
g.*
from TACCT_GENERAL g
where -- timestamp > current timestamp - 2 days
(corrName like 'A895326%' or corrName like 'MF%')
-- and connect_ID like 'NI229%'
and plan_name like 'MF%'
and subsystem_id like 'DZF%'
-- and insert >= 1
order by timestamp desc
with ur
;x;
select subsystem_id, count(*), min(timestamp), max(timestamp)
from TACCT_GENERAL g
where timestamp >= '2010-07-27-00.00.00'
group by subsystem_id
;x;
select min(timestamp), max(timestamp)
from TACCT_GENERAL g
;x;
xet current path oa1p;
set current schema = RZ2DD;
select date(timestamp),
fosFmte7(sum(occurrences)) occ,
oa1p.fosFmtE7(sum(select)) sel,
oa1p.fosFmtE7(sum(insert)) ins,
oa1p.fosFmtE7(sum(update)) upd,
oa1p.fosFmtE7(sum(delete)) del,
oa1p.fosFmtE7(sum(class2_elapsed)/sum(insert+update)) "ela/i+u" ,
fosFmte7(sum(class2_cpu_total) / sum(insert+update)) "cpu/i+u",
fosFmte7(sum(CLASS3_LOCK_LATCH)/sum(insert+update)) "LocLat/i+u",
fosFmte7(sum(CLASS3_SYNC_IO)/sum(insert+update)) "syncIo/i+u"
from RZ2dd.TACCT_GENERAL g
where timestamp > current timestamp - 1 month
-- and connect_ID like 'NI229%'
and plan_name = 'NI5340'
-- and insert >= 1
group by timestamp
ORDER BY Timestamp desc
with ur
;
X
select plan_name,
fosFmte7(sum(occurrences)) occ,
oa1p.fosFmtE7(sum(select)) sel,
oa1p.fosFmtE7(sum(insert)) ins,
oa1p.fosFmtE7(sum(update)) upd,
oa1p.fosFmtE7(sum(delete)) del,
min(timestamp), max(timestamp)
from TACCT_GENERAL g
where timestamp > '2010-03-21-00.30.00.000'
and timestamp < '2010-03-21-02.30.00.000'
-- and connect_ID like 'NI229%'
-- and plan_name = 'NI5340'
-- and insert >= 1
group by plan_name
order by sum(select+insert+update+delete) desc
with ur
;
X
select sum(select) sel , sum(insert) ins, sum(update) upd,
sum(class2_elapsed) / sum(insert) "ela/ins" ,
sum(class2_cpu_total) / sum(insert) "cpu/ins",
sum(LOCK_LATCH_SUSP),
sum(CLASS3_LOCK_LATCH)/sum(insert) "LocLat/ins",
sum(SYNC_IO_SUSP),
sum(CLASS3_SYNC_IO)/sum(insert) "syncIo/ins",
sum(occurrences) occ,
timestamp
from RZ2hh.TACCT_GENERAL g
where timestamp > current timestamp - 2 DAY
-- and connect_ID like 'NI229%'
and plan_name = 'NI5340'
-- and insert >= 1
ORDER BY Timestamp desc
with ur
;
X
select subsystem_id, count(*), min(timestamp), max(timestamp)
from RR2HH.TACCT_GENERAL g
-- where corrName like 'NI%'
group by subsystem_id
order by subsystem_id
with ur
;
xelect class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RR2HH.TACCT_GENERAL g
where -- timestamp > current timestamp - 120 DAY
corrname like 'NI229%'
-- or corrname like 'NI22922%'
-- and plan_name like 'DSNUT%'
-- and insert >= 1
ORDER BY CLASS1_ELAPSED desc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
}¢--- A540769.WK.SQL(PDBGENMI) cre=2011-01-25 mod=2011-01-25-11.31.17 A540769 ---
set current path oa1p;
select
fosFmtE7(sum(occurrences)) occ,
fosFmtE7(sum(rollback)) roll,
fosFmtE7(sum(commit)) comm,
fosFmtE7(sum(select)) sel,
fosFmtE7(sum(open)) open,
fosFmtE7(sum(fetch)) fetch,
fosFmtE7(sum(insert)) insert,
fosFmtE7(sum(update)) update,
fosFmtE7(sum(delete)) delete,
count(distinct date(timestamp)) dates
from RZ2DD.TACCT_GENERAL g
where plan_name = 'MI5000'
and timestamp > current timestamp - 3 month
-- order by rollback desc, timestamp desc
;x;
select class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
-- and connect_id like 'MFT5614P%'
and connect_id like 'TNT780%'
and plan_name in ('TN7080')
-- and insert >= 1
ORDER BY timestamp desc
--ORDER BY CLASS1_ELAPSED desc
with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 9 DAY
and plan_name = 'RB5000'
and insert >= 1
ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
from RZ2XX.TACCT_GENERAL g
with ur
;
}¢--- A540769.WK.SQL(PDBGENNI) cre=2010-02-12 mod=2011-11-07-10.48.15 A540769 ---
select *
from RZ2MM.tacct_general
where plan_name = 'NI5730'
and ( timestamp between '2011-11-01-04.57.00'
and '2011-11-01-04.59.00'
or timestamp between '2011-10-08-03.04.00'
and '2011-10-08-03.04.00'
)
order by timestamp desc
;
select *
from RZ2MM.tacct_program
where plan_name = 'NI5730'
and pck_id = 'YAVX009'
and ( timestamp between '2011-11-01-04.57.00'
and '2011-11-01-04.59.00'
or timestamp between '2011-10-08-03.04.00'
and '2011-10-08-03.04.00'
)
order by timestamp desc
;;
select *
from RZ2MM.tacct_general
where plan_name = 'NI8610'
and timestamp between '2011-09-17-00.00.00'
and '2011-09-18-00.00.00'
order by timestamp desc
fetch first 200 rows only
;;
set current path oa1p;
set current schema = A540769;
set current path oa1p;
set current schema = A540769;
select id, rz, insDate "insDateRZ1",
min(timestamp - class1_elapsed seconds) "von",
time(max(timestamp)) "bis",
smallint(timestampDiff(4, char(max(timestamp)
- min(timestamp - class1_elapsed seconds)))) "minuten",
smallInt(sum(occurrences)) occ,
oa1p.fosFmtE7(sum(class1_elapsed)) "c1Ela" ,
fosFmte7(sum(class1_cpu_total)) "c1Cpu",
oa1p.fosFmtE7(sum(class2_elapsed)) "c2Ela" ,
fosFmte7(sum(class2_cpu_total)) "c2Cpu",
fosFmte7(sum(CLASS3_LOCK_LATCH)) "c3LocLat",
fosFmte7(sum(CLASS3_GLOBAL_CONT)) "c3GloCon",
fosFmte7(sum(CLASS3_SYNC_IO)) "c3SyncIO",
fosFmte7(sum(CLASS3_LOG_WRT_IO)) "c3LogWr",
fosFmte7(sum(real(Log_RECS_WRITTEN ))) "logRecs",
fosFmte7(sum(fosRealK(BYTES_PER_LOG_REC))) "logByte",
smallInt(count(distinct subsystem_id)) "#ssid",
oa1p.fosFmtE7(sum(commit)) com,
oa1p.fosFmtE7(sum(select)) sel,
oa1p.fosFmtE7(sum(insert)) ins,
oa1p.fosFmtE7(sum(update)) upd,
oa1p.fosFmtE7(sum(delete)) del,
sum(ARCH_LOG_SUSP) "arch_log_sus" ,
sum(ARCH_READS_SUSP) "arch_reads_s" ,
sum(ASYNCH_IXL_REQU) "asynch_ixl_r" ,
min(BYTES_PER_LOG_REC) "bytes_per_lo<" ,
sum(CACHE_LIMIT_EXCEED) "cache_limit_" ,
sum(CHANGE_REQ) "change_req" ,
sum(CLAIM_FAILED) "claim_failed" ,
sum(CLAIM_REL_SUSP) "claim_rel_su" ,
sum(CLAIM_REQ) "claim_req" ,
fosFmtE7(sum(CLASS1_CPU_TOTAL)) "c1_cpu_total" ,
fosFmtE7(sum(CLASS1_ELAPSED)) "c1_elapsed" ,
fosFmtE7(sum(CLASS1_IIP_CPU)) "c1_iip_cpu" ,
fosFmtE7(sum(CLASS1_SU_CPU)) "c1_su_cpu" ,
fosFmtE7(sum(CLASS1_SU_IIP_CPU)) "c1_su_iip_cp" ,
min(CLASS2) "c2<" ,
fosFmtE7(sum(CLASS2_CPU_TOTAL)) "c2_cpu_total" ,
fosFmtE7(sum(CLASS2_ELAPSED)) "c2_elapsed" ,
fosFmtE7(sum(CLASS2_IIP_CPU)) "c2_iip_cpu" ,
fosFmtE7(sum(CLASS2_SU_CPU)) "c2_su_cpu" ,
fosFmtE7(sum(CLASS2_SU_IIP_CPU)) "c2_su_iip_cp" ,
min(CLASS3) "c3<" ,
fosFmtE7(sum(CLASS3_ARCH_LOG)) "c3_arch_log" ,
fosFmtE7(sum(CLASS3_ARCH_READS)) "c3_arch_read" ,
fosFmtE7(sum(CLASS3_ASYNCH_IXL)) "c3_asynch_ix" ,
fosFmtE7(sum(CLASS3_CLAIM_REL)) "c3_claim_rel" ,
fosFmtE7(sum(CLASS3_DB_IO)) "c3_db_io" ,
fosFmtE7(sum(CLASS3_DRAIN_LOCK)) "c3_drain_loc" ,
fosFmtE7(sum(CLASS3_EXT_DEL_DEF)) "c3_ext_del_d" ,
fosFmtE7(sum(CLASS3_FORCE_AT_C)) "c3_force_at_" ,
fosFmtE7(sum(CLASS3_GLOBAL_CONT)) "c3_global_co" ,
fosFmtE7(sum(CLASS3_LLOCK_CHILD)) "c3_llock_chi" ,
fosFmtE7(sum(CLASS3_LLOCK_OTHER)) "c3_llock_oth" ,
fosFmtE7(sum(CLASS3_LLOCK_PARNT)) "c3_llock_par" ,
fosFmtE7(sum(CLASS3_LOCK_LATCH)) "c3_lock_latc" ,
fosFmtE7(sum(CLASS3_LOG_WRT_IO)) "c3_log_wrt_i" ,
fosFmtE7(sum(CLASS3_NOTIFY_MSG)) "c3_notify_ms" ,
fosFmtE7(sum(CLASS3_OPEN_CLOSE)) "c3_open_clos" ,
fosFmtE7(sum(CLASS3_OTHER_READ)) "c3_other_rea" ,
fosFmtE7(sum(CLASS3_OTHER_SERV)) "c3_other_ser" ,
fosFmtE7(sum(CLASS3_OTHER_WRITE)) "c3_other_wri" ,
fosFmtE7(sum(CLASS3_PAGE_LATCH)) "c3_page_latc" ,
fosFmtE7(sum(CLASS3_PLOCK_OTHER)) "c3_plock_oth" ,
fosFmtE7(sum(CLASS3_PLOCK_PAGE)) "c3_plock_pag" ,
fosFmtE7(sum(CLASS3_PLOCK_PSET)) "c3_plock_pse" ,
fosFmtE7(sum(CLASS3_SCHEDUL_UDF)) "c3_schedul_u" ,
fosFmtE7(sum(CLASS3_SCHED_STPRC)) "c3_sched_stp" ,
fosFmtE7(sum(CLASS3_SERV_TASK)) "c3_serv_task" ,
fosFmtE7(sum(CLASS3_SYNC_IO)) "c3_sync_io" ,
fosFmtE7(sum(CLASS3_SYSLOGR_REC)) "c3_syslogr_r" ,
fosFmtE7(sum(CLASS3_UPD_COMMIT)) "c3_upd_commi" ,
fosFmtE7(sum(CLASS5_DESCRIBE)) "c5_describe" ,
fosFmtE7(sum(CLASS5_ELAPSED)) "c5_elapsed" ,
fosFmtE7(sum(CLASS5_LOG_EXTRACT)) "c5_log_extra" ,
fosFmtE7(sum(CLASS5_TCB)) "c5_tcb" ,
sum(CLOSE) "close" ,
sum(COMMIT) "commit" ,
min(CONNECT_ID) "connect_id<" ,
min(CONNECT_TYPE) "connect_type<" ,
min(CORRNAME) "corrname<" ,
min(CORRNUMBER) "corrnumber<" ,
sum(DATA_ROWS_RETURNED) "data_rows_re" ,
sum(DB_IO_SUSP) "db_io_susp" ,
sum(DEADLOCK) "deadlock" ,
sum(DELETE) "delete" ,
sum(DESCRIBE) "describe" ,
sum(DESCRIBES_PERFORM) "describes_pe" ,
sum(DESCRIBE_TABLE) "describe_tab" ,
sum(DESCRIPT_RETURNED) "descript_ret" ,
sum(DIRECT_ACCESS) "direct_acces" ,
sum(DRAIN_FAILED) "drain_failed" ,
sum(DRAIN_LOCK_SUSP) "drain_lock_s" ,
sum(DRAIN_REQ) "drain_req" ,
sum(EXT_DEL_DEF_SUSP) "ext_del_def_" ,
sum(FETCH) "fetch" ,
sum(FORCE_AT_COMMIT) "force_at_com" ,
sum(GLOBAL_CONT_SUSP) "global_cont_" ,
min(GROUP_NAME) "group_name<" ,
sum(HIGHEST_USED_CPU) "highest_used" ,
min(ID) "id<" ,
sum(IFI_CALLS) "ifi_calls" ,
sum(IIPCP_ELIGIBLE) "iipcp_eligib" ,
sum(IMPLICIT_PREPARES) "implicit_pre" ,
sum(INCOMPAT_RET_LOCK) "incompat_ret" ,
sum(INCREMENTAL_BIND) "incremental_" ,
sum(INDEX_USED) "index_used" ,
min(INSDATE) "insdate<" ,
sum(INSERT) "insert" ,
sum(LIMIT_IN_CPU) "limit_in_cpu" ,
sum(LIMIT_IN_SU) "limit_in_su" ,
sum(LLOCK_CHILD_SUSP) "llock_child_" ,
sum(LLOCK_OTHER_SUSP) "llock_other_" ,
sum(LLOCK_PARENT_SUSP) "llock_parent" ,
sum(LOCK_ESC_EXCLUSIVE) "lock_esc_exc" ,
sum(LOCK_ESC_SHARED) "lock_esc_sha" ,
sum(LOCK_LATCH_SUSP) "lock_latch_s" ,
sum(LOCK_REQ) "lock_req" ,
sum(LOCK_TABLE) "lock_table" ,
sum(LOG_READS_PERFORM) "log_reads_pe" ,
sum(LOG_RECS_CAPTURED) "log_recs_cap" ,
sum(LOG_RECS_RETURNED) "log_recs_ret" ,
sum(LOG_RECS_WRITTEN) "log_recs_wri" ,
sum(LOG_WRT_IO_SUSP) "log_wrt_io_s" ,
sum(LUW_SEQNO) "luw_seqno" ,
sum(MAX_LOCKS_HELD) "max_locks_he" ,
sum(MAX_SQL_CASCAD_LVL) "max_sql_casc" ,
sum(MAX_STOR_LOB_VALUE) "max_stor_lob" ,
sum(NOTIFY_MSG_SENT) "notify_msg_s" ,
sum(NOTIFY_MSG_SUSP) "notify_msg_s" ,
sum(OCCURRENCES) "occurrences" ,
sum(OPEN) "open" ,
sum(OPEN_CLOSE_SUSP) "open_close_s" ,
sum(OTHER_READ_SUSP) "other_read_s" ,
sum(OTHER_REQ) "other_req" ,
sum(OTHER_SERV_SUSP) "other_serv_s" ,
sum(OTHER_WRITE_SUSP) "other_write_" ,
sum(PAGE_LATCH_SUSP) "page_latch_s" ,
sum(PARTSPLIT) "partsplit" ,
min(PLAN_NAME) "plan_name<" ,
sum(PLOCK_OTHER_SUSP) "plock_other_" ,
sum(PLOCK_PAGE_SUSP) "plock_page_s" ,
sum(PLOCK_PSET_SUSP) "plock_pset_s" ,
sum(PREPARE) "prepare" ,
sum(PREP_FROM_CACHE) "prep_from_ca" ,
sum(PREP_STMT_MATCH) "prep_stmt_ma" ,
sum(PREP_STMT_NO_MATCH) "prep_stmt_no" ,
sum(PREP_STMT_PURGED) "prep_stmt_pu" ,
sum(PROGRAMS) "programs" ,
sum(P_LOCK_CHANGE) "p_lock_chang" ,
sum(P_LOCK_LOCK) "p_lock_lock" ,
sum(P_LOCK_UNLOCK) "p_lock_unloc" ,
sum(QUERY_REQ) "query_req" ,
sum(REOPTIMIZATION) "reoptimizati" ,
sum(RID_POOL_FAIL_MXLT) "rid_pool_fai" ,
sum(RID_POOL_FAIL_NOSG) "rid_pool_fai" ,
sum(RID_POOL_USED) "rid_pool_use" ,
min(RLF_TABLE) "rlf_table<" ,
sum(RLF_TYPE) "rlf_type" ,
sum(ROLLBACK) "rollback" ,
sum(ROW_TRIGGER) "row_trigger" ,
min(RZ) "rz<" ,
sum(SCHEDUL_UDF_SUSP) "schedul_udf_" ,
sum(SCHED_STPRC_SUSP) "sched_stprc_" ,
sum(SELECT) "select" ,
sum(SERV_TASK_SUSP) "serv_task_su" ,
sum(SET_CURRENT_PREC) "set_current_" ,
sum(STATEMENT_TRIGGER) "statement_tr" ,
sum(STPROC_ABEND) "stproc_abend" ,
sum(STPROC_CALL) "stproc_call" ,
sum(STPROC_REJECTED) "stproc_rejec" ,
sum(STPROC_TIMEOUT) "stproc_timeo" ,
min(SUBSYSTEM_ID) "subsystem_id<" ,
sum(SUSPEND_FALSE_CONT) "suspend_fals" ,
sum(SUSPEND_IRLM_CONT) "suspend_irlm" ,
sum(SUSPEND_IRLM_LATCH) "suspend_irlm" ,
sum(SUSPEND_LOCK) "suspend_lock" ,
sum(SUSPEND_OTHER) "suspend_othe" ,
sum(SUSPEND_XES_CONT) "suspend_xes_" ,
sum(SU_IIPCP_ELIGIBLE) "su_iipcp_eli" ,
sum(SVPT_RELEASE) "svpt_release" ,
sum(SVPT_REQUESTS) "svpt_request" ,
sum(SVPT_ROLLBACK) "svpt_rollbac" ,
sum(SYNC_IO_SUSP) "sync_io_susp" ,
sum(SYNC_XES_CHANGE) "sync_xes_cha" ,
sum(SYNC_XES_LOCK) "sync_xes_loc" ,
sum(SYNC_XES_UNLOCK) "sync_xes_unl" ,
sum(SYSLOGR_REC_SUSP) "syslogr_rec_" ,
sum(TABLES_RETURNED) "tables_retur" ,
sum(TIMEOUT) "timeout" ,
min(TIMESTAMP) "timestamp<" ,
sum(TRIGGER_SQL_ERROR) "trigger_sql_" ,
sum(TS_SCAN_USED) "ts_scan_used" ,
sum(UDF_ABENDS) "udf_abends" ,
sum(UDF_EXECUTED) "udf_executed" ,
sum(UDF_REJECTED) "udf_rejected" ,
sum(UDF_TIMEOUTS) "udf_timeouts" ,
sum(UNLOCK_REQ) "unlock_req" ,
sum(UPDATE) "update" ,
sum(UPD_COMMIT_SUSP) "upd_commit_s"
from tacct_general
where timestamp > '2011-03-01-00.00.00'
and rz in ('RR2', 'RZ2') and id like 'ni%'
group by id, rz, insDate, date(timestamp)
order by id, rz, insDate desc, date(timestamp) desc
with ur
;;;
select id, rz, insDate "insDateRZ1",
min(timestamp - class1_elapsed seconds) "von",
time(max(timestamp)) "bis",
smallint(timestampDiff(4, char(max(timestamp)
- min(timestamp - class1_elapsed seconds)))) "minuten",
smallInt(sum(occurrences)) occ,
oa1p.fosFmtE7(sum(class1_elapsed)) "c1Ela" ,
fosFmte7(sum(class1_cpu_total)) "c1Cpu",
oa1p.fosFmtE7(sum(class2_elapsed)) "c2Ela" ,
fosFmte7(sum(class2_cpu_total)) "c2Cpu",
fosFmte7(sum(CLASS3_LOCK_LATCH)) "c3LocLat",
fosFmte7(sum(CLASS3_GLOBAL_CONT)) "c3GloCon",
fosFmte7(sum(CLASS3_SYNC_IO)) "c3SyncIO",
fosFmte7(sum(CLASS3_LOG_WRT_IO)) "c3LogWr",
fosFmte7(sum(real(Log_RECS_WRITTEN ))) "logRecs",
fosFmte7(sum(fosRealK(BYTES_PER_LOG_REC))) "logByte",
smallInt(count(distinct subsystem_id)) "#ssid",
oa1p.fosFmtE7(sum(commit)) com,
oa1p.fosFmtE7(sum(select)) sel,
oa1p.fosFmtE7(sum(insert)) ins,
oa1p.fosFmtE7(sum(update)) upd,
oa1p.fosFmtE7(sum(delete)) del
from tacct_general
where timestamp > '2011-03-01-00.00.00'
and rz in ('RR2', 'RZ2') and id like 'ni%'
group by id, rz, insDate, date(timestamp)
order by id, rz, insDate desc, date(timestamp) desc
with ur
;;;
select *
from A540769.tacct_general
where id like 'ni%'
order by timestamp desc
fetch first 200 rows only
;;
select count(*), id, rz, date(timestamp), min(timestamp),
max(timestamp + class1_elapsed seconds)
from A540769.tacct_general
group by id, rz, date(timestamp)
order by 5 desc
;;
select count(*), id, rz
from A540769.tacct_general
group by id, rz
;;
set current path oa1p;
set current schema = RZ2MM;
select dayofWeek(timestamp),
fosFmtE7( class1_elapsed) "c1Ela",
fosFmtE7( class2_elapsed) "c2Ela",
fosFmtE7( class2_Cpu_total) "c2Cpu",
fosFmtE7( select) sel,
fosFmtE7( open ) opn,
fosFmtE7( fetch ) opn,
fosFmtE7( insert) ins,
fosFmtE7( update) upd,
fosFmtE7( delete) del,
g.*
from TACCT_GENERAL g
where (corrName like '%NIT1615%')
and timestamp > current timestamp - 93 days
and class1_elapsed > 1000
order by 2 desc
; ;;
set current path oa1p;
set current schema = A540769;
with g as
(
select date(timestamp) g1,
case when timestamp between '1919-05-19-11.00.00'
and '1919-05-19-12.30.00' then 'o'
else ' ' end g2,
g.*
from TACCT_GENERAL g
)
select min(timestamp - class1_elapsed seconds) "von",
time(max(timestamp)) "bis",
smallint(timestampDiff(4, char(max(timestamp)
- min(timestamp - class1_elapsed seconds)))) "minuten",
fosFmte7(sum(class1_elapsed)) "ela sec",
fosFmte7(sum(occurrences)) occ,
oa1p.fosFmtE7(sum(class2_elapsed)) "c2Ela" ,
fosFmte7(sum(class2_cpu_total)) "c2Cpu",
fosFmte7(sum(CLASS3_LOCK_LATCH)) "c3LocLat",
fosFmte7(sum(CLASS3_SYNC_IO)) "c3SyncIO",
count(distinct subsystem_id) "#ssid",
fosFmte7(sum(CLASS3_LOG_WRT_IO)) "c3LogWa",
fosFmte7(sum(real(Log_RECS_WRITTEN ))) "logRecs",
fosFmte7(sum(fosRealK(BYTES_PER_LOG_REC))) "logByte",
oa1p.fosFmtE7(sum(commit)) com,
oa1p.fosFmtE7(sum(select)) sel,
oa1p.fosFmtE7(sum(insert)) ins,
oa1p.fosFmtE7(sum(update)) upd,
oa1p.fosFmtE7(sum(delete)) del,
plan_name, id, rz
-- min(SUBSYSTEM_ID), max(SUBSYSTEM_ID)
from g
where -- timestamp > current timestamp - 9992 month
rz = 'RZ2' and id like 'ni250Lo%'
-- and connect_ID like 'NI229%'
-- and plan_name in ( 'NI5310', 'NI5340')
-- and insert >= 1
group by g1, g2, id, rz, plan_name
-- having sum(insert+update) > 0
order by id, 1 desc
with ur
;x;
with g as
(
select date(timestamp) g1,
case when timestamp between '1919-05-19-11.00.00'
and '1919-05-19-12.30.00' then 'o'
else ' ' end g2,
g.*
from TACCT_GENERAL g
)
select * from g
where rz = 'RZ2' and id like 'ni250Lo%'
order by timestamp desc
with ur
;x;
with g as
(
select date(timestamp) g1,
case when timestamp between '1919-05-19-11.00.00'
and '1919-05-19-12.30.00' then 'o'
else ' ' end g2,
g.*
from TACCT_GENERAL g
)
select min(timestamp - class1_elapsed seconds) "von",
time(max(timestamp)) "bis",
fosFmte7(sum(class1_elapsed)) "ela sec",
fosFmte7(sum(occurrences)) occ,
oa1p.fosFmtE7(sum(select)) sel,
oa1p.fosFmtE7(sum(insert)) ins,
oa1p.fosFmtE7(sum(update)) upd,
oa1p.fosFmtE7(sum(delete)) del,
oa1p.fosFmtE7(sum(commit)) com,
oa1p.fosFmtE7(sum(class2_elapsed)/sum(insert+update)) "ela/i+u" ,
fosFmte7(sum(class2_cpu_total) / sum(insert+update)) "cpu/i+u",
fosFmte7(sum(CLASS3_LOCK_LATCH)/sum(insert+update)) "LocLat/i+u",
fosFmte7(sum(CLASS3_SYNC_IO)/sum(insert+update)) "syncIO/i+u",
-- fosFmte7(sum(CLASS3_DB_IO)) "c3dbIO",
count(distinct subsystem_id) "#ssid", plan_name, id,
fosFmte7(sum(CLASS3_LOG_WRT_IO) /sum(insert+update)) "logWa/iu",
-- fosFmte7(sum(CLASS3_LOG_WRT_IO) ) "c3logWa",
fosFmte7(sum(real(Log_RECS_WRITTEN ))
/sum(insert+update)) "logRe/iu",
fosFmte7(sum(fosRealK(BYTES_PER_LOG_REC))
/sum(insert+update)) "logBy/i+u"
-- min(SUBSYSTEM_ID), max(SUBSYSTEM_ID)
from g
where -- timestamp > current timestamp - 9992 month
rz = 'RZ2' and id like 'ni250%'
-- and connect_ID like 'NI229%'
-- and plan_name in ( 'NI5310', 'NI5340')
-- and insert >= 1
group by g1, g2, id, plan_name
-- having sum(insert+update) > 0
order by id, 1 desc
with ur
;x;
select * from TACCT_GENERAL g;
;x;
set current schema = RR2xx;
select * from tacct_general
where corrName like 'NIT16%'
order by timestamp desc
;;;
select count(*), date(timestamp)
from tacct_general
group by date(timestamp)
;;;
where -- corrName like 'NIT16%'
plan_name = 'DSNUTIL'
-- and timestamp > current timestamp
order by timestamp desc
;;;
select count(*), id, rz
from A540769.tacct_general
group by id, rz
;;
with g as
(
select date(timestamp) g1,
case when timestamp between '1919-05-19-11.00.00'
and '1919-05-19-12.30.00' then 'o'
else ' ' end g2,
g.*
from TACCT_GENERAL g
)
select min(timestamp - class1_elapsed seconds) "von",
time(max(timestamp)) "bis",
fosFmte7(sum(class1_elapsed)) "ela sec",
fosFmte7(sum(occurrences)) occ,
oa1p.fosFmtE7(sum(select)) sel,
oa1p.fosFmtE7(sum(insert)) ins,
oa1p.fosFmtE7(sum(update)) upd,
oa1p.fosFmtE7(sum(delete)) del,
oa1p.fosFmtE7(sum(commit)) com,
oa1p.fosFmtE7(sum(class2_elapsed)) "c2ela" ,
fosFmte7(sum(class2_cpu_total) ) "c2cpu",
fosFmte7(sum(CLASS3_LOCK_LATCH)) "LocLat",
fosFmte7(sum(CLASS3_SYNC_IO)) "syncIO",
count(distinct subsystem_id) "#ssid", plan_name, id, rz,
fosFmte7(sum(CLASS3_LOG_WRT_IO) ) "logWa",
fosFmte7(sum(real(Log_RECS_WRITTEN ))) "logRecs",
fosFmte7(sum(fosRealK(BYTES_PER_LOG_REC))) "logByte"
-- min(SUBSYSTEM_ID), max(SUBSYSTEM_ID)
from g
where -- timestamp > current timestamp - 9992 month
rz = 'RZ1' and id like 'ni250Loa%'
-- and connect_ID like 'NI229%'
-- and plan_name in ( 'NI5310', 'NI5340')
-- and insert >= 1
group by g1, g2, id, plan_name
-- having sum(insert+update) > 0
order by id, 1 desc
with ur
;
X;
with g as
(
select date(timestamp) g1,
case when timestamp between '2019-05-19-11.00.00'
and '2019-05-19-12.30.00'
or timestamp between '2019-05-19-13.00.00'
and '2019-05-19-13.30.00' then 'a'
when timestamp between '2019-05-19-16.00.00'
and '2019-05-19-23.00.00' then 'b'
when timestamp between '2019-04-14-21.50.00'
and '2019-04-14-23.20.00' then 'c'
else ' ' end g2,
g.*
from TACCT_GENERAL g
where not timestamp between '2010-05-19-12.30.00'
and '2010-05-19-13.00.00'
)
select min(timestamp - class1_elapsed seconds) "von",
time(max(timestamp)) "bis",
fosFmte7(sum(class1_elapsed)) "ela sec",
fosFmte7(sum(occurrences)) occ,
oa1p.fosFmtE7(sum(select)) sel,
oa1p.fosFmtE7(sum(insert)) ins,
oa1p.fosFmtE7(sum(update)) upd,
oa1p.fosFmtE7(sum(delete)) del,
oa1p.fosFmtE7(sum(commit)) com,
oa1p.fosFmtE7(sum(class2_elapsed)/sum(insert+update)) "ela/i+u" ,
fosFmte7(sum(class2_cpu_total) / sum(insert+update)) "cpu/i+u",
fosFmte7(sum(CLASS3_LOCK_LATCH)/sum(insert+update)) "LocLat/i+u",
fosFmte7(sum(CLASS3_SYNC_IO)/sum(insert+update)) "syncIo/i+u",
count(distinct subsystem_id) "#ssid", plan_name,
min(SUBSYSTEM_ID), max(SUBSYSTEM_ID)
from g
where timestamp > current timestamp - 9992 month
and rz = 'RR2' and id like 'ni250%'
-- and connect_ID like 'NI229%'
and plan_name in ( 'NI5310', 'NI5340')
-- and insert >= 1
group by id
having sum(insert+update) > 0
order by plan_Name, 1 desc
with ur
;
;x;
xet current path oa1p;
set current schema = RZ2DD;
select date(timestamp),
fosFmte7(sum(occurrences)) occ,
oa1p.fosFmtE7(sum(select)) sel,
oa1p.fosFmtE7(sum(insert)) ins,
oa1p.fosFmtE7(sum(update)) upd,
oa1p.fosFmtE7(sum(delete)) del,
oa1p.fosFmtE7(sum(class2_elapsed)/sum(insert+update)) "ela/i+u" ,
fosFmte7(sum(class2_cpu_total) / sum(insert+update)) "cpu/i+u",
fosFmte7(sum(CLASS3_LOCK_LATCH)/sum(insert+update)) "LocLat/i+u",
fosFmte7(sum(CLASS3_SYNC_IO)/sum(insert+update)) "syncIo/i+u"
from RZ2dd.TACCT_GENERAL g
where timestamp > current timestamp - 1 month
-- and connect_ID like 'NI229%'
and plan_name = 'NI5340'
-- and insert >= 1
group by timestamp
ORDER BY Timestamp desc
with ur
;
X
select plan_name,
fosFmte7(sum(occurrences)) occ,
oa1p.fosFmtE7(sum(select)) sel,
oa1p.fosFmtE7(sum(insert)) ins,
oa1p.fosFmtE7(sum(update)) upd,
oa1p.fosFmtE7(sum(delete)) del,
min(timestamp), max(timestamp)
from TACCT_GENERAL g
where timestamp > '2010-03-21-00.30.00.000'
and timestamp < '2010-03-21-02.30.00.000'
-- and connect_ID like 'NI229%'
-- and plan_name = 'NI5340'
-- and insert >= 1
group by plan_name
order by sum(select+insert+update+delete) desc
with ur
;
X
select sum(select) sel , sum(insert) ins, sum(update) upd,
sum(class2_elapsed) / sum(insert) "ela/ins" ,
sum(class2_cpu_total) / sum(insert) "cpu/ins",
sum(LOCK_LATCH_SUSP),
sum(CLASS3_LOCK_LATCH)/sum(insert) "LocLat/ins",
sum(SYNC_IO_SUSP),
sum(CLASS3_SYNC_IO)/sum(insert) "syncIo/ins",
sum(occurrences) occ,
timestamp
from RZ2hh.TACCT_GENERAL g
where timestamp > current timestamp - 2 DAY
-- and connect_ID like 'NI229%'
and plan_name = 'NI5340'
-- and insert >= 1
ORDER BY Timestamp desc
with ur
;
X
select subsystem_id, count(*), min(timestamp), max(timestamp)
from RR2HH.TACCT_GENERAL g
-- where corrName like 'NI%'
group by subsystem_id
order by subsystem_id
with ur
;
xelect class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RR2HH.TACCT_GENERAL g
where -- timestamp > current timestamp - 120 DAY
corrname like 'NI229%'
-- or corrname like 'NI22922%'
-- and plan_name like 'DSNUT%'
-- and insert >= 1
ORDER BY CLASS1_ELAPSED desc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
}¢--- A540769.WK.SQL(PDBGENNJ) cre=2010-04-22 mod=2010-05-11-11.56.54 A540769 ---
-- select * from tstRts.TrtsReoTSException;
set current sqlid = 'S100447';
set current schema = 'RZ2XX';
select current timestamp from sysibm.sysDummy1;
SELECT t.*, p.PLAN_NAME, substr(PCK_ID, 1, 10),
count(*) "count",
avg(class7_elapsed) "avgElapsed" ,
sum(class7_elapsed) "totElapsed" ,
min(class7_elapsed) "minElapsed" ,
max(class7_elapsed) "maxElapsed" ,
min(timestamp -class7_elapsed seconds) "minStart",
max(timestamp) "maxEnd"
from TACCT_Program p, A540769.TPDB t
where -- timestamp > timestamp(date(current_timestamp - 2 days)
-- , '00.00.00') and
( (PCK_COLLECTION_ID = 'NI'
and pck_id in ( 'NI6210',
'NI6260',
'NI6860',
'NI7600',
'NI9700',
'NI9740',
'YNI0131',
'YNI0183',
'YNI0350',
'YNI56SR',
'YNICAMU',
'YNICRSS',
'YNICTEU',
'YNINP03',
'YNIPACG',
'YNIPAMG',
'YNIPAMU',
'YNIPFLG',
'YNIPREG',
'YNIPTEG',
'YNIPTEU',
'YNIREST'))
or (PCK_COLLECTION_ID in ('NI01', 'NI02')
and pck_id in ( 'YNICL03',
'YNINP03',
'YNIPACG'))
or (PCK_COLLECTION_ID = 'OA1P'
and pck_id in ( 'NI660AAI')))
and p.timestamp + 0 seconds >= t.von
and p.timestamp - p.class7_elapsed seconds <= t.bis
group by t.PLAN, t.von, t.bis,
p.plan_name, p.pck_id
order by 1, 2, 3, 5, 6
with ur
;
select current timestamp from sysibm.sysDummy1;
;
;x;
insert into A540769.TPDB
select plan_name plan,
min(timestamp - class1_elapsed seconds) von,
(max(timestamp)) bis
from TACCT_general
where -- timestamp > timestamp(date(current_timestamp - 2 days)
-- , '00.00.00') and
plan_name in ('NI5340', 'NI5310')
group by date(timestamp), plan_name
;
select current timestamp from sysibm.sysDummy1;
commit;
select current timestamp from sysibm.sysDummy1;
;x;
drop TABLESPACE DA540769.TPDB;
commit;
CREATE TABLESPACE TPDB
IN DA540769
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
FREEPAGE 10 PCTFREE 12
GBPCACHE CHANGED
TRACKMOD YES
segsize 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID EBCDIC
DEFINE YES
MAXROWS 255;
create table A540769.TPDB as
(
select plan_name plan,
min(timestamp - class1_elapsed seconds) von,
(max(timestamp)) bis
from TACCT_general
where -- timestamp > timestamp(date(current_timestamp - 2 days)
-- , '00.00.00') and
plan_name in ('NI5340', 'NI5310')
group by date(timestamp), plan_name
-- order by date(timestamp), plan_name
) with no data
in DA540769.Tpdb
;
CREATE UNIQUE INDEX A540769.IPDB1
ON A540769.TPDB
(von, bis, plan)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
BUFFERPOOL BP1
COPY NO
DEFER NO
DEFINE YES;
commit
;x;
set current path oa1p;
set current schema = RZ2XX;
set current sqlid = 'A540769';
delete from A540769.plan_table;
explain plan set queryno = 3 for
with t as
(
select plan_name,
min(timestamp - class1_elapsed seconds) von,
(max(timestamp)) bis
from TACCT_general
where -- timestamp > timestamp(date(current_timestamp - 2 days)
-- , '00.00.00') and
plan_name in ('NI5340', 'NI5310')
group by date(timestamp), plan_name
order by date(timestamp), plan_name
)
SELECT t.*, p.PLAN_NAME, substr(PCK_ID, 1, 10),
count(*) "count",
avg(class7_elapsed) "avgElapsed" ,
sum(class7_elapsed) "totElapsed" ,
min(class7_elapsed) "minElapsed" ,
max(class7_elapsed) "maxElapsed" ,
min(timestamp -class7_elapsed seconds) "minStart",
max(timestamp) "maxEnd"
from TACCT_Program p, t
where -- timestamp > timestamp(date(current_timestamp - 2 days)
-- , '00.00.00') and
( (PCK_COLLECTION_ID = 'NI'
and pck_id in ( 'NI6210',
'NI6260',
'NI6860',
'NI7600',
'NI9700',
'NI9740',
'YNI0131',
'YNI0183',
'YNI0350',
'YNI56SR',
'YNICAMU',
'YNICRSS',
'YNICTEU',
'YNINP03',
'YNIPACG',
'YNIPAMG',
'YNIPAMU',
'YNIPFLG',
'YNIPREG',
'YNIPTEG',
'YNIPTEU',
'YNIREST'))
or (PCK_COLLECTION_ID in ('NI01', 'NI02')
and pck_id in ( 'YNICL03',
'YNINP03',
'YNIPACG'))
or (PCK_COLLECTION_ID = 'OA1P'
and pck_id in ( 'NI660AAI')))
and p.timestamp >= t.von
and p.timestamp -class7_elapsed seconds <= t.bis
group by t.PLAN_NAME, t.von, t.bis,
p.plan_name, p.pck_id
order by 1, 2, 3, 5, 6
with ur
;
select * from A540769.plan_view2
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
xxx
select * from cmnbatch.plan_view5
where progName = 'YDG130' and queryno in ( 2453, 2454)
order by applname, progname, queryNo, qblockno, planno
;
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for
SELECT SYMBOLCH,SYMBOLCSFI,SYMBOLISIN,IDSYMBOL_RATING,SCHEME_RATING,
raTINGDATE,RATINGSTATUSTYPE,WATCHLISTSTATTYPE
FROM oa1t.VVV_XTREQSCANKEY INNER
JOIN oa1t.VVV_IDS_STD814
ON oa1t.VVV_IDS_STD814.INSTRUMENTID
= oa1t.VVV_XTREQSCANKEY.TEMP_DBKEY
-- WHERE oa1t.VVV_XTREQSCANKEY.PARTITION_NUMBER = 8
WITH UR
fOR FETCH ONLY
;
select * from plan_view5a
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for
select *
from a540769.vrtsReoTs
where dbName like 'MF%'
;
select * from plan_view5a
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for
-- find the startpoint for a recovery or logDiscontinuity
with recSta as
( select c.*
from sysibm.syscopy c
where c.timestamp =
( select max(a.timestamp)
from sysibm.syscopy a
where c.dbName = a.dbName and c.tsName = a.tsName
and c.dsNum = a.dsNum
and icType in ('F', 'R', 'S', 'W', 'Y')
)
)
select * from recSta
where dbName like 'D%' and icType <> 'F'
order by dbName, tsName, dsNum
;
-- find the startpoint for a recovery or logDiscontinuity
explain plan set queryno = 9 for
with recSta as
( select p.dbName db, p.tsName ts, p.partition pa, q.*
from sysibm.systablepart p
left join
( select c.*
from sysibm.syscopy c
where c.timestamp =
( select max(a.timestamp)
from sysibm.syscopy a
where c.dbName = a.dbName and c.tsName = a.tsName
and c.dsNum = a.dsNum
and icType in ('F', 'R', 'S', 'W', 'Y')
)
) q
on q.dbName = p.dbName and q.tsName = p.tsName
and p.partition = q.dsNum
)
select * from recSta
where dbName like 'D%' and icType <> 'F'
order by dbName, tsName, dsNum
;
select * from plan_view5a
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
----- query 1532 YXEBV2E, 30.6.09
----- Kumar Sandeep will sequenz TKS835, TKS833, TKS843, TKS843
----- seit einem Jahr bind TKS843, TKS835, TKS833, TKS843
-----
----- 3: partner_*=? in 833 und join : original
explain plan set queryno = 3 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3 AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
;
----- 5: partner_*=? in 835 und join
explain plan set queryno = 5 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
oA1P.VKS843A1V V843O
WHERE V835.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V835.PARTNER_TYPE = 3 AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
;
----- 35: partner_*=? in 833 und 835 und join: fake filtering
explain plan set queryno = 35 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3
and V835.PARTNER_KEY = ? AND V835.PARTNER_TYPE = 3
AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
;
----- 359: partner_*=? in 833 und 835 NO join
explain plan set queryno = 359 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3
and V835.PARTNER_KEY = ? AND V835.PARTNER_TYPE = 3
and V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
;
select * from plan_view5a
--where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
select * from CMNbatch.plan_view5
where queryno between 142 and 147
and progname = 'YCI017C'
order by applname, progname, timestamp, queryNo, qblockno, planno
;
x
explain plan set queryno = 111 for
select * from cmnbatch.plan_view5
-- where progname in ('XBIM33')
where progname in ('XBIM31', 'XBIM32', 'XBIM33', 'XBIM34' ,
'XBIM35', 'XBIM42')
order by applname, progname, queryNo, qblockno, planno
;
explain plan set queryno = 222 for
select * from cmnbatch.plan_view5ss
-- where progname in ('XBIM33')
where progname in ('XBIM31', 'XBIM32', 'XBIM33', 'XBIM34' ,
'XBIM35', 'XBIM42')
order by applname, progname, queryNo, qblockno, planno
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
explain plan set queryno = 111 for
UPDATE bua.TXBH111
SET ESSTATE = 3 WHERE EAUUIDMQ IN (SELECT
EAUUIDMQ FROM bua.TXBH111 WHERE EAUUIDHT = '?' )
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
set current sqlId = 'A540769';
delete from A540769.plan_table
;
explain plan set queryno = 111 for
select count(*), jobname, max(partition), min(partition)
from sysibm.syscopy c, sysibm.systablepart p
where c.dbName = p.dbName and c.tsName = p.tsname
and c.dsNum in (0, p.partition)
group by jobName
order by 1 desc
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
xelect *
from CMNBATCH.plan_view5
where progName = 'DBWK3'
order by applname, progname, queryNo, qblockno, planno
;
xelect count(*), auftrags_nummer, pm_id
from oa1t.vpw210a1V
group by auftrags_nummer, pm_id
order by 1 desc
;
--select count(*) from oa1t.TSN100A1
-- with ur
-- ;
select *
from CMNBATCH.plan_view5
where progName = 'YPW2KPI' and queryNo = 4235
order by applname, progname, queryNo, qblockno, planno
;
x
set current sqlid = 'A540769'
;
delete from plan_table where queryno in (111, 222)
;
select current timestamp from sysibm.sysdummy1
;
explain plan set queryno = 111 for
SELECT T.* FROM oa1t.VNI600A101A C
, oa1t.VNI203A101A T
WHERE T.PERENDDT >= DATE(C.CTRLTIMESTMPFROM)
AND C.CTRLID = 'NI6220R'
;
select current timestamp from sysibm.sysdummy1
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
explain plan set queryno = 222 for
WITH NI600 (PERENDDT) AS
(SELECT DATE(C.CTRLTIMESTMPFROM) AS ENDDT
FROM oa1t.VNI600A101A C
WHERE C.CTRLID = 'NI6220R'
)
SELECT T.* FROM NI600
,oa1t.VNI203A101A T
WHERE T.PERENDDT >= NI600.PERENDDT
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
select * from plan_view5
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
x
select *
from cmnbatch.plan_view5
where progName = 'YRPNIMP' and queryNo = 866
order by applname, progname, queryNo, qblockno, planno
;
x
d.bType, p.collid, p.Name, p.version,
p.conToken, p.timeStamp, p.type,
p.validate, p.isolation, p.valid, p.operative,
p.owner, p.qualifier
m sysibm.syspackdep d join sysibm.syspackage p
on p.location = d.dLocation and p.collid = d.dCollid
and p.name = d.dName and p.conToken = d.dConToken 2.22.129867'
re
(bQualifier, bName, bType) in
( select dbName, name, 'R'
from sysIbm.sysTablespace
where dbName in ('NF01A1A', 'NF02A1A', 'NF03A1A')
)
from gdb0283.vnz240a1v
where SearchValue01 = ?
-- dec(SearchValue01,15,3) = ?
and CreateDateTime < ?
and dec(SearchValue02,15,3) >= ?
and dec(SearchValue02,15,3) <= ?
and Objtype ^= 'PORDSPLT'
order by CreateDateTime
fetch first 101 rows only
optimize for 101 rows
with ur
;
select * from plan_view5A
where queryno = 999
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
select * from plan_table
order by applname, progname, queryNo, qblockno, planno
;
rollback
;
set current path oa1p;
set current schema = RZ2XX;
with t as
(
select plan_name,
min(timestamp - class1_elapsed seconds) von,
(max(timestamp)) bis
from TACCT_general
where -- timestamp > timestamp(date(current_timestamp - 2 days)
-- , '00.00.00') and
plan_name in ('NI5340', 'NI5310')
group by date(timestamp), plan_name
order by date(timestamp), plan_name
)
SELECT t.*, p.PLAN_NAME, substr(PCK_ID, 1, 10),
count(*) "count",
avg(class7_elapsed) "avgElapsed" ,
sum(class7_elapsed) "totElapsed" ,
min(class7_elapsed) "minElapsed" ,
max(class7_elapsed) "maxElapsed" ,
min(timestamp -class7_elapsed seconds) "minStart",
max(timestamp) "maxEnd"
from TACCT_Program p, t
where -- timestamp > timestamp(date(current_timestamp - 2 days)
-- , '00.00.00') and
( (PCK_COLLECTION_ID = 'NI'
and pck_id in ( 'NI6210',
'NI6260',
'NI6860',
'NI7600',
'NI9700',
'NI9740',
'YNI0131',
'YNI0183',
'YNI0350',
'YNI56SR',
'YNICAMU',
'YNICRSS',
'YNICTEU',
'YNINP03',
'YNIPACG',
'YNIPAMG',
'YNIPAMU',
'YNIPFLG',
'YNIPREG',
'YNIPTEG',
'YNIPTEU',
'YNIREST'))
or (PCK_COLLECTION_ID in ('NI01', 'NI02')
and pck_id in ( 'YNICL03',
'YNINP03',
'YNIPACG'))
or (PCK_COLLECTION_ID = 'OA1P'
and pck_id in ( 'NI660AAI')))
and p.timestamp >= t.von
and p.timestamp -class7_elapsed seconds <= t.bis
group by t.PLAN_NAME, t.von, t.bis,
p.plan_name, p.pck_id
order by 1, 2, 3, 5, 6
with ur
;
}¢--- A540769.WK.SQL(PDBGENNK) cre=2010-10-04 mod=2010-10-15-12.42.10 A540769 ---
set current path oa1p;
select date(timestamp),
substr(subsystem_id, 1, 4) "subS",
fosFmtE7(CLASS1_ELAPSED) "c1Ela",
fosFmtE7(CLASS1_cpu_total) "c1Cpu",
fosFmtE7(CLASS2_ELAPSED) "c2Ela",
fosFmtE7(CLASS2_cpu_total) "c2Cpu",
fosFmtE7(CLASS3_LOCK_LATCH) "c3LoLa",
fosFmtE7(CLASS3_SYNC_IO) "c3SycIO",
fosFmtE7(CLASS3_DB_IO) "c3DbIo",
fosFmtE7(class3_LOG_WRT_IO) "c3LogIo",
g.*
from RZ2DD.TACCT_GENERAL g
where corrName = 'NIT6700P'
and timestamp > '2009-01-01-00.00.00'
and CLASS2_CPU_total > 100
order by timestamp desc
fetch first 100 rows only
with ur
;x;
select timestamp, plan_name,
sum(occurrences) occ,
sum(CLASS1_ELAPSED) / sum(occurrences) c1Ela ,
sum(CLASS1_CPU_TOTAL) / sum(occurrences) c1Cpu ,
sum(CLASS2_ELAPSED) / sum(occurrences) c2Ela ,
sum(CLASS2_CPU_TOTAL) / sum(occurrences) c2Cpu
from RZ2MM.TACCT_GENERAL g
where plan_Name in ('XBLE80', 'XBLE82', 'XBLE84')
and subsystem_id like 'DBP%'
and timestamp between '2010-09-18-14.00.00'
and '2010-09-18-18.00.00'
group by timestamp, plan_name
order by plan_name, 4 desc
;x;
select class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
-- and connect_id like 'MFT5614P%'
and connect_id like 'TNT780%'
and plan_name in ('TN7080')
-- and insert >= 1
ORDER BY timestamp desc
--ORDER BY CLASS1_ELAPSED desc
with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 9 DAY
and plan_name = 'RB5000'
and insert >= 1
ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
from RZ2XX.TACCT_GENERAL g
with ur
;
}¢--- A540769.WK.SQL(PDBGENNT) cre=2010-07-01 mod=2010-07-01-11.51.20 A540769 ---
set current path oa1p;
set current schema = RZ1xx;
select *
from TACCT_GENERAL g
where timestamp between '2009-06-30-14.00.00'
and '2013-06-30-22.00.00'
and subsystem_id like 'DTF%'
and corrName like 'NIT16%'
order by corrName, timestamp
;x;
with g as
(
select date(timestamp) g1,
case when timestamp between '2019-05-19-11.00.00'
and '2019-05-19-12.30.00'
or timestamp between '2019-05-19-13.00.00'
and '2019-05-19-13.30.00' then 'a'
when timestamp between '2019-05-19-16.00.00'
and '2019-05-19-23.00.00' then 'b'
when timestamp between '2019-04-14-21.50.00'
and '2019-04-14-23.20.00' then 'c'
else ' ' end g2,
g.*
from TACCT_GENERAL g
-- where not timestamp between '2010-05-19-12.30.00'
-- and '2010-05-19-13.00.00'
)
select min(timestamp - class1_elapsed seconds) "von",
time(max(timestamp)) "bis",
fosFmte7(sum(class1_elapsed)) "ela sec",
fosFmte7(sum(occurrences)) occ,
oa1p.fosFmtE7(sum(select)) sel,
oa1p.fosFmtE7(sum(insert)) ins,
oa1p.fosFmtE7(sum(update)) upd,
oa1p.fosFmtE7(sum(delete)) del,
oa1p.fosFmtE7(sum(commit)) com,
oa1p.fosFmtE7(sum(class2_elapsed)/sum(insert+update)) "ela/i+u" ,
fosFmte7(sum(class2_cpu_total) / sum(insert+update)) "cpu/i+u",
fosFmte7(sum(CLASS3_LOCK_LATCH)/sum(insert+update)) "LocLat/i+u",
fosFmte7(sum(CLASS3_SYNC_IO)/sum(insert+update)) "syncIo/i+u",
count(distinct subsystem_id) "#ssid", plan_name
from g
where timestamp > current timestamp - 9992 month
-- and connect_ID like 'NI229%'
m and plan_name in ( 'NI5310', 'NI5340')
-- and insert >= 1
group by g1, g2, plan_name
having sum(insert+update) > 0
order by plan_Name, 1 desc
with ur
;
X;
select *
from TACCT_GENERAL g
where plan_name in ( 'NI5340')
and timestamp > current timestamp - 2 days
order by timestamp
with ur
;x;
xet current path oa1p;
set current schema = RZ2DD;
select date(timestamp),
fosFmte7(sum(occurrences)) occ,
oa1p.fosFmtE7(sum(select)) sel,
oa1p.fosFmtE7(sum(insert)) ins,
oa1p.fosFmtE7(sum(update)) upd,
oa1p.fosFmtE7(sum(delete)) del,
oa1p.fosFmtE7(sum(class2_elapsed)/sum(insert+update)) "ela/i+u" ,
fosFmte7(sum(class2_cpu_total) / sum(insert+update)) "cpu/i+u",
fosFmte7(sum(CLASS3_LOCK_LATCH)/sum(insert+update)) "LocLat/i+u",
fosFmte7(sum(CLASS3_SYNC_IO)/sum(insert+update)) "syncIo/i+u"
from RZ2dd.TACCT_GENERAL g
where timestamp > current timestamp - 1 month
-- and connect_ID like 'NI229%'
and plan_name = 'NI5340'
-- and insert >= 1
group by timestamp
ORDER BY Timestamp desc
with ur
;
X
select plan_name,
fosFmte7(sum(occurrences)) occ,
oa1p.fosFmtE7(sum(select)) sel,
oa1p.fosFmtE7(sum(insert)) ins,
oa1p.fosFmtE7(sum(update)) upd,
oa1p.fosFmtE7(sum(delete)) del,
min(timestamp), max(timestamp)
from TACCT_GENERAL g
where timestamp > '2010-03-21-00.30.00.000'
and timestamp < '2010-03-21-02.30.00.000'
-- and connect_ID like 'NI229%'
-- and plan_name = 'NI5340'
-- and insert >= 1
group by plan_name
order by sum(select+insert+update+delete) desc
with ur
;
X
select sum(select) sel , sum(insert) ins, sum(update) upd,
sum(class2_elapsed) / sum(insert) "ela/ins" ,
sum(class2_cpu_total) / sum(insert) "cpu/ins",
sum(LOCK_LATCH_SUSP),
sum(CLASS3_LOCK_LATCH)/sum(insert) "LocLat/ins",
sum(SYNC_IO_SUSP),
sum(CLASS3_SYNC_IO)/sum(insert) "syncIo/ins",
sum(occurrences) occ,
timestamp
from RZ2hh.TACCT_GENERAL g
where timestamp > current timestamp - 2 DAY
-- and connect_ID like 'NI229%'
and plan_name = 'NI5340'
-- and insert >= 1
ORDER BY Timestamp desc
with ur
;
X
select subsystem_id, count(*), min(timestamp), max(timestamp)
from RR2HH.TACCT_GENERAL g
-- where corrName like 'NI%'
group by subsystem_id
order by subsystem_id
with ur
;
xelect class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RR2HH.TACCT_GENERAL g
where -- timestamp > current timestamp - 120 DAY
corrname like 'NI229%'
-- or corrname like 'NI22922%'
-- and plan_name like 'DSNUT%'
-- and insert >= 1
ORDER BY CLASS1_ELAPSED desc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
}¢--- A540769.WK.SQL(PDBGENNZ) cre=2011-07-12 mod=2012-06-04-15.11.49 A540769 ---
select class2_elapsed / max(1, commit + rollback)
, g.*
from RZ2xx.TACCT_GENERAL g
where plan_name in ('VZ56C'
,'VZ52C'
,'NTA1P'
)
and class1_elapsed > 100
and timestamp between '2012-06-03-20:48:00.36'
and '2012-06-03-23.10.35.53'
order by timestamp
;x;
select hour(timestamp) , count(*),
sum(class1_elapsed) "c1ela",
sum(class1_cpu_total) "c1cpu",
sum(class2_elapsed) "c2ela",
sum(class2_cpu_total) "c2cpu",
sum(select+open+fetch+insert+update+delete) "stmts",
sum(occurrences) occ
from RZ2hh.TACCT_GENERAL g
where corrName in ('NZ20', 'VZ52')
and timestamp >= '2012-05-24-00.00.00'
group by hour(timestamp)
order by 3 desc
;x;
select trunc_timestamp(timestamp, 'DD'),
int(sum(select )) sel,
int(sum(RID_POOL_USED )) ridUsed,
int(sum(RID_POOL_FAIL_NOSG )) ridFaiSG,
int(sum(RID_POOL_FAIL_MXLT )) ridFaiMX
from RR2DD.TACCT_GENERAL g
where plan_name = 'NZ5820'
and timestamp > '2012-05-17-00.00.00'
group by trunc_timestamp(timestamp, 'DD')
order by 1 desc
;x;
select class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
-- and connect_id like 'MFT5614P%'
and connect_id like 'TNT780%'
and plan_name in ('TN7080')
-- and insert >= 1
ORDER BY timestamp desc
--ORDER BY CLASS1_ELAPSED desc
with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 9 DAY
and plan_name = 'RB5000'
and insert >= 1
ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
from RZ2XX.TACCT_GENERAL g
with ur
;
}¢--- A540769.WK.SQL(PDBGENOP) cre=2010-04-06 mod=2010-04-06-15.14.38 A540769 ---
set current path oa1p;
set current schema = RZ2HH;
select timestamp,
fosFmte7(sum(select)) "select",
fosFmte7(sum(fetch)) "fetch",
fosFmte7(sum(open)) "open",
fosFmte7(sum(insert)) "insert"
,fosFmte7(sum(update)) "update"
,fosFmte7(sum(delete)) "delete"
,fosFmte7(sum(commit)) "commit"
,fosFmte7(sum(rollback)) "rollBa"
from TACCT_GENERAL g
where subsystem_id like 'DOF%'
and timestamp > '2010-03-01-00.00.00'
group by timestamp
order by sum(insert) desc
with ur
;
x
select trunc_timestamp(timestamp, 'HH'),
fosFmte7(sum(select)) "select",
fosFmte7(sum(fetch)) "fetch",
fosFmte7(sum(open)) "open",
fosFmte7(sum(insert)) "insert"
,fosFmte7(sum(update)) "update"
,fosFmte7(sum(delete)) "delete"
,fosFmte7(sum(commit)) "commit"
,fosFmte7(sum(rollback)) "rollBa"
from TACCT_GENERAL g
where subsystem_id like 'DOF%'
and timestamp > '2010-03-01-00.00.00'
group by trunc_timestamp(timestamp, 'HH')
order by sum(insert) desc
with ur
;
set current schema = RZ2DD;
select date(timestamp),
fosFmte7(sum(select)) "select",
fosFmte7(sum(fetch)) "fetch",
fosFmte7(sum(open)) "open",
fosFmte7(sum(insert)) "insert"
,fosFmte7(sum(update)) "update"
,fosFmte7(sum(delete)) "delete"
,fosFmte7(sum(commit)) "commit"
,fosFmte7(sum(rollback)) "rollBa"
from TACCT_GENERAL g
where subsystem_id like 'DOF%'
and timestamp > '2010-03-01-00.00.00'
group by date(timestamp)
order by date(timestamp) desc
with ur
;
x
select min(timestamp - class1_elapsed seconds) "von",
time(max(timestamp)) "bis",
fosFmte7(sum(class1_elapsed)) "ela sec",
fosFmte7(sum(occurrences)) occ,
oa1p.fosFmtE7(sum(select)) sel,
oa1p.fosFmtE7(sum(insert)) ins,
oa1p.fosFmtE7(sum(update)) upd,
oa1p.fosFmtE7(sum(delete)) del,
oa1p.fosFmtE7(sum(commit)) com,
oa1p.fosFmtE7(sum(class2_elapsed)/sum(insert+update)) "ela/i+u" ,
fosFmte7(sum(class2_cpu_total) / sum(insert+update)) "cpu/i+u",
fosFmte7(sum(CLASS3_LOCK_LATCH)/sum(insert+update)) "LocLat/i+u",
fosFmte7(sum(CLASS3_SYNC_IO)/sum(insert+update)) "syncIo/i+u",
count(distinct subsystem_id) "#ssid", plan_name
from g
where timestamp > current timestamp - 9992 month
-- and connect_ID like 'NI229%'
and plan_name in ( 'NI5310', 'NI5340')
-- and insert >= 1
group by g1, g2, plan_name
order by plan_Name, 1 desc
with ur
;
X
set current path oa1p;
set current schema = RZ2DD;
select date(timestamp),
fosFmte7(sum(occurrences)) occ,
oa1p.fosFmtE7(sum(select)) sel,
oa1p.fosFmtE7(sum(insert)) ins,
oa1p.fosFmtE7(sum(update)) upd,
oa1p.fosFmtE7(sum(delete)) del,
oa1p.fosFmtE7(sum(class2_elapsed)/sum(insert+update)) "ela/i+u" ,
fosFmte7(sum(class2_cpu_total) / sum(insert+update)) "cpu/i+u",
fosFmte7(sum(CLASS3_LOCK_LATCH)/sum(insert+update)) "LocLat/i+u",
fosFmte7(sum(CLASS3_SYNC_IO)/sum(insert+update)) "syncIo/i+u"
from RZ2dd.TACCT_GENERAL g
where timestamp > current timestamp - 1 month
-- and connect_ID like 'NI229%'
and plan_name = 'NI5340'
-- and insert >= 1
group by timestamp
ORDER BY Timestamp desc
with ur
;
X
select plan_name,
fosFmte7(sum(occurrences)) occ,
oa1p.fosFmtE7(sum(select)) sel,
oa1p.fosFmtE7(sum(insert)) ins,
oa1p.fosFmtE7(sum(update)) upd,
oa1p.fosFmtE7(sum(delete)) del,
min(timestamp), max(timestamp)
from TACCT_GENERAL g
where timestamp > '2010-03-21-00.30.00.000'
and timestamp < '2010-03-21-02.30.00.000'
-- and connect_ID like 'NI229%'
-- and plan_name = 'NI5340'
-- and insert >= 1
group by plan_name
order by sum(select+insert+update+delete) desc
with ur
;
X
select sum(select) sel , sum(insert) ins, sum(update) upd,
sum(class2_elapsed) / sum(insert) "ela/ins" ,
sum(class2_cpu_total) / sum(insert) "cpu/ins",
sum(LOCK_LATCH_SUSP),
sum(CLASS3_LOCK_LATCH)/sum(insert) "LocLat/ins",
sum(SYNC_IO_SUSP),
sum(CLASS3_SYNC_IO)/sum(insert) "syncIo/ins",
sum(occurrences) occ,
timestamp
from RZ2hh.TACCT_GENERAL g
where timestamp > current timestamp - 2 DAY
-- and connect_ID like 'NI229%'
and plan_name = 'NI5340'
-- and insert >= 1
ORDER BY Timestamp desc
with ur
;
X
select subsystem_id, count(*), min(timestamp), max(timestamp)
from RR2HH.TACCT_GENERAL g
-- where corrName like 'NI%'
group by subsystem_id
order by subsystem_id
with ur
;
xelect class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RR2HH.TACCT_GENERAL g
where -- timestamp > current timestamp - 120 DAY
corrname like 'NI229%'
-- or corrname like 'NI22922%'
-- and plan_name like 'DSNUT%'
-- and insert >= 1
ORDER BY CLASS1_ELAPSED desc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
}¢--- A540769.WK.SQL(PDBGENPC) cre=2012-05-24 mod=2012-05-24-07.34.25 A540769 ---
select *
from rz2xx.tacct_general
where timestamp > '2012-05-22-00.00.00'
and corrname = 'PC5020'
-- and corrnum = '0110'
order by timestamp desc
}¢--- A540769.WK.SQL(PDBGENPK) cre=2012-04-17 mod=2012-04-17-15.21.24 A540769 ---
-- vergleich tacct_general und tacct_package total Zahlen
--
--
set current path = oa1p;
with g as
(
SELECT DATE(TIMESTAMP) AS DATUM
,SUM(SELECT+INSERT+UPDATE+delete+open+fetch+close) as mdl
,SUM(CLASS2_su_cpu) C2_SU
,SUM(CLASS2_su_cpu) /
SUM(SELECT+INSERT+UPDATE+delete+open+fetch+close) as su_st
,sum(CLASS2_CPU_TOTAL) C2_CPU
FROM RZ2DD.TACCT_GENERAL
WHERE TIMESTAMP >= '2012-03-01-00.00.00.000000'
AND GROUP_NAME = 'DBOF'
GROUP BY DATE(TIMESTAMP)
) , p as
(
SELECT DATE(TIMESTAMP) AS DATUM
,SUM(SQL_STMTS_ISSUED) AS ANZ_SQL
,SUM(CLASS7_SU_CPU) AS SU_CLASS7
,SUM(CLASS7_SU_CPU)/SUM(SQL_STMTS_ISSUED) as su_st_p
,sum(CLASS7_CPU_TOTAL) as CPU_C7
FROM RZ2DD.TACCT_PROGRAM
WHERE TIMESTAMP >= '2012-03-01-00.00.00.000000'
AND GROUP_NAME = 'DBOF'
GROUP BY DATE(TIMESTAMP)
)
select coalesce (p.datum, g.datum) datum
,substr(fosFmte7(C2_CPU), 1, 7) c2_cpu
,substr(fosFmte7(CPU_C7), 1, 7) c7_cpu
,substr(fosFmte7(C2_SU), 1, 7) c2_su
,substr(fosFmte7(SU_CLASS7), 1, 7) c7_su
,substr(fosFmte7(mdl), 1, 7) gen_st
,substr(fosFmte7(anz_sql), 1, 7) pg_st
,substr(fosFmte7(C2_SU/mdl), 1, 7) gen_su_st
,substr(fosFmte7(SU_CLASS7/anz_sql), 1, 7) pg_su_st
from g full join p
on p.datum = g.datum
ORDER BY 1 DESC
;;;;;;;
SELECT DATE(TIMESTAMP) AS DATUM
,DEC(SUM(SELECT)) AS SELECT
,DEC(SUM(INSERT)) AS INSERT
,DEC(SUM(CLASS2_CPU_TOTAL)) SUM_CLASS2
FROM RZ1DD.TACCT_GENERAL
WHERE TIMESTAMP >= '2012-04-01-00.00.00.000000'
AND GROUP_NAME = 'DBAF'
GROUP BY DATE(TIMESTAMP)
ORDER BY DATE(TIMESTAMP) DESC
;
}¢--- A540769.WK.SQL(PDBGENPR) cre=2010-09-10 mod=2010-11-22-16.23.12 A540769 ---
select * -- corrName, min(timestamp), max(timestamp), count(*)
from RZ1xx.TACCT_GENERAL g
where plan_Name = 'PVPOSY'
and subsystem_id like 'DAF%'
and timestamp between '2010-11-14-00.00.19.176317'
and '2010-11-17-19.55.21.911467'
-- group by corrName
-- order by corrName
;x;
select *
from RZ1dd.TACCT_GENERAL g
where corrName = 'PVABRUFA'
-- and subsystem_id like 'DAF%'
and timestamp between '2010-09-01-00.00.19.176317'
and '2011-09-07-19.55.21.911467'
order by timestamp
;x;
) and
-- subsystem_id like 'DAF%'
timestamp between '2010-09-06-13.40.19.176317'
and '2011-09-09-18.49.21.911467'
select *
from RZ1xx.TACCT_GENERAL g
where -- ( corrName like 'A343905%'
-- and plan_name like 'PVPOS%'
-- ) and
-- subsystem_id like 'DAF%'
timestamp = '2010-09-07-14.11.54.964347'
;x;
timestamp between '2010-09-06-13.40.19.176317'
and '2011-09-09-18.49.21.911467'
SELECT *
FROM RZ1XX.TACCT_PROGRAM
where timestamp between '2010-09-07-14.00.00'
and '2010-09-07-15.55.00'
AND PCK_ID like 'A5PO356%'
;x;
select *
from RZ1xx.TACCT_GENERAL g
where ( corrName like 'PVABRUFA'
and plan_name like 'PVPOS%'
) and
-- subsystem_id like 'DAF%'
timestamp between '2010-09-06-13.40.19.176317'
and '2011-09-09-18.49.21.911467'
-- order by corrname
order by class1_elapsed desc
;x;
select *
from RZ1xx.TACCT_GENERAL g
where timestamp in ( '2010-09-07-14.35.31.976691',
'2010-09-07-14.39.19.176317',
'2010-09-07-14.39.21.911467')
;x;
SELECT *
FROM RZ1XX.TACCT_PROGRAM
where timestamp between '2010-09-07-14.00.00'
and '2010-09-07-15.33.00'
AND PCK_ID like 'A5PO%'
;x;
or plan_name like 'PVPO%')
and subsystem_id = 'DAF1'
and timestamp between '2010-09-07-14.00.00'
and '2010-09-07-15.33.00'
-- order by corrname
order by class1_elapsed desc
;x;
select class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
-- and connect_id like 'MFT5614P%'
and connect_id like 'TNT780%'
and plan_name in ('TN7080')
-- and insert >= 1
ORDER BY timestamp desc
--ORDER BY CLASS1_ELAPSED desc
with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 9 DAY
and plan_name = 'RB5000'
and insert >= 1
ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
from RZ2XX.TACCT_GENERAL g
with ur
;
}¢--- A540769.WK.SQL(PDBGENPW) cre=2012-02-03 mod=2012-09-10-16.10.11 A540769 ---
set current path = oa1p;
set current path = oa1p;
with s as(
select real(select+open+fetch+insert+update+delete) sqls,
real(max(1, commit+rollback)) cr,
g.*
from RZ2XX.TACCT_GENERAL g
where plan_name in ('PW5200', 'PW5220')
and subsystem_id like 'DOF%'
and timestamp between '2012-01-05-00.00.00'
and '2012-12-02-00.00.00'
)
select plan_name,
fosFmte7(min(class1_elapsed/cr) ) "c1ela min",
fosFmte7(max(class1_elapsed/cr) ) "c1ela max",
fosFmte7(sum(class1_elapsed)/sum(cr) ) "c1ela/coR",
fosFmte7(sum(class2_elapsed)/sum(cr) ) "c2ela/coR",
fosFmte7(sum(class1_cpu_total)/sum(cr)) "c1cpu/coR",
fosFmte7(sum(class2_cpu_total)/sum(cr)) "c2cpu/coR",
fosFmte7(sum(CLASS3_ASYNCH_IXL) /sum(cr) ) "c3IXL/coR",
int(sum(occurrences)) "occur",
int(sum(commit)) "commit",
int(sum(rollback)) "rollback",
fosFmte7(sum(sqls)/sum(cr) ) "sqls/coR",
fosFmte7(sum(class3_global_cont)/sum(cr)) "c2gloCon",
fosFmte7(sum(class3_DB_IO)/sum(cr)) "c3dbIo",
fosFmte7(sum(class3_LOG_WRT_IO)/sum(cr)) "c2logIo",
fosFmte7(sum(real(OPEN_CLOSE_SUSP))/sum(cr)) "opClo",
fosFmte7(sum(CLASS3_OPEN_CLOSE)/sum(cr)) "c3opClo",
fosFmte7(sum(real(SERV_TASK_SUSP))/sum(cr)) "serTa",
fosFmte7(sum(CLASS3_SERV_TASK)/sum(cr)) "c3serTa",
fosFmte7(sum(real(commit))/sum(cr)) "commit",
fosFmte7(sum(real(rollback))/sum(cr)) "rollback",
fosFmte7(sum(real(select))/sum(cr)) "select",
fosFmte7(sum(real(open) )/sum(cr)) "open",
fosFmte7(sum(real(fetch) )/sum(cr)) "fetch",
fosFmte7(sum(real(insert))/sum(cr)) "insert",
fosFmte7(sum(real(update))/sum(cr)) "update",
fosFmte7(sum(real(delete))/sum(cr)) "delete",
fosFmte7(sum(real(INCREMENTAL_BIND))/sum(cr))"incrBi",
fosFmte7(sum(real(PROGRAMS)) /sum(cr)) "pkgs",
min(timestamp), max(timestamp)
from s
group by plan_name, floor(log10(class1_elapsed/max(cr, 1))*3)
order by plan_name, min(class1_elapsed/max(cr, 1))
;;;
??????????????
with s as(
select real(select+open+fetch+insert+update+delete) sqls,
real(max(1, commit+rollback)) cr,
g.*
from RZ2HH.TACCT_GENERAL g
where plan_name in ('PW5200', 'PW5220')
and subsystem_id like 'DOF%'
and timestamp between '2012-01-01-00.00.00'
and '2012-12-02-00.00.00'
)
select trunc_timestamp(timestamp,'HH'),
plan_name,
fosFmte7((class1_elapsed)/(cr) ) "c1ela/coR",
fosFmte7((class2_elapsed)/(cr) ) "c2ela/coR",
fosFmte7((class1_cpu_total)/(cr)) "c1cpu/coR",
fosFmte7((class2_cpu_total)/(cr)) "c2cpu/coR",
fosFmte7((CLASS3_ASYNCH_IXL) /(cr) ) "c3IXL/coR",
int((occurrences)) "occ",
int((commit)) "commit",
int((rollback)) "rollBack",
fosFmte7((sqls)/(cr) ) "sqls/coR",
fosFmte7((class3_global_cont)/(cr)) "c2gloCon",
fosFmte7((class3_DB_IO)/(cr)) "c3dbIo",
fosFmte7((class3_LOG_WRT_IO)/(cr)) "c2logIo",
fosFmte7((real(OPEN_CLOSE_SUSP))/(cr)) "opClo",
fosFmte7((CLASS3_OPEN_CLOSE)/(cr)) "c3opClo",
fosFmte7((real(SERV_TASK_SUSP))/(cr)) "serTa",
fosFmte7((CLASS3_SERV_TASK)/(cr)) "c3serTa",
fosFmte7((real(commit))/(cr)) "commit",
fosFmte7((real(rollback))/(cr)) "rollback",
fosFmte7((real(select))/(cr)) "select",
fosFmte7((real(open) )/(cr)) "open",
fosFmte7((real(fetch) )/(cr)) "fetch",
fosFmte7((real(insert))/(cr)) "insert",
fosFmte7((real(update))/(cr)) "update",
fosFmte7((real(delete))/(cr)) "delete",
fosFmte7((real(INCREMENTAL_BIND))/(cr))"incrBi",
fosFmte7((real(PROGRAMS)) /(cr)) "pkgs"
from s
-- group by trunc_timestamp(timestamp,'HH'), plan_name
order by plan_name, (class1_elapsed)/(cr) desc
fetch first 1000 rows only
;;;
;;;
select count(*), plan_name
from rz1xx.tacct_program
where pck_id = 'YWPR2PX' and group_Name = 'DE0G'
group by plan_name
with ur
set current path = oa1p;
with i as
(
select plan_name
, sum(class2_elapsed) ela
, sum(class2_cpu_total) cpu
, sum(commit) com
, sum(select) sel
, sum(open) op
, sum(fetch) fet
, min(timestamp) von
, max(timestamp) bis
from rz2mm.tacct_general
where timestamp > '2011-01-01 00:00:00' and commit > 0
and plan_name in ('PW0602', 'PW0408')
group by plan_name, floor( 2*log10(class2_elapsed / commit))
)
select plan_name
, fosFmte7(ela / com) "ela/com"
, fosFmte7(com) commit
, fosFmtE7(cpu / com) "cpu/com"
, fosFmtE7(sel / com) "sel/Com"
, fosFmtE7(op / com) "ope/Com"
, fosFmtE7(fet / com) "fet/Com"
, von , bis
from i
order by plan_name, ela/com desc
with ur
}¢--- A540769.WK.SQL(PDBGENQR) cre=2011-02-03 mod=2012-06-15-17.17.19 A540769 ---
set current path oa1p;
set current schema = RZ2XX;
select count(*), dec(avg(class1_elapsed), 10, 6) avg,
min(class1_elapsed), max(class1_elapsed),
min(timestamp), max(timestamp),
max(commit + rollback)
from TACCT_GENERAL g
where plan_name = 'VZ52C'
-- timestamp > current timestamp - 992 days
-- timestamp between '2011-01-23-09.53.00'
-- and '2011-01-23-09.54.43'
-- and class1_elapsed > 60
-- and rollback > 0
-- and ( corrName like 'QR00315%'
-- or corrName like 'QR00316%'
-- )
-- and CLASS3_DRAIN_LOCK < 10
-- order by timestamp desc
-- order by class1_elapsed desc
group by floor(2*log10(class1_elapsed))
order by 4
fetch first 100 rows only
with ur
;;;
select *
from TACCT_GENERAL g
where timestamp between '2011-01-23-09.53.00'
and '2011-01-23-09.54.43'
and class1_elapsed > 200
-- and rollback > 0
-- and ( corrName like 'QR00315%'
-- or corrName like 'QR00316%'
-- )
order by timestamp desc
-- order by class1_elapsed desc
with ur
;;
set current path oa1p;
set current schema = RZ2MM;
select dayofWeek(timestamp), class1_elapsed, class2_elapsed,
fosFmte7(occurrences) occ,
fosFmtE7( (select)) sel,
fosFmtE7( (insert)) ins,
update upd,
g.*
from TACCT_GENERAL g
where plan_name = 'MF7800'
and timestamp between '2010-12-19-00.00.00'
and '2010-12-20-00.00.00'
order by timestamp desc
with ur
; x
select *
from TACCT_GENERAL g
where timestamp > current timestamp - 3 days
and ( corrName like 'MFT15%'
or corrName like 'MFT18%'
or corrName like 'MFT56%'
or connect_id like 'MFT56%'
or corrName = 'MFT3100P'
)
order by timestamp desc
with ur
;
x;
set current path oa1p;
set current schema = RR2HH;
select *
from TACCT_GENERAL g
where timestamp > current timestamp - 5 days
and corrName = 'YMFNVLOH'
order by timestamp desc
with ur
;
x;
select timestamp - class1_elapsed seconds "von",
timestamp "bis",
g.*
from TACCT_GENERAL g
where -- timestamp > current timestamp - 2 days
(corrName like 'A895326%' or corrName like 'MF%')
-- and connect_ID like 'NI229%'
and plan_name like 'MF%'
and subsystem_id like 'DZF%'
-- and insert >= 1
order by timestamp desc
with ur
;x;
select subsystem_id, count(*), min(timestamp), max(timestamp)
from TACCT_GENERAL g
where timestamp >= '2010-07-27-00.00.00'
group by subsystem_id
;x;
select min(timestamp), max(timestamp)
from TACCT_GENERAL g
;x;
with g as
(
select date(timestamp) g1,
case when timestamp between '2000-05-19-11.00.00'
and '2000-05-19-12.30.00' then 'x'
else ' ' end g2,
g.*
from TACCT_GENERAL g
where not timestamp between '2010-05-19-12.30.00'
and '2010-05-19-13.00.00'
)
select min(timestamp - class1_elapsed seconds) "von",
time(max(timestamp)) "bis",
fosFmte7(sum(occurrences)) occ,
fosFmte7(sum(class1_elapsed)) "ela sec",
fosFmte7(sum(class1_cpu_total)) "tot cpu",
fosFmte7(sum(class2_cpu_total)) "db2 cpu",
fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
fosFmte7(sum(CLASS3_GLOBAL_CONT)) "gloCon",
oa1p.fosFmtE7(sum(select)) "select",
oa1p.fosFmtE7(sum(open)) "open",
oa1p.fosFmtE7(sum(fetch)) "fetch",
oa1p.fosFmtE7(sum(commit)) "commit",
oa1p.fosFmtE7(sum(insert)) "insert",
oa1p.fosFmtE7(sum(update)) "update",
oa1p.fosFmtE7(sum(delete)) "delete",
oa1p.fosFmtE7(sum(class2_elapsed)/sum(insert+update)) "ela/i+u" ,
fosFmte7(sum(class2_cpu_total) / sum(insert+update)) "cpu/i+u",
fosFmte7(sum(CLASS3_LOCK_LATCH)/sum(insert+update)) "LocLat/i+u",
fosFmte7(sum(CLASS3_SYNC_IO)/sum(insert+update)) "syncIo/i+u",
count(distinct subsystem_id) "#ssid",
plan_name,
min(connect_id) || '-' || max(connect_id) "connectionId"
from g
where timestamp > current timestamp - 666 days
-- and connect_ID like 'NI229%'
and plan_name in ( 'MF8500', 'MF7230', 'MF7310')
and (plan_name <> 'MF8500' or connect_id like 'MFT56%')
-- and insert >= 1
group by g1, g2, plan_name, left(connect_Id, 5)
having sum(insert+update) > 0
order by plan_Name, 1 desc
with ur
;
X;
xet current path oa1p;
set current schema = RZ2DD;
select date(timestamp),
fosFmte7(sum(occurrences)) occ,
oa1p.fosFmtE7(sum(select)) sel,
oa1p.fosFmtE7(sum(insert)) ins,
oa1p.fosFmtE7(sum(update)) upd,
oa1p.fosFmtE7(sum(delete)) del,
oa1p.fosFmtE7(sum(class2_elapsed)/sum(insert+update)) "ela/i+u" ,
fosFmte7(sum(class2_cpu_total) / sum(insert+update)) "cpu/i+u",
fosFmte7(sum(CLASS3_LOCK_LATCH)/sum(insert+update)) "LocLat/i+u",
fosFmte7(sum(CLASS3_SYNC_IO)/sum(insert+update)) "syncIo/i+u"
from RZ2dd.TACCT_GENERAL g
where timestamp > current timestamp - 1 month
-- and connect_ID like 'NI229%'
and plan_name = 'NI5340'
-- and insert >= 1
group by timestamp
ORDER BY Timestamp desc
with ur
;
X
select plan_name,
fosFmte7(sum(occurrences)) occ,
oa1p.fosFmtE7(sum(select)) sel,
oa1p.fosFmtE7(sum(insert)) ins,
oa1p.fosFmtE7(sum(update)) upd,
oa1p.fosFmtE7(sum(delete)) del,
min(timestamp), max(timestamp)
from TACCT_GENERAL g
where timestamp > '2010-03-21-00.30.00.000'
and timestamp < '2010-03-21-02.30.00.000'
-- and connect_ID like 'NI229%'
-- and plan_name = 'NI5340'
-- and insert >= 1
group by plan_name
order by sum(select+insert+update+delete) desc
with ur
;
X
select sum(select) sel , sum(insert) ins, sum(update) upd,
sum(class2_elapsed) / sum(insert) "ela/ins" ,
sum(class2_cpu_total) / sum(insert) "cpu/ins",
sum(LOCK_LATCH_SUSP),
sum(CLASS3_LOCK_LATCH)/sum(insert) "LocLat/ins",
sum(SYNC_IO_SUSP),
sum(CLASS3_SYNC_IO)/sum(insert) "syncIo/ins",
sum(occurrences) occ,
timestamp
from RZ2hh.TACCT_GENERAL g
where timestamp > current timestamp - 2 DAY
-- and connect_ID like 'NI229%'
and plan_name = 'NI5340'
-- and insert >= 1
ORDER BY Timestamp desc
with ur
;
X
select subsystem_id, count(*), min(timestamp), max(timestamp)
from RR2HH.TACCT_GENERAL g
-- where corrName like 'NI%'
group by subsystem_id
order by subsystem_id
with ur
;
xelect class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RR2HH.TACCT_GENERAL g
where -- timestamp > current timestamp - 120 DAY
corrname like 'NI229%'
-- or corrname like 'NI22922%'
-- and plan_name like 'DSNUT%'
-- and insert >= 1
ORDER BY CLASS1_ELAPSED desc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
}¢--- A540769.WK.SQL(PDBGENRR) cre=2010-07-15 mod=2010-07-15-15.17.07 A540769 ---
SELECT
WEEK(TIMESTAMP) AS WEEK
,DEC(SUM(OCCURRENCES),25,0) AS OCCURRENCES
,DEC(SUM(CLASS1_ELAPSED),25,0) AS CLASS1_ELAPSED
,DEC(SUM(CLASS1_CPU_TOTAL),25,0) AS CLASS1_CPU_TOTAL
,DEC(SUM(CLASS2_ELAPSED),25,0) AS CLASS2_ELAPSED
,DEC(SUM(CLASS2_CPU_TOTAL),25,0) AS CLASS2_CPU_TOTAL
FROM RZ2DD.TACCT_GENERAL
WHERE TIMESTAMP >= '2010-05-10-00.00.00.000000'
AND TIMESTAMP <= '2010-07-15-00.00.00.000000'
AND CORRNAME LIKE 'QR%'
GROUP BY WEEK(TIMESTAMP)
ORDER BY WEEK DESC
}¢--- A540769.WK.SQL(PDBGENRX) cre=2012-05-29 mod=2012-05-29-15.05.26 A540769 ---
set current path oa1p;
select *
from rz2hh.tacct_general
where plan_name = 'DSNREXX'
and subsystem_id like 'DOF%'
and timestamp > current timestamp - 11 days
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
and dayofweek_iso(timestamp) <= 5
AND hour(timestamp) between 9 and 11
order by
CLASS2_CPU_TOTAL desc
;;;
set current path oa1p;
select
date(trunc_timestamp(timestamp, 'ddd')),
-- min(date(timestamp)),
-- max(SUBSYSTEM_ID )),
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(sum(OCCURRENCES )) "occ",
substr(PCK_COLLECTION_ID, 1, 8) coll,
min(subsystem_id) subMin ,
max(subsystem_id) subMax ,
min(timestamp) tstMin,
max(timestamp) tstMax
from rz2dd.tacct_program
where pck_id in ('YCDSGET')
and subsystem_id like 'DOF%'
and timestamp > current timestamp - 11 days
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
-- and dayofweek_iso(timestamp) <= 5
-- AND hour(timesta p) between 9 and 11
group by pck_id, pck_collection_id ,
trunc_timestamp(timestamp, 'ddd')
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
order by pck_id, trunc_timestamp(timestamp, 'ddd') desc
;;;
select *
from rz2dd.tacct_general
where plan_name in ('WB0670'
,'WI0180'
,'WQ0030'
,'WC0218'
,'WQ5110'
)
and timestamp > current timestamp - 3 days
order by plan_name, timestamp desc
;;;;
select
date(timestamp),
fosFmtE7(sum(OCCURRENCES )) "occ",
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end,
PLAN_NAME ,
substr(PCK_COLLECTION_ID, 1, 8) coll,
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
min(left(subsystem_id, 3)) sub
from rz2dd.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
and timestamp > '2011-08-01-00.00.00'
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
group by plan_name, PCK_COLLECTION_ID,PCK_id
, date(timestamp)
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
order by plan_name, PCK_COLLECTION_ID,PCK_id
, min(TIMESTAMP) desc
-- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
PLAN_NAME ,
-- substr(PCK_COLLECTION_ID, 1, 8) coll,
-- substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(OCCURRENCES )) "occ",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
from rz2xx.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
-- and timestamp > current timestamp - 7 day
-- timestamp between '2010-01-10-00.00.00'
-- and '2010-02-20-00.00.00'
group by plan_name ,
floor(3. * log10(
max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
with ur
;;;
}¢--- A540769.WK.SQL(PDBGENSN) cre=2011-04-19 mod=2011-09-29-10.51.33 A540769 ---
select sum(class2_elapsed) / max(1, sum(commit)), sum(commit)
from RZ2DD.TACCT_GENERAL g
where plan_name = 'SN0100'
and timestamp > '2011-09-01-00.00.00'
group by date(timestamp)
order by date(timestamp)
;x;
select class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
-- and connect_id like 'MFT5614P%'
and connect_id like 'TNT780%'
and plan_name in ('TN7080')
-- and insert >= 1
ORDER BY timestamp desc
--ORDER BY CLASS1_ELAPSED desc
with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 9 DAY
and plan_name = 'RB5000'
and insert >= 1
ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
from RZ2XX.TACCT_GENERAL g
with ur
;
}¢--- A540769.WK.SQL(PDBGENSU) cre=2012-01-26 mod=2012-01-26-16.31.57 A540769 ---
select *
from rr2xx.tstat_general
WHERE subsystem_id = 'DOF2'
and INTERVAL_TSTAMP between '2012-01-19-00.00.00'
and '2012-01-20-00.00.00'
order by INTERVAL_TSTAMP desc
;;;
set current path = 'OA1P';
select *
from rr2xx.tacct_program
WHERE PCK_ID = 'YSUDCFC'
and plan_name = 'WC0217' -- and subsystem_id = 'DOF2'
and timestamp between '2012-01-19-00.00.00'
and '2012-01-20-00.00.00'
order by class7_elapsed desc
with ur
;
select fosfmte7(class1_elapsed) c1ela
,fosfmte7(class3_global_cont) "gloCon"
,fosfmte7(class3_page_latch) "pgLat"
, g.*
from rr2xx.tacct_general g
WHERE --PCK_ID = 'YSUDCFC' and
plan_name = 'WC0217' -- and subsystem_id = 'DOF2'
and timestamp between '2012-01-19-00.00.00'
and '2012-01-20-00.00.00'
order by class1_elapsed desc
with ur
;;;
select *
from rr2xx.tacct_program
WHERE PCK_ID in('DADSP203'
,'DADSP202'
,'WEBM051'
,'WEBM051N'
)
and plan_name = 'WC0217' and subsystem_id = 'DOF2'
and timestamp between '2012-01-19-00.00.00'
and '2012-01-20-00.00.00'
order by class7_elapsed desc
with ur
;;;;
}¢--- A540769.WK.SQL(PDBGENSV) cre=2012-01-26 mod=2012-01-26-09.19.45 A540769 ---
select *
from RR2XX.TACCT_GENERAL g
where -- corrName = 'SVJ2000P'
plan_name = 'SV8500'
and timestamp > '2012-02-01-00.00.00'
order by timestamp desc
with ur
;x;
select class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
-- and connect_id like 'MFT5614P%'
and connect_id like 'TNT780%'
and plan_name in ('TN7080')
-- and insert >= 1
ORDER BY timestamp desc
--ORDER BY CLASS1_ELAPSED desc
with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 9 DAY
and plan_name = 'RB5000'
and insert >= 1
ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
from RZ2XX.TACCT_GENERAL g
with ur
;
}¢--- A540769.WK.SQL(PDBGENTB) cre=2010-07-01 mod=2011-05-11-12.43.59 A540769 ---
-- ERR
-- RR2
-- RR4
-- RZ1
-- RZ2
-- RZ4
SELECT min(subsystem_id), max(subsystem_id),
count(*), 'ERR' cre, '-', '-'
from ERRXX.TACCT_GENERAL
group by left(subsystem_id, 3)
union all
SELECT min(subsystem_id), max(subsystem_id),
count(*), 'RR2' cre, min(group_name), max(group_Name)
from RR2XX.TACCT_GENERAL
group by left(subsystem_id, 3)
union all
SELECT min(subsystem_id), max(subsystem_id),
count(*), 'RR4' cre, min(group_name), max(group_Name)
from RR4XX.TACCT_GENERAL
group by left(subsystem_id, 3)
union all
SELECT min(subsystem_id), max(subsystem_id),
count(*), 'RZ1' cre, min(group_name), max(group_Name)
from RZ1XX.TACCT_GENERAL
group by left(subsystem_id, 3)
union all
SELECT min(subsystem_id), max(subsystem_id),
count(*), 'RZ2' cre, min(group_name), max(group_Name)
from RZ2XX.TACCT_GENERAL
group by left(subsystem_id, 3)
union all
SELECT min(subsystem_id), max(subsystem_id),
count(*), 'RZ4' cre, min(group_name), max(group_Name)
from RZ4XX.TACCT_GENERAL
group by left(subsystem_id, 3)
order by 4, 1
with ur
;;;;
SELECT id, rz, insDate, count(*)
, min(timestamp), max(timestamp)
from A540769.TACCT_GENERAL
group by id, rz, insDate
order by insDate desc, id, rz
;;;::
set current sqlId = 'S100447';
-- alter table A540769.TACCT_GENERAL
-- add column insDate date not null with default '01.01.0001';
commit;
-- drop tablespace dA540769.aGen;
commit;
CREATE TABLESPACE AGEN
IN DA540769
USING STOGROUP GSMS
FREEPAGE 10 PCTFREE 12
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
COMPRESS YES;
create table A540769.TACCT_GENERAL
as (select char('id', 15) id,
char('RZ2', 4) rz,
current date insDate,
g.*
from rz2xx.TACCT_GENERAL g) with no data
in dA540769.aGen
;
commit;
create unique index A540769.IACCT_GENERAL on A540769.TACCT_GENERAL
(id, rz, timestamp, subsystem_id)
;
commit;
}¢--- A540769.WK.SQL(PDBGENTG) cre=2011-08-31 mod=2011-08-31-08.22.42 A540769 ---
select *
from RZ1XX.TACCT_Program g
where plan_name in ('TG5900')
-- and (corrname like 'F495683%'
-- or connect_id like 'F495683%'
-- )
and ( timestamp between '2011-08-25-13.50.00'
and '2011-08-25-14.20.00'
or timestamp between '2011-08-25-11.45.00'
and '2011-08-25-12.09.00'
)
and pck_id = 'YTG002'
order by timestamp desc
with ur
;
select *
from RZ1XX.TACCT_General g
where plan_name in ('TG5900')
-- and (corrname like 'F495683%'
-- or connect_id like 'F495683%'
-- )
and ( timestamp between '2011-08-25-13.50.00'
and '2011-08-25-14.20.00'
or timestamp between '2011-08-25-11.45.00'
and '2011-08-25-12.09.00'
)
order by timestamp desc
with ur
;x;
select class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
-- and connect_id like 'MFT5614P%'
and connect_id like 'TNT780%'
and plan_name in ('TN7080')
-- and insert >= 1
ORDER BY timestamp desc
--ORDER BY CLASS1_ELAPSED desc
with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 9 DAY
and plan_name = 'RB5000'
and insert >= 1
ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
from RZ2XX.TACCT_GENERAL g
with ur
;
}¢--- A540769.WK.SQL(PDBGENTL) cre=2011-05-11 mod=2011-05-11-12.56.41 A540769 ---
//A540769L JOB (CP00,KE50), 00010001
// MSGCLASS=T,TIME=1440,LINES=(999999,WARNING),
// NOTIFY=A540769
//*MAIN CLASS=LOG
//S1 EXEC PGM=DSNUTILB,PARM='DBOC,A540769L.LOAD' 00020001
//SYSPRINT DD SYSOUT=*
//UTPRINT DD SYSOUT=*
//SYSTEMPL DD DSN=DBOC.DBAA.LISTDEF(TEMPL),DISP=SHR
//SYSIN DD *
TEMPLATE DBU4GQGQ
DSN('DBOC.DA540769.AGEN.P00000.D110511.REC')
DISP(OLD,KEEP,KEEP)
LOAD DATA INDDN DBU4GQGQ LOG NO REPLACE COPYDDN(TCOPYD)
EBCDIC CCSID(00500,00000,00000)
SORTKEYS
SORTDEVT DISK
WORKDDN(TSYUTD,TSOUTD)
INTO TABLE
"A540769".
"TACCT_GENERAL"
WHEN(00001:00002) = X'0008'
NUMRECS 22781
( "ID"
POSITION( 00003:00017) CHAR(00015)
, "RZ"
POSITION( 00018:00021) CHAR(00004)
, "PARTSPLIT"
POSITION( 00022:00023) SMALLINT
, "OCCURRENCES"
POSITION( 00024:00027) INTEGER
, "SUBSYSTEM_ID"
POSITION( 00028:00031) CHAR(00004)
, "TIMESTAMP"
POSITION( 00032:00057) TIMESTAMP EXTERNAL
, "LUW_SEQNO"
POSITION( 00058:00059) SMALLINT
, "CONNECT_TYPE"
POSITION( 00060:00067) CHAR(00008)
, "CONNECT_ID"
POSITION( 00068:00075) CHAR(00008)
, "CORRNAME"
POSITION( 00076:00083) CHAR(00008)
, "CORRNUMBER"
POSITION( 00084:00091) CHAR(00008)
, "PLAN_NAME"
POSITION( 00092:00099) CHAR(00008)
, "CLASS2"
POSITION( 00100:00100) CHAR(00001)
, "CLASS3"
POSITION( 00101:00101) CHAR(00001)
, "CLASS1_ELAPSED"
POSITION( 00102:00108) DECIMAL
, "CLASS1_CPU_TOTAL"
POSITION( 00109:00115) DECIMAL
, "CLASS2_ELAPSED"
POSITION( 00116:00122) DECIMAL
, "CLASS2_CPU_TOTAL"
POSITION( 00123:00129) DECIMAL
, "CLASS5_ELAPSED"
POSITION( 00130:00136) DECIMAL
, "CLASS5_TCB"
POSITION( 00137:00143) DECIMAL
, "CLASS5_DESCRIBE"
POSITION( 00144:00150) DECIMAL
, "CLASS5_LOG_EXTRACT"
POSITION( 00151:00157) DECIMAL
, "LOCK_LATCH_SUSP"
POSITION( 00158:00161) INTEGER
, "CLASS3_LOCK_LATCH"
POSITION( 00162:00168) DECIMAL
, "SYNC_IO_SUSP"
POSITION( 00169:00172) INTEGER
, "CLASS3_SYNC_IO"
POSITION( 00173:00179) DECIMAL
, "DB_IO_SUSP"
POSITION( 00180:00183) INTEGER
, "CLASS3_DB_IO"
POSITION( 00184:00190) DECIMAL
, "LOG_WRT_IO_SUSP"
POSITION( 00191:00194) INTEGER
, "CLASS3_LOG_WRT_IO"
POSITION( 00195:00201) DECIMAL
, "OTHER_READ_SUSP"
POSITION( 00202:00205) INTEGER
, "CLASS3_OTHER_READ"
POSITION( 00206:00212) DECIMAL
, "OTHER_WRITE_SUSP"
POSITION( 00213:00216) INTEGER
, "CLASS3_OTHER_WRITE"
POSITION( 00217:00223) DECIMAL
, "SERV_TASK_SUSP"
POSITION( 00224:00227) INTEGER
, "CLASS3_SERV_TASK"
POSITION( 00228:00234) DECIMAL
, "UPD_COMMIT_SUSP"
POSITION( 00235:00238) INTEGER
, "CLASS3_UPD_COMMIT"
POSITION( 00239:00245) DECIMAL
, "OPEN_CLOSE_SUSP"
POSITION( 00246:00249) INTEGER
, "CLASS3_OPEN_CLOSE"
POSITION( 00250:00256) DECIMAL
, "SYSLOGR_REC_SUSP"
POSITION( 00257:00260) INTEGER
, "CLASS3_SYSLOGR_REC"
POSITION( 00261:00267) DECIMAL
, "EXT_DEL_DEF_SUSP"
POSITION( 00268:00271) INTEGER
, "CLASS3_EXT_DEL_DEF"
POSITION( 00272:00278) DECIMAL
, "OTHER_SERV_SUSP"
POSITION( 00279:00282) INTEGER
, "CLASS3_OTHER_SERV"
POSITION( 00283:00289) DECIMAL
, "ARCH_LOG_SUSP"
POSITION( 00290:00293) INTEGER
, "CLASS3_ARCH_LOG"
POSITION( 00294:00300) DECIMAL
, "ARCH_READS_SUSP"
POSITION( 00301:00304) INTEGER
, "CLASS3_ARCH_READS"
POSITION( 00305:00311) DECIMAL
, "DRAIN_LOCK_SUSP"
POSITION( 00312:00315) INTEGER
, "CLASS3_DRAIN_LOCK"
POSITION( 00316:00322) DECIMAL
, "CLAIM_REL_SUSP"
POSITION( 00323:00326) INTEGER
, "CLASS3_CLAIM_REL"
POSITION( 00327:00333) DECIMAL
, "PAGE_LATCH_SUSP"
POSITION( 00334:00337) INTEGER
, "CLASS3_PAGE_LATCH"
POSITION( 00338:00344) DECIMAL
, "SCHED_STPRC_SUSP"
POSITION( 00345:00348) INTEGER
, "CLASS3_SCHED_STPRC"
POSITION( 00349:00355) DECIMAL
, "SCHEDUL_UDF_SUSP"
POSITION( 00356:00359) INTEGER
, "CLASS3_SCHEDUL_UDF"
POSITION( 00360:00366) DECIMAL
, "NOTIFY_MSG_SUSP"
POSITION( 00367:00370) INTEGER
, "CLASS3_NOTIFY_MSG"
POSITION( 00371:00377) DECIMAL
, "GLOBAL_CONT_SUSP"
POSITION( 00378:00381) INTEGER
, "CLASS3_GLOBAL_CONT"
POSITION( 00382:00388) DECIMAL
, "COMMIT"
POSITION( 00389:00392) INTEGER
, "ROLLBACK"
POSITION( 00393:00396) INTEGER
, "INCREMENTAL_BIND"
POSITION( 00397:00400) INTEGER
, "PROGRAMS"
POSITION( 00401:00404) INTEGER
, "SELECT"
POSITION( 00405:00408) INTEGER
, "INSERT"
POSITION( 00409:00412) INTEGER
, "UPDATE"
POSITION( 00413:00416) INTEGER
, "DELETE"
POSITION( 00417:00420) INTEGER
, "DESCRIBE"
POSITION( 00421:00424) INTEGER
, "DESCRIBE_TABLE"
POSITION( 00425:00428) INTEGER
, "PREPARE"
POSITION( 00429:00432) INTEGER
, "OPEN"
POSITION( 00433:00436) INTEGER
, "FETCH"
POSITION( 00437:00440) INTEGER
, "CLOSE"
POSITION( 00441:00444) INTEGER
, "LOCK_TABLE"
POSITION( 00445:00448) INTEGER
, "TIMEOUT"
POSITION( 00449:00452) INTEGER
, "DEADLOCK"
POSITION( 00453:00456) INTEGER
, "SUSPEND_LOCK"
POSITION( 00457:00460) INTEGER
, "SUSPEND_IRLM_LATCH"
POSITION( 00461:00464) INTEGER
, "SUSPEND_OTHER"
POSITION( 00465:00468) INTEGER
, "LOCK_REQ"
POSITION( 00469:00472) INTEGER
, "UNLOCK_REQ"
POSITION( 00473:00476) INTEGER
, "QUERY_REQ"
POSITION( 00477:00480) INTEGER
, "CHANGE_REQ"
POSITION( 00481:00484) INTEGER
, "OTHER_REQ"
POSITION( 00485:00488) INTEGER
, "LOCK_ESC_SHARED"
POSITION( 00489:00492) INTEGER
, "LOCK_ESC_EXCLUSIVE"
POSITION( 00493:00496) INTEGER
, "MAX_LOCKS_HELD"
POSITION( 00497:00500) INTEGER
, "P_LOCK_LOCK"
POSITION( 00501:00504) INTEGER
, "P_LOCK_UNLOCK"
POSITION( 00505:00508) INTEGER
, "P_LOCK_CHANGE"
POSITION( 00509:00512) INTEGER
, "SYNC_XES_LOCK"
POSITION( 00513:00516) INTEGER
, "SYNC_XES_UNLOCK"
POSITION( 00517:00520) INTEGER
, "SYNC_XES_CHANGE"
POSITION( 00521:00524) INTEGER
, "SUSPEND_IRLM_CONT"
POSITION( 00525:00528) INTEGER
, "SUSPEND_XES_CONT"
POSITION( 00529:00532) INTEGER
, "SUSPEND_FALSE_CONT"
POSITION( 00533:00536) INTEGER
, "INCOMPAT_RET_LOCK"
POSITION( 00537:00540) INTEGER
, "NOTIFY_MSG_SENT"
POSITION( 00541:00544) INTEGER
, "RID_POOL_USED"
POSITION( 00545:00548) INTEGER
, "RID_POOL_FAIL_NOSG"
POSITION( 00549:00552) INTEGER
, "RID_POOL_FAIL_MXLT"
POSITION( 00553:00556) INTEGER
, "MAX_SQL_CASCAD_LVL"
POSITION( 00557:00560) INTEGER
, "STPROC_CALL"
POSITION( 00561:00564) INTEGER
, "STPROC_ABEND"
POSITION( 00565:00568) INTEGER
, "STPROC_TIMEOUT"
POSITION( 00569:00572) INTEGER
, "STPROC_REJECTED"
POSITION( 00573:00576) INTEGER
, "UDF_EXECUTED"
POSITION( 00577:00580) INTEGER
, "UDF_ABENDS"
POSITION( 00581:00584) INTEGER
, "UDF_TIMEOUTS"
POSITION( 00585:00588) INTEGER
, "UDF_REJECTED"
POSITION( 00589:00592) INTEGER
, "STATEMENT_TRIGGER"
POSITION( 00593:00596) INTEGER
, "ROW_TRIGGER"
POSITION( 00597:00600) INTEGER
, "TRIGGER_SQL_ERROR"
POSITION( 00601:00604) INTEGER
, "DRAIN_REQ"
POSITION( 00605:00608) INTEGER
, "DRAIN_FAILED"
POSITION( 00609:00612) INTEGER
, "CLAIM_REQ"
POSITION( 00613:00616) INTEGER
, "CLAIM_FAILED"
POSITION( 00617:00620) INTEGER
, "IFI_CALLS"
POSITION( 00621:00624) INTEGER
, "LOG_RECS_CAPTURED"
POSITION( 00625:00628) INTEGER
, "LOG_READS_PERFORM"
POSITION( 00629:00632) INTEGER
, "DATA_ROWS_RETURNED"
POSITION( 00633:00636) INTEGER
, "LOG_RECS_RETURNED"
POSITION( 00637:00640) INTEGER
, "DESCRIPT_RETURNED"
POSITION( 00641:00644) INTEGER
, "TABLES_RETURNED"
POSITION( 00645:00648) INTEGER
, "DESCRIBES_PERFORM"
POSITION( 00649:00652) INTEGER
, "REOPTIMIZATION"
POSITION( 00653:00656) INTEGER
, "PREP_STMT_MATCH"
POSITION( 00657:00660) INTEGER
, "PREP_STMT_NO_MATCH"
POSITION( 00661:00664) INTEGER
, "IMPLICIT_PREPARES"
POSITION( 00665:00668) INTEGER
, "PREP_FROM_CACHE"
POSITION( 00669:00672) INTEGER
, "CACHE_LIMIT_EXCEED"
POSITION( 00673:00676) INTEGER
, "PREP_STMT_PURGED"
POSITION( 00677:00680) INTEGER
, "DIRECT_ACCESS"
POSITION( 00681:00684) INTEGER
, "INDEX_USED"
POSITION( 00685:00688) INTEGER
, "TS_SCAN_USED"
POSITION( 00689:00692) INTEGER
, "LOG_RECS_WRITTEN"
POSITION( 00693:00696) INTEGER
, "BYTES_PER_LOG_REC"
POSITION( 00697:00704) CHAR(00008)
, "MAX_STOR_LOB_VALUE"
POSITION( 00705:00708) INTEGER
, "RLF_TYPE"
POSITION( 00709:00712) INTEGER
, "RLF_TABLE"
POSITION( 00713:00714) CHAR(00002)
, "LIMIT_IN_SU"
POSITION( 00715:00718) INTEGER
, "LIMIT_IN_CPU"
POSITION( 00719:00722) INTEGER
, "HIGHEST_USED_CPU"
POSITION( 00723:00726) INTEGER
, "SET_CURRENT_PREC"
POSITION( 00727:00730) INTEGER
, "FORCE_AT_COMMIT"
POSITION( 00731:00734) INTEGER
, "CLASS3_FORCE_AT_C"
POSITION( 00735:00741) DECIMAL
, "ASYNCH_IXL_REQU"
POSITION( 00742:00745) INTEGER
, "CLASS3_ASYNCH_IXL"
POSITION( 00746:00752) DECIMAL
, "SVPT_REQUESTS"
POSITION( 00753:00756) INTEGER
, "SVPT_RELEASE"
POSITION( 00757:00760) INTEGER
, "SVPT_ROLLBACK"
POSITION( 00761:00764) INTEGER
, "CLASS1_SU_CPU"
POSITION( 00765:00772) DECIMAL
, "CLASS2_SU_CPU"
POSITION( 00773:00780) DECIMAL
, "LLOCK_PARENT_SUSP"
POSITION( 00781:00784) INTEGER
, "CLASS3_LLOCK_PARNT"
POSITION( 00785:00791) DECIMAL
, "LLOCK_CHILD_SUSP"
POSITION( 00792:00795) INTEGER
, "CLASS3_LLOCK_CHILD"
POSITION( 00796:00802) DECIMAL
, "LLOCK_OTHER_SUSP"
POSITION( 00803:00806) INTEGER
, "CLASS3_LLOCK_OTHER"
POSITION( 00807:00813) DECIMAL
, "PLOCK_PSET_SUSP"
POSITION( 00814:00817) INTEGER
, "CLASS3_PLOCK_PSET"
POSITION( 00818:00824) DECIMAL
, "PLOCK_PAGE_SUSP"
POSITION( 00825:00828) INTEGER
, "CLASS3_PLOCK_PAGE"
POSITION( 00829:00835) DECIMAL
, "PLOCK_OTHER_SUSP"
POSITION( 00836:00839) INTEGER
, "CLASS3_PLOCK_OTHER"
POSITION( 00840:00846) DECIMAL
, "CLASS1_IIP_CPU"
POSITION( 00847:00853) DECIMAL
, "CLASS2_IIP_CPU"
POSITION( 00854:00860) DECIMAL
, "IIPCP_ELIGIBLE"
POSITION( 00861:00867) DECIMAL
, "CLASS1_SU_IIP_CPU"
POSITION( 00868:00875) DECIMAL
, "CLASS2_SU_IIP_CPU"
POSITION( 00876:00883) DECIMAL
, "SU_IIPCP_ELIGIBLE"
POSITION( 00884:00891) DECIMAL
, "GROUP_NAME"
POSITION( 00893:00900) CHAR(00008)
NULLIF(00892)=X'FF'
, "INSDATE"
POSITION( 00901:00910) DATE EXTERNAL
)
}¢--- A540769.WK.SQL(PDBGENTN) cre=2010-05-19 mod=2011-05-20-10.54.58 A540769 ---
select timestamp, connect_id, commit,
class2_elapsed/max(1, commit) "ela/com",
class1_elapsed, class2_elapsed,
class2_cpu_total,
update, select, open, fetch,
g.*
from RZ2dd.TACCT_GENERAL g
where timestamp > '2011-05-01-00.00.00'
and plan_name in ('TN7080','TN8110')
order by timestamp desc
with ur
;;;
select *
from RZ2xx.TACCT_GENERAL g
where plan_name in ('TN7080','TN8110')
order by timestamp desc
with ur
;;;
select trunc_timestamp(timestamp, 'IW'),
sum(class2_elapsed ) / sum(select+open+fetch) "ela/sof",
sum(class2_cpu_total ) / sum(select+open+fetch) "cpu/sof",
sum(select+open+fetch) "sof",
sum(class2_elapsed ) ela,
sum(class1_cpu_total ) "c1Cpu",
sum(class2_cpu_total ) "c2Cpu",
sum(class3_global_cont) "gloCon",
sum(class3_DB_IO ) "db io",
sum(select ) "sel",
sum(open ) "open",
sum(fetch ) "fetch",
sum(SUSPEND_IRLM_CONT ) "irmlCont",
sum(SUSPEND_XES_CONT ) "xesCont" ,
sum(SUSPEND_FALSE_CONT ) "falseCont"
from RZ2dd.TACCT_GENERAL g
where timestamp >= '2009-09-01-00.00.00'
-- and connect_id like 'MFT5614P%'
and connect_id like 'TNT780%'
and plan_name in ('TN7080')
-- and insert >= 1
group by trunc_timestamp(timestamp, 'IW')
ORDER BY 1 desc
--ORDER BY CLASS1_ELAPSED desc
with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 9 DAY
and plan_name = 'RB5000'
and insert >= 1
ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
from RZ2XX.TACCT_GENERAL g
with ur
;
}¢--- A540769.WK.SQL(PDBGENTU) cre=2011-05-11 mod=2011-05-11-11.25.31 A540769 ---
//A540769V JOB (CP00,KE50),
// 'CATALOG',MSGCLASS=T,TIME=1440,
// NOTIFY=&SYSUID,REGION=0M
//*MAIN CLASS=LOG
//*
//***************************************************
//* UNLOAD COPY
//***************************************************
//STEP1 EXEC PGM=DSNUTILB,TIME=1440,
// PARM=(DBOC,'A540769.UNLOAC'),
// REGION=0M
//*DSSPRINT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//UTPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSTEMPL DD DSN=DBOC.DBAA.LISTDEF(TEMPL),DISP=SHR
//SYSIN DD *
UNLOAD TABLESPACE DA540769.AGEN
PUNCHDDN TPUNCH UNLDDN TSRECD
SHRLEVEL REFERENCE
}¢--- A540769.WK.SQL(PDBGENUU) cre=2011-07-19 mod=2012-05-08-08.13.57 A540769 ---
set current path oa1p;
select count(*), min(timestamp), max(timestamp)
from Rz2XX.TACCT_GENERAL g
;
select *
from Rz2XX.TACCT_GENERAL g
where plan_name = 'UU5400'
order by timestamp desc
;x;
select
fosFmte7(occurrences) occ,
fosFmte7(commit) com,
fosFmte7(rollback) roll,
fosFmte7( (insert)/ (max(1, commit))) "ins/com",
g.*
from Rz2DD.TACCT_GENERAL g
where plan_name = 'UU0751'
and timestamp > '2011-07-01-00.00.00'
order by timestamp desc
;x;
select class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
-- and connect_id like 'MFT5614P%'
and connect_id like 'TNT780%'
and plan_name in ('TN7080')
-- and insert >= 1
ORDER BY timestamp desc
--ORDER BY CLASS1_ELAPSED desc
with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 9 DAY
and plan_name = 'RB5000'
and insert >= 1
ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
from RZ2XX.TACCT_GENERAL g
with ur
;
}¢--- A540769.WK.SQL(PDBGENVK) cre=2011-09-30 mod=2011-09-30-16.55.03 A540769 ---
select *
from RZ1XX.TACCT_GENERAL g
where plan_Name = 'VK5725'
and subsystem_id like 'DAF%'
and timestamp between '2011-09-29-15.40.00'
and '2011-09-29-19.40.00'
order by timestamp desc
with ur
;x;
select class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
-- and connect_id like 'MFT5614P%'
and connect_id like 'TNT780%'
and plan_name in ('TN7080')
-- and insert >= 1
ORDER BY timestamp desc
--ORDER BY CLASS1_ELAPSED desc
with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 9 DAY
and plan_name = 'RB5000'
and insert >= 1
ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
from RZ2XX.TACCT_GENERAL g
with ur
;
}¢--- A540769.WK.SQL(PDBGENVV) cre=2011-06-03 mod=2012-03-09-16.17.53 A540769 ---
set current path oa1p;
select *
from Rz2MM.TACCT_general g
where plan_name = 'VV6200'
and timestamp > current timestamp - 121 day
and class2_elapsed > 1000
order by class2_elapsed desc
-- order by timestamp desc
with ur
;;;
select *
from RZ2MM.TACCT_general g
where plan_name = 'VV6010'
and timestamp > current timestamp - 5 day
order by timestamp desc
with ur
;;;,
select date(trunc_timestamp(timestamp, 'WW')),
int(sum(occurrences)) occ,
int(sum(commit)) com,
int(sum(rollback)) roll,
count(*) cnt,
fosFmte7(sum(class1_elapsed)/sum(max(occurrences, commit)))c1Ela,
fosFmte7(sum(class2_elapsed)/sum(max(occurrences, commit)))c2Ela,
fosFmte7(sum(class1_cpu_Total)/sum(max(occurrences, commit)))c1Cpu,
fosFmte7(sum(class2_cpu_total)/sum(max(occurrences, commit)))c2Cpu,
min(class1_elapsed / (max(occurrences, commit))) c1ElaMi,
max(class1_elapsed / (max(occurrences, commit))) c1ElaMa,
fosFmte7(real(sum(select ))/sum(max(occurrences, commit)))select,
fosFmte7(real(sum(open ))/sum(max(occurrences, commit)))open ,
fosFmte7(real(sum(fetch ))/sum(max(occurrences, commit)))fetch ,
fosFmte7(real(sum(insert ))/sum(max(occurrences, commit)))insert,
fosFmte7(real(sum(update ))/sum(max(occurrences, commit)))update,
fosFmte7(real(sum(delete ))/sum(max(occurrences, commit)))delete,
min(timestamp), max(timestamp)
from Rz2DD.TACCT_GENERAL g
where plan_name = 'VV5720'
and timestamp > current timestamp - 1 year
group by trunc_timestamp(timestamp, 'WW')
-- group by floor(3*log10(
-- max(1e-9, class1_elapsed/max(occurrences, commit))))
order by min(timestamp) desc
;x;
select class1_elapsed/max(1, commit) "c1Ela/co", g.*
from RZ2xx.TACCT_GENERAL g
where plan_name = 'VV5720'
and
class1_elapsed/max(1, commit) > 60
order by 1 desc
;;;
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
select *
select class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
-- and connect_id like 'MFT5614P%'
and connect_id like 'TNT780%'
and plan_name in ('TN7080')
-- and insert >= 1
ORDER BY timestamp desc
--ORDER BY CLASS1_ELAPSED desc
with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 9 DAY
and plan_name = 'RB5000'
and insert >= 1
ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
from RZ2XX.TACCT_GENERAL g
with ur
;
}¢--- A540769.WK.SQL(PDBGENVZ) cre=2011-01-27 mod=2011-04-07-11.17.54 A540769 ---
set current path = oa1p;
set current path oa1p;
set current schema = RZ2XX;
select timestamp, class1_elapsed, class3_drain_lock, g.*
from TACCT_GENERAL g
where -- timestamp > current timestamp - 2 days
timestamp between '2011-04-03-06.00.00'
and '2011-04-03-07.00.00'
-- and class1_elapsed > 60
-- and rollback > 0
-- and ( corrName like 'QR00315%'
-- or corrName like 'QR00316%'
-- )
and plan_name = 'VZ52C'
-- and CLASS3_DRAIN_LOCK < 10
-- order by timestamp desc
-- order by class1_elapsed desc
-- group by floor(2*log10(class1_elapsed))
order by class1_elapsed desc
fetch first 100 rows only
with ur
;;;
select count(*), dec(avg(class1_elapsed), 8, 4) "c1ElaAvg",
dec(min(class1_elapsed), 8, 4) "c1ElaMin",
dec(max(class1_elapsed), 8, 4) "c1ElaMax"
, fosFmte7(sum(real(select)) /sum(occurrences)) "select"
, fosFmte7(sum(real(fetch )) /sum(occurrences)) "fetch"
, fosFmte7(sum(real(open )) /sum(occurrences)) "open"
, fosFmte7(sum(real(insert)) /sum(occurrences)) "insert"
, fosFmte7(sum(real(update)) /sum(occurrences)) "update"
, fosFmte7(sum(real(delete)) /sum(occurrences)) "delete"
, fosFmte7(sum(real(commit))/sum(occurrences)) "comm"
, fosFmte7(sum(real(rollback))/sum(occurrences)) "rollbac"
, fosFmte7(sum(real(prepare))/sum(occurrences)) "prepare"
, fosFmte7(sum(real(incremental_bind))/sum(occurrences)) "incBind"
, fosFmte7(sum(class1_cpu_total)/sum(occurrences)) "c1Cpu"
, fosFmte7(sum(class2_cpu_total)/sum(occurrences)) "c2Cpu"
, fosFmte7(sum(CLASS3_Sync_IO)/sum(occurrences)) "syIO/oc"
, fosFmte7(sum(log_recs_written)/sum(occurrences)) "logRecs"
, fosFmte7(sum(CLASS3_Lock_Latch) /sum(occurrences)) "c3LoL/oc"
, fosFmte7(sum(CLASS3_GLOBAL_CONT)/sum(occurrences)) "c3Glo/oc"
, fosFmte7(sum(CLASS3_LLOCK_CHILD)/sum(occurrences)) "c3LCh/oc"
, min(timestamp), max(timestamp)
from TACCT_GENERAL g
where -- timestamp > current timestamp - 2 days
-- timestamp between '2011-01-23-09.53.00'
-- and '2011-01-23-09.54.43'
-- and class1_elapsed > 60
-- and rollback > 0
-- and ( corrName like 'QR00315%'
-- or corrName like 'QR00316%'
-- )
plan_name = 'VZ52C'
and CLASS3_DRAIN_LOCK < 10
-- order by timestamp desc
-- order by class1_elapsed desc
group by floor(2*log10(class1_elapsed))
order by 4
fetch first 100 rows only
with ur
;;;
select
timestamp
, fosFmte7((occurrences)) "occs"
, fosFmte7((CLASS3_Sync_IO)/(occurrences)) "syIO/oc"
, fosFmte7((CLASS3_LLOCK_CHILD)/(occurrences)) "c3LCh/oc"
, fosFmte7((class1_elapsed)/(occurrences)) "c1ela"
, fosFmte7((class2_elapsed)/(occurrences)) "c2ela"
, fosFmte7((class1_cpu_total)/(occurrences)) "c1Cpu"
, fosFmte7((class2_cpu_total)/(occurrences)) "c2Cpu"
, fosFmte7((CLASS3_Lock_Latch) /(occurrences)) "c3LoL/oc"
, fosFmte7((CLASS3_GLOBAL_CONT)/(occurrences)) "c3Glo/oc"
, fosFmte7((CLASS3_LLOCK_CHILD)/(occurrences)) "c3LCh/oc"
, fosFmte7((real(commit))/(occurrences)) "comm"
, fosFmte7((real(rollback))/(occurrences)) "roll"
, fosFmte7((real(select))/(occurrences)) "sele"
, fosFmte7((insert)/(occurrences)) "insert"
, g.*
from RZ2MM.TACCT_GENERAL g
where plan_name = 'VZ52C'
and timestamp between '2011-01-25-07.00.00'
and '2011-01-25-11.00.00'
order by clASS1_elapsed / occurrences desc
with ur
;;;;
select
substr(char(trunc_timestamp(timestamp, 'mi')), 1, 16)
, (count(*)) "count"
, fosFmte7(sum(occurrences)) "occs"
, fosFmte7(sum(CLASS3_Sync_IO)/sum(occurrences)) "syIO/oc"
, fosFmte7(sum(CLASS3_LLOCK_CHILD)/sum(occurrences)) "c3LCh/oc"
, fosFmte7(sum(class1_elapsed)/sum(occurrences)) "c1ela"
, fosFmte7(sum(class2_elapsed)/sum(occurrences)) "c2ela"
, fosFmte7(sum(class1_cpu_total)/sum(occurrences)) "c1Cpu"
, fosFmte7(sum(class2_cpu_total)/sum(occurrences)) "c2Cpu"
, fosFmte7(sum(CLASS3_Lock_Latch) /sum(occurrences)) "c3LoL/oc"
, fosFmte7(sum(CLASS3_GLOBAL_CONT)/sum(occurrences)) "c3Glo/oc"
, fosFmte7(sum(CLASS3_LLOCK_CHILD)/sum(occurrences)) "c3LCh/oc"
, fosFmte7(sum(real(commit))/sum(occurrences)) "comm"
, fosFmte7(sum(real(rollback))/sum(occurrences)) "roll"
, fosFmte7(sum(real(select))/sum(occurrences)) "sele"
, fosFmte7(sum(insert)/sum(occurrences)) "insert"
, (sum(case when class1_elapsed/occurrences >= 40
and CLASS3_DRAIN_LOCK / occurrences < 10
then occurrences else 0 end)) "occ>=40"
, fosFmte7(sum(case when class1_elapsed/occurrences >= 40
and CLASS3_DRAIN_LOCK / occurrences < 10
then class1_elapsed else 0 end)) "ela>=40"
, fosFmte7(sum(class1_elapsed)) "ela"
, (sum(case when class1_elapsed/occurrences >= 40
and CLASS3_DRAIN_LOCK / occurrences >= 10
then occurrences else 0 end)) "occ>=40Dr"
, fosFmte7(sum(case when class1_elapsed/occurrences >= 40
and CLASS3_DRAIN_LOCK / occurrences >= 10
then class1_elapsed else 0 end)) "ela>=40Dr"
from RZ2MM.TACCT_GENERAL g
where plan_name = 'VZ52C'
and timestamp between '2011-01-25-07.00.00'
and '2011-01-25-11.00.00'
-- and CLASS3_DRAIN_LOCK / occurrences < 10
group by trunc_timestamp(timestamp, 'mi')
-- order by trunc_timestamp(timestamp, 'mi') asc
order by sum(clASS1_elapsed)/sum(occurrences) desc
with ur
;;;
select
dayOfWeek_iso(max(timestamp)) "Son=1" ,
substr(char(trunc_timestamp(timestamp, 'dd')), 1, 16)
, (count(*)) "count"
, fosFmte7(sum(occurrences)) "occs"
, fosFmte7(sum(class1_elapsed)) "ela"
from RZ2dd.TACCT_GENERAL g
where plan_name = 'VZ52C'
and timestamp > '2010-01-01-00.00.00'
-- and '2011-01-26-10.00.00'
-- and CLASS3_DRAIN_LOCK / occurrences < 10
group by trunc_timestamp(timestamp, 'dd')
order by trunc_timestamp(timestamp, 'dd') desc
with ur
;;;
set current path = oa1p;
select
substr(char(trunc_timestamp(timestamp, 'hh')), 1, 16)
, (count(*)) "count"
, (sum(occurrences)) "occs"
, fosFmte7(sum(class1_elapsed)) "ela"
, (sum(case when class1_elapsed/occurrences >= 40
and CLASS3_DRAIN_LOCK / occurrences < 10
then occurrences else 0 end)) "occ>=40"
, fosFmte7(sum(case when class1_elapsed/occurrences >= 40
and CLASS3_DRAIN_LOCK / occurrences < 10
then class1_elapsed else 0 end)) "ela>=40"
, fosFmte7(sum(class1_elapsed)) "ela"
, (sum(case when class1_elapsed/occurrences >= 40
and CLASS3_DRAIN_LOCK / occurrences >= 10
then occurrences else 0 end)) "occ>=40Dr"
, fosFmte7(sum(case when class1_elapsed/occurrences >= 40
and CLASS3_DRAIN_LOCK / occurrences >= 10
then class1_elapsed else 0 end)) "ela>=40Dr"
from RZ2xx.TACCT_GENERAL g
where plan_name = 'VZ52C'
-- and timestamp > '2011-02-08-08.00.00'
-- and '2011-01-26-10.00.00'
-- and CLASS3_DRAIN_LOCK / occurrences < 10
group by trunc_timestamp(timestamp, 'hh')
order by trunc_timestamp(timestamp, 'hh') desc
with ur
;;;
set current path = oa1p;
select
substr(char(trunc_timestamp(timestamp, 'mi')), 1, 16)
, smallint(count(*)) cnt
, smallint(sum(case when class1_elapsed/occurrences >= 100
then 1 else 0 end)) ">=100"
, smallint(sum(case when class1_elapsed/occurrences < 100
and class1_elapsed/occurrences >= 30
then 1 else 0 end)) ">=30"
, smallint(sum(case when class1_elapsed/occurrences < 30
and class1_elapsed/occurrences >= 10
then 1 else 0 end)) ">=10"
, smallint(sum(case when class1_elapsed/occurrences < 10
and class1_elapsed/occurrences >= 3
then 1 else 0 end)) ">=3"
, smallint(sum(case when class1_elapsed/occurrences < 3
and class1_elapsed/occurrences >= 1
then 1 else 0 end)) ">=1"
, smallint(sum(case when class1_elapsed/occurrences < 1
and class1_elapsed/occurrences >= 0.3
then 1 else 0 end)) ">=0.3"
, smallint(sum(case when class1_elapsed/occurrences < 0.3
and class1_elapsed/occurrences >= 0.1
then 1 else 0 end)) ">=0.1"
, smallint(sum(case when class1_elapsed/occurrences < 0.1
and class1_elapsed/occurrences >= 0.03
then 1 else 0 end)) ">=0.03"
, smallint(sum(case when class1_elapsed/occurrences < 0.03
and class1_elapsed/occurrences >= 0.01
then 1 else 0 end)) ">=0.01"
, smallint(sum(case when class1_elapsed/occurrences < 0.01
and class1_elapsed/occurrences >= 0.003
then 1 else 0 end)) ">=0.003"
, smallint(sum(case when class1_elapsed/occurrences < 0.003
and class1_elapsed/occurrences >= 0.001
then 1 else 0 end)) ">=0.001"
, smallint(sum(case when class1_elapsed/occurrences < 0.001
-- and class1_elapsed/occurrences >= 0.001
then 1 else 0 end)) "< 0.001"
, fosFmte7(sum(class1_elapsed)/sum(occurrences)) "c1Ela/oc"
, fosFmte7(sum(class2_elapsed)/sum(occurrences)) "c2Ela/oc"
, fosFmte7(sum(CLASS3_Lock_Latch) /sum(occurrences)) "c3LoL/oc"
, fosFmte7(sum(CLASS3_GLOBAL_CONT)/sum(occurrences)) "c3Glo/oc"
, fosFmte7(sum(CLASS3_LLOCK_CHILD)/sum(occurrences)) "c3LCh/oc"
, fosFmte7(sum(class2_cpu_total)/sum(occurrences)) "c2Cpu/oc"
, fosFmte7(sum(commit)) "comm"
, fosFmte7(sum(rollback)) "roll"
from RZ2xx.TACCT_GENERAL g
where plan_name = 'VZ52C'
and timestamp between '2011-01-26-08.00.00'
and '2011-01-26-10.00.00'
group by trunc_timestamp(timestamp, 'mi')
order by trunc_timestamp(timestamp, 'mi')
with ur
;;;
select timestamp
-- , subsystem_id
, substr(strip(min(subsystem_id))
|| case when min(subsystem_id) = max(subsystem_id) then ''
else '*' || substr(max(subsystem_id), 4, 1) end, 1, 6)
, fosFmte7(sum(occurrences)) "occ"
, fosFmte7(sum(class1_elapsed)/sum(occurrences)) "c1Ela/oc"
, fosFmte7(sum(class2_elapsed)/sum(occurrences)) "c2Ela/oc"
, fosFmte7(sum(CLASS3_Lock_Latch) /sum(occurrences)) "c3LoL/oc"
, fosFmte7(sum(CLASS3_GLOBAL_CONT)/sum(occurrences)) "c3Glo/oc"
, fosFmte7(sum(CLASS3_LLOCK_CHILD)/sum(occurrences)) "c3LCh/oc"
, fosFmte7(sum(class2_cpu_total)/sum(occurrences)) "c2Cpu/oc"
, fosFmte7(sum(fetch)) "fetch"
, fosFmte7(sum(class1_elapsed)) "c1Ela"
, fosFmte7(sum(class2_elapsed)) "c2Ela"
, fosFmte7(sum(CLASS3_LOCK_LATCH)) "c3LoLa"
, fosFmte7(sum(class1_cpu_total)) "c1Cpu"
, fosFmte7(sum(class2_cpu_total)) "c2Cpu"
, fosFmte7(sum(commit)) "comm"
, fosFmte7(sum(rollback)) "roll"
-- , g.*
from RZ2mm.TACCT_GENERAL g
where plan_name = 'VZ52C'
and timestamp between '2011-01-25-09.00.00'
and '2011-01-25-09.20.00'
group by timestamp
order by timestamp
with ur
;;;
select *
from RZ2xx.TACCT_GENERAL g
where plan_name = 'VZ52C'
and timestamp between '2011-01-25-09.00.00'
and '2011-01-25-09.20.00'
order by class2_elapsed/occurrences desc
with ur
;;;
select timestamp
-- , subsystem_id
, substr(strip(min(subsystem_id))
|| case when min(subsystem_id) = max(subsystem_id) then ''
else '*' || substr(max(subsystem_id), 4, 1) end, 1, 6)
, fosFmte7(sum(occurrences)) "occ"
, fosFmte7(sum(class2_elapsed)/sum(occurrences)) "c2Ela/oc"
, fosFmte7(sum(CLASS3_DRAIN_LOCK) /sum(occurrences)) "c3Dra/oc"
, fosFmte7(sum(class2_cpu_total)/sum(occurrences)) "c2Cpu/oc"
, fosFmte7(sum(fetch)) "fetch"
, fosFmte7(sum(class1_elapsed)) "c1Ela"
, fosFmte7(sum(class2_elapsed)) "c2Ela"
, fosFmte7(sum(CLASS3_DRAIN_LOCK)) "c3Dra"
, fosFmte7(sum(class1_cpu_total)) "c1Cpu"
, fosFmte7(sum(class2_cpu_total)) "c2Cpu"
-- , g.*
from RZ2mm.TACCT_GENERAL g
where plan_name = 'VZ52C'
and timestamp between '2011-01-25-08.00.00'
and '2011-01-25-11.00.00'
group by timestamp
order by timestamp
with ur
;;;
select count(*), sum(occurences), pck_id
from RZ2mm.TACCT_program
select *
from RZ2xx.TACCT_GENERAL g
where plan_name = 'VZ52C'
and timestamp between '2011-01-25-09.00.00'
and '2011-01-25-09.20.00'
order by class2_elapsed/occurrences desc
with ur
;;;
}¢--- A540769.WK.SQL(PDBGENWB) cre=2010-07-28 mod=2011-11-01-14.09.59 A540769 ---
set current path = 'OA1P';
select min(timestamp),
fosFmte7(sum(class1_elapsed)) "c1Elaps",
fosFmte7(sum(class2_elapsed)) "c2Elaps",
fosFmte7(sum(class1_CPU_total)) "c1Cpu",
fosFmte7(sum(class2_CPU_total)) "c2Cpu",
fosFmte7(sum(CLASS1_SU_CPU )) "c1SU",
fosFmte7(sum(CLASS2_SU_CPU )) "c2SU",
fosFmte7(sum(CLASS3_DB_IO)) "dbIO",
fosFmte7(sum(class3_LOG_WRT_IO)) "logIO",
fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
fosFmte7(sum(commit )) "commit",
fosFmte7(sum(deadlock)) "deadlock",
fosFmte7(sum(timeout)) "timeout",
fosFmte7(sum(occurrences)) occ,
fosFmtE7(sum(select)) sel,
fosFmtE7(sum(open)) open,
fosFmtE7(sum(fetch)) fetch,
fosFmtE7(sum(insert)) ins,
fosFmtE7(sum(update)) upd,
fosFmtE7(sum(delete)) del
from RZ2DD.TACCT_GENERAL g
where plan_name = 'WB0640'
and timestamp > '2010-01-01-00.00.00'
group by trunc_timestamp(timestamp, 'MON')
-- and '2010-07-31-20.00.00'
order by 1 desc
;x;
select class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
select timestamp,
fosFmte7(class1_elapsed) "c1Elaps",
fosFmte7(class2_elapsed) "c2Elaps",
fosFmte7(class2_CPU_total) "c2Cpu",
fosFmte7(CLASS3_ARCH_LOG
+CLASS3_ARCH_READS
+CLASS3_ASYNCH_IXL
+CLASS3_CLAIM_REL
+CLASS3_DB_IO
+CLASS3_DRAIN_LOCK
+CLASS3_EXT_DEL_DEF
+CLASS3_FORCE_AT_C
+CLASS3_LLOCK_CHILD
+CLASS3_LLOCK_OTHER
+CLASS3_LLOCK_PARNT
+CLASS3_LOCK_LATCH
+CLASS3_LOG_WRT_IO
+CLASS3_NOTIFY_MSG
+CLASS3_OPEN_CLOSE
+CLASS3_PAGE_LATCH
+CLASS3_PLOCK_OTHER
+CLASS3_PLOCK_PAGE
+CLASS3_PLOCK_PSET
+CLASS3_SCHEDUL_UDF
+CLASS3_SCHED_STPRC
+CLASS3_SERV_TASK
+CLASS3_SYNC_IO
+CLASS3_SYSLOGR_REC
+CLASS3_UPD_COMMIT
) "c3",
fosFmte7(CLASS3_OTHER_READ
+CLASS3_OTHER_SERV
+CLASS3_OTHER_WRITE
+CLASS3_GLOBAL_CONT
) "c3Other",
fosFmte7(CLASS3_LOCK_LATCH + CLASS3_SYNC_IO) ,
fosFmte7(CLASS3_DB_IO + CLASS3_LOG_WRT_IO) ,
g.*
from RZ2DD.TACCT_GENERAL g
where plan_name = 'WB0640'
and timestamp > '2011-01-01-00.00.00'
-- and '2010-07-31-20.00.00'
order by timestamp desc
;x;
select class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
-- and connect_id like 'MFT5614P%'
and connect_id like 'TNT780%'
and plan_name in ('TN7080')
-- and insert >= 1
ORDER BY timestamp desc
--ORDER BY CLASS1_ELAPSED desc
with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 9 DAY
and plan_name = 'RB5000'
and insert >= 1
ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
from RZ2XX.TACCT_GENERAL g
with ur
;
}¢--- A540769.WK.SQL(PDBGENWF) cre=2011-11-01 mod=2011-11-01-16.32.14 A540769 ---
select *
from RZ2XX.TACCT_GENERAL g
where plan_name = 'WF0900'
and timestamp = '2011-10-23-20.51.30.492026'
;
select *
from RZ2MM.TACCT_GENERAL g
where plan_name = 'WF0900'
and timestamp = '2011-10-01-06.24.00.000000'
; ;;;
set current path = 'OA1P';
select int(sum(occurrences)),
fosFmte7(sum(class1_elapsed) / sum(occurrences)) "c1Ela",
fosFmte7(min(class1_elapsed / occurrences)) "min",
fosFmte7(max(class1_elapsed / occurrences)) "max",
min(timestamp) "von", max(timestamp) "bis"
from RZ2MM.TACCT_GENERAL g
where plan_name = 'WF0900'
and timestamp >= '2011-08-01-00.00.00'
group by floor(3 * log10(max(1e-7, class1_elapsed/occurrences)))
order by min(class1_elapsed / occurrences) desc
with ur
;;;
group by trunc_timestamp(timestamp, 'MON')
set current path = 'OA1P';
select min(timestamp),
fosFmte7(sum(class1_elapsed)) "c1Elaps",
fosFmte7(sum(class2_elapsed)) "c2Elaps",
fosFmte7(sum(class1_CPU_total)) "c1Cpu",
fosFmte7(sum(class2_CPU_total)) "c2Cpu",
fosFmte7(sum(CLASS1_SU_CPU )) "c1SU",
fosFmte7(sum(CLASS2_SU_CPU )) "c2SU",
fosFmte7(sum(CLASS3_DB_IO)) "dbIO",
fosFmte7(sum(class3_LOG_WRT_IO)) "logIO",
fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
fosFmte7(sum(commit )) "commit",
fosFmte7(sum(deadlock)) "deadlock",
fosFmte7(sum(timeout)) "timeout",
fosFmte7(sum(occurrences)) occ,
fosFmtE7(sum(select)) sel,
fosFmtE7(sum(open)) open,
fosFmtE7(sum(fetch)) fetch,
fosFmtE7(sum(insert)) ins,
fosFmtE7(sum(update)) upd,
fosFmtE7(sum(delete)) del
from RZ2DD.TACCT_GENERAL g
where plan_name = 'WB0640'
and timestamp > '2010-01-01-00.00.00'
group by trunc_timestamp(timestamp, 'MON')
-- and '2010-07-31-20.00.00'
order by 1 desc
;x;
select class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
select timestamp,
fosFmte7(class1_elapsed) "c1Elaps",
fosFmte7(class2_elapsed) "c2Elaps",
fosFmte7(class2_CPU_total) "c2Cpu",
fosFmte7(CLASS3_ARCH_LOG
+CLASS3_ARCH_READS
+CLASS3_ASYNCH_IXL
+CLASS3_CLAIM_REL
+CLASS3_DB_IO
+CLASS3_DRAIN_LOCK
+CLASS3_EXT_DEL_DEF
+CLASS3_FORCE_AT_C
+CLASS3_LLOCK_CHILD
+CLASS3_LLOCK_OTHER
+CLASS3_LLOCK_PARNT
+CLASS3_LOCK_LATCH
+CLASS3_LOG_WRT_IO
+CLASS3_NOTIFY_MSG
+CLASS3_OPEN_CLOSE
+CLASS3_PAGE_LATCH
+CLASS3_PLOCK_OTHER
+CLASS3_PLOCK_PAGE
+CLASS3_PLOCK_PSET
+CLASS3_SCHEDUL_UDF
+CLASS3_SCHED_STPRC
+CLASS3_SERV_TASK
+CLASS3_SYNC_IO
+CLASS3_SYSLOGR_REC
+CLASS3_UPD_COMMIT
) "c3",
fosFmte7(CLASS3_OTHER_READ
+CLASS3_OTHER_SERV
+CLASS3_OTHER_WRITE
+CLASS3_GLOBAL_CONT
) "c3Other",
fosFmte7(CLASS3_LOCK_LATCH + CLASS3_SYNC_IO) ,
fosFmte7(CLASS3_DB_IO + CLASS3_LOG_WRT_IO) ,
g.*
from RZ2DD.TACCT_GENERAL g
where plan_name = 'WB0640'
and timestamp > '2011-01-01-00.00.00'
-- and '2010-07-31-20.00.00'
order by timestamp desc
;x;
select class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
-- and connect_id like 'MFT5614P%'
and connect_id like 'TNT780%'
and plan_name in ('TN7080')
-- and insert >= 1
ORDER BY timestamp desc
--ORDER BY CLASS1_ELAPSED desc
with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 9 DAY
and plan_name = 'RB5000'
and insert >= 1
ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
from RZ2XX.TACCT_GENERAL g
with ur
;
}¢--- A540769.WK.SQL(PDBGENWI) cre=2010-12-03 mod=2012-06-25-17.48.58 A540769 ---
set current path oa1p;
set current schema = RR2DD;
select *
from rr2dd.TACCT_GENERAL g
where timestamp between '2012-07-30-00.00.00'
and '2012-07-31-00.00.00'
-- and connect_id in('WIS290OP', 'WIS992OP','WIS292OP')
and plan_name = 'NZ0500'
;;;;
select
date(trunc_timestamp(timestamp, 'DDD')) ,
fosfmte7(sum(occurrences)) occ,
fosFmte7(sum(class1_elapsed) / sum(fetch)) "c1Ela/fe",
fosFmte7(sum(class2_elapsed) / sum(fetch)) "c2Ela/fe",
fosFmte7(sum(class2_cpu_total) / sum(fetch)) "c2Cpu/fe",
fosFmte7(sum(class2_cpu_total)) cpu,
fosFmte7(sum(commit)) com,
fosfmte7(sum(select)) sel,
fosFmte7(sum(open)) open ,
fosFmte7(sum(fetch)) fetch,
fosFmte7(sum(fetch) /
sum(open)) "fet/op" ,
sum(fetch) /
sum(open)
from rz2dd.TACCT_GENERAL g
where -- plan_name like 'WI5790%'
plan_name = 'WI5600'
and timestamp > current timestamp -37 days
group by trunc_timestamp(timestamp, 'DDD')
order by 1 desc
with ur for read only
; x
select *
from TACCT_GENERAL g
where -- plan_name like 'WI5790%'
plan_name like 'WI8781%'
and timestamp > current timestamp - 12 days
;;;
select date(timestamp), sum(ASYNCH_IXL_REQU), sum(cLASS3_ASYNCH_IXL)
from TACCT_GENERAL g
where timestamp > '2011-07-01-00.00.00'
group by date(timestamp)
order by 1 desc
;;;
select timestamp,
class1_elapsed,
class2_elapsed,
CLASS3_SYNC_IO,
fosFmte7((CLASS3_SYNC_IO)
/ (SYNC_IO_SUSP)) "synIOTi",
fosFmte7((class2_elapsed)
/ (0.0+select+fetch+insert+update+delete)) "c2Ela/o",
fosFmte7((class2_cpu_total)
/ (0.0+select+fetch+insert+update+delete)) "c2Cpu/o",
fosFmte7((CLASS3_LOCK_LATCH)
/ (0.0+select+fetch+insert+update+delete)) "locLa/o",
fosFmte7((CLASS3_SYNC_IO)
/ (0.0+select+fetch+insert+update+delete)) "synIO/o",
g.*
from TACCT_GENERAL g
where plan_name like 'WI5950%'
and timestamp > current timestamp - 11 days
order by class2_elapsed desc
fetch first 300 rows only
with ur
; x
set current schema = RZ2DD;
select date(timestamp), class1_elapsed, class2_elapsed,
fosFmte7(occurrences) occ,
fosFmtE7( (select)) sel,
fosFmtE7( (insert)) ins,
update upd,
g.*
from TACCT_GENERAL g
where plan_name = 'BE5000'
and timestamp > current timestamp - 5 days
order by class2_elapsed desc
with ur
;
set current schema = RZ2xx;
select timestamp ,
fosFmte7(sum(class2_elapsed)
/ sum(select+fetch+insert+update+delete)) "c2Ela/o",
fosFmte7(sum(class2_cpu_total)
/ sum(select+fetch+insert+update+delete)) "c2Cpu/o",
fosFmte7(sum(CLASS3_LOCK_LATCH)
/ sum(select+fetch+insert+update+delete)) "locLa/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(select+fetch+insert+update+delete)) "synIO/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(SYNC_IO_SUSP)) "synIOTi",
fosFmte7(sum(class1_elapsed)) "c1Ela",
fosFmte7(sum(class2_elapsed)) "c2Ela",
fosFmte7(sum(class2_cpu_total)) "c2Cpu",
fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
fosFmte7(sum(occurrences)) occ,
fosFmtE7(sum(select)) sel,
fosFmtE7(sum(open)) open,
fosFmtE7(sum(fetch)) fetch,
fosFmtE7(sum(insert)) ins,
fosFmtE7(sum(update)) upd,
fosFmtE7(sum(delete)) del
from TACCT_GENERAL g
where plan_name = 'BE5000'
and timestamp > current timestamp - 5 days
group by timestamp
order by sum(class2_elapsed) desc
fetch first 100 rows only
with ur
;
set current schema = RZ2xx;
select date(timestamp),
fosFmte7(sum(class2_elapsed)) "c2ElaSu",
fosFmte7(max(class2_elapsed)) "c2ElaMa",
fosFmte7(sum(select+fetch+insert+update+delete)) "opsSum",
fosFmte7(max(select+fetch+insert+update+delete)) "opsMax",
fosFmte7(sum(class2_cpu_total)
/ sum(select+fetch+insert+update+delete)) "c2Cpu/o",
fosFmte7(sum(CLASS3_LOCK_LATCH)
/ sum(select+fetch+insert+update+delete)) "locLa/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(select+fetch+insert+update+delete)) "synIO/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(SYNC_IO_SUSP)) "synIOTi",
fosFmte7(sum(class1_elapsed)) "c1Ela",
fosFmte7(sum(class2_elapsed)) "c2Ela",
fosFmte7(sum(class2_cpu_total)) "c2Cpu",
fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
fosFmte7(sum(occurrences)) occ,
fosFmtE7(sum(select)) sel,
fosFmtE7(sum(open)) open,
fosFmtE7(sum(fetch)) fetch,
fosFmtE7(sum(insert)) ins,
fosFmtE7(sum(update)) upd,
fosFmtE7(sum(delete)) del
from TACCT_GENERAL g
where plan_name = 'BE5000'
and timestamp > current timestamp - 5 days
group by date(timestamp)
order by sum(class2_elapsed) desc
fetch first 100 rows only
with ur
;
set current schema = RZ2MM;
select min(timestamp), max(timestamp)
from TACCT_GENERAL g
;;
select timestamp,
fosFmte7(sum(class2_elapsed)
/ sum(select+fetch+insert+update+delete)) "c2Ela/o",
fosFmte7(sum(class2_cpu_total)
/ sum(select+fetch+insert+update+delete)) "c2Cpu/o",
fosFmte7(sum(CLASS3_LOCK_LATCH)
/ sum(select+fetch+insert+update+delete)) "locLa/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(select+fetch+insert+update+delete)) "synIO/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(SYNC_IO_SUSP)) "synIOTi",
fosFmte7(sum(class1_elapsed)) "c1Ela",
fosFmte7(sum(class2_elapsed)) "c2Ela",
fosFmte7(sum(class2_cpu_total)) "c2Cpu",
fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
fosFmte7(sum(occurrences)) occ,
fosFmtE7(sum(select)) sel,
fosFmtE7(sum(open)) open,
fosFmtE7(sum(fetch)) fetch,
fosFmtE7(sum(insert)) ins,
fosFmtE7(sum(update)) upd,
fosFmtE7(sum(delete)) del
from TACCT_GENERAL g
where plan_name = 'BE5000'
-- and timestamp > current timestamp - 10 days
group by timestamp
order by sum(class2_elapsed) desc
fetch first 1000 rows only
with ur
; x
select *
from TACCT_GENERAL g
where timestamp > current timestamp - 3 days
and ( corrName like 'MFT15%'
or corrName like 'MFT18%'
or corrName like 'MFT56%'
or connect_id like 'MFT56%'
or corrName = 'MFT3100P'
)
order by timestamp desc
with ur
;
}¢--- A540769.WK.SQL(PDBGENWK) cre=2010-12-22 mod=2010-12-22-12.12.37 A540769 ---
set current path oa1p;
set current schema = RZ1XX;
select timestamp, class1_elapsed, class2_elapsed,
fosFmte7(occurrences) occ,
fosFmtE7( (select)) sel,
fosFmtE7( (insert)) ins,
update upd,
g.*
from TACCT_GENERAL g
where corrName like 'A540769%'
and timestamp between '2010-12-21-00.00.00'
and '2010-12-23-00.00.00'
order by timestamp desc
with ur
; x
select *
from TACCT_GENERAL g
where timestamp > current timestamp - 3 days
and ( corrName like 'MFT15%'
or corrName like 'MFT18%'
or corrName like 'MFT56%'
or connect_id like 'MFT56%'
or corrName = 'MFT3100P'
)
order by timestamp desc
with ur
;
x;
set current path oa1p;
set current schema = RR2HH;
select *
from TACCT_GENERAL g
where timestamp > current timestamp - 5 days
and corrName = 'YMFNVLOH'
order by timestamp desc
with ur
;
x;
select timestamp - class1_elapsed seconds "von",
timestamp "bis",
g.*
from TACCT_GENERAL g
where -- timestamp > current timestamp - 2 days
(corrName like 'A895326%' or corrName like 'MF%')
-- and connect_ID like 'NI229%'
and plan_name like 'MF%'
and subsystem_id like 'DZF%'
-- and insert >= 1
order by timestamp desc
with ur
;x;
select subsystem_id, count(*), min(timestamp), max(timestamp)
from TACCT_GENERAL g
where timestamp >= '2010-07-27-00.00.00'
group by subsystem_id
;x;
select min(timestamp), max(timestamp)
from TACCT_GENERAL g
;x;
with g as
(
select date(timestamp) g1,
case when timestamp between '2000-05-19-11.00.00'
and '2000-05-19-12.30.00' then 'x'
else ' ' end g2,
g.*
from TACCT_GENERAL g
where not timestamp between '2010-05-19-12.30.00'
and '2010-05-19-13.00.00'
)
select min(timestamp - class1_elapsed seconds) "von",
time(max(timestamp)) "bis",
fosFmte7(sum(occurrences)) occ,
fosFmte7(sum(class1_elapsed)) "ela sec",
fosFmte7(sum(class1_cpu_total)) "tot cpu",
fosFmte7(sum(class2_cpu_total)) "db2 cpu",
fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
fosFmte7(sum(CLASS3_GLOBAL_CONT)) "gloCon",
oa1p.fosFmtE7(sum(select)) "select",
oa1p.fosFmtE7(sum(open)) "open",
oa1p.fosFmtE7(sum(fetch)) "fetch",
oa1p.fosFmtE7(sum(commit)) "commit",
oa1p.fosFmtE7(sum(insert)) "insert",
oa1p.fosFmtE7(sum(update)) "update",
oa1p.fosFmtE7(sum(delete)) "delete",
oa1p.fosFmtE7(sum(class2_elapsed)/sum(insert+update)) "ela/i+u" ,
fosFmte7(sum(class2_cpu_total) / sum(insert+update)) "cpu/i+u",
fosFmte7(sum(CLASS3_LOCK_LATCH)/sum(insert+update)) "LocLat/i+u",
fosFmte7(sum(CLASS3_SYNC_IO)/sum(insert+update)) "syncIo/i+u",
count(distinct subsystem_id) "#ssid",
plan_name,
min(connect_id) || '-' || max(connect_id) "connectionId"
from g
where timestamp > current timestamp - 666 days
-- and connect_ID like 'NI229%'
and plan_name in ( 'MF8500', 'MF7230', 'MF7310')
and (plan_name <> 'MF8500' or connect_id like 'MFT56%')
-- and insert >= 1
group by g1, g2, plan_name, left(connect_Id, 5)
having sum(insert+update) > 0
order by plan_Name, 1 desc
with ur
;
X;
xet current path oa1p;
set current schema = RZ2DD;
select date(timestamp),
fosFmte7(sum(occurrences)) occ,
oa1p.fosFmtE7(sum(select)) sel,
oa1p.fosFmtE7(sum(insert)) ins,
oa1p.fosFmtE7(sum(update)) upd,
oa1p.fosFmtE7(sum(delete)) del,
oa1p.fosFmtE7(sum(class2_elapsed)/sum(insert+update)) "ela/i+u" ,
fosFmte7(sum(class2_cpu_total) / sum(insert+update)) "cpu/i+u",
fosFmte7(sum(CLASS3_LOCK_LATCH)/sum(insert+update)) "LocLat/i+u",
fosFmte7(sum(CLASS3_SYNC_IO)/sum(insert+update)) "syncIo/i+u"
from RZ2dd.TACCT_GENERAL g
where timestamp > current timestamp - 1 month
-- and connect_ID like 'NI229%'
and plan_name = 'NI5340'
-- and insert >= 1
group by timestamp
ORDER BY Timestamp desc
with ur
;
X
select plan_name,
fosFmte7(sum(occurrences)) occ,
oa1p.fosFmtE7(sum(select)) sel,
oa1p.fosFmtE7(sum(insert)) ins,
oa1p.fosFmtE7(sum(update)) upd,
oa1p.fosFmtE7(sum(delete)) del,
min(timestamp), max(timestamp)
from TACCT_GENERAL g
where timestamp > '2010-03-21-00.30.00.000'
and timestamp < '2010-03-21-02.30.00.000'
-- and connect_ID like 'NI229%'
-- and plan_name = 'NI5340'
-- and insert >= 1
group by plan_name
order by sum(select+insert+update+delete) desc
with ur
;
X
select sum(select) sel , sum(insert) ins, sum(update) upd,
sum(class2_elapsed) / sum(insert) "ela/ins" ,
sum(class2_cpu_total) / sum(insert) "cpu/ins",
sum(LOCK_LATCH_SUSP),
sum(CLASS3_LOCK_LATCH)/sum(insert) "LocLat/ins",
sum(SYNC_IO_SUSP),
sum(CLASS3_SYNC_IO)/sum(insert) "syncIo/ins",
sum(occurrences) occ,
timestamp
from RZ2hh.TACCT_GENERAL g
where timestamp > current timestamp - 2 DAY
-- and connect_ID like 'NI229%'
and plan_name = 'NI5340'
-- and insert >= 1
ORDER BY Timestamp desc
with ur
;
X
select subsystem_id, count(*), min(timestamp), max(timestamp)
from RR2HH.TACCT_GENERAL g
-- where corrName like 'NI%'
group by subsystem_id
order by subsystem_id
with ur
;
xelect class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RR2HH.TACCT_GENERAL g
where -- timestamp > current timestamp - 120 DAY
corrname like 'NI229%'
-- or corrname like 'NI22922%'
-- and plan_name like 'DSNUT%'
-- and insert >= 1
ORDER BY CLASS1_ELAPSED desc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
}¢--- A540769.WK.SQL(PDBGENWM) cre=2012-03-06 mod=2012-03-06-13.24.02 A540769 ---
select *
from rz1dd.tacct_general
where plan_name = 'WM8105'
and timestamp > current timestamp - 20 days
order by timestamp desc
}¢--- A540769.WK.SQL(PDBGENWN) cre=2012-09-20 mod=2012-09-20-09.13.38 A540769 ---
set current path = oa1p;
with s as(
select real(select+open+fetch+insert+update+delete) sqls,
real(max(1, commit+rollback)) cr,
g.*
from RZ2DD.TACCT_GENERAL g
where plan_name in ('WN5100')
and subsystem_id like 'DOF%'
and timestamp between '2012-08-01-00.00.00'
and '2012-12-02-00.00.00'
)
select plan_name, date(timestamp),
fosFmte7(min(class1_elapsed/sqls) ) "c1ela min",
fosFmte7(max(class1_elapsed/sqls) ) "c1ela max",
fosFmte7(sum(class1_elapsed)/sum(sqls) ) "c1ela/coR",
fosFmte7(sum(class2_elapsed)/sum(sqls) ) "c2ela/coR",
fosFmte7(sum(class1_cpu_total)/sum(sqls)) "c1cpu/coR",
fosFmte7(sum(class2_cpu_total)/sum(sqls)) "c2cpu/coR",
fosFmte7(sum(CLASS3_ASYNCH_IXL) /sum(sqls) ) "c3IXL/coR",
int(sum(occurrences)) "occur",
int(sum(commit)) "commit",
int(sum(rollback)) "rollback",
fosFmte7(sum(sqls) ) "sqls",
fosFmte7(sum(class3_global_cont)/sum(sqls)) "c2gloCon",
fosFmte7(sum(class3_DB_IO)/sum(sqls)) "c3dbIo",
fosFmte7(sum(class3_LOG_WRT_IO)/sum(sqls)) "c2logIo",
fosFmte7(sum(real(OPEN_CLOSE_SUSP))/sum(sqls)) "opClo",
fosFmte7(sum(CLASS3_OPEN_CLOSE)/sum(sqls)) "c3opClo",
fosFmte7(sum(real(SERV_TASK_SUSP))/sum(sqls)) "serTa",
fosFmte7(sum(CLASS3_SERV_TASK)/sum(sqls)) "c3serTa",
fosFmte7(sum(real(commit))/sum(sqls)) "commit",
fosFmte7(sum(real(rollback))/sum(sqls)) "rollback",
fosFmte7(sum(real(select))/sum(sqls)) "select",
fosFmte7(sum(real(open) )/sum(sqls)) "open",
fosFmte7(sum(real(fetch) )/sum(sqls)) "fetch",
fosFmte7(sum(real(insert))/sum(sqls)) "insert",
fosFmte7(sum(real(update))/sum(sqls)) "update",
fosFmte7(sum(real(delete))/sum(sqls)) "delete",
fosFmte7(sum(real(incrEMENTAL_BIND))/sum(sqls))"incremBi",
fosFmte7(sum(real(PROGRAMS)) /sum(sqls)) "pkgs",
min(timestamp), max(timestamp)
from s
-- group by plan_name, floor(log10(class1_elapsed/max(sqls, 1))*3)
-- order by plan_name, min(class1_elapsed/max(sqls, 1))
group by plan_name, timestamp
order by plan_name, timestamp
;;;
??????????????
with s as(
select real(select+open+fetch+insert+update+delete) sqls,
real(max(1, commit+rollback)) cr,
g.*
from RZ2HH.TACCT_GENERAL g
where plan_name in ('PW5200', 'PW5220')
and subsystem_id like 'DOF%'
and timestamp between '2012-01-01-00.00.00'
and '2012-12-02-00.00.00'
)
select trunc_timestamp(timestamp,'HH'),
plan_name,
fosFmte7((class1_elapsed)/(cr) ) "c1ela/coR",
fosFmte7((class2_elapsed)/(cr) ) "c2ela/coR",
fosFmte7((class1_cpu_total)/(cr)) "c1cpu/coR",
fosFmte7((class2_cpu_total)/(cr)) "c2cpu/coR",
fosFmte7((CLASS3_ASYNCH_IXL) /(cr) ) "c3IXL/coR",
int((occurrences)) "occ",
int((commit)) "commit",
int((rollback)) "rollBack",
fosFmte7((sqls)/(cr) ) "sqls/coR",
fosFmte7((class3_global_cont)/(cr)) "c2gloCon",
fosFmte7((class3_DB_IO)/(cr)) "c3dbIo",
fosFmte7((class3_LOG_WRT_IO)/(cr)) "c2logIo",
fosFmte7((real(OPEN_CLOSE_SUSP))/(cr)) "opClo",
fosFmte7((CLASS3_OPEN_CLOSE)/(cr)) "c3opClo",
fosFmte7((real(SERV_TASK_SUSP))/(cr)) "serTa",
fosFmte7((CLASS3_SERV_TASK)/(cr)) "c3serTa",
fosFmte7((real(commit))/(cr)) "commit",
fosFmte7((real(rollback))/(cr)) "rollback",
fosFmte7((real(select))/(cr)) "select",
fosFmte7((real(open) )/(cr)) "open",
fosFmte7((real(fetch) )/(cr)) "fetch",
fosFmte7((real(insert))/(cr)) "insert",
fosFmte7((real(update))/(cr)) "update",
fosFmte7((real(delete))/(cr)) "delete",
fosFmte7((real(INCREMENTAL_BIND))/(cr))"incrBi",
fosFmte7((real(PROGRAMS)) /(cr)) "pkgs"
from s
-- group by trunc_timestamp(timestamp,'HH'), plan_name
order by plan_name, (class1_elapsed)/(cr) desc
fetch first 1000 rows only
;;;
;;;
select count(*), plan_name
from rz1xx.tacct_program
where pck_id = 'YWPR2PX' and group_Name = 'DE0G'
group by plan_name
with ur
set current path = oa1p;
with i as
(
select plan_name
, sum(class2_elapsed) ela
, sum(class2_cpu_total) cpu
, sum(commit) com
, sum(select) sel
, sum(open) op
, sum(fetch) fet
, min(timestamp) von
, max(timestamp) bis
from rz2mm.tacct_general
where timestamp > '2011-01-01 00:00:00' and commit > 0
and plan_name in ('PW0602', 'PW0408')
group by plan_name, floor( 2*log10(class2_elapsed / commit))
)
select plan_name
, fosFmte7(ela / com) "ela/com"
, fosFmte7(com) commit
, fosFmtE7(cpu / com) "cpu/com"
, fosFmtE7(sel / com) "sel/Com"
, fosFmtE7(op / com) "ope/Com"
, fosFmtE7(fet / com) "fet/Com"
, von , bis
from i
order by plan_name, ela/com desc
with ur
}¢--- A540769.WK.SQL(PDBGENWP) cre=2010-11-05 mod=2010-11-05-12.31.01 A540769 ---
select *
from RZ2DD.TACCT_GENERAL g
-- where plan_name = 'MI5700'
where corrName like 'WPT220%'
and timestamp > '2010-11-01-00.00.00'
order by class1_elapsed desc
;x;
select class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
-- and connect_id like 'MFT5614P%'
and connect_id like 'TNT780%'
and plan_name in ('TN7080')
-- and insert >= 1
ORDER BY timestamp desc
--ORDER BY CLASS1_ELAPSED desc
with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 9 DAY
and plan_name = 'RB5000'
and insert >= 1
ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
from RZ2XX.TACCT_GENERAL g
with ur
;
}¢--- A540769.WK.SQL(PDBGENWQ) cre=2010-10-15 mod=2010-10-15-10.04.27 A540769 ---
select date(timestamp),
subsystem_id,
CLASS1_ELAPSED,
CLASS1_cpu_total,
CLASS3_LOCK_LATCH,
CLASS3_SYNC_IO,
CLASS3_DB_IO,
g.*
from RZ2DD.TACCT_GENERAL g
where plan_Name = 'WQ5960'
and timestamp > '2010-10-01-00.00.00'
-- and timestamp < '2010-04-01-00.00.00'
and CLASS2_CPU_total > 100
-- order by CLASS2_CPU_total desc
order by timestamp desc
fetch first 100 rows only
with ur
;x;
select timestamp, plan_name,
sum(occurrences) occ,
sum(CLASS1_ELAPSED) / sum(occurrences) c1Ela ,
sum(CLASS1_CPU_TOTAL) / sum(occurrences) c1Cpu ,
sum(CLASS2_ELAPSED) / sum(occurrences) c2Ela ,
sum(CLASS2_CPU_TOTAL) / sum(occurrences) c2Cpu
from RZ2MM.TACCT_GENERAL g
where plan_Name in ('XBLE80', 'XBLE82', 'XBLE84')
and subsystem_id like 'DBP%'
and timestamp between '2010-09-18-14.00.00'
and '2010-09-18-18.00.00'
group by timestamp, plan_name
order by plan_name, 4 desc
;x;
select class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
-- and connect_id like 'MFT5614P%'
and connect_id like 'TNT780%'
and plan_name in ('TN7080')
-- and insert >= 1
ORDER BY timestamp desc
--ORDER BY CLASS1_ELAPSED desc
with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 9 DAY
and plan_name = 'RB5000'
and insert >= 1
ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
from RZ2XX.TACCT_GENERAL g
with ur
;
}¢--- A540769.WK.SQL(PDBGENXB) cre=2010-12-06 mod=2013-01-11-17.11.24 A540769 ---
set current path oa1p;
set current schema = RZ2dd;
with c as
(
select left(corrname, 4) corr,
date(trunc_timestamp(timestamp - 4 days, 'iw')) + 4 days woche,
(sum(class1_cpu_total)) c1Cpu,
(sum(class2_cpu_total)) c2Cpu,
(sum(class1_elapsed)) c1Ela,
(sum(class2_elapsed)) c2Ela,
(sum(commit)) commit,
(sum(select)) select,
(sum(open )) open,
(sum(fetch )) fetch,
(sum(insert)) insert,
(sum(update)) update,
(sum(delete)) delete,
count(*) count,
(sum(occurrences)) occ ,
count(distinct date(timestamp)) tage,
date(min(timestamp)) wocheVon,
date(min(timestamp)) wocheBis
from TACCT_GENERAL g
where group_name = 'DVBP' and plan_name = 'DSNUTIL'
and timestamp > '2012-09-28-00.00.00'
group by group_name, trunc_timestamp(timestamp - 4 days, 'iw'),
left(corrname, 4)
)
,r as
(
select row_number() over (partition by woche
order by c2Cpu desc) rng
, c.*
from c
)
select woche, corr || '*' corr,
fosFmtE7(c1Cpu) c1Cpu, fosFmtE7(c2Cpu) c2Cpu,
fosFmtE7(c1Ela) c1Ela, fosFmtE7(c2Ela) c2Ela,
fosFmtE7(commit) commit, fosFmtE7(select) select,
fosFmtE7(open) open,
fosFmtE7(fetch) fetch, fosFmtE7(insert) insert,
fosFmtE7(update) update, fosFmtE7(delete) delete,
fosFmtE7(count) count, fosFmtE7(occ) occ,
tage, wocheVon, wocheBis
from r
where rng < 4
order by woche desc, r.c2cpu desc
;;;;;
set current path oa1p;
set current schema = RZ2dd;
with p as
(
select plan_name plan,
date(trunc_timestamp(timestamp - 4 days, 'iw')) + 4 days woche,
(sum(class1_cpu_total)) c1Cpu,
(sum(class2_cpu_total)) c2Cpu,
(sum(class1_elapsed)) c1Ela,
(sum(class2_elapsed)) c2Ela,
(sum(commit)) commit,
(sum(select)) select,
(sum(open )) open,
(sum(fetch )) fetch,
(sum(insert)) insert,
(sum(update)) update,
(sum(delete)) delete,
count(*) count,
(sum(occurrences)) occ ,
count(distinct date(timestamp)) tage,
date(min(timestamp)) wocheVon,
date(min(timestamp)) wocheBis
from TACCT_GENERAL g
where group_name = 'DVBP'
and timestamp > '2012-09-28-00.00.00'
group by group_name, trunc_timestamp(timestamp - 4 days, 'iw'),
plan_name
order by group_name
)
, w as
(
select 0 rng, '*' plan , woche,
sum(c1Cpu) c1Cpu, sum(c2Cpu) c2Cpu,
sum(c1Ela) c1Ela, sum(c2Ela) c2Ela,
sum(commit) commit, sum(select) select, sum(open) open,
sum(fetch) fetch, sum(insert) insert,
sum(update) update, sum(delete) delete,
sum(count) count, sum(occ) occ,
max(tage) tage, min(wocheVon) wocheVon, max(wocheBis) wocheBis
from p
group by woche
)
, r as
(
select row_number() over (partition by woche
order by c2Cpu desc) rng
, p.*
from p
)
, f as
(
select * from w
union all select * from r where rng <= 12
)
select smallInt(rng) rng, plan , woche,
smallint(c1Cpu * 1000/
(select c1Cpu from w where w.woche = f.woche)) c1Prm,
smallint(c2Cpu * 1000/
(select c2Cpu from w where w.woche = f.woche)) c2Prm,
fosFmtE7(c1Cpu) c1Cpu, fosFmtE7(c2Cpu) c2Cpu,
fosFmtE7(c1Ela) c1Ela, fosFmtE7(c2Ela) c2Ela,
fosFmtE7(commit) commit, fosFmtE7(select) select,
fosFmtE7(open) open,
fosFmtE7(fetch) fetch, fosFmtE7(insert) insert,
fosFmtE7(update) update, fosFmtE7(delete) delete,
fosFmtE7(count) count, fosFmtE7(occ) occ,
tage, wocheVon, wocheBis
from f
order by f.plan, f.woche desc
;x
set current path oa1p;
set current schema = RZ2dd;
with p as
(
select plan_name plan,
date(trunc_timestamp(timestamp - 4 days, 'iw')) + 4 days woche,
(sum(class1_cpu_total)) c1Cpu,
(sum(class2_cpu_total)) c2Cpu,
(sum(class1_elapsed)) c1Ela,
(sum(class2_elapsed)) c2Ela,
(sum(commit)) commit,
(sum(select)) select,
(sum(open )) open,
(sum(fetch )) fetch,
(sum(insert)) insert,
(sum(update)) update,
(sum(delete)) delete,
count(*) count,
(sum(occurrences)) occ ,
count(distinct date(timestamp)) tage,
date(min(timestamp)) wocheVon,
date(min(timestamp)) wocheBis
from TACCT_GENERAL g
where group_name = 'DVBP'
and timestamp > '2012-09-28-00.00.00'
group by group_name, trunc_timestamp(timestamp - 4 days, 'iw'),
plan_name
order by group_name
)
, w as
(
select 0 rng, '*' plan , woche,
sum(c1Cpu) c1Cpu, sum(c2Cpu) c2Cpu,
sum(c1Ela) c1Ela, sum(c2Ela) c2Ela,
sum(commit) commit, sum(select) select, sum(open) open,
sum(fetch) fetch, sum(insert) insert,
sum(update) update, sum(delete) delete,
sum(count) count, sum(occ) occ,
max(tage) tage, min(wocheVon) wocheVon, max(wocheBis) wocheBis
from p
group by woche
)
, r as
(
select row_number() over (partition by woche
order by c2Cpu desc) rng
, p.*
from p
)
, f as
(
select * from w
union all select * from r where rng <= 12
)
select smallInt(rng) rng, plan , woche,
fosFmtE7(c1Cpu) c1Cpu, fosFmtE7(c2Cpu) c2Cpu,
fosFmtE7(c1Ela) c1Ela, fosFmtE7(c2Ela) c2Ela,
fosFmtE7(commit) commit, fosFmtE7(select) select,
fosFmtE7(open) open,
fosFmtE7(fetch) fetch, fosFmtE7(insert) insert,
fosFmtE7(update) update, fosFmtE7(delete) delete,
fosFmtE7(count) count, fosFmtE7(occ) occ,
tage, wocheVon, wocheBis
from f
order by f.woche desc, f.c2Cpu desc
;x
wocheVon, c1Cpu, c2Cpu, c1Ela, c2Ela,
commit, select, open, fetch, insert, update, delete,
count, occ, tage, wocheBis
select plan_name, corrName, count(*), sum(class2_cpu_total)
from TACCT_GENERAL g
where ( plan_name like 'XB%'
or corrName like 'XB%'
) and timestamp > '2012-07-06-00.00.00'
and subsystem_id like 'DBP%'
group by plan_name, corrName
;x;
select plan_name, date(timestamp), group_name,
count(*) count,
fosFmte7(sum(class1_elapsed)) c1Ela,
fosFmte7(sum(class1_cpu_total)) c1Cpu,
fosFmte7(sum(class2_cpu_total)) c2Cpu,
fosFmte7(sum(commit)) commit,
fosFmte7(sum(class3_Sync_IO )) "c3Syn",
fosFmte7(min(CLASS3_LOCK_LATCH)) "~c3LoLa",
fosFmte7(min(class2_elapsed)) "c2Ela-",
fosFmte7(max(class2_elapsed)) "-c2Ela",
fosFmte7(min(class2_cpu_total)) "c2Cpu-",
fosFmte7(max(class2_cpu_total)) "-c2Cpu",
fosFmte7(min(class3_Sync_IO )) "c3Syn-",
fosFmte7(max(class3_Sync_Io )) "-c3Syn",
avg(commit) "~commit"
from TACCT_GENERAL g
where plan_name like 'java%'
and timestamp > '2012-06-01-00.00.00'
group by group_name, plan_name, date(timestamp)
order by group_name, plan_name
set current path oa1p;
set current schema = RZ2xx;
select *
from TACCT_GENERAL g
where plan_name = 'XBLE86'
and timestamp > '2012-06-06-00.00.00'
order by insert desc
-- order by class2_elapsed desc
fetch first 100 rows only
;;
set current schema = RZ2xx;
select substr(strip(group_name) || ' ' || strip(connect_type), 1, 9),
count(*) count,
fosFmte7(min(class1_elapsed)) "c1Ela-",
fosFmte7(max(class1_elapsed)) "-c1Ela",
fosFmte7(avg(class1_elapsed)) "~c1Ela",
fosFmte7(avg(class2_elapsed)) "~c2Ela",
fosFmte7(min(class1_cpu_total)) "~c1Cpu",
fosFmte7(min(class2_cpu_total)) "~c2Cpu",
fosFmte7(min(class3_Sync_IO )) "~c3Syn",
fosFmte7(min(CLASS3_LOCK_LATCH)) "~c3LoLa",
fosFmte7(min(class2_elapsed)) "c2Ela-",
fosFmte7(max(class2_elapsed)) "-c2Ela",
fosFmte7(min(class2_cpu_total)) "c2Cpu-",
fosFmte7(max(class2_cpu_total)) "-c2Cpu",
fosFmte7(min(class3_Sync_IO )) "c3Syn-",
fosFmte7(max(class3_Sync_Io )) "-c3Syn",
avg(commit) "~commit"
from TACCT_GENERAL g
where plan_name = 'XBLE80'
and timestamp between '2010-12-03-00.00.00'
and '2010-12-04-00.00.00'
group by group_name, connect_type,
int(log10(max(class1_elapsed, 0.001)) * 2.)
order by group_name, connect_type,
min(class1_elapsed)
;x
set current schema = RZ2xx;
select *
from TACCT_GENERAL g
where plan_name = 'XBLE80'
and timestamp between '2010-12-03-00.00.00'
and '2010-12-04-00.00.00'
and class3_Sync_IO = 0
and CLASS3_LOCK_LATCH = 0
order by class2_elapsed
fetch first 100 rows only
;;
set current schema = RZ2xx;
select *
from TACCT_GENERAL g
where plan_name = 'XBLE80'
and class2_Elapsed > 50
order by class2_Elapsed desc
;x
select timestamp ,
fosFmte7(sum(class2_elapsed)
/ sum(0.0+select+fetch+insert+update+delete)) "c2Ela/o",
fosFmte7(sum(class2_elapsed)
/ sum(0.0+commit)) "c2Ela/c",
fosFmte7(sum(0.0+ select+fetch+insert+update+delete)) "opsSum",
fosFmte7(sum(class2_cpu_total)
/ sum(0.0+select+fetch+insert+update+delete)) "c2Cpu/o",
fosFmte7(sum(CLASS3_LOCK_LATCH)
/ sum(0.0+select+fetch+insert+update+delete)) "locLa/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(0.0+select+fetch+insert+update+delete)) "synIO/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(SYNC_IO_SUSP)) "synIOTi",
fosFmte7(sum(class1_elapsed)) "c1Ela",
fosFmte7(sum(class2_elapsed)) "c2Ela",
fosFmte7(sum(class2_cpu_total)) "c2Cpu",
fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
fosFmte7(sum(occurrences)) occ,
fosFmtE7(sum(0+select)) sel,
fosFmtE7(sum(open)) open,
fosFmtE7(sum(fetch)) fetch,
fosFmtE7(sum(insert)) ins,
fosFmtE7(sum(update)) upd,
fosFmtE7(sum(delete)) del,
fosFmtE7(sum(commit)) commit
from (select g.*, commit coms
from TACCT_GENERAL g) g
where plan_name = 'XBLE80'
and timestamp > current timestamp - 5 days
group by timestamp
-- order by min(timestamp) desc
order by real(sum(class2_elapsed)) / sum(coms) desc
fetch first 100 rows only
with ur
; x
set current schema = RZ2MM;
select timestamp,
fosFmte7((class2_elapsed)
/ (0.0+select+fetch+insert+update+delete)) "c2Ela/o",
fosFmte7((class2_cpu_total)
/ (0.0+select+fetch+insert+update+delete)) "c2Cpu/o",
fosFmte7((CLASS3_LOCK_LATCH)
/ (0.0+select+fetch+insert+update+delete)) "locLa/o",
fosFmte7((CLASS3_SYNC_IO)
/ (0.0+select+fetch+insert+update+delete)) "synIO/o",
fosFmte7((CLASS3_LOG_WRT_IO)
/ (0.0+select+fetch+insert+update+delete)) "logWr/o",
fosFmte7((CLASS3_SYNC_IO)
/ (SYNC_IO_SUSP)) "synIOTi",
commit,
insert,
(0.0+select+fetch+insert+update+delete) "sqls",
g.*
from TACCT_GENERAL g
where plan_name = 'XBLE80' -- and insert/occurrences > 100000
and timestamp > current timestamp - 5 days
order by class2_elapsed
/ (0.0+select+fetch+insert+update+delete) desc
fetch first 300 rows only
with ur
; x
select timestamp,
fosFmte7((class2_elapsed)
/ (0.0+select+fetch+insert+update+delete)) "c2Ela/o",
fosFmte7((class2_cpu_total)
/ (0.0+select+fetch+insert+update+delete)) "c2Cpu/o",
fosFmte7((CLASS3_LOCK_LATCH)
/ (0.0+select+fetch+insert+update+delete)) "locLa/o",
fosFmte7((CLASS3_SYNC_IO)
/ (0.0+select+fetch+insert+update+delete)) "synIO/o",
fosFmte7((CLASS3_SYNC_IO)
/ (SYNC_IO_SUSP)) "synIOTi",
g.*
from TACCT_GENERAL g
where plan_name = 'XB5000'
-- and timestamp > current timestamp - 5 days
order by class2_elapsed desc
fetch first 300 rows only
with ur
; x
set current schema = RZ2DD;
select date(timestamp), class1_elapsed, class2_elapsed,
fosFmte7(occurrences) occ,
fosFmtE7( (select)) sel,
fosFmtE7( (insert)) ins,
update upd,
g.*
from TACCT_GENERAL g
where plan_name = 'BE5000'
and timestamp > current timestamp - 5 days
order by class2_elapsed desc
with ur
;
set current schema = RZ2xx;
select timestamp ,
fosFmte7(sum(class2_elapsed)
/ sum(select+fetch+insert+update+delete)) "c2Ela/o",
fosFmte7(sum(class2_cpu_total)
/ sum(select+fetch+insert+update+delete)) "c2Cpu/o",
fosFmte7(sum(CLASS3_LOCK_LATCH)
/ sum(select+fetch+insert+update+delete)) "locLa/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(select+fetch+insert+update+delete)) "synIO/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(SYNC_IO_SUSP)) "synIOTi",
fosFmte7(sum(class1_elapsed)) "c1Ela",
fosFmte7(sum(class2_elapsed)) "c2Ela",
fosFmte7(sum(class2_cpu_total)) "c2Cpu",
fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
fosFmte7(sum(occurrences)) occ,
fosFmtE7(sum(select)) sel,
fosFmtE7(sum(open)) open,
fosFmtE7(sum(fetch)) fetch,
fosFmtE7(sum(insert)) ins,
fosFmtE7(sum(update)) upd,
fosFmtE7(sum(delete)) del
from TACCT_GENERAL g
where plan_name = 'BE5000'
and timestamp > current timestamp - 5 days
group by timestamp
order by sum(class2_elapsed) desc
fetch first 100 rows only
with ur
;
set current schema = RZ2xx;
select date(timestamp),
fosFmte7(sum(class2_elapsed)) "c2ElaSu",
fosFmte7(max(class2_elapsed)) "c2ElaMa",
fosFmte7(sum(select+fetch+insert+update+delete)) "opsSum",
fosFmte7(max(select+fetch+insert+update+delete)) "opsMax",
fosFmte7(sum(class2_cpu_total)
/ sum(select+fetch+insert+update+delete)) "c2Cpu/o",
fosFmte7(sum(CLASS3_LOCK_LATCH)
/ sum(select+fetch+insert+update+delete)) "locLa/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(select+fetch+insert+update+delete)) "synIO/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(SYNC_IO_SUSP)) "synIOTi",
fosFmte7(sum(class1_elapsed)) "c1Ela",
fosFmte7(sum(class2_elapsed)) "c2Ela",
fosFmte7(sum(class2_cpu_total)) "c2Cpu",
fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
fosFmte7(sum(occurrences)) occ,
fosFmtE7(sum(select)) sel,
fosFmtE7(sum(open)) open,
fosFmtE7(sum(fetch)) fetch,
fosFmtE7(sum(insert)) ins,
fosFmtE7(sum(update)) upd,
fosFmtE7(sum(delete)) del
from TACCT_GENERAL g
where plan_name = 'BE5000'
and timestamp > current timestamp - 5 days
group by date(timestamp)
order by sum(class2_elapsed) desc
fetch first 100 rows only
with ur
;
set current schema = RZ2MM;
select min(timestamp), max(timestamp)
from TACCT_GENERAL g
;;
select timestamp,
fosFmte7(sum(class2_elapsed)
/ sum(select+fetch+insert+update+delete)) "c2Ela/o",
fosFmte7(sum(class2_cpu_total)
/ sum(select+fetch+insert+update+delete)) "c2Cpu/o",
fosFmte7(sum(CLASS3_LOCK_LATCH)
/ sum(select+fetch+insert+update+delete)) "locLa/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(select+fetch+insert+update+delete)) "synIO/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(SYNC_IO_SUSP)) "synIOTi",
fosFmte7(sum(class1_elapsed)) "c1Ela",
fosFmte7(sum(class2_elapsed)) "c2Ela",
fosFmte7(sum(class2_cpu_total)) "c2Cpu",
fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
fosFmte7(sum(occurrences)) occ,
fosFmtE7(sum(select)) sel,
fosFmtE7(sum(open)) open,
fosFmtE7(sum(fetch)) fetch,
fosFmtE7(sum(insert)) ins,
fosFmtE7(sum(update)) upd,
fosFmtE7(sum(delete)) del
from TACCT_GENERAL g
where plan_name = 'BE5000'
-- and timestamp > current timestamp - 10 days
group by timestamp
order by sum(class2_elapsed) desc
fetch first 1000 rows only
with ur
; x
select *
from TACCT_GENERAL g
where timestamp > current timestamp - 3 days
and ( corrName like 'MFT15%'
or corrName like 'MFT18%'
or corrName like 'MFT56%'
or connect_id like 'MFT56%'
or corrName = 'MFT3100P'
)
order by timestamp desc
with ur
;
}¢--- A540769.WK.SQL(PDBGENXC) cre=2010-12-06 mod=2010-12-06-10.50.55 A540769 ---
set current path oa1p;
set current schema = RZ2MM;
select timestamp,
fosFmte7((class2_elapsed)
/ (0.0+select+fetch+insert+update+delete)) "c2Ela/o",
fosFmte7((class2_cpu_total)
/ (0.0+select+fetch+insert+update+delete)) "c2Cpu/o",
fosFmte7((CLASS3_LOCK_LATCH)
/ (0.0+select+fetch+insert+update+delete)) "locLa/o",
fosFmte7((CLASS3_SYNC_IO)
/ (0.0+select+fetch+insert+update+delete)) "synIO/o",
fosFmte7((CLASS3_LOG_WRT_IO)
/ (0.0+select+fetch+insert+update+delete)) "logWr/o",
fosFmte7((CLASS3_SYNC_IO)
/ (SYNC_IO_SUSP)) "synIOTi",
commit,
insert,
(0.0+select+fetch+insert+update+delete) "sqls",
g.*
from TACCT_GENERAL g
where plan_name = 'XB5000' and insert/occurrences > 100000
and timestamp > current timestamp - 50 days
order by class2_elapsed
/ (0.0+select+fetch+insert+update+delete) desc
fetch first 300 rows only
with ur
; x
set current schema = RZ2DD;
select date(timestamp),
fosFmte7(sum(class2_elapsed)) "c2ElaSu",
fosFmte7(max(class2_elapsed)) "c2ElaMa",
fosFmte7(sum(select+fetch+insert+update+delete)) "opsSum",
fosFmte7(max(select+fetch+insert+update+delete)) "opsMax",
fosFmte7(sum(class2_cpu_total)
/ sum(select+fetch+insert+update+delete)) "c2Cpu/o",
fosFmte7(sum(CLASS3_LOCK_LATCH)
/ sum(select+fetch+insert+update+delete)) "locLa/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(select+fetch+insert+update+delete)) "synIO/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(SYNC_IO_SUSP)) "synIOTi",
fosFmte7(sum(class1_elapsed)) "c1Ela",
fosFmte7(sum(class2_elapsed)) "c2Ela",
fosFmte7(sum(class2_cpu_total)) "c2Cpu",
fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
fosFmte7(sum(occurrences)) occ,
fosFmtE7(sum(select)) sel,
fosFmtE7(sum(open)) open,
fosFmtE7(sum(fetch)) fetch,
fosFmtE7(sum(insert)) ins,
fosFmtE7(sum(update)) upd,
fosFmtE7(sum(delete)) del
from TACCT_GENERAL g
where plan_name = 'BE5000'
and timestamp > current timestamp - 100 days
group by date(timestamp)
order by sum(class2_elapsed) desc
-- fetch first 100 rows only
with ur
;
select timestamp,
fosFmte7((class2_elapsed)
/ (0.0+select+fetch+insert+update+delete)) "c2Ela/o",
fosFmte7((class2_cpu_total)
/ (0.0+select+fetch+insert+update+delete)) "c2Cpu/o",
fosFmte7((CLASS3_LOCK_LATCH)
/ (0.0+select+fetch+insert+update+delete)) "locLa/o",
fosFmte7((CLASS3_SYNC_IO)
/ (0.0+select+fetch+insert+update+delete)) "synIO/o",
fosFmte7((CLASS3_SYNC_IO)
/ (SYNC_IO_SUSP)) "synIOTi",
g.*
from TACCT_GENERAL g
where plan_name = 'XB5000'
-- and timestamp > current timestamp - 5 days
order by class2_elapsed desc
fetch first 300 rows only
with ur
; x
set current schema = RZ2DD;
select date(timestamp), class1_elapsed, class2_elapsed,
fosFmte7(occurrences) occ,
fosFmtE7( (select)) sel,
fosFmtE7( (insert)) ins,
update upd,
g.*
from TACCT_GENERAL g
where plan_name = 'BE5000'
and timestamp > current timestamp - 5 days
order by class2_elapsed desc
with ur
;
set current schema = RZ2xx;
select timestamp ,
fosFmte7(sum(class2_elapsed)
/ sum(select+fetch+insert+update+delete)) "c2Ela/o",
fosFmte7(sum(class2_cpu_total)
/ sum(select+fetch+insert+update+delete)) "c2Cpu/o",
fosFmte7(sum(CLASS3_LOCK_LATCH)
/ sum(select+fetch+insert+update+delete)) "locLa/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(select+fetch+insert+update+delete)) "synIO/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(SYNC_IO_SUSP)) "synIOTi",
fosFmte7(sum(class1_elapsed)) "c1Ela",
fosFmte7(sum(class2_elapsed)) "c2Ela",
fosFmte7(sum(class2_cpu_total)) "c2Cpu",
fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
fosFmte7(sum(occurrences)) occ,
fosFmtE7(sum(select)) sel,
fosFmtE7(sum(open)) open,
fosFmtE7(sum(fetch)) fetch,
fosFmtE7(sum(insert)) ins,
fosFmtE7(sum(update)) upd,
fosFmtE7(sum(delete)) del
from TACCT_GENERAL g
where plan_name = 'BE5000'
and timestamp > current timestamp - 5 days
group by timestamp
order by sum(class2_elapsed) desc
fetch first 100 rows only
with ur
;
set current schema = RZ2xx;
select date(timestamp),
fosFmte7(sum(class2_elapsed)) "c2ElaSu",
fosFmte7(max(class2_elapsed)) "c2ElaMa",
fosFmte7(sum(select+fetch+insert+update+delete)) "opsSum",
fosFmte7(max(select+fetch+insert+update+delete)) "opsMax",
fosFmte7(sum(class2_cpu_total)
/ sum(select+fetch+insert+update+delete)) "c2Cpu/o",
fosFmte7(sum(CLASS3_LOCK_LATCH)
/ sum(select+fetch+insert+update+delete)) "locLa/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(select+fetch+insert+update+delete)) "synIO/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(SYNC_IO_SUSP)) "synIOTi",
fosFmte7(sum(class1_elapsed)) "c1Ela",
fosFmte7(sum(class2_elapsed)) "c2Ela",
fosFmte7(sum(class2_cpu_total)) "c2Cpu",
fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
fosFmte7(sum(occurrences)) occ,
fosFmtE7(sum(select)) sel,
fosFmtE7(sum(open)) open,
fosFmtE7(sum(fetch)) fetch,
fosFmtE7(sum(insert)) ins,
fosFmtE7(sum(update)) upd,
fosFmtE7(sum(delete)) del
from TACCT_GENERAL g
where plan_name = 'BE5000'
and timestamp > current timestamp - 5 days
group by date(timestamp)
order by sum(class2_elapsed) desc
fetch first 100 rows only
with ur
;
set current schema = RZ2MM;
select min(timestamp), max(timestamp)
from TACCT_GENERAL g
;;
select timestamp,
fosFmte7(sum(class2_elapsed)
/ sum(select+fetch+insert+update+delete)) "c2Ela/o",
fosFmte7(sum(class2_cpu_total)
/ sum(select+fetch+insert+update+delete)) "c2Cpu/o",
fosFmte7(sum(CLASS3_LOCK_LATCH)
/ sum(select+fetch+insert+update+delete)) "locLa/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(select+fetch+insert+update+delete)) "synIO/o",
fosFmte7(sum(CLASS3_SYNC_IO)
/ sum(SYNC_IO_SUSP)) "synIOTi",
fosFmte7(sum(class1_elapsed)) "c1Ela",
fosFmte7(sum(class2_elapsed)) "c2Ela",
fosFmte7(sum(class2_cpu_total)) "c2Cpu",
fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
fosFmte7(sum(occurrences)) occ,
fosFmtE7(sum(select)) sel,
fosFmtE7(sum(open)) open,
fosFmtE7(sum(fetch)) fetch,
fosFmtE7(sum(insert)) ins,
fosFmtE7(sum(update)) upd,
fosFmtE7(sum(delete)) del
from TACCT_GENERAL g
where plan_name = 'BE5000'
-- and timestamp > current timestamp - 10 days
group by timestamp
order by sum(class2_elapsed) desc
fetch first 1000 rows only
with ur
; x
select *
from TACCT_GENERAL g
where timestamp > current timestamp - 3 days
and ( corrName like 'MFT15%'
or corrName like 'MFT18%'
or corrName like 'MFT56%'
or connect_id like 'MFT56%'
or corrName = 'MFT3100P'
)
order by timestamp desc
with ur
;
}¢--- A540769.WK.SQL(PDBGENXW) cre=2011-02-21 mod=2011-02-21-14.08.24 A540769 ---
set current path oa1p;
set current schema = RZ2XX;
select count(*),
dec(avg(float(class1_elapsed)), 10, 6) avg,
min(class1_elapsed) "c1ElaMin",
max(class1_elapsed) "c1ElaMax",
fosFmte7(avg(CLASS3_SYNC_IO)) "syncIo",
fosFmte7(avg(CLASS3_Log_wrt_IO)) "logIo",
fosFmte7(avg(CLASS3_LOCK_LATCH)) "lockLat",
fosFmte7(avg(CLASS3_GLOBAL_CONT)) "gloCon",
fosFmtE7(avg(select)) "select",
fosFmtE7(avg(open)) "open",
fosFmtE7(avg(fetch)) "fetch",
fosFmtE7(avg(commit)) "commit",
fosFmtE7(avg(rollback)) "rollback",
fosFmtE7(avg(insert)) "insert",
fosFmtE7(avg(update)) "update",
fosFmtE7(avg(delete)) "delete",
min(occurrences) "occMin",
max(occurrences) "occMax",
min(timestamp) "from", max(timestamp) "to"
from TACCT_GENERAL g
where -- timestamp > current timestamp - 4 days
-- timestamp between '2011-01-23-09.53.00'
-- and '2011-01-23-09.54.43'
-- and class1_elapsed > 60
-- and rollback > 0
-- and ( corrName like 'QR00315%'
-- or corrName like 'QR00316%'
-- )
plan_name = 'WU0160'
-- and CLASS3_DRAIN_LOCK < 10
-- order by timestamp desc
-- order by class1_elapsed desc
-- group by floor(2*log10(class1_elapsed))
-- order by floor(2*log10(class1_elapsed))
with ur
;;;
select *
from RZ2XX.TACCT_GENERAL g
where plan_name like 'WU0160%'
and timestamp > '2011-02-17-00.00.00'
order by class2_elapsed desc
;x;
select class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
-- and connect_id like 'MFT5614P%'
and connect_id like 'TNT780%'
and plan_name in ('TN7080')
-- and insert >= 1
ORDER BY timestamp desc
--ORDER BY CLASS1_ELAPSED desc
with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 9 DAY
and plan_name = 'RB5000'
and insert >= 1
ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
from RZ2XX.TACCT_GENERAL g
with ur
;
}¢--- A540769.WK.SQL(PDBGENX1) cre=2012-12-24 mod=2012-12-24-14.27.23 A540769 ---
set current path oa1p;
select plan_name
, subsystem_id
, fosFmte7(sum(OCCURRENCES)) occ
, fosFmte7(sum(commit)) commit
, fosFmte7(sum(class1_elapsed)) c1Ela
, fosFmte7(sum(class1_cpu_total)) c1cpu
, fosFmte7(sum(class1_su_cpu )) c1su
, fosFmte7(sum(class2_elapsed)) c2Ela
, fosFmte7(sum(class2_cpu_total)) c2cpu
, fosFmte7(sum(class2_su_cpu )) c2su
, group_name
, CONNECT_TYPE
, CONNECT_ID
, CORRNAME
, PLAN_NAME
, min(TIMESTAMP)
, max(TIMESTAMP)
from RZ2dd.TACCT_GENERAL g
where plan_name in ('ER0044')
and timestamp between '2012-12-21-00.00.00'
and '2012-12-21-23.59.59'
group by date(timestamp)
, plan_name
, subsystem_id
, group_name
, CONNECT_TYPE
, CONNECT_ID
, CORRNAME
, PLAN_NAME
order by subsystem_id
;;;
with s as(
select date(timestamp) dt, hour(timestamp) hh, int(sum(commit))commit
from RZ2hh.TACCT_GENERAL g
where plan_name in ('ER0044')
and subsystem_id like 'DOF%'
and timestamp between '2012-12-01-00.00.00'
and '2012-12-31-00.00.00'
group by timestamp
)
, d as (
select dt from s group by dt
)
select d.dt,
right(' ' || value(strip(char(s00.commit)), ''), 4)
|| right(' ' || value(strip(char(s01.commit)), ''), 4)
|| right(' ' || value(strip(char(s02.commit)), ''), 4)
|| right(' ' || value(strip(char(s03.commit)), ''), 4)
|| right(' ' || value(strip(char(s04.commit)), ''), 4)
|| right(' ' || value(strip(char(s05.commit)), ''), 4)
|| right(' ' || value(strip(char(s06.commit)), ''), 4)
|| right(' ' || value(strip(char(s07.commit)), ''), 4)
|| right(' ' || value(strip(char(s08.commit)), ''), 4)
|| right(' ' || value(strip(char(s09.commit)), ''), 4)
|| right(' ' || value(strip(char(s10.commit)), ''), 4)
|| right(' ' || value(strip(char(s11.commit)), ''), 4)
|| right(' ' || value(strip(char(s12.commit)), ''), 4)
|| right(' ' || value(strip(char(s13.commit)), ''), 4)
|| right(' ' || value(strip(char(s14.commit)), ''), 4)
|| right(' ' || value(strip(char(s15.commit)), ''), 4)
|| right(' ' || value(strip(char(s16.commit)), ''), 4)
|| right(' ' || value(strip(char(s17.commit)), ''), 4)
|| right(' ' || value(strip(char(s18.commit)), ''), 4)
|| right(' ' || value(strip(char(s19.commit)), ''), 4)
|| right(' ' || value(strip(char(s20.commit)), ''), 4)
|| right(' ' || value(strip(char(s21.commit)), ''), 4)
|| right(' ' || value(strip(char(s22.commit)), ''), 4)
|| right(' ' || value(strip(char(s23.commit)), ''), 4)
from d
left join s s00 on s00.dt = d.dt and s00.hh = 00
left join s s01 on s01.dt = d.dt and s01.hh = 01
left join s s02 on s02.dt = d.dt and s02.hh = 02
left join s s03 on s03.dt = d.dt and s03.hh = 03
left join s s04 on s04.dt = d.dt and s04.hh = 04
left join s s05 on s05.dt = d.dt and s05.hh = 05
left join s s06 on s06.dt = d.dt and s06.hh = 06
left join s s07 on s07.dt = d.dt and s07.hh = 07
left join s s08 on s08.dt = d.dt and s08.hh = 08
left join s s09 on s09.dt = d.dt and s09.hh = 09
left join s s10 on s10.dt = d.dt and s10.hh = 10
left join s s11 on s11.dt = d.dt and s11.hh = 11
left join s s12 on s12.dt = d.dt and s12.hh = 12
left join s s13 on s13.dt = d.dt and s13.hh = 13
left join s s14 on s14.dt = d.dt and s14.hh = 14
left join s s15 on s15.dt = d.dt and s15.hh = 15
left join s s16 on s16.dt = d.dt and s16.hh = 16
left join s s17 on s17.dt = d.dt and s17.hh = 17
left join s s18 on s18.dt = d.dt and s18.hh = 18
left join s s19 on s19.dt = d.dt and s19.hh = 19
left join s s20 on s20.dt = d.dt and s20.hh = 20
left join s s21 on s21.dt = d.dt and s21.hh = 21
left join s s22 on s22.dt = d.dt and s22.hh = 22
left join s s23 on s23.dt = d.dt and s23.hh = 23
order by d.dt desc
;;;;
select plan_name, timestamp,
fosFmte7(sum(class1_cpu_total)) "c1cpu",
fosFmte7(sum(class2_cpu_total)) "c2cpu",
fosFmte7(sum(sqls) ) "sqls",
int(sum(commit)) "commit",
int(sum(rollback)) "rollback",
fosFmte7(sum(real(select))) "select",
fosFmte7(sum(real(open))) "open",
fosFmte7(sum(real(fetch))) "fetch",
fosFmte7(sum(real(insert))) "insert",
fosFmte7(sum(real(update))) "update",
fosFmte7(sum(real(delete))) "delete",
fosFmte7(sum(real(PROGRAMS))) "pkgs"
from s
-- group by plan_name, floor(log10(class1_elapsed/max(sqls, 1))*3)
-- order by plan_name, min(class1_elapsed/max(sqls, 1))
group by plan_name, timestamp
order by plan_name, timestamp desc
;;;
??????????????
with s as(
select real(select+open+fetch+insert+update+delete) sqls,
real(max(1, commit+rollback)) cr,
g.*
from RZ2hh.TACCT_GENERAL g
where plan_name in ('ER0044')
and subsystem_id like 'DOF%'
and timestamp between '2012-12-01-00.00.00'
and '2012-12-31-00.00.00'
)
select plan_name, timestamp,
fosFmte7(sum(class1_cpu_total)) "c1cpu",
fosFmte7(sum(class2_cpu_total)) "c2cpu",
fosFmte7(sum(sqls) ) "sqls",
int(sum(commit)) "commit",
int(sum(rollback)) "rollback",
fosFmte7(sum(real(select))) "select",
fosFmte7(sum(real(open))) "open",
fosFmte7(sum(real(fetch))) "fetch",
fosFmte7(sum(real(insert))) "insert",
fosFmte7(sum(real(update))) "update",
fosFmte7(sum(real(delete))) "delete",
fosFmte7(sum(real(PROGRAMS))) "pkgs"
from s
-- group by plan_name, floor(log10(class1_elapsed/max(sqls, 1))*3)
-- order by plan_name, min(class1_elapsed/max(sqls, 1))
group by plan_name, timestamp
order by plan_name, timestamp desc
;;;
??????????????
with s as(
select real(select+open+fetch+insert+update+delete) sqls,
real(max(1, commit+rollback)) cr,
g.*
from RZ2HH.TACCT_GENERAL g
where plan_name in ('PW5200', 'PW5220')
and subsystem_id like 'DOF%'
and timestamp between '2012-01-01-00.00.00'
and '2012-12-02-00.00.00'
)
select trunc_timestamp(timestamp,'HH'),
plan_name,
fosFmte7((class1_elapsed)/(cr) ) "c1ela/coR",
fosFmte7((class2_elapsed)/(cr) ) "c2ela/coR",
fosFmte7((class1_cpu_total)/(cr)) "c1cpu/coR",
fosFmte7((class2_cpu_total)/(cr)) "c2cpu/coR",
fosFmte7((CLASS3_ASYNCH_IXL) /(cr) ) "c3IXL/coR",
int((occurrences)) "occ",
int((commit)) "commit",
int((rollback)) "rollBack",
fosFmte7((sqls)/(cr) ) "sqls/coR",
fosFmte7((class3_global_cont)/(cr)) "c2gloCon",
fosFmte7((class3_DB_IO)/(cr)) "c3dbIo",
fosFmte7((class3_LOG_WRT_IO)/(cr)) "c2logIo",
fosFmte7((real(OPEN_CLOSE_SUSP))/(cr)) "opClo",
fosFmte7((CLASS3_OPEN_CLOSE)/(cr)) "c3opClo",
fosFmte7((real(SERV_TASK_SUSP))/(cr)) "serTa",
fosFmte7((CLASS3_SERV_TASK)/(cr)) "c3serTa",
fosFmte7((real(commit))/(cr)) "commit",
fosFmte7((real(rollback))/(cr)) "rollback",
fosFmte7((real(select))/(cr)) "select",
fosFmte7((real(open) )/(cr)) "open",
fosFmte7((real(fetch) )/(cr)) "fetch",
fosFmte7((real(insert))/(cr)) "insert",
fosFmte7((real(update))/(cr)) "update",
fosFmte7((real(delete))/(cr)) "delete",
fosFmte7((real(INCREMENTAL_BIND))/(cr))"incrBi",
fosFmte7((real(PROGRAMS)) /(cr)) "pkgs"
from s
-- group by trunc_timestamp(timestamp,'HH'), plan_name
order by plan_name, (class1_elapsed)/(cr) desc
fetch first 1000 rows only
;;;
;;;
select count(*), plan_name
from rz1xx.tacct_program
where pck_id = 'YWPR2PX' and group_Name = 'DE0G'
group by plan_name
with ur
set current path = oa1p;
with i as
(
select plan_name
, sum(class2_elapsed) ela
, sum(class2_cpu_total) cpu
, sum(commit) com
, sum(select) sel
, sum(open) op
, sum(fetch) fet
, min(timestamp) von
, max(timestamp) bis
from rz2mm.tacct_general
where timestamp > '2011-01-01 00:00:00' and commit > 0
and plan_name in ('PW0602', 'PW0408')
group by plan_name, floor( 2*log10(class2_elapsed / commit))
)
select plan_name
, fosFmte7(ela / com) "ela/com"
, fosFmte7(com) commit
, fosFmtE7(cpu / com) "cpu/com"
, fosFmtE7(sel / com) "sel/Com"
, fosFmtE7(op / com) "ope/Com"
, fosFmtE7(fet / com) "fet/Com"
, von , bis
from i
order by plan_name, ela/com desc
with ur
}¢--- A540769.WK.SQL(PDBGENX2) cre=2013-01-07 mod=2013-01-13-20.17.00 A540769 ---
set current path oa1p;
select plan_name planName
, fosFmte7(sum(OCCURRENCES)) occ
, fosFmte7(sum(commit)) commit
, fosFmte7(sum(class1_elapsed)) c1Ela
, fosFmte7(sum(class1_cpu_total)) c1cpu
, fosFmte7(sum(class1_su_cpu )) c1su
, fosFmte7(sum(class2_elapsed)) c2Ela
, fosFmte7(sum(class2_cpu_total)) c2cpu
, fosFmte7(sum(class2_su_cpu )) c2su
, min(subsystem_id), max(subsystem_id)
, min(group_name), max(group_name)
-- , CONNECT_TYPE
-- , CONNECT_ID
-- , CORRNAME
, min(TIMESTAMP)
, max(TIMESTAMP)
from RZ2xx.TACCT_GENERAL g
where 1=1
and subsystem_id like 'DOF%'
and timestamp between '2013-01-04-00.00.00'
and '2013-01-04-23.59.59'
group by date(timestamp)
, plan_name
-- , subsystem_id
-- , group_name
-- , CONNECT_TYPE
-- , CONNECT_ID
-- , CORRNAME
order by sum(class2_cpu_total) desc
fetch first 100 rows only
;;;
select *
from RZ2xx.TACCT_GENERAL g
where plan_name like 'java%'
and subsystem_id like 'DOF%'
and timestamp between '2013-01-04-09.05.00'
and '2013-01-04-09.07.00'
order by class2_cpu_total desc
fetch first 1000 rows only
;x;
set current path oa1p;
select plan_name planName
, fosFmte7(sum(OCCURRENCES)) occ
, fosFmte7(sum(commit)) commit
, fosFmte7(sum(class1_elapsed)) c1Ela
, fosFmte7(sum(class1_cpu_total)) c1cpu
, fosFmte7(sum(class1_su_cpu )) c1su
, fosFmte7(sum(class2_elapsed)) c2Ela
, fosFmte7(sum(class2_cpu_total)) c2cpu
, fosFmte7(sum(class2_su_cpu )) c2su
, min(subsystem_id), max(subsystem_id)
, min(group_name), max(group_name)
-- , CONNECT_TYPE
-- , CONNECT_ID
-- , CORRNAME
, min(TIMESTAMP)
, max(TIMESTAMP)
from RZ2dd.TACCT_GENERAL g
where 1=1
--and plan_name in ('ER0044')
and subsystem_id like 'DOF%'
and timestamp between '2013-01-04-00.00.00'
and '2013-01-04-23.59.59'
group by date(timestamp)
, plan_name
-- , subsystem_id
-- , group_name
-- , CONNECT_TYPE
-- , CONNECT_ID
-- , CORRNAME
order by sum(class2_cpu_total) desc
fetch first 100 rows only
;;;
?????????????????????????????
set current path oa1p;
select planname
, fosFmte7(sum(OCCURRENCES)) occ
, fosFmte7(sum(p2Commits)) commit
, fosFmte7(sum(ELAPSETOD )) c1Ela
, fosFmte7(sum(ELAPSETCB + ELAPSESRB )) c1cpu
, fosFmte7(sum((ELAPSETCB + ELAPSESRB)
*occurrences*16000000/CPUSUCONV))c1su
, fosFmte7(sum(EDB2TOD )) c2Ela
, fosFmte7(sum(EDB2TCB + EDB2SRB )) c2cpu
, fosFmte7(sum((EDB2TCB + EDB2SRB)
*occurrences * 16000000/CPUSUCONV)) c2su
-- , min(cpusuconv), avg(cpusuconv), max(cpusuconv)
, min(subsystem_id), max(subsystem_id)
, min(groupname), max(groupname)
-- , CONNTYPE
-- , CONNECTION
-- , CORRNAME
, min(datetime)
, max(datetime)
from Pbdd.TACCT_GENERAL g
where 1=1
-- and planname in ('ER0044')
and subsystem like 'DOF%'
and datetime between '2013-01-04-00.00.00'
and '2013-01-04-23.59.59'
group by date(datetime)
, planname
-- , subsystem
, groupname
--, CONNTYPE
--, CONNECTion
--, CORRNAME
, PLANNAME
-- order by subsystem
order by sum(EDB2TCB + EDB2SRB ) desc
fetch first 100 rows only
;;;
?????????????????????????????
with s as(
select date(timestamp) dt, hour(timestamp) hh, int(sum(commit))commit
from RZ2hh.TACCT_GENERAL g
where plan_name in ('ER0044')
and subsystem_id like 'DOF%'
and timestamp between '2012-12-01-00.00.00'
and '2012-12-31-00.00.00'
group by timestamp
)
, d as (
select dt from s group by dt
)
select d.dt,
right(' ' || value(strip(char(s00.commit)), ''), 4)
|| right(' ' || value(strip(char(s01.commit)), ''), 4)
|| right(' ' || value(strip(char(s02.commit)), ''), 4)
|| right(' ' || value(strip(char(s03.commit)), ''), 4)
|| right(' ' || value(strip(char(s04.commit)), ''), 4)
|| right(' ' || value(strip(char(s05.commit)), ''), 4)
|| right(' ' || value(strip(char(s06.commit)), ''), 4)
|| right(' ' || value(strip(char(s07.commit)), ''), 4)
|| right(' ' || value(strip(char(s08.commit)), ''), 4)
|| right(' ' || value(strip(char(s09.commit)), ''), 4)
|| right(' ' || value(strip(char(s10.commit)), ''), 4)
|| right(' ' || value(strip(char(s11.commit)), ''), 4)
|| right(' ' || value(strip(char(s12.commit)), ''), 4)
|| right(' ' || value(strip(char(s13.commit)), ''), 4)
|| right(' ' || value(strip(char(s14.commit)), ''), 4)
|| right(' ' || value(strip(char(s15.commit)), ''), 4)
|| right(' ' || value(strip(char(s16.commit)), ''), 4)
|| right(' ' || value(strip(char(s17.commit)), ''), 4)
|| right(' ' || value(strip(char(s18.commit)), ''), 4)
|| right(' ' || value(strip(char(s19.commit)), ''), 4)
|| right(' ' || value(strip(char(s20.commit)), ''), 4)
|| right(' ' || value(strip(char(s21.commit)), ''), 4)
|| right(' ' || value(strip(char(s22.commit)), ''), 4)
|| right(' ' || value(strip(char(s23.commit)), ''), 4)
from d
left join s s00 on s00.dt = d.dt and s00.hh = 00
left join s s01 on s01.dt = d.dt and s01.hh = 01
left join s s02 on s02.dt = d.dt and s02.hh = 02
left join s s03 on s03.dt = d.dt and s03.hh = 03
left join s s04 on s04.dt = d.dt and s04.hh = 04
left join s s05 on s05.dt = d.dt and s05.hh = 05
left join s s06 on s06.dt = d.dt and s06.hh = 06
left join s s07 on s07.dt = d.dt and s07.hh = 07
left join s s08 on s08.dt = d.dt and s08.hh = 08
left join s s09 on s09.dt = d.dt and s09.hh = 09
left join s s10 on s10.dt = d.dt and s10.hh = 10
left join s s11 on s11.dt = d.dt and s11.hh = 11
left join s s12 on s12.dt = d.dt and s12.hh = 12
left join s s13 on s13.dt = d.dt and s13.hh = 13
left join s s14 on s14.dt = d.dt and s14.hh = 14
left join s s15 on s15.dt = d.dt and s15.hh = 15
left join s s16 on s16.dt = d.dt and s16.hh = 16
left join s s17 on s17.dt = d.dt and s17.hh = 17
left join s s18 on s18.dt = d.dt and s18.hh = 18
left join s s19 on s19.dt = d.dt and s19.hh = 19
left join s s20 on s20.dt = d.dt and s20.hh = 20
left join s s21 on s21.dt = d.dt and s21.hh = 21
left join s s22 on s22.dt = d.dt and s22.hh = 22
left join s s23 on s23.dt = d.dt and s23.hh = 23
order by d.dt desc
;;;;
select plan_name, timestamp,
fosFmte7(sum(class1_cpu_total)) "c1cpu",
fosFmte7(sum(class2_cpu_total)) "c2cpu",
fosFmte7(sum(sqls) ) "sqls",
int(sum(commit)) "commit",
int(sum(rollback)) "rollback",
fosFmte7(sum(real(select))) "select",
fosFmte7(sum(real(open))) "open",
fosFmte7(sum(real(fetch))) "fetch",
fosFmte7(sum(real(insert))) "insert",
fosFmte7(sum(real(update))) "update",
fosFmte7(sum(real(delete))) "delete",
fosFmte7(sum(real(PROGRAMS))) "pkgs"
from s
-- group by plan_name, floor(log10(class1_elapsed/max(sqls, 1))*3)
-- order by plan_name, min(class1_elapsed/max(sqls, 1))
group by plan_name, timestamp
order by plan_name, timestamp desc
;;;
??????????????
with s as(
select real(select+open+fetch+insert+update+delete) sqls,
real(max(1, commit+rollback)) cr,
g.*
from RZ2hh.TACCT_GENERAL g
where plan_name in ('ER0044')
and subsystem_id like 'DOF%'
and timestamp between '2012-12-01-00.00.00'
and '2012-12-31-00.00.00'
)
select plan_name, timestamp,
fosFmte7(sum(class1_cpu_total)) "c1cpu",
fosFmte7(sum(class2_cpu_total)) "c2cpu",
fosFmte7(sum(sqls) ) "sqls",
int(sum(commit)) "commit",
int(sum(rollback)) "rollback",
fosFmte7(sum(real(select))) "select",
fosFmte7(sum(real(open))) "open",
fosFmte7(sum(real(fetch))) "fetch",
fosFmte7(sum(real(insert))) "insert",
fosFmte7(sum(real(update))) "update",
fosFmte7(sum(real(delete))) "delete",
fosFmte7(sum(real(PROGRAMS))) "pkgs"
from s
-- group by plan_name, floor(log10(class1_elapsed/max(sqls, 1))*3)
-- order by plan_name, min(class1_elapsed/max(sqls, 1))
group by plan_name, timestamp
order by plan_name, timestamp desc
;;;
??????????????
with s as(
select real(select+open+fetch+insert+update+delete) sqls,
real(max(1, commit+rollback)) cr,
g.*
from RZ2HH.TACCT_GENERAL g
where plan_name in ('PW5200', 'PW5220')
and subsystem_id like 'DOF%'
and timestamp between '2012-01-01-00.00.00'
and '2012-12-02-00.00.00'
)
select trunc_timestamp(timestamp,'HH'),
plan_name,
fosFmte7((class1_elapsed)/(cr) ) "c1ela/coR",
fosFmte7((class2_elapsed)/(cr) ) "c2ela/coR",
fosFmte7((class1_cpu_total)/(cr)) "c1cpu/coR",
fosFmte7((class2_cpu_total)/(cr)) "c2cpu/coR",
fosFmte7((CLASS3_ASYNCH_IXL) /(cr) ) "c3IXL/coR",
int((occurrences)) "occ",
int((commit)) "commit",
int((rollback)) "rollBack",
fosFmte7((sqls)/(cr) ) "sqls/coR",
fosFmte7((class3_global_cont)/(cr)) "c2gloCon",
fosFmte7((class3_DB_IO)/(cr)) "c3dbIo",
fosFmte7((class3_LOG_WRT_IO)/(cr)) "c2logIo",
fosFmte7((real(OPEN_CLOSE_SUSP))/(cr)) "opClo",
fosFmte7((CLASS3_OPEN_CLOSE)/(cr)) "c3opClo",
fosFmte7((real(SERV_TASK_SUSP))/(cr)) "serTa",
fosFmte7((CLASS3_SERV_TASK)/(cr)) "c3serTa",
fosFmte7((real(commit))/(cr)) "commit",
fosFmte7((real(rollback))/(cr)) "rollback",
fosFmte7((real(select))/(cr)) "select",
fosFmte7((real(open) )/(cr)) "open",
fosFmte7((real(fetch) )/(cr)) "fetch",
fosFmte7((real(insert))/(cr)) "insert",
fosFmte7((real(update))/(cr)) "update",
fosFmte7((real(delete))/(cr)) "delete",
fosFmte7((real(INCREMENTAL_BIND))/(cr))"incrBi",
fosFmte7((real(PROGRAMS)) /(cr)) "pkgs"
from s
-- group by trunc_timestamp(timestamp,'HH'), plan_name
order by plan_name, (class1_elapsed)/(cr) desc
fetch first 1000 rows only
;;;
;;;
select count(*), plan_name
from rz1xx.tacct_program
where pck_id = 'YWPR2PX' and group_Name = 'DE0G'
group by plan_name
with ur
set current path = oa1p;
with i as
(
select plan_name
, sum(class2_elapsed) ela
, sum(class2_cpu_total) cpu
, sum(commit) com
, sum(select) sel
, sum(open) op
, sum(fetch) fet
, min(timestamp) von
, max(timestamp) bis
from rz2mm.tacct_general
where timestamp > '2011-01-01 00:00:00' and commit > 0
and plan_name in ('PW0602', 'PW0408')
group by plan_name, floor( 2*log10(class2_elapsed / commit))
)
select plan_name
, fosFmte7(ela / com) "ela/com"
, fosFmte7(com) commit
, fosFmtE7(cpu / com) "cpu/com"
, fosFmtE7(sel / com) "sel/Com"
, fosFmtE7(op / com) "ope/Com"
, fosFmtE7(fet / com) "fet/Com"
, von , bis
from i
order by plan_name, ela/com desc
with ur
}¢--- A540769.WK.SQL(PDBGENY2) cre=2012-12-24 mod=2013-01-07-13.32.12 A540769 ---
//A540769Z JOB (CP00,KE50), 00010001
// MSGCLASS=T,TIME=1440,
// NOTIFY=A540769
//*MAIN CLASS=LOG0 SYSTEM=S12
//SELDD EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99 00020001
//SYSTSIN DD *
DSN SYSTEM(DBOC)
RUN PROGRAM(DSNTEP2) PARMS('ALIGN(LHS)') PLAN(DSNTEP2)
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSTERM DD DUMMY
//SYSIN DD *
select timestamp
, plan_name
, subsystem_id
, OCCURRENCES
, commit
, class1_elapsed
, class1_cpu_total
, class1_su_cpu
, class2_elapsed
, class2_cpu_total
, class2_su_cpu
, group_name
, CONNECT_TYPE
, CONNECT_ID
, CORRNAME
from RZ2dd.TACCT_GENERAL g
where plan_name in ('ER0044')
and timestamp between '2012-12-21-00.00.00'
and '2012-12-21-23.59.59'
order by subsystem_id
, timestamp
//SELXX EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99 00020001
//SYSTSIN DD *
DSN SYSTEM(DBOC)
RUN PROGRAM(DSNTEP2) PARMS('ALIGN(LHS)') PLAN(DSNTEP2)
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSTERM DD DUMMY
//SYSIN DD *
select timestamp
, plan_name
, subsystem_id
, OCCURRENCES
, commit
, class1_elapsed
, class1_cpu_total
, class1_su_cpu
, class2_elapsed
, class2_cpu_total
, class2_su_cpu
, group_name
, CONNECT_TYPE
, CONNECT_ID
, CORRNAME
from RZ2dd.TACCT_GENERAL g
where plan_name in ('ER0044')
and timestamp between '2012-12-21-00.00.00'
and '2012-12-21-23.59.59'
order by subsystem_id
, timestamp
}¢--- A540769.WK.SQL(PDBGEN4) cre=2010-02-13 mod=2010-02-16-15.51.15 A540769 ---
select plan_name, pck_id
from RZ2DD.TACCT_program g
where -- plan_Name like 'TP500%'
pck_id in ('TP0900' ,
'TP0910' ,
'TP0920' ,
'YTPFLAG')
and timestamp > current timestamp - 70 days
-- and hour(timestamp) between 19 and 21
group by plan_name, pck_id
order by 1, 2
with ur
;
xelect *
from RZ2XX.TACCT_general g
where
-- CONNECT_TYPE in ('DRDA', 'DB2 PRIV')
-- ere -- plan_Name like 'TP500%'
plan_name = 'XBLE80'
-- 'TP5090')
and timestamp > current timestamp - 24 hours
-- and hour(timestamp) between 19 and 21
order by timestamp asc
--group by plan_name
with ur
;
select *
from RZ2XX.TACCT_program g
where
-- CONNECT_TYPE in ('DRDA', 'DB2 PRIV')
-- ere -- plan_Name like 'TP500%'
plan_name = 'XBLE80'
-- 'TP5090')
and timestamp > current timestamp - 24 hours
-- and hour(timestamp) between 19 and 21
order by timestamp asc
--group by plan_name
with ur
;
xelect *
from RZ2XX.TACCT_general g
where -- plan_Name like 'TP500%'
plan_name in ('TP0920' ,
'TP5090')
and timestamp > current timestamp - 12 hours
-- and hour(timestamp) between 19 and 21
order by timestamp asc
--group by plan_name
with ur
;
select *
from RZ2XX.TACCT_program g
where -- plan_Name like 'TP500%'
pck_id in ('TP0900' ,
'TP0910' ,
'TP0920' ,
'YTPFLAG')
and timestamp > current timestamp - 12 hours
-- and hour(timestamp) between 19 and 21
order by timestamp asc
--group by plan_name
with ur
;
xelect sum(occurrences), pck_id, pck_collection_id
from RZ2DD.TACCT_program g
where -- plan_Name like 'TP500%'
plan_name in ('TP0900' ,
'TP0910' ,
'TP5000' ,
'TP5090')
and timestamp > current timestamp - 55 days
-- and hour(timestamp) between 19 and 21
--order by timestamp desc
group by pck_id, pck_collection_id
with ur
;
select plan_name, sum(occurrences)
from RZ2DD.TACCT_program g
where -- plan_Name like 'TP500%'
pck_id in ('TP0900' ,
'TP0910' ,
'TP0920' ,
'YTPFLAG')
and timestamp > current timestamp - 55 days
-- and hour(timestamp) between 19 and 21
--order by timestamp desc
group by plan_name
with ur
;
select *
from RZ4MM.TACCT_program g
where -- plan_Name like 'TP500%'
pck_id in ('TP0900' ,
'TP0910' ,
'TP0920' ,
'YTPFLAG')
and timestamp > current timestamp - 20 days
and hour(timestamp) between 19 and 21
order by timestamp desc
with ur
;
xelect count(*), sum(occurrences), plan_name, pck_id, PCK_COLLECTION_ID,
min(timestamp), max(timestamp)
from RZ2DD.TACCT_Program g
where -- CONNECT_TYPE in ('DRDA', 'DB2 PRIV')
PLAN_NAME = 'TP5000'
and timestamp > current timestamp - 33 days
group by plan_name, pck_id, PCK_COLLECTION_ID
order by plan_name, pck_id, PCK_COLLECTION_ID
;
xelect CONNECT_TYPE , plan_name, count(occurrences), count(*)
from RZ4DD.TACCT_general g
where CONNECT_TYPE in ('DRDA', 'DB2 PRIV')
and timestamp > current timestamp - 21 days
group by CONNECT_TYPE , plan_name
order by 1, 2
;
xelect *
from RZ4DD.TACCT_general g
where -- CONNECT_TYPE in ('DRDA', 'DB2 PRIV')
PLAN_NAME = 'TP5000'
and timestamp > current timestamp - 33 days
order by timestamp
;
x
select plan_name, count(*)
from RZ4HH.TACCT_Program g
where -- CONNECT_TYPE in ('DRDA', 'DB2 PRIV')
-- PLAN_NAME = 'TP5000'
timestamp > current timestamp - 33 days
group by plan_name
order by 1 -- timestamp
;
x
group by CONNECT_TYPE
order by CONNECT_TYPE
;
pck_id in ('TP5000' ,
select *
from RZ4HH.TACCT_program g
where -- plan_Name like 'TP500%'
and timestamp > current timestamp - 20 days
pck_id in ('TP5000' ,
'YCDSGET',
'YCDUVGE',
'YDESTEU',
'YDIEURE',
'YDIT001',
'YDIT002',
'YDIT003',
'YDIT004',
'YTPFLAG',
'YTPOBS' ,
'YTPTPS' ,
'YTREDB2',
'YTPFLAG')
and timestamp > current timestamp - 20 days
order by timestamp desc
with ur
;
xelect count(*), pck_id, PCK_COLLECTION_ID
from RZ2HH.TACCT_program g
where plan_Name = 'TP5000'
and timestamp > current timestamp - 20 days
group by pck_id, PCK_COLLECTION_ID
order by pck_id, PCK_COLLECTION_ID
with ur
;
select *
from RZ2HH.TACCT_program g
where plan_Name like 'TP500%'
and timestamp > current timestamp - 20 days
order by timestamp desc
with ur
;
xelect *
from RZ2HH.TACCT_GENERAL g
where plan_Name like 'TP500%'
and timestamp > current timestamp - 20 days
order by timestamp desc
with ur
;
xelect subsystem_id, count(*), min(timestamp), max(timestamp)
from RZ2HH.TACCT_GENERAL g
group by subsystem_id
order by subsystem_id
with ur
;
xelect class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RR2HH.TACCT_GENERAL g
where -- timestamp > current timestamp - 120 DAY
corrname like 'NI229%'
-- or corrname like 'NI22922%'
-- and plan_name like 'DSNUT%'
-- and insert >= 1
ORDER BY CLASS1_ELAPSED desc
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 9 DAY
and plan_name = 'RB5000'
and insert >= 1
ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
}¢--- A540769.WK.SQL(PDBLOAD) cre=2008-11-14 mod=2008-11-14-09.56.20 F540769 ---
select count(*), utility_type
from oa1a.tadm11a1
group by utility_type
}¢--- A540769.WK.SQL(PDBPCKG) cre=2008-08-06 mod=2009-09-01-17.24.25 A540769 ---
SELECT min(timestamp) ,
left(SUBSYSTEM_ID, 3),
SUM(OCCURRENCES) OCCURRENCES,
SUM(SQL_STMTS_ISSUED) stmts,
SUM(CLASS7_ELAPSED ) elaps,
SUM(CLASS7_CPU_TOTAL ) cpu,
SUM(CLASS7_ELAPSED )/SUM(SQL_STMTS_ISSUED) "elaps/stmt" ,
SUM(CLASS7_CPU_TOTAL )/SUM(SQL_STMTS_ISSUED) "cpu/stmt"
FROM RZ2DD.TACCT_PROGRAM
WHERE TIMESTAMP >= '2009-05-01-00.00.00.000000'
AND TIMESTAMP <= '2099-07-02-00.00.00.000000'
AND PCK_ID = 'BU021@I'
AND SUBSYSTEM_ID LIKE 'DOF%'
GROUP BY trunc_TIMESTAMP(timestamp, 'day'), left(SUBSYSTEM_ID, 3)
ORDER BY 1 DESC
with ur
;
x
SELECT timestamp, count(*),
sum(case when PCK_ID = 'BU021@I' then 1 else 0 end)
FROM RZ2DD.TACCT_PROGRAM
where subsystem_id like 'DOF%'
group by timestamp
order by 1 desc
with ur
;
x
}¢--- A540769.WK.SQL(PDBPEAK) cre=2012-05-25 mod=2012-05-25-13.42.57 A540769 ---
set current path = oa1p;
select trunc_timestamp(timestamp, 'hh'),
fosFmtE7(sum(CLASS1_CPU_TOTAL/3600 )) "c1cpu",
fosFmtE7(sum(CLASS2_CPU_TOTAL/3600 )) "c2cpu"
from rz2hh.tacct_General
where subsystem_id like 'DOF4%'
and timestamp > current timestamp -10 days
and dayofweek_iso(timestamp) <= 5
AND hour(timestamp) between 9 and 11
group by trunc_timestamp(timestamp, 'hh')
order by 1 desc
with ur
;;;
select trunc_timestamp(timestamp, 'hh'),
fosFmtE7(sum(CLASS7_CPU_TOTAL/3600 )) "c7cpu"
from rz2hh.tacct_Program
where subsystem_id like 'DOF%'
and timestamp > current timestamp -10 days
and dayofweek_iso(timestamp) <= 5
AND hour(timestamp) between 9 and 11
group by trunc_timestamp(timestamp, 'hh')
order by 1 desc
with ur
;;;
}¢--- A540769.WK.SQL(PDBPKG) cre=2012-03-29 mod=2012-03-29-15.09.51 A540769 ----
set current path oa1p;
select count(*), group_name,
min(timestamp), max(timestamp)
from rz1xx.tacct_program
group by group_name, trunc_timestamp(timestamp, 'ddd')
order by min(TIMESTAMP) desc, group_name
with ur
;
}¢--- A540769.WK.SQL(PDBPKGAV) cre=2012-05-22 mod=2012-06-04-07.29.47 A540769 ---
set current path oa1p;
select
trunc_timestamp(timestamp, 'hh'),
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(sum(OCCURRENCES )) "occ",
min(subsystem_id) subMin ,
max(subsystem_id) subMax ,
min(timestamp) tstMin,
max(timestamp) tstMax
from rz2hh.tacct_program
where pck_id = 'YAVRATE'
and subsystem_id like 'DOF%'
and timestamp > current timestamp - 5 days
group by pck_id, trunc_timestamp(timestamp, 'hh')
having sum(SQL_STMTS_ISSUED) >= 1e3
order by 1 desc
;;;
set current path oa1p;
select
-- trunc_timestamp(timestamp, 'day'),
-- min(date(timestamp)),
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end,
PLAN_NAME ,
GROUP_NAME grp,
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(sum(OCCURRENCES )) "occ",
substr(PCK_COLLECTION_ID, 1, 8) coll,
min(subsystem_id) subMin ,
max(subsystem_id) subMax ,
min(timestamp) tstMin,
max(timestamp) tstMax
from rz2hh.tacct_program
where pck_id in ('AV373@I')
and subsystem_id like 'DOF%'
and timestamp > current timestamp - 11 days
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
and dayofweek_iso(timestamp) <= 5
AND hour(timestamp) between 9 and 11
group by group_name, plan_name, PCK_COLLECTION_ID,PCK_id
-- , trunc_timestamp(timestamp, 'ddd')
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
order by group_name -- , PCK_COLLECTION_ID,PCK_id
, sum(CLASS7_CPU_TOTAL) desc
, plan_name
-- , min(TIMESTAMP) desc
-- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
date(trunc_timestamp(timestamp, 'ddd')),
-- min(date(timestamp)),
-- max(SUBSYSTEM_ID )),
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(sum(OCCURRENCES )) "occ",
substr(PCK_COLLECTION_ID, 1, 8) coll,
min(subsystem_id) subMin ,
max(subsystem_id) subMax ,
min(timestamp) tstMin,
max(timestamp) tstMax
from rz2dd.tacct_program
where pck_id in ('YCDSGET')
and subsystem_id like 'DOF%'
and timestamp > current timestamp - 11 days
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
-- and dayofweek_iso(timestamp) <= 5
-- AND hour(timesta p) between 9 and 11
group by pck_id, pck_collection_id ,
trunc_timestamp(timestamp, 'ddd')
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
order by pck_id, trunc_timestamp(timestamp, 'ddd') desc
;;;
select *
from rz2dd.tacct_general
where plan_name in ('WB0670'
,'WI0180'
,'WQ0030'
,'WC0218'
,'WQ5110'
)
and timestamp > current timestamp - 3 days
order by plan_name, timestamp desc
;;;;
select
date(timestamp),
fosFmtE7(sum(OCCURRENCES )) "occ",
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end,
PLAN_NAME ,
substr(PCK_COLLECTION_ID, 1, 8) coll,
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
min(left(subsystem_id, 3)) sub
from rz2dd.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
and timestamp > '2011-08-01-00.00.00'
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
group by plan_name, PCK_COLLECTION_ID,PCK_id
, date(timestamp)
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
order by plan_name, PCK_COLLECTION_ID,PCK_id
, min(TIMESTAMP) desc
-- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
PLAN_NAME ,
-- substr(PCK_COLLECTION_ID, 1, 8) coll,
-- substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(OCCURRENCES )) "occ",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
from rz2xx.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
-- and timestamp > current timestamp - 7 day
-- timestamp between '2010-01-10-00.00.00'
-- and '2010-02-20-00.00.00'
group by plan_name ,
floor(3. * log10(
max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
with ur
;;;
}¢--- A540769.WK.SQL(PDBPKGA1) cre=2012-09-05 mod=2012-09-05-14.11.47 A540769 ---
select count(*), sum(occurrences), max(Timestamp),
strip(plan_name) || '.'
|| strip(PCK_COLLECTION_ID) || '.'
|| strip(PCK_ID) || ' ' group_name
from rz1dd.tacct_program
where timestamp > current timestamp - 3 DAY
and ( PCK_COLLECTION_ID like 'A1%'
or PCK_COLLECTION_ID like 'A2%'
or PCK_COLLECTION_ID like 'YY%'
or PCK_COLLECTION_ID like 'NTA%'
)
group by plan_name, PCK_COLLECTION_ID, pck_id, group_name
with ur
;x
}¢--- A540769.WK.SQL(PDBPKGBV) cre=2012-09-13 mod=2012-09-13-23.56.26 A540769 ---
select *
from rz2hh.tacct_program
where pck_id = 'YBVBUCS'
and timestamp > current timestamp - 20 days
}¢--- A540769.WK.SQL(PDBPKGCD) cre=2012-05-21 mod=2012-05-24-15.33.26 A540769 ---
set current path oa1p;
select
-- trunc_timestamp(timestamp, 'day'),
-- min(date(timestamp)),
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end,
PLAN_NAME ,
GROUP_NAME grp,
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(sum(OCCURRENCES )) "occ",
substr(PCK_COLLECTION_ID, 1, 8) coll,
min(subsystem_id) subMin ,
max(subsystem_id) subMax ,
min(timestamp) tstMin,
max(timestamp) tstMax
from rz2hh.tacct_program
-- where pck_id in ('YCDSGET')
where pck_id in ('NZDBM73')
and subsystem_id like 'DOF%'
and timestamp > current timestamp - 11 days
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
and dayofweek_iso(timestamp) <= 5
AND hour(timestamp) between 9 and 11
group by group_name, plan_name, PCK_COLLECTION_ID,PCK_id
-- , trunc_timestamp(timestamp, 'ddd')
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
order by group_name -- , PCK_COLLECTION_ID,PCK_id
, sum(CLASS7_CPU_TOTAL) desc
, plan_name
-- , min(TIMESTAMP) desc
-- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
date(trunc_timestamp(timestamp, 'ddd')),
-- min(date(timestamp)),
-- max(SUBSYSTEM_ID )),
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(sum(OCCURRENCES )) "occ",
substr(PCK_COLLECTION_ID, 1, 8) coll,
min(subsystem_id) subMin ,
max(subsystem_id) subMax ,
min(timestamp) tstMin,
max(timestamp) tstMax
from rz2dd.tacct_program
where pck_id in ('YCDSGET')
and subsystem_id like 'DOF%'
and timestamp > current timestamp - 11 days
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
-- and dayofweek_iso(timestamp) <= 5
-- AND hour(timesta p) between 9 and 11
group by pck_id, pck_collection_id ,
trunc_timestamp(timestamp, 'ddd')
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
order by pck_id, trunc_timestamp(timestamp, 'ddd') desc
;;;
select *
from rz2dd.tacct_general
where plan_name in ('WB0670'
,'WI0180'
,'WQ0030'
,'WC0218'
,'WQ5110'
)
and timestamp > current timestamp - 3 days
order by plan_name, timestamp desc
;;;;
select
date(timestamp),
fosFmtE7(sum(OCCURRENCES )) "occ",
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end,
PLAN_NAME ,
substr(PCK_COLLECTION_ID, 1, 8) coll,
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
min(left(subsystem_id, 3)) sub
from rz2dd.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
and timestamp > '2011-08-01-00.00.00'
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
group by plan_name, PCK_COLLECTION_ID,PCK_id
, date(timestamp)
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
order by plan_name, PCK_COLLECTION_ID,PCK_id
, min(TIMESTAMP) desc
-- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
PLAN_NAME ,
-- substr(PCK_COLLECTION_ID, 1, 8) coll,
-- substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(OCCURRENCES )) "occ",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
from rz2xx.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
-- and timestamp > current timestamp - 7 day
-- timestamp between '2010-01-10-00.00.00'
-- and '2010-02-20-00.00.00'
group by plan_name ,
floor(3. * log10(
max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
with ur
;;;
}¢--- A540769.WK.SQL(PDBPKGCK) cre=2011-06-10 mod=2012-05-16-13.06.28 A540769 ---
set current path oa1p;
select
date(timestamp),
fosFmtE7(sum(OCCURRENCES )) "occ",
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end,
-- PLAN_NAME ,
substr(PCK_COLLECTION_ID, 1, 8) coll,
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
min(left(subsystem_id, 3)) sub
from rz2dd.tacct_program
where pck_id = 'YCKCCSI'
and subsystem_id like 'DOF%'
and timestamp > '2012-05-01-00.00.00'
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
group by PCK_COLLECTION_ID,PCK_id
, date(timestamp)
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
order by PCK_COLLECTION_ID,PCK_id
, min(TIMESTAMP) desc
-- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
select
date(timestamp),
fosFmtE7(sum(OCCURRENCES )) "occ",
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end,
PLAN_NAME ,
substr(PCK_COLLECTION_ID, 1, 8) coll,
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
min(left(subsystem_id, 3)) sub
from rz2dd.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
and timestamp > '2011-08-01-00.00.00'
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
group by plan_name, PCK_COLLECTION_ID,PCK_id
, date(timestamp)
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
order by plan_name, PCK_COLLECTION_ID,PCK_id
, min(TIMESTAMP) desc
-- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
PLAN_NAME ,
-- substr(PCK_COLLECTION_ID, 1, 8) coll,
-- substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(OCCURRENCES )) "occ",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
from rz2xx.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
-- and timestamp > current timestamp - 7 day
-- timestamp between '2010-01-10-00.00.00'
-- and '2010-02-20-00.00.00'
group by plan_name ,
floor(3. * log10(
max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
with ur
;;;
}¢--- A540769.WK.SQL(PDBPKGCT) cre=2012-05-22 mod=2012-06-18-16.13.42 A540769 ---
set current path oa1p;
select
trunc_timestamp(timestamp, 'hh'),
-- min(date(timestamp)),
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end,
-- PLAN_NAME ,
-- substr(PCK_COLLECTION_ID, 1, 8) coll,
-- GROUP_NAME grp,
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(OCCURRENCES )) "occ",
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
substr(min(PCK_COLLECTION_ID), 1, 8) coll,
substr(max(PCK_COLLECTION_ID), 1, 8) collTo,
min(subsystem_id) subMin ,
max(subsystem_id) subMax ,
min(timestamp) tstMin,
max(timestamp) tstMax
from rz2hh.tacct_program
where pck_id in ('YCTS100')
and subsystem_id like 'DOF%'
and timestamp > current timestamp - 1 days
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
-- and dayofweek_iso(timestamp) <= 5
-- AND hour(timestamp) between 9 and 11
group by group_name, PCK_id
--group by group_name, plan_name, PCK_COLLECTION_ID,PCK_id
, trunc_timestamp(timestamp, 'hh')
order by 1 desc -- group_name, plan_name , PCK_COLLECTION_ID,PCK_id
-- , sum(CLASS7_CPU_TOTAL) desc
-- , plan_name
-- , min(TIMESTAMP) desc
-- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
date(trunc_timestamp(timestamp, 'ddd')),
-- min(date(timestamp)),
-- max(SUBSYSTEM_ID )),
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(sum(OCCURRENCES )) "occ",
substr(PCK_COLLECTION_ID, 1, 8) coll,
min(subsystem_id) subMin ,
max(subsystem_id) subMax ,
min(timestamp) tstMin,
max(timestamp) tstMax
from rz2dd.tacct_program
where pck_id in ('YCDSGET')
and subsystem_id like 'DOF%'
and timestamp > current timestamp - 11 days
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
-- and dayofweek_iso(timestamp) <= 5
-- AND hour(timesta p) between 9 and 11
group by pck_id, pck_collection_id ,
trunc_timestamp(timestamp, 'ddd')
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
order by pck_id, trunc_timestamp(timestamp, 'ddd') desc
;;;
select *
from rz2dd.tacct_general
where plan_name in ('WB0670'
,'WI0180'
,'WQ0030'
,'WC0218'
,'WQ5110'
)
and timestamp > current timestamp - 3 days
order by plan_name, timestamp desc
;;;;
select
date(timestamp),
fosFmtE7(sum(OCCURRENCES )) "occ",
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end,
PLAN_NAME ,
substr(PCK_COLLECTION_ID, 1, 8) coll,
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
min(left(subsystem_id, 3)) sub
from rz2dd.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
and timestamp > '2011-08-01-00.00.00'
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
group by plan_name, PCK_COLLECTION_ID,PCK_id
, date(timestamp)
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
order by plan_name, PCK_COLLECTION_ID,PCK_id
, min(TIMESTAMP) desc
-- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
PLAN_NAME ,
-- substr(PCK_COLLECTION_ID, 1, 8) coll,
-- substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(OCCURRENCES )) "occ",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
from rz2xx.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
-- and timestamp > current timestamp - 7 day
-- timestamp between '2010-01-10-00.00.00'
-- and '2010-02-20-00.00.00'
group by plan_name ,
floor(3. * log10(
max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
with ur
;;;
}¢--- A540769.WK.SQL(PDBPKGDD) cre=2012-12-18 mod=2012-12-19-16.20.02 A540769 ---
-- db2 package usage aus tacct_package pro Tag
-- 1 Tag im Verhältnis zu ganzem range pro Package
--
set current path = oa1p;
with a as
(
SELECT PCK_ID PK
,SUM( CASE WHEN DATE(TIMESTAMP) = '17.12.2012'
THEN SQL_STMTS_ISSUED ELSE 0 END) d1stmts
,SUM( CASE WHEN DATE(TIMESTAMP) = '17.12.2012'
THEN CLASS7_CPU_TOTAL ELSE 0 END) d1CPU
,SUM( CASE WHEN DATE(TIMESTAMP) = '17.12.2012'
THEN CLASS7_SU_CPU ELSE 0 END) d1Su
,SUM(SQL_STMTS_ISSUED) stmts
,sum(CLASS7_CPU_TOTAL) as c7cpu
,sum(CLASS7_SU_CPU ) as c7su
FROM RZ2DD.TACCT_PROGRAM
WHERE TIMESTAMP between '2012-12-12-00.00.00.000000'
and '2012-12-19-23.59.00.000000'
and pck_id = 'YERSGRI'
AND GROUP_NAME = 'DBOF'
GROUP BY pck_id
)
SELECT substr(pk, 1, 8) pk
, smallInt(1000 * d1Stmts / max(1, stmts)) stPrm
, smallInt(1000 * d1Su / max(1, c7Su)) suPrm
, fosFmte7(d1Cpu - 0.2 * c7cpu) cpuPlus
, fosFmte7(d1Stmts) d1Stmts
, fosFmte7(d1cpu ) d1cpu
, fosFmte7(d1Su ) d1Su
, fosFmte7( Stmts) stmts
, fosFmte7(c7cpu ) c7cpu
, fosFmte7(c7Su ) c7Su
FROM A
ORDER BY d1Cpu - 0.2 * c7cpu
FETCH FIRST 1000 ROWS ONLY
WITH UR
;
, ad as
(
select date(a.tst) datum
, sum(a.c7cpu) / count(*) / 3600 cpu
, sum(a.stmts) / count(*) / 3600 stmts
, count(*) hh
, max(a.c7cpu) / 3600 maxCpu
from a
group by date(tst)
)
, pd as
(
select date(a.tst) datum
, sum(a.c7cpu) / count(*) / 3600 cpu
, sum(a.stmts) / count(*) / 3600 stmts
, count(*) hh
, max(a.c7cpu) / 3600 maxCpu
from a
where dayofweek_iso(TST) <= 5
AND hour(tst) between 9 and 11
group by date(tst)
)
select ad.datum
, substr(fosFmtE7(ad.cpu), 1, 7) "allCpu"
, substr(fosFmtE7(pd.cpu), 1, 7) "peakCpu"
, substr(fosFmtE7(ad.maxCpu), 1, 7) "maxCpu"
, substr(fosFmtE7(ad.stmts), 1, 7) "allStmts"
, substr(fosFmtE7(pd.stmts), 1, 7) "peakStmts"
, smallint(ad.hh) "allHH", smallInt(pd.hh) "peakHH"
from ad left join pd on ad.datum = pd.datum
order by 1 desc
;
--
-- db2 package usage aus tacct_package total
-- average 7*24h, average peak Hours und max
--
-- vergleich tacct_general und tacct_package total Zahlen
--
--
set current path = oa1p;
with p as
(
SELECT trunc_timestamp(TIMESTAMP, 'hh') tst
,SUM(SQL_STMTS_ISSUED) stmts
,SUM(CLASS7_SU_CPU) AS c7su
,sum(CLASS7_CPU_TOTAL) as c7cpu
FROM RZ2HH.TACCT_PROGRAM
WHERE TIMESTAMP between '2012-02-27-00.00.00.000000'
and '2012-04-01-23.59.00.000000'
-- AND GROUP_NAME = 'DBOF'
GROUP BY trunc_timestamp(TIMESTAMP, 'hh')
)
select substr(fosFmtE7(sum(c7cpu) / count(*) / 3600), 1, 7) avg,
substr(fosFmtE7(max(c7cpu) /3600 ), 1, 7) max,
substr(fosFmtE7(sum(case when dayofweek_iso(TST) <= 5
AND hour(tst) between 9 and 11
then c7Cpu else 0 end)
/ sum(case when dayofweek_iso(TST) <= 5
AND hour(tst) between 9 and 11
then 1 else 0 end) /3600 ), 1, 7) avgPeak,
count(*) hh,
sum(case when dayofweek_iso(TST) <= 5
AND hour(tst) between 9 and 11
then 1 else 0 end) peakHours
from p
order by 1 desc
;
;;; order by 1
,substr(fosFmte7(C2_CPU), 1, 7) c2_cpu
,substr(fosFmte7(CPU_C7), 1, 7) c7_cpu
,substr(fosFmte7(C2_SU), 1, 7) c2_su
,substr(fosFmte7(SU_CLASS7), 1, 7) c7_su
,substr(fosFmte7(mdl), 1, 7) gen_st
,substr(fosFmte7(anz_sql), 1, 7) pg_st
,substr(fosFmte7(C2_SU/mdl), 1, 7) gen_su_st
,substr(fosFmte7(SU_CLASS7/anz_sql), 1, 7) pg_su_st
from g full join p
on p.datum = g.datum
ORDER BY 1 DESC
}¢--- A540769.WK.SQL(PDBPKGER) cre=2012-12-19 mod=2012-12-19-18.28.42 A540769 ---
set current path oa1p;
select date(timestamp) date, plan_name
, fosFmtE7(sum(CLASS7_CPU_TOTAL)/86400) as avCpu
, fosFmte7(SUM(SQL_STMTS_ISSUED)) stmts
, fosFmtE7(sum(CLASS7_CPU_TOTAL)) as c7cpu
, fosFmtE7(sum(CLASS7_SU_CPU )) as c7su
, fosFmtE7(sum(CLASS7_CPU_TOTAL)
/ max(SUM(SQL_STMTS_ISSUED), 1)) "cpu/stmt"
FROM RZ2dd.TACCT_PROGRAM
WHERE TIMESTAMP between '2012-10-12-00.00.00.000000'
and '2012-12-19-23.59.00.000000'
and pck_id = 'YERSGRI'
AND GROUP_NAME = 'DBOF'
group by date(timestamp), plan_name
order by date(timestamp) desc
;x;
select *
FROM RZ2DD.TACCT_PROGRAM
WHERE TIMESTAMP between '2012-10-12-00.00.00.000000'
and '2012-12-19-23.59.00.000000'
and pck_id = 'YERSGRI'
AND GROUP_NAME = 'DBOF'
order by timestamp desc, subsystem_id
;x;
select date(timestamp) date
, fosFmte7(SUM(SQL_STMTS_ISSUED)) stmts
, fosFmtE7(sum(CLASS7_CPU_TOTAL)) as c7cpu
, fosFmtE7(sum(CLASS7_SU_CPU )) as c7su
, fosFmtE7(sum(CLASS7_CPU_TOTAL)
/ max(SUM(SQL_STMTS_ISSUED), 1)) "cpu/stmt"
FROM RZ2HH.TACCT_PROGRAM
WHERE TIMESTAMP between '2012-10-12-00.00.00.000000'
and '2012-12-19-23.59.00.000000'
and pck_id = 'YERSGRI'
AND GROUP_NAME = 'DBOF'
and hour(timestamp) in (10,11,14,15)
group by date(timestamp)
order by date(timestamp) desc
;x;
}¢--- A540769.WK.SQL(PDBPKGEU) cre=2012-03-07 mod=2012-03-07-13.34.20 A540769 ---
select pck_id, count(*)
from rz1dd.tacct_program
where plan_name = 'EU5010'
and timestamp > current timestamp - 3 month
group by pck_id
}¢--- A540769.WK.SQL(PDBPKGFA) cre=2012-06-27 mod=2012-06-27-14.02.07 A540769 ---
set current path oa1p;
select
date(trunc_timestamp(timestamp, 'ddd')),
-- min(date(timestamp)),
-- max(SUBSYSTEM_ID )),
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(sum(OCCURRENCES )) "occ",
substr(PCK_COLLECTION_ID, 1, 8) coll,
min(subsystem_id) subMin ,
max(subsystem_id) subMax ,
min(timestamp) tstMin,
max(timestamp) tstMax
from rz2dd.tacct_program
where pck_id in ('FAU100A1')
and subsystem_id like 'DOF%'
and timestamp > current timestamp - 32 days
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
-- and dayofweek_iso(timestamp) <= 5
-- AND hour(timesta p) between 9 and 11
group by pck_id, pck_collection_id ,
trunc_timestamp(timestamp, 'ddd')
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
order by pck_id, trunc_timestamp(timestamp, 'ddd') desc
;;;
set current path oa1p;
select
-- trunc_timestamp(timestamp, 'day'),
-- min(date(timestamp)),
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end,
PLAN_NAME ,
GROUP_NAME grp,
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(sum(OCCURRENCES )) "occ",
substr(PCK_COLLECTION_ID, 1, 8) coll,
min(subsystem_id) subMin ,
max(subsystem_id) subMax ,
min(timestamp) tstMin,
max(timestamp) tstMax
from rz2hh.tacct_program
where pck_id in ('YYWM05E', 'YYWM51E')
and subsystem_id like 'DOF%'
and timestamp > current timestamp - 11 days
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
and dayofweek_iso(timestamp) <= 5
AND hour(timesta p) between 9 and 11
group by group_name, plan_name, PCK_COLLECTION_ID,PCK_id
-- , trunc_timestamp(timestamp, 'ddd')
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
order by group_name -- , PCK_COLLECTION_ID,PCK_id
, sum(CLASS7_CPU_TOTAL) desc
, plan_name
-- , min(TIMESTAMP) desc
-- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
select *
from rz2dd.tacct_general
where plan_name in ('WB0670'
,'WI0180'
,'WQ0030'
,'WC0218'
,'WQ5110'
)
and timestamp > current timestamp - 3 days
order by plan_name, timestamp desc
;;;;
select
date(timestamp),
fosFmtE7(sum(OCCURRENCES )) "occ",
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end,
PLAN_NAME ,
substr(PCK_COLLECTION_ID, 1, 8) coll,
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
min(left(subsystem_id, 3)) sub
from rz2dd.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
and timestamp > '2011-08-01-00.00.00'
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
group by plan_name, PCK_COLLECTION_ID,PCK_id
, date(timestamp)
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
order by plan_name, PCK_COLLECTION_ID,PCK_id
, min(TIMESTAMP) desc
-- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
PLAN_NAME ,
-- substr(PCK_COLLECTION_ID, 1, 8) coll,
-- substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(OCCURRENCES )) "occ",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
from rz2xx.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
-- and timestamp > current timestamp - 7 day
-- timestamp between '2010-01-10-00.00.00'
-- and '2010-02-20-00.00.00'
group by plan_name ,
floor(3. * log10(
max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
with ur
;;;
}¢--- A540769.WK.SQL(PDBPKGHH) cre=2012-04-17 mod=2012-05-29-15.08.12 A540769 ---
-- db2 package usage aus tacct_package pro Tag
-- average 24h, average peak Hours und max
--
set current path = oa1p;
with a as
(
SELECT trunc_timestamp(TIMESTAMP, 'hh') tst
,SUM(SQL_STMTS_ISSUED) stmts
,SUM(CLASS7_SU_CPU) AS c7su
,sum(CLASS7_CPU_TOTAL) as c7cpu
FROM RZ2HH.TACCT_PROGRAM
WHERE TIMESTAMP between '2012-05-01-00.00.00.000000'
and '2012-05-31-23.59.00.000000'
-- AND GROUP_NAME = 'DBOF'
GROUP BY trunc_timestamp(TIMESTAMP, 'hh')
)
, ad as
(
select date(a.tst) datum
, sum(a.c7cpu) / count(*) / 3600 cpu
, sum(a.stmts) / count(*) / 3600 stmts
, count(*) hh
, max(a.c7cpu) / 3600 maxCpu
from a
group by date(tst)
)
, pd as
(
select date(a.tst) datum
, sum(a.c7cpu) / count(*) / 3600 cpu
, sum(a.stmts) / count(*) / 3600 stmts
, count(*) hh
, max(a.c7cpu) / 3600 maxCpu
from a
where dayofweek_iso(TST) <= 5
AND hour(tst) between 9 and 11
group by date(tst)
)
select ad.datum
, substr(fosFmtE7(ad.cpu), 1, 7) "allCpu"
, substr(fosFmtE7(pd.cpu), 1, 7) "peakCpu"
, substr(fosFmtE7(ad.maxCpu), 1, 7) "maxCpu"
, substr(fosFmtE7(ad.stmts), 1, 7) "allStmts"
, substr(fosFmtE7(pd.stmts), 1, 7) "peakStmts"
, smallint(ad.hh) "allHH", smallInt(pd.hh) "peakHH"
from ad left join pd on ad.datum = pd.datum
order by 1 desc
;
--
-- db2 package usage aus tacct_package total
-- average 7*24h, average peak Hours und max
--
-- vergleich tacct_general und tacct_package total Zahlen
--
--
set current path = oa1p;
with p as
(
SELECT trunc_timestamp(TIMESTAMP, 'hh') tst
,SUM(SQL_STMTS_ISSUED) stmts
,SUM(CLASS7_SU_CPU) AS c7su
,sum(CLASS7_CPU_TOTAL) as c7cpu
FROM RZ2HH.TACCT_PROGRAM
WHERE TIMESTAMP between '2012-02-27-00.00.00.000000'
and '2012-04-01-23.59.00.000000'
-- AND GROUP_NAME = 'DBOF'
GROUP BY trunc_timestamp(TIMESTAMP, 'hh')
)
select substr(fosFmtE7(sum(c7cpu) / count(*) / 3600), 1, 7) avg,
substr(fosFmtE7(max(c7cpu) /3600 ), 1, 7) max,
substr(fosFmtE7(sum(case when dayofweek_iso(TST) <= 5
AND hour(tst) between 9 and 11
then c7Cpu else 0 end)
/ sum(case when dayofweek_iso(TST) <= 5
AND hour(tst) between 9 and 11
then 1 else 0 end) /3600 ), 1, 7) avgPeak,
count(*) hh,
sum(case when dayofweek_iso(TST) <= 5
AND hour(tst) between 9 and 11
then 1 else 0 end) peakHours
from p
order by 1 desc
;
;;; order by 1
,substr(fosFmte7(C2_CPU), 1, 7) c2_cpu
,substr(fosFmte7(CPU_C7), 1, 7) c7_cpu
,substr(fosFmte7(C2_SU), 1, 7) c2_su
,substr(fosFmte7(SU_CLASS7), 1, 7) c7_su
,substr(fosFmte7(mdl), 1, 7) gen_st
,substr(fosFmte7(anz_sql), 1, 7) pg_st
,substr(fosFmte7(C2_SU/mdl), 1, 7) gen_su_st
,substr(fosFmte7(SU_CLASS7/anz_sql), 1, 7) pg_su_st
from g full join p
on p.datum = g.datum
ORDER BY 1 DESC
}¢--- A540769.WK.SQL(PDBPKGHO) cre=2012-04-12 mod=2012-06-14-13.20.41 A540769 ---
set current path oa1p;
select
trunc_timestamp(timestamp, 'hh'), subsystem_id,
fosFmtE7(sum(OCCURRENCES )) "occ",
fosFmtE7(sum(SQL_STMTS_ISSUED)) "stmts",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
fosFmtE7(sum(CLASS7_CPU_TOTAL )/3600) "c7proc",
fosFmtE7(sum(CLASS7_CPU_TOTAL)
/max(1,sum(SQL_STMTS_ISSUED))) "cpu/stm",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_ELAPSED )
/max(1, sum(SQL_STMTS_ISSUED))) "ela/stm",
-- substr(PCK_COLLECTION_ID, 1, 8) coll,
-- substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
-- fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
-- fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
-- fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
-- fosFmtE7(sum(BP_GETPAGES )) "getPg",
-- fosFmtE7(sum(SYNC_READ )) "synRead",
-- fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
-- fosFmtE7(sum(LIST_PREFETCH )) "listPre",
-- fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
-- fosFmtE7(sum(ASYNC_READ )) "asyRead",
-- fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
-- fosFmtE7(sum(SYNC_WRITE )) "synWrit",
-- fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU"
-- min(subsystem_id) subV,
-- max(subsystem_id) subB
from rz2hh.tacct_program
--where pck_id = 'YCKSCCA'
where subsystem_id like 'DOF%'
and timestamp between '2012-05-29-00.00.00'
and '2012-05-29-23.59.00'
-- and dayofweek_iso(timestamp) <= 5
-- and hour(timestamp) between 9 and 11
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
group by trunc_timestamp(timestamp, 'hh'), subsystem_id
--group by PCK_COLLECTION_ID,PCK_id
-- , date(timestamp)
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
-- order by 1 desc
-- order by PCK_COLLECTION_ID,PCK_id
-- , min(TIMESTAMP) desc
order by trunc_timestamp(timestamp, 'hh'), subsystem_id
fetch first 200 rows only with ur
;;;
select
date(timestamp),
fosFmtE7(sum(OCCURRENCES )) "occ",
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end,
PLAN_NAME ,
substr(PCK_COLLECTION_ID, 1, 8) coll,
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
min(left(subsystem_id, 3)) sub
from rz2dd.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
and timestamp > '2011-08-01-00.00.00'
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
group by plan_name, PCK_COLLECTION_ID,PCK_id
, date(timestamp)
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
order by plan_name, PCK_COLLECTION_ID,PCK_id
, min(TIMESTAMP) desc
-- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
PLAN_NAME ,
-- substr(PCK_COLLECTION_ID, 1, 8) coll,
-- substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(OCCURRENCES )) "occ",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
from rz2xx.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
-- and timestamp > current timestamp - 7 day
-- timestamp between '2010-01-10-00.00.00'
-- and '2010-02-20-00.00.00'
group by plan_name ,
floor(3. * log10(
max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
with ur
;;;
}¢--- A540769.WK.SQL(PDBPKGKC) cre=2011-08-31 mod=2011-08-31-06.29.05 A540769 ---
set current path oa1p;
select
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
PLAN_NAME ,
-- substr(PCK_COLLECTION_ID, 1, 8) coll,
-- substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(OCCURRENCES )) "occ",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
from rz2xx.tacct_program
where pck_id = 'YKCLOGS'
and subsystem_id like 'DOF%'
-- and timestamp > current timestamp - 7 day
-- timestamp between '2010-01-10-00.00.00'
-- and '2010-02-20-00.00.00'
group by plan_name ,
floor(3. * log10(
max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
with ur
;;;
set current path oa1p;
select
fosFmtE7(sum(OCCURRENCES )) "occ",
max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
case when timestamp < '2011-08-23-12.45.00' then 'alt'
else 'neu' end,
PLAN_NAME ,
substr(PCK_COLLECTION_ID, 1, 8) coll,
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
min(left(subsystem_id, 3)) sub
from rz2xx.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
and timestamp > '2011-08-23-00.00.00'
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
group by plan_name, PCK_COLLECTION_ID,PCK_id,
case when timestamp < '2011-08-23-12.45.00' then 'alt'
else 'neu' end
-- order by TIMESTAMP desc, plan_name, PCK_COLLECTION_ID,PCK_id
-- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
}¢--- A540769.WK.SQL(PDBPKGLA) cre=2010-06-21 mod=2010-06-21-14.05.51 A540769 ---
select count(*), max(lastUsed), min(lastUsed)
from rz2.TACCT_PKGUSED
;
select count(*), max(lastUsed), min(lastUsed)
from rz2.TACCT_PKGUSED
where lastUsed > current date - 1 month
}¢--- A540769.WK.SQL(PDBPKGLI) cre=2012-01-30 mod=2012-02-01-16.33.40 A540769 ---
select plan_name, PCK_COLLECTION_ID
, count(*), min(timestamp), max(timestamp)
, min(subsystem_id), max(subsystem_id)
from rz1dd.tacct_program
where -- timestamp > current timestamp - 10 days
PCK_COLLECTION_ID like 'A1%'
or PCK_COLLECTION_ID like 'A2%'
or PCK_COLLECTION_ID like 'NTA%'
group by Plan_Name, PCK_COLLECTION_ID
order by Plan_Name, PCK_COLLECTION_ID
with ur
select *
from rz2dd.tacct_program
where timestamp > current timestamp - 12 days
and PCK_COLLECTION_ID like 'NTA1%'
order by PCK_COLLECTION_ID desc
with ur
}¢--- A540769.WK.SQL(PDBPKGNZ) cre=2011-08-22 mod=2012-06-12-16.46.36 A540769 ---
set current path oa1p;
SELECT date(trunc_timestamp(timestamp, 'day'))
, substr(pck_id,1,8), count(*),
fosFmtE7(sum(class7_cpu_total)) cpu ,
fosFmtE7(sum(class7_cpu_total) / sum(SQL_STMTS_ISSUED)) "cpu/stm"
FROM RZ2dd.TACCT_PROGRAM P -- RZ2
where pck_ID = 'YCTS100'
and timestamp between '2012-01-01-00.56.30'
and '2012-09-15-23.12.25.53'
group by pck_id, trunc_timestamp(timestamp, 'day')
order by 1, 2
--order by class7_elapsed desc
; ;;
SELECT plan_name, count(*)
FROM RZ2xx.TACCT_PROGRAM P -- RZ2
where pck_id = 'NZDBM86'
and timestamp between '2012-06-03-22.56.30'
and '2012-06-03-23.12.25.53'
group by plan_name
--order by class7_elapsed desc
; ;;
SELECT min(timestamp), count(*) cnt,
fosFmtE7(sum(SQL_STMTS_ISSUED)) stmts,
fosFmtE7(sum(class7_elapsed) / sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(class7_cpu_total) / sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(class7_cpu_total) ) "cpu ",
fosFmtE7(sum(CLASS8_SYNC_IO) / sum(SQL_STMTS_ISSUED)) "sIO/stm"
FROM RZ2HH.TACCT_PROGRAM P -- RZ2
where pck_id = 'NZDBM83'
and timestamp > current timestamp - 45 days
group by trunc_timestamp(timestamp, 'ddd')
order by trunc_timestamp(timestamp, 'ddd') desc
; ;;
SELECT min(timestamp), count(*) cnt,
fosFmtE7(sum(SQL_STMTS_ISSUED)) stmts,
fosFmtE7(sum(class7_elapsed) / sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(class7_cpu_total) / sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(CLASS8_SYNC_IO) / sum(SQL_STMTS_ISSUED)) "sIO/stm"
FROM RZ2DD.TACCT_PROGRAM P -- RZ2
where pck_id = 'NZ6500'
and timestamp > current timestamp - 125 days
group by trunc_timestamp(timestamp, 'DAY')
order by trunc_timestamp(timestamp, 'DAY') desc
;;;
SELECT *
FROM RR2DD.TACCT_PROGRAM P -- RZ2
where pck_id = 'NZ5820'
and timestamp > current timestamp - 5 days
order by timestamp desc
;
}¢--- A540769.WK.SQL(PDBPKGOE) cre=2011-09-15 mod=2011-09-15-12.22.02 A540769 ---
set current path oa1p;
select plan_name, pck_id, pck_collection_id, p.*
from rz1xx.tacct_program p
where pck_id = 'YOEMAGP' and subsystem_id like 'DTB%'
and plan_name = 'XBDF09'
order by timestamp desc
fetch first 100 rows only
;;;
select count(*), plan_name, pck_id, pck_collection_id,
date(timestamp),
fosFmtE7(sum(OCCURRENCES )) "occ",
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end,
-- PLAN_NAME ,
substr(PCK_COLLECTION_ID, 1, 8) coll,
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
min(left(subsystem_id, 3)) sub
from rz2dd.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
and timestamp > '2011-08-01-00.00.00'
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
group by PCK_COLLECTION_ID,PCK_id
, date(timestamp)
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
order by PCK_COLLECTION_ID,PCK_id
, min(TIMESTAMP) desc
-- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
select
date(timestamp),
fosFmtE7(sum(OCCURRENCES )) "occ",
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end,
PLAN_NAME ,
substr(PCK_COLLECTION_ID, 1, 8) coll,
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
min(left(subsystem_id, 3)) sub
from rz2dd.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
and timestamp > '2011-08-01-00.00.00'
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
group by plan_name, PCK_COLLECTION_ID,PCK_id
, date(timestamp)
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
order by plan_name, PCK_COLLECTION_ID,PCK_id
, min(TIMESTAMP) desc
-- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
PLAN_NAME ,
-- substr(PCK_COLLECTION_ID, 1, 8) coll,
-- substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(OCCURRENCES )) "occ",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
from rz2xx.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
-- and timestamp > current timestamp - 7 day
-- timestamp between '2010-01-10-00.00.00'
-- and '2010-02-20-00.00.00'
group by plan_name ,
floor(3. * log10(
max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
with ur
;;;
}¢--- A540769.WK.SQL(PDBPKGPL) cre=2007-05-25 mod=2011-09-22-11.42.18 A540769 ---
set current path = 'OA1P';
select PLAN_NAME plan
, substr(PCK_COLLECTION_ID, 1, 8) col
, substr(PCK_ID, 1, 8) pkg
, fosFmtE7(sum(occurrences)) occ
, fosFmtE7(sum(SQL_STMTS_ISSUED)) sqls
, fosFmtE7(sum(CLASS7_ELAPSED)) ela
, fosFmtE7(sum(CLASS7_CPU_TOTAL)) cpu
, count(distinct timestamp) "days"
, min(timestamp) von
, max(timestamp) bis
FROM RZ2DD.TACCT_PROGRAM P
where plan_name = 'PC0680'
and timestamp > current timestamp - 12 days
group by plan_name, pck_collection_id, pck_id
order by plan_name, pck_collection_id, pck_id
with ur
;
}¢--- A540769.WK.SQL(PDBPKGPW) cre=2012-07-12 mod=2012-08-31-11.12.57 A540769 ---
set current path oa1p;
select class7_elapsed / sql_stmts_issued,
class7_cpu_total / sql_stmts_issued,
p.*
from rr2hh.tacct_program p
where pck_id = 'YPW2KAB'
and timestamp between '2012-11-01-12.00.00'
and '2012-12-02-12.00.00'
order by subsystem_id, timestamp
;x;
select
-- substr(PCK_COLLECTION_ID, 1, 8) coll,
-- substr(PCK_ID, 1, 8) pkg,
date(timestamp),
-- min(date(timestamp)),
-- max(SUBSYSTEM_ID )),
sum(SQL_STMTS_ISSUED ) sql,
sum(CLASS7_CPU_TOTAL) / sum(SQL_STMTS_ISSUED) cpuSql,
sum(CLASS7_ELAPSED ) / sum(SQL_STMTS_ISSUED) elaSql,
min(CLASS7_CPU_TOTAL / SQL_STMTS_ISSUED) cpuSqlMin,
max(CLASS7_CPU_TOTAL / SQL_STMTS_ISSUED) cpuSqlMax,
sum(CLASS7_CPU_TOTAL) cpu,
sum(CLASS7_ELAPSED ) ela
from rr2dd.tacct_program
where pck_id in ('YPWSIQ6')
and subsystem_id like 'DOF%'
and timestamp >= '2012-07-01-00.00.00'
-- and timestamp <= '2012-05-13-00.00.00'
and date(timestamp) <> '2012-05-11'
group by date(timestamp)
-- case when timestamp < '2012-05-11-00.00.00'
order by 1 desc
;;;
select * from s
order by 1, cpuSqlMin
;;;
select
-- substr(PCK_COLLECTION_ID, 1, 8) coll,
-- substr(PCK_ID, 1, 8) pkg,
-- date(trunc_timestamp(timestamp, 'day')),
case when timestamp < '2012-05-11-00.00.00'
then 'vor 11.5' else 'nach11.5' end ,
-- min(date(timestamp)),
-- max(SUBSYSTEM_ID )),
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
smallint(count(distinct date(timestamp))) "days",
fosFmtE7(sum(CLASS7_CPU_TOTAL )
/count(distinct date(timestamp))) "cpu/day",
fosFmtE7(sum(CLASS7_ELAPSED )
/count(distinct date(timestamp))) "ela/day",
fosFmtE7(sum(CLASS7_cpu_total)) "c7cpu",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(sum(OCCURRENCES )) "occ",
min(subsystem_id) subMin ,
max(subsystem_id) subMax ,
min(timestamp) tstMin,
max(timestamp) tstMax
from rz2dd.tacct_program
where pck_id in ('WM0010'
,'WM8300'
,'YYWM001'
,'YYWM005'
,'YYWM01E'
,'YYWM05E'
,'YYWM051'
,'YYWM51E'
)
-- where pck_id in ('YYWM05E', 'YYWM51E')
and subsystem_id like 'DOF%'
and timestamp >= '2012-03-01-00.00.00'
and date(timestamp) <> '2012-05-11'
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
-- and dayofweek_iso(timestamp) <= 5
-- AND hour(timesta p) between 9 and 11
group by -- pck_id, pck_collection_id ,
case when timestamp < '2012-05-11-00.00.00'
then 'vor 11.5' else 'nach11.5' end
order by 1 --, 2, 3
-- order by 1 -- pck_id,
-- trunc_timestamp(timestamp, 'day') desc
;;;
set current path oa1p;
select
-- trunc_timestamp(timestamp, 'day'),
-- min(date(timestamp)),
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end,
PLAN_NAME ,
GROUP_NAME grp,
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(sum(OCCURRENCES )) "occ",
substr(PCK_COLLECTION_ID, 1, 8) coll,
min(subsystem_id) subMin ,
max(subsystem_id) subMax ,
min(timestamp) tstMin,
max(timestamp) tstMax
from rz2hh.tacct_program
where pck_id in ('YYWM05E', 'YYWM51E')
and subsystem_id like 'DOF%'
and timestamp > current timestamp - 11 days
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
and dayofweek_iso(timestamp) <= 5
AND hour(timesta p) between 9 and 11
group by group_name, plan_name, PCK_COLLECTION_ID,PCK_id
-- , trunc_timestamp(timestamp, 'ddd')
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
order by group_name -- , PCK_COLLECTION_ID,PCK_id
, sum(CLASS7_CPU_TOTAL) desc
, plan_name
-- , min(TIMESTAMP) desc
-- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
select *
from rz2dd.tacct_general
where plan_name in ('WB0670'
,'WI0180'
,'WQ0030'
,'WC0218'
,'WQ5110'
)
and timestamp > current timestamp - 3 days
order by plan_name, timestamp desc
;;;;
select
date(timestamp),
fosFmtE7(sum(OCCURRENCES )) "occ",
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end,
PLAN_NAME ,
substr(PCK_COLLECTION_ID, 1, 8) coll,
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
min(left(subsystem_id, 3)) sub
from rz2dd.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
and timestamp > '2011-08-01-00.00.00'
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
group by plan_name, PCK_COLLECTION_ID,PCK_id
, date(timestamp)
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
order by plan_name, PCK_COLLECTION_ID,PCK_id
, min(TIMESTAMP) desc
-- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
PLAN_NAME ,
-- substr(PCK_COLLECTION_ID, 1, 8) coll,
-- substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(OCCURRENCES )) "occ",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
from rz2xx.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
-- and timestamp > current timestamp - 7 day
-- timestamp between '2010-01-10-00.00.00'
-- and '2010-02-20-00.00.00'
group by plan_name ,
floor(3. * log10(
max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
with ur
;;;
}¢--- A540769.WK.SQL(PDBPKGRI) cre=2012-02-13 mod=2012-02-17-10.59.35 A540769 ---
set current path oa1p;
SELECT min(timestamp), count(*) cnt,
fosFmtE7(sum(SQL_STMTS_ISSUED)) stmts,
fosFmtE7(sum(class7_cpu_total) ) "cpu tot",
fosFmtE7(sum(class7_elapsed) / sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(class7_cpu_total) / sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(CLASS8_SYNC_IO) / sum(SQL_STMTS_ISSUED)) "sIO/stm"
FROM RZ2DD.TACCT_PROGRAM P -- RZ2
where pck_id = 'RI0810'
and timestamp > current timestamp - 12 days
group by trunc_timestamp(timestamp, 'DD')
order by trunc_timestamp(timestamp, 'DD') desc
;
SELECT min(timestamp), count(*) cnt,
fosFmtE7(sum(SQL_STMTS_ISSUED)) stmts,
fosFmtE7(sum(class7_elapsed) / sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(class7_cpu_total) / sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(CLASS8_SYNC_IO) / sum(SQL_STMTS_ISSUED)) "sIO/stm"
FROM RZ2DD.TACCT_PROGRAM P -- RZ2
where pck_id = 'NZ6500'
and timestamp > current timestamp - 125 days
group by trunc_timestamp(timestamp, 'DAY')
order by trunc_timestamp(timestamp, 'DAY') desc
;;;
SELECT *
FROM RR2DD.TACCT_PROGRAM P -- RZ2
where pck_id = 'NZ5820'
and timestamp > current timestamp - 5 days
order by timestamp desc
;
}¢--- A540769.WK.SQL(PDBPKGRM) cre=2012-06-04 mod=2012-06-04-07.29.02 A540769 ---
set current path oa1p;
select
trunc_timestamp(timestamp, 'hh'),
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(sum(OCCURRENCES )) "occ",
min(subsystem_id) subMin ,
max(subsystem_id) subMax ,
min(timestamp) tstMin,
max(timestamp) tstMax
from rz2hh.tacct_program
where pck_id = 'YRMVER'
and subsystem_id like 'DOF%'
and timestamp > current timestamp - 5 days
group by pck_id, trunc_timestamp(timestamp, 'hh')
having sum(SQL_STMTS_ISSUED) >= 1e3
order by 1 desc
;;;
}¢--- A540769.WK.SQL(PDBPKGRX) cre=2012-05-29 mod=2012-05-29-15.01.17 A540769 ---
set current path oa1p;
select
-- trunc_timestamp(timestamp, 'day'),
-- min(date(timestamp)),
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end,
PLAN_NAME ,
GROUP_NAME grp,
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(sum(OCCURRENCES )) "occ",
substr(PCK_COLLECTION_ID, 1, 8) coll,
min(subsystem_id) subMin ,
max(subsystem_id) subMax ,
min(timestamp) tstMin,
max(timestamp) tstMax
from rz2hh.tacct_program
where pck_id in ('DSNREXX')
and subsystem_id like 'DOF%'
and timestamp > current timestamp - 11 days
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
and dayofweek_iso(timestamp) <= 5
AND hour(timestamp) between 9 and 11
group by group_name, plan_name, PCK_COLLECTION_ID,PCK_id
-- , trunc_timestamp(timestamp, 'ddd')
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
order by group_name -- , PCK_COLLECTION_ID,PCK_id
, sum(CLASS7_CPU_TOTAL) desc
, plan_name
-- , min(TIMESTAMP) desc
-- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
date(trunc_timestamp(timestamp, 'ddd')),
-- min(date(timestamp)),
-- max(SUBSYSTEM_ID )),
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(sum(OCCURRENCES )) "occ",
substr(PCK_COLLECTION_ID, 1, 8) coll,
min(subsystem_id) subMin ,
max(subsystem_id) subMax ,
min(timestamp) tstMin,
max(timestamp) tstMax
from rz2dd.tacct_program
where pck_id in ('YCDSGET')
and subsystem_id like 'DOF%'
and timestamp > current timestamp - 11 days
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
-- and dayofweek_iso(timestamp) <= 5
-- AND hour(timesta p) between 9 and 11
group by pck_id, pck_collection_id ,
trunc_timestamp(timestamp, 'ddd')
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
order by pck_id, trunc_timestamp(timestamp, 'ddd') desc
;;;
select *
from rz2dd.tacct_general
where plan_name in ('WB0670'
,'WI0180'
,'WQ0030'
,'WC0218'
,'WQ5110'
)
and timestamp > current timestamp - 3 days
order by plan_name, timestamp desc
;;;;
select
date(timestamp),
fosFmtE7(sum(OCCURRENCES )) "occ",
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end,
PLAN_NAME ,
substr(PCK_COLLECTION_ID, 1, 8) coll,
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
min(left(subsystem_id, 3)) sub
from rz2dd.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
and timestamp > '2011-08-01-00.00.00'
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
group by plan_name, PCK_COLLECTION_ID,PCK_id
, date(timestamp)
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
order by plan_name, PCK_COLLECTION_ID,PCK_id
, min(TIMESTAMP) desc
-- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
PLAN_NAME ,
-- substr(PCK_COLLECTION_ID, 1, 8) coll,
-- substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(OCCURRENCES )) "occ",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
from rz2xx.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
-- and timestamp > current timestamp - 7 day
-- timestamp between '2010-01-10-00.00.00'
-- and '2010-02-20-00.00.00'
group by plan_name ,
floor(3. * log10(
max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
with ur
;;;
}¢--- A540769.WK.SQL(PDBPKGVV) cre=2012-03-09 mod=2012-03-15-07.55.45 A540769 ---
set current path oa1p;
select
trunc_timestamp(timestamp, 'ddd'),
fosFmtE7(sum(OCCURRENCES )) "occ",
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end,
-- PLAN_NAME ,
GROUP_NAME grp,
substr(PCK_COLLECTION_ID, 1, 8) coll,
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
min(left(subsystem_id, 3)) sub
from rr2dd.tacct_program
where pck_id = 'YVVSQLE'
-- where pck_id = 'YVV3250'
and subsystem_id like 'DOF%'
and timestamp > current timestamp - 1 MONTHS
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
group by group_name, PCK_COLLECTION_ID,PCK_id
, trunc_timestamp(timestamp, 'ddd')
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
--order by group_name,sum(SQL_STMTS_ISSUED ) desc
-- , plan_name, PCK_COLLECTION_ID,PCK_id
order by min(TIMESTAMP) desc
-- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
select pck_id, count(*)
from rz1dd.tacct_program
where plan_name = 'VV6200'
and timestamp > current timestamp - 1 month
group by pck_id
order by pck_id
;;;;
select *
from rr2mm.tacct_program
where pck_id = 'YVV3250'
and plan_name = 'VV6200'
and subsystem_id like 'DOF%'
and timestamp > current timestamp -- 2 MONTHS
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
order by class7_elapsed desc
with ur
;;;
select
date(timestamp),
fosFmtE7(sum(OCCURRENCES )) "occ",
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end,
PLAN_NAME ,
substr(PCK_COLLECTION_ID, 1, 8) coll,
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
min(left(subsystem_id, 3)) sub
from rz2dd.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
and timestamp > '2011-08-01-00.00.00'
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
group by plan_name, PCK_COLLECTION_ID,PCK_id
, date(timestamp)
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
order by plan_name, PCK_COLLECTION_ID,PCK_id
, min(TIMESTAMP) desc
-- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
PLAN_NAME ,
-- substr(PCK_COLLECTION_ID, 1, 8) coll,
-- substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(OCCURRENCES )) "occ",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
from rz2xx.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
-- and timestamp > current timestamp - 7 day
-- timestamp between '2010-01-10-00.00.00'
-- and '2010-02-20-00.00.00'
group by plan_name ,
floor(3. * log10(
max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
with ur
;;;
}¢--- A540769.WK.SQL(PDBPKGWA) cre=2012-05-16 mod=2012-05-23-07.16.26 A540769 ---
set current path oa1p;
select
date(timestamp),
fosFmtE7(sum(OCCURRENCES )) "occ",
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end,
-- PLAN_NAME ,
substr(PCK_COLLECTION_ID, 1, 8) coll,
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
min(left(subsystem_id, 3)) sub
from rz2dd.tacct_program
where pck_id = 'YWAPCUR'
and subsystem_id like 'DOF%'
and timestamp > '2012-05-01-00.00.00'
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
group by PCK_COLLECTION_ID,PCK_id
, date(timestamp)
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
order by PCK_COLLECTION_ID,PCK_id
, min(TIMESTAMP) desc
-- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
select
date(timestamp),
fosFmtE7(sum(OCCURRENCES )) "occ",
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end,
PLAN_NAME ,
substr(PCK_COLLECTION_ID, 1, 8) coll,
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
min(left(subsystem_id, 3)) sub
from rz2dd.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
and timestamp > '2011-08-01-00.00.00'
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
group by plan_name, PCK_COLLECTION_ID,PCK_id
, date(timestamp)
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
order by plan_name, PCK_COLLECTION_ID,PCK_id
, min(TIMESTAMP) desc
-- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
PLAN_NAME ,
-- substr(PCK_COLLECTION_ID, 1, 8) coll,
-- substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(OCCURRENCES )) "occ",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
from rz2xx.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
-- and timestamp > current timestamp - 7 day
-- timestamp between '2010-01-10-00.00.00'
-- and '2010-02-20-00.00.00'
group by plan_name ,
floor(3. * log10(
max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
with ur
;;;
}¢--- A540769.WK.SQL(PDBPKGWI) cre=2012-05-03 mod=2012-05-03-17.40.24 A540769 ---
set current path oa1p;
select
trunc_timestamp(timestamp, 'ddd'),
-- min(date(timestamp)),
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end,
PLAN_NAME ,
GROUP_NAME grp,
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(sum(OCCURRENCES )) "occ",
substr(PCK_COLLECTION_ID, 1, 8) coll,
min(subsystem_id) subMin ,
max(subsystem_id) subMax ,
min(timestamp) tstMin,
max(timestamp) tstMax
from rz2dd.tacct_program
where pck_id in ('YWIPF01')
and subsystem_id like 'DOF%'
and timestamp > current timestamp - 111 days
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
-- and dayofweek_iso(timestamp) <= 5
-- AND hour(timestamp) between 9 and 11
group by group_name, plan_name, PCK_COLLECTION_ID,PCK_id
, trunc_timestamp(timestamp, 'ddd')
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
order by group_name, PCK_COLLECTION_ID,PCK_id
-- , sum(CLASS7_CPU_TOTAL) desc
, plan_name
, min(TIMESTAMP) desc
-- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
select *
from rz2dd.tacct_general
where plan_name in ('WB0670'
,'WI0180'
,'WQ0030'
,'WC0218'
,'WQ5110'
)
and timestamp > current timestamp - 3 days
order by plan_name, timestamp desc
;;;;
select
date(timestamp),
fosFmtE7(sum(OCCURRENCES )) "occ",
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end,
PLAN_NAME ,
substr(PCK_COLLECTION_ID, 1, 8) coll,
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
min(left(subsystem_id, 3)) sub
from rz2dd.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
and timestamp > '2011-08-01-00.00.00'
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
group by plan_name, PCK_COLLECTION_ID,PCK_id
, date(timestamp)
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
order by plan_name, PCK_COLLECTION_ID,PCK_id
, min(TIMESTAMP) desc
-- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
PLAN_NAME ,
-- substr(PCK_COLLECTION_ID, 1, 8) coll,
-- substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(OCCURRENCES )) "occ",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
from rz2xx.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
-- and timestamp > current timestamp - 7 day
-- timestamp between '2010-01-10-00.00.00'
-- and '2010-02-20-00.00.00'
group by plan_name ,
floor(3. * log10(
max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
with ur
;;;
}¢--- A540769.WK.SQL(PDBPKGWM) cre=2012-03-09 mod=2012-07-09-11.22.29 A540769 ---
set current path oa1p;
with s as
(
select
-- substr(PCK_COLLECTION_ID, 1, 8) coll,
-- substr(PCK_ID, 1, 8) pkg,
-- date(trunc_timestamp(timestamp, 'day')),
case when timestamp < '2012-05-11-00.00.00'
then 'vor 11.5' else 'nach11.5' end vorNach ,
-- min(date(timestamp)),
-- max(SUBSYSTEM_ID )),
sum(SQL_STMTS_ISSUED ) sql,
sum(CLASS7_CPU_TOTAL) / sum(SQL_STMTS_ISSUED) cpuSql,
sum(CLASS7_ELAPSED ) / sum(SQL_STMTS_ISSUED) elaSql,
min(CLASS7_CPU_TOTAL / SQL_STMTS_ISSUED) cpuSqlMin,
max(CLASS7_CPU_TOTAL / SQL_STMTS_ISSUED) cpuSqlMax,
sum(CLASS7_CPU_TOTAL) cpu,
sum(CLASS7_ELAPSED ) ela
from rz2mm.tacct_program
where pck_id in ('WM0010'
,'WM8300'
,'YYWM001'
,'YYWM005'
,'YYWM01E'
,'YYWM05E'
,'YYWM051'
,'YYWM51E'
)
and subsystem_id like 'DOF%'
and timestamp >= '2012-03-01-00.00.00'
-- and timestamp <= '2012-05-13-00.00.00'
and date(timestamp) <> '2012-05-11'
group by floor(log10(max(CLASS7_CPU_TOTAL/SQL_STMTS_ISSUED,1e-9))),
case when timestamp < '2012-05-11-00.00.00'
then 'vor 11.5' else 'nach11.5' end
)
select * from s
order by 1, cpuSqlMin
;;;
select
-- substr(PCK_COLLECTION_ID, 1, 8) coll,
-- substr(PCK_ID, 1, 8) pkg,
-- date(trunc_timestamp(timestamp, 'day')),
case when timestamp < '2012-05-11-00.00.00'
then 'vor 11.5' else 'nach11.5' end ,
-- min(date(timestamp)),
-- max(SUBSYSTEM_ID )),
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
smallint(count(distinct date(timestamp))) "days",
fosFmtE7(sum(CLASS7_CPU_TOTAL )
/count(distinct date(timestamp))) "cpu/day",
fosFmtE7(sum(CLASS7_ELAPSED )
/count(distinct date(timestamp))) "ela/day",
fosFmtE7(sum(CLASS7_cpu_total)) "c7cpu",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(sum(OCCURRENCES )) "occ",
min(subsystem_id) subMin ,
max(subsystem_id) subMax ,
min(timestamp) tstMin,
max(timestamp) tstMax
from rz2dd.tacct_program
where pck_id in ('WM0010'
,'WM8300'
,'YYWM001'
,'YYWM005'
,'YYWM01E'
,'YYWM05E'
,'YYWM051'
,'YYWM51E'
)
-- where pck_id in ('YYWM05E', 'YYWM51E')
and subsystem_id like 'DOF%'
and timestamp >= '2012-03-01-00.00.00'
and date(timestamp) <> '2012-05-11'
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
-- and dayofweek_iso(timestamp) <= 5
-- AND hour(timesta p) between 9 and 11
group by -- pck_id, pck_collection_id ,
case when timestamp < '2012-05-11-00.00.00'
then 'vor 11.5' else 'nach11.5' end
order by 1 --, 2, 3
-- order by 1 -- pck_id,
-- trunc_timestamp(timestamp, 'day') desc
;;;
set current path oa1p;
select
-- trunc_timestamp(timestamp, 'day'),
-- min(date(timestamp)),
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end,
PLAN_NAME ,
GROUP_NAME grp,
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(sum(OCCURRENCES )) "occ",
substr(PCK_COLLECTION_ID, 1, 8) coll,
min(subsystem_id) subMin ,
max(subsystem_id) subMax ,
min(timestamp) tstMin,
max(timestamp) tstMax
from rz2hh.tacct_program
where pck_id in ('YYWM05E', 'YYWM51E')
and subsystem_id like 'DOF%'
and timestamp > current timestamp - 11 days
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
and dayofweek_iso(timestamp) <= 5
AND hour(timesta p) between 9 and 11
group by group_name, plan_name, PCK_COLLECTION_ID,PCK_id
-- , trunc_timestamp(timestamp, 'ddd')
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
order by group_name -- , PCK_COLLECTION_ID,PCK_id
, sum(CLASS7_CPU_TOTAL) desc
, plan_name
-- , min(TIMESTAMP) desc
-- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
select *
from rz2dd.tacct_general
where plan_name in ('WB0670'
,'WI0180'
,'WQ0030'
,'WC0218'
,'WQ5110'
)
and timestamp > current timestamp - 3 days
order by plan_name, timestamp desc
;;;;
select
date(timestamp),
fosFmtE7(sum(OCCURRENCES )) "occ",
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end,
PLAN_NAME ,
substr(PCK_COLLECTION_ID, 1, 8) coll,
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
min(left(subsystem_id, 3)) sub
from rz2dd.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
and timestamp > '2011-08-01-00.00.00'
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
group by plan_name, PCK_COLLECTION_ID,PCK_id
, date(timestamp)
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
order by plan_name, PCK_COLLECTION_ID,PCK_id
, min(TIMESTAMP) desc
-- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
PLAN_NAME ,
-- substr(PCK_COLLECTION_ID, 1, 8) coll,
-- substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(OCCURRENCES )) "occ",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
from rz2xx.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
-- and timestamp > current timestamp - 7 day
-- timestamp between '2010-01-10-00.00.00'
-- and '2010-02-20-00.00.00'
group by plan_name ,
floor(3. * log10(
max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
with ur
;;;
}¢--- A540769.WK.SQL(PDBPKGWN) cre=2012-09-20 mod=2012-09-20-09.44.49 A540769 ---
set current path oa1p;
with s as
(
select date(timestamp) date, substr(pck_id, 1, 8) pck_id,
sum(class7_elapsed) c7Ela,
sum(class7_cpu_total) c7cpu,
sum(sql_stmts_issued) stmts
from rz2dd.tacct_program p
where plan_Name = 'WN5100'
and timestamp between '2012-08-01-00.00.00'
and '2012-12-02-12.00.00'
group by timestamp, pck_id
)
, t as
(
select s.*,
row_number() over(partition by date order by c7Ela desc) rn
from s
)
select * from t
where rn <= 5
order by date desc, c7Ela desc
;x;
select
-- substr(PCK_COLLECTION_ID, 1, 8) coll,
-- substr(PCK_ID, 1, 8) pkg,
date(timestamp),
-- min(date(timestamp)),
-- max(SUBSYSTEM_ID )),
sum(SQL_STMTS_ISSUED ) sql,
sum(CLASS7_CPU_TOTAL) / sum(SQL_STMTS_ISSUED) cpuSql,
sum(CLASS7_ELAPSED ) / sum(SQL_STMTS_ISSUED) elaSql,
min(CLASS7_CPU_TOTAL / SQL_STMTS_ISSUED) cpuSqlMin,
max(CLASS7_CPU_TOTAL / SQL_STMTS_ISSUED) cpuSqlMax,
sum(CLASS7_CPU_TOTAL) cpu,
sum(CLASS7_ELAPSED ) ela
from rr2dd.tacct_program
where pck_id in ('YPWSIQ6')
and subsystem_id like 'DOF%'
and timestamp >= '2012-07-01-00.00.00'
-- and timestamp <= '2012-05-13-00.00.00'
and date(timestamp) <> '2012-05-11'
group by date(timestamp)
-- case when timestamp < '2012-05-11-00.00.00'
order by 1 desc
;;;
select * from s
order by 1, cpuSqlMin
;;;
select
-- substr(PCK_COLLECTION_ID, 1, 8) coll,
-- substr(PCK_ID, 1, 8) pkg,
-- date(trunc_timestamp(timestamp, 'day')),
case when timestamp < '2012-05-11-00.00.00'
then 'vor 11.5' else 'nach11.5' end ,
-- min(date(timestamp)),
-- max(SUBSYSTEM_ID )),
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
smallint(count(distinct date(timestamp))) "days",
fosFmtE7(sum(CLASS7_CPU_TOTAL )
/count(distinct date(timestamp))) "cpu/day",
fosFmtE7(sum(CLASS7_ELAPSED )
/count(distinct date(timestamp))) "ela/day",
fosFmtE7(sum(CLASS7_cpu_total)) "c7cpu",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(sum(OCCURRENCES )) "occ",
min(subsystem_id) subMin ,
max(subsystem_id) subMax ,
min(timestamp) tstMin,
max(timestamp) tstMax
from rz2dd.tacct_program
where pck_id in ('WM0010'
,'WM8300'
,'YYWM001'
,'YYWM005'
,'YYWM01E'
,'YYWM05E'
,'YYWM051'
,'YYWM51E'
)
-- where pck_id in ('YYWM05E', 'YYWM51E')
and subsystem_id like 'DOF%'
and timestamp >= '2012-03-01-00.00.00'
and date(timestamp) <> '2012-05-11'
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
-- and dayofweek_iso(timestamp) <= 5
-- AND hour(timesta p) between 9 and 11
group by -- pck_id, pck_collection_id ,
case when timestamp < '2012-05-11-00.00.00'
then 'vor 11.5' else 'nach11.5' end
order by 1 --, 2, 3
-- order by 1 -- pck_id,
-- trunc_timestamp(timestamp, 'day') desc
;;;
set current path oa1p;
select
-- trunc_timestamp(timestamp, 'day'),
-- min(date(timestamp)),
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end,
PLAN_NAME ,
GROUP_NAME grp,
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(sum(OCCURRENCES )) "occ",
substr(PCK_COLLECTION_ID, 1, 8) coll,
min(subsystem_id) subMin ,
max(subsystem_id) subMax ,
min(timestamp) tstMin,
max(timestamp) tstMax
from rz2hh.tacct_program
where pck_id in ('YYWM05E', 'YYWM51E')
and subsystem_id like 'DOF%'
and timestamp > current timestamp - 11 days
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
and dayofweek_iso(timestamp) <= 5
AND hour(timesta p) between 9 and 11
group by group_name, plan_name, PCK_COLLECTION_ID,PCK_id
-- , trunc_timestamp(timestamp, 'ddd')
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
order by group_name -- , PCK_COLLECTION_ID,PCK_id
, sum(CLASS7_CPU_TOTAL) desc
, plan_name
-- , min(TIMESTAMP) desc
-- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
select *
from rz2dd.tacct_general
where plan_name in ('WB0670'
,'WI0180'
,'WQ0030'
,'WC0218'
,'WQ5110'
)
and timestamp > current timestamp - 3 days
order by plan_name, timestamp desc
;;;;
select
date(timestamp),
fosFmtE7(sum(OCCURRENCES )) "occ",
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end,
PLAN_NAME ,
substr(PCK_COLLECTION_ID, 1, 8) coll,
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
min(left(subsystem_id, 3)) sub
from rz2dd.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
and timestamp > '2011-08-01-00.00.00'
-- timestamp between '2011-07-25-01.00.00'
-- and '2011-07-28-23.00.00'
group by plan_name, PCK_COLLECTION_ID,PCK_id
, date(timestamp)
-- case when timestamp < '2011-08-23-12.45.00' then 'alt'
-- else 'neu' end
order by plan_name, PCK_COLLECTION_ID,PCK_id
, min(TIMESTAMP) desc
-- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
PLAN_NAME ,
-- substr(PCK_COLLECTION_ID, 1, 8) coll,
-- substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(OCCURRENCES )) "occ",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
from rz2xx.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
-- and timestamp > current timestamp - 7 day
-- timestamp between '2010-01-10-00.00.00'
-- and '2010-02-20-00.00.00'
group by plan_name ,
floor(3. * log10(
max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
with ur
;;;
}¢--- A540769.WK.SQL(PDBPKGXB) cre=2012-03-28 mod=2013-01-11-15.04.31 A540769 ---
set current path oa1p;
set current schema = RZ2dd;
with p as
(
select pck_id pkg,
date(trunc_timestamp(timestamp - 4 days, 'iw')) + 4 days woche,
(sum(class7_cpu_total)) c7Cpu,
(sum(class7_elapsed)) c7Ela,
sum(SQL_STMTS_ISSUED) sqls,
count(*) count,
(sum(occurrences)) occ ,
count(distinct date(timestamp)) tage,
date(min(timestamp)) wocheVon,
date(min(timestamp)) wocheBis
from TACCT_program
where group_name = 'DVBP'
and timestamp > '2012-09-28-00.00.00'
group by group_name, trunc_timestamp(timestamp - 4 days, 'iw'),
pck_id
order by group_name
)
, w as
(
select 0 rng, '*' pkg , woche,
sum(c7cpu) c7cpu,
sum(c7Ela) c7Ela,
sum(sqls) sqls,
sum(count) count, sum(occ) occ,
max(tage) tage, min(wocheVon) wocheVon, max(wocheBis) wocheBis
from p
group by woche
)
, r as
(
select row_number() over (partition by woche
order by c7Cpu desc) rng
, p.*
from p
)
, f as
(
select * from w
union all select * from r where rng <= 12
)
select smallInt(rng) rng, pkg , woche,
smallint(c7cpu * 1000/
(select c7cpu from w where w.woche = f.woche)) c7Prm,
fosFmtE7(c7cpu) c7cpu,
fosFmtE7(c7Ela) c7Ela,
fosFmtE7(sqls) sqls,
fosFmtE7(count) count, fosFmtE7(occ) occ,
tage, wocheVon, wocheBis
from f
order by f.pkg, f.woche desc
;x
??????????????????
set current path oa1p;
select
trunc_timestamp(timestamp, 'ww'),
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(sum(OCCURRENCES )) "occ",
min(subsystem_id) subMin ,
max(subsystem_id) subMax ,
min(timestamp) tstMin,
max(timestamp) tstMax
from rz2dd.tacct_program
where pck_id = 'XBIM34' and plan_name = 'XBIM34'
and subsystem_id like 'DBP%'
and timestamp > current timestamp - 7 months
group by pck_id, trunc_timestamp(timestamp, 'ww')
order by 1 desc
;;;
set current path oa1p;
-- elect pck_id, count(*), max(timestamp)--, group_name
select plan_name, date(trunc_timestamp(timestamp, 'iw')) ,
fosfmte7(sum(class2_cpu_total)) cpu,
fosfmte7(sum(class2_su_cpu )) su,
fosfmte7(sum(commit)) com,
fosfmte7(sum(select)) sel,
fosfmte7(sum(open)) open,
fosfmte7(sum(fetch)) fetch,
fosfmte7(sum(insert)) insert,
fosfmte7(sum(update)) update,
fosfmte7(sum(delete)) delete,
min(timestamp), max(timestamp),
count(*) cnt, fosfmte7(sum(occurrences)) occs
from rz2dd.tacct_general
where plan_name in ('XBLE80'
,'XBLE84'
,'XBARR0'
,'XBARR7'
,'XBDP90'
,'XBAP75'
,'XBLE87'
)
and timestamp > '2012-05-17-00.00.00'
and date(trunc_timestamp(timestamp, 'iw'))
in ('21.05.2012', '28.05.2012',
'18.06.2012', '25.06.2012')
group by plan_name, trunc_timestamp(timestamp, 'iw')
order by plan_name, trunc_timestamp(timestamp, 'iw')
;x;
where (plan_name like 'XBLE8%'
or plan_name like 'XB8%'
or plan_name like 'XB8%'
or plan_name like 'XBR%'
or plan_name like 'XBR%'
or plan_name like 'XBARR%'
or plan_name like 'XB9%'
or plan_name like 'XBDP9%'
or plan_name like 'XB7%'
or plan_name like 'XBAP7%'
)
and timestamp > current timestamp - 3 days
group by plan_name
;x;
XB80 Search Engine
XB84 Retrieve Engine
XBR0 Search Adapter
XBR7 CORBA Interface
XB90 Dispatcher Search from Adapter
XB91 Dispatcher Search from Router
XB92 Dispatcher Search from Engine
XB93 Retrieve from Engine
XB94 Search reply / Retrieve from Router
XB95 Retrieve from Adapter
XB96 Scheduler
XB97 Restarter
XB75 Router
XB87 NDBS Search Engine
}¢--- A540769.WK.SQL(PDBPKGX3) cre=2012-06-01 mod=2012-06-01-09.17.23 A540769 ---
//A540749A JOB (CP00,KE50),'DB2 REO', 00010000
// MSGCLASS=T,TIME=1440, 00020000
// NOTIFY=&SYSUID,REGION=0M 00030000
//*MAIN CLASS=LOG0
//STEP1 EXEC PGM=DSNUTILB,TIME=1440,
// PARM=(DBOC,'A540749A.REORG'),
// REGION=0M
//DSSPRINT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//UTPRINT DD SYSOUT=*
//SYSTEMPL DD DISP=SHR,DSN=DBOC.DBAA.LISTDEF(TEMPL)
//SYSIN DD *
LISTDEF LST#REO
INCLUDE TABLESPACE -- DA540769.TPKGWEEK PARTLEVEL
DSN00678.TPKGWEEK PARTLEVEL
-- REORG TABLESPACE DA540769.A200A03 PART 16 : 20 , 102 :108,111,88:90
REORG TABLESPACE LIST LST#REO
LOG NO
SORTDATA
COPYDDN(TCOPYD)
SHRLEVEL CHANGE
MAPPINGTABLE S100447.MAPTAB05
DRAIN_WAIT 40
RETRY 20
RETRY_DELAY 180
MAXRO 40
DRAIN WRITERS
LONGLOG CONTINUE
DELAY 1200
TIMEOUT TERM
UNLDDN TSRECD
UNLOAD CONTINUE
PUNCHDDN TPUNCH
DISCARDDN TDISC
SORTKEYS
SORTDEVT DISK
-- SORTNUM 155
STATISTICS
INDEX ALL KEYCARD
UPDATE ALL
}¢--- A540769.WK.SQL(PDBPKGX4) cre=2012-06-01 mod=2012-06-26-15.42.35 A540769 ---
set current path oa1p;
with a as -- programm mit grösster Zunahme
( select
sum(stmts) / count(*) stmts,
sum(dayCnt) / count(*) dayCnt,
max(1, sum(stmts) / count(*)) stmt1,
sum(c7cpu) / count(*) c7cpu,
sum(c7Ela) / count(*) c7ela,
pkg
from A540769.tPkgWeek
group by pkg
)
, w as
(
select w.pkg, w.timestamp,
a.c7cpu * w.stmts/a.stmt1 c7Avg,
w.c7cpu - a.c7cpu * w.stmts/a.stmt1 c7Diff,
w.c7cpu / max(1, a.c7cpu * w.stmts/a.stmt1) c7Pro,
w.c7ela - a.c7ela * w.stmts/a.stmt1 elaDiff,
w.stmts wStmts ,
w.dayCnt wDayCnt ,
w.c7Cpu wCpu ,
w.c7Ela wEla ,
a.stmts aStmts ,
a.stmt1 aStmt1 ,
a.dayCnt aDayCnt ,
a.c7Cpu aCpu ,
a.c7Ela aEla
from a join A540769.tPkgWeek w
on a.pkg = w.pkg
)
select pkg
, fosFmtE7(c7Pro) cpuPro
, fosFmtE7(c7Diff) cpuDiff
, fosFmtE7(elaDiff) elaDiff
, w.*
from w
where w.timestamp > '20.05.2012'
order by c7Diff desc
;;,
set current path oa1p;
with a as -- Wochenverteilungen
( select
sum(stmts) / count(*) stmts,
max(1, sum(stmts) / count(*)) stmt1,
sum(c7cpu) / count(*) c7cpu,
sum(c7Ela) / count(*) c7ela,
pkg
from A540769.tPkgWeek
group by pkg
)
, w as
(
select w.pkg, w.timestamp,
a.c7cpu * w.stmts/a.stmt1 c7Avg,
w.c7cpu - a.c7cpu * w.stmts/a.stmt1 c7Diff,
w.c7cpu / max(1, a.c7cpu * w.stmts/a.stmt1) c7Pro,
w.stmts wStmts ,
w.c7Cpu wCpu ,
w.c7Ela wEla ,
a.stmts aStmts ,
a.stmt1 aStmt1 ,
a.c7Cpu aCpu ,
a.c7Ela aEla
from a join A540769.tPkgWeek w
on a.pkg = w.pkg
)
select timestamp
, fosFmtE7(min(c7Pro)) cpuProMin
, fosFmtE7(max(c7Pro)) cpuProMax
, count(*) cnt
, fosFmte7(sum( wcpu - acpu * wstmts/ aStmt1)) cpuDiff
, fosFmte7(sum( wEla - aEla * wstmts/ aStmt1)) elaDiff
, fosFmte7(sum(wStmts)) wStmts
, fosFmte7(sum(wCPu)) wCpu
, fosFmte7(sum(wEla)) wEla
from w
group by timestamp, floor(0 * log10(max(0.01, c7Pro)))
order by timestamp desc, min(c7Pro) desc
;;,
set current path oa1p;
select timestamp, pkg
, fosFmtE7(c7Cpu) "proc"
, fosFmtE7(c7Cpu/stmts) "pro/stm"
, fosFmtE7(c7Ela/stmts) "ela/stm"
, w.*
from A540769.tPkgWeek w
where pkg = 'YWYU114'
order by timestamp desc
;x; YRMVER ==> 21.5
set current path oa1p;
select timestamp, pkg
, fosFmtE7(c7Cpu/stmts) "pro/stm"
, fosFmtE7(c7Ela/stmts) "ela/stm"
, w.*
from A540769.tPkgWeek w
where pkg = 'YWAPCUR'
order by timestamp desc
;x; YRMVER ==> 21.5
set current path oa1p;
select timestamp -- veränderung pro woche
, fosfmte7(sum(c7cpu)/max(1, sum(stmts))) "cpu/stmt"
, fosfmte7(sum(c7ela)/max(1, sum(stmts))) "ela/stmt"
, fosFmte7(sum(stmts)) "stmts"
, fosFmte7(sum(c7Cpu)) "cpu"
, fosFmte7(sum(c7Ela)) "ela"
, fosFmte7(sum(occ)) "occ"
, count(*) "cnt"
, count(distinct pkg) "pkgs"
from A540769.tPkgWeek w
group by timestamp
order by timestamp
;;
select timestamp,
fosfmte7(c7cpu/max(1, stmts)) "cpu/stmt",
fosfmte7(c7ela/max(1, stmts)) "ela/stmt",
w.*
from A540769.tPkgWeek w
where pkg = 'YCTS100'
order by timestamp desc
;;
DSNTEP2
YAVRATE ==> 14. & 21.5
KC5400 ==> 14.
YAVRATS ==> neues Program ??? ab 7.5
order by w.c7cpu - a.c7cpu * w.stmts/a.stmt1 desc
;x;
with a as
( select
sum(stmts) / count(*) stmts,
max(1, sum(stmts) / count(*)) stmt1,
sum(c7cpu) / count(*) c7cpu,
sum(c7Ela) / count(*) c7ela,
pkg
from A540769.tPkgWeek
group by pkg
)
select w.pkg, w.timestamp,
fosFmtE7(a.c7cpu * w.stmts/a.stmt1) c7Avg,
fosFmtE7(w.c7cpu - a.c7cpu * w.stmts/a.stmt1) c7Diff,
fosFmtE7(w.c7cpu / max(1, a.c7cpu * w.stmts/a.stmt1)) c7Pro,
w.*, a.*
from a join A540769.tPkgWeek w
on a.pkg = w.pkg
order by w.c7cpu - a.c7cpu * w.stmts/a.stmt1 desc
;x;
}¢--- A540769.WK.SQL(PDBPKGX5) cre=2012-06-05 mod=2012-06-05-16.01.11 A540769 ---
select pkg
from A540769.tPkgWeek
where pkg = 'YCTS100'
}¢--- A540769.WK.SQL(PDBPKGY2) cre=2012-05-31 mod=2012-05-31-16.35.08 A540769 ---
//A540769E JOB (CP00,KE50), 00010001
// MSGCLASS=T,TIME=1440,
// NOTIFY=A540769
//*MAIN CLASS=LOG0 SYSTEM=S12
//S01 EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99 00020001
//SYSTSIN DD *
DSN SYSTEM(DBOC)
RUN PROGRAM(DSNTEP2) PARMS('ALIGN(LHS)') PLAN(DSNTEP2)
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//***PRINT DD DISP=SHR,DSN=A540769.WK.TEXW(PDBGENNJ)
//SYSUDUMP DD SYSOUT=*
//SYSTERM DD DUMMY
//SYSIN DD *
-- db2 package usage aus tacct_package pro Tag
-- average 24h, average peak Hours und max
--
set current path = oa1p;
with a as
(
SELECT trunc_timestamp(TIMESTAMP, 'hh') tst
,SUM(SQL_STMTS_ISSUED) stmts
,SUM(CLASS7_SU_CPU) AS c7su
,sum(CLASS7_CPU_TOTAL) as c7cpu
FROM RZ2HH.TACCT_PROGRAM
WHERE TIMESTAMP between '2012-03-12-00.00.00.000000'
and '2012-04-01-23.59.00.000000'
-- AND GROUP_NAME = 'DBOF'
GROUP BY trunc_timestamp(TIMESTAMP, 'hh')
)
, ad as
(
select date(a.tst) datum
, sum(a.c7cpu) / count(*) / 3600 cpu
, sum(a.stmts) / count(*) / 3600 stmts
, count(*) hh
, max(a.c7cpu) / 3600 maxCpu
from a
group by date(tst)
)
, pd as
(
select date(a.tst) datum
, sum(a.c7cpu) / count(*) / 3600 cpu
, sum(a.stmts) / count(*) / 3600 stmts
, count(*) hh
, max(a.c7cpu) / 3600 maxCpu
from a
where dayofweek_iso(TST) <= 5
AND hour(tst) between 9 and 11
group by date(tst)
)
select ad.datum
, substr(fosFmtE7(ad.cpu), 1, 7) "allCpu"
, substr(fosFmtE7(pd.cpu), 1, 7) "peakCpu"
, substr(fosFmtE7(ad.maxCpu), 1, 7) "maxCpu"
, substr(fosFmtE7(ad.stmts), 1, 7) "allStmts"
, substr(fosFmtE7(pd.stmts), 1, 7) "peakStmts"
, smallint(ad.hh) "allHH", smallInt(pd.hh) "peakHH"
from ad left join pd on ad.datum = pd.datum
order by 1 desc
;
--
-- db2 package usage aus tacct_package total
-- average 7*24h, average peak Hours und max
--
-- vergleich tacct_general und tacct_package total Zahlen
--
--
set current path = oa1p;
with p as
(
SELECT trunc_timestamp(TIMESTAMP, 'hh') tst
,SUM(SQL_STMTS_ISSUED) stmts
,SUM(CLASS7_SU_CPU) AS c7su
,sum(CLASS7_CPU_TOTAL) as c7cpu
FROM RZ2HH.TACCT_PROGRAM
WHERE TIMESTAMP between '2012-02-27-00.00.00.000000'
and '2012-04-01-23.59.00.000000'
-- AND GROUP_NAME = 'DBOF'
GROUP BY trunc_timestamp(TIMESTAMP, 'hh')
)
select substr(fosFmtE7(sum(c7cpu) / count(*) / 3600), 1, 7) avg,
substr(fosFmtE7(max(c7cpu) /3600 ), 1, 7) max,
substr(fosFmtE7(sum(case when dayofweek_iso(TST) <= 5
AND hour(tst) between 9 and 11
then c7Cpu else 0 end)
/ sum(case when dayofweek_iso(TST) <= 5
AND hour(tst) between 9 and 11
then 1 else 0 end) /3600 ), 1, 7) avgPeak,
count(*) hh,
sum(case when dayofweek_iso(TST) <= 5
AND hour(tst) between 9 and 11
then 1 else 0 end) peakHours
from p
order by 1 desc
;
}¢--- A540769.WK.SQL(PDBPKGY3) cre=2012-06-14 mod=2012-06-14-13.12.09 A540769 ---
set current path = oa1p;
SELECT trunc_timestamp(TIMESTAMP, 'hh') tst
,sum(CLASS7_CPU_TOTAL)/3600 as c7Proc
,SUM(SQL_STMTS_ISSUED) stmts
,SUM(CLASS7_SU_CPU) AS c7su
,sum(CLASS7_CPU_TOTAL) as c7cpu
FROM RZ2HH.TACCT_PROGRAM
WHERE TIMESTAMP between '2012-05-29-00.00.00.000000'
and '2012-05-29-23.59.00.000000'
-- AND GROUP_NAME = 'DBOF'
GROUP BY trunc_timestamp(TIMESTAMP, 'hh')
with ur
;X;
//A540769E JOB (CP00,KE50), 00010001
// MSGCLASS=T,TIME=1440,
// NOTIFY=A540769
//*MAIN CLASS=LOG0 SYSTEM=S12
//S01 EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99 00020001
//SYSTSIN DD *
DSN SYSTEM(DBOC)
RUN PROGRAM(DSNTEP2) PARMS('ALIGN(LHS)') PLAN(DSNTEP2)
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//***PRINT DD DISP=SHR,DSN=A540769.WK.TEXW(PDBGENNJ)
//SYSUDUMP DD SYSOUT=*
//SYSTERM DD DUMMY
//SYSIN DD *
-- db2 package usage aus tacct_package pro Tag
-- average 24h, average peak Hours und max
--
set current path = oa1p;
with a as
(
SELECT trunc_timestamp(TIMESTAMP, 'hh') tst
,SUM(SQL_STMTS_ISSUED) stmts
,SUM(CLASS7_SU_CPU) AS c7su
,sum(CLASS7_CPU_TOTAL) as c7cpu
FROM RZ2HH.TACCT_PROGRAM
WHERE TIMESTAMP between '2012-05-29-00.00.00.000000'
and '2012-05-29-23.59.00.000000'
-- AND GROUP_NAME = 'DBOF'
GROUP BY trunc_timestamp(TIMESTAMP, 'hh')
)
, ad as
(
select date(a.tst) datum
, sum(a.c7cpu) / count(*) / 3600 cpu
, sum(a.stmts) / count(*) / 3600 stmts
, count(*) hh
, max(a.c7cpu) / 3600 maxCpu
from a
group by date(tst)
)
, pd as
(
select date(a.tst) datum
, sum(a.c7cpu) / count(*) / 3600 cpu
, sum(a.stmts) / count(*) / 3600 stmts
, count(*) hh
, max(a.c7cpu) / 3600 maxCpu
from a
where dayofweek_iso(TST) <= 5
AND hour(tst) between 9 and 11
group by date(tst)
)
select ad.datum
, substr(fosFmtE7(ad.cpu), 1, 7) "allCpu"
, substr(fosFmtE7(pd.cpu), 1, 7) "peakCpu"
, substr(fosFmtE7(ad.maxCpu), 1, 7) "maxCpu"
, substr(fosFmtE7(ad.stmts), 1, 7) "allStmts"
, substr(fosFmtE7(pd.stmts), 1, 7) "peakStmts"
, smallint(ad.hh) "allHH", smallInt(pd.hh) "peakHH"
from ad left join pd on ad.datum = pd.datum
order by 1 desc
;
--
-- db2 package usage aus tacct_package total
-- average 7*24h, average peak Hours und max
--
-- vergleich tacct_general und tacct_package total Zahlen
--
--
set current path = oa1p;
with p as
(
SELECT trunc_timestamp(TIMESTAMP, 'hh') tst
,SUM(SQL_STMTS_ISSUED) stmts
,SUM(CLASS7_SU_CPU) AS c7su
,sum(CLASS7_CPU_TOTAL) as c7cpu
FROM RZ2HH.TACCT_PROGRAM
WHERE TIMESTAMP between '2012-02-27-00.00.00.000000'
and '2012-04-01-23.59.00.000000'
-- AND GROUP_NAME = 'DBOF'
GROUP BY trunc_timestamp(TIMESTAMP, 'hh')
)
select substr(fosFmtE7(sum(c7cpu) / count(*) / 3600), 1, 7) avg,
substr(fosFmtE7(max(c7cpu) /3600 ), 1, 7) max,
substr(fosFmtE7(sum(case when dayofweek_iso(TST) <= 5
AND hour(tst) between 9 and 11
then c7Cpu else 0 end)
/ sum(case when dayofweek_iso(TST) <= 5
AND hour(tst) between 9 and 11
then 1 else 0 end) /3600 ), 1, 7) avgPeak,
count(*) hh,
sum(case when dayofweek_iso(TST) <= 5
AND hour(tst) between 9 and 11
then 1 else 0 end) peakHours
from p
order by 1 desc
;
}¢--- A540769.WK.SQL(PDBPKG2) cre=2007-06-12 mod=2007-06-12-09.43.29 F540769 ---
SELECT
'RZ2' AS SSID
,LASTUSED AS LASTUSED
,PCK_ID AS PACKAGE
,PCK_CONSIST_TOKEN AS CONSISTENCY_TOKEN
FROM RZ2.TACCT_PKGUSED -- RZ2
WHERE
(PCK_ID = 'YKSMODU' )
OR (PCK_ID = 'AADLTP' )
OR (PCK_ID = 'YKSMODU' )
OR (PCK_ID = 'YKSMODU' )
OR (PCK_ID = 'SA5140' )
OR (PCK_ID = 'YSA0231' )
OR (PCK_ID = 'YSA0232' )
OR (PCK_ID = 'YSA0233' )
OR (PCK_ID = 'YSA0234' )
OR (PCK_ID = 'YSA0235' )
OR (PCK_ID = 'YSA0236' )
OR (PCK_ID = 'YSX0610' )
OR (PCK_ID = 'YSXRELK' )
OR (PCK_ID = 'YSXRELK' )
;
X
;
'YBTMOR1',
'YBTMOR2',
'YBTMOR3',
'YNFCGO',
SELECT
'RZ2' AS SSID
,LASTUSED AS LASTUSED
,PCK_ID AS PACKAGE
,PCK_CONSIST_TOKEN AS CONSISTENCY_TOKEN
FROM RZ2.TACCT_PKGUSED -- RZ2
WHERE PCK_ID LIKE 'YBTM%'
;
'YBTMOR1',
'YBTMOR2',
'YBTMOR3',
'YNFCGO',
'YNFVMG',
'YYBTMMS')
;
X
-- ZWECK: WANN WURDE EIN PACKAGE ZULETZT BENUTZT
-- VERDICHTUNG: PRO PACKAGE
-- ZEITRAUM: AKTUELL
-- UNIQUE INDEX: PCK_ID, PCK_CONSIST_TOKEN
--
SELECT
'RZ1' AS SSID
,LASTUSED AS LASTUSED
,PCK_ID AS PACKAGE
,PCK_CONSIST_TOKEN AS CONSISTENCY_TOKEN
FROM RZ1.TACCT_PKGUSED -- RZ1
WHERE PCK_ID = 'YBWAAJ9'
-- AND PCK_ID LIKE 'YNF%'
-- AND PCK_CONSIST_TOKEN = ' '
-- AND PCK_CONSIST_TOKEN LIKE ' '
UNION
SELECT
'RZ2' AS SSID
,LASTUSED AS LASTUSED
,PCK_ID AS PACKAGE
,PCK_CONSIST_TOKEN AS CONSISTENCY_TOKEN
FROM RZ2.TACCT_PKGUSED -- RZ2
WHERE PCK_ID = 'YBWAAJ9'
-- AND PCK_ID LIKE 'YNF%'
-- AND PCK_CONSIST_TOKEN = ' '
-- AND PCK_CONSIST_TOKEN LIKE ' '
UNION
SELECT
'RR2' AS SSID
,LASTUSED AS LASTUSED
,PCK_ID AS PACKAGE
,PCK_CONSIST_TOKEN AS CONSISTENCY_TOKEN
FROM RR2.TACCT_PKGUSED -- RR2 (PTA)
WHERE PCK_ID = 'YBWAAJ9'
-- AND PCK_ID LIKE 'YNF%'
-- AND PCK_CONSIST_TOKEN = ' '
-- AND PCK_CONSIST_TOKEN LIKE ' '
UNION
SELECT
'RZ4' AS SSID
,LASTUSED AS LASTUSED
,PCK_ID AS PACKAGE
,PCK_CONSIST_TOKEN AS CONSISTENCY_TOKEN
FROM RZ4.TACCT_PKGUSED -- RZ4
WHERE PCK_ID = 'YBWAAJ9'
-- AND PCK_ID LIKE 'YNF%'
-- AND PCK_CONSIST_TOKEN = ' '
-- AND PCK_CONSIST_TOKEN LIKE ' '
UNION
SELECT
'RR4' AS SSID
,LASTUSED AS LASTUSED
,PCK_ID AS PACKAGE
,PCK_CONSIST_TOKEN AS CONSISTENCY_TOKEN
FROM RR4.TACCT_PKGUSED -- RR4 (PTA)
WHERE PCK_ID = 'YBWAAJ9'
-- AND PCK_ID LIKE 'YNF%'
-- AND PCK_CONSIST_TOKEN = ' '
-- AND PCK_CONSIST_TOKEN LIKE ' '
}¢--- A540769.WK.SQL(PDBPRGCT) cre=2011-06-20 mod=2011-06-20-15.12.54 A540769 ---
set current path oa1p;
select
fosFmtE7(sum(OCCURRENCES )) "occ",
-- max(SUBSYSTEM_ID )),
PLAN_NAME plan,
date(min(TIMESTAMP)) "von", -- date(max(TIMESTAMP)),
-- substr(PCK_COLLECTION_ID, 1, 8) coll,
-- substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU"
from rz2dd.tacct_program
where pck_id = 'YCTS250'
and subsystem_id like 'DOF%'
and timestamp > current timestamp - 20 day
-- timestamp between '2010-01-10-00.00.00'
-- and '2010-02-20-00.00.00'
group by plan_name, PCK_COLLECTION_ID,PCK_id,
case when TIMESTAMP > '2011-06-10-24.00.00'
then 2 else 1 end
having sum(CLASS7_CPU_TOTAL) >= 10
order by plan_name, PCK_COLLECTION_ID,PCK_id
, min(TIMESTAMP) desc -- , plan_name, PCK_COLLECTION_ID,PCK_id
;;;
set current path oa1p;
select
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
PLAN_NAME ,
-- substr(PCK_COLLECTION_ID, 1, 8) coll,
-- substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(OCCURRENCES )) "occ",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
from rz2xx.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
-- and timestamp > current timestamp - 7 day
-- timestamp between '2010-01-10-00.00.00'
-- and '2010-02-20-00.00.00'
group by plan_name ,
floor(3. * log10(
max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
with ur
;;;
}¢--- A540769.WK.SQL(PDBPRGEU) cre=2011-01-27 mod=2011-01-27-15.01.04 A540769 ---
set current path oa1p;
select
fosFmtE7(sum(OCCURRENCES )) "occ",
-- max(SUBSYSTEM_ID )),
TIMESTAMP,
case when PLAN_NAME='EU5000' then plan_name else 'oth' END pla ,
-- fosFmtE7(sum(PCK_COLLECTION_ID )),
substr(PCK_ID, 1, 8) pkg ,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU"
from rz2dd.tacct_program
where pck_id = 'YBPSTOE'
and subsystem_id like 'DOF%'
and -- timestamp > current timestamp - 7 day
timestamp between '2010-01-10-00.00.00'
and '2010-02-20-00.00.00'
group by timestamp, pck_id,
case when PLAN_NAME='EU5000' then plan_name else 'oth' END
-- having sum(SQL_STMTS_ISSUED ) > 1e6
order by timestamp desc
}¢--- A540769.WK.SQL(PDBPRGWI) cre=2011-07-25 mod=2011-07-25-11.16.43 A540769 ---
set current path oa1p;
select
fosFmtE7(sum(OCCURRENCES )) "occ",
-- max(SUBSYSTEM_ID )),
date(TIMESTAMP),
PLAN_NAME ,
substr(PCK_COLLECTION_ID, 1, 8) coll,
substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
min(left(subsystem_id, 3)) sub
from rz1dd.tacct_program
where pck_id = 'YITMETA'
and subsystem_id like 'DTF%'
and timestamp > current timestamp - 1 month
-- timestamp between '2010-01-10-00.00.00'
-- and '2010-02-20-00.00.00'
group by TIMESTAMP, plan_name, PCK_COLLECTION_ID,PCK_id
-- order by TIMESTAMP desc, plan_name, PCK_COLLECTION_ID,PCK_id
order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
-- max(SUBSYSTEM_ID )),
-- date(TIMESTAMP),
PLAN_NAME ,
-- substr(PCK_COLLECTION_ID, 1, 8) coll,
-- substr(PCK_ID, 1, 8) pkg,
fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED)) "ela/stm",
fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)) "cpu/stm",
fosFmtE7(sum(OCCURRENCES )) "occ",
fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
fosFmtE7(sum(CLASS7_ELAPSED )) "c7ela",
fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
-- fosFmtE7(sum(CLASS8 )),
fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
fosFmtE7(sum(CLASS8_SYNC_IO )) "c8synIO",
fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
fosFmtE7(sum(CLASS8_SERV_TASK )) "c8SrvTa",
fosFmtE7(sum(BP_GETPAGES )) "getPg",
fosFmtE7(sum(SYNC_READ )) "synRead",
fosFmtE7(sum(SEQ_PREFETCH )) "seqPref",
fosFmtE7(sum(LIST_PREFETCH )) "listPre",
fosFmtE7(sum(DYN_PREFETCH )) "dynPref",
fosFmtE7(sum(ASYNC_READ )) "asyRead",
fosFmtE7(sum(BUFFER_UPDATE )) "bufUpd",
fosFmtE7(sum(SYNC_WRITE )) "synWrit",
fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
-- fosFmtE7(sum(GROUP_NAME ))
fosFmtE7(sum(CLASS7_SU_CPU )) "c7SU",
fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
from rz2xx.tacct_program
where pck_id = 'YCKSCCA'
and subsystem_id like 'DOF%'
-- and timestamp > current timestamp - 7 day
-- timestamp between '2010-01-10-00.00.00'
-- and '2010-02-20-00.00.00'
group by plan_name ,
floor(3. * log10(
max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
with ur
;;;
}¢--- A540769.WK.SQL(PDBSPACE) cre=2007-08-31 mod=2007-08-31-17.28.43 F540769 ---
with sDay as -- Gruppierung pro Tag
( select -- db_name db, ts_name ts,
datum, sum(hi_u_rba) b
from OA1P.TADM09A1
--->>> DB und oder TS selektieren
where DB_NAME = 'DWB03' -- and TS_NAME = 'A704A'
--->>> Zeitraum selektieren
and datum >= '01.01.2007'
group by datum -- ,db_name, ts_name
),
sInt as -- Gruppierung pro Interval
( select -- db, ts,
max(datum) datum, max(b) b
from sDay
group by -- db, ts
--->>> Tages Interval selektieren
floor(days(datum) / 7)
--->>> oder Monats Interval selektieren
-- year(datum), floor((month(datum)-1) / 2)
),
sMax as -- Maximum Wert für Darstellung
( select max(b) b from sDay)
select -- char(strip(sInt.db)||'.'||strip(sInt.ts),21) "db.ts",
sInt.b "bytes",
datum "datum",
repeat('*', int(round(sInt.b * 40 / sMax.b, 0)))
from sInt, sMax
order by datum desc
}¢--- A540769.WK.SQL(PDBSQLOP) cre=2009-09-10 mod=2009-09-10-11.48.32 A540769 ---
set current path oa1x;
with p as
(
SELECT CLASS7_ELAPSED / SQL_STMTS_ISSUED c7St,
int(trunc(log10(CLASS7_ELAPSED / SQL_STMTS_ISSUED), 0)) log,
p.*
FROM RZ2DD.TACCT_PROGRAM p
where SQL_STMTS_ISSUED > 0
)
SELECT fmte8(min(c7St)) "elaFrom", fmte8(max(c7St)) "elaTo"
, fmte8(sum(SQL_STMTS_ISSUED)) "totStmts"
, fmte8(sum(CLASS7_ELAPSED)) "totEla"
, fmte8(sum(CLASS7_ELAPSED)/24/3600/31) "totEla/mon"
-- fmte8(sum(CLASS7_ELAPSED) / sum(SQL_STMTS_ISSUED)) "avgTime",
-- log
from p
WHERE TIMESTAMP >= '2009-08-01-00.00.00.000000'
AND TIMESTAMP < '2009-09-01-00.00.00.000000'
group by log
order by log
with ur
fetch first 100 rows only
;
left(SUBSYSTEM_ID, 3),
SUM(OCCURRENCES) OCCURRENCES,
SUM(SQL_STMTS_ISSUED) stmts,
SUM(CLASS7_ELAPSED ) elaps,
SUM(CLASS7_CPU_TOTAL ) cpu,
SUM(CLASS7_ELAPSED )/SUM(SQL_STMTS_ISSUED) "elaps/stmt" ,
SUM(CLASS7_CPU_TOTAL )/SUM(SQL_STMTS_ISSUED) "cpu/stmt"
FROM RZ2DD.TACCT_PROGRAM p
WHERE TIMESTAMP >= '2009-09-09-00.00.00.000000'
AND TIMESTAMP <= '2099-09-10-00.00.00.000000'
AND PCK_ID = 'BU021@I'
AND SUBSYSTEM_ID LIKE 'DOF%'
GROUP BY trunc_TIMESTAMP(timestamp, 'day'), left(SUBSYSTEM_ID, 3)
ORDER BY 1 DESC
with ur
;
SELECT * from p
with ur
fetch first 100 rows only
;
x
SELECT timestamp, count(*),
sum(case when PCK_ID = 'BU021@I' then 1 else 0 end)
FROM RZ2DD.TACCT_PROGRAM
where subsystem_id like 'DOF%'
group by timestamp
order by 1 desc
with ur
;
x
}¢--- A540769.WK.SQL(PDBSUB) cre=2012-01-23 mod=2012-01-23-21.27.24 A540769 ----
select 'rz1dd', count(*), left(subsystem_id, 3) 00010000
, min(subsystem_id), max(subsystem_id) 00020001
, min(group_name), max(group_name) 00030001
, min(timestamp), max(timestamp) 00040000
from rz1dd.TACCT_GENERAL 00050000
group by left(subsystem_id, 3) 00060000
order by 3 00070000
with ur 00080000
; 00090000
$#@ 00100002
$<=¢ 00110002
R2DD 00120002
RR2DD 00130002
RR4DD 00140002
RZ1DD 00150002
RZ2DD 00160002
RZ4DD 00170002
Z1DD 00180002
$! $@for c $@=¢ 00190002
$=c=-strip($c) 00200002
select 00210004
'$c' || right(' ' || strip(char(count(*))), 10) 00220003
|| ' ' || left(subsystem_id, 3) 00230003
|| ' ' || min(subsystem_id) || ' ' || max(subsystem_id) 00240003
|| ' ' || min(group_name) || ' ' || max(group_name) 00250003
|| ' ' || char(min(timestamp)) || ' ' || char(max(timestamp)) 00260003
from $c.TACCT_GENERAL 00270002
group by left(subsystem_id, 3) 00280002
order by left(subsystem_id, 3) 00290003
with ur 00300002
; 00310002
$! 00320002
$#out 20120123 21:27:20 00330004
select 00340004
'R2DD' || right(' ' || strip(char(count(*))), 10) 00350004
|| ' ' || left(subsystem_id, 3) 00360004
|| ' ' || min(subsystem_id) || ' ' || max(subsystem_id) 00370004
|| ' ' || min(group_name) || ' ' || max(group_name) 00380004
|| ' ' || char(min(timestamp)) || ' ' || char(max(timestamp)) 00390004
from R2DD.TACCT_GENERAL 00400004
group by left(subsystem_id, 3) 00410004
order by left(subsystem_id, 3) 00420004
with ur 00430004
; 00440004
select 00450004
'RR2DD' || right(' ' || strip(char(count(*))), 10) 00460004
|| ' ' || left(subsystem_id, 3) 00470004
|| ' ' || min(subsystem_id) || ' ' || max(subsystem_id) 00480004
|| ' ' || min(group_name) || ' ' || max(group_name) 00490004
|| ' ' || char(min(timestamp)) || ' ' || char(max(timestamp)) 00500004
from RR2DD.TACCT_GENERAL 00510004
group by left(subsystem_id, 3) 00520004
order by left(subsystem_id, 3) 00530004
with ur 00540004
; 00550004
select 00560004
'RR4DD' || right(' ' || strip(char(count(*))), 10) 00570004
|| ' ' || left(subsystem_id, 3) 00580004
|| ' ' || min(subsystem_id) || ' ' || max(subsystem_id) 00590004
|| ' ' || min(group_name) || ' ' || max(group_name) 00600004
|| ' ' || char(min(timestamp)) || ' ' || char(max(timestamp)) 00610004
from RR4DD.TACCT_GENERAL 00620004
group by left(subsystem_id, 3) 00630004
order by left(subsystem_id, 3) 00640004
with ur 00650004
; 00660004
select 00670004
'RZ1DD' || right(' ' || strip(char(count(*))), 10) 00680004
|| ' ' || left(subsystem_id, 3) 00690004
|| ' ' || min(subsystem_id) || ' ' || max(subsystem_id) 00700004
|| ' ' || min(group_name) || ' ' || max(group_name) 00710004
|| ' ' || char(min(timestamp)) || ' ' || char(max(timestamp)) 00720004
from RZ1DD.TACCT_GENERAL 00730004
group by left(subsystem_id, 3) 00740004
order by left(subsystem_id, 3) 00750004
with ur 00760004
; 00770004
select 00780004
'RZ2DD' || right(' ' || strip(char(count(*))), 10) 00790004
|| ' ' || left(subsystem_id, 3) 00800004
|| ' ' || min(subsystem_id) || ' ' || max(subsystem_id) 00810004
|| ' ' || min(group_name) || ' ' || max(group_name) 00820004
|| ' ' || char(min(timestamp)) || ' ' || char(max(timestamp)) 00830004
from RZ2DD.TACCT_GENERAL 00840004
group by left(subsystem_id, 3) 00850004
order by left(subsystem_id, 3) 00860004
with ur 00870004
; 00880004
select 00890004
'RZ4DD' || right(' ' || strip(char(count(*))), 10) 00900004
|| ' ' || left(subsystem_id, 3) 00910004
|| ' ' || min(subsystem_id) || ' ' || max(subsystem_id) 00920004
|| ' ' || min(group_name) || ' ' || max(group_name) 00930004
|| ' ' || char(min(timestamp)) || ' ' || char(max(timestamp)) 00940004
from RZ4DD.TACCT_GENERAL 00950004
group by left(subsystem_id, 3) 00960004
order by left(subsystem_id, 3) 00970004
with ur 00980004
; 00990004
select 01000004
'Z1DD' || right(' ' || strip(char(count(*))), 10) 01010004
|| ' ' || left(subsystem_id, 3) 01020004
|| ' ' || min(subsystem_id) || ' ' || max(subsystem_id) 01030004
|| ' ' || min(group_name) || ' ' || max(group_name) 01040004
|| ' ' || char(min(timestamp)) || ' ' || char(max(timestamp)) 01050004
from Z1DD.TACCT_GENERAL 01060004
group by left(subsystem_id, 3) 01070004
order by left(subsystem_id, 3) 01080004
with ur 01090004
; 01100004
$#out 20120123 21:21:06 01110003
}¢--- A540769.WK.SQL(PDGBENWL) cre=2012-05-10 mod=2012-05-10-16.48.38 A540769 ---
select *
from rz1xx.tacct_general
where plan_name = 'WL5170' and subsystem_id like 'DTF%'
order by timestamp desc
;
select *
from rz2xx.tacct_general
where plan_name = 'WL5170'
order by timestamp desc
}¢--- A540769.WK.SQL(PDGGENPV) cre=2012-03-28 mod=2012-03-28-13.58.27 A540769 ---
select *
from RZ2XX.TACCT_GENERAL g
join RZ2XX.TACCT_program p
on g.plan_name = p.plan_name and g.timestamp = p.timestamp
where g.plan_name = 'PVPOSY' and g.corrName like 'PVIC%'
and g.timestamp > '2012-02-27-00.00.00'
order by g.timestamp desc
with ur
;x;
select class2_elapsed,
smallInt(1000* class2_cpu_total /class2_elapsed) cpu,
smallInt(1000* class3_global_cont /class2_elapsed) "gloCon",
smallInt(1000* class3_DB_IO /class2_elapsed) "db io",
smallInt(1000* class3_LOG_WRT_IO /class2_elapsed) "logIO",
smallInt(1000* (class2_cpu_total
+ class3_global_cont
+ class3_DB_IO
+ class3_LOG_WRT_IO ) /class2_elapsed) "sum",
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
-- and connect_id like 'MFT5614P%'
and connect_id like 'TNT780%'
and plan_name in ('TN7080')
-- and insert >= 1
ORDER BY timestamp desc
--ORDER BY CLASS1_ELAPSED desc
with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 9 DAY
and plan_name = 'RB5000'
and insert >= 1
ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
-- where timestamp > current timestamp - 1 month
where timestamp IN ('2010-02-02-01.05.50.881483'
,'2010-01-30-06.38.00.929757')
and plan_name = 'BE5020'
and insert > 500000 -- class2_elapsed >= 1000
order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
g.*
from RZ2XX.TACCT_GENERAL g
where timestamp > current timestamp - 5 DAY
and plan_name = 'RB5000'
ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
from RZ2XX.TACCT_GENERAL g
with ur
;
}¢--- A540769.WK.SQL(PDGPKGMF) cre=2012-03-08 mod=2012-03-08-12.41.09 A540769 ---
select max(timestamp)
from rz2dd.tacct_program
where pck_id = 'MF9999'
-- and timestamp > current timestamp - 3 months
with ur
}¢--- A540769.WK.SQL(PKGCLEAC) cre=2016-10-26 mod=2016-10-31-09.30.41 A540769 ---
$#@ $*( ***************************************************************
report packages for clenaup process for all rz/dbsys
use: wsh >v
28.10.16 Walter neu
******************************************************************* $*)
m.csm_timeout = 90
$**--- over all rz/dbSys ----------------------------------------------
$do ix=1 while iiIxPut(ix) $@¢
say ix $rz '/' $dbSys ii2rzdb($rz'/'$dbSys, 1)
$**if wordPos($rz, 'RQ2 -Q2') < 1 then iterate
call sqlConnect ii2rzDb($rz'/'$dbSys, 1)
$<>
$@sql $| call sqlStmts ,'' , , ,'o'
$| call pipeWriteNow jTalkRdr()
$<>
call sqlDisconnect
$!
$| call fTabAuto fTabReset(ft)
$**--- sql to find and cound packages for cleanup ---------------------
$proc $@=/sql/
set current application compatibility 'V11R1';
with p0 as
( --- ignore packages created in last two weeks ----------------------
select case when timestamp < current timestamp - 15 days
then 0 else 1 end creNew
, 20 win, p.*
from sysibm.syspackage p
)
, p1 as
( --- end of first window before creNew=1
select max(case when creNew = 0 then timestamp end)
over(partition by location, collid, name) cre1
, max(case when creNew = 0 then pcTimestamp end)
over(partition by location, collid, name) pcT1
, max(case when creNew = 0 then lastUsed end)
over(partition by location, collid, name) use1
, p0.*
from p0
)
, p2 as
( --- end of second window before begin of first window ---------------
select max(case when cre1 < '1000-01-01-00.00.00' then null
when creNew = 0 and timestamp < cre1 - win days
then timestamp end)
over(partition by location, collid, name) cre2
, max(case when pcT1 < '1000-01-01-00.00.00' then null
when creNew = 0 and pcTimestamp < pcT1 - win days
then pcTimestamp end)
over(partition by location, collid, name) pcT2
, max(case when use1 < '01.01.1000' then null
when creNew = 0 and lastUsed < use1 - win days
then lastUsed end)
over(partition by location, collid, name) use2
, p1.*
from p1
)
, pS as
( --- seqNumber of each window ----------------------------------------
select
case when creNew = 1 then 0
when cre1 is null or cre1 < '1000-01-01-00.00.00' then 1
when timestamp >= cre1 - win days then 1
when cre2 is null or cre2 < '1000-01-01-00.00.00' then 2
when timestamp >= cre2 - win days then 2
else 9 end creSeq
, case when creNew = 1 then 0
when pcT1 is null or pcT1 < '1000-01-01-00.00.00' then 1
when pcTimestamp >= pcT1 - win days then 1
when pcT2 is null or pcT2 < '1000-01-01-00.00.00' then 2
when pcTimestamp >= pcT2 - win days then 2
else 9 end pcTSeq
, case when creNew = 1 then 0
-- ignore PKGs never used, not after Db2V9, not in 3 years
when lastUsed < current date - 3 years then 9
when use1 is null or use1 < '01.01.1000' then 1
when lastUsed >= use1 - win days then 1
when use2 is null or use2 < '01.01.1000' then 2
when lastUsed >= use2 - win days then 2
else 9 end useSeq
, p2.*
from p2
)
, pR as
( --- reason why to keep or deactivate a package ----------------------
select case
when sysentries > 0 then 'k1sysEnt>0' -- already deact
when sysentries < 0 then 'k2sysEnt<0' -- should not exist
when creNew = 1 then 'k3cre>15d' -- newly created
when pctSeq <= 2 then 'k4pcT<=2' -- last 2 compile
when creSeq <= 2 then 'k5cre<=2' -- last 2 compile
when useSeq <= 2 then 'k6use<=2' -- last 2 lastUsed
when lastUsed > current date - 4 month
then 'k7use<4Mo' -- wait until next zuegelschub
else 'd0deact' end dsr
, pS.*
from pS
)
, p as
( --- decode dsr ------------------------------------------------------
select left(dsr, 1) deact, substr(dsr, 3) reason, pR.*
from pR
)
select '$rz/$dbSys' rzDb
, deact
, reason
, count(*) pkgVers
, count(distinct strip(collid) || '.' || strip(name)) pkg
, sum(case when pctSeq=1 then 1 else 0 end) pcT1
, sum(case when pctSeq=2 then 1 else 0 end) pcT2
, sum(case when useSeq=1 and lastUsed > current date - 3 year
then 1 else 0 end) use1
, sum(case when useSeq=2 and lastUsed > current date - 3 year
then 1 else 0 end) use2
, sum(case when valid = 'N' then 1 else 0 end) validNo
, sum(case when operative = 'N' then 1 else 0 end) operativeNo
from p
group by grouping sets((deact, dsr, reason), (deact), ())
having deact is null or reason is not null
or (reason is null and count(distinct reason) <> 1)
order by value(deact, ' '), value(substr(dsr, 2, 1), '')
with ur
;
$/sql/
}¢--- A540769.WK.SQL(PKGCLEAN) cre=2016-10-24 mod=2016-10-31-10.11.01 A540769 ---
//A540769P JOB (CP00,KE50),'DB2 REO',
// MSGCLASS=T,TIME=1440,
// NOTIFY=&SYSUID,REGION=0M,
// SCHENV=DB2ALL,CLASS=M1
//*
//S1 EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99,
// PARM='%WSH'
//SYSPROC DD DSN=DSN.DB2.EXEC,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD DUMMY
//WSH DD *
$#:
dbSys = DE0G
sqlFree = -117 -204 -206
$*( *******************************************************************
job to deactivate outdated packages
* this job can be killed and restarted anytime ****************
usage: check/correct dbSys
sub
verify output, if necessary adapt wsh and resubmit job
function
1) select outdated packageVersions by sql below
that are NOT deactivated yet
2) deactived by rebind enable (cics) cics(loeschen)
if package is inValid and rebind is not possible
(has (only) sqlCodes from sqlFree above)
then free package
3) sleep 1 second after 10 rebinds
to avoid monopolisation of the catalog
********************************************************************$*)
rCnt = 0
@selPk
| forWith @rebindPk
proc $@/selPk/
call sqlConnect $dbSys
call sqlStmts , , , , 'o'
$| $@. jTalkRdr()
$<=¢
set current application compatibility 'V11R1';
with p0 as
( --- ignore packages created in last two weeks ----------------------
select case when timestamp < current timestamp - 15 days
then 0 else 1 end creNew
, 20 win, p.*
from sysibm.syspackage p
)
, p1 as
( --- end of first window before creNew=1
select max(case when creNew = 0 then timestamp end)
over(partition by location, collid, name) cre1
, max(case when creNew = 0 then pcTimestamp end)
over(partition by location, collid, name) pcT1
, max(case when creNew = 0 then lastUsed end)
over(partition by location, collid, name) use1
, p0.*
from p0
)
, p2 as
( --- end of second window before begin of first window ---------------
select max(case when cre1 < '1000-01-01-00.00.00' then null
when creNew = 0 and timestamp < cre1 - win days
then timestamp end)
over(partition by location, collid, name) cre2
, max(case when pcT1 < '1000-01-01-00.00.00' then null
when creNew = 0 and pcTimestamp < pcT1 - win days
then pcTimestamp end)
over(partition by location, collid, name) pcT2
, max(case when use1 < '01.01.1000' then null
when creNew = 0 and lastUsed < use1 - win days
then lastUsed end)
over(partition by location, collid, name) use2
, p1.*
from p1
)
, pS as
( --- seqNumber of each window ----------------------------------------
select
case when creNew = 1 then 0
when cre1 is null or cre1 < '1000-01-01-00.00.00' then 1
when timestamp >= cre1 - win days then 1
when cre2 is null or cre2 < '1000-01-01-00.00.00' then 2
when timestamp >= cre2 - win days then 2
else 9 end creSeq
, case when creNew = 1 then 0
when pcT1 is null or pcT1 < '1000-01-01-00.00.00' then 1
when pcTimestamp >= pcT1 - win days then 1
when pcT2 is null or pcT2 < '1000-01-01-00.00.00' then 2
when pcTimestamp >= pcT2 - win days then 2
else 9 end pcTSeq
, case when creNew = 1 then 0
-- ignore PKGs never used, not after Db2V9, not in 3 years
when lastUsed < current date - 3 years then 9
when use1 is null or use1 < '01.01.1000' then 1
when lastUsed >= use1 - win days then 1
when use2 is null or use2 < '01.01.1000' then 2
when lastUsed >= use2 - win days then 2
else 9 end useSeq
, p2.*
from p2
)
, pR as
( --- reason why to keep or deactivate a package ----------------------
select case
when sysentries > 0 then 'k1sysEnt>0' -- already deact
when sysentries < 0 then 'k2sysEnt<0' -- should not exist
when creNew = 1 then 'k3cre>15d' -- newly created
when pctSeq <= 2 then 'k4pcT<=2' -- last 2 compile
when creSeq <= 2 then 'k5cre<=2' -- last 2 compile
when useSeq <= 2 then 'k6use<=2' -- last 2 lastUsed
when lastUsed > current date - 123 days
then 'k7use<4Mo' -- wait zuegelschub
else 'd0deact' end dsr
, pS.*
from pS
)
, p as
( --- decode dsr ------------------------------------------------------
select left(dsr, 1) deact, substr(dsr, 3) reason, pR.*
from pR
)
select strip(collid) collid, strip(name) pk, strip(version) vers
, valid, operative, creSeq, useSeq, pctSeq, lastUsed
from p
where deact = 'd'
fetch first 100 rows only
with ur
$!
$/selPk/
proc $@/rebindPk/
say 'rebindPk' $COLLID'.'$PK'('$VERS')' $*+
'cre='$CRESEQ 'pct='$PCTSEQ 'use='$USESEQ $LASTUSED
rb = 'rebind package('$COLLID'.'$PK'.('$VERS'))',
'enable (cics ) cics(loeschen) planmgmt(extended)'
rr = sqlDsn(bo, $dbSys, rb, '*')
cd = ''
sqlFree = 0
sqlOth = 0
msg = ''
if rr <> 0 then $@¢
do bx=1 to m.bo.0
sx = pos('SQLCODE=', m.bo.bx)
if sx > 0 then do
c1 = word(substr(m.bo.bx, sx+8), 1)
if wordPos(c1, $sqlFree) > 0 then
sqlFree = sqlFree + 1
else
sqlOth = sqlOth + 1
if wordPos(c1, cd) < 1 then
cd = cd c1
end
if word(m.bo.bx, 1) = 'DSNT219I' then
if $VALID = 'N' then
msg = msg 'warn(DSNT219I: ok, but current invalid)'
else
say ' ##dsnt219I but valid='$VALID
end
$!
doFree = (sqlFree > 0) & (sqlOth == 0)
$= rCnt =- $rCnt + 1
say '#rc='rr 'doFree='doFree msg 'sqlCodes='cd 'rb='rb
if rr = 0 then $@¢
$! else if rr=4 & cd = '' & msg <> '' then $@¢
$! else $@¢
do bx=1 to m.bo.0
say ' ' strip(m.bo.bx, 't')
end
if doFree then $@¢
fr = 'free package('$COLLID'.'$PK'.('$VERS'))'
say ' trying to' fr
rr = sqlDsn(fo, $dbSys, fr, '*')
say ' rc='rr 'for' fr
if rr <> 0 then do
do fx=1 to m.fo.0
say ' ' strip(m.fo.fx, 't')
end
end
$!
$!
if $rCnt // 10 = 0 then $@¢
say 'after' $rCnt 'rebinds sleeping 1 second' time()
call sleep 1, 0
$!
$/rebindPk/
}¢--- A540769.WK.SQL(PKGCLEAS) cre=2016-10-28 mod=2016-10-31-08.58.22 A540769 ---
set current application compatibility 'V11R1';
with p0 as
( --- ignore packages created in last two weeks ----------------------
select case when timestamp < current timestamp - 15 days
then 0 else 1 end creNew
, 20 win, p.*
from sysibm.syspackage p
)
, p1 as
( --- end of first window before creNew=1
select max(case when creNew = 0 then timestamp end)
over(partition by location, collid, name) cre1
, max(case when creNew = 0 then pcTimestamp end)
over(partition by location, collid, name) pcT1
, max(case when creNew = 0 then lastUsed end)
over(partition by location, collid, name) use1
, p0.*
from p0
)
, p2 as
( --- end of second window before begin of first window ---------------
select max(case when cre1 < '1000-01-01-00.00.00' then null
when creNew = 0 and timestamp < cre1 - win days
then timestamp end)
over(partition by location, collid, name) cre2
, max(case when pcT1 < '1000-01-01-00.00.00' then null
when creNew = 0 and pcTimestamp < pcT1 - win days
then pcTimestamp end)
over(partition by location, collid, name) pcT2
, max(case when use1 < '01.01.1000' then null
when creNew = 0 and lastUsed < use1 - win days
then lastUsed end)
over(partition by location, collid, name) use2
, p1.*
from p1
)
, pS as
( --- seqNumber of each window ----------------------------------------
select
case when creNew = 1 then 0
when cre1 is null or cre1 < '1000-01-01-00.00.00' then 1
when timestamp >= cre1 - win days then 1
when cre2 is null or cre2 < '1000-01-01-00.00.00' then 2
when timestamp >= cre2 - win days then 2
else 9 end creSeq
, case when creNew = 1 then 0
when pcT1 is null or pcT1 < '1000-01-01-00.00.00' then 1
when pcTimestamp >= pcT1 - win days then 1
when pcT2 is null or pcT2 < '1000-01-01-00.00.00' then 2
when pcTimestamp >= pcT2 - win days then 2
else 9 end pcTSeq
, case when creNew = 1 then 0
-- ignore PKGs never used, not after Db2V9, not in 3 years
when lastUsed < current date - 3 years then 9
when use1 is null or use1 < '01.01.1000' then 1
when lastUsed >= use1 - win days then 1
when use2 is null or use2 < '01.01.1000' then 2
when lastUsed >= use2 - win days then 2
else 9 end useSeq
, p2.*
from p2
)
, pR as
( --- reason why to keep or deactivate a package ----------------------
select case
when sysentries > 0 then 'k1sysEnt>0' -- already deact
when sysentries < 0 then 'k2sysEnt<0' -- should not exist
when creNew = 1 then 'k3cre>15d' -- newly created
when pctSeq <= 2 then 'k4pcT<=2' -- last 2 compile
when creSeq <= 2 then 'k5cre<=2' -- last 2 compile
when useSeq <= 2 then 'k6use<=2' -- last 2 lastUsed
when lastUsed > current date - 4 month
then 'k7use<4Mo' -- wait until next zuegelschub
else 'd0deact' end dsr
, pS.*
from pS
)
, p as
( --- decode dsr ------------------------------------------------------
select left(dsr, 1) deact, substr(dsr, 3) reason, pR.*
from pR
)
$** select * from p order by cnt desc fetch first 100 rows only
select '?rz/?dbSys' rzDb
, deact
, reason
, count(*) pkgVers
, count(distinct strip(collid) || '.' || strip(name)) pkg
, sum(case when pctSeq=1 then 1 else 0 end) pcT1
, sum(case when pctSeq=2 then 1 else 0 end) pcT2
, sum(case when useSeq=1 and lastUsed > current date - 3 year
then 1 else 0 end) use1
, sum(case when useSeq=2 and lastUsed > current date - 3 year
then 1 else 0 end) use2
, sum(case when valid = 'N' then 1 else 0 end) validNo
, sum(case when operative = 'N' then 1 else 0 end) operativeNo
from p
group by grouping sets((deact, dsr, reason), (deact), ())
having deact is null or reason is not null
or (reason is null and count(distinct reason) <> 1)
order by value(deact, ' '), value(substr(dsr, 2, 1), '')
with ur
;
}¢--- A540769.WK.SQL(PKGDEP) cre=2006-09-29 mod=2006-10-19-12.50.53 F540769 ----
select char(bname,12), char(bqualifier,12), btype
from sysibm.syspackdep
where dname = 'DBWK2'
;
x
select distinct p.collid, p.Name, p.version, p.type from
sysibm.syspackdep d join sysibm.syspackage p on p.location =
d.dLocation and p.collid = d.dCollid and p.name = d.dName
and p.conToken = d.dConToken where ( bQualifier = 'OA1A03'
and bName in ('TAV408A1'))
;
x
select distinct p.collid, p.Name, p.version, p.type from
sysibm.syspackdep d join sysibm.syspackage p on p.location =
d.dLocation and p.collid = d.dCollid and p.name = d.dName
and p.conToken = d.dConToken where ( bQualifier = 'VDPS2'
and bName in ('DTUNDERFIXCOMQ', 'DTUNDERFIXCOMP', 'IIXDU',
'IIXDUZWEI')) or ( bQualifier = 'VDPS3 ' and bName in ('vdps
table drei ')) or ( bQualifier = 'EFG' and bName in ('HIK'))
or ( (bQualifier, bName) in ( select tbcreator, tbname from
sysibm.sysindexes where ( creator = 'VDPS2' and name in
('IIXDU', 'IIXDUZWEI')) ) )
;
select distinct p.collid, p.Name, p.version, p.type from sysibm.syspackd
in sysibm.syspackage p on p.location = d.dLocation and p.collid = d.dCol
p.name = d.dName and p.conToken = d.dConToken where ( bQualifier = 'VD
d bName in ('DTUNDERFIXCOMQ', 'DTUNDERFIXCOMP', 'IIXDU', 'IIXDUZWEI')) o
alifier = 'VDPS3 ' and bName in ('vdps table drei ')) or ( bQualifier =
nd bName in ('HIK')) or ( (bQualifier, bName) in ( select tbcreator, tbn
m sysibm.sysindexes where ( creator = 'VDPS2' and name in ('IIXDU', 'IIX
)) ) )
;
select char(bname,12), char(bqualifier,12), btype
from sysibm.syspackdep
where dname = 'DBWK2'
;
select distinct char(p.collid, 8), char(p.Name,12), char(p.version, 30),
p.type
from sysibm.syspackdep d join sysibm.syspackage p
on p.location = d.dLocation and p.collid = d.dCollid
and p.name = d.dName and p.conToken = d.dConToken
where
-- ( bType in ('A', 'M', 'S', 'T', 'V') and
( ( bQualifier = 'gDB9998' and
bName in ('TWK003A', 'TWK001A')
) or
( bQualifier = 'dGDB9998' and
bName in ('TWK003A', 'TWK001A')
) or
( (bQualifier, bName) in
( select tbcreator, tbname
from sysibm.sysindexes
where creator = 'GDB9998' and
name = 'IQQ051A0'
)
)
)
-- )
;
x
}¢--- A540769.WK.SQL(PKGLAST) cre=2010-06-23 mod=2010-06-23-14.25.38 A540769 ---
select translate( '789A4512', char(lastUsed), '123456789A')
, lastUsed
from RZ2.TACCT_PKGUSED
fetch first row only
}¢--- A540769.WK.SQL(PKGUSAV) cre=2012-01-26 mod=2012-01-26-08.23.26 A540769 ---
select *
from rr2.tacct_pkgused
where PCK_ID = 'YAVX005'
and PCK_CONSIST_TOKEN = '1908BFB6056DCDD6'
}¢--- A540769.WK.SQL(PLANCLEA) cre=2015-01-05 mod=2015-01-09-15.06.37 A540769 ---
$#:
dbSys = DP4G
cre = cmnBatch
keyTb = tPlanClea
keyCr = A540769
$@ call sqlConnect $dbSys
$@creKeyTb
$@cleanPlan
$*************** clean plan table
$@proc $@/cleanPlan/
$*( stCol = sql2One('select col from' $-keyCr'.'$-keyTb' ,
order by col fetch first 1 row only', , ,,'-')
say 'start collection=' stCol
call sql2St 'select collid, count(*) cnt from' $-cre'.plan_table' ,
"where collid >= '"stCol"'",
'group by collid order by collid', cc
say m.cc.0 'collections in' $-cre".plan_table >= '"stCol"'"
$do cx=1 to m.cc.0 $@/doCol/
say 'col' m.cc.cx.collid m.cc.cx.cnt
$$- 'col' m.cc.cx.collid m.cc.cx.cnt '*********' time()
$@% insKeys - m.cc.cx.collid, m.cc.cx.cnt
$@% delPlan - m.cc.cx.collid, m.cc.cx.cnt
$<>
$<=¢
delete from $keyCr.$keyTb ;
commit ;
$!
call sqlStmts
$<>
$/doCol/
$*) $@% delDsn DSN_PREDICAT_TABLE
$/cleanPlan/
$*************** delete rows from dsn_*, that are not in plan_table
$@proc $@/delDsn/
parse arg , tb
$= crTb =- $cre'.'tb
say 'delDsn' tb 'crTb='$crTb
call sql2St 'select queryNo, count(*) cnt from' $crTb ,
'group by queryNo', qq
say 'delDsn' $crTb':' m.qq.0 'queryNo'
$do qx=1 to m.qq.0 $@¢
$=qNo =- m.qq.qx.queryNo
$=cnt=- m.qq.qx.cnt
say 'queryNo' $qNo 'count' $cnt
$<>
$<=¢
select 'toDelete ' || count(*) || ' from $cnt: '
|| count(distinct explain_time)
|| value('*' || char(min(explain_time))
|| '-' || char(max(explain_time)), '---')
from $crTb d
where queryNo = $qNo
and explain_time < current timestamp - 20 days
and not exists (select 1
from $cre.plan_table p
where p.queryNo = d.queryNo
and p.explain_time = d.explain_time
)
$!
call sqlStmts
$!
call err 'tstEnd'
$= col =- col
$= cnt =- cnt
$<>
$<=/delSql/
select 'toDelete ' || count(*) || ' from $cnt: '
|| count(distinct explain_time)
|| value('*' || char(min(explain_time))
|| '-' || char(max(explain_time)), '---')
from $cre.plan_table t
where collid = '$col'
and explain_time < current timestamp - 20 days
and not exists (select 1
from $keyCr.$keyTb k
where t.collid = k.col
and t.progName = k.pkg
and t.version = k.vers
and t.explain_Time = k.exTi
)
$/delSql/
call sqlStmts
$/delDsn/
$*************** delete rows from plan table, that are not in keys
$@proc $@/delPlan/
parse arg , col, cnt
say 'del' col 'cnt' cnt
$= col =- col
$= cnt =- cnt
$<>
$<=/delSql/
select 'toDelete ' || count(*) || ' from $cnt: '
|| count(distinct explain_time)
|| value('*' || char(min(explain_time))
|| '-' || char(max(explain_time)), '---')
from $cre.plan_table t
where collid = '$col'
and explain_time < current timestamp - 20 days
and not exists (select 1
from $keyCr.$keyTb k
where t.collid = k.col
and t.progName = k.pkg
and t.version = k.vers
and t.explain_Time = k.exTi
)
$/delSql/
call sqlStmts
$/delPlan/
$*************** insert keys for explains to keep
$@proc $@/insKeys/
parse arg , col, cnt
$= col =- col
say 'ins' $-col 'cnt' cnt
$<>
$<=/insSql/
insert into $keyCr.$keyTb
with p as
(
select collid col, name pkg, version vers, timestamp cre
, max(timestamp(lastUsed)
, value(( select min(n.timestamp)
from sysibm.sysPackage n
where n.location = p.location
and n.collid = p.collid
and n.name = p.name
and n.timestamp > p.timestamp
), current timestamp)) pNxt
from sysibm.sysPackage p
where collid = '$col'
)
, e (col, pkg, vers, cre, pNxt, exTi, exCnt, optHi, exNxt
, keep, keLa, l) as
(
select col, pkg, vers, cre, pNxt
, ( select min(e.explain_time)
from $cre.plan_table e
where p.col = e.collid and p.pkg = e.progName
and p.vers = e.version )
, cast( null as int)
, cast( '' as char(8))
, cast( null as timestamp)
, -9
, cast( null as timestamp)
, 0
from p
union all select col, pkg, vers, cre, pNxt, exTi
, ( select count(*)
from $cre.plan_table t
where e.col = t.collid and e.pkg = t.progName
and e.vers = t.version and e.exTi = t.explain_time )
, ( select max(case when optHint is not null and optHint<> ''
then optHint
when hint_Used is not null and hint_used <> ''
and hint_used <> 'APREUSE' then hint_used
else '' end)
from $cre.plan_table t
where e.col = t.collid and e.pkg = t.progName
and e.vers = t.version and e.exTi = t.explain_time )
, ( select min(explain_time)
from $cre.plan_table t
where e.col = t.collid and e.pkg = t.progName
and e.vers = t.version and e.exTi < t.explain_time )
, -8
, keLa
, l+1
from e
where e.l < 9999 and keep = -9
union all select col, pkg, vers, cre, pNxt, exTi, exCnt, optHi
, exNxt
, case when keLa is null and pNxt <= exNxt then -1
when pNxt <= exTi then -2
when optHi <> '' then -1
when exNxt is null or exNxt > exTi + 10 days then -1
when keLa is null and cre < exTi - 10 days then -1
when keLa < exTi - 20 days then -1
else -2 end
, keLa
, l+1
from e
where l < 9999 and keep = -8
union all select col, pkg, vers, cre, pNxt, exTi, exCnt, optHi
, exNxt
, keep + 2
, case when keep = -2 then keLa
when optHi <> '' then keLa
else exTi end
, l+1
from e
where e.l < 9999 and keep in (-1, -2)
union all select col, pkg, vers, cre, pNxt, exNxt
, cast(null as int), ''
, cast(null as timestamp)
, -9
, keLa
, l+1
from e
where l < 9999 and keep in (1, 0) and exNxt < pNxt
)
select col, pkg, vers, exTi
from e
where keep = 1 and exTi is not null
$*(
select substr(strip(col) || '.' || strip(pkg) || '#' || vers, 1, 30)
, exTi, keep, l, exCnt, optHi, exNxt, keLa, cre, pNxt
from e
where keep >= 0
order by col, pkg, cre, l
$*)
$/insSql/
call sqlStmts
$/insKeys/
$*************** create keyTb, if it does not exist
$@proc $@/creKeyTb/
if catTbLastCol($-keyCr, $-keyTb) == '4 EXTI' then
return
$<>
$<=/ddl/
drop TABLESPACE dA540769.PLANCLEA;
commit;
CREATE TABLESPACE PLANCLEA
IN DA540769
USING STOGROUP GSMS PRIQTY -1 SECQTY -1 ERASE NO
LOCKSIZE PAGE LOCKMAX SYSTEM
BUFFERPOOL BP8K0
SEGSIZE 64
COMPRESS YES CLOSE YES
CCSID UNICODE;
CREATE TABLE $keyCr.$keyTb
( COL VARCHAR(128) NOT NULL WITH DEFAULT
, pkg VARCHAR(128) NOT NULL with default
, VERS VARCHAR(122) NOT NULL WITH DEFAULT
, exTi TIMESTAMP NOT NULL WITH DEFAULT
) IN DA540769.PLANCLEA
VOLATILE
DATA CAPTURE CHANGES
CCSID UNICODE;
CREATE INDEX $keyCr.$-¢overlay('i', $keyTb, 1)$!
ON $keyCr.$keyTb
( COL
, pkg
, VERS
, exTi
) -- no other fields allowed ||||
USING STOGROUP GSMS PRIQTY -1 SECQTY -1 ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
NOT PADDED
COMPRESS NO
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
commit;
$/ddl/
call sqlStmts
$/creKeyTb/
$#out 20150109 15:05:42
COL1
toDelete 0 from 4: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 4: ' || count(dis...
COL1
toDelete 0 from 4: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 4: ' || count(dis...
COL1
toDelete 0 from 20: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 20: ' || count(di...
COL1
toDelete 0 from 16: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 16: ' || count(di...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 12: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 12: ' || count(di...
COL1
toDelete 0 from 264: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 264: ' || count(d...
COL1
toDelete 0 from 20: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 20: ' || count(di...
COL1
toDelete 0 from 16: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 16: ' || count(di...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 12: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 12: ' || count(di...
COL1
toDelete 0 from 264: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 264: ' || count(d...
COL1
toDelete 0 from 44: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 44: ' || count(di...
COL1
toDelete 0 from 12: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 12: ' || count(di...
COL1
toDelete 0 from 264: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 264: ' || count(d...
COL1
toDelete 0 from 49: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 49: ' || count(di...
COL1
toDelete 0 from 5: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 5: ' || count(dis...
COL1
toDelete 0 from 24: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 24: ' || count(di...
COL1
toDelete 0 from 21: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 21: ' || count(di...
COL1
toDelete 0 from 45: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 45: ' || count(di...
COL1
toDelete 0 from 7: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 7: ' || count(dis...
COL1
toDelete 0 from 56: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 56: ' || count(di...
COL1
toDelete 0 from 35: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 35: ' || count(di...
COL1
toDelete 0 from 120: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 120: ' || count(d...
COL1
toDelete 0 from 134: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 134: ' || count(d...
COL1
toDelete 0 from 35: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 35: ' || count(di...
COL1
toDelete 0 from 16: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 16: ' || count(di...
COL1
toDelete 0 from 35: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 35: ' || count(di...
COL1
toDelete 0 from 50: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 50: ' || count(di...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 7: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 7: ' || count(dis...
COL1
toDelete 0 from 16: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 16: ' || count(di...
COL1
toDelete 0 from 49: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 49: ' || count(di...
COL1
toDelete 0 from 40: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 40: ' || count(di...
COL1
toDelete 0 from 12: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 12: ' || count(di...
COL1
toDelete 0 from 16: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 16: ' || count(di...
COL1
toDelete 0 from 25: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 25: ' || count(di...
COL1
toDelete 0 from 6: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 6: ' || count(dis...
COL1
toDelete 0 from 30: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 30: ' || count(di...
COL1
toDelete 0 from 5: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 5: ' || count(dis...
COL1
toDelete 0 from 16: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 16: ' || count(di...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 6: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 6: ' || count(dis...
COL1
toDelete 0 from 16: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 16: ' || count(di...
COL1
toDelete 0 from 18: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 18: ' || count(di...
COL1
toDelete 0 from 21: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 21: ' || count(di...
COL1
toDelete 0 from 102: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 102: ' || count(d...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 5: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 5: ' || count(dis...
COL1
toDelete 0 from 12: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 12: ' || count(di...
COL1
toDelete 0 from 21: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 21: ' || count(di...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 21: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 21: ' || count(di...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 21: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 21: ' || count(di...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 16: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 16: ' || count(di...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 21: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 21: ' || count(di...
COL1
toDelete 0 from 64: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 64: ' || count(di...
COL1
toDelete 0 from 20: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 20: ' || count(di...
COL1
toDelete 0 from 18: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 18: ' || count(di...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 16: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 16: ' || count(di...
COL1
toDelete 0 from 48: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 48: ' || count(di...
COL1
toDelete 0 from 6: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 6: ' || count(dis...
COL1
toDelete 0 from 12: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 12: ' || count(di...
COL1
toDelete 0 from 16: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 16: ' || count(di...
COL1
toDelete 0 from 35: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 35: ' || count(di...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 16: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 16: ' || count(di...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 36: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 36: ' || count(di...
COL1
toDelete 0 from 20: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 20: ' || count(di...
COL1
toDelete 0 from 35: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 35: ' || count(di...
COL1
toDelete 0 from 5: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 5: ' || count(dis...
COL1
toDelete 0 from 64: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 64: ' || count(di...
COL1
toDelete 0 from 18: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 18: ' || count(di...
COL1
toDelete 0 from 22: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 22: ' || count(di...
COL1
toDelete 0 from 18: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 18: ' || count(di...
COL1
toDelete 0 from 12: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 12: ' || count(di...
COL1
toDelete 0 from 12: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 12: ' || count(di...
COL1
toDelete 0 from 15: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 15: ' || count(di...
COL1
toDelete 0 from 30: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 30: ' || count(di...
COL1
toDelete 0 from 30: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 30: ' || count(di...
COL1
toDelete 0 from 6: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 6: ' || count(dis...
COL1
toDelete 0 from 64: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 64: ' || count(di...
COL1
toDelete 0 from 25: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 25: ' || count(di...
COL1
toDelete 0 from 20: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 20: ' || count(di...
COL1
toDelete 0 from 6: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 6: ' || count(dis...
COL1
toDelete 0 from 15: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 15: ' || count(di...
COL1
toDelete 0 from 18: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 18: ' || count(di...
COL1
toDelete 0 from 6: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 6: ' || count(dis...
COL1
toDelete 0 from 6: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 6: ' || count(dis...
COL1
toDelete 0 from 24: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 24: ' || count(di...
*** run error ***
tstEnd
$#out 20150109 15:04:49
}¢--- A540769.WK.SQL(PLANCLES) cre=2015-01-06 mod=2015-02-18-11.49.11 A540769 ---
-- plan table cleanup
-- query um zu behaltende Explains zu bestimmen
--
with p2 as -- welche Package Version ist wann gültig
-- von CRE bis pkNx
(
select collid col, name pkg, version vers, timestamp cre
, max(timestamp(lastUsed)
, value(( select min(n.timestamp)
from sysibm.sysPackage n
where n.location = p.location
and n.collid = p.collid
and n.name = p.name
and n.timestamp > p.timestamp
), current timestamp)) pkNx
from sysibm.sysPackage p
where location = '' and collid = 'NI' -- and name = 'PC5120'
)
, e2 as -- welche explain_time joinen, rows zählen
(
select col, pkg, vers, cre, pkNx
, e.explain_time exTi
, count(*) exCnt
, max(case when optHint is not null and optHint<>'' then optHint
when hint_Used is not null and hint_used <> ''
and hint_used <> 'APREUSE' then hint_used
else '' end) optHi
from p2 p join cmnBatch.plan_table e
on p.col = e.collid and p.pkg = e.progName
and p.vers = e.version
group by col, pkg, vers, cre, pkNx, explain_time
)
, e3 as -- nächste explain_time suchen
(
select e2.*
, ( select min(explain_time)
from cmnBatch.plan_table n
where e2.col = n.collid and e2.pkg = n.progName
and e2.vers = n.version and e2.exTi < n.explain_time
) exNx
from e2
)
, e4 as -- herausfinden ob behalten oder löschen
(
select
case when exTi > pkNx then '0 pNx'
when exTi < cre then '0 cre'
when optHi <> '' then '1 optHi'
when exNx is Null then '1 nxNull'
when exNx >= pkNx then '1 nx>pNx'
when days(exNx) - days(exTi) > 30 then '1 >30day'
when trunc_timestamp(exTi, 'mon')
<> trunc_timestamp(exNx, 'mon') then '1 mon'
else '0 else'
end keep
, days(exTi) exTID
, days(exNx) exNxD
, e3.*
from e3
)
, eq as -- queryNo joinen
(
select exTi, queryNo, count(*) eCnt, keep
from e4 p join cmnBatch.plan_table e
on p.col = e.collid and p.pkg = e.progName
and p.vers = e.version
-- where keep like '1%'
group by exTi, queryNo, keep
)
select count(*), sum(eCnt) eCnt, keep
from eq
group by keep
;x;
select exTi, exNx, e4.* from e4
order by col, pkg, vers, cre, pkNx, exTi
;x;
, e (col, pkg, vers, cre, pkNx, exTi, exCnt, optHi, exNxt
, keep, keLa, l) as
;x;
select count(distinct explain_time), count(*), collid, progName
from cmnBatch.plan_table
group by collid, progName
order by 1 desc
fetch first 1000 rows only
with ur
;x;
with p as
(
select collid col, name pkg, version vers, timestamp cre
, max(timestamp(lastUsed)
, value(( select min(n.timestamp)
from sysibm.sysPackage n
where n.location = p.location
and n.collid = p.collid
and n.name = p.name
and n.timestamp > p.timestamp
), current timestamp)) pNxt
from sysibm.sysPackage p
-- where collid = '$col'
)
, e (col, pkg, vers, cre, pNxt, exTi, exCnt, optHi, exNxt
, keep, keLa, l) as
(
select col, pkg, vers, cre, pNxt
, ( select min(e.explain_time)
from cmnBatch.plan_table e
where p.col = e.collid and p.pkg = e.progName
and p.vers = e.version )
, cast( null as int)
, cast( '' as char(8))
, cast( null as timestamp)
, -9
, cast( null as timestamp)
, 0
from p
union all select col, pkg, vers, cre, pNxt, exTi
, ( select count(*)
from cmnBatch.plan_table t
where e.col = t.collid and e.pkg = t.progName
and e.vers = t.version and e.exTi = t.explain_time )
, ( select max(case when optHint is not null and optHint<> ''
then optHint
when hint_Used is not null and hint_used <> ''
and hint_used <> 'APREUSE' then hint_used
else '' end)
from cmnBatch.plan_table t
where e.col = t.collid and e.pkg = t.progName
and e.vers = t.version and e.exTi = t.explain_time )
, ( select min(explain_time)
from cmnBatch.plan_table t
where e.col = t.collid and e.pkg = t.progName
and e.vers = t.version and e.exTi < t.explain_time )
, -8
, keLa
, l+1
from e
where e.l < 9999 and keep = -9
union all select col, pkg, vers, cre, pNxt, exTi, exCnt, optHi
, exNxt
, case when keLa is null and pNxt <= exNxt then -1
when pNxt <= exTi then -2
when optHi <> '' then -1
when exNxt is null or exNxt > exTi + 10 days then -1
when keLa is null and cre < exTi - 10 days then -1
when keLa < exTi - 20 days then -1
else -2 end
, keLa
, l+1
from e
where l < 9999 and keep = -8
union all select col, pkg, vers, cre, pNxt, exTi, exCnt, optHi
, exNxt
, keep + 2
, case when keep = -2 then keLa
when optHi <> '' then keLa
else exTi end
, l+1
from e
where e.l < 9999 and keep in (-1, -2)
union all select col, pkg, vers, cre, pNxt, exNxt
, cast(null as int), ''
, cast(null as timestamp)
, -9
, keLa
, l+1
from e
where l < 9999 and keep in (1, 0) and exNxt < pNxt
)
select substr(strip(col) || '.' || strip(pkg) || '#' || vers, 1, 30)
, exTi, keep, l, exCnt, optHi, exNxt, keLa, cre, pNxt
from e
where keep >= 0 and exTi is not null
order by col, pkg, cre, l
}¢--- A540769.WK.SQL(PLANCNT) cre=2012-01-23 mod=2015-01-05-16.31.25 A540769 ---
with c as
(
select collid, count(*) cnt
from cmnbatch.plan_table
group by collid
)
select count(*), sum(cnt), max(cnt), avg(cnt)
from c
with ur
;x;
with p as
(
select collid col, name pkg, version vers, timestamp cre
, max(timestamp(lastUsed)
, value(( select min(n.timestamp)
from sysibm.sysPackage n
where n.location = p.location
and n.collid = p.collid
and n.name = p.name
and n.timestamp > p.timestamp
), current timestamp)) pNxt
from sysibm.sysPackage p
-- where name = 'NZERR90' and collid = 'NZ'
where name like '%' and collid = 'MF'
)
, e (col, pkg, vers, cre, pNxt, exTi, exCnt, optHi, exNxt
, keep, keLa, l) as
(
select col, pkg, vers, cre, pNxt
, ( select min(e.explain_time)
from cmnBatch.plan_table e
where p.col = e.collid and p.pkg = e.progName
and p.vers = e.version )
, cast( null as int)
, cast( '' as char(8))
, cast( null as timestamp)
, -9
, cast( null as timestamp)
, 0
from p
union all select col, pkg, vers, cre, pNxt, exTi
, ( select count(*)
from cmnBatch.plan_table t
where e.col = t.collid and e.pkg = t.progName
and e.vers = t.version and e.exTi = t.explain_time )
, ( select max(case when optHint is not null and optHint<> ''
then optHint
when hint_Used is not null and hint_used <> ''
and hint_used <> 'APREUSE' then hint_used
else '' end)
from cmnBatch.plan_table t
where e.col = t.collid and e.pkg = t.progName
and e.vers = t.version and e.exTi = t.explain_time )
, ( select min(explain_time)
from cmnBatch.plan_table t
where e.col = t.collid and e.pkg = t.progName
and e.vers = t.version and e.exTi < t.explain_time )
, -8
, keLa
, l+1
from e
where e.l < 9999 and keep = -9
union all select col, pkg, vers, cre, pNxt, exTi, exCnt, optHi
, exNxt
, case when keLa is null and pNxt <= exNxt then -1
when pNxt <= exTi then -2
when optHi <> '' then -1
when exNxt is null or exNxt > exTi + 10 days then -1
when keLa is null and cre < exTi - 10 days then -1
when keLa < exTi - 20 days then -1
else -2 end
, keLa
, l+1
from e
where l < 9999 and keep = -8
union all select col, pkg, vers, cre, pNxt, exTi, exCnt, optHi
, exNxt
, keep + 2
, case when keep = -2 then keLa
when optHi <> '' then keLa
else exTi end
, l+1
from e
where e.l < 9999 and keep in (-1, -2)
union all select col, pkg, vers, cre, pNxt, exNxt
, cast(null as int), ''
, cast(null as timestamp)
, -9
, keLa
, l+1
from e
where l < 9999 and keep in (1, 0) and exNxt < pNxt
)
select substr(strip(col) || '.' || strip(pkg) || '#' || vers, 1, 30)
, exTi, keep, l, exCnt, optHi, exNxt, keLa, cre, pNxt
from e
where keep >= 0
order by col, pkg, cre, l
;x;
;x;
with p as
(
select collid col, name pkg, version vers, timestamp cre, max(lastUsed
, value(( select min(date(n.timestamp))
from sysibm.sysPackage n
where n.location = p.location
and n.collid = p.collid
and n.name = p.name
and n.timestamp > p.timestamp
), current date)) pNxt
from sysibm.sysPackage p
where name = 'NZERR90' and collid = 'NZ'
)
, e (col, pkg, vers, cre, pNxt, exTi, exCnt, optHi, l) as
(
select col, pkg, vers, cre, pNxt
, select(min(e.explain_time) exTi
, count(*) exCnt
, max(case when optHint is not null and optHint<> '' then optHint
when hint_Used is not null and hint_used <> ''
and hint_used <> 'APREUSE' then hint_used
else '' end) optHint
from p join cmnBatch.plan_table e
on p.col = e.collid and p.pkg = e.progName
and p.vers = e.version and e.explain_time < timestamp(pNxt)
group by col, pkg, vers, cre, pNxt, e.explain_time
)
select * from e
;x;
from cmnbatch.plan_table n
where
n.collid = e.collid
and n.progname = e.progname
and n.version = e.version
and n.explain_time > e.explain_time
), current date) eNxt
from cmnBatch.plan_table e
where progName = 'NZERR90' and collid = 'NZ'
group by collid, progName, version, explain_time
)
select value(p.col, e.col) col
, value(p.pkg, e.pkg) pkg
, value(p.vers, e.vers) vers
, case when
, cre, pNxt
, exTi, exCnt, optHint, eNxt
from p
full outer join e
on p.col = e.col and p.pkg = e.pkg and p.vers = e.vers
order by 1, 2, value (cre, exTi) desc, exTi desc
;x;
with p as
(
select collid col, name pkg, version vers, timestamp cre, max(lastUsed
, value(( select min(date(n.timestamp))
from sysibm.sysPackage n
where n.location = p.location
and n.collid = p.collid
and n.name = p.name
and n.timestamp > p.timestamp
), current date)) pNxt
from sysibm.sysPackage p
where name = 'NZERR90' and collid = 'NZ'
)
, e as
(
select collid col, progName pkg, version vers
, explain_time exTi
, count(*) exCnt
, max(strip(optHint)) optHint
, value(( select min(date(n.explain_time))
from cmnbatch.plan_table n
where
n.collid = e.collid
and n.progname = e.progname
and n.version = e.version
and n.explain_time > e.explain_time
), current date) eNxt
from cmnBatch.plan_table e
where progName = 'NZERR90' and collid = 'NZ'
group by collid, progName, version, explain_time
)
select value(p.col, e.col) col
, value(p.pkg, e.pkg) pkg
, value(p.vers, e.vers) vers
, case when
, cre, pNxt
, exTi, exCnt, optHint, eNxt
from p
full outer join e
on p.col = e.col and p.pkg = e.pkg and p.vers = e.vers
order by 1, 2, value (cre, exTi) desc, exTi desc
;x;
select progname, collid, version, explain_time, count(*) cnt
, count(distinct explain_time) exTiS
from cmnBatch.plan_table
where progName = 'NZERR90' and collid = 'NZ'
and version = 'NZV0000216'
group by progname, collid, version, explain_time
with d as
(
select days(timestamp) - days(pcTimestamp) d
from sysibm.sysPackage
)
select count(*), d
from d
group by d
order by 1 desc
;x;
-- search duplicate explain times per program/version
with e as
(
select explain_time,
strip(collid) || '.' || strip(progName) || '.'
|| strip(version) cpv
from cmnBatch.plan_table
)
select explain_time, count(distinct cpv) cntCpv
, substr(min(cpv), 1, 30) cpvF
, substr(max(cpv), 1, 30) cpvT
from e
group by explain_time
order by 2 desc
fetch first 1000 rows only
with ur
;x;
with e as
(
select progname, collid, version, explain_time, count(*) cnt
, count(distinct explain_time) exTiS
from cmnBatch.plan_table
where progName = 'NZERR90' and collid = 'NZ'
and version = 'NZV0000216'
group by progname, collid, version, explain_time
)
select e.*, p.pcTimestamp
from e
left join sysibm.sysPackage p
on e.collid = p.collid and e.progName = p.name
and e.version = p.version
order by p.pcTimestamp desc, explain_time desc
with ur
;x;
select
with c (prg, col, cnt, cPr) as
(
select progname, collid, count(*), 1
from cmnBatch.plan_table
group by progname, collid
)
, t (prg, col, cnt, cPr) as
(
select '*', '*', sum(cnt), count(*) progs
from c
)
select * from t
union all select c.* from c
order by cnt desc
fetch first 10 rows only
with ur
select count(*), max(p.bind_time)
, substr(strip(p.collid) || '.' || p.progname, 1, 20)
, (select k.pcTimestamp
from sysibm.sysPackage k
where k.collid = p.collid
and k.name = p.progname
and k.version = p.version
and k.location = '' )
, p.version
from DB2XML.plan_table p
-- where bind_time >= '2011-01-01-00.00.00'
group by collid, progname, version
order by 4 desc, collid, progname, version desc
with ur
;;;
select count(*), max(pctimestamp) "maxPcTimestamp", owner
from sysibm.sysPackage
group by owner
order by 2 desc
with ur
;;
select year(bind_time), count(*) cnt
, sum(case when opthint <> '' then 1 else 0 end) cntHint
, sum(case when hint_used <> '' then 1 else 0 end) cntUseHi
from S100447.plan_table
group by year(bind_time)
order by 1 desc
with ur
;;;
select *
from S100447.plan_table
where opthint <> '' or hint_used <> ''
;;;;
insert into s100447.tOptHint
select * from cmnbatch.plan_table where opthint <> ''
union select * from cmnbatch.plan_table where opthint <> ''
union select * from S100006.plan_table where opthint <> ''
union select * from S100447.plan_table where opthint <> ''
union select * from S103931.plan_table where opthint <> ''
}¢--- A540769.WK.SQL(PLANCOMP) cre=2015-02-11 mod=2015-02-23-08.15.11 A540769 ---
$#s DBOL
-- compare all plan_tables in a db2 Subsystem to a model set
with m as -- select model table set
(
select t.creator mCr, t.name mTb
, t.encoding_scheme mEnc
, t.recLength mRecL, t.colCount mCols, c.name mCol
from sysibm.sysTables t
left join sysibm.sysColumns c
on t.creator = c.tbCreator and t.name = c.tbName
and t.colCount = c.colNo
where type = 'T'
and creator = 'A540769' and dbName = 'DB2PLAN'
)
, c as -- select all other creators of plan_tables
(
select creator cCr
from sysibm.systables t
join m
on t.name = m.mTb and t.creator <> m.mCr and t.type = 'T'
group by creator
)
, j1 as -- join creators (to avoid sql error)
(
select c.cCr, m.*
from m, c
)
, j2 as -- left join infos of other tables
(
select t.name tb
, t.encoding_scheme enc
, t.recLength recL, t.colCount cols , k.name col
, j1.*
from j1
left join sysibm.sysTables t
on t.name = mTb and t.creator = cCr and t.type = 'T'
left join sysibm.sysColumns k
on t.creator = k.tbCreator and t.name = k.tbName
and t.colCount = k.colNo
)
, j3 as -- select changed or missing tables only
(
select * from j2
where (tb is null and mtb not in ( 'DSN_USERQUERY_TABLE'
, 'DSN_STATEMENT_CACHE_TABLE'
, 'DSN_VIRTUAL_INDEXES'
, 'DSN_VIRTUAL_KEYTARGETS'
, 'DSN_PREDICATE_SELECTIVITY'
, 'F2PLAN_TABLE'
) )
or mRecL <> recL or mCols <> cols or mCol <> col or mEnc <>enc
) -- join unchanged creators
select value(c.cCr, j3.cCr) cr, mTb tb
, enc, recL, cols, col, mRecL, mEnc, mCols, mCol, mCr
from c left join j3 on c.cCr = j3.cCr
order by 1, tb
$#out 20150223 08:12:37
CR ENC COLS MRECL MCOLS
TB RECL COL MENC MCOL
CR TB ENC RECL COL COL MREC MEN MCO MCOL
CMNBATCH --- --- --- --- --- --- --- --- ---
DSN8BQRY DSN_COLDIST_TABLE --- --- --- --- 7345 U 21 EXPANSION_
DSN8BQRY DSN_DETCOST_TABLE --- --- --- --- 1007 U 136 EXPANSION_
DSN8BQRY DSN_FILTER_TABLE --- --- --- --- 493 U 18 EXPANSION_
DSN8BQRY DSN_FUNCTION_TABLE --- --- --- --- 4797 U 20 EXPANSION_
DSN8BQRY DSN_KEYTGTDIST_TABLE --- --- --- --- 7345 U 21 EXPANSION_
DSN8BQRY DSN_PGRANGE_TABLE --- --- --- --- 476 U 15 EXPANSION_
DSN8BQRY DSN_PGROUP_TABLE --- --- --- --- 739 U 42 EXPANSION_
DSN8BQRY DSN_PREDICAT_TABLE --- --- --- --- 2930 U 42 EXPANSION_
DSN8BQRY DSN_PTASK_TABLE --- --- --- --- 595 U 25 EXPANSION_
DSN8BQRY DSN_QUERYINFO_TABLE --- --- --- --- 771 U 18 EXPANSION_
DSN8BQRY DSN_QUERY_TABLE --- --- --- --- 514 U 16 EXPANSION_
DSN8BQRY DSN_SORTKEY_TABLE --- --- --- --- 639 U 21 EXPANSION_
DSN8BQRY DSN_SORT_TABLE --- --- --- --- 486 U 16 EXPANSION_
DSN8BQRY DSN_STATEMNT_TABLE --- --- --- --- 744 U 16 EXPANSION_
DSN8BQRY DSN_STAT_FEEDBACK --- --- --- --- 1687 U 20 REMARKS
DSN8BQRY DSN_STRUCT_TABLE --- --- --- --- 510 U 20 EXPANSION_
DSN8BQRY DSN_USERQUERY_TABLE U 846 17 OTHER_PARMS 849 U 20 OPTION_OVE
DSN8BQRY DSN_VIEWREF_TABLE --- --- --- --- 727 U 13 EXPANSION_
DSN8BQRY PLAN_TABLE U 2745 64 MERGN 2749 U 66 EXPANSION_
S100006 --- --- --- --- --- --- --- --- ---
S100447 --- --- --- --- --- --- --- --- ---
S103931 --- --- --- --- --- --- --- --- ---
SYSIBM DSN_COLDIST_TABLE U 7343 20 HIGHVALUE 7345 U 21 EXPANSION_
SYSIBM DSN_DETCOST_TABLE U 1002 132 CRED 1007 U 136 EXPANSION_
SYSIBM DSN_FILTER_TABLE U 491 17 PUSHDOWN 493 U 18 EXPANSION_
SYSIBM DSN_FUNCTION_TABLE U 4795 19 VERSION 4797 U 20 EXPANSION_
SYSIBM DSN_KEYTGTDIST_TABLE U 7343 20 HIGHVALUE 7345 U 21 EXPANSION_
SYSIBM DSN_PGRANGE_TABLE U 474 14 VERSION 476 U 15 EXPANSION_
SYSIBM DSN_PGROUP_TABLE U 737 41 STRAW_MODEL 739 U 42 EXPANSION_
SYSIBM DSN_PREDICAT_TABLE U 2928 41 VERSION 2930 U 42 EXPANSION_
SYSIBM DSN_PTASK_TABLE U 593 24 VERSION 595 U 25 EXPANSION_
SYSIBM DSN_QUERYINFO_TABLE U 769 17 QB_INFO_ROWID 771 U 18 EXPANSION_
SYSIBM DSN_QUERY_TABLE U 512 15 VERSION 514 U 16 EXPANSION_
SYSIBM DSN_SORTKEY_TABLE U 637 20 VERSION 639 U 21 EXPANSION_
SYSIBM DSN_SORT_TABLE U 484 15 VERSION 486 U 16 EXPANSION_
SYSIBM DSN_STATEMNT_TABLE U 742 15 VERSION 744 U 16 EXPANSION_
SYSIBM DSN_STAT_FEEDBACK --- --- --- --- 1687 U 20 REMARKS
SYSIBM DSN_STRUCT_TABLE U 508 19 VERSION 510 U 20 EXPANSION_
SYSIBM DSN_VIEWREF_TABLE U 725 12 SECTNOI 727 U 13 EXPANSION_
SYSIBM PLAN_TABLE U 2745 64 MERGN 2749 U 66 EXPANSION_
41 rows fetched: with m as ( select t.creator mCr, t.name mTb , t.encoding...
$#out 20150223 08:03:59
CR ENC COLS MRECL MCOLS
TB RECL COL MENC MCOL
CR TB ENC RECL COL COL MREC MEN MCO MCOL
A168658 --- --- --- --- --- --- --- --- ---
A422686 --- --- --- --- --- --- --- --- ---
A559315 --- --- --- --- --- --- --- --- ---
A662172 --- --- --- --- --- --- --- --- ---
A754048 --- --- --- --- --- --- --- --- ---
A790472 --- --- --- --- --- --- --- --- ---
CMNBATCH --- --- --- --- --- --- --- --- ---
DSN8BQRY DSN_COLDIST_TABLE --- --- --- --- 7345 U 21 EXPANSION_
DSN8BQRY DSN_DETCOST_TABLE --- --- --- --- 1007 U 136 EXPANSION_
DSN8BQRY DSN_FILTER_TABLE --- --- --- --- 493 U 18 EXPANSION_
DSN8BQRY DSN_FUNCTION_TABLE --- --- --- --- 4797 U 20 EXPANSION_
DSN8BQRY DSN_KEYTGTDIST_TABLE --- --- --- --- 7345 U 21 EXPANSION_
DSN8BQRY DSN_PGRANGE_TABLE --- --- --- --- 476 U 15 EXPANSION_
DSN8BQRY DSN_PGROUP_TABLE --- --- --- --- 739 U 42 EXPANSION_
DSN8BQRY DSN_PREDICAT_TABLE --- --- --- --- 2930 U 42 EXPANSION_
DSN8BQRY DSN_PTASK_TABLE --- --- --- --- 595 U 25 EXPANSION_
DSN8BQRY DSN_QUERYINFO_TABLE --- --- --- --- 771 U 18 EXPANSION_
DSN8BQRY DSN_QUERY_TABLE --- --- --- --- 514 U 16 EXPANSION_
DSN8BQRY DSN_SORTKEY_TABLE --- --- --- --- 639 U 21 EXPANSION_
DSN8BQRY DSN_SORT_TABLE --- --- --- --- 486 U 16 EXPANSION_
DSN8BQRY DSN_STATEMNT_TABLE --- --- --- --- 744 U 16 EXPANSION_
DSN8BQRY DSN_STAT_FEEDBACK --- --- --- --- 1687 U 20 REMARKS
DSN8BQRY DSN_STRUCT_TABLE --- --- --- --- 510 U 20 EXPANSION_
DSN8BQRY DSN_USERQUERY_TABLE U 846 17 OTHER_PARMS 849 U 20 OPTION_OVE
DSN8BQRY DSN_VIEWREF_TABLE --- --- --- --- 727 U 13 EXPANSION_
DSN8BQRY PLAN_TABLE U 2745 64 MERGN 2749 U 66 EXPANSION_
S100447 --- --- --- --- --- --- --- --- ---
SYSIBM DSN_COLDIST_TABLE U 7343 20 HIGHVALUE 7345 U 21 EXPANSION_
SYSIBM DSN_DETCOST_TABLE U 1002 132 CRED 1007 U 136 EXPANSION_
SYSIBM DSN_FILTER_TABLE U 491 17 PUSHDOWN 493 U 18 EXPANSION_
SYSIBM DSN_FUNCTION_TABLE U 4795 19 VERSION 4797 U 20 EXPANSION_
SYSIBM DSN_KEYTGTDIST_TABLE U 7343 20 HIGHVALUE 7345 U 21 EXPANSION_
SYSIBM DSN_PGRANGE_TABLE U 474 14 VERSION 476 U 15 EXPANSION_
SYSIBM DSN_PGROUP_TABLE U 737 41 STRAW_MODEL 739 U 42 EXPANSION_
SYSIBM DSN_PREDICAT_TABLE U 2928 41 VERSION 2930 U 42 EXPANSION_
SYSIBM DSN_PTASK_TABLE U 593 24 VERSION 595 U 25 EXPANSION_
SYSIBM DSN_QUERYINFO_TABLE U 769 17 QB_INFO_ROWID 771 U 18 EXPANSION_
SYSIBM DSN_QUERY_TABLE U 512 15 VERSION 514 U 16 EXPANSION_
SYSIBM DSN_SORTKEY_TABLE U 637 20 VERSION 639 U 21 EXPANSION_
SYSIBM DSN_SORT_TABLE U 484 15 VERSION 486 U 16 EXPANSION_
SYSIBM DSN_STATEMNT_TABLE U 742 15 VERSION 744 U 16 EXPANSION_
SYSIBM DSN_STAT_FEEDBACK --- --- --- --- 1687 U 20 REMARKS
SYSIBM DSN_STRUCT_TABLE U 508 19 VERSION 510 U 20 EXPANSION_
SYSIBM DSN_VIEWREF_TABLE U 725 12 SECTNOI 727 U 13 EXPANSION_
SYSIBM PLAN_TABLE U 2745 64 MERGN 2749 U 66 EXPANSION_
45 rows fetched: with m as ( select t.creator mCr, t.name mTb , t.encoding...
$#out 20150216 15:54:05
}¢--- A540769.WK.SQL(PLANCOUN) cre=2015-02-16 mod=2015-03-12-06.37.48 A540769 ---
$#@ $*( show all plan_table in a dbSystem
including number of columns / number of rows
plus facultativ tables
$*)
call sqlConnect dbol
$<>
$<=¢
select strip(value(p.creator, v.creator, d.creator, u.creator)) cr
, p.name pTb, p.colcount pCols, v.name vTb, d.name dTb
, u.name uTb
from (select * from sysibm.sysTables q
where q.type = 'T' and q.name = 'PLAN_TABLE') p
left outer join (select * from sysibm.sysTables q
where q.type = 'T' and q.name = 'DSN_VIRTUAL_INDEXES') v
on p.creator = v.creator
left outer join (select * from sysibm.sysTables q
where q.type = 'T' and q.name='DSN_STATEMENT_CACHE_TABLE') d
on p.creator = d.creator
left outer join (select * from sysibm.sysTables q
where q.type = 'T' and q.name='DSN_USERQUERY_TABLE') u
on p.creator = u.creator
order by 1
$! call sqlSel
$|
st = ''
$forWith i $@=¢
$-¢st$! select '$CR', $PCOLS pCols, count(*) planCnt
, max(date(explain_time)) planMax
$@¢ if $VTB == m.sqlNull then $@=¢
, cast( null as int) virtInd
$! else $@=¢
, ( select count(*) from $CR.$VTB ) virtInd
$!
if $DTB == m.sqlNull then $@=¢
, cast( null as int) dynCac
$! else $@=¢
, ( select count(*) from $CR.$DTB ) dynCac
$!
if $UTB == m.sqlNull then $@=¢
, cast( null as int) usQuer
$! else $@=¢
, ( select count(*) from $CR.$UTB ) usQuer
$! $!
from $CR.PLAN_TABLE
$@ st = 'union all'
$! $|
call sqlStmts
$#out 20150223 08:12:23
COL1 PLANCNT VIRTIND USQUER
PCOLS PLANMAX DYNCAC
COL1 PC PLAN PLANMAX VIR DYN USQ
A540769 66 2701 09.12.2014 0 0 0
CMNBATCH 66 2701 09.12.2014 --- --- ---
DSN8BQRY 64 0 --- --- --- 0
S100006 66 0 --- --- --- ---
S100447 66 540 22.03.2012 --- --- ---
S103931 66 0 --- --- --- ---
SYSIBM 64 0 --- --- --- ---
7 rows fetched: select 'A540769', 66 pCols, count(*) planCnt , max(date(ex...
$#out 20150223 08:04:30
COL1 PLANCNT VIRTIND USQUER
PCOLS PLANMAX DYNCAC
COL1 PC PLAN PLANMAX VIR DYN USQ
DSN8BQRY 64 0 --- --- --- 0
A540769 64 0 --- --- --- ---
S100006 64 0 --- --- --- ---
S103931 64 0 --- --- --- ---
SYSIBM 64 0 --- --- --- ---
S100447 64 540 22.03.2012 --- --- ---
CMNBATCH 64 2701 09.12.2014 --- --- ---
7 rows fetched: select 'A540769', 64 pCols, count(*) planCnt , max(date(ex...
$#out 20150223 08:03:39
COL1 PLANCNT VIRTIND USQUER
PCOLS PLANMAX DYNCAC
COL1 PC PLAN PLANMAX VIR DYN USQ
A168658 66 0 --- --- --- ---
A422686 66 0 --- --- --- ---
A540769 66 1604 22.09.2014 0 0 0
A559315 66 0 --- --- --- ---
A662172 66 0 --- --- --- ---
A754048 66 0 --- --- --- ---
A790472 66 0 --- --- --- ---
CMNBATCH 66 1604 22.09.2014 --- --- ---
DSN8BQRY 64 0 --- --- --- 0
S100447 66 213 06.02.2015 --- --- ---
SYSIBM 64 0 --- --- --- ---
11 rows fetched: select 'A168658', 66 pCols, count(*) planCnt , max(date(e...
$#out 20150223 07:33:29
COL1 PLANCNT VIRTIND USQUER
PCOLS PLANMAX DYNCAC
COL1 PC PLAN PLANMAX VIR DYN USQ
A540769 66 0 --- 0 0 0
A754048 64 0 --- 0 0 ---
DSN8BQRY 64 0 --- --- --- 0
A662172 64 0 --- --- --- ---
SYSIBM 64 0 --- --- --- ---
A422686 64 4 20.07.2012 --- --- ---
A790472 64 33 02.12.2014 0 0 ---
A559315 64 51 02.09.2014 0 0 0
A168658 64 113 20.03.2014 0 0 0
S100447 64 213 06.02.2015 0 0 ---
CMNBATCH 64 1604 22.09.2014 --- --- ---
11 rows fetched: select 'A168658', 64 pCols, count(*) planCnt , max(date(e...
$#out 20150223 07:27:06
COL1 PLANCNT VIRTIND USQUER
PCOLS PLANMAX DYNCAC
COL1 PC PLAN PLANMAX VIR DYN USQ
A540768 66 0 --- 0 0 0
A754048 64 0 --- 0 0 ---
DSN8BQRY 64 0 --- --- --- 0
A540769B 66 0 --- --- --- ---
A662172 64 0 --- --- --- ---
A422686 64 4 20.07.2012 --- --- ---
A790472 64 33 02.12.2014 0 0 ---
A559315 64 51 02.09.2014 0 0 0
A168658 64 113 20.03.2014 0 0 0
S100447 64 213 06.02.2015 0 0 ---
A540769 66 1604 22.09.2014 0 0 0
CMNBATCH 64 1604 22.09.2014 --- --- ---
$#out 20150223 07:26:53
SYSIBM 64 0 --- --- --- ---
13 rows fetched: select 'A168658', 64 pCols, count(*) planCnt , max(date(e...
*** run error ***
SQLCODE = -924: DB2 CONNECTION INTERNAL ERROR, 00000002,
0000000C, 00F30006
sql = connect DPXG
$#out 20150216 15:46:30
}¢--- A540769.WK.SQL(PLANDACO) cre=2015-02-12 mod=2015-02-23-08.58.23 A540769 ---
$#@
call sqlConnect DBOL
$*( generate sql to compare the data two set of explain tables
for LOBs only length is compared
$*)
$=qFr = -9e99
$=qTo = +9e99
$<>
$>. fEdit('~tmp.sql(planDaCo)')
$<=¢
with t (tb, crL, crR) as
(
select l.name, l.creator, r.creator
from sysibm.sysTables l
join sysibm.sysTables r
on l.name = r.name
where l.creator = 'CMNBATCH'
and r.creator = 'A540769'
and r.dbName = 'DB2PLAN'
and r.type = 'T'
)
, c as
(
select c.name col, colType ct, tb, crL, crR, c.*
from t
join sysibm.sysColumns c
on c.tbCreator = crL and c.tbName = t.tb
)
select * from c order by tb, colNo
$! call sqlSel
$|
tb = ''
$forWith i $@¢
if tb <> $TB & tb \== '' then
$@tbEnd
if tb <> $TB then $@¢
tb = $TB
$@tbBegin
$!
if $COLTYPE = 'ROWID' then
iterate
else if pos('LOB', $COLTYPE) > 0 then
t1 = 'l'
else if $NULLS = 'Y' then
t1 = 'n'
else
t1 = '='
call mAdd col, t1 $COL
if t1 \== '=' then $@=¢
|| case when l.$COL is null
and r.$COL is null then ' '
when l.$COL is null then 'r'
when r.$COL is null then 'l'
$@ if t1 \== 'l' then $@=¢
when l.$COL
<> r.$COL then '|'
$!
$@ if t1 == 'l' then $@=¢
when length(l.$COL)
<> length(r.$COL) then '|'
$!
else ' '
end
$!
$!
$@tbEnd
$proc $@=/tbBegin/
$@ m.col.0 = 0
$= crL = $CRL
$= crR = $CRR
$= tb = $TB
with l as
(
select * from $crL.$tb
$@ if $COL = 'QUERYNO' then $@=¢
where queryNo between $qFr and $qTo
$!
)
, r as
(
select * from $crR.$tb
$@ if $COL = 'QUERYNO' then $@=¢
where queryNo between $qFr and $qTo
$!
)
, j as
(
select case when l.$COL is null
and r.$COL is null then 'null'
when l.$COL is null then 'righ'
when r.$COL is null then 'left'
else 'both' end lr
, ''
$/tbBegin/
$proc $@=/tbEnd/
cmp
$do cx=1 to m.col.0 $@=¢
$@ parse var m.col.cx n1 c1
$=col =- c1
, value(l.$col
,r.$col
) $col
$!
from l
full outer join r
$= op = on
$do cx=1 to m.col.0 $@¢
parse var m.col.cx t1 c1
$=col =- c1
if t1 == '=' then $@=¢
$op l.$col
= r.$col
$=op=and
$!
$!
)
, lu as
(
select count(*) cnt
$do cx=1 to m.col.0 $@¢
parse var m.col.cx n1 c1
if n1 == '=' then
$$- ' ,' c1
$!
from l
group by 0
$do cx=1 to m.col.0 $@¢
parse var m.col.cx n1 c1
if n1 == '=' then
$$- ' ,' c1
$!
)
, ru as
(
select count(*) cnt
$do cx=1 to m.col.0 $@¢
parse var m.col.cx n1 c1
if n1 == '=' then
$$- ' ,' c1
$!
from r
group by 0
$do cx=1 to m.col.0 $@¢
parse var m.col.cx n1 c1
if n1 == '=' then
$$- ' ,' c1
$!
)
--lect 'left', '$crL.$tb'
-- , count(*), cast(null as int)
-- from l
--ion all select 'left', '$crR.$tb'
-- , count(*), cast(null as int)
-- from r
select 'left', '$crL.$tb'
, sum(cnt*cnt), sum(cnt), count(*)
from lu
union all select 'right', '$crR.$tb'
, sum(cnt*cnt), sum(cnt), count(*)
from ru
union all select lr, cmp, count(*), cast(null as int), cast(null as int)
from j
group by lr, cmp
;
-- select *
-- from j
-- where not (lr = 'both' and cmp = '')
-- order by 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 ;
$/tbEnd/
$#out 20150223 08:11:44
$#out 20150223 08:09:14
$#out 20150223 07:46:57
$#out 20150223 07:37:16
$#out 20150223 07:37:05
*** run error ***
SQLCODE = -924: DB2 CONNECTION INTERNAL ERROR, 00000002,
0000000C, 00F30006
sql = connect DE0G
$#out 20150216 15:23:02
}¢--- A540769.WK.SQL(PLANDAQU) cre=2015-03-12 mod=2015-02-16-16.31.59 A540769 ---
with q as
(
select min(queryNo) queryFr, max(queryNo)queryTo, count(*) cnt
from cmnBatch.plan_Table
group by floor(log10(max(0.1, queryNo)) * 9)
)
select queryFr, queryTo, cnt, sum(cnt) over(order by queryFr
RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
from q
order by queryFr
;X;
with q0 as
(
select queryNo
from CMNBATCH.plan_Table
where queryNo >= 47
order by queryNo
fetch first 100000 rows only
)
, q as
(
select min(queryNo) qFr, max(queryNo) qTo
from q0
)
select * from q
;x;
}¢--- A540769.WK.SQL(PLANDAQ2) cre=2015-02-12 mod=2015-02-12-17.50.15 A540769 ---
with g (quFr, quTo, cnt, quNx, coNx, l) as
(
select min(queryNo), min(queryNo), 0, min(queryNo), -9, 0
from cmnBatch.plan_table
union all select quFr, quTo, cnt, quNx
, ( select count(*) from cmnBatch.plan_table
where queryNo = quNx )
, l+1
from g where coNx=-9 and l < 999e3
union all select quFr, quNx, cnt, -6, -6, l+1
from g where coNx = 0 and l < 999e3
union all select quFr, quNx, cnt+coNx, -8, -8, l+1
from g where coNx > 0 and cnt+coNx < 1e3 and l < 999e3
union all select quFr, quTo, cnt, -7, -7, l+1
from g where coNx > 0 and cnt+coNx >= 1e3 and l < 999e3
union all select quNx, quNx, coNx, -8, -8, l+1
from g where coNx > 0 and cnt+coNx >= 1e3 and l < 999e3
union all select quFr, quTo, cnt
, ( select min(queryNo) from cmnBatch.plan_table
where queryNo > quTo )
, -9
, l+1
from g where coNx=-8 and l < 999e3
)
select *
from g
where coNx in ( -7, -6)
}¢--- A540769.WK.SQL(PLANFIX) cre=2015-02-16 mod=2015-02-23-09.38.15 A540769 ---
$#@
$=fun = l $*( l = alter log yes
0 = drop TS with nTables = 0
e = drop TS in EBCDIC
$*)
$=dbSys = DP4G
$=db = DB2PLAN
call sqlConnect $dbSys
if $fun == 'l' then $@¢
$<=¢
select 'alter tableSpace $db.' || name || ' LOG YES;'
from sysibm.sysTablespace
where dbName = '$db' and type = 'O' and log = 'N'
$! call sqlStmts
$! else if $fun == 0 then $@¢
$<=¢
select 'drop tableSpace $db.' || name || '; commit;'
from sysibm.sysTablespace
where dbName = '$db' and nTables = 0
$! call sqlStmts
$! else if $fun == 'e' then $@¢
$<=¢
-- drop all plan_tables in a db2 Subsystem with ebcdic encoding
with m as -- select model table set
(
select t.creator mCr, t.name mTb
, t.encoding_scheme mEnc
, t.recLength mRecL, t.colCount mCols, c.name mCol
from sysibm.sysTables t
left join sysibm.sysColumns c
on t.creator = c.tbCreator and t.name = c.tbName
and t.colCount = c.colNo
where type = 'T'
and creator = 'A540769' and dbName = 'DB2PLAN'
)
select 'drop tablespace ' || strip(dbName)
|| '.' || strip(tsName) || ';commit;'
|| ' -- ' || min(strip(t.creator) || '.' || t.name) mTb
from sysibm.systables t
join m
on t.name = m.mTb and t.encoding_scheme <> 'U'
group by dbName, tsName
order by min(creator), min(name)
$! call sqlStmts
$!
$#out 20150223 08:44:28
C
0 rows fetched: select 'alter tableSpace DB2PLAN.' || name || ' LOG YES;' ...
$#out 20150223 08:44:20
C
0 rows fetched: select 'drop tableSpace DB2PLAN.' || name || '; commit;' f...
$#out 20150223 08:44:14
sqlCode 0: drop tableSpace DB2PLAN.AOCULS01
sqlCode 0: commit
sqlCode 0: drop tableSpace DB2PLAN.AOCULS02
sqlCode 0: commit
sqlCode 0: drop tableSpace DB2PLAN.AOCULS03
sqlCode 0: commit
sqlCode 0: drop tableSpace DB2PLAN.AOCUTS11
sqlCode 0: commit
sqlCode 0: drop tableSpace DB2PLAN.AOCUTS19
sqlCode 0: commit
sqlCode 0: drop tableSpace DB2PLAN.EPTS1012
sqlCode 0: commit
sqlCode 0: drop tableSpace DB2PLAN.EPTS1014
sqlCode 0: commit
sqlCode 0: drop tableSpace DB2PLAN.EPTS1015
sqlCode 0: commit
sqlCode 0: drop tableSpace DB2PLAN.EPTS1016
sqlCode 0: commit
$#out 20150223 08:44:01
COL1
drop tableSpace DB2PLAN.AOCULS01; commit;
drop tableSpace DB2PLAN.AOCULS02; commit;
drop tableSpace DB2PLAN.AOCULS03; commit;
drop tableSpace DB2PLAN.AOCUTS11; commit;
drop tableSpace DB2PLAN.AOCUTS19; commit;
drop tableSpace DB2PLAN.EPTS1012; commit;
drop tableSpace DB2PLAN.EPTS1014; commit;
drop tableSpace DB2PLAN.EPTS1015; commit;
drop tableSpace DB2PLAN.EPTS1016; commit;
9 rows fetched: select 'drop tableSpace DB2PLAN.' || name || '; commit;' f...
$#out 20150223 08:43:53
M
0 rows fetched: with m as ( select t.creator mCr, t.name mTb , t.encoding_...
$#out 20150223 08:43:43
M
0 rows fetched: with m as ( select t.creator mCr, t.name mTb , t.encoding_...
$#out 20150223 08:43:35
C
0 rows fetched: select 'drop tableSpace DB2PLAN.' || name || '; commit;' f...
$#out 20150223 08:43:28
C
0 rows fetched: select 'alter tableSpace DB2PLAN.' || name || ' LOG YES;' ...
$#out 20150216 16:42:41
M
0 rows fetched: with m as ( select t.creator mCr, t.name mTb , t.encoding_...
$#out 20150216 16:42:03
M
0 rows fetched: with m as ( select t.creator mCr, t.name mTb , t.encoding_...
$#out 20150216 16:41:59
M
0 rows fetched: with m as ( select t.creator mCr, t.name mTb , t.encoding_...
$#out 20150216 16:41:49
$#out 20150211 11:43:31
M
0 rows fetched: with m as ( select t.creator mCr, t.name mTb , t.encoding_...
$!
$#out 20150216 16:18:
}¢--- A540769.WK.SQL(PLANINS) cre=2011-11-06 mod=2011-11-06-18.06.26 A540769 ---
select rownumber() over(), queryno, bind_time, count(*)
from cmnbatch.plan_table_old
where bind_time >= '2011-06-11-00.00.00'
group by queryno, bind_time
with ur
}¢--- A540769.WK.SQL(PLANOPT) cre=2008-11-14 mod=2008-11-14-11.45.38 F540769 ---
SELECT LENGTH(opthint), count(*)
from cmnbatch.plan_table
group by length(opthint)
}¢--- A540769.WK.SQL(PLANPRED) cre=2014-06-05 mod=2014-06-05-10.52.08 A540769 ---
select a."Queryn B PM" "Queryn_B_PM"
, smallint(p.PREDNO) predno
, f.stage
-- , substr(fosFmte7(p.filter_factor), 1, 7) ff
-- optimizer otherwise choose bad path|||
, real(p.FILTER_FACTOR) FILTER_FACTOR
, p.type prTy
, p.boolean_term || ' ' || p.negation "BoN"
, p.text
, p.LEFT_HAND_SIDE
, p.LEFT_HAND_PNO
, p.LHS_TABNO
, p.LHS_QBNO
, p.RIGHT_HAND_SIDE
, p.RIGHT_HAND_PNO
, p.RHS_TABNO
, p.RHS_QBNO
, p.BOOLEAN_TERM
, p.SEARCHARG
, p.JOIN
, p.AFTER_JOIN
, p.ADDED_PRED
, p.REDUNDANT_PRED
, p.DIRECT_ACCESS
, p.KEYFIELD
, p.CATEGORY
, p.CATEGORY_B
, p.PRED_ENCODE
, p.PRED_CCSID
, p.PRED_MCCSID
, p.MARKER
, p.PARENT_PNO
, p.NEGATION
, p.LITERALS
, p.CLAUSE
, f.reEval
, f.ORDERNO
, a.*
from $cr.plan_view1 a
left join $cr.dsn_filter_Table f
on f.applName = a.applName
and f.collid = a.collid
and f.progName = a.progName
and f.explain_time = a.bind_time
and f.QUERYNO = a.QUERYNO
and f.QBLOCKNO = a.QBLOCKNO
and f.PLANNO = a.PLANNO
and f.mixOpSeqNo = a.mixOpSeq
and a.accessType not in ('MX', 'MI', 'MU')
left join $cr.dsn_predicat_table p
on --p.applName = a.applName ??? ist manchmal x'0000
p.progName = a.progName
and p.explain_time = a.bind_time
and p.queryNo = a.queryNo
and p.qBlockNo = a.qBlockNo
and p.predNo = f.predNo
;
-- sortierung --------------------------------------
-- order by applName, collid, progName, bind_time,
-- queryNo, qBlockNo, planno, mixOpSeq,
-- stage, predNo
;
}¢--- A540769.WK.SQL(PLANQUER) cre=2011-05-13 mod=2016-11-03-09.23.23 A540769 ---
$#@
call sqlConnect dbtf
call sqlPrepare 1,
,'select explain_time, queryNo, type, query_Stage, seqNo,',
'length(node_data), node_data',
'from A540769.dsn_query_table' ,
'order by explain_time, queryNo, type, query_Stage, seqNo'
/* "where queryno = 110" ,
"and explain_time ='2010-03-15-16.03.26.767284'" */
call sqlOpen 1
$=o1 = $''
do cn=1 while sqlFetchInto(1, ':et, :qNo, :ty, :qs, :sq, :le, :no')
$@grChg-{et qNo, ty qs ,sq}
$*( $$- cn ml 'le' le if(le=length(no), '=', '<>') $*+
'length' length(no)':'left(no,50)
$$- ' 1='substr(no, 1, 70)
$$- ' 51='substr(no, 51, 70)
$$- '101='substr(no,101, 70)
$$- '151='substr(no,151, 70)
$$- '201='substr(no,201, 70)
$$- '251='substr(no,251, 70)
$*) cx = 0
wm = 60
do while cx < length(no)
we = min(cx+wm, length(no))
w2 = lastPos('<', no, we)
if w2 > cx+10 then
w2 = w2 - 1
else
w2 = we
$$- ' ' substr(no, cx+1, w2-cx)
cx = w2
end
end
$@grChg{}
call sqlDisconnect
$@proc grChg $@¢
parse arg , et qNo, ty qs, sq
say 'grpChg et qNo' $o1 '=>' et qNo ty qs 'seq' sq
if $o1 \== '' then $@¢
if $o1 \== et qNo | $o2 \== ty qs then
$$- ' </qGr2>'
if $o1 \== et qNo then
$$- '</qGr1>'
if et == '' then
$$- "</qGr>"
$!
if et \== '' then $@¢
if sq \== 1 then
call err 'implement sq' sq
if $o1 \== et qNo then $@¢
if $o1 == '' then
$$- "<qGr>"
$$- "<qGr1 et='"et"' qno='"qNo"'>"
$=o1 =- et qNo
$=o2 =- ''
$!
if $o2 \== ty qs then $@¢
$$- " <qGr2 ty='"ty"' qs='"qs"'>"
$=o2 =- ty qs
$!
$!
$!
$#out 20110514 00:09:55
<qGr>
<qGr1 et='2011-05-13-22.13.44.390000' qno='300'>
<qGr2 ty='SELECT' qs=' AFTER '>
<QUERY><SUBQUERY QBNO='1' PRUNED='N'>(<SEL-CLAUSE>SELECT
<SEL-LIST STAR='N'><LIST-ITEM TYPE='COLM'>
}¢--- A540769.WK.SQL(PLANTB) cre=2015-02-02 mod=2016-08-10-12.58.37 A540769 ----
$#: $*(******** create plan tables and views db2v11 ********** 10. 7.16
1) Parameter eingeben
2) wsh
3) job kontrollieren und sub
braucht update und drop/create auf plan_table|
v11 plan_table 66 Kolonnen bis expansion_reason
v10 plan_table 64 Kolonnen und Unicode
v9 plan_table 59 Kolonnen
v8 plan_table 58 Kolonnen
*********************** v7 plan_table 51 Kolonnen ******************$*)
dbSys = DP4G $** db2 subsystem
cr = A540769 $** creator
fun = v $*( funktion
c= create plan tables and views
u=update tables for v10 or v11 and recreate views
must already be UniCode ||||
r=drop Tablespaces and recreate everything
d=drop Tablespaces only
v=drop/recreate views only
vfD=drop all views using functions
vfC=create all views using functions $*)
job = Y4PLANTB $** jobName
vers = 11
queryT = 0 $** 1: mit userQuery tb, 0: ohne
queryV = 0 $** 1: mit VirtualIndexes und dynStmtCache, 0: ohne
f2P = 1 $** 1: FileAid f2Plan table
ul = $'' $** creator for unload before r and reload after r
stoGr = GSMS
db = DB2PLAN
schenv = SCHENV=DB2ALL,
$@ if $fun \== 'c' then $@¢ call sqlConnect $dbSys $!
$<>
$>. fEdit()
$@% work $cr
$*( *** history *******************************************************
10. 7.16 sort info und accesstype angepasst
9. 3.16 cmnViews deaktiviert
9. 2.16 vfD und vfC funktion fuer Funktionen drop/recreate
5. 2.15 mit PBG und db2 v11 oder v10 tables
6.11.14 neue Version F2Plan_table für FileAid mit fun=u
6. 6.14 achtung bind_time --> explain_time
29. 3.12 neu fun=d: drop Only, r= drop and recreate
21. 3.12 drop only necessary TS and Views ==> JobCondCode <=4
21. 3.12 create v10 views or migrate to v10
3. 2.12 allow v10 views (but do not change v9 to v10 yet|)
****************************************************************** $*)
$proc $@/work/
parse arg , cr
$= cr =- cr
$= cmnViews = 0 $** $cr = 'CMNBATCH' & sysvar(sysnode) == 'RZ2'
$= ts=- strip(left($cr, 7))
$= defer =- if($fun == 'u', 'YES', 'NO')
c7 = substr($ts, 7, 1)
if dataType(c7, 'n') then $@¢
$= tl =- left($ts, 6)substr('ABCDEFGHIJ', 1 + c7, 1)
$= tm =- left($ts, 6)substr('KLMNOPQRST', 1 + c7, 1)
$! else if c7 = ' ' then $@¢
$= tl = ${ts}L
$= tm = ${ts}M
$! else $@¢
r7 = substr(m.ut_alfUC, pos(c7, ut_alfUC))
$= tl =- left($ts, 6)substr(r7, 2, 1)
$= tm =- left($ts, 6)substr(r7, 3, 1)
$!
$= doReo = 0
if $fun \== 'c' then $@¢
if $fun \== 'v' then $@¢
$@getDdlInfo
$@getCatInfo
if $fun == 'u' then $@¢
px = m.itb.plan_table
if symbol('m.itb.px.ts') == 'VAR' ,
& m.itb.px.ts \== ${ts}'A' then
$=ts = $tm
$!
$!
$!
$@jobHead
if $fun == 'r' & $ul <> '' then
$@% load 0
$@ddlStep
if $fun == 'vfD' then
$@viewFunDrop
else if $fun == 'vfC' then
$@viewFunCre
else $@¢
if $fun == 'd' | $fun == 'r' then
$@tsDrop
if $fun == 'u' | $fun = 'v' then
$@dropViews
if $fun == 'c' | $fun == 'r' then
$@creDdl
if $fun == 'u' then
$@updDdl
if $fun \== 'd' then $@¢
$@ddlPlus
$@creViews
$!
if $fun == 'r' & $ul <> '' then
$@% load 1
if $doReo then
$@tsReo
$!
$/work/
$proc $@/load/
parse arg , lFu
say 'load' lFu
if \ lFu then $@=¢
$= crF = $cr
$= crT = $ul
$= stp = UNLO
$! else $@=¢
$= crF = $ul
$= crT = $cr
$= stp = LOAD
// IF RC <= 4 THEN
$!
$@=¢
//$stp EXEC PGM=DSNUTILB,PARM='$dbSys,$job.UNLO'
//SYSMAP DD SYSOUT=*
//UTPRINT DD SYSOUT=*
//SYSERR DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSTEMPL DD DSN=$dbSys.DBAA.LISTDEF(TEMPL),DISP=SHR
//SYSIN DD *
$do tx=1 to m.iTb.0 $@=¢
$@ if m.itb.tx.tbTy <> 'T' then iterate
$@ if \ ( abbrev(m.itb.tx.tb, 'PLAN_') $*+
| abbrev(m.itb.tx.tb, 'DSN_') $*+
| abbrev(m.itb.tx.tb, 'F2PLAN_') ) then $@¢
say 'not un/loading' m.itb.tx.tb
iterate
$!
$@ if \ $queryT & wordPos(m.itb.tx.tb, m.tbsT) > 0 then $@¢
say 'not queryT not un/loading' m.itb.tx.tb
iterate
$!
$@ if \ $queryV & wordPos(m.itb.tx.tb, m.tbsV) > 0 then $@¢
say 'not queryV not un/loading' m.itb.tx.tb
iterate
$!
$@ if symbol('m.cols.tx.0') \== 'VAR' then $@¢
call sql2St 'select name col from sysibm.sysColumns' ,
"where tbCreator = '"$cr"' and tbName = '"m.iTb.tx.tb"'",
"and colType <> 'ROWID'",
"order by colNo", 'COLS.'tx
$!
EXEC SQL
DECLARE CUR$tx CURSOR FOR
SELECT
$do cx = 1 to m.cols.tx.0 $@¢
$$- ' ' copies(',', cx > 1) m.cols.tx.cx.col '--' cx
$!
FROM $crF.$-¢m.iTb.tx.tb$!
ENDEXEC
LOAD DATA INCURSOR CUR$tx LOG NO RESUME NO REPLACE
COPYDDN TCOPYS STATISTICS INDEX ALL KEYCARD
SORTDEVT DISK
WORKDDN(TSYUTS,TSOUTS)
IDENTITYOVERRIDE
INTO TABLE $crT.$-¢m.iTb.tx.tb$!
-- IGNOREFIELDS YES
$!
LISTDEF CLST INCLUDE TABLESPACE $db.* PARTLEVEL LOB
COPY LIST CLST COPYDDN TCOPYS
FULL YES SHRLEVEL CHANGE PARALLEL SCOPE PENDING
$!
if lFu then $@=¢
// ENDIF
// ENDIF
$! else $@=¢
// IF RC <= 4 THEN
$!
$/load/
$proc $@/jobHead/
$@=¢
//$job JOB (CP00,KE50),
// MSGCLASS=T,CLASS=M1,$schenv
// NOTIFY=&SYSUID,TIME=1440
//*
//* dbSys = $dbSys
//* tableSpaces = $db.$ts* und $tl* für LOBs
//* creator = $cr
//* for version = v$vers
//*
$!
if $fun == 'c' then $@=¢
//* create plan tables only
$! else if $fun == 'r' then $@=¢
//* drop recreate plan tables and views
$@¢ if $ul = '' then $@=¢
//* all data lost ||||||||||||||||||||||||||||||||||||
$! else $@=¢
//* unload before to $ul
//* all data lost in $ul.*
//* reload after from $ul
$! $!
$! else if $fun == 'd' then $@=¢
//* drop tablespaces, tables and views
//* all data lost ||||||||||||||||||||||||||||||||||||
$! else if $fun == 'u' then $@=¢
//* update plantables for v$vers and recreate views
$! else if $fun == 'v' then $@=¢
//* drop recreate plan views only
$! else if $fun == 'vfD' then $@=¢
//* drop function dependent views
$! else if $fun == 'vfC' then $@=¢
//* create function dependent views
$! else $@¢
call err 'bad fun='$fun
$! if $cmnViews then $@=¢
//* with changeman views
$!
$/jobHead/
$proc $@=/ddlStep/
//*
//* execute ddl: drop/alter/create
//DDL EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99
//SYSTSIN DD *
DSN SYSTEM($dbSys)
RUN PROGRAM(DSNTEP2) PARMS('ALIGN(LHS)') PLAN(DSNTEP2)
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSTERM DD DUMMY
//SYSIN DD *
--#SET MAXERRORS 0
set current sqlid = 'S100447';
$/ddlStep/
$proc $@/tsDrop/
done = ''
$do tt=0 to 1 $@¢
$do ix=1 to m.iTb.0 $@¢
dbts = strip(m.iTb.ix.db)'.'strip(m.iTb.ix.ts)
if (m.iTb.ix.tbTy \== 'T') == tt & done.dbTs <> 1 then $@¢
$$- 'drop tablespace' dbTs '; commit;'
done.dbTs = 1
$!
$!
$!
$<>
$<=¢
select dbName, name from sysibm.sysTableSpace
where dbName = '$db' and nTables = 0
and (name like '${ts}%' or name like '${tl}%'
or name like '${tm}%')
order by translate(type, 'ZZ', 'OP'), name
$! call sqlSel
$| $forWith d $@=¢
drop tablespace $DBNAME.$NAME; commit;
$!
$/tsDrop/
$proc $@/tsReo/
$@=¢
// IF DDL.RC LE 4 THEN
//REO EXEC PGM=DSNUTILB,TIME=1440,
// PARM=($dbSys,'$job.REORG'),
// REGION=0M
//DSSPRINT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//UTPRINT DD SYSOUT=*
//SYSTEMPL DD DISP=SHR,DSN=$dbSys.DBAA.LISTDEF(TEMPL)
//SYSIN DD *
$!
done.0 = 0
done.1 = 0
$do tt=0 to 1 $@¢
$do ix=1 to m.iTb.0 $@¢
dbts = strip(m.iTb.ix.db)'.'strip(m.iTb.ix.ts)
if (m.iTb.ix.tbTy \== 'T') == tt & done.dbTs <> 1 then $@¢
if \ done.tt then $@¢
done.tt = 1
$$- 'LISTDEF' if(tt==0, 'TS', 'LOB')'LST'
$!
$$- ' INCLUDE TABLESPACE' dbTs 'PARTLEVEL'
done.dbTs = 1
$!
$!
$!
if done.0 then $@=¢
REORG TABLESPACE LIST TSLST
LOG NO
SORTDATA
COPYDDN(TCOPYD)
SHRLEVEL CHANGE
MAPPINGTABLE S100447.MAPTAB03
MAXRO 30
DRAIN ALL
DELAY 150
TIMEOUT TERM
UNLDDN TSRECO
UNLOAD CONTINUE
PUNCHDDN TPUNCHO
DISCARDDN TDISCA
SORTKEYS
SORTDEVT DISK
STATISTICS
INDEX ALL KEYCARD
REPORT NO UPDATE ALL
$!
if done.1 then $@=¢
REORG TABLESPACE LIST LOBLST
SHRLEVEL REFERENCE
COPYDDN(TCOPYD)
UNLOAD CONTINUE
$!
$$ // ENDIF
$/tsReo/
$proc $@/creDdl/
$@ddl
$/creDdl/
$proc $@/updDdl/
$@ddl
$|
$do while $ddlTy \== 'e' $@/ddlEachLine/
if $ddlTy == 's' then $@¢
cc = substr(strip($ddlC1), 3)
if word(cc, 1) \== 'CREATE' then
cc = substr(strip($ddlC2), 3) cc
if word(cc, 1) \== 'CREATE' | (pos('TABLESPACE', cc) = 0 ,
& pos('TABLE SPACE', cc) = 0) then
call err 'bad comment before create ts' $ddlTs':' cc
tn = word(cc, words(cc))
if symbol('m.iTb.tn') == 'VAR' then $@¢
$@ddlRead
$! else $@¢
$$- '-- tablespace for' tn
$do forever $@¢
$$ $ddlLi
if pos(';', $ddlLi) > 0 then
leave
if $-^ddlRead \== 'l' then
call err 'eof in create tablespace for' tn
$!
$!
$! else if $ddlTy == 't' then $@¢
if \ ${?ITB>$ddlTb} then
$@creDdlTb
else if $ddlW2 == 'TABLE' then
$@updDdlTb
else
$@ddlRead
$! else $@¢
$@ddlRead
$!
$/ddlEachLine/
$/updDdl/
$proc $@/creDdlTb/
$do forever $@¢
$$ $ddlLi
if pos($-^ddlRead, 'ste') > 0 then
return
$!
$/creDdlTb/
$proc $@/updDdlTb/
tx = ${ITB>$ddlTb}
cols = m.itb.tx.colCount
col = m.itb.tx.col
first = 1
if $-^ddlRead \== 'l' | word($ddlLi, 1) \== '(' then
call err 'bad first line after create tb' $ddlLi
cc = 1
doAdd = 0
$do while $-^ddlRead == 'l' $@¢
w1 = word($ddlLi, 1)
if abbrev(w1, ')') then $@¢
if doAdd == 2 then $@¢
$$ ;
$= doReo = 1
$! else if cc < cols then
call err 'table' $cr'.'m.iTb.tx.tb ,
'has only' cc 'columns not >=' cols
return
$! else if abbrev(w1, ',') | abbrev(w1, '"') then $@¢
cc = cc+ 1
if cc = cols then $@¢
nm = word(substr(strip($ddlLi), 1 + abbrev(w1,',')), 1)
if nm \== col & nm \== '"'col'"' then
call err 'col' cols 'should be' col 'not' nm ,
'in table' $cr'.'m.iTb.tx.tb
doAdd = 1
$! else if doAdd > 0 then $@¢
if doAdd == 1 then $@¢
doAdd = 2
$$ alter table $cr.$-¢m.iTb.tx.tb$!
$!
$$- ' add' strip(substr(strip($ddlLi), 2))
$!
$! else if doAdd == 2 then $@¢
$$ $ddlLi
$!
$!
$/updDdlTb/
$proc $@/getDdlInfo/
m.tbsT = 'DSN_PREDICATE_SELECTIVITY DSN_USERQUERY_TABLE' ,
'DSN_USERQUERY_TABLE_AUX'
m.tbsV = 'DSN_STATEMENT_CACHE_TABLE DSN_STATEMENT_CACHE_AUX' ,
'DSN_VIRTUAL_INDEXES DSN_VIRTUAL_KEYTARGETS'
tbs = m.tbsT m.tbsV 'COST_TABLE',
'EEEAUTH EEEDBRM EEEHINT EEEPATH EEEPLAN EEEWORK',
'OBJECT_DATA OBJECT_DIRECTORY F2PLAN_TABLE',
'PREDICATE_TABLE STRUCTURE_TABLE',
'DSN_STAT_FEEDBACK'
tbs = "'"repAll(space(tbs, 1), ' ', "', '")"'"
$@ddl
$|
$do while $-^ddlRead \== 'e' $@¢
if $ddlTy == 't' then
tbs = tbs", '"$ddlTb"'"
$!
m.itb.tbLst = tbs
$/getDdlInfo/
$proc $@/getCatInfo/
call sql2St 'select t.name tb, t.dbName db, tsName ts,t.Type tbTy' ,
', colCount, c.name col, s.nTables' ,
'from sysibm.sysTables t join sysibm.sysColumns c' ,
'on t.creator = c.tbCreator and t.name = c.tbName' ,
'and t.colCount = c.colNo',
'join sysibm.sysTableSpace s' ,
'on t.dbName = s.dbName and t.tsName = s.name',
"where t.creator = '"$cr"' and t.name in ("m.itb.tbLst")" ,
, iTb
do qx=1 to m.iTb.0
$*( say qx m.iTb.qx.tb m.iTb.qx.db m.iTb.qx.ts m.iTb.qx.tbTy ,
m.iTb.qx.colCount m.iTb.qx.col
$*) t1 = strip(m.iTb.qx.tb)
m.itb.t1 = qx
end
$/getCatInfo/
$proc $@/ddlRead/
if \ $-{>ddlLi} then $@¢
$=ddlTy = e
return $ddlTy
$!
parse value $ddlLi with w1 w2 w3 .
$= ddlW2 =- w2
if abbrev(w1, '--') then $@¢
$=ddlC2 = $ddlC1
$=ddlC1 = $ddlLi
$=ddlTy = l
$! else if w1 \== 'CREATE' then $@¢
$=ddlTy = l
$! else if w2 == 'TABLESPACE' then $@¢
$=ddlTy = s
$=ddlTs = w3
$! else if w2 == 'LOB' & w3 == 'TABLESPACE' then $@¢
$=ddlTy = s
$=ddlTs = word($ddlLi, 4)
$! else if w2 == 'TABLE' ,
| (w2 == 'AUX' & w3 == 'TABLE') then $@¢
if w2 == 'TABLE' then
parse value subWord($ddlLi, 3) with cr '.' tb .
else
parse value subWord($ddlLi, 4) with cr '.' tb .
if cr <> $cr then
call err 'creator should be' $cr 'but' $ddlLi
$=ddlTb =- strip(tb)
$=ddlTy = t
$! else $@¢
$=ddlTy = l
$!
return $ddlTy
$/ddlRead/
$@proc $@/ixKeys/
parse arg ., vKy vDr ix
if $fun == 'c' | $fun == 'r' then
$={$-¢vKy$!}=- ''
else
$={$-¢vKy$!}=- catIxKeys($cr, ix)
if ${$-¢vKy$!} == '' then
$={$-¢vDr$!}=- ''
else
$={$-¢vDr$!}=- 'drop index' $cr'.'ix';commit;'
$/ixKeys/
$proc $@=/tsAtt/
USING STOGROUP $stoGr
ERASE NO
GBPCACHE CHANGED
LOCKSIZE PAGE LOCKMAX SYSTEM
BUFFERPOOL BP8K0
SEGSIZE 16
CLOSE NO
maxpartitions 16
dsSize 4G
CCSID UNICODE
$/tsAtt/
$proc $@=/lobAtt/
BUFFERPOOL BP32K
LOG YES
GBPCACHE CHANGED
USING STOGROUP GSMS PRIQTY -1 SECQTY -1 ERASE NO
CLOSE YES
$/lobAtt/
$proc $@=/tbAtt/
AUDIT NONE
VOLATILE
DATA CAPTURE CHANGES
CCSID UNICODE
APPEND NO
$/tbAtt/
$proc $@=/ixAtt/
USING STOGROUP GSMS PRIQTY -1 SECQTY -1 ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
$@ if pos('l', arg(2)) < 1 then $@=¢
NOT PADDED
DEFER $defer
$!
COMPRESS NO
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G
$/ixAtt/
$@proc $@/dropViews/
$<=¢ select (select strip(d.bcreator) || '.' || strip(d.bname)
from sysibm.sysViewDep d
where bType = 'V'
and d.dcreator = v.creator and dName = v.name
and d.bcreator = v.creator and bName like 'PLAN%'
fetch first row only
) dep, v.creator cr, v.name na
from sysibm.sysTables v
where type = 'V' and name like 'PLAN%'
and creator = '$cr'
$!
call sqlSel
$| $@forWith v $@¢
if $DEP == m.sqlNull then
$$ drop view $CR.$NA;
else
$$ $' --' view $CR.$NA depends on $DEP
$!
$/dropViews/
$proc $@/ddl/
$=ddlTy = $''
$= ddlC1 = $''
$= ddlC2 = $''
$@expDdl
if $queryT then
$@uQuDdl
$/ddl/
$proc $@=/expDdl/
-----------------------------------------------------------------------
-- NAME = DSNTESC aus SDSNSAMP(DSNTESC)
--
-- DESCRIPTIVE NAME = SAMPLE EXPLAIN TABLES
--
-- LICENSED MATERIALS - PROPERTY OF IBM
-- 5615-DB2
-- (C) COPYRIGHT 1982, 2013 IBM CORP. ALL RIGHTS RESERVED.
--
-- STATUS = VERSION 11
--
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE PLAN_TABLE
CREATE TABLESPACE ${ts}A
IN $db
$@tsAtt
;
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_FUNCTION_TABLE
CREATE TABLESPACE ${ts}B
IN $db
$@tsAtt
;
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_STATEMNT_TABLE
CREATE TABLESPACE ${ts}C
IN $db
$@tsAtt
;
$@ if $queryV then $@=¢
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE
--DSN_STATEMENT_CACHE_TABLE
CREATE TABLESPACE ${ts}D
IN $db
$@tsAtt
;
-----------------------------------------------------------------------
--CREATE THE LOB TABLE SPACE FOR THE SAMPLE DSN_STATEMENT_CACHE_TABLE
CREATE LOB TABLESPACE ${tl}D
IN $db
$@lobAtt
;
$!
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_PREDICAT_TABLE
CREATE TABLESPACE ${ts}E
IN $db
$@tsAtt
;
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_STRUCT_TABLE
CREATE TABLESPACE ${ts}F
IN $db
$@tsAtt
;
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_PGROUP_TABLE
CREATE TABLESPACE ${ts}G
IN $db
$@%¢tsAtt bp16K0 $!
;
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_PTASK_TABLE
CREATE TABLESPACE ${ts}H
IN $db
$@tsAtt
;
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_FILTER_TABLE
CREATE TABLESPACE ${ts}K
IN $db
$@tsAtt
;
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_DETCOST_TABLE
CREATE TABLESPACE ${ts}L
IN $db
$@tsAtt
;
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_SORT_TABLE
CREATE TABLESPACE ${ts}M
IN $db
$@tsAtt
;
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_SORTKEY_TABLE
CREATE TABLESPACE ${ts}N
IN $db
$@tsAtt
;
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_PGRANGE_TABLE
CREATE TABLESPACE ${ts}O
IN $db
$@tsAtt
;
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_VIEWREF_TABLE
CREATE TABLESPACE ${ts}P
IN $db
$@tsAtt
;
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_QUERY_TABLE
CREATE TABLESPACE ${ts}I
IN $db
$@tsAtt
;
-----------------------------------------------------------------------
--CREATE THE LOB TABLE SPACE FOR THE SAMPLE DSN_QUERY_TABLE
CREATE LOB TABLESPACE ${tl}I
IN $db
$@lobAtt
;
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_QUERYINFO_TABLE
CREATE TABLESPACE ${ts}Q
IN $db
$@tsAtt
;
-----------------------------------------------------------------------
--CREATE THE LOB TABLE SPACE FOR THE SAMPLE DSN_QUERYINFO_TABLE
CREATE LOB TABLESPACE ${tl}Q
IN $db
$@lobAtt
;
-----------------------------------------------------------------------
--CREATE THE LOB TABLE SPACE FOR THE SAMPLE DSN_QUERYINFO_TABLE
CREATE LOB TABLESPACE ${tl}R
IN $db
$@lobAtt
;
$@ if $queryV then $@=¢
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_VIRTUAL_INDEXES
CREATE TABLESPACE ${ts}J
IN $db
$@tsAtt
;
$!
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_COLDIST_TABLE
CREATE TABLESPACE ${ts}S
IN $db
$@tsAtt
;
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_KEYTGTDIST_TABLE
CREATE TABLESPACE ${ts}T
IN $db
$@tsAtt
;
$@ if $vers >= 11 then $@=¢
$@ if $queryT then $@=¢
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE
--DSN_PREDICATE_SELECTIVITY
CREATE TABLESPACE ${ts}U
IN $db
$@tsAtt
;
$!
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_STAT_FEEDBACK
CREATE TABLESPACE ${ts}W
IN $db
$@tsAtt
;
$@ if $queryV then $@=¢
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_VIRTUAL_KEYTARGETS
CREATE TABLESPACE ${ts}X
IN $db
$@tsAtt
;
$!
$!
-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE PLAN_TABLE AND ITS INDEX
CREATE TABLE $cr.PLAN_TABLE
( "QUERYNO" INTEGER NOT NULL,
"QBLOCKNO" SMALLINT NOT NULL,
"APPLNAME" VARCHAR(24) NOT NULL,
"PROGNAME" VARCHAR(128) NOT NULL,
"PLANNO" SMALLINT NOT NULL,
"METHOD" SMALLINT NOT NULL,
"CREATOR" VARCHAR(128) NOT NULL,
"TNAME" VARCHAR(128) NOT NULL,
"TABNO" SMALLINT NOT NULL,
"ACCESSTYPE" CHAR(2) NOT NULL,
"MATCHCOLS" SMALLINT NOT NULL,
"ACCESSCREATOR" VARCHAR(128) NOT NULL,
"ACCESSNAME" VARCHAR(128) NOT NULL,
"INDEXONLY" CHAR(1) NOT NULL,
"SORTN_UNIQ" CHAR(1) NOT NULL,
"SORTN_JOIN" CHAR(1) NOT NULL,
"SORTN_ORDERBY" CHAR(1) NOT NULL,
"SORTN_GROUPBY" CHAR(1) NOT NULL,
"SORTC_UNIQ" CHAR(1) NOT NULL,
"SORTC_JOIN" CHAR(1) NOT NULL,
"SORTC_ORDERBY" CHAR(1) NOT NULL,
"SORTC_GROUPBY" CHAR(1) NOT NULL,
"TSLOCKMODE" CHAR(3) NOT NULL,
"TIMESTAMP" CHAR(16) NOT NULL,
"REMARKS" VARCHAR(762) NOT NULL,
"PREFETCH" CHAR(1) NOT NULL WITH DEFAULT,
"COLUMN_FN_EVAL" CHAR(1) NOT NULL WITH DEFAULT,
"MIXOPSEQ" SMALLINT NOT NULL WITH DEFAULT,
"VERSION" VARCHAR(122) NOT NULL WITH DEFAULT,
"COLLID" VARCHAR(128) NOT NULL WITH DEFAULT,
"ACCESS_DEGREE" SMALLINT,
"ACCESS_PGROUP_ID" SMALLINT,
"JOIN_DEGREE" SMALLINT,
"JOIN_PGROUP_ID" SMALLINT,
"SORTC_PGROUP_ID" SMALLINT,
"SORTN_PGROUP_ID" SMALLINT,
"PARALLELISM_MODE" CHAR(1),
"MERGE_JOIN_COLS" SMALLINT,
"CORRELATION_NAME" VARCHAR(128),
"PAGE_RANGE" CHAR(1) NOT NULL WITH DEFAULT,
"JOIN_TYPE" CHAR(1) NOT NULL WITH DEFAULT,
"GROUP_MEMBER" VARCHAR(24) NOT NULL WITH DEFAULT,
"IBM_SERVICE_DATA" VARCHAR(254) FOR BIT DATA
NOT NULL WITH DEFAULT,
"WHEN_OPTIMIZE" CHAR(1) NOT NULL WITH DEFAULT,
"QBLOCK_TYPE" CHAR(6) NOT NULL WITH DEFAULT,
"BIND_TIME" TIMESTAMP NOT NULL WITH DEFAULT,
"OPTHINT" VARCHAR(128) NOT NULL WITH DEFAULT,
"HINT_USED" VARCHAR(128) NOT NULL WITH DEFAULT,
"PRIMARY_ACCESSTYPE" CHAR(1) NOT NULL WITH DEFAULT,
"PARENT_QBLOCKNO" SMALLINT NOT NULL WITH DEFAULT,
"TABLE_TYPE" CHAR(1),
"TABLE_ENCODE" CHAR(1) NOT NULL WITH DEFAULT,
"TABLE_SCCSID" SMALLINT NOT NULL WITH DEFAULT,
"TABLE_MCCSID" SMALLINT NOT NULL WITH DEFAULT,
"TABLE_DCCSID" SMALLINT NOT NULL WITH DEFAULT,
"ROUTINE_ID" INTEGER NOT NULL WITH DEFAULT,
"CTEREF" SMALLINT NOT NULL WITH DEFAULT,
"STMTTOKEN" VARCHAR(240),
"PARENT_PLANNO" SMALLINT NOT NULL WITH DEFAULT,
"BIND_EXPLAIN_ONLY" CHAR(1) NOT NULL WITH DEFAULT,
"SECTNOI" INTEGER NOT NULL WITH DEFAULT,
"EXPLAIN_TIME" TIMESTAMP NOT NULL WITH DEFAULT,
"MERGC" CHAR(1) NOT NULL WITH DEFAULT,
"MERGN" CHAR(1) NOT NULL WITH DEFAULT
$@ if $vers >= 11 then $@=¢
, "SCAN_DIRECTION" CHAR(1)
, "EXPANSION_REASON" CHAR(2) NOT NULL WITH DEFAULT
$!
)
IN $db.${ts}A
$@tbAtt;
CREATE INDEX $cr.PLAN_TABLE_HINT_IX
ON $cr.PLAN_TABLE
( "QUERYNO",
"APPLNAME",
"PROGNAME",
"VERSION",
"COLLID",
"OPTHINT" )
$@ixAtt
;
-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_FUNCTION_TABLE.
CREATE TABLE $cr.DSN_FUNCTION_TABLE
( "QUERYNO" INTEGER NOT NULL WITH DEFAULT,
"QBLOCKNO" INTEGER NOT NULL WITH DEFAULT,
"APPLNAME" VARCHAR(24) NOT NULL WITH DEFAULT,
"PROGNAME" VARCHAR(128) NOT NULL WITH DEFAULT,
"COLLID" VARCHAR(128) NOT NULL WITH DEFAULT,
"GROUP_MEMBER" VARCHAR(24) NOT NULL WITH DEFAULT,
"EXPLAIN_TIME" TIMESTAMP NOT NULL WITH DEFAULT,
"SCHEMA_NAME" VARCHAR(128) NOT NULL WITH DEFAULT,
"FUNCTION_NAME" VARCHAR(128) NOT NULL WITH DEFAULT,
"SPEC_FUNC_NAME" VARCHAR(128) NOT NULL WITH DEFAULT,
"FUNCTION_TYPE" CHAR(2) NOT NULL WITH DEFAULT,
"VIEW_CREATOR" VARCHAR(128) NOT NULL WITH DEFAULT,
"VIEW_NAME" VARCHAR(128) NOT NULL WITH DEFAULT,
"PATH" VARCHAR(2048) NOT NULL WITH DEFAULT,
"FUNCTION_TEXT" VARCHAR(1500) NOT NULL WITH DEFAULT,
"FUNC_VERSION" VARCHAR(122) NOT NULL WITH DEFAULT,
"SECURE" CHAR(1) NOT NULL WITH DEFAULT,
"SECTNOI" INTEGER NOT NULL WITH DEFAULT,
"VERSION" VARCHAR(122) NOT NULL WITH DEFAULT
$@ if $vers >= 11 then $@=¢
, "EXPANSION_REASON" CHAR(2) NOT NULL WITH DEFAULT
$!
)
IN $db.${ts}B
$@tbAtt;
-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_STATEMNT_TABLE.
CREATE TABLE $cr.DSN_STATEMNT_TABLE
( "QUERYNO" INTEGER NOT NULL WITH DEFAULT,
"APPLNAME" VARCHAR(24) NOT NULL WITH DEFAULT,
"PROGNAME" VARCHAR(128) NOT NULL WITH DEFAULT,
"COLLID" VARCHAR(128) NOT NULL WITH DEFAULT,
"GROUP_MEMBER" VARCHAR(24) NOT NULL WITH DEFAULT,
"EXPLAIN_TIME" TIMESTAMP NOT NULL WITH DEFAULT,
"STMT_TYPE" CHAR(6) NOT NULL WITH DEFAULT,
"COST_CATEGORY" CHAR(1) NOT NULL WITH DEFAULT,
"PROCMS" INTEGER NOT NULL WITH DEFAULT,
"PROCSU" INTEGER NOT NULL WITH DEFAULT,
"REASON" VARCHAR(254) NOT NULL WITH DEFAULT,
"STMT_ENCODE" CHAR(1) NOT NULL WITH DEFAULT,
"TOTAL_COST" FLOAT NOT NULL WITH DEFAULT,
"SECTNOI" INTEGER NOT NULL WITH DEFAULT,
"VERSION" VARCHAR(122) NOT NULL WITH DEFAULT
$@ if $vers >= 11 then $@=¢
, "EXPANSION_REASON" CHAR(2) NOT NULL WITH DEFAULT
$!
)
IN $db.${ts}C
$@tbAtt;
CREATE INDEX $cr.DSN_STATEMNT_TABLE_idx1
ON $cr.DSN_STATEMNT_Table
( "QUERYNO"
,"EXPLAIN_TIME"
)
$@ixAtt
;
$@ if $queryV then $@=¢
-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_STATEMENT_CACHE_TABLE AND ITS INDEXES
CREATE TABLE $cr.DSN_STATEMENT_CACHE_TABLE
( "STMT_ID" INTEGER NOT NULL,
"STMT_TOKEN" VARCHAR(240) ,
"COLLID" VARCHAR(128) NOT NULL,
"PROGRAM_NAME" VARCHAR(128) NOT NULL,
"INV_DROPALT" CHAR(1) NOT NULL,
"INV_REVOKE" CHAR(1) NOT NULL,
"INV_LRU" CHAR(1) NOT NULL,
"INV_RUNSTATS" CHAR(1) NOT NULL,
"CACHED_TS" TIMESTAMP NOT NULL,
"USERS" INTEGER NOT NULL,
"COPIES" INTEGER NOT NULL,
"LINES" INTEGER NOT NULL,
"PRIMAUTH" VARCHAR(128) NOT NULL,
"CURSQLID" VARCHAR(128) NOT NULL,
"BIND_QUALIFIER" VARCHAR(128) NOT NULL,
"BIND_ISO" CHAR(2) NOT NULL,
"BIND_CDATA" CHAR(1) NOT NULL,
"BIND_DYNRL" CHAR(1) NOT NULL,
"BIND_DEGRE" CHAR(1) NOT NULL,
"BIND_SQLRL" CHAR(1) NOT NULL,
"BIND_CHOLD" CHAR(1) NOT NULL,
"STAT_TS" TIMESTAMP NOT NULL,
"STAT_EXEC" INTEGER NOT NULL,
"STAT_GPAG" INTEGER NOT NULL,
"STAT_SYNR" INTEGER NOT NULL,
"STAT_WRIT" INTEGER NOT NULL,
"STAT_EROW" INTEGER NOT NULL,
"STAT_PROW" INTEGER NOT NULL,
"STAT_SORT" INTEGER NOT NULL,
"STAT_INDX" INTEGER NOT NULL,
"STAT_RSCN" INTEGER NOT NULL,
"STAT_PGRP" INTEGER NOT NULL,
"STAT_ELAP" FLOAT NOT NULL,
"STAT_CPU" FLOAT NOT NULL,
"STAT_SUS_SYNIO" FLOAT NOT NULL,
"STAT_SUS_LOCK" FLOAT NOT NULL,
"STAT_SUS_SWIT" FLOAT NOT NULL,
"STAT_SUS_GLCK" FLOAT NOT NULL,
"STAT_SUS_OTHR" FLOAT NOT NULL,
"STAT_SUS_OTHW" FLOAT NOT NULL,
"STAT_RIDLIMT" INTEGER NOT NULL,
"STAT_RIDSTOR" INTEGER NOT NULL,
"EXPLAIN_TS" TIMESTAMP NOT NULL,
"SCHEMA" VARCHAR(128) NOT NULL,
"STMT_TEXT" CLOB(2M) NOT NULL,
"STMT_ROWID" ROWID NOT NULL GENERATED ALWAYS,
"BIND_RO_TYPE" CHAR(1) NOT NULL WITH DEFAULT,
"BIND_RA_TOT" INTEGER NOT NULL WITH DEFAULT,
"GROUP_MEMBER" VARCHAR(24) NOT NULL WITH DEFAULT,
"STAT_EXECB" BIGINT NOT NULL WITH DEFAULT,
"STAT_GPAGB" BIGINT NOT NULL WITH DEFAULT,
"STAT_SYNRB" BIGINT NOT NULL WITH DEFAULT,
"STAT_WRITB" BIGINT NOT NULL WITH DEFAULT,
"STAT_EROWB" BIGINT NOT NULL WITH DEFAULT,
"STAT_PROWB" BIGINT NOT NULL WITH DEFAULT,
"STAT_SORTB" BIGINT NOT NULL WITH DEFAULT,
"STAT_INDXB" BIGINT NOT NULL WITH DEFAULT,
"STAT_RSCNB" BIGINT NOT NULL WITH DEFAULT,
"STAT_PGRPB" BIGINT NOT NULL WITH DEFAULT,
"STAT_RIDLIMTB" BIGINT NOT NULL WITH DEFAULT,
"STAT_RIDSTORB" BIGINT NOT NULL WITH DEFAULT,
"LITERAL_REPL" CHAR(1) NOT NULL WITH DEFAULT,
"STAT_SUS_LATCH" FLOAT NOT NULL WITH DEFAULT,
"STAT_SUS_PLATCH" FLOAT NOT NULL WITH DEFAULT,
"STAT_SUS_DRAIN" FLOAT NOT NULL WITH DEFAULT,
"STAT_SUS_CLAIM" FLOAT NOT NULL WITH DEFAULT,
"STAT_SUS_LOG" FLOAT NOT NULL WITH DEFAULT
$@ if $vers >= 11 then $@=¢
, "EXPANSION_REASON" CHAR(2) NOT NULL WITH DEFAULT
$!
)
IN $db.${ts}D
$@tbAtt;
CREATE AUX TABLE $cr.DSN_STATEMENT_CACHE_AUX
IN $db.${tl}D
STORES $cr.DSN_STATEMENT_CACHE_TABLE
COLUMN STMT_TEXT
PART 1;
CREATE INDEX $cr.DSN_STATEMENT_CACHE_IDX1
ON $cr.DSN_STATEMENT_CACHE_TABLE
( "STMT_ID" ASC )
$@ixAtt
;
CREATE INDEX $cr.DSN_STATEMENT_CACHE_IDX2
ON $cr.DSN_STATEMENT_CACHE_TABLE
( "STMT_TOKEN" ASC )
CLUSTER
$@ixAtt
;
CREATE INDEX $cr.DSN_STATEMENT_CACHE_IDX3
ON $cr.DSN_STATEMENT_CACHE_TABLE
( "EXPLAIN_TS" DESC )
$@ixAtt
;
CREATE INDEX $cr.DSN_STATEMENT_CACHE_AUXINX
ON $cr.DSN_STATEMENT_CACHE_AUX
$@%¢ixAtt l $!
;
$!
-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_PREDICAT_TABLE AND ITS INDEX
CREATE TABLE $cr.DSN_PREDICAT_TABLE
( "QUERYNO" INTEGER NOT NULL
,"QBLOCKNO" SMALLINT NOT NULL
,"APPLNAME" VARCHAR(24) NOT NULL
,"PROGNAME" VARCHAR(128) NOT NULL
,"PREDNO" INTEGER NOT NULL
,"TYPE" CHAR(8) NOT NULL
,"LEFT_HAND_SIDE" VARCHAR(128) NOT NULL
,"LEFT_HAND_PNO" INTEGER NOT NULL
,"LHS_TABNO" SMALLINT NOT NULL
,"LHS_QBNO" SMALLINT NOT NULL
,"RIGHT_HAND_SIDE" VARCHAR(128) NOT NULL
,"RIGHT_HAND_PNO" INTEGER NOT NULL
,"RHS_TABNO" SMALLINT NOT NULL
,"RHS_QBNO" SMALLINT NOT NULL
,"FILTER_FACTOR" FLOAT NOT NULL
,"BOOLEAN_TERM" CHAR(1) NOT NULL
,"SEARCHARG" CHAR(1) NOT NULL
,"JOIN" CHAR(1) NOT NULL
,"AFTER_JOIN" CHAR(1) NOT NULL
,"ADDED_PRED" CHAR(1) NOT NULL
,"REDUNDANT_PRED" CHAR(1) NOT NULL
,"DIRECT_ACCESS" CHAR(1) NOT NULL
,"KEYFIELD" CHAR(1) NOT NULL
,"EXPLAIN_TIME" TIMESTAMP NOT NULL
,"CATEGORY" SMALLINT NOT NULL
,"CATEGORY_B" SMALLINT NOT NULL
,"TEXT" VARCHAR(2000) NOT NULL
,"PRED_ENCODE" CHAR(1) NOT NULL WITH DEFAULT
,"PRED_CCSID" SMALLINT NOT NULL WITH DEFAULT
,"PRED_MCCSID" SMALLINT NOT NULL WITH DEFAULT
,"MARKER" CHAR(1) NOT NULL WITH DEFAULT
,"PARENT_PNO" INTEGER NOT NULL
,"NEGATION" CHAR(1) NOT NULL
,"LITERALS" VARCHAR(128) NOT NULL
,"CLAUSE" CHAR(8) NOT NULL
,"GROUP_MEMBER" VARCHAR(24) NOT NULL
,"ORIGIN" CHAR(1) NOT NULL WITH DEFAULT
,"UNCERTAINTY" FLOAT(4) NOT NULL WITH DEFAULT
,"SECTNOI" INTEGER NOT NULL WITH DEFAULT
,"COLLID" VARCHAR(128) NOT NULL WITH DEFAULT
,"VERSION" VARCHAR(122) NOT NULL WITH DEFAULT
$@ if $vers >= 11 then $@=¢
,"EXPANSION_REASON" CHAR(2) NOT NULL WITH DEFAULT
$!
)
IN $db.${ts}E
$@tbAtt;
CREATE INDEX $cr.DSN_PREDICAT_TABLE_IDX1
ON $cr.DSN_PREDICAT_TABLE
( "QUERYNO"
,"EXPLAIN_TIME"
)
$@ixAtt
;
CREATE INDEX $cr.DSN_PREDICAT_TABLE_IDX2
ON $cr.DSN_PREDICAT_TABLE
( "QUERYNO"
, "PREDNO"
)
$@ixAtt
;
-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_STRUCT_TABLE AND ITS INDEX
CREATE TABLE $cr.DSN_STRUCT_TABLE
( "QUERYNO" INTEGER NOT NULL
,"QBLOCKNO" SMALLINT NOT NULL
,"APPLNAME" VARCHAR(24) NOT NULL
,"PROGNAME" VARCHAR(128) NOT NULL
,"PARENT" SMALLINT NOT NULL
,"TIMES" FLOAT NOT NULL
,"ROWCOUNT" INTEGER NOT NULL
,"ATOPEN" CHAR(1) NOT NULL
,"CONTEXT" CHAR(10) NOT NULL
,"ORDERNO" SMALLINT NOT NULL
,"DOATOPEN_PARENT" SMALLINT NOT NULL
,"QBLOCK_TYPE" CHAR(6) NOT NULL WITH DEFAULT
,"EXPLAIN_TIME" TIMESTAMP NOT NULL
,"QUERY_STAGE" CHAR(8) NOT NULL
,"GROUP_MEMBER" VARCHAR(24) NOT NULL
,"ORIGIN" CHAR(1) NOT NULL WITH DEFAULT
,"SECTNOI" INTEGER NOT NULL WITH DEFAULT
,"COLLID" VARCHAR(128) NOT NULL WITH DEFAULT
,"VERSION" VARCHAR(122) NOT NULL WITH DEFAULT
$@ if $vers >= 11 then $@=¢
,"EXPANSION_REASON" CHAR(2) NOT NULL WITH DEFAULT
$!
)
IN $db.${ts}F
$@tbAtt;
CREATE INDEX $cr.DSN_STRUCT_TABLE_IDX1
ON $cr.DSN_STRUCT_TABLE
( "QUERYNO"
,"EXPLAIN_TIME"
)
$@ixAtt
;
-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_PGROUP_TABLE AND ITS INDEX
CREATE TABLE $cr.DSN_PGROUP_TABLE
( "QUERYNO" INTEGER NOT NULL
,"QBLOCKNO" SMALLINT NOT NULL
,"PLANNAME" VARCHAR(24) NOT NULL
,"COLLID" VARCHAR(128) NOT NULL
,"PROGNAME" VARCHAR(128) NOT NULL
,"EXPLAIN_TIME" TIMESTAMP NOT NULL
,"VERSION" VARCHAR(122) NOT NULL
,"GROUPID" SMALLINT NOT NULL
,"FIRSTPLAN" SMALLINT NOT NULL
,"LASTPLAN" SMALLINT NOT NULL
,"CPUCOST" REAL NOT NULL
,"IOCOST" REAL NOT NULL
,"BESTTIME" REAL NOT NULL
,"DEGREE" SMALLINT NOT NULL
,"MODE" CHAR(1) NOT NULL
,"REASON" SMALLINT NOT NULL
,"LOCALCPU" SMALLINT NOT NULL
,"TOTALCPU" SMALLINT NOT NULL
,"FIRSTBASE" SMALLINT
,"LARGETS" CHAR(1)
,"PARTKIND" CHAR(1)
,"GROUPTYPE" CHAR(3)
,"ORDER" CHAR(1)
,"STYLE" CHAR(4)
,"RANGEKIND" CHAR(1)
,"NKEYCOLS" SMALLINT
,"LOWBOUND" VARCHAR(40) FOR BIT DATA
,"HIGHBOUND" VARCHAR(40) FOR BIT DATA
,"LOWKEY" VARCHAR(40) FOR BIT DATA
,"HIGHKEY" VARCHAR(40) FOR BIT DATA
,"FIRSTPAGE" CHAR(4) FOR BIT DATA
,"LASTPAGE" CHAR(4) FOR BIT DATA
,"GROUP_MEMBER" VARCHAR(24) NOT NULL
,"HOST_REASON" SMALLINT
,"PARA_TYPE" CHAR(4)
,"PART_INNER" CHAR(1)
,"GRNU_KEYRNG" CHAR(1)
,"OPEN_KEYRNG" CHAR(1)
,"APPLNAME" VARCHAR(24) NOT NULL WITH DEFAULT
,"SECTNOI" INTEGER NOT NULL WITH DEFAULT
,"STRAW_MODEL" CHAR(1) NOT NULL WITH DEFAULT
$@ if $vers >= 11 then $@=¢
,"EXPANSION_REASON" CHAR(2) NOT NULL WITH DEFAULT
$!
)
IN $db.${ts}G
$@tbAtt;
CREATE INDEX $cr.DSN_PGROUP_TABLE_IDX1
ON $cr.DSN_PGROUP_TABLE
( "QUERYNO"
,"EXPLAIN_TIME"
)
$@ixAtt
;
-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_PTASK_TABLE AND ITS INDEX
CREATE TABLE $cr.DSN_PTASK_TABLE
( "QUERYNO" INTEGER NOT NULL
,"QBLOCKNO" SMALLINT NOT NULL
,"PGDNO" SMALLINT NOT NULL
,"APPLNAME" VARCHAR(24) NOT NULL
,"PROGNAME" VARCHAR(128) NOT NULL
,"LPTNO" SMALLINT NOT NULL
,"KEYCOLID" SMALLINT
,"DPSI" CHAR(1) NOT NULL
,"LPTLOKEY" VARCHAR(40) FOR BIT DATA
,"LPTHIKEY" VARCHAR(40) FOR BIT DATA
,"LPTLOPAG" CHAR(4) FOR BIT DATA
,"LPTHIPAG" CHAR(4) FOR BIT DATA
,"LPTLOPG" CHAR(4) FOR BIT DATA
,"LPTHIPG" CHAR(4) FOR BIT DATA
,"LPTLOPT" SMALLINT
,"LPTHIPT" SMALLINT
,"KEYCOLDT" SMALLINT
,"KEYCOLPREC" SMALLINT
,"KEYCOLSCAL" SMALLINT
,"EXPLAIN_TIME" TIMESTAMP NOT NULL
,"GROUP_MEMBER" VARCHAR(24) NOT NULL
,"SECTNOI" INTEGER NOT NULL WITH DEFAULT
,"COLLID" VARCHAR(128) NOT NULL WITH DEFAULT
,"VERSION" VARCHAR(122) NOT NULL WITH DEFAULT
$@ if $vers >= 11 then $@=¢
,"EXPANSION_REASON" CHAR(2) NOT NULL WITH DEFAULT
$!
)
IN $db.${ts}H
$@tbAtt;
CREATE INDEX $cr.DSN_PTASK_TABLE_IDX1
ON $cr.DSN_PTASK_TABLE
( "QUERYNO"
,"EXPLAIN_TIME"
)
$@ixAtt
;
-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_FILTER_TABLE AND ITS INDEX
CREATE TABLE $cr.DSN_FILTER_TABLE
( "QUERYNO" INTEGER NOT NULL
,"QBLOCKNO" SMALLINT NOT NULL
,"PLANNO" SMALLINT NOT NULL
,"APPLNAME" VARCHAR(24) NOT NULL
,"PROGNAME" VARCHAR(128) NOT NULL
,"COLLID" VARCHAR(128) NOT NULL WITH DEFAULT
,"ORDERNO" INTEGER NOT NULL
,"PREDNO" INTEGER NOT NULL
,"STAGE" CHAR(9) NOT NULL
,"ORDERCLASS" INTEGER NOT NULL
,"EXPLAIN_TIME" TIMESTAMP NOT NULL
,"MIXOPSEQNO" SMALLINT NOT NULL
,"REEVAL" CHAR(1) NOT NULL
,"GROUP_MEMBER" VARCHAR(24) NOT NULL
,"SECTNOI" INTEGER NOT NULL WITH DEFAULT
,"VERSION" VARCHAR(122) NOT NULL WITH DEFAULT
,"PUSHDOWN" CHAR(1) NOT NULL WITH DEFAULT
$@ if $vers >= 11 then $@=¢
,"EXPANSION_REASON" CHAR(2) NOT NULL WITH DEFAULT
$!
)
IN $db.${ts}K
$@tbAtt;
CREATE INDEX $cr.DSN_FILTER_TABLE_IDX1
ON $cr.DSN_FILTER_TABLE
( "QUERYNO"
,"EXPLAIN_TIME"
)
$@ixAtt
;
-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_DETCOST_TABLE AND ITS INDEX
CREATE TABLE $cr.DSN_DETCOST_TABLE
( "QUERYNO" INTEGER NOT NULL
,"QBLOCKNO" SMALLINT NOT NULL
,"APPLNAME" VARCHAR(24) NOT NULL
,"PROGNAME" VARCHAR(128) NOT NULL
,"PLANNO" SMALLINT NOT NULL
,"OPENIO" FLOAT(4) NOT NULL
,"OPENCPU" FLOAT(4) NOT NULL
,"OPENCOST" FLOAT(4) NOT NULL
,"DMIO" FLOAT(4) NOT NULL
,"DMCPU" FLOAT(4) NOT NULL
,"DMTOT" FLOAT(4) NOT NULL
,"SUBQIO" FLOAT(4) NOT NULL
,"SUBQCPU" FLOAT(4) NOT NULL
,"SUBQCOST" FLOAT(4) NOT NULL
,"BASEIO" FLOAT(4) NOT NULL
,"BASECPU" FLOAT(4) NOT NULL
,"BASETOT" FLOAT(4) NOT NULL
,"ONECOMPROWS" FLOAT(4) NOT NULL
,"IMLEAF" FLOAT(4) NOT NULL
,"IMIO" FLOAT(4) NOT NULL
,"IMPREFH" CHAR(2) NOT NULL
,"IMMPRED" INTEGER NOT NULL
,"IMFF" FLOAT(4) NOT NULL
,"IMSRPRED" INTEGER NOT NULL
,"IMFFADJ" FLOAT(4) NOT NULL
,"IMSCANCST" FLOAT(4) NOT NULL
,"IMROWCST" FLOAT(4) NOT NULL
,"IMPAGECST" FLOAT(4) NOT NULL
,"IMRIDSORT" FLOAT(4) NOT NULL
,"IMMERGCST" FLOAT(4) NOT NULL
,"IMCPU" FLOAT(4) NOT NULL
,"IMTOT" FLOAT(4) NOT NULL
,"IMSEQNO" SMALLINT NOT NULL
,"DMPREFH" CHAR(2) NOT NULL
,"DMCLUDIO" FLOAT(4) NOT NULL
,"DMNCLUDIO" FLOAT(4) NOT NULL
,"DMPREDS" INTEGER NOT NULL
,"DMSROWS" FLOAT(4) NOT NULL
,"DMSCANCST" FLOAT(4) NOT NULL
,"DMCOLS" SMALLINT NOT NULL
,"DMROWS" FLOAT(4) NOT NULL
,"RDSROWCST" FLOAT(4) NOT NULL
,"DMPAGECST" FLOAT(4) NOT NULL
,"DMDATAIO" FLOAT(4) NOT NULL
,"DMDATACPU" FLOAT(4) NOT NULL
,"DMDATATOT" FLOAT(4) NOT NULL
,"RDSROW" FLOAT(4) NOT NULL
,"SNCOLS" SMALLINT NOT NULL
,"SNROWS" FLOAT(4) NOT NULL
,"SNRECSZ" INTEGER NOT NULL
,"SNPAGES" FLOAT(4) NOT NULL
,"SNRUNS" FLOAT(4) NOT NULL
,"SNMERGES" FLOAT(4) NOT NULL
,"SNIOCOST" FLOAT(4) NOT NULL
,"SNCPUCOST" FLOAT(4) NOT NULL
,"SNCOST" FLOAT(4) NOT NULL
,"SNSCANIO" FLOAT(4) NOT NULL
,"SNSCANCPU" FLOAT(4) NOT NULL
,"SNSCANCOST" FLOAT(4) NOT NULL
,"SCCOLS" SMALLINT NOT NULL
,"SCROWS" FLOAT(4) NOT NULL
,"SCRECSZ" INTEGER NOT NULL
,"SCPAGES" FLOAT(4) NOT NULL
,"SCRUNS" FLOAT(4) NOT NULL
,"SCMERGES" FLOAT(4) NOT NULL
,"SCIOCOST" FLOAT(4) NOT NULL
,"SCCPUCOST" FLOAT(4) NOT NULL
,"SCCOST" FLOAT(4) NOT NULL
,"SCSCANIO" FLOAT(4) NOT NULL
,"SCSCANCPU" FLOAT(4) NOT NULL
,"SCSCANCOST" FLOAT(4) NOT NULL
,"COMPCARD" FLOAT(4) NOT NULL
,"COMPIOCOST" FLOAT(4) NOT NULL
,"COMPCPUCOST" FLOAT(4) NOT NULL
,"COMPCOST" FLOAT(4) NOT NULL
,"JOINCOLS" SMALLINT NOT NULL
,"EXPLAIN_TIME" TIMESTAMP NOT NULL
,"COSTBLK" INTEGER NOT NULL
,"COSTSTOR" INTEGER NOT NULL
,"MPBLK" INTEGER NOT NULL
,"MPSTOR" INTEGER NOT NULL
,"COMPOSITES" INTEGER NOT NULL
,"CLIPPED" INTEGER NOT NULL
,"PARTITION" INTEGER NOT NULL
,"TABREF" VARCHAR(64) NOT NULL FOR BIT DATA
,"MAX_COMPOSITES" INTEGER NOT NULL
,"MAX_STOR" INTEGER NOT NULL
,"MAX_CPU" INTEGER NOT NULL
,"MAX_ELAP" INTEGER NOT NULL
,"TBL_JOINED_THRESH" INTEGER NOT NULL
,"STOR_USED" INTEGER NOT NULL
,"CPU_USED" INTEGER NOT NULL
,"ELAPSED" INTEGER NOT NULL
,"MIN_CARD_KEEP" FLOAT(4) NOT NULL
,"MAX_CARD_KEEP" FLOAT(4) NOT NULL
,"MIN_COST_KEEP" FLOAT(4) NOT NULL
,"MAX_COST_KEEP" FLOAT(4) NOT NULL
,"MIN_VALUE_KEEP" FLOAT(4) NOT NULL
,"MIN_VALUE_CARD_KEEP" FLOAT(4) NOT NULL
,"MIN_VALUE_COST_KEEP" FLOAT(4) NOT NULL
,"MAX_VALUE_KEEP" FLOAT(4) NOT NULL
,"MAX_VALUE_CARD_KEEP" FLOAT(4) NOT NULL
,"MAX_VALUE_COST_KEEP" FLOAT(4) NOT NULL
,"MIN_CARD_CLIP" FLOAT(4) NOT NULL
,"MAX_CARD_CLIP" FLOAT(4) NOT NULL
,"MIN_COST_CLIP" FLOAT(4) NOT NULL
,"MAX_COST_CLIP" FLOAT(4) NOT NULL
,"MIN_VALUE_CLIP" FLOAT(4) NOT NULL
,"MIN_VALUE_CARD_CLIP" FLOAT(4) NOT NULL
,"MIN_VALUE_COST_CLIP" FLOAT(4) NOT NULL
,"MAX_VALUE_CLIP" FLOAT(4) NOT NULL
,"MAX_VALUE_CARD_CLIP" FLOAT(4) NOT NULL
,"MAX_VALUE_COST_CLIP" FLOAT(4) NOT NULL
,"GROUP_MEMBER" VARCHAR(24) NOT NULL
,"PSEQIOCOST" FLOAT(4) NOT NULL
,"PSEQCPUCOST" FLOAT(4) NOT NULL
,"PSEQCOST" FLOAT(4) NOT NULL
,"PADJIOCOST" FLOAT(4) NOT NULL
,"PADJCPUCOST" FLOAT(4) NOT NULL
,"PADJCOST" FLOAT(4) NOT NULL
,"UNCERTAINTY" FLOAT(4) NOT NULL WITH DEFAULT
,"UNCERTAINTY_1T" FLOAT(4) NOT NULL WITH DEFAULT
,"SECTNOI" INTEGER NOT NULL WITH DEFAULT
,"COLLID" VARCHAR(128) NOT NULL WITH DEFAULT
,"VERSION" VARCHAR(122) NOT NULL WITH DEFAULT
,"IMNP" FLOAT(4) NOT NULL WITH DEFAULT
,"DMNP" FLOAT(4) NOT NULL WITH DEFAULT
,"IMJC" FLOAT(4) NOT NULL WITH DEFAULT
,"IMFC" FLOAT(4) NOT NULL WITH DEFAULT
,"IMJBC" FLOAT(4) NOT NULL WITH DEFAULT
,"IMJFC" FLOAT(4) NOT NULL WITH DEFAULT
,"CRED" INTEGER NOT NULL WITH DEFAULT
$@ if $vers >= 11 then $@=¢
,"IXSCAN_SKIP_DUPS" CHAR(1) NOT NULL
WITH DEFAULT 'N'
,"IXSCAN_SKIP_SCREEN" CHAR(1) NOT NULL
WITH DEFAULT 'N'
,"EARLY_OUT" CHAR(1) NOT NULL
WITH DEFAULT ' '
,"EXPANSION_REASON" CHAR(2) NOT NULL WITH DEFAULT
$!
)
IN $db.${ts}L
$@tbAtt;
CREATE INDEX $cr.DSN_DETCOST_TABLE_IDX1
ON $cr.DSN_DETCOST_TABLE
( "QUERYNO"
,"EXPLAIN_TIME"
)
$@ixAtt
;
-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_SORT_TABLE AND ITS INDEX
CREATE TABLE $cr.DSN_SORT_TABLE
( "QUERYNO" INTEGER NOT NULL
,"QBLOCKNO" SMALLINT NOT NULL
,"PLANNO" SMALLINT NOT NULL
,"APPLNAME" VARCHAR(24) NOT NULL
,"PROGNAME" VARCHAR(128) NOT NULL
,"COLLID" VARCHAR(128) NOT NULL WITH DEFAULT
,"SORTC" CHAR(5) NOT NULL WITH DEFAULT
,"SORTN" CHAR(5) NOT NULL WITH DEFAULT
,"SORTNO" SMALLINT NOT NULL
,"KEYSIZE" SMALLINT NOT NULL
,"ORDERCLASS" INTEGER NOT NULL
,"EXPLAIN_TIME" TIMESTAMP NOT NULL
,"GROUP_MEMBER" VARCHAR(24) NOT NULL
,"SECTNOI" INTEGER NOT NULL WITH DEFAULT
,"VERSION" VARCHAR(122) NOT NULL WITH DEFAULT
$@ if $vers >= 11 then $@=¢
,"EXPANSION_REASON" CHAR(2) NOT NULL WITH DEFAULT
$!
)
IN $db.${ts}M
$@tbAtt;
CREATE INDEX $cr.DSN_SORT_TABLE_IDX1
ON $cr.DSN_SORT_TABLE
( "QUERYNO"
,"EXPLAIN_TIME"
)
$@ixAtt
;
-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_SORTKEY_TABLE AND ITS INDEX
CREATE TABLE $cr.DSN_SORTKEY_TABLE
( "QUERYNO" INTEGER NOT NULL
,"QBLOCKNO" SMALLINT NOT NULL
,"PLANNO" SMALLINT NOT NULL
,"APPLNAME" VARCHAR(24) NOT NULL
,"PROGNAME" VARCHAR(128) NOT NULL
,"COLLID" VARCHAR(128) NOT NULL WITH DEFAULT
,"SORTNO" SMALLINT NOT NULL
,"ORDERNO" SMALLINT NOT NULL
,"EXPTYPE" CHAR(3) NOT NULL
,"TEXT" VARCHAR(128) NOT NULL
,"TABNO" SMALLINT NOT NULL
,"COLNO" SMALLINT NOT NULL
,"DATATYPE" CHAR(18) NOT NULL
,"LENGTH" INTEGER NOT NULL
,"CCSID" INTEGER NOT NULL
,"ORDERCLASS" INTEGER NOT NULL
,"EXPLAIN_TIME" TIMESTAMP NOT NULL
,"GROUP_MEMBER" VARCHAR(24) NOT NULL
,"SECTNOI" INTEGER NOT NULL WITH DEFAULT
,"VERSION" VARCHAR(122) NOT NULL WITH DEFAULT
$@ if $vers >= 11 then $@=¢
,"EXPANSION_REASON" CHAR(2) NOT NULL WITH DEFAULT
$!
)
IN $db.${ts}N
$@tbAtt;
CREATE INDEX $cr.DSN_SORTKEY_TABLE_IDX1
ON $cr.DSN_SORTKEY_TABLE
( "QUERYNO"
,"EXPLAIN_TIME"
)
$@ixAtt
;
-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_PGRANGE_TABLE AND ITS INDEX
CREATE TABLE $cr.DSN_PGRANGE_TABLE
( "QUERYNO" INTEGER NOT NULL
,"QBLOCKNO" SMALLINT NOT NULL
,"TABNO" SMALLINT NOT NULL
,"RANGE" SMALLINT NOT NULL
,"FIRSTPART" SMALLINT NOT NULL
,"LASTPART" SMALLINT NOT NULL
,"NUMPARTS" SMALLINT NOT NULL
,"EXPLAIN_TIME" TIMESTAMP NOT NULL
,"GROUP_MEMBER" VARCHAR(24) NOT NULL
,"SECTNOI" INTEGER NOT NULL WITH DEFAULT
,"APPLNAME" VARCHAR(24) NOT NULL WITH DEFAULT
,"PROGNAME" VARCHAR(128) NOT NULL WITH DEFAULT
,"COLLID" VARCHAR(128) NOT NULL WITH DEFAULT
,"VERSION" VARCHAR(122) NOT NULL WITH DEFAULT
$@ if $vers >= 11 then $@=¢
,"EXPANSION_REASON" CHAR(2) NOT NULL WITH DEFAULT
$!
)
IN $db.${ts}O
$@tbAtt;
CREATE INDEX $cr.DSN_PGRANGE_TABLE_IDX1
ON $cr.DSN_PGRANGE_TABLE
( "QUERYNO"
,"EXPLAIN_TIME"
)
$@ixAtt
;
-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_VIEWREF_TABLE AND ITS INDEX
CREATE TABLE $cr.DSN_VIEWREF_TABLE
( "QUERYNO" INTEGER NOT NULL WITH DEFAULT
,"APPLNAME" VARCHAR(24) NOT NULL WITH DEFAULT
,"PROGNAME" VARCHAR(128) NOT NULL WITH DEFAULT
,"VERSION" VARCHAR(122) NOT NULL WITH DEFAULT
,"COLLID" VARCHAR(128) NOT NULL WITH DEFAULT
,"CREATOR" VARCHAR(128) NOT NULL WITH DEFAULT
,"NAME" VARCHAR(128) NOT NULL WITH DEFAULT
,"TYPE" CHAR(1) NOT NULL WITH DEFAULT
,"MQTUSE" SMALLINT NOT NULL WITH DEFAULT
,"EXPLAIN_TIME" TIMESTAMP NOT NULL WITH DEFAULT
,"GROUP_MEMBER" VARCHAR(24) NOT NULL
,"SECTNOI" INTEGER NOT NULL WITH DEFAULT
$@ if $vers >= 11 then $@=¢
,"EXPANSION_REASON" CHAR(2) NOT NULL WITH DEFAULT
$!
)
IN $db.${ts}P
$@tbAtt;
CREATE INDEX $cr.DSN_VIEWREF_TABLE_IDX1
ON $cr.DSN_VIEWREF_TABLE
( "QUERYNO"
,"EXPLAIN_TIME"
)
$@ixAtt
;
-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_QUERY_TABLE AND ITS INDEXES
CREATE TABLE $cr.DSN_QUERY_TABLE
( "QUERYNO" INTEGER NOT NULL
,"TYPE" CHAR(8) NOT NULL
,"QUERY_STAGE" CHAR(8) NOT NULL
,"SEQNO" INTEGER NOT NULL
,"NODE_DATA" CLOB(2M) NOT NULL
,"EXPLAIN_TIME" TIMESTAMP NOT NULL
,"QUERY_ROWID" ROWID NOT NULL
GENERATED BY DEFAULT
,"GROUP_MEMBER" VARCHAR(24) NOT NULL
,"HASHKEY" INTEGER NOT NULL
,"HAS_PRED" CHAR(1) NOT NULL
,"SECTNOI" INTEGER NOT NULL WITH DEFAULT
,"APPLNAME" VARCHAR(24) NOT NULL WITH DEFAULT
,"PROGNAME" VARCHAR(128) NOT NULL WITH DEFAULT
,"COLLID" VARCHAR(128) NOT NULL WITH DEFAULT
,"VERSION" VARCHAR(122) NOT NULL WITH DEFAULT
$@ if $vers >= 11 then $@=¢
,"EXPANSION_REASON" CHAR(2) NOT NULL WITH DEFAULT
$!
)
IN $db.${ts}I
$@tbAtt;
CREATE INDEX $cr.DSN_QUERY_TABLE_IDX1
ON $cr.DSN_QUERY_TABLE
( "QUERYNO"
,"EXPLAIN_TIME"
)
$@ixAtt
;
CREATE INDEX $cr.DSN_QUERY_TABLE_IDX2
ON $cr.DSN_QUERY_TABLE
( "QUERYNO"
,"TYPE"
,"QUERY_STAGE"
,"EXPLAIN_TIME"
,"SEQNO"
)
$@ixAtt
;
CREATE UNIQUE INDEX $cr.DSN_QUERY_TABLE_IDX3
ON $cr.DSN_QUERY_TABLE
( "QUERY_ROWID"
)
$@ixAtt
;
-----------------------------------------------------------------------
--CREATE THE AUXILIARY TABLE FOR THE V11 SAMPLE DSN_QUERY_TABLE
--AND ITS INDEX
CREATE AUX TABLE $cr.DSN_QUERY_AUX
IN $db.${tl}I
STORES $cr.DSN_QUERY_TABLE
COLUMN "NODE_DATA"
PART 1;
CREATE INDEX $cr.DSN_QUERY_AUXINX
ON $cr.DSN_QUERY_AUX
$@%¢ixAtt l $!
;
----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_QUERYINFO_TABLE AND ITS AUXILIARY TABLES
--AND INDEXES
CREATE TABLE $cr.DSN_QUERYINFO_TABLE
( "QUERYNO" INTEGER NOT NULL WITH DEFAULT
, "QBLOCKNO" SMALLINT NOT NULL WITH DEFAULT
, "QINAME1" VARCHAR(128) NOT NULL WITH DEFAULT
, "QINAME2" VARCHAR(128) NOT NULL WITH DEFAULT
, "APPLNAME" VARCHAR(24) NOT NULL WITH DEFAULT
, "PROGNAME" VARCHAR(128) NOT NULL WITH DEFAULT
, "VERSION" VARCHAR(122) NOT NULL WITH DEFAULT
, "COLLID" VARCHAR(128) NOT NULL WITH DEFAULT
, "GROUP_MEMBER" VARCHAR(24) NOT NULL WITH DEFAULT
, "SECTNOI" INTEGER NOT NULL WITH DEFAULT
, "SEQNO" INTEGER NOT NULL WITH DEFAULT
, "EXPLAIN_TIME" TIMESTAMP NOT NULL WITH DEFAULT
, "TYPE" CHAR(8) NOT NULL WITH DEFAULT
, "REASON_CODE" SMALLINT NOT NULL WITH DEFAULT
, "QI_DATA" CLOB(2M) NOT NULL WITH DEFAULT
, "SERVICE_INFO" BLOB(2M) NOT NULL WITH DEFAULT
, "QB_INFO_ROWID" ROWID NOT NULL
GENERATED ALWAYS
$@ if $vers >= 11 then $@=¢
, "EXPANSION_REASON" CHAR(2) NOT NULL WITH DEFAULT
$!
)
IN $db.${ts}Q
$@tbAtt;
CREATE AUX TABLE $cr.DSN_QUERYINFO_AUX
IN $db.${tl}Q
STORES $cr.DSN_QUERYINFO_TABLE
COLUMN "QI_DATA"
PART 1;
CREATE INDEX $cr.DSN_QUERYINFO_AUXINX
ON $cr.DSN_QUERYINFO_AUX
$@%¢ixAtt l $!
;
CREATE AUX TABLE $cr.DSN_QUERYINFO_AUX2
IN $db.${tl}R
STORES $cr.DSN_QUERYINFO_TABLE
COLUMN "SERVICE_INFO"
PART 1
;
CREATE INDEX $cr.DSN_QUERYINFO_AUXINX2
ON $cr.DSN_QUERYINFO_AUX2
$@%¢ixAtt l $!
;
$@ if $queryV then $@=¢
-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_VIRTUAL_INDEXES TABLE AND ITS INDEX
CREATE TABLE $cr.DSN_VIRTUAL_INDEXES
( "TBCREATOR" VARCHAR(128) NOT NULL
,"TBNAME" VARCHAR(128) NOT NULL
,"IXCREATOR" VARCHAR(128) NOT NULL
,"IXNAME" VARCHAR(128) NOT NULL
,"ENABLE" CHAR(1) NOT NULL
CHECK("ENABLE" IN('Y','N'))
,"MODE" CHAR(1) NOT NULL
CHECK("MODE" IN('C','D'))
,"UNIQUERULE" CHAR(1) NOT NULL
CHECK("UNIQUERULE" IN('D','U'))
,"COLCOUNT" SMALLINT NOT NULL
CHECK("COLCOUNT" > 0)
,"CLUSTERING" CHAR(1) NOT NULL
CHECK("CLUSTERING" IN('Y','N'))
,"NLEAF" INTEGER NOT NULL
CHECK("NLEAF" >= -1)
,"NLEVELS" SMALLINT NOT NULL
CHECK("NLEVELS" >= -1)
,"INDEXTYPE" CHAR(1) NOT NULL WITH DEFAULT
CHECK("INDEXTYPE" IN('D','2'))
,"PGSIZE" SMALLINT NOT NULL
CHECK("PGSIZE" IN(4, 8, 16, 32))
,"FIRSTKEYCARDF" FLOAT NOT NULL WITH DEFAULT -1
CHECK("FIRSTKEYCARDF" = -1
OR "FIRSTKEYCARDF" >= 0)
,"FULLKEYCARDF" FLOAT NOT NULL WITH DEFAULT -1
CHECK("FULLKEYCARDF" = -1
OR "FULLKEYCARDF" >= 0)
,"CLUSTERRATIOF" FLOAT NOT NULL WITH DEFAULT -1
CHECK("CLUSTERRATIOF" = -1
OR "CLUSTERRATIOF" >= 0)
,"PADDED" CHAR(1) NOT NULL WITH DEFAULT
CHECK("PADDED" IN(' ','Y','N'))
,"COLNO1" SMALLINT
CHECK("COLNO1" IS NULL
OR "COLNO1" > 0)
,"ORDERING1" CHAR(1)
CHECK("ORDERING1" IS NULL
OR "ORDERING1" IN('A','D'))
,"COLNO2" SMALLINT
CHECK("COLNO2" IS NULL
OR "COLNO2" > 0)
,"ORDERING2" CHAR(1)
CHECK("ORDERING2" IS NULL
OR "ORDERING2" IN('A','D'))
,"COLNO3" SMALLINT
CHECK("COLNO3" IS NULL
OR "COLNO3" > 0)
,"ORDERING3" CHAR(1)
CHECK("ORDERING3" IS NULL
OR "ORDERING3" IN('A','D'))
,"COLNO4" SMALLINT
CHECK("COLNO4" IS NULL
OR "COLNO4" > 0)
,"ORDERING4" CHAR(1)
CHECK("ORDERING4" IS NULL
OR "ORDERING4" IN('A','D'))
,"COLNO5" SMALLINT
CHECK("COLNO5" IS NULL
OR "COLNO5" > 0)
,"ORDERING5" CHAR(1)
CHECK("ORDERING5" IS NULL
OR "ORDERING5" IN('A','D'))
,"COLNO6" SMALLINT
CHECK("COLNO6" IS NULL
OR "COLNO6" > 0)
,"ORDERING6" CHAR(1)
CHECK("ORDERING6" IS NULL
OR "ORDERING6" IN('A','D'))
,"COLNO7" SMALLINT
CHECK("COLNO7" IS NULL
OR "COLNO7" > 0)
,"ORDERING7" CHAR(1)
CHECK("ORDERING7" IS NULL
OR "ORDERING7" IN('A','D'))
,"COLNO8" SMALLINT
CHECK("COLNO8" IS NULL
OR "COLNO8" > 0)
,"ORDERING8" CHAR(1)
CHECK("ORDERING8" IS NULL
OR "ORDERING8" IN('A','D'))
,"COLNO9" SMALLINT
CHECK("COLNO9" IS NULL
OR "COLNO9" > 0)
,"ORDERING9" CHAR(1)
CHECK("ORDERING9" IS NULL
OR "ORDERING9" IN('A','D'))
,"COLNO10" SMALLINT
CHECK("COLNO10" IS NULL
OR "COLNO10" > 0)
,"ORDERING10" CHAR(1)
CHECK("ORDERING10" IS NULL
OR "ORDERING10" IN('A','D'))
,"COLNO11" SMALLINT
CHECK("COLNO11" IS NULL
OR "COLNO11" > 0)
,"ORDERING11" CHAR(1)
CHECK("ORDERING11" IS NULL
OR "ORDERING11" IN('A','D'))
,"COLNO12" SMALLINT
CHECK("COLNO12" IS NULL
OR "COLNO12" > 0)
,"ORDERING12" CHAR(1)
CHECK("ORDERING12" IS NULL
OR "ORDERING12" IN('A','D'))
,"COLNO13" SMALLINT
CHECK("COLNO13" IS NULL
OR "COLNO13" > 0)
,"ORDERING13" CHAR(1)
CHECK("ORDERING13" IS NULL
OR "ORDERING13" IN('A','D'))
,"COLNO14" SMALLINT
CHECK("COLNO14" IS NULL
OR "COLNO14" > 0)
,"ORDERING14" CHAR(1)
CHECK("ORDERING14" IS NULL
OR "ORDERING14" IN('A','D'))
,"COLNO15" SMALLINT
CHECK("COLNO15" IS NULL
OR "COLNO15" > 0)
,"ORDERING15" CHAR(1)
CHECK("ORDERING15" IS NULL
OR "ORDERING15" IN('A','D'))
,"COLNO16" SMALLINT
CHECK("COLNO16" IS NULL
OR "COLNO16" > 0)
,"ORDERING16" CHAR(1)
CHECK("ORDERING16" IS NULL
OR "ORDERING16" IN('A','D'))
,"COLNO17" SMALLINT
CHECK("COLNO17" IS NULL
OR "COLNO17" > 0)
,"ORDERING17" CHAR(1)
CHECK("ORDERING17" IS NULL
OR "ORDERING17" IN('A','D'))
,"COLNO18" SMALLINT
CHECK("COLNO18" IS NULL
OR "COLNO18" > 0)
,"ORDERING18" CHAR(1)
CHECK("ORDERING18" IS NULL
OR "ORDERING18" IN('A','D'))
,"COLNO19" SMALLINT
CHECK("COLNO19" IS NULL
OR "COLNO19" > 0)
,"ORDERING19" CHAR(1)
CHECK("ORDERING19" IS NULL
OR "ORDERING19" IN('A','D'))
,"COLNO20" SMALLINT
CHECK("COLNO20" IS NULL
OR "COLNO20" > 0)
,"ORDERING20" CHAR(1)
CHECK("ORDERING20" IS NULL
OR "ORDERING20" IN('A','D'))
,"COLNO21" SMALLINT
CHECK("COLNO21" IS NULL
OR "COLNO21" > 0)
,"ORDERING21" CHAR(1)
CHECK("ORDERING21" IS NULL
OR "ORDERING21" IN('A','D'))
,"COLNO22" SMALLINT
CHECK("COLNO22" IS NULL
OR "COLNO22" > 0)
,"ORDERING22" CHAR(1)
CHECK("ORDERING22" IS NULL
OR "ORDERING22" IN('A','D'))
,"COLNO23" SMALLINT
CHECK("COLNO23" IS NULL
OR "COLNO23" > 0)
,"ORDERING23" CHAR(1)
CHECK("ORDERING23" IS NULL
OR "ORDERING23" IN('A','D'))
,"COLNO24" SMALLINT
CHECK("COLNO24" IS NULL
OR "COLNO24" > 0)
,"ORDERING24" CHAR(1)
CHECK("ORDERING24" IS NULL
OR "ORDERING24" IN('A','D'))
,"COLNO25" SMALLINT
CHECK("COLNO25" IS NULL
OR "COLNO25" > 0)
,"ORDERING25" CHAR(1)
CHECK("ORDERING25" IS NULL
OR "ORDERING25" IN('A','D'))
,"COLNO26" SMALLINT
CHECK("COLNO26" IS NULL
OR "COLNO26" > 0)
,"ORDERING26" CHAR(1)
CHECK("ORDERING26" IS NULL
OR "ORDERING26" IN('A','D'))
,"COLNO27" SMALLINT
CHECK("COLNO27" IS NULL
OR "COLNO27" > 0)
,"ORDERING27" CHAR(1)
CHECK("ORDERING27" IS NULL
OR "ORDERING27" IN('A','D'))
,"COLNO28" SMALLINT
CHECK("COLNO28" IS NULL
OR "COLNO28" > 0)
,"ORDERING28" CHAR(1)
CHECK("ORDERING28" IS NULL
OR "ORDERING28" IN('A','D'))
,"COLNO29" SMALLINT
CHECK("COLNO29" IS NULL
OR "COLNO29" > 0)
,"ORDERING29" CHAR(1)
CHECK("ORDERING29" IS NULL
OR "ORDERING29" IN('A','D'))
,"COLNO30" SMALLINT
CHECK("COLNO30" IS NULL
OR "COLNO30" > 0)
,"ORDERING30" CHAR(1)
CHECK("ORDERING30" IS NULL
OR "ORDERING30" IN('A','D'))
,"COLNO31" SMALLINT
CHECK("COLNO31" IS NULL
OR "COLNO31" > 0)
,"ORDERING31" CHAR(1)
CHECK("ORDERING31" IS NULL
OR "ORDERING31" IN('A','D'))
,"COLNO32" SMALLINT
CHECK("COLNO32" IS NULL
OR "COLNO32" > 0)
,"ORDERING32" CHAR(1)
CHECK("ORDERING32" IS NULL
OR "ORDERING32" IN('A','D'))
,"COLNO33" SMALLINT
CHECK("COLNO33" IS NULL
OR "COLNO33" > 0)
,"ORDERING33" CHAR(1)
CHECK("ORDERING33" IS NULL
OR "ORDERING33" IN('A','D'))
,"COLNO34" SMALLINT
CHECK("COLNO34" IS NULL
OR "COLNO34" > 0)
,"ORDERING34" CHAR(1)
CHECK("ORDERING34" IS NULL
OR "ORDERING34" IN('A','D'))
,"COLNO35" SMALLINT
CHECK("COLNO35" IS NULL
OR "COLNO35" > 0)
,"ORDERING35" CHAR(1)
CHECK("ORDERING35" IS NULL
OR "ORDERING35" IN('A','D'))
,"COLNO36" SMALLINT
CHECK("COLNO36" IS NULL
OR "COLNO36" > 0)
,"ORDERING36" CHAR(1)
CHECK("ORDERING36" IS NULL
OR "ORDERING36" IN('A','D'))
,"COLNO37" SMALLINT
CHECK("COLNO37" IS NULL
OR "COLNO37" > 0)
,"ORDERING37" CHAR(1)
CHECK("ORDERING37" IS NULL
OR "ORDERING37" IN('A','D'))
,"COLNO38" SMALLINT
CHECK("COLNO38" IS NULL
OR "COLNO38" > 0)
,"ORDERING38" CHAR(1)
CHECK("ORDERING38" IS NULL
OR "ORDERING38" IN('A','D'))
,"COLNO39" SMALLINT
CHECK("COLNO39" IS NULL
OR "COLNO39" > 0)
,"ORDERING39" CHAR(1)
CHECK("ORDERING39" IS NULL
OR "ORDERING39" IN('A','D'))
,"COLNO40" SMALLINT
CHECK("COLNO40" IS NULL
OR "COLNO40" > 0)
,"ORDERING40" CHAR(1)
CHECK("ORDERING40" IS NULL
OR "ORDERING40" IN('A','D'))
,"COLNO41" SMALLINT
CHECK("COLNO41" IS NULL
OR "COLNO41" > 0)
,"ORDERING41" CHAR(1)
CHECK("ORDERING41" IS NULL
OR "ORDERING41" IN('A','D'))
,"COLNO42" SMALLINT
CHECK("COLNO42" IS NULL
OR "COLNO42" > 0)
,"ORDERING42" CHAR(1)
CHECK("ORDERING42" IS NULL
OR "ORDERING42" IN('A','D'))
,"COLNO43" SMALLINT
CHECK("COLNO43" IS NULL
OR "COLNO43" > 0)
,"ORDERING43" CHAR(1)
CHECK("ORDERING43" IS NULL
OR "ORDERING43" IN('A','D'))
,"COLNO44" SMALLINT
CHECK("COLNO44" IS NULL
OR "COLNO44" > 0)
,"ORDERING44" CHAR(1)
CHECK("ORDERING44" IS NULL
OR "ORDERING44" IN('A','D'))
,"COLNO45" SMALLINT
CHECK("COLNO45" IS NULL
OR "COLNO45" > 0)
,"ORDERING45" CHAR(1)
CHECK("ORDERING45" IS NULL
OR "ORDERING45" IN('A','D'))
,"COLNO46" SMALLINT
CHECK("COLNO46" IS NULL
OR "COLNO46" > 0)
,"ORDERING46" CHAR(1)
CHECK("ORDERING46" IS NULL
OR "ORDERING46" IN('A','D'))
,"COLNO47" SMALLINT
CHECK("COLNO47" IS NULL
OR "COLNO47" > 0)
,"ORDERING47" CHAR(1)
CHECK("ORDERING47" IS NULL
OR "ORDERING47" IN('A','D'))
,"COLNO48" SMALLINT
CHECK("COLNO48" IS NULL
OR "COLNO48" > 0)
,"ORDERING48" CHAR(1)
CHECK("ORDERING48" IS NULL
OR "ORDERING48" IN('A','D'))
,"COLNO49" SMALLINT
CHECK("COLNO49" IS NULL
OR "COLNO49" > 0)
,"ORDERING49" CHAR(1)
CHECK("ORDERING49" IS NULL
OR "ORDERING49" IN('A','D'))
,"COLNO50" SMALLINT
CHECK("COLNO50" IS NULL
OR "COLNO50" > 0)
,"ORDERING50" CHAR(1)
CHECK("ORDERING50" IS NULL
OR "ORDERING50" IN('A','D'))
,"COLNO51" SMALLINT
CHECK("COLNO51" IS NULL
OR "COLNO51" > 0)
,"ORDERING51" CHAR(1)
CHECK("ORDERING51" IS NULL
OR "ORDERING51" IN('A','D'))
,"COLNO52" SMALLINT
CHECK("COLNO52" IS NULL
OR "COLNO52" > 0)
,"ORDERING52" CHAR(1)
CHECK("ORDERING52" IS NULL
OR "ORDERING52" IN('A','D'))
,"COLNO53" SMALLINT
CHECK("COLNO53" IS NULL
OR "COLNO53" > 0)
,"ORDERING53" CHAR(1)
CHECK("ORDERING53" IS NULL
OR "ORDERING53" IN('A','D'))
,"COLNO54" SMALLINT
CHECK("COLNO54" IS NULL
OR "COLNO54" > 0)
,"ORDERING54" CHAR(1)
CHECK("ORDERING54" IS NULL
OR "ORDERING54" IN('A','D'))
,"COLNO55" SMALLINT
CHECK("COLNO55" IS NULL
OR "COLNO55" > 0)
,"ORDERING55" CHAR(1)
CHECK("ORDERING55" IS NULL
OR "ORDERING55" IN('A','D'))
,"COLNO56" SMALLINT
CHECK("COLNO56" IS NULL
OR "COLNO56" > 0)
,"ORDERING56" CHAR(1)
CHECK("ORDERING56" IS NULL
OR "ORDERING56" IN('A','D'))
,"COLNO57" SMALLINT
CHECK("COLNO57" IS NULL
OR "COLNO57" > 0)
,"ORDERING57" CHAR(1)
CHECK("ORDERING57" IS NULL
OR "ORDERING57" IN('A','D'))
,"COLNO58" SMALLINT
CHECK("COLNO58" IS NULL
OR "COLNO58" > 0)
,"ORDERING58" CHAR(1)
CHECK("ORDERING58" IS NULL
OR "ORDERING58" IN('A','D'))
,"COLNO59" SMALLINT
CHECK("COLNO59" IS NULL
OR "COLNO59" > 0)
,"ORDERING59" CHAR(1)
CHECK("ORDERING59" IS NULL
OR "ORDERING59" IN('A','D'))
,"COLNO60" SMALLINT
CHECK("COLNO60" IS NULL
OR "COLNO60" > 0)
,"ORDERING60" CHAR(1)
CHECK("ORDERING60" IS NULL
OR "ORDERING60" IN('A','D'))
,"COLNO61" SMALLINT
CHECK("COLNO61" IS NULL
OR "COLNO61" > 0)
,"ORDERING61" CHAR(1)
CHECK("ORDERING61" IS NULL
OR "ORDERING61" IN('A','D'))
,"COLNO62" SMALLINT
CHECK("COLNO62" IS NULL
OR "COLNO62" > 0)
,"ORDERING62" CHAR(1)
CHECK("ORDERING62" IS NULL
OR "ORDERING62" IN('A','D'))
,"COLNO63" SMALLINT
CHECK("COLNO63" IS NULL
OR "COLNO63" > 0)
,"ORDERING63" CHAR(1)
CHECK("ORDERING63" IS NULL
OR "ORDERING63" IN('A','D'))
,"COLNO64" SMALLINT
CHECK("COLNO64" IS NULL
OR "COLNO64" > 0)
,"ORDERING64" CHAR(1)
CHECK("ORDERING64" IS NULL
OR "ORDERING64" IN('A','D'))
$@ if $vers >= 11 then $@=¢
,"KEYTARGET_COUNT" SMALLINT NOT NULL WITH DEFAULT
CHECK("KEYTARGET_COUNT" >= 0)
,"UNIQUE_COUNT" SMALLINT NOT NULL WITH DEFAULT
CHECK("UNIQUE_COUNT" >= 0)
,"IX_EXTENSION_TYPE" CHAR(1) NOT NULL WITH DEFAULT
CHECK("IX_EXTENSION_TYPE"
IN (' ','S','V'))
,"DATAREPEATFACTORF" FLOAT NOT NULL WITH DEFAULT -1
CHECK("DATAREPEATFACTORF" = -1
OR "DATAREPEATFACTORF" >= 1)
,"SPARSE" CHAR(1) NOT NULL
WITH DEFAULT 'N'
CHECK("SPARSE" IN ('N','Y','X'))
$!
)
IN $db.${ts}J
$@tbAtt;
CREATE INDEX $cr.DSN_VIRTUAL_INDEXES_IDX1
ON $cr.DSN_VIRTUAL_INDEXES
( "TBCREATOR"
,"TBNAME"
)
$@ixAtt
;
$!
-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_COLDIST_TABLE
CREATE TABLE $cr.DSN_COLDIST_TABLE
( "QUERYNO" INTEGER NOT NULL
,"APPLNAME" VARCHAR(128) NOT NULL
,"PROGNAME" VARCHAR(128) NOT NULL
,"COLLID" VARCHAR(128) NOT NULL
,"GROUP_MEMBER" VARCHAR(128) NOT NULL
,"SECTNOI" INTEGER NOT NULL
,"VERSION" VARCHAR(122) NOT NULL
,"EXPLAIN_TIME" TIMESTAMP NOT NULL
,"SCHEMA" VARCHAR(128) NOT NULL
,"TBNAME" VARCHAR(128) NOT NULL
,"NAME" VARCHAR(128) NOT NULL
,"COLVALUE" VARCHAR(2000) NOT NULL FOR BIT DATA
,"TYPE" CHAR(1) NOT NULL
,"CARDF" FLOAT NOT NULL
,"COLGROUPCOLNO" VARCHAR(254) NOT NULL FOR BIT DATA
,"NUMCOLUMNS" SMALLINT NOT NULL
,"FREQUENCYF" FLOAT NOT NULL
,"QUANTILENO" SMALLINT NOT NULL
,"LOWVALUE" VARCHAR(2000) NOT NULL FOR BIT DATA
,"HIGHVALUE" VARCHAR(2000) NOT NULL FOR BIT DATA
$@ if $vers >= 11 then $@=¢
,"EXPANSION_REASON" CHAR(2) NOT NULL WITH DEFAULT
$!
)
IN $db.${ts}S
$@tbAtt;
-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_KEYTGTDIST_TABLE
CREATE TABLE $cr.DSN_KEYTGTDIST_TABLE
( "QUERYNO" INTEGER NOT NULL
,"APPLNAME" VARCHAR(128) NOT NULL
,"PROGNAME" VARCHAR(128) NOT NULL
,"COLLID" VARCHAR(128) NOT NULL
,"GROUP_MEMBER" VARCHAR(128) NOT NULL
,"SECTNOI" INTEGER NOT NULL
,"VERSION" VARCHAR(122) NOT NULL
,"EXPLAIN_TIME" TIMESTAMP NOT NULL
,"IXSCHEMA" VARCHAR(128) NOT NULL
,"IXNAME" VARCHAR(128) NOT NULL
,"KEYSEQ" VARCHAR(128) NOT NULL
,"KEYVALUE" VARCHAR(2000) NOT NULL FOR BIT DATA
,"TYPE" CHAR(1) NOT NULL
,"CARDF" FLOAT NOT NULL
,"KEYGROUPKEYNO" VARCHAR(254) NOT NULL FOR BIT DATA
,"NUMKEYS" SMALLINT NOT NULL
,"FREQUENCYF" FLOAT NOT NULL
,"QUANTILENO" SMALLINT NOT NULL
,"LOWVALUE" VARCHAR(2000) NOT NULL FOR BIT DATA
,"HIGHVALUE" VARCHAR(2000) NOT NULL FOR BIT DATA
$@ if $vers >= 11 then $@=¢
,"EXPANSION_REASON" CHAR(2) NOT NULL WITH DEFAULT
$!
)
IN $db.${ts}T
$@tbAtt;
$@ if $vers >= 11 then $@=¢
$@ if $queryT then $@=¢
-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_PREDICATE_SELECTIVITY TABLE
CREATE TABLE $cr.DSN_PREDICATE_SELECTIVITY
( "QUERYNO" INTEGER NOT NULL
, "QBLOCKNO" SMALLINT NOT NULL
, "APPLNAME" VARCHAR(24) NOT NULL
, "PROGNAME" VARCHAR(128) NOT NULL
, "SECTNOI" INTEGER NOT NULL WITH DEFAULT
, "COLLID" VARCHAR(128) NOT NULL WITH DEFAULT
, "VERSION" VARCHAR(122) NOT NULL WITH DEFAULT
, "PREDNO" INTEGER NOT NULL
, "INSTANCE" SMALLINT NOT NULL
, "SELECTIVITY" FLOAT NOT NULL
, "WEIGHT" FLOAT(4) NOT NULL
, "ASSUMPTION" VARCHAR(128) NOT NULL
, "INSERT_TIME" TIMESTAMP NOT NULL
GENERATED ALWAYS
FOR EACH ROW ON UPDATE
AS ROW CHANGE TIMESTAMP
, "EXPLAIN_TIME" TIMESTAMP
, "REMARKS" VARCHAR(762)
, "EXPANSION_REASON" CHAR(2) NOT NULL WITH DEFAULT
)
IN $db.${ts}U
$@tbAtt;
CREATE INDEX $cr.DSN_PREDSEL_IX1
ON $cr.DSN_PREDICATE_SELECTIVITY
( "QUERYNO"
)
$@ixAtt
;
$!
-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_STAT_FEEDBACK TABLE
CREATE TABLE $cr.DSN_STAT_FEEDBACK
( "QUERYNO" INTEGER NOT NULL
, "APPLNAME" VARCHAR(24) NOT NULL
, "PROGNAME" VARCHAR(128) NOT NULL
, "COLLID" VARCHAR(128) NOT NULL
, "GROUP_MEMBER" VARCHAR(24) NOT NULL
, "EXPLAIN_TIME" TIMESTAMP NOT NULL
, "SECTNOI" INTEGER NOT NULL WITH DEFAULT
, "VERSION" VARCHAR(122) NOT NULL WITH DEFAULT
, "TBCREATOR" VARCHAR(128) NOT NULL
, "TBNAME" VARCHAR(128) NOT NULL
, "IXCREATOR" VARCHAR(128) NOT NULL
, "IXNAME" VARCHAR(128) NOT NULL
, "COLNAME" VARCHAR(128) NOT NULL
, "NUMCOLUMNS" SMALLINT NOT NULL
, "COLGROUPCOLNO" VARCHAR(254) NOT NULL FOR BIT DATA
, "TYPE" CHAR(1) NOT NULL
, "DBNAME" VARCHAR(24) NOT NULL
, "TSNAME" VARCHAR(24) NOT NULL
, "REASON" CHAR(8) NOT NULL
, "REMARKS" VARCHAR(254) NOT NULL
)
IN $db.${ts}W
$@tbAtt;
$@ if $queryV then $@=¢
-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_VIRTUAL_KEYTARGETS TABLE
CREATE TABLE $cr.DSN_VIRTUAL_KEYTARGETS
( "ENABLE" CHAR(1) NOT NULL
CHECK("ENABLE" IN ('Y','N'))
, "IXNAME" VARCHAR(128) NOT NULL
, "IXSCHEMA" VARCHAR(128) NOT NULL
, "KEYSEQ" SMALLINT NOT NULL WITH DEFAULT
CHECK("KEYSEQ" >= 0)
, "COLNO" SMALLINT NOT NULL WITH DEFAULT
CHECK("COLNO" >= 0)
, "ORDERING" CHAR(1) NOT NULL
CHECK("ORDERING" IN ('A'))
, "TYPESCHEMA" VARCHAR(128) NOT NULL
, "TYPENAME" VARCHAR(128) NOT NULL
, "LENGTH" SMALLINT NOT NULL
CHECK("LENGTH" > 0)
, "LENGTH2" INTEGER NOT NULL
CHECK("LENGTH2" >= 0)
, "SCALE" SMALLINT NOT NULL WITH DEFAULT
CHECK("SCALE" >= 0)
, "NULLS" CHAR(1) NOT NULL
WITH DEFAULT 'N'
CHECK("NULLS" IN ('Y','N'))
, "CCSID" INTEGER NOT NULL
CHECK("CCSID" >= 0)
, "SUBTYPE" CHAR(1) NOT NULL
CHECK("SUBTYPE"
IN ('B','M','S',' '))
, "DERIVED_FROM" VARCHAR(4000) NOT NULL
, "CARDF" FLOAT NOT NULL
WITH DEFAULT -1
CHECK("CARDF" >= 0
OR "CARDF" = -1
OR "CARDF" = -2)
)
IN $db.${ts}X
$@tbAtt;
$!
$!
$/expDdl/
$proc $@=/uQuDdl/
-----------------------------------------------------------------------
-- NAME = DSNTESH aus SDSNSAMP(DSNTESH)
--
-- DESCRIPTIVE NAME = CREATE THE DB2 V11 SAMPLE DSN_USERQUERY_TABLE
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACES FOR THE V11 SAMPLE DSN_USERQUERY_TABLE
CREATE TABLESPACE ${ts}V
IN $db
$@tsAtt
;
--CREATE THE SAMPLE TABLESPACES FOR THE V11 DSN_USERQUERY_TABLE_AUX
CREATE LOB TABLESPACE ${tl}V
IN $db
$@lobAtt
;
-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_USERQUERY_TABLE
-----------------------------------------------------------------------
CREATE TABLE $cr.DSN_USERQUERY_TABLE
( "QUERYNO" INTEGER NOT NULL PRIMARY KEY
, "SCHEMA" VARCHAR(128) NOT NULL DEFAULT ' '
, "HINT_SCOPE" SMALLINT NOT NULL DEFAULT 0
, "QUERY_TEXT" CLOB(2M) NOT NULL
, "QUERY_ROWID" ROWID NOT NULL GENERATED ALWAYS
, "QUERYID" BIGINT NOT NULL DEFAULT 0
, "USERFILTER" CHAR(8) NOT NULL DEFAULT ' '
, "OTHER_OPTIONS" CHAR(128) NOT NULL DEFAULT ' '
, "COLLECTION" VARCHAR(128) NOT NULL DEFAULT ' '
, "PACKAGE" VARCHAR(128) NOT NULL DEFAULT ' '
, "VERSION" VARCHAR(128) NOT NULL DEFAULT ' '
, "REOPT" CHAR(1) NOT NULL DEFAULT ' '
, "STARJOIN" CHAR(1) NOT NULL DEFAULT ' '
, "MAX_PAR_DEGREE" INTEGER NOT NULL DEFAULT -1
, "DEF_CURR_DEGREE" CHAR(3) NOT NULL DEFAULT ' '
, "SJTABLES" INTEGER NOT NULL DEFAULT -1
, "OTHER_PARMS" VARCHAR(128) NOT NULL DEFAULT ' '
$@ if $vers >= 11 then $@=¢
, "SELECTVTY_OVERRIDE" CHAR(1) NOT NULL DEFAULT 'N'
, "ACCESSPATH_HINT" CHAR(1) NOT NULL DEFAULT ' '
, "OPTION_OVERRIDE" CHAR(1) NOT NULL DEFAULT ' '
$!
)
IN $db.${ts}V
;
CREATE AUX TABLE $cr.DSN_USERQUERY_TABLE_AUX
IN $db.${tl}V
STORES $cr.DSN_USERQUERY_TABLE
COLUMN QUERY_TEXT
PART 1
;
-----------------------------------------------------------------------
--CREATE THE PRIMARY KEY INDEX ON THE V11 SAMPLE DSN_USERQUERY_TABLE
-----------------------------------------------------------------------
CREATE UNIQUE INDEX $cr.DSN_USERQUERY_TABLE_IX1
ON $cr.DSN_USERQUERY_TABLE
( "QUERYNO" ASC
)
$@ixAtt
;
-----------------------------------------------------------------------
--CREATE THE INDEX ON THE V11 SAMPLE DSN_USERQUERY_TABLE AUXILIARY TBL
-----------------------------------------------------------------------
CREATE INDEX $cr.DSN_USERQUERY_TABLE_AUX_IX
ON $cr.DSN_USERQUERY_TABLE_AUX
$@%¢ixAtt l $!
;
$/uQuDdl/
$proc $@/ddlPlus/
if $f2P & ($fun == 'u' | $fun == 'v') then $@¢
if symbol('m.iTb.F2PLAN_TABLE') == 'VAR' then $@¢
tx = m.iTb.F2PLAN_TABLE
if m.iTb.tx.colCount <> 6 | m.iTb.tx.col <> 'IDNO' then $@¢
if $fun == 'v' then $@¢
say 'warning f2Plan_table bad format buf fun = v'
$! else $@¢
if m.iTb.tx.nTables = 1 then
d = 'drop tablespace' m.iTb.tx.db'.'m.iTb.tx.ts
else
d = 'drop table' $cr'.F2PLAN_TABLE'
$$- d'; commit;'
drop m.iTb.F2PLAN_TABLE
$!
$!
$!
$!
if $f2P & ($fun == 'c' | $fun == 'r' ,
| ($fun = 'u' & symbol('m.iTb.F2PLAN_TABLE')<>'VAR')) then $@=¢
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACES FOR fileAid F2PLAN_TABLE
CREATE TABLESPACE ${ts}0
IN $db
$@tsAtt
;
----fileAid plan table -----------------------------------------
CREATE TABLE $cr.F2PLAN_TABLE
( TIMESTAMP CHAR(16) FOR SBCS DATA NOT NULL
WITH DEFAULT
, STMTNO INTEGER NOT NULL WITH DEFAULT
, SEQNO INTEGER NOT NULL WITH DEFAULT
, TEXT VARCHAR(3800) FOR SBCS DATA NOT NULL
WITH DEFAULT
, REMARKS CHAR(64) FOR Bit DATA NOT NULL
WITH DEFAULT
, IDNO Integer not null with default
)
IN ${db}.${ts}0
$@tbAtt
;
$!
$@/planIx/
$@%¢ixKeys keys drop PLAN_TABLE_idx1 $!
if $keys == 'QUERYNO<EXPLAIN_TIME<' then $@¢
$! else if $fun == 'v' then $@¢
say 'warning fun=v but index PLAN_TABLE_idx1:' $keys
$! else $@=¢
$=doReo=- $doReo | ($defer == 'YES')
$drop
CREATE INDEX $cr.PLAN_TABLE_idx1
ON $cr.PLAN_Table
( "QUERYNO"
,explain_time
)
CLUSTER
$@ixAtt
;
$!
$@%¢ixKeys keys drop PLAN_TABLE_PROG_IX $!
if $keys == 'PROGNAME<COLLID<VERSION<EXPLAIN_TIME<QUERYNO<' ,
then $@¢
$! else if $fun == 'v' then $@¢
say 'warning fun=v but index PLAN_TABLE_PROG_IX:' $keys
$! else $@=¢
$=doReo=- $doReo | ($defer == 'YES')
$drop
CREATE INDEX $cr.PLAN_TABLE_PROG_ix
ON $cr.PLAN_Table
(PROGNAME ASC,
COLLID ASC,
VERSION ASC,
explain_time ASC,
QUERYNO ASC)
$@ixAtt
;
$!
$/planIx/
$/ddlPlus/
$proc $@=/creViews/
--- versionen, compiles und explains eines packages -------------------
-- does not work if plan_table ebcdic ||
create view $cr.plan_view0 as
with e as (
select p.collid
, p.name prog
, p.version
, count(e.collid) expCnt
, e.explain_time
, case when e.explain_time is null then 'p'
when e.explain_time > min(p.bindTime) then '>'
when e.explain_time = min(p.bindTime) then '='
else '<' end c
, min(p.pcTimeStamp) pcTimestamp
, min(p.lastUsed) lastUsed
, min(p.conToken) conToken
, sum(case when e.hint_Used = '' or e.hint_Used is null
then 0 else 1 end) hiUse
, sum(case when e.optHint = '' or e.optHint is null
then 0 else 1 end) optHi
, max(max(e.optHint, hint_Used)) hint
from sysIbm.sysPackage p
left join $cr.plan_table e
on e.collid = p.collid and e.progName = p.name
and e.version = p.version
where p.location = ''
group by p.collid, p.name, p.version, e.explain_time
union all select collid
, progName prog
, version
, count(e.collid) expCnt
, e.explain_time
, 'e' c
, cast(null as timestamp) pcTimestamp
, cast(null as date) lastUsed
, cast(null as char(8)) conToken
, sum(case when hint_Used = '' then 0 else 1 end) hiUse
, sum(case when e.optHint = '' then 0 else 1 end) optHi
, max(max(e.optHint, hint_Used)) hint
from $cr.plan_table e
where not exists (select 1 from sysibm.sysPackage p
where e.collid = p.collid and e.progName = p.name
and e.version = p.version and p.location = '' )
group by e.collid, e.progName, e.version, e.explain_time
)
select substr(collid, 1, 6) "collid"
, substr(prog, 1, 8) "prog"
, substr(version, 1, 21) "version"
, smallint(expCnt) "expCnt"
, explain_time, c, pcTimestamp, lastUsed
, smallint(hiUse) "hiUse"
, smallint(optHi) "optHi"
, substr(hint, 1, 8) "hint"
, hex(conToken) conToken, collid, prog, version
, coalesce(pcTimestamp, explain_time) pcEx
from e
;
CREATE VIEW $cr.PLAN_VIEW1 AS
select substr(right(' ' || strip(char(queryNo)) , 6)
|| right(' ' || strip(char(qBlockNo)) , 2)
|| right(' ' || strip(char(planNo)) , 2)
|| right(' ' || strip(char(mixOpSeq)), 1)
,1 ,11) "Queryn B PM",
/* CASE WHEN ACCESSTYPE = 'R ' THEN ' '
when PRIMARY_ACCESSTYPE = 'D' THEN ' '
ELSE SUBSTR(ACCESSNAME, 1, 12) END AS "INDEX", */
SUBSTR(ACCESSNAME, 1, 12) "index",
CASE ACCESSTYPE when ' ' THEN ' '
when 'E ' THEN 'dirRow'
WHEN 'H ' THEN 'hash'
WHEN 'I ' THEN 'ixScan'
WHEN 'IN' THEN 'ixInMe'
WHEN 'I1' THEN 'ixOne '
WHEN 'N ' THEN 'ixScIn'
WHEN 'NR' THEN 'raLiAc'
WHEN 'M ' THEN 'ixMult'
WHEN 'MX' THEN 'ixMSca'
WHEN 'MI' THEN 'ixMInt'
WHEN 'MU' THEN 'ixMUni'
WHEN 'R ' THEN 'tsScan'
WHEN 'RW' THEN 'woScan'
WHEN 'T ' THEN 'ixSPRS'
WHEN 'V ' THEN 'insBuf'
ELSE '??' || primary_accessType || '??'
end
|| CASE PRIMARY_ACCESSTYPE when ' ' then ''
when 'D' then ' dirR'
when 'P' then ' part'
when 'T' then ' spar'
else ' p??'||primary_accessType
END AS ACCESS,
substr(CASE WHEN METHOD = 3 THEN ''
WHEN ACCESSTYPE = 'R ' THEN ''
ELSE right(' ' || MATCHCOLS, 2) || indexOnly
END, 1, 3) AS "mcO",
SUBSTR(TNAME, 1, 12) AS "TABLE",
substr(CASE WHEN A.TABLE_TYPE IS NULL THEN ' '
WHEN A.TABLE_TYPE = 'B' THEN 'buf'
WHEN A.TABLE_TYPE = 'C' THEN 'cte'
WHEN A.TABLE_TYPE = 'F' THEN 'fun'
WHEN A.TABLE_TYPE = 'I' THEN 'inL'
WHEN A.TABLE_TYPE = 'M' THEN 'mqt'
WHEN A.TABLE_TYPE = 'Q' THEN 'vqt'
WHEN A.TABLE_TYPE = 'R' THEN 'rte'
WHEN A.TABLE_TYPE = 'S' THEN 'sub'
WHEN A.TABLE_TYPE = 'T' THEN 'tb '
WHEN A.TABLE_TYPE = 'W' THEN 'wrk'
ELSE A.TABLE_TYPE || '??' END
|| right(' ' || tabNo, 3)
|| ' ' || coalesce(CORRELATION_NAME, '')
, 1, 10) as "tTy no cor",
substr(
CASE JOIN_TYPE WHEN '' THEN ''
WHEN 'F' THEN 'full '
WHEN 'L' THEN 'left '
WHEN 'S' THEN 'star '
ELSE '??' || join_type || ' ' END
|| CASE METHOD when 0 THEN ''
WHEN 1 THEN 'nlJoin'
when 2 THEN 'smJoin'
WHEN 3 THEN 'sort '
WHEN 4 THEN 'hyJoin'
ELSE '' || method END, 1, 8) AS "join/met",
SORTC_UNIQ || SORTC_JOIN || SORTC_ORDERBY || SORTC_GROUPBY
|| ' ' ||
SORTN_UNIQ || SORTN_JOIN || SORTN_ORDERBY || SORTN_GROUPBY
"ujog>ujog",
QBLOCK_TYPE AS "TYPE",
TSLOCKMODE AS LCK,
CASE PARALLELISM_MODE WHEN 'C' THEN 'CPU'
WHEN 'I' THEN 'I-O'
WHEN 'X' THEN 'SYSPLEX'
ELSE NULL END AS PARAL,
STRIP(DIGITS(ACCESS_DEGREE), LEADING, '0') || ' '
|| STRIP(DIGITS(JOIN_DEGREE), LEADING, '0') AS AJ_DEG,
STRIP(DIGITS(ACCESS_PGROUP_ID), LEADING, '0')|| ' '
|| STRIP(DIGITS(JOIN_PGROUP_ID), LEADING, '0') PG_DEG,
STRIP(DIGITS(MERGE_JOIN_COLS), LEADING, '0') AS MC,
PREFETCH AS PRE,
page_range as pgRa,
substr(opthint, 1, 10) optHint,
substr(hint_used, 1, 10) hint_used,
-- full length names
TNAME, ACCESSNAME, accessType, method,
-- package identifikation
collid, progName, applName, version, explain_time,
-- query node identificaten
queryno, qBlockNo, planno, mixopSeq, timestamp,
PARENT_QBLOCKNO
FROM $cr.PLAN_TABLE A
;
------------------------------------------------------------------------
CREATE VIEW $cr.PLAN_VIEW2 AS
SELECT CASE WHEN METHOD = 3 THEN ' '
ELSE substr(right(' '
|| strip(CHAR(S.PROCMS)),9), 1, 9) END AS MSEC,
a.*,
S.COST_CATEGORY,
S.PROCMS, S.PROCSU, S.REASON
FROM $cr.PLAN_VIEW1 A
LEFT OUTER JOIN
$cr.DSN_STATEMNT_TABLE S
ON S."COLLID" = A."COLLID"
AND S.APPLNAME = A.APPLNAME
AND S.PROGNAME = A.PROGNAME
AND S.EXPLAIN_TIME = A.explain_time
AND S.QUERYNO = A.QUERYNO
;
------------------------------------------------------------------------
$@creViewsFun
-- use of view1 instead of view2 directly
-- because otherwise optimizer makes TS Scan ||||
CREATE VIEW $cr.PLAN_VIEW5 AS
with l as
( select collid, progName, max(r.explain_time) explain_time
FROM $cr.PLAN_TABLE r
group by collid, progName
)
select CASE WHEN METHOD = 3 THEN ' '
ELSE substr(right(' '
|| strip(CHAR(S.PROCMS)),9), 1, 9) END AS MSEC
, a.*
, S.COST_CATEGORY,
S.PROCMS, S.PROCSU, S.REASON
FROM l
join $cr.PLAN_VIEW1 a
on A.collid = l.collid
AND A.PROGNAME = l.PROGNAME
AND A.explain_time = l.explain_time
LEFT OUTER JOIN
$cr.DSN_STATEMNT_TABLE S
ON S."COLLID" = A."COLLID"
AND S.APPLNAME = A.APPLNAME
AND S.PROGNAME = A.PROGNAME
AND S.EXPLAIN_TIME = A.explain_time
AND S.QUERYNO = A.QUERYNO
;
------------ Ende user Views ----- cmnViews = $cmnViews----------------
$@ if $cmnViews then $@=/cmnViews/
$@ call err 'cmnViews are deImplemented'
------------ diese views braucht es nur für changeman -----------------
------------------------------------------------------------------------
CREATE VIEW $cr.PLAN_VIEW3
( QN,QB,AP,PG, PN,ME,CR,TN,TO, AT,JT,MC,AN,IO, SP,SU,SJ, SO, SG,ZP,ZU,
ZJ, ZO,ZG,TL,TS,PR,EV, CO,VR,MO, AD,AI, JD,JI, PA,MJ,CN, PF,GM,WO,QT,
BT,RM,SD, OH,HU,PAC )
AS SELECT QUERYNO, QBLOCKNO, APPLNAME, PROGNAME, PLANNO, METHOD,
CREATOR, TNAME, TABNO, ACCESSTYPE, JOIN_TYPE, MATCHCOLS, ACCESSNAME,
INDEXONLY, SORTN_PGROUP_ID, SORTN_UNIQ, SORTN_JOIN, SORTN_ORDERBY,
SORTN_GROUPBY, SORTC_PGROUP_ID, SORTC_UNIQ, SORTC_JOIN, SORTC_ORDERBY,
SORTC_GROUPBY, TSLOCKMODE, TIMESTAMP, PREFETCH, COLUMN_FN_EVAL, COLLID,
VERSION, MIXOPSEQ, ACCESS_DEGREE, ACCESS_PGROUP_ID, JOIN_DEGREE,
JOIN_PGROUP_ID, PARALLELISM_MODE, MERGE_JOIN_COLS, CORRELATION_NAME,
PAGE_RANGE, GROUP_MEMBER, WHEN_OPTIMIZE, QBLOCK_TYPE, explain_time,
REMARKS, IBM_SERVICE_DATA, OPTHINT, HINT_USED, PRIMARY_ACCESSTYPE
FROM $cr.PLAN_TABLE
;
------------------------------------------------------------------------
CREATE VIEW $cr.PLAN_VIEW6 AS
SELECT SUBSTR(A.PROGNAME, 1, 8) AS PROGNAME,
SUBSTR(DIGITS(A."QUERYNO"), 5) AS STMT,
CASE WHEN A.METHOD = 3
THEN ' '
-- ELSE SUBSTR(CHAR(S.PROCSU), 1, 7) END AS SUNITS,
ELSE '1 '
END AS SUNITS,
CASE WHEN A.PRIMARY_ACCESSTYPE = 'D' THEN 'DIR.ROW'
WHEN A.ACCESSTYPE = 'I ' THEN 'IX-SCAN'
WHEN A.ACCESSTYPE = 'I1' THEN 'IX-ONEF'
WHEN A.ACCESSTYPE = 'M ' THEN 'MULT-IX'
WHEN A.ACCESSTYPE = 'MX' THEN 'IX-SC.X'
WHEN A.ACCESSTYPE = 'MI' THEN 'IX-SC.I'
WHEN A.ACCESSTYPE = 'MU' THEN 'IX-SC.U'
WHEN A.ACCESSTYPE = 'N ' THEN 'IX-INLI'
WHEN A.ACCESSTYPE = 'R ' THEN 'TS-SCAN'
WHEN A.ACCESSTYPE = 'RW' THEN 'WF-SCAN'
WHEN A.ACCESSTYPE = 'T ' THEN 'IX-SPRS'
WHEN A.ACCESSTYPE = 'V ' THEN 'BUFFERS'
WHEN A.ACCESSTYPE = ' ' THEN ' '
ELSE ' ' END AS ACCESS,
CASE WHEN A.PRIMARY_ACCESSTYPE = 'D' THEN ' '
WHEN A.ACCESSTYPE = 'R ' THEN ' '
ELSE SUBSTR(A.ACCESSNAME, 1, 12) END AS "INDEX",
CASE WHEN A.TNAME = ' ' THEN ' '
ELSE SUBSTR(A.TNAME, 1, 12) END AS "TABLE",
SUBSTR(A.CORRELATION_NAME, 1, 5) AS CORR,
CASE WHEN A.METHOD = 3 THEN ' '
WHEN A.ACCESSTYPE = 'R ' THEN ' '
WHEN A.QBLOCK_TYPE = 'INSERT' THEN ' '
ELSE SUBSTR(DIGITS(A.MATCHCOLS), 5, 1) END AS MC,
CASE WHEN A.INDEXONLY = 'Y' THEN 'XO'
ELSE ' ' END AS XO,
CASE A.METHOD
WHEN 0 THEN '0 '
WHEN 1 THEN 'NLJOIN'
WHEN 2 THEN 'SMJOIN'
WHEN 3 THEN 'SORT '
WHEN 4 THEN 'HYJOIN'
ELSE CHAR(A.METHOD) END AS METHOD,
CASE A.JOIN_TYPE
WHEN 'F' THEN 'FULL '
WHEN 'L' THEN 'LEFT '
WHEN 'S' THEN 'STAR '
ELSE ' ' END AS "JOIN",
A.SORTN_UNIQ CONCAT A.SORTN_JOIN CONCAT A.SORTN_ORDERBY
CONCAT A.SORTN_GROUPBY AS UJOG,
A.SORTC_UNIQ CONCAT A.SORTC_JOIN CONCAT A.SORTC_ORDERBY
CONCAT A.SORTC_GROUPBY AS UJOC,
A.QBLOCK_TYPE AS QBTYPE,
CASE WHEN A.TABLE_TYPE IS NULL THEN ' '
WHEN A.TABLE_TYPE = 'B' THEN 'BUFFER'
WHEN A.TABLE_TYPE = 'C' THEN 'CTE '
WHEN A.TABLE_TYPE = 'F' THEN 'TBLFNC'
WHEN A.TABLE_TYPE = 'M' THEN 'MQT '
WHEN A.TABLE_TYPE = 'Q' THEN 'VMQT '
WHEN A.TABLE_TYPE = 'R' THEN 'RC#CTE'
WHEN A.TABLE_TYPE = 'T' THEN 'TABLE/'
WHEN A.TABLE_TYPE = 'W' THEN 'WRKFIL'
ELSE A.TABLE_TYPE END AS TTYP,
A.TSLOCKMODE AS LCK,
CASE A.PARALLELISM_MODE
WHEN 'C' THEN 'CPU '
WHEN 'I' THEN 'I-O '
WHEN 'X' THEN 'PLEX'
ELSE ' ' END AS PARAL,
STRIP(DIGITS(A.ACCESS_DEGREE), LEADING, '0') CONCAT ' '
CONCAT STRIP(DIGITS(A.JOIN_DEGREE), LEADING, '0')
AS AJ_DEG,
STRIP(DIGITS(A.ACCESS_PGROUP_ID), LEADING, '0') CONCAT ' '
CONCAT STRIP(DIGITS(A.JOIN_PGROUP_ID), LEADING, '0')
AS PG_DEG,
STRIP(DIGITS(A.MERGE_JOIN_COLS), LEADING, '0') AS MJC,
CASE A.PREFETCH
WHEN 'S' THEN 'SEQ '
WHEN 'L' THEN 'LIST'
WHEN 'D' THEN 'DYN '
ELSE ' ' END AS PREFETCH,
STRIP(DIGITS(A."QUERYNO"), LEADING, '0') AS QNO,
SUBSTR(DIGITS(A.QBLOCKNO), 4, 2) CONCAT ' '
CONCAT SUBSTR(DIGITS(A.PLANNO), 4, 2)
AS BL_PL,
A.PARENT_QBLOCKNO,
A.QBLOCKNO, A.PLANNO, A.TNAME, A.ACCESSNAME, A.OPTHINT,
A.HINT_USED, A.APPLNAME, A."COLLID", A.VERSION,
A.TIMESTAMP, A.explain_time, A."QUERYNO", A.MIXOPSEQ, A.TABNO,
A.CORRELATION_NAME, A.COLUMN_FN_EVAL, A.SORTC_PGROUP_ID,
A.SORTN_PGROUP_ID, A.PAGE_RANGE, A.WHEN_OPTIMIZE,
A.TABLE_ENCODE, A.TABLE_SCCSID, A.ROUTINE_ID, A.CTEREF,
A.STMTTOKEN,
-- S.COST_CATEGORY, S.PROCMS, S.PROCSU, S.REASON
'A' AS COST_CATEGORY, 1 AS PROCMS, 1 AS PROCSU, ' ' AS REASON
FROM $cr.PLAN_TABLE A
-- JOIN
-- (SELECT B.PROGNAME AS BPROGNAME,
-- B.COLLID AS BCOLLID,
-- MAX(B.explain_time) Bexplain_time
-- FROM $cr.PLAN_TABLE B
-- GROUP BY B.PROGNAME, B.COLLID) AS N1
-- ON A.PROGNAME = N1.BPROGNAME
-- AND A.explain_time = N1.Bexplain_time
-- AND A.COLLID = N1.BCOLLID
-- LEFT OUTER JOIN $cr.DSN_STATEMNT_TABLE S
-- ON S."COLLID" = A."COLLID"
-- AND S.APPLNAME = A.APPLNAME
-- AND S.PROGNAME = A.PROGNAME
-- AND S."QUERYNO" = A."QUERYNO"
-- AND S.EXPLAIN_TIME = A.explain_time
;
------------------------------------------------------------------------
CREATE VIEW $cr.PLAN_VIEW6_CMN AS
SELECT SUBSTR(A.PROGNAME, 1, 8) AS PROGNAME,
SUBSTR(DIGITS(A."QUERYNO"), 5) AS STMT,
CASE WHEN A.METHOD = 3
THEN ' '
-- ELSE SUBSTR(CHAR(S.PROCSU), 1, 7) END AS SUNITS,
ELSE '1 '
END AS SUNITS,
CASE WHEN A.PRIMARY_ACCESSTYPE = 'D' THEN 'DIR.ROW'
WHEN A.ACCESSTYPE = 'I ' THEN 'IX-SCAN'
WHEN A.ACCESSTYPE = 'I1' THEN 'IX-ONEF'
WHEN A.ACCESSTYPE = 'M ' THEN 'MULT-IX'
WHEN A.ACCESSTYPE = 'MX' THEN 'IX-SC.X'
WHEN A.ACCESSTYPE = 'MI' THEN 'IX-SC.I'
WHEN A.ACCESSTYPE = 'MU' THEN 'IX-SC.U'
WHEN A.ACCESSTYPE = 'N ' THEN 'IX-INLI'
WHEN A.ACCESSTYPE = 'R ' THEN 'TS-SCAN'
WHEN A.ACCESSTYPE = 'RW' THEN 'WF-SCAN'
WHEN A.ACCESSTYPE = 'T ' THEN 'IX-SPRS'
WHEN A.ACCESSTYPE = 'V ' THEN 'BUFFERS'
WHEN A.ACCESSTYPE = ' ' THEN ' '
ELSE ' ' END AS ACCESS,
CASE WHEN A.PRIMARY_ACCESSTYPE = 'D' THEN ' '
WHEN A.ACCESSTYPE = 'R ' THEN ' '
ELSE SUBSTR(A.ACCESSNAME, 1, 12) END AS "INDEX",
CASE WHEN A.TNAME = ' ' THEN ' '
ELSE SUBSTR(A.TNAME, 1, 12) END AS "TABLE",
SUBSTR(A.CORRELATION_NAME, 1, 5) AS CORR,
CASE WHEN A.METHOD = 3 THEN ' '
WHEN A.ACCESSTYPE = 'R ' THEN ' '
WHEN A.QBLOCK_TYPE = 'INSERT' THEN ' '
ELSE SUBSTR(DIGITS(A.MATCHCOLS), 5, 1) END AS MC,
CASE WHEN A.INDEXONLY = 'Y' THEN 'XO'
ELSE ' ' END AS XO,
CASE A.METHOD
WHEN 0 THEN '0 '
WHEN 1 THEN 'NLJOIN'
WHEN 2 THEN 'SMJOIN'
WHEN 3 THEN 'SORT '
WHEN 4 THEN 'HYJOIN'
ELSE CHAR(A.METHOD) END AS METHOD,
CASE A.JOIN_TYPE
WHEN 'F' THEN 'FULL '
WHEN 'L' THEN 'LEFT '
WHEN 'S' THEN 'STAR '
ELSE ' ' END AS "JOIN",
A.SORTN_UNIQ CONCAT A.SORTN_JOIN CONCAT A.SORTN_ORDERBY
CONCAT A.SORTN_GROUPBY AS UJOG,
A.SORTC_UNIQ CONCAT A.SORTC_JOIN CONCAT A.SORTC_ORDERBY
CONCAT A.SORTC_GROUPBY AS UJOC,
A.QBLOCK_TYPE AS QBTYPE,
CASE WHEN A.TABLE_TYPE IS NULL THEN ' '
WHEN A.TABLE_TYPE = 'B' THEN 'BUFFER'
WHEN A.TABLE_TYPE = 'C' THEN 'CTE '
WHEN A.TABLE_TYPE = 'F' THEN 'TBLFNC'
WHEN A.TABLE_TYPE = 'M' THEN 'MQT '
WHEN A.TABLE_TYPE = 'Q' THEN 'VMQT '
WHEN A.TABLE_TYPE = 'R' THEN 'RC#CTE'
WHEN A.TABLE_TYPE = 'T' THEN 'TABLE/'
WHEN A.TABLE_TYPE = 'W' THEN 'WRKFIL'
ELSE A.TABLE_TYPE END AS TTYP,
A.TSLOCKMODE AS LCK,
CASE A.PARALLELISM_MODE
WHEN 'C' THEN 'CPU '
WHEN 'I' THEN 'I-O '
WHEN 'X' THEN 'PLEX'
ELSE ' ' END AS PARAL,
STRIP(DIGITS(A.ACCESS_DEGREE), LEADING, '0') CONCAT ' '
CONCAT STRIP(DIGITS(A.JOIN_DEGREE), LEADING, '0')
AS AJ_DEG,
STRIP(DIGITS(A.ACCESS_PGROUP_ID), LEADING, '0') CONCAT ' '
CONCAT STRIP(DIGITS(A.JOIN_PGROUP_ID), LEADING, '0')
AS PG_DEG,
STRIP(DIGITS(A.MERGE_JOIN_COLS), LEADING, '0') AS MJC,
CASE A.PREFETCH
WHEN 'S' THEN 'SEQ '
WHEN 'L' THEN 'LIST'
WHEN 'D' THEN 'DYN '
ELSE ' ' END AS PREFETCH,
STRIP(DIGITS(A."QUERYNO"), LEADING, '0') AS QNO,
SUBSTR(DIGITS(A.QBLOCKNO), 4, 2) CONCAT ' '
CONCAT SUBSTR(DIGITS(A.PLANNO), 4, 2)
AS BL_PL,
A.PARENT_QBLOCKNO,
A.QBLOCKNO, A.PLANNO, A.TNAME, A.ACCESSNAME, A.OPTHINT,
A.HINT_USED, A.APPLNAME, A."COLLID", A.VERSION,
A.TIMESTAMP, A.explain_time, A."QUERYNO", A.MIXOPSEQ, A.TABNO,
A.CORRELATION_NAME, A.COLUMN_FN_EVAL, A.SORTC_PGROUP_ID,
A.SORTN_PGROUP_ID, A.PAGE_RANGE, A.WHEN_OPTIMIZE,
A.TABLE_ENCODE, A.TABLE_SCCSID, A.ROUTINE_ID, A.CTEREF,
A.STMTTOKEN,
-- S.COST_CATEGORY, S.PROCMS, S.PROCSU, S.REASON
'A' AS COST_CATEGORY, 1 AS PROCMS, 1 AS PROCSU, ' ' AS REASON
FROM $cr.PLAN_TABLE A
-- JOIN
-- (SELECT B.PROGNAME AS BPROGNAME,
-- B.COLLID AS BCOLLID,
-- MAX(B.explain_time) Bexplain_time
-- FROM $cr.PLAN_TABLE B
-- GROUP BY B.PROGNAME, B.COLLID) AS N1
-- ON A.PROGNAME = N1.BPROGNAME
-- AND A.explain_time = N1.Bexplain_time
-- AND A.COLLID = N1.BCOLLID
-- LEFT OUTER JOIN $cr.DSN_STATEMNT_TABLE S
-- ON S."COLLID" = A."COLLID"
-- AND S.APPLNAME = A.APPLNAME
-- AND S.PROGNAME = A.PROGNAME
-- AND S."QUERYNO" = A."QUERYNO"
-- AND S.EXPLAIN_TIME = A.explain_time
;
------------------------------------------------------------------------
CREATE VIEW $cr.PLAN_VIEW7 AS
SELECT (
SUBSTR(DIGITS(A."QUERYNO"),5) || ' ' || -- STMT
QBLOCK_TYPE || ' ' || -- TYPE
CASE WHEN METHOD = 3 THEN ' '
ELSE CHAR(S.PROCMS) END || -- MSEC
CASE WHEN PRIMARY_ACCESSTYPE = 'D' THEN 'DIR.ROW'
WHEN ACCESSTYPE = 'I ' THEN 'IX-SCAN'
WHEN ACCESSTYPE = 'I1' THEN 'IX-ONE '
WHEN ACCESSTYPE = 'R ' THEN 'TS-SCAN'
WHEN ACCESSTYPE = 'N ' THEN 'IX-ACC '
WHEN ACCESSTYPE = 'M ' THEN 'IX-SC.M'
WHEN ACCESSTYPE = 'MX' THEN 'IX-SC.X'
WHEN ACCESSTYPE = 'MI' THEN 'IX-SC.I'
WHEN ACCESSTYPE = 'MU' THEN 'IX-SC.U'
WHEN ACCESSTYPE = 'T' THEN 'IX-SPRS'
WHEN ACCESSTYPE = ' ' THEN ' '
ELSE NULL END || ' ' || -- ACCESS
CASE WHEN ACCESSTYPE = 'R' THEN ' '
WHEN PRIMARY_ACCESSTYPE = 'D' THEN ' '
ELSE SUBSTR(ACCESSNAME,1,12) END || ' ' ||
-- "INDEX"
SUBSTR(TNAME,1,18) || ' ' || -- TABLE
CASE WHEN TABLE_TYPE IS NULL THEN ' '
ELSE TABLE_TYPE END || ' ' || -- TTYP
CASE WHEN METHOD = 3 THEN ' '
WHEN ACCESSTYPE = 'R ' THEN ' '
ELSE SUBSTR(DIGITS(MATCHCOLS), 4, 2)
END || ' ' || -- MC_O
CASE WHEN INDEXONLY='Y' THEN 'Y '
ELSE ' '
END || ' ' || -- IXO
CASE WHEN OPTHINT<>' ' THEN '*'
ELSE ' '
END || -- HINT
CASE WHEN HINT_USED<>' ' THEN '*'
ELSE ' '
END -- HINT_USED
) AS TEXT,
CASE METHOD
WHEN 0 THEN ' '
WHEN 1 THEN 'NLJOIN'
WHEN 2 THEN 'SMJOIN'
WHEN 3 THEN 'SORT '
WHEN 4 THEN 'HYJOIN'
ELSE NULL
END AS METHOD,
CASE JOIN_TYPE WHEN 'F' THEN 'FULL ' WHEN 'L' THEN 'LEFT '
WHEN 'S' THEN 'STAR ' ELSE ' ' END AS "JOIN",
SORTN_UNIQ CONCAT SORTN_JOIN CONCAT SORTN_ORDERBY CONCAT
SORTN_GROUPBY AS UJOG,
SORTC_UNIQ CONCAT SORTC_JOIN CONCAT SORTC_ORDERBY CONCAT
SORTC_GROUPBY AS UJOC, TSLOCKMODE AS LCK,
SUBSTR(CORRELATION_NAME, 1, 4) AS CORR,
CASE PARALLELISM_MODE
WHEN 'C' THEN 'CPU'
WHEN 'I' THEN 'I-O'
WHEN 'X' THEN 'SYSPLEX'
ELSE NULL
END AS PARAL,
STRIP(DIGITS(ACCESS_DEGREE), LEADING, '0') CONCAT ' '
CONCAT STRIP(DIGITS(JOIN_DEGREE), LEADING, '0') AS AJ_DEG,
STRIP(DIGITS(ACCESS_PGROUP_ID), LEADING, '0') CONCAT ' '
CONCAT STRIP(DIGITS(JOIN_PGROUP_ID), LEADING, '0') AS
PG_DEG,
STRIP(DIGITS(MERGE_JOIN_COLS), LEADING, '0') AS MC,
PREFETCH AS PRE,
STRIP(DIGITS(A."QUERYNO"), LEADING, '0') AS QNO,
SUBSTR(DIGITS(QBLOCKNO), 4, 2) CONCAT ' ' CONCAT SUBSTR(
DIGITS(PLANNO), 4, 2) AS BL_PL,
A.PARENT_QBLOCKNO,
A.QBLOCKNO,
A.PLANNO,
A.TNAME,
A.ACCESSNAME,
A.OPTHINT,
A.HINT_USED,
A.APPLNAME,
A."COLLID",
A.PROGNAME,
A.VERSION,
A.explain_time,
A.TIMESTAMP,
A."QUERYNO",
A.MIXOPSEQ,
S.COST_CATEGORY,
S.PROCMS,
S.PROCSU,
S.REASON
FROM $cr.PLAN_TABLE A
JOIN $cr.DSN_STATEMNT_TABLE S
ON S."COLLID" = A."COLLID"
AND S.APPLNAME = A.APPLNAME
AND S.PROGNAME = A.PROGNAME
AND S."QUERYNO" = A."QUERYNO"
AND S.EXPLAIN_TIME = A.explain_time
;
------------------------------------------------------------------------
CREATE VIEW $cr.PLAN_VIEW9 AS
SELECT A.PROGNAME, A.VERSION, S.PROCMS
FROM $cr.PLAN_TABLE A
LEFT OUTER JOIN $cr.DSN_STATEMNT_TABLE S
ON S."COLLID" = A."COLLID"
AND S.APPLNAME = A.APPLNAME
AND S.PROGNAME = A.PROGNAME
AND S.QUERYNO = A.QUERYNO
AND S.EXPLAIN_TIME = A.explain_time
;
$/cmnViews/
$/creViews/
$proc $@=/creViewsFun/
CREATE VIEW $cr.PLAN_VIEW2Det AS
SELECT oa1p.fqzFmtE7(dmRows) dmRows,
oa1p.fqzFmtE7(rdsRow) rdsRow,
oa1p.fqzFmtE7(snRows) snRows,
oa1p.fqzFmtE7(compCost) compCost,
oa1p.fqzFmtE7(openCost) openCost,
a.*
FROM $cr.PLAN_VIEW1 A
LEFT OUTER JOIN
$cr.DSN_DetCost_TABLE d
on --d.APPLNAME = A.APPLNAME ??? ist manchmal x'0000'
d.PROGNAME = A.PROGNAME
AND d.EXPLAIN_TIME = A.explain_time
AND d.QueryNO = A.QueryNO
AND d.QBlockNO = A.QBlockNO
AND d.PlanNo = A.PlanNo
; $*(
CREATE VIEW $cr.plan_ViewPred as old old
select a."Queryn B PM" "Queryn_B_PM"
, smallint(p.PREDNO) predno
, f.stage
-- , oa1p.fqzFmte7(p.filter_factor) ff
-- optimizer otherwise choose bad path|||
, real(p.FILTER_FACTOR) FILTER_FACTOR
, p.type prTy
, p.boolean_term || ' ' || p.negation "BoN"
, p.text
, p.LEFT_HAND_SIDE
, p.LEFT_HAND_PNO
, p.LHS_TABNO
, p.LHS_QBNO
, p.RIGHT_HAND_SIDE
, p.RIGHT_HAND_PNO
, p.RHS_TABNO
, p.RHS_QBNO
, p.BOOLEAN_TERM
, p.SEARCHARG
, p.JOIN
, p.AFTER_JOIN
, p.ADDED_PRED
, p.REDUNDANT_PRED
, p.DIRECT_ACCESS
, p.KEYFIELD
, p.CATEGORY
, p.CATEGORY_B
, p.PRED_ENCODE
, p.PRED_CCSID
, p.PRED_MCCSID
, p.MARKER
, p.PARENT_PNO
, p.NEGATION
, p.LITERALS
, p.CLAUSE
, f.reEval
, f.ORDERNO
, a.*
from $cr.plan_view1 a
left join $cr.dsn_filter_Table f
on f.applName = a.applName
and f.collid = a.collid
and f.progName = a.progName
and f.explain_time = a.explain_time
and f.QUERYNO = a.QUERYNO
and f.QBLOCKNO = a.QBLOCKNO
and f.PLANNO = a.PLANNO
and f.mixOpSeqNo = a.mixOpSeq
and a.accessType not in ('MX', 'MI', 'MU')
left join $cr.dsn_predicat_table p
on --p.applName = a.applName ??? ist manchmal x'0000'
p.progName = a.progName
and p.explain_time = a.explain_time
and p.queryNo = a.queryNo
and p.qBlockNo = a.qBlockNo
and p.predNo = f.predNo
;
-- sortierung --------------------------------------
-- order by applName, collid, progName, explain_time,
-- queryNo, qBlockNo, planno, mixOpSeq,
-- stage, predNo
$*)
CREATE VIEW $cr.plan_ViewPred as
select substr(right(' ' || strip(char(p.queryNo)) , 6)
|| right(' ' || strip(char(p.qBlockNo)) , 2)
|| right(' ' || strip(value(char(f.planNo), '')) , 2)
|| right(' ' || strip(value(char(f.mixOpSeqNo),'')),1)
,1 ,11) "Queryn B PM"
, smallint(p.PREDNO) prediN
, smallint(f.orderNO) orderN
, f.stage
, oa1p.fqzFmte7(p.filter_factor) ff
, p.type prTy
, p.boolean_term || ' ' || p.negation "BoN"
, p.text
, p.LEFT_HAND_SIDE
, p.LEFT_HAND_PNO
, p.LHS_TABNO
, p.LHS_QBNO
, p.RIGHT_HAND_SIDE
, p.RIGHT_HAND_PNO
, p.RHS_TABNO
, p.RHS_QBNO
, p.BOOLEAN_TERM
, p.SEARCHARG
, p.JOIN
, p.AFTER_JOIN
, p.ADDED_PRED
, p.REDUNDANT_PRED
, p.DIRECT_ACCESS
, p.KEYFIELD
, p.CATEGORY
, p.CATEGORY_B
, p.PRED_ENCODE
, p.PRED_CCSID
, p.PRED_MCCSID
, p.MARKER
, p.PARENT_PNO
, p.NEGATION
, p.LITERALS
, p.CLAUSE
, p.ORIGIN
, p.UNCERTAINTY
, p.QUERYNO, p.QBLOCKNO, p.APPLNAME, p.PROGNAME, p.group_member
, p.SECTNOI, p.COLLID, p.VERSION, p.explain_time, p.predNo
, f.ORDERCLASS
, f.MIXOPSEQNO
, f.REEVAL
, f.PUSHDOWN
, f.planNo
, f.orderNO
from $cr.dsn_predicat_table p
left join $cr.dsn_filter_Table f
on f.progName = p.progName
and f.applName = p.applName -- ??? ist manchmal x'0000'
and f.collid = p.collid
and f.version = p.version
and f.group_member = p.group_member
and f.sectNoi = p.sectNoi
and f.explain_time = p.explain_time
and f.QUERYNO = p.QUERYNO
and f.QBLOCKNO = p.QBLOCKNO
and f.predNo = p.predNo
;
-- sortierung --------------------------------------
-- order by applName, collid, progName, explain_time,
-- queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
------------------------------------------------------------------------
$/creViewsFun/
$proc $@/viewFunDrop/
call sql2St "select strip(creator) || '.' || strip(name) vw" ,
"from sysibm.sysTables where type = 'V'",
"and name in ('PLAN_VIEW2DET', 'PLAN_VIEWPRED')", vw
$do vx=1 to m.vw.0 $@¢
$$- 'drop view' m.vw.vx.vw';'
$!
$$ commit;
$/viewFunDrop/
$proc $@/viewFunCre/
call sql2St "select strip(creator) cr" ,
"from sysibm.sysTables where type = 'V'",
"and name in ('PLAN_VIEW1')", vw
$do vx=1 to m.vw.0 $@¢
$= cr =- m.vw.vx.cr
$@creViewsFun
$$ commit;
$!
$/viewFunCre/
}¢--- A540769.WK.SQL(PLANTBCN) cre=2015-10-23 mod=2015-10-23-22.07.25 A540769 ---
//A540769Z JOB (CP00,KE50),'DB2 REO', 00010000
// MSGCLASS=T,TIME=1440, 00020000
// NOTIFY=&SYSUID,REGION=0M, 00030000
// SCHENV=DB2,CLASS=M1 00040000
//JOBLIB DD DISP=SHR,DSN=PCL.U0000.P0.RZ4AKT.PERM.@008.LLB
//*
//S1 EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99, 00020001
// PARM='%WSH'
//SYSPROC DD DSN=A540769.WK.REXX,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD DUMMY
//WSH DD *
$#@
$=cr=CMNBATCH
call sqlConnect DP4G
$<>
$<=¢
select strip(creator) || '.' || strip(name) TB
from sysibm.sysTables
where type = 'T' and creator = '$cr'
and (name like 'PLAN%' or name like 'DSN%')
order by 1
$! call sqlSel
$|
$forWith i $@¢
cn = sql2One('select count(*) from' $TB)
$$- right(cn, 12) $TB
$!
}¢--- A540769.WK.SQL(PLANTBIX) cre=2011-05-16 mod=2011-05-16-09.37.19 A540769 ---
CREATE INDEX DB2OSC.DSN_QUERY_TABLE_IDX1 01245200
ON DB2OSC.DSN_QUERY_TABLE 01245240
( "QUERYNO" 01245280
,"EXPLAIN_TIME" 01245320
); 01245360
CREATE INDEX DB2OSC.DSN_QUERY_TABLE_IDX2 01245400
ON DB2OSC.DSN_QUERY_TABLE 01245440
( "QUERYNO" 01245480
,"TYPE" 01245520
,"QUERY_STAGE" 01245560
,"EXPLAIN_TIME" 01245600
,"SEQNO" 01245640
); 01245680
CREATE UNIQUE INDEX DB2OSC.DSN_QUERY_TABLE_IDX3 01245720
ON DB2OSC.DSN_QUERY_TABLE 01245760
( "QUERY_ROWID" 01245800
); 01245840
CREATE AUX TABLE DB2OSC.DSN_QUERY_AUX 01245880
IN DB2OSC.DSNLOBT2 01245920
STORES DB2OSC.DSN_QUERY_TABLE 01245960
COLUMN "NODE_DATA"; 01246000
CREATE INDEX DB2OSC.DSN_QUERY_AUXINX 01246040
ON DB2OSC.DSN_QUERY_AUX; 01246080
CREATE UNIQUE INDEX SYSIBM.DSN_PROFILE_TABLE_IX_ALL 01810000
ON SYSIBM.DSN_PROFILE_TABLE 01820000
( "PROFILEID" 01830000
); 01840000
CREATE INDEX SYSIBM.DSN_PROFILE_TABLE_IX2_ALL 01850000
ON SYSIBM.DSN_PROFILE_TABLE 01860000
( "PROFILE_ENABLED" 01870000
,"AUTHID" 01880000
,"PLANNAME" 01890000
,"COLLID" 01900000
,"PKGNAME" 01910000
,"IPADDR" 01920000
,"PROFILE_TIMESTAMP" DESC 01930000
); 01940000
CREATE UNIQUE INDEX SYSIBM.DSN_PROFILE_ATTRIBUTES_IX_ALL 02220000
ON SYSIBM.DSN_PROFILE_ATTRIBUTES 02230000
( "PROFILEID" 02240000
,"ATTRIBUTE_TIMESTAMP" DESC 02250000
,"KEYWORDS" 02260000
,"ATTRIBUTE1" 02270000
,"ATTRIBUTE2" 02280000
,"ATTRIBUTE3" 02290000
) 02300000
USING STOGROUP DSNOSCSG; 02310000
CREATE UNIQUE INDEX SYSIBM.DSN_STATEMENT_RUNTIME_INFO_IDX1 03160000
ON SYSIBM.DSN_STATEMENT_RUNTIME_INFO 03170000
( "STMT_RUNTIME_INFO_ID" 03180000
) 03190000
USING STOGROUP DSNOSCSG; 03200000
CREATE INDEX SYSIBM.DSN_STATEMENT_RUNTIME_INFO_AUXINX 03280000
ON SYSIBM.DSN_STATEMENT_RUNTIME_INFO_AUX 03290000
USING STOGROUP DSNOSCSG; 03300000
CREATE INDEX SYSIBM.PLAN_TABLE_IDX1 04380000
ON SYSIBM.PLAN_TABLE 04390000
( "QUERYNO" 04400000
,"BIND_TIME" 04410000
); 04420000
CREATE INDEX SYSIBM.DSN_STATEMNT_TABLE_IDX1 04600000
ON SYSIBM.DSN_STATEMNT_TABLE 04610000
( "QUERYNO" 04620000
,"EXPLAIN_TIME" 04630000
); 04640000
CREATE INDEX SYSIBM.FUNC_EXPIDX1 04930000
ON SYSIBM.DSN_FUNCTION_TABLE 04940000
( "QUERYNO" 04950000
,"EXPLAIN_TIME" 04960000
); 04970000
CREATE INDEX SYSIBM.DSN_PREDICAT_TABLE_IDX1 05500000
ON SYSIBM.DSN_PREDICAT_TABLE 05510000
( "QUERYNO" 05520000
,"EXPLAIN_TIME" 05530000
); 05540000
CREATE INDEX SYSIBM.DSN_STRUCT_TABLE_IDX1 05740000
ON SYSIBM.DSN_STRUCT_TABLE 05750000
( "QUERYNO" 05760000
,"EXPLAIN_TIME" 05770000
); 05780000
CREATE INDEX SYSIBM.DSN_PTASK_TABLE_IDX1 06510000
ON SYSIBM.DSN_PTASK_TABLE 06520000
( "QUERYNO" 06530000
,"EXPLAIN_TIME" 06540000
); 06550000
CREATE INDEX SYSIBM.DSN_FILTER_TABLE_IDX1 06740000
ON SYSIBM.DSN_FILTER_TABLE 06750000
( "QUERYNO" 06760000
,"EXPLAIN_TIME" 06770000
); 06780000
CREATE INDEX SYSIBM.DSN_DETCOST_TABLE_IDX1 08040000
ON SYSIBM.DSN_DETCOST_TABLE 08050000
( "QUERYNO" 08060000
,"EXPLAIN_TIME" 08070000
); 08080000
CREATE INDEX SYSIBM.DSN_SORT_TABLE_IDX1 08260000
ON SYSIBM.DSN_SORT_TABLE 08270000
( "QUERYNO" 08280000
,"EXPLAIN_TIME" 08290000
); 08300000
CREATE INDEX SYSIBM.DSN_SORTKEY_TABLE_IDX1 08530000
ON SYSIBM.DSN_SORTKEY_TABLE 08540000
( "QUERYNO" 08550000
,"EXPLAIN_TIME" 08560000
); 08570000
CREATE INDEX SYSIBM.DSN_PGRANGE_TABLE_IDX1 08710000
ON SYSIBM.DSN_PGRANGE_TABLE 08720000
( "QUERYNO" 08730000
,"EXPLAIN_TIME" 08740000
); 08750000
CREATE INDEX SYSIBM.DSN_VIEWREF_TABLE_IDX1 08910000
ON SYSIBM.DSN_VIEWREF_TABLE 08920000
( "QUERYNO" 08930000
,"EXPLAIN_TIME" 08940000
); 08950000
CREATE INDEX SYSIBM.DSN_QUERY_TABLE_IDX1 09110000
ON SYSIBM.DSN_QUERY_TABLE 09120000
( "QUERYNO" 09130000
,"EXPLAIN_TIME" 09140000
); 09150000
CREATE INDEX SYSIBM.DSN_QUERY_TABLE_IDX2 09160000
ON SYSIBM.DSN_QUERY_TABLE 09170000
("QUERYNO" 09180000
,"TYPE" 09190000
,"QUERY_STAGE" 09200000
,"EXPLAIN_TIME" 09210000
,"SEQNO" 09220000
); 09230000
CREATE INDEX SYSIBM.DSN_QUERY_AUXINX 09280000
ON SYSIBM.DSN_QUERY_AUX; 09290000
}¢--- A540769.WK.SQL(PLANTBST) cre=2011-05-16 mod=2011-05-16-09.12.18 A540769 ---
select count(*), explain_time, queryno
from cmnbatch.dsn_statemnt_table
group by explain_time, queryno
order by 1 desc
with ur
}¢--- A540769.WK.SQL(PLANTS) cre=2012-03-20 mod=2012-03-21-13.55.55 A540769 ----
WITH pt AS
( select *
from sysibm.sysTables o
where type = 'T' and name in ('COST_TABLE'
,'DSN_COLDIST_TABLE'
,'DSN_DETCOST_TABLE'
,'DSN_FILTER_TABLE'
,'DSN_FUNCTION_TABLE'
,'DSN_KEYTGTDIST_TABLE'
,'DSN_PGRANGE_TABLE'
,'DSN_PGROUP_TABLE'
,'DSN_PREDICAT_TABLE'
,'DSN_PTASK_TABLE'
,'DSN_QUERY_AUX'
,'DSN_QUERY_TABLE'
,'DSN_SORTKEY_TABLE'
,'DSN_SORT_TABLE'
,'DSN_STATEMENT_CACHE_AUX'
,'DSN_STATEMENT_CACHE_TABLE'
,'DSN_STATEMNT_TABLE'
,'DSN_STRUCT_TABLE'
,'DSN_VIEWREF_TABLE'
,'DSN_VIRTUAL_INDEXES'
,'EEEAUTH'
,'EEEDBRM'
,'EEEHINT'
,'EEEPATH'
,'EEEPLAN'
,'EEEWORK'
,'OBJECT_DATA'
,'OBJECT_DIRECTORY'
,'F2PLAN_TABLE'
,'PLAN_TABLE'
,'PREDICATE_TABLE'
,'STRUCTURE_TABLE'
)
)
, ts as
( select creator cr, dbName db, tsName ts, count(*) cnt
from pt
group by creator, dbName, tsName
)
select ts.*
, (select strip(o.creator) || '.' || strip(o.name)
from sysibm.sysTables o
where o.dbName = ts.db and o.tsName = ts.ts
and o.type = 'T'
and not exists (select 1
from pt
where pt.creator = o.creator and pt.name = o.name)
)
from ts where cr = 'A540769'
;;;
select * -- bCreator, bName, bType, 1
from sysibm.sysViewDep
where bType = 'V'
and dcreator = 'A540769' and dName like 'PLAN%'
;;;
WITH S AS
(
select (select strip(o.creator) || '.' || strip(o.name)
from sysibm.sysTables o
where o.dbName = t.dbName and o.tsName = t.tsName
and o.type = 'T'
and not (o.creator = t.creator
and o.name in ('COST_TABLE'
,'DSN_COLDIST_TABLE'
,'DSN_DETCOST_TABLE'
,'DSN_FILTER_TABLE'
,'DSN_FUNCTION_TABLE'
,'DSN_KEYTGTDIST_TABLE'
,'DSN_PGRANGE_TABLE'
,'DSN_PGROUP_TABLE'
,'DSN_PREDICAT_TABLE'
,'DSN_PTASK_TABLE'
,'DSN_QUERY_AUX'
,'DSN_QUERY_TABLE'
,'DSN_SORTKEY_TABLE'
,'DSN_SORT_TABLE'
,'DSN_STATEMENT_CACHE_AUX'
,'DSN_STATEMENT_CACHE_TABLE'
,'DSN_STATEMNT_TABLE'
,'DSN_STRUCT_TABLE'
,'DSN_VIEWREF_TABLE'
,'DSN_VIRTUAL_INDEXES'
,'EEEAUTH'
,'EEEDBRM'
,'EEEHINT'
,'EEEPATH'
,'EEEPLAN'
,'EEEWORK'
,'OBJECT_DATA'
,'OBJECT_DIRECTORY'
,'F2PLAN_TABLE'
,'PLAN_TABLE'
,'PREDICATE_TABLE'
,'STRUCTURE_TABLE'
) )
fetch first 1 row only
) otTb, t.*
from sysibm.sysTables t
where creator like '%' and type = 'T'
and name in ('COST_TABLE'
,'DSN_COLDIST_TABLE'
,'DSN_DETCOST_TABLE'
,'DSN_FILTER_TABLE'
,'DSN_FUNCTION_TABLE'
,'DSN_KEYTGTDIST_TABLE'
,'DSN_PGRANGE_TABLE'
,'DSN_PGROUP_TABLE'
,'DSN_PREDICAT_TABLE'
,'DSN_PTASK_TABLE'
,'DSN_QUERY_AUX'
,'DSN_QUERY_TABLE'
,'DSN_SORTKEY_TABLE'
,'DSN_SORT_TABLE'
,'DSN_STATEMENT_CACHE_AUX'
,'DSN_STATEMENT_CACHE_TABLE'
,'DSN_STATEMNT_TABLE'
,'DSN_STRUCT_TABLE'
,'DSN_VIEWREF_TABLE'
,'DSN_VIRTUAL_INDEXES'
,'EEEAUTH'
,'EEEDBRM'
,'EEEHINT'
,'EEEPATH'
,'EEEPLAN'
,'EEEWORK'
,'OBJECT_DATA'
,'OBJECT_DIRECTORY'
,'F2PLAN_TABLE'
,'PLAN_TABLE'
,'PREDICATE_TABLE'
,'STRUCTURE_TABLE'
)
)
select distinct otTb from s
-- where otTb is not null
}¢--- A540769.WK.SQL(PLANVW) cre=2010-11-25 mod=2011-09-21-11.36.12 A540769 ----
//A540769W JOB (CP00,KE50),'DB2 REO', 00010000
// MSGCLASS=T,TIME=1440, 00020000
// NOTIFY=&SYSUID,REGION=0M 00030000
===> nach planTable geMoved
//*MAIN CLASS=LOG 00040000
//*
//* PLAN_VIEW1 - 8 VIEWs auf Explain tables
//*
//* 11.02.11 W.Keller ix Multi renamed
//* 23.09.2010 accessTypen Anzeige, user Views am Anfang
//* 25.01.10 W.Keller view5 geflickt (bind_time fehlte im on)
//* 17.12.09 W.Keller kopiert aus cPlanVi*
//*
//STEP01 EXEC PGM=IKJEFT01,COND=(4,LT)
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//PLIDUMP DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM(DBAF)
RUN PROGRAM(DSNTEP2) PLAN(DSNTEP2) -
PARMS('/ALIGN(LHS) MIXED')
END
//SYSIN DD *
SET CURRENT SQLID = 'S100447';
set current path 'OA1A';
drop VIEW A540769.PLAN_VIEW5 ;
DROP VIEW A540769.PLAN_Filt ;
DROP VIEW A540769.PLAN_ViewPred ;
DROP VIEW A540769.PLAN_VIEW1 ;
DROP VIEW A540769.PLAN_VIEW0 ;
DROP VIEW A540769.PLAN_VIEW3 ;
drop VIEW A540769.PLAN_VIEW6 ;
drop VIEW A540769.PLAN_VIEW6_CMN ;
drop VIEW A540769.PLAN_VIEW7 ;
drop VIEW A540769.PLAN_VIEW9 ;
------- -----------------------------------------------------------------
create view A540769.plan_view0 as
select count(*) eCnt,
substr(coalesce(e.collid, p.collid), 1, 8) co,
substr(coalesce(e.progName, p.name), 1, 8) pg,
substr(coalesce(e.version, p.version), 1, 16) ve,
p.pcTimeStamp,
case when p.bindtime > e.bind_time then '>'
when p.bindtime = e.bind_time then '='
else '<' end c,
e.bind_time,
p.collid,
p.name,
p.version,
p.contoken,
p.bindtime lastBind,
e.collid eCo,
e.progName ePg,
e.applName eAp,
e.version eVe
from sysIbm.sysPackage p
left join A540769.plan_table e
on e.collid = p.collid and e.progName = p.name
and e.version = p.version
group by p.collid,
p.name,
p.version,
p.pcTimeStamp,
p.contoken,
p.bindtime,
e.collid ,
e.progName ,
e.applName ,
e.version,
e.bind_time
;
CREATE VIEW A540769.PLAN_VIEW1 AS
select substr(right(' ' || strip(char(queryNo)) , 6)
|| right(' ' || strip(char(qBlockNo)) , 2)
|| right(' ' || strip(char(planNo)) , 2)
|| right(' ' || strip(char(mixOpSeq)), 1)
,1 ,11) "Queryn B PM",
QBLOCK_TYPE AS "TYPE",
CASE WHEN PRIMARY_ACCESSTYPE = 'D' then 'dirRow'
WHEN ACCESSTYPE = 'I ' THEN 'ixScan'
WHEN ACCESSTYPE = 'I1' THEN 'ixOne '
WHEN ACCESSTYPE = 'R ' THEN 'tsScan'
WHEN ACCESSTYPE = 'RW' THEN 'woScan'
WHEN ACCESSTYPE = 'N ' THEN 'ixSPin'
WHEN ACCESSTYPE = 'M ' THEN 'ixMult'
WHEN ACCESSTYPE = 'MX' THEN 'ixMSca'
WHEN ACCESSTYPE = 'MI' THEN 'ixMInt'
WHEN ACCESSTYPE = 'MU' THEN 'ixMUni'
WHEN ACCESSTYPE = 'T ' THEN 'ixSPRS'
WHEN ACCESSTYPE = 'V ' THEN 'insBuf'
WHEN ACCESSTYPE = ' ' THEN ' '
ELSE '??' || accessType
END AS ACCESS,
CASE WHEN ACCESSTYPE = 'R ' THEN ' '
when PRIMARY_ACCESSTYPE = 'D' THEN ' '
ELSE SUBSTR(ACCESSNAME, 1, 12) END AS "INDEX",
SUBSTR(TNAME, 1, 12) AS "TABLE",
CASE WHEN TABLE_TYPE IS NULL THEN ' '
ELSE TABLE_TYPE END AS TTYP,
CASE WHEN METHOD = 3 THEN ' '
WHEN ACCESSTYPE = 'R ' THEN ' '
ELSE SUBSTR(DIGITS(MATCHCOLS), 5, 1) || ' ' || indexOnly
END AS MC_O,
CASE METHOD WHEN 0 THEN ' '
WHEN 1 THEN 'NLJOIN'
when 2 THEN 'SMJOIN'
WHEN 3 THEN 'SORT '
WHEN 4 THEN 'HYJOIN'
ELSE NULL END AS METHOD,
CASE JOIN_TYPE WHEN 'F' THEN 'full'
WHEN 'L' THEN 'left'
WHEN 'S' THEN 'star'
ELSE ' ' END AS "joiT",
SORTN_UNIQ CONCAT SORTN_JOIN CONCAT SORTN_ORDERBY CONCAT
SORTN_GROUPBY AS UJOG,
SORTC_UNIQ CONCAT SORTC_JOIN CONCAT SORTC_ORDERBY CONCAT
SORTC_GROUPBY AS UJOC,
TSLOCKMODE AS LCK,
SUBSTR(CORRELATION_NAME, 1, 4) AS CORR,
CASE PARALLELISM_MODE WHEN 'C' THEN 'CPU'
WHEN 'I' THEN 'I-O'
WHEN 'X' THEN 'SYSPLEX'
ELSE NULL END AS PARAL,
STRIP(DIGITS(ACCESS_DEGREE), LEADING, '0') || ' '
|| STRIP(DIGITS(JOIN_DEGREE), LEADING, '0') AS AJ_DEG,
STRIP(DIGITS(ACCESS_PGROUP_ID), LEADING, '0')|| ' '
|| STRIP(DIGITS(JOIN_PGROUP_ID), LEADING, '0') PG_DEG,
STRIP(DIGITS(MERGE_JOIN_COLS), LEADING, '0') AS MC,
PREFETCH AS PRE,
substr(opthint, 1, 10) optHint,
substr(hint_used, 1, 10) hint_used,
-- full length names
TNAME, ACCESSNAME,
-- package identifikation
collid, progName, applName, version, bind_time,
-- query node identificaten
queryno, qBlockNo, planno, mixopSeq, timestamp,
PARENT_QBLOCKNO
FROM A540769.PLAN_TABLE A
;
-------------------------------------------------------------------------
CREATE VIEW A540769.PLAN_VIEW2 AS
SELECT CASE WHEN METHOD = 'SORT ' THEN ' '
ELSE substr(right(' '
|| strip(CHAR(S.PROCMS)),9), 1, 9) END AS MSEC,
a.*,
S.COST_CATEGORY,
S.PROCMS, S.PROCSU, S.REASON
FROM A540769.PLAN_VIEW1 A
LEFT OUTER JOIN
A540769.DSN_STATEMNT_TABLE S
ON S."COLLID" = A."COLLID"
AND S.APPLNAME = A.APPLNAME
AND S.PROGNAME = A.PROGNAME
AND S.EXPLAIN_TIME = A.BIND_TIME
AND S.QUERYNO = A.QUERYNO
;
-------------------------------------------------------------------------
CREATE VIEW A540769.PLAN_VIEW2Det AS
SELECT substr(fosFmtE7(dmRows), 1, 7) dmRows,
substr(fosFmtE7(rdsRow), 1, 7) rdsRow,
substr(fosFmtE7(snRows), 1, 7) snRows,
substr(fosFmtE7(compCost), 1, 7) compCost,
substr(fosFmtE7(openCost), 1, 7) openCost,
a.*
FROM A540769.PLAN_VIEW1 A
LEFT OUTER JOIN
A540769.DSN_DetCost_TABLE d
on d.APPLNAME = A.APPLNAME
AND d.PROGNAME = A.PROGNAME
AND d.EXPLAIN_TIME = A.BIND_TIME
AND d.QBlockNO = A.QBlockNO
AND d.PlanNo = A.PlanNo
;
CREATE VIEW A540769.plan_ViewPred as
select substr(right(' ' || strip(char(f.queryNo)) , 6)
|| right(' ' || strip(char(f.qBlockNo)) , 2)
|| right(' ' || strip(char(f.planNo)) , 2)
|| right(' ' || strip(char(f.mixOpSeqNo)), 1)
,1 ,11) "Queryn B PM"
, stage
, substr(fosFmte7(p.filter_factor), 1, 7) ff
, p.type
, p.text
, f.COLLID
, f.PROGNAME
, f.APPLNAME
, f.EXPLAIN_TIME
, f.QUERYNO
, f.QBLOCKNO
, f.PLANNO
, f.ORDERNO
, f.PREDNO
, f.MIXOPSEQNO
, p.LEFT_HAND_SIDE
, p.LEFT_HAND_PNO
, p.LHS_TABNO
, p.LHS_QBNO
, p.RIGHT_HAND_SIDE
, p.RIGHT_HAND_PNO
, p.RHS_TABNO
, p.RHS_QBNO
, p.FILTER_FACTOR
, p.BOOLEAN_TERM
, p.SEARCHARG
, p.JOIN
, p.AFTER_JOIN
, p.ADDED_PRED
, p.REDUNDANT_PRED
, p.DIRECT_ACCESS
, p.KEYFIELD
, p.CATEGORY
, p.CATEGORY_B
, p.PRED_ENCODE
, p.PRED_CCSID
, p.PRED_MCCSID
, p.MARKER
, p.PARENT_PNO
, p.NEGATION
, p.LITERALS
, p.CLAUSE
from A540769.dsn_filter_Table f
left join A540769.dsn_predicat_table p
on f.progName = p.progName
and f.applName = p.applName
and f.applName = p.applName
and f.explain_time = p.explain_time
and f.queryNo = p.queryNo
and f.qBlockNo = p.qBlockNo
and f.predNo = p.predNo
;
-- sortierung --------------------------------------
-- order by collid, progName, applName, explain_time,
-- queryNo, qBlockNo, planno,
-- stage, orderNo
;
-------------------------------------------------------------------------
CREATE VIEW A540769.PLAN_VIEW5 AS
SELECT *
FROM A540769.PLAN_VIEW2 A
JOIN
(SELECT B."COLLID" AS BCOLLID,
B.APPLNAME AS BAPPLNAME, B.PROGNAME AS BPROGNAME,
MAX(B.BIND_TIME) AS BBIND_TIME
FROM A540769.PLAN_TABLE B
GROUP BY B."COLLID",
B.APPLNAME,
B.PROGNAME) AS N1
ON A."COLLID" = N1."BCOLLID"
AND A.PROGNAME = N1.BPROGNAME
AND A.APPLNAME = N1.BAPPLNAME
AND A.bind_time = N1.BBind_time
;
commit;
commit;
------------ Ende user Views ------------------------------------------
-- //CMNONLY DD *
------------ Rest brauchts nur für changeMan ||| ----------------------
commit;
-- ;x;
-------------------------------------------------------------------------
CREATE VIEW A540769.PLAN_VIEW3
( QN,QB,AP,PG, PN,ME,CR,TN,TO, AT,JT,MC,AN,IO, SP,SU,SJ, SO, SG,ZP,ZU,
ZJ, ZO,ZG,TL,TS,PR,EV, CO,VR,MO, AD,AI, JD,JI, PA,MJ,CN, PF,GM,WO,QT,
BT,RM,SD, OH,HU,PAC )
AS SELECT QUERYNO, QBLOCKNO, APPLNAME, PROGNAME, PLANNO, METHOD,
CREATOR, TNAME, TABNO, ACCESSTYPE, JOIN_TYPE, MATCHCOLS, ACCESSNAME,
INDEXONLY, SORTN_PGROUP_ID, SORTN_UNIQ, SORTN_JOIN, SORTN_ORDERBY,
SORTN_GROUPBY, SORTC_PGROUP_ID, SORTC_UNIQ, SORTC_JOIN, SORTC_ORDERBY,
SORTC_GROUPBY, TSLOCKMODE, TIMESTAMP, PREFETCH, COLUMN_FN_EVAL, COLLID,
VERSION, MIXOPSEQ, ACCESS_DEGREE, ACCESS_PGROUP_ID, JOIN_DEGREE,
JOIN_PGROUP_ID, PARALLELISM_MODE, MERGE_JOIN_COLS, CORRELATION_NAME,
PAGE_RANGE, GROUP_MEMBER, WHEN_OPTIMIZE, QBLOCK_TYPE, BIND_TIME,
REMARKS, IBM_SERVICE_DATA, OPTHINT, HINT_USED, PRIMARY_ACCESSTYPE
FROM A540769.PLAN_TABLE
;
-------------------------------------------------------------------------
CREATE VIEW A540769.PLAN_VIEW6 AS
SELECT SUBSTR(A.PROGNAME, 1, 8) AS PROGNAME,
SUBSTR(DIGITS(A."QUERYNO"), 5) AS STMT,
CASE WHEN A.METHOD = 3
THEN ' '
-- ELSE SUBSTR(CHAR(S.PROCSU), 1, 7) END AS SUNITS,
ELSE '1 '
END AS SUNITS,
CASE WHEN A.PRIMARY_ACCESSTYPE = 'D' THEN 'DIR.ROW'
WHEN A.ACCESSTYPE = 'I ' THEN 'IX-SCAN'
WHEN A.ACCESSTYPE = 'I1' THEN 'IX-ONEF'
WHEN A.ACCESSTYPE = 'M ' THEN 'MULT-IX'
WHEN A.ACCESSTYPE = 'MX' THEN 'IX-SC.X'
WHEN A.ACCESSTYPE = 'MI' THEN 'IX-SC.I'
WHEN A.ACCESSTYPE = 'MU' THEN 'IX-SC.U'
WHEN A.ACCESSTYPE = 'N ' THEN 'IX-INLI'
WHEN A.ACCESSTYPE = 'R ' THEN 'TS-SCAN'
WHEN A.ACCESSTYPE = 'RW' THEN 'WF-SCAN'
WHEN A.ACCESSTYPE = 'T ' THEN 'IX-SPRS'
WHEN A.ACCESSTYPE = 'V ' THEN 'BUFFERS'
WHEN A.ACCESSTYPE = ' ' THEN ' '
ELSE ' ' END AS ACCESS,
CASE WHEN A.PRIMARY_ACCESSTYPE = 'D' THEN ' '
WHEN A.ACCESSTYPE = 'R ' THEN ' '
ELSE SUBSTR(A.ACCESSNAME, 1, 12) END AS "INDEX",
CASE WHEN A.TNAME = ' ' THEN ' '
ELSE SUBSTR(A.TNAME, 1, 12) END AS "TABLE",
SUBSTR(A.CORRELATION_NAME, 1, 5) AS CORR,
CASE WHEN A.METHOD = 3 THEN ' '
WHEN A.ACCESSTYPE = 'R ' THEN ' '
WHEN A.QBLOCK_TYPE = 'INSERT' THEN ' '
ELSE SUBSTR(DIGITS(A.MATCHCOLS), 5, 1) END AS MC,
CASE WHEN A.INDEXONLY = 'Y' THEN 'XO'
ELSE ' ' END AS XO,
CASE A.METHOD
WHEN 0 THEN '0 '
WHEN 1 THEN 'NLJOIN'
WHEN 2 THEN 'SMJOIN'
WHEN 3 THEN 'SORT '
WHEN 4 THEN 'HYJOIN'
ELSE CHAR(A.METHOD) END AS METHOD,
CASE A.JOIN_TYPE
WHEN 'F' THEN 'FULL '
WHEN 'L' THEN 'LEFT '
WHEN 'S' THEN 'STAR '
ELSE ' ' END AS "JOIN",
A.SORTN_UNIQ CONCAT A.SORTN_JOIN CONCAT A.SORTN_ORDERBY
CONCAT A.SORTN_GROUPBY AS UJOG,
A.SORTC_UNIQ CONCAT A.SORTC_JOIN CONCAT A.SORTC_ORDERBY
CONCAT A.SORTC_GROUPBY AS UJOC,
A.QBLOCK_TYPE AS QBTYPE,
CASE WHEN A.TABLE_TYPE IS NULL THEN ' '
WHEN A.TABLE_TYPE = 'B' THEN 'BUFFER'
WHEN A.TABLE_TYPE = 'C' THEN 'CTE '
WHEN A.TABLE_TYPE = 'F' THEN 'TBLFNC'
WHEN A.TABLE_TYPE = 'M' THEN 'MQT '
WHEN A.TABLE_TYPE = 'Q' THEN 'VMQT '
WHEN A.TABLE_TYPE = 'R' THEN 'RC#CTE'
WHEN A.TABLE_TYPE = 'T' THEN 'TABLE/'
WHEN A.TABLE_TYPE = 'W' THEN 'WRKFIL'
ELSE A.TABLE_TYPE END AS TTYP,
A.TSLOCKMODE AS LCK,
CASE A.PARALLELISM_MODE
WHEN 'C' THEN 'CPU '
WHEN 'I' THEN 'I-O '
WHEN 'X' THEN 'PLEX'
ELSE ' ' END AS PARAL,
STRIP(DIGITS(A.ACCESS_DEGREE), LEADING, '0') CONCAT ' '
CONCAT STRIP(DIGITS(A.JOIN_DEGREE), LEADING, '0')
AS AJ_DEG,
STRIP(DIGITS(A.ACCESS_PGROUP_ID), LEADING, '0') CONCAT ' '
CONCAT STRIP(DIGITS(A.JOIN_PGROUP_ID), LEADING, '0')
AS PG_DEG,
STRIP(DIGITS(A.MERGE_JOIN_COLS), LEADING, '0') AS MJC,
CASE A.PREFETCH
WHEN 'S' THEN 'SEQ '
WHEN 'L' THEN 'LIST'
WHEN 'D' THEN 'DYN '
ELSE ' ' END AS PREFETCH,
STRIP(DIGITS(A."QUERYNO"), LEADING, '0') AS QNO,
SUBSTR(DIGITS(A.QBLOCKNO), 4, 2) CONCAT ' '
CONCAT SUBSTR(DIGITS(A.PLANNO), 4, 2)
AS BL_PL,
A.PARENT_QBLOCKNO,
A.QBLOCKNO, A.PLANNO, A.TNAME, A.ACCESSNAME, A.OPTHINT,
A.HINT_USED, A.APPLNAME, A."COLLID", A.VERSION,
A.TIMESTAMP, A.BIND_TIME, A."QUERYNO", A.MIXOPSEQ, A.TABNO,
A.CORRELATION_NAME, A.COLUMN_FN_EVAL, A.SORTC_PGROUP_ID,
A.SORTN_PGROUP_ID, A.PAGE_RANGE, A.WHEN_OPTIMIZE,
A.TABLE_ENCODE, A.TABLE_SCCSID, A.ROUTINE_ID, A.CTEREF,
A.STMTTOKEN,
-- S.COST_CATEGORY, S.PROCMS, S.PROCSU, S.REASON
'A' AS COST_CATEGORY, 1 AS PROCMS, 1 AS PROCSU, ' ' AS REASON
FROM A540769.PLAN_TABLE A
-- JOIN
-- (SELECT B.PROGNAME AS BPROGNAME,
-- B.COLLID AS BCOLLID,
-- MAX(B.BIND_TIME) BBIND_TIME
-- FROM A540769.PLAN_TABLE B
-- GROUP BY B.PROGNAME, B.COLLID) AS N1
-- ON A.PROGNAME = N1.BPROGNAME
-- AND A.BIND_TIME = N1.BBIND_TIME
-- AND A.COLLID = N1.BCOLLID
-- LEFT OUTER JOIN A540769.DSN_STATEMNT_TABLE S
-- ON S."COLLID" = A."COLLID"
-- AND S.APPLNAME = A.APPLNAME
-- AND S.PROGNAME = A.PROGNAME
-- AND S."QUERYNO" = A."QUERYNO"
-- AND S.EXPLAIN_TIME = A.BIND_TIME
;
//
-------------------------------------------------------------------------
CREATE VIEW A540769.PLAN_VIEW6_CMN AS
SELECT SUBSTR(A.PROGNAME, 1, 8) AS PROGNAME,
SUBSTR(DIGITS(A."QUERYNO"), 5) AS STMT,
CASE WHEN A.METHOD = 3
THEN ' '
-- ELSE SUBSTR(CHAR(S.PROCSU), 1, 7) END AS SUNITS,
ELSE '1 '
END AS SUNITS,
CASE WHEN A.PRIMARY_ACCESSTYPE = 'D' THEN 'DIR.ROW'
WHEN A.ACCESSTYPE = 'I ' THEN 'IX-SCAN'
WHEN A.ACCESSTYPE = 'I1' THEN 'IX-ONEF'
WHEN A.ACCESSTYPE = 'M ' THEN 'MULT-IX'
WHEN A.ACCESSTYPE = 'MX' THEN 'IX-SC.X'
WHEN A.ACCESSTYPE = 'MI' THEN 'IX-SC.I'
WHEN A.ACCESSTYPE = 'MU' THEN 'IX-SC.U'
WHEN A.ACCESSTYPE = 'N ' THEN 'IX-INLI'
WHEN A.ACCESSTYPE = 'R ' THEN 'TS-SCAN'
WHEN A.ACCESSTYPE = 'RW' THEN 'WF-SCAN'
WHEN A.ACCESSTYPE = 'T ' THEN 'IX-SPRS'
WHEN A.ACCESSTYPE = 'V ' THEN 'BUFFERS'
WHEN A.ACCESSTYPE = ' ' THEN ' '
ELSE ' ' END AS ACCESS,
CASE WHEN A.PRIMARY_ACCESSTYPE = 'D' THEN ' '
WHEN A.ACCESSTYPE = 'R ' THEN ' '
ELSE SUBSTR(A.ACCESSNAME, 1, 12) END AS "INDEX",
CASE WHEN A.TNAME = ' ' THEN ' '
ELSE SUBSTR(A.TNAME, 1, 12) END AS "TABLE",
SUBSTR(A.CORRELATION_NAME, 1, 5) AS CORR,
CASE WHEN A.METHOD = 3 THEN ' '
WHEN A.ACCESSTYPE = 'R ' THEN ' '
WHEN A.QBLOCK_TYPE = 'INSERT' THEN ' '
ELSE SUBSTR(DIGITS(A.MATCHCOLS), 5, 1) END AS MC,
CASE WHEN A.INDEXONLY = 'Y' THEN 'XO'
ELSE ' ' END AS XO,
CASE A.METHOD
WHEN 0 THEN '0 '
WHEN 1 THEN 'NLJOIN'
WHEN 2 THEN 'SMJOIN'
WHEN 3 THEN 'SORT '
WHEN 4 THEN 'HYJOIN'
ELSE CHAR(A.METHOD) END AS METHOD,
CASE A.JOIN_TYPE
WHEN 'F' THEN 'FULL '
WHEN 'L' THEN 'LEFT '
WHEN 'S' THEN 'STAR '
ELSE ' ' END AS "JOIN",
A.SORTN_UNIQ CONCAT A.SORTN_JOIN CONCAT A.SORTN_ORDERBY
CONCAT A.SORTN_GROUPBY AS UJOG,
A.SORTC_UNIQ CONCAT A.SORTC_JOIN CONCAT A.SORTC_ORDERBY
CONCAT A.SORTC_GROUPBY AS UJOC,
A.QBLOCK_TYPE AS QBTYPE,
CASE WHEN A.TABLE_TYPE IS NULL THEN ' '
WHEN A.TABLE_TYPE = 'B' THEN 'BUFFER'
WHEN A.TABLE_TYPE = 'C' THEN 'CTE '
WHEN A.TABLE_TYPE = 'F' THEN 'TBLFNC'
WHEN A.TABLE_TYPE = 'M' THEN 'MQT '
WHEN A.TABLE_TYPE = 'Q' THEN 'VMQT '
WHEN A.TABLE_TYPE = 'R' THEN 'RC#CTE'
WHEN A.TABLE_TYPE = 'T' THEN 'TABLE/'
WHEN A.TABLE_TYPE = 'W' THEN 'WRKFIL'
ELSE A.TABLE_TYPE END AS TTYP,
A.TSLOCKMODE AS LCK,
CASE A.PARALLELISM_MODE
WHEN 'C' THEN 'CPU '
WHEN 'I' THEN 'I-O '
WHEN 'X' THEN 'PLEX'
ELSE ' ' END AS PARAL,
STRIP(DIGITS(A.ACCESS_DEGREE), LEADING, '0') CONCAT ' '
CONCAT STRIP(DIGITS(A.JOIN_DEGREE), LEADING, '0')
AS AJ_DEG,
STRIP(DIGITS(A.ACCESS_PGROUP_ID), LEADING, '0') CONCAT ' '
CONCAT STRIP(DIGITS(A.JOIN_PGROUP_ID), LEADING, '0')
AS PG_DEG,
STRIP(DIGITS(A.MERGE_JOIN_COLS), LEADING, '0') AS MJC,
CASE A.PREFETCH
WHEN 'S' THEN 'SEQ '
WHEN 'L' THEN 'LIST'
WHEN 'D' THEN 'DYN '
ELSE ' ' END AS PREFETCH,
STRIP(DIGITS(A."QUERYNO"), LEADING, '0') AS QNO,
SUBSTR(DIGITS(A.QBLOCKNO), 4, 2) CONCAT ' '
CONCAT SUBSTR(DIGITS(A.PLANNO), 4, 2)
AS BL_PL,
A.PARENT_QBLOCKNO,
A.QBLOCKNO, A.PLANNO, A.TNAME, A.ACCESSNAME, A.OPTHINT,
A.HINT_USED, A.APPLNAME, A."COLLID", A.VERSION,
A.TIMESTAMP, A.BIND_TIME, A."QUERYNO", A.MIXOPSEQ, A.TABNO,
A.CORRELATION_NAME, A.COLUMN_FN_EVAL, A.SORTC_PGROUP_ID,
A.SORTN_PGROUP_ID, A.PAGE_RANGE, A.WHEN_OPTIMIZE,
A.TABLE_ENCODE, A.TABLE_SCCSID, A.ROUTINE_ID, A.CTEREF,
A.STMTTOKEN,
-- S.COST_CATEGORY, S.PROCMS, S.PROCSU, S.REASON
'A' AS COST_CATEGORY, 1 AS PROCMS, 1 AS PROCSU, ' ' AS REASON
FROM A540769.PLAN_TABLE A
-- JOIN
-- (SELECT B.PROGNAME AS BPROGNAME,
-- B.COLLID AS BCOLLID,
-- MAX(B.BIND_TIME) BBIND_TIME
-- FROM A540769.PLAN_TABLE B
-- GROUP BY B.PROGNAME, B.COLLID) AS N1
-- ON A.PROGNAME = N1.BPROGNAME
-- AND A.BIND_TIME = N1.BBIND_TIME
-- AND A.COLLID = N1.BCOLLID
-- LEFT OUTER JOIN A540769.DSN_STATEMNT_TABLE S
-- ON S."COLLID" = A."COLLID"
-- AND S.APPLNAME = A.APPLNAME
-- AND S.PROGNAME = A.PROGNAME
-- AND S."QUERYNO" = A."QUERYNO"
-- AND S.EXPLAIN_TIME = A.BIND_TIME
;
-------------------------------------------------------------------------
CREATE VIEW A540769.PLAN_VIEW7 AS
SELECT (
SUBSTR(DIGITS(A."QUERYNO"),5) || ' ' || -- STMT
QBLOCK_TYPE || ' ' || -- TYPE
CASE WHEN METHOD = 3 THEN ' '
ELSE CHAR(S.PROCMS) END || -- MSEC
CASE WHEN PRIMARY_ACCESSTYPE = 'D' THEN 'DIR.ROW'
WHEN ACCESSTYPE = 'I ' THEN 'IX-SCAN'
WHEN ACCESSTYPE = 'I1' THEN 'IX-ONE '
WHEN ACCESSTYPE = 'R ' THEN 'TS-SCAN'
WHEN ACCESSTYPE = 'N ' THEN 'IX-ACC '
WHEN ACCESSTYPE = 'M ' THEN 'IX-SC.M'
WHEN ACCESSTYPE = 'MX' THEN 'IX-SC.X'
WHEN ACCESSTYPE = 'MI' THEN 'IX-SC.I'
WHEN ACCESSTYPE = 'MU' THEN 'IX-SC.U'
WHEN ACCESSTYPE = 'T' THEN 'IX-SPRS'
WHEN ACCESSTYPE = ' ' THEN ' '
ELSE NULL END || ' ' || -- ACCESS
CASE WHEN ACCESSTYPE = 'R' THEN ' '
WHEN PRIMARY_ACCESSTYPE = 'D' THEN ' '
ELSE SUBSTR(ACCESSNAME,1,12) END || ' ' ||
-- "INDEX"
SUBSTR(TNAME,1,18) || ' ' || -- TABLE
CASE WHEN TABLE_TYPE IS NULL THEN ' '
ELSE TABLE_TYPE END || ' ' || -- TTYP
CASE WHEN METHOD = 3 THEN ' '
WHEN ACCESSTYPE = 'R ' THEN ' '
ELSE SUBSTR(DIGITS(MATCHCOLS), 4, 2)
END || ' ' || -- MC_O
CASE WHEN INDEXONLY='Y' THEN 'Y '
ELSE ' '
END || ' ' || -- IXO
CASE WHEN OPTHINT<>' ' THEN '*'
ELSE ' '
END || -- HINT
CASE WHEN HINT_USED<>' ' THEN '*'
ELSE ' '
END -- HINT_USED
) AS TEXT,
CASE METHOD
WHEN 0 THEN ' '
WHEN 1 THEN 'NLJOIN'
WHEN 2 THEN 'SMJOIN'
WHEN 3 THEN 'SORT '
WHEN 4 THEN 'HYJOIN'
ELSE NULL
END AS METHOD,
CASE JOIN_TYPE WHEN 'F' THEN 'FULL ' WHEN 'L' THEN 'LEFT '
WHEN 'S' THEN 'STAR ' ELSE ' ' END AS "JOIN",
SORTN_UNIQ CONCAT SORTN_JOIN CONCAT SORTN_ORDERBY CONCAT
SORTN_GROUPBY AS UJOG,
SORTC_UNIQ CONCAT SORTC_JOIN CONCAT SORTC_ORDERBY CONCAT
SORTC_GROUPBY AS UJOC, TSLOCKMODE AS LCK,
SUBSTR(CORRELATION_NAME, 1, 4) AS CORR,
CASE PARALLELISM_MODE
WHEN 'C' THEN 'CPU'
WHEN 'I' THEN 'I-O'
WHEN 'X' THEN 'SYSPLEX'
ELSE NULL
END AS PARAL,
STRIP(DIGITS(ACCESS_DEGREE), LEADING, '0') CONCAT ' '
CONCAT STRIP(DIGITS(JOIN_DEGREE), LEADING, '0') AS AJ_DEG,
STRIP(DIGITS(ACCESS_PGROUP_ID), LEADING, '0') CONCAT ' '
CONCAT STRIP(DIGITS(JOIN_PGROUP_ID), LEADING, '0') AS
PG_DEG,
STRIP(DIGITS(MERGE_JOIN_COLS), LEADING, '0') AS MC,
PREFETCH AS PRE,
STRIP(DIGITS(A."QUERYNO"), LEADING, '0') AS QNO,
SUBSTR(DIGITS(QBLOCKNO), 4, 2) CONCAT ' ' CONCAT SUBSTR(
DIGITS(PLANNO), 4, 2) AS BL_PL,
A.PARENT_QBLOCKNO,
A.QBLOCKNO,
A.PLANNO,
A.TNAME,
A.ACCESSNAME,
A.OPTHINT,
A.HINT_USED,
A.APPLNAME,
A."COLLID",
A.PROGNAME,
A.VERSION,
A.BIND_TIME,
A.TIMESTAMP,
A."QUERYNO",
A.MIXOPSEQ,
S.COST_CATEGORY,
S.PROCMS,
S.PROCSU,
S.REASON
FROM A540769.PLAN_TABLE A
JOIN A540769.DSN_STATEMNT_TABLE S
ON S."COLLID" = A."COLLID"
AND S.APPLNAME = A.APPLNAME
AND S.PROGNAME = A.PROGNAME
AND S."QUERYNO" = A."QUERYNO"
AND S.EXPLAIN_TIME = A.BIND_TIME
;
-------------------------------------------------------------------------
CREATE VIEW A540769.PLAN_VIEW9 AS
SELECT A.PROGNAME, A.VERSION, S.PROCMS
FROM A540769.PLAN_TABLE A
LEFT OUTER JOIN A540769.DSN_STATEMNT_TABLE S
ON S."COLLID" = A."COLLID"
AND S.APPLNAME = A.APPLNAME
AND S.PROGNAME = A.PROGNAME
AND S.QUERYNO = A.QUERYNO
AND S.EXPLAIN_TIME = A.BIND_TIME
;
-------------------------------------------------------------------------
commit
;
}¢--- A540769.WK.SQL(PMGP) cre=2007-05-18 mod=2007-05-18-09.01.57 F540769 ------
-- Abfrage aus Perfomance Datenbank W.Keller 09.2007
-- Total pro GebietsPointer und GesamtTotal
--
-- Achtung: die Perfomance DB ist jetzt im DBOC für alle Systeme
-- TabellenName, Subsystem Selektion etc.
-- müssen angepasst werden
--
select current timestamp "before" from sysibm.sysdummy1
;
with c1 as
( select trunc_Timestamp(current_timestamp - 1 month, 'MON') von,
trunc_Timestamp(current_timestamp , 'MON') bis
from sysibm.sysdummy1
) ,
c as
( select trunc_Timestamp(current_timestamp - 12 days , 'DD') von,
trunc_Timestamp(current_timestamp - 11 days , 'DD') bis
from sysibm.sysdummy1
),
de1 as
( select SUBSYSTEM_ID subsys,
CONNECT_TYPE conn,
PLAN_NAME plan,
sum(occurrences * real(CLASS2_ELAPSED)) ela,
sum(occurrences * real(CLASS2_CPU)) cpu,
sum(real(OCCURRENCES)) occ,
sum(real(COMMITS)) comm,
sum(real(occurrences * READS)) reads,
sum(real(occurrences * UPDATES)) upd
from DB2PMPDB.TACCT_EXTRACT t, c
where interval_time >= von and interval_time < bis
group by subsystem_id, connect_type, plan_name
),
det as
( select
case
when lower(plan) = 'asnapply' then 'aAsnApply'
when plan <> upper(plan) then 'aSer'
when left(plan, 3) = 'ACT' then 'aBMC'
when left(plan, 3) = 'ADM' then 'aBMC'
when left(plan, 3) = 'AEX' then 'aBMC'
when left(plan, 3) = 'ASU' then 'aBMC'
when left(plan, 3) = 'CM7' then 'aBMC'
when left(plan, 3) = 'ADB' then 'aDBA'
when left(plan, 3) = 'AFR' then '?AFR'
when left(plan, 3) = 'ALA' then '?ALA'
when left(plan, 3) = 'CBR' then 'aCBri'
when left(plan, 3) = 'CNT' then '?CNT'
when left(plan, 3) = 'CSQ' then 'aMQ'
when left(plan, 3) = 'DB2' then 'aDBA'
when plan = 'DISTSERV' then 'aDistServ'
when plan = 'DSNUTIL' then 'aUtil'
when left(plan, 3) = 'DSN' then 'aDSN'
when left(plan, 2) = 'DS' then '?DS'
when left(plan, 3) = 'FPE' then 'aDBA'
when left(plan, 3) = 'FRN' then '?FRN'
when plan = 'FILEAID' then 'aFileAid'
when left(plan, 3) = 'HPS' then 'aHPS'
when left(plan, 3) = 'ISL' then '?ISL'
when left(plan, 3) = 'JSK' then '?JSK'
when left(plan, 3) = 'MB1' then 'aSer'
when left(plan, 3) = 'MB2' then 'aSer'
when left(plan, 3) = 'MQ1' then 'aMQ'
when left(plan, 3) = 'MSA' then 'aSer'
when left(plan, 3) = 'M24' then '?M24'
when left(plan, 3) = 'NTA' then 'aCics'
when left(plan, 3) = 'QMF' then 'aQMF'
when left(plan, 3) = 'SAS' then 'aSAS'
when left(plan, 3) = 'SMU' then '?SMU'
when left(plan, 3) = 'SPD' then '?SPD'
when left(plan, 3) = 'STR' then '?STR'
when left(plan, 2) = 'S6' then '?S6'
when left(plan, 3) = 'XIN' then 'aXX'
when conn = 'UTILITY' then 'aUtil'
when plan = '' then '?Leer'
else 'g' || left(plan, 2)
end gp,
de1.*
from de1
) ,
geb as
( select gp, sum(cpu) cpu, sum(ela) ela, sum(occ) occ,
sum(comm) comm, sum(reads) reads, sum(upd) upd
from det
group by gp
) ,
typ as
( select left(gp, 1) gp, sum(cpu) cpu, sum(ela) ela, sum(occ) occ,
sum(comm) comm, sum(reads) reads, sum(upd) upd
from det
group by left(gp, 1)
) ,
typGP as
( select *
from typ
where gp = 'g'
),
uni as
( select '*' || strip(gp) || '*' gp, cpu, ela, occ, comm, reads, upd
from typ
union select *
from geb
)
select u.gp "Gebiets Pointer",
decimal(round(u.cpu * 100 / g.cpu, 2), 5, 2) "cpu %",
u.cpu "cpu secs", u.ela "elapsed secs",
u.occ "occurrences", u.comm "commits",
u.reads "reads", u.upd "updates"
from uni u, typGP g
order by left(u.gp,1), 2 desc
with ur
;
select current timestamp "after" from sysibm.sysdummy1
;
x
select gp , left(subsystem_id, 3),
sum(cpu), count(*), sum(occurrences)
from e
group by gp , left(subsystem_id, 3)
order by 3 desc
with ur
;
select gp, left(subsystem_id, 3), plan_name, conn,
sum(cpu), count(*), sum(occurrences)
from e
group by gp, left(subsystem_id, 3), plan_name, conn
order by 1, 2, 3, 4
with ur
;
}¢--- A540769.WK.SQL(PMGPREL) cre=2006-09-11 mod=2006-11-28-12.49.16 F540769 ---
select 'before', current timestamp from sysibm.sysdummy1
;
with c1 as
( select trunc_Timestamp(current_timestamp - 1 month, 'MON') von,
trunc_Timestamp(current_timestamp , 'MON') bis
from sysibm.sysdummy1
) ,
c as
(
select c1.*, days(bis) - days(von) noDays,
(days(bis)-days(von))*24*3600 secs
from c1
) ,
e as
( select t.*,
occurrences * real(class2_cpu) / secs cpu,
case
when lower(plan_name) = 'asnapply' then 'gAsnApply'
when plan_name <> upper(plan_name) then 'aSer'
when left(plan_name, 3) = 'ACT' then 'aBMC'
when left(plan_name, 3) = 'ADM' then 'aBMC'
when left(plan_name, 3) = 'AEX' then 'aBMC'
when left(plan_name, 3) = 'ASU' then 'aBMC'
when left(plan_name, 3) = 'CM7' then 'aBMC'
when left(plan_name, 3) = 'ADB' then 'aDBA'
when left(plan_name, 3) = 'AFR' then '?AFR'
when left(plan_name, 3) = 'ALA' then '?ALA'
when left(plan_name, 3) = 'CBR' then 'aCBri'
when left(plan_name, 3) = 'CNT' then '?CNT'
when left(plan_name, 3) = 'CSQ' then 'aMQ'
when left(plan_name, 3) = 'DB2' then 'aDBA'
when plan_name = 'DISTSERV' then 'gDistServ'
when plan_name = 'DSNUTIL' then 'aUtil'
when left(plan_name, 3) = 'DSN' then 'aDSN'
when left(plan_name, 2) = 'DS' then '?DS'
when left(plan_name, 3) = 'FPE' then 'aDBA'
when left(plan_name, 3) = 'FRN' then '?FRN'
when plan_name = 'FILEAID' then 'aFileAid'
when left(plan_name, 3) = 'HPS' then 'aHPS'
when left(plan_name, 3) = 'ISL' then '?ISL'
when left(plan_name, 3) = 'JSK' then '?JSK'
when left(plan_name, 3) = 'MB1' then 'aSer'
when left(plan_name, 3) = 'MB2' then 'aSer'
when left(plan_name, 3) = 'MQ1' then 'aMQ'
when left(plan_name, 3) = 'MSA' then 'aSer'
when left(plan_name, 3) = 'M24' then '?M24'
when left(plan_name, 3) = 'NTA' then 'aCics'
when left(plan_name, 3) = 'QMF' then 'aQMF'
when left(plan_name, 3) = 'SAS' then 'aSAS'
when left(plan_name, 3) = 'SMU' then '?SMU'
when left(plan_name, 3) = 'SPD' then '?SPD'
when left(plan_name, 3) = 'STR' then '?STR'
when left(plan_name, 2) = 'S6' then '?S6'
when left(plan_name, 3) = 'XIN' then 'aXX'
when connect_type = 'UTILITY' then 'aUtil'
when plan_name = '' then '?Leer'
else 'g' || left(plan_name, 2)
end gp
from DB2PMPDB.TACCT_EXTRACT t, c
where interval_time >= von and interval_time < bis
)
select gp , left(subsystem_id, 3),
sum(cpu), count(*), sum(occurrences)
from e
group by gp , left(subsystem_id, 3)
order by 3 desc
with ur
;
select 'before', current timestamp from sysibm.sysdummy1
;
x
select gp, left(subsystem_id, 3), plan_name, connect_type,
sum(cpu), count(*), sum(occurrences)
from e
group by gp, left(subsystem_id, 3), plan_name, connect_type
order by 1, 2, 3, 4
with ur
;
}¢--- A540769.WK.SQL(PMPLAN) cre=2006-09-21 mod=2007-05-18-09.00.50 F540769 ----
-- Abfrage aus Perfomance Datenbank W.Keller 09.2007
-- Total pro Plan und GesamtTotal
--
-- Achtung: die Perfomance DB ist jetzt im DBOC für alle SubSysteme
-- TabellenName, Subsystem Selektion etc.
-- müssen angepasst werden
--
select 'before', current timestamp from sysibm.sysdummy1
;
with c1 as
( select trunc_Timestamp(current_timestamp - 1 month, 'MON') von,
trunc_Timestamp(current_timestamp , 'MON') bis
from sysibm.sysdummy1
) ,
c as
( select trunc_Timestamp(current_timestamp - 1 days , 'DD') von,
trunc_Timestamp(current_timestamp , 'DD') bis
from sysibm.sysdummy1
),
de1 as
( select SUBSYSTEM_ID subsys,
CONNECT_TYPE conn,
PLAN_NAME plan,
sum(occurrences * real(CLASS2_CPU)) cpu,
sum(occurrences * real(CLASS2_ELAPSED)) ela,
sum(real(OCCURRENCES)) occ,
sum(real(COMMITS)) comm,
sum(real(occurrences * READS)) reads,
sum(real(occurrences * UPDATES)) upd
from DB2PMPDB.TACCT_EXTRACT t, c
where interval_time >= von and interval_time < bis
group by subsystem_id, connect_type, plan_name
),
det as
( select
case
when lower(plan) = 'asnapply' then 'aAsnApply'
when plan <> upper(plan) then 'aSer'
when left(plan, 3) = 'ACT' then 'aBMC'
when left(plan, 3) = 'ADM' then 'aBMC'
when left(plan, 3) = 'AEX' then 'aBMC'
when left(plan, 3) = 'ASU' then 'aBMC'
when left(plan, 3) = 'CM7' then 'aBMC'
when left(plan, 3) = 'ADB' then 'aDBA'
when left(plan, 3) = 'AFR' then '?AFR'
when left(plan, 3) = 'ALA' then '?ALA'
when left(plan, 3) = 'CBR' then 'aCBri'
when left(plan, 3) = 'CNT' then '?CNT'
when left(plan, 3) = 'CSQ' then 'aMQ'
when left(plan, 3) = 'DB2' then 'aDBA'
when plan = 'DISTSERV' then 'aDistServ'
when plan = 'DSNUTIL' then 'aUtil'
when left(plan, 3) = 'DSN' then 'aDSN'
when left(plan, 2) = 'DS' then '?DS'
when left(plan, 3) = 'FPE' then 'aDBA'
when left(plan, 3) = 'FRN' then '?FRN'
when plan = 'FILEAID' then 'aFileAid'
when left(plan, 3) = 'HPS' then 'aHPS'
when left(plan, 3) = 'ISL' then '?ISL'
when left(plan, 3) = 'JSK' then '?JSK'
when left(plan, 3) = 'MB1' then 'aSer'
when left(plan, 3) = 'MB2' then 'aSer'
when left(plan, 3) = 'MQ1' then 'aMQ'
when left(plan, 3) = 'MSA' then 'aSer'
when left(plan, 3) = 'M24' then '?M24'
when left(plan, 3) = 'NTA' then 'aCics'
when left(plan, 3) = 'QMF' then 'aQMF'
when left(plan, 3) = 'SAS' then 'aSAS'
when left(plan, 3) = 'SMU' then '?SMU'
when left(plan, 3) = 'SPD' then '?SPD'
when left(plan, 3) = 'STR' then '?STR'
when left(plan, 2) = 'S6' then '?S6'
when left(plan, 3) = 'XIN' then 'aXX'
when conn = 'UTILITY' then 'aUtil'
when plan = '' then '?Leer'
else 'g' || left(plan, 2)
end gp,
de1.*
from de1
) ,
typ as
( select left(gp, 1) gp,
sum(cpu) cpu, sum(ela) ela, sum(occ) occ,
sum(comm) comm, sum(reads) reads, sum(upd) upd
from det
group by left(gp, 1)
) ,
typGP as
( select *
from typ
where gp = 'g'
) ,
uni as
( select * from det where left(gp, 1) <> 'g'
union select '*' || strip(gp) || '*' gp,
'*' subsys, '*' conn, '*' plan,
cpu, ela, occ, comm, reads, upd
from typ
)
select decimal(round(uni.cpu * 100 / typGP.cpu, 2), 5, 2) cpuPer, uni.*
from uni, typGP
order by left(gp,1), cpuPer desc
with ur
;
select 'after', current timestamp from sysibm.sysdummy1
;
x
select gp , left(subsystem_id, 3),
sum(cpu), count(*), sum(occurrences)
from e
group by gp , left(subsystem_id, 3)
order by 3 desc
with ur
;
select gp, left(subsystem_id, 3), plan_name, conn,
sum(cpu), count(*), sum(occurrences)
from e
group by gp, left(subsystem_id, 3), plan_name, conn
order by 1, 2, 3, 4
with ur
;
}¢--- A540769.WK.SQL(PM1) cre=2006-09-07 mod=2006-09-12-12.03.03 F540769 -------
select plan_name, count(distinct connect_type) c ,
min(connect_type), max(connect_type),
count(*),
sum(occurrences), sum(CLASS2_CPU),
sum(occurrences * CLASS2_CPU)
from DB2PMPDB.TACCT_EXTRACT
where interval_time > current_timestamp - 30 days
group by plan_name
order by 8 desc
;
xelect distinct connect_type, plan_name
from DB2PMPDB.TACCT_EXTRACT
where interval_time > current_timestamp - 1 month
order by connect_type, plan_name
;
xelect distinct plan
from DB2PMPDB.TACCT_EXTRACT
where interval_time > current_timestamp - 3 days
order by plan
;
select distinct subsystem_id
from DB2PMPDB.TACCT_EXTRACT
where interval_time > current_timestamp - 3 days
order by subsystem_id
;
xelect count(*), trunc_timestamp(interval_time, 'HH'),
min(interval_time), max(interval_time),
count(distinct interval_time)
from DB2PMPDB.TACCT_EXTRACT
where interval_time > current_timestamp - 3 days
group by trunc_Timestamp(interval_time, 'HH')
}¢--- A540769.WK.SQL(PRBP#CMP) cre=2013-02-21 mod=2013-02-22-11.25.43 A540769 ---
set current path oa1p;
with g as
(
select
-- systemId
groupName
,programName
, case when datetime < '2013-02-08-00.00.01'
then 'vor' else 'nach' end vn
-- begin prb insert s ap n
, sum(p.ELAPSEPKG) ELAPSEPKG
, sum(p.CPUTCBPKG) CPUTCBPKG
, sum(p.CLASS7CPU_ZIIP) CLASS7CPU_ZIIP
, sum(p.BPGETPAGE) BPGETPAGE
, sum(p.BPPGUPDAT) BPPGUPDAT
, sum(p.BPSYNCRD) BPSYNCRD
, sum(p.SQLCALL) SQLCALL
, sum(p.SQLCOUNT) SQLCOUNT
, sum(p.SELECTS) SELECTS
, sum(p.INSERTS) INSERTS
, sum(p.UPDATES) UPDATES
, sum(p.DELETES) DELETES
, sum(p.DESCRIBES) DESCRIBES
, sum(p.PREPARES) PREPARES
, sum(p.OPENS) OPENS
, sum(p.FETCHES) FETCHES
, sum(p.CLOSES) CLOSES
, sum(p.CLASS7CNT) CLASS7CNT
, sum(p.CLASS8CNT) CLASS8CNT
, sum(p.IFCIDSEQ#) IFCIDSEQ#
, sum(p.CPUSUCONV) CPUSUCONV
, sum(p.ELAPSYNCIO) ELAPSYNCIO
, sum(p.ELPLOCK) ELPLOCK
, sum(p.ELPOTHREAD) ELPOTHREAD
, sum(p.ELPOTHWRIT) ELPOTHWRIT
, sum(p.ELPUNITSW) ELPUNITSW
, sum(p.ELPARCQIS) ELPARCQIS
, sum(p.ELPDRAIN) ELPDRAIN
, sum(p.ELPCLAIM) ELPCLAIM
, sum(p.ELPARCREAD) ELPARCREAD
, sum(p.ELPPGLAT) ELPPGLAT
, sum(p.GBLMSGELAP) GBLMSGELAP
, sum(p.GBLLOKELAP) GBLLOKELAP
, sum(p.SPWAITELAP) SPWAITELAP
, sum(p.SPROCCNT) SPROCCNT
, sum(p.FUNCWAIT) FUNCWAIT
, sum(p.FUNCCNT) FUNCCNT
, sum(p.LOBWAITELAP) LOBWAITELAP
, sum(p.WTELAWTK) WTELAWTK
, sum(p.WTELAWTM) WTELAWTM
, sum(p.WTELAWTN) WTELAWTN
, sum(p.WTELAWTO) WTELAWTO
, sum(p.WTELAWTQ) WTELAWTQ
, sum(p.RLFCPULIMITU) RLFCPULIMITU
, sum(p.RLFCPUUSEDU) RLFCPUUSEDU
, sum(p.SUSPLATCH) SUSPLATCH
, sum(p.SUSPOTHER) SUSPOTHER
, sum(p.LOCKREQS) LOCKREQS
, sum(p.UNLOCKREQS) UNLOCKREQS
, sum(p.QUERYREQS) QUERYREQS
, sum(p.CHNGREQS) CHNGREQS
, sum(p.IRLMREQS) IRLMREQS
, sum(p.CLAIMREQ) CLAIMREQ
, sum(p.DRAINREQ) DRAINREQ
-- end prb insert s ap n
, 1 typ
, min(dateTime) von
, max(dateTime) bis
, count(distinct date(dateTime)) cDay
from pbDD.tacct_program p
where dateTime >= '2013-02-01-00.00.00'
and dateTime < '2013-02-18-00.00.00'
and not (dateTime >= '2013-02-08-00.00.00'
and dateTime < '2013-02-11-00.00.00')
-- and programName like 'YMF%'
group by groupName, programName
, case when datetime < '2013-02-08-00.00.01'
then 'vor' else 'nach' end
)
, t as
(
select groupName, '*total*' programName, vn
-- begin prb insert s ag n
, sum(g.ELAPSEPKG) ELAPSEPKG
, sum(g.CPUTCBPKG) CPUTCBPKG
, sum(g.CLASS7CPU_ZIIP) CLASS7CPU_ZIIP
, sum(g.BPGETPAGE) BPGETPAGE
, sum(g.BPPGUPDAT) BPPGUPDAT
, sum(g.BPSYNCRD) BPSYNCRD
, sum(g.SQLCALL) SQLCALL
, sum(g.SQLCOUNT) SQLCOUNT
, sum(g.SELECTS) SELECTS
, sum(g.INSERTS) INSERTS
, sum(g.UPDATES) UPDATES
, sum(g.DELETES) DELETES
, sum(g.DESCRIBES) DESCRIBES
, sum(g.PREPARES) PREPARES
, sum(g.OPENS) OPENS
, sum(g.FETCHES) FETCHES
, sum(g.CLOSES) CLOSES
, sum(g.CLASS7CNT) CLASS7CNT
, sum(g.CLASS8CNT) CLASS8CNT
, sum(g.IFCIDSEQ#) IFCIDSEQ#
, sum(g.CPUSUCONV) CPUSUCONV
, sum(g.ELAPSYNCIO) ELAPSYNCIO
, sum(g.ELPLOCK) ELPLOCK
, sum(g.ELPOTHREAD) ELPOTHREAD
, sum(g.ELPOTHWRIT) ELPOTHWRIT
, sum(g.ELPUNITSW) ELPUNITSW
, sum(g.ELPARCQIS) ELPARCQIS
, sum(g.ELPDRAIN) ELPDRAIN
, sum(g.ELPCLAIM) ELPCLAIM
, sum(g.ELPARCREAD) ELPARCREAD
, sum(g.ELPPGLAT) ELPPGLAT
, sum(g.GBLMSGELAP) GBLMSGELAP
, sum(g.GBLLOKELAP) GBLLOKELAP
, sum(g.SPWAITELAP) SPWAITELAP
, sum(g.SPROCCNT) SPROCCNT
, sum(g.FUNCWAIT) FUNCWAIT
, sum(g.FUNCCNT) FUNCCNT
, sum(g.LOBWAITELAP) LOBWAITELAP
, sum(g.WTELAWTK) WTELAWTK
, sum(g.WTELAWTM) WTELAWTM
, sum(g.WTELAWTN) WTELAWTN
, sum(g.WTELAWTO) WTELAWTO
, sum(g.WTELAWTQ) WTELAWTQ
, sum(g.RLFCPULIMITU) RLFCPULIMITU
, sum(g.RLFCPUUSEDU) RLFCPUUSEDU
, sum(g.SUSPLATCH) SUSPLATCH
, sum(g.SUSPOTHER) SUSPOTHER
, sum(g.LOCKREQS) LOCKREQS
, sum(g.UNLOCKREQS) UNLOCKREQS
, sum(g.QUERYREQS) QUERYREQS
, sum(g.CHNGREQS) CHNGREQS
, sum(g.IRLMREQS) IRLMREQS
, sum(g.CLAIMREQ) CLAIMREQ
, sum(g.DRAINREQ) DRAINREQ
-- end prb insert s ag n
, 0 typ
, min(von) von
, max(bis) bis
, max(cDay) cDay
from g
group by groupName, vn
)
, p as
(
select vn
, min(von) perVon
, max(bis) perBis
, max(cDay) perCDay
, 1 + days(max(bis)) - days(min(von)) perAll
, max(cDay) * float(86400) perSec
from t
group by vn
)
, u as
(
select * from g
union all select * from t
)
, n as
(
select n.*
, n.CPUTCBPKG - coalesce(v.CPUTCBPKG, 0) cpuInc
from u n left outer join u v
on v.groupName = n.groupName and v.programName = n.programName
and v.vn = 'vor'
where n.vn = 'nach'
order by n.typ asc, cpuInc desc
fetch first 103 rows only
)
, a as
(
select n.*, p.perVon, p.perBis, p.perCDay, p.perAll, p.perSec
from n, p
where p.vn = 'nach'
union all select v.*, n.cpuInc
, p.perVon, p.perBis, p.perCDay, p.perAll, p.perSec
from n join u v
on v.groupName = n.groupName and v.programName = n.programName
and v.vn = 'vor'
, p
where p.vn = 'vor'
)
select case when vn='nach' then fosFmtE8(cpuInc/perSec)
else substr(right(' ' || strip(char(int(round(
cpuTcbPkg*100/(cpuTcbPkg+cpuInc), 0)))), 7) || '%',1,8)
end "cpuInc"
, substr(groupName, 1, 4) "dbSy"
, substr(programName, 1, 8) program
, substr(right(' ' || strip(char(cDay)), 4), 1, 4) "days"
, vn
-- begin prb insert pen aa e~/a.perSec
-- tacct_program a, fsoFmtE7, all, expr ~/a.perSec
, fosFmtE7(a.ELAPSEPKG/a.perSec) "pkgElap"
, fosFmtE7(a.CPUTCBPKG/a.perSec) "pkgCpu"
, fosFmtE7(a.CLASS7CPU_ZIIP/a.perSec) "pkgZIIP"
, fosPrWait(a.ELAPSYNCIO/a.perSec, a.ELPLOCK/a.perSec
, a.ELPOTHREAD/a.perSec, a.ELPOTHWRIT/a.perSec
, a.ELPUNITSW/a.perSec, a.ELPARCQIS/a.perSec
, a.ELPDRAIN/a.perSec, a.ELPCLAIM/a.perSec
, a.ELPARCREAD/a.perSec, a.ELPPGLAT/a.perSec
, a.GBLMSGELAP/a.perSec, a.GBLLOKELAP/a.perSec
, a.SPWAITELAP/a.perSec, a.FUNCWAIT/a.perSec
, a.LOBWAITELAP/a.perSec, a.WTELAWTK/a.perSec
, a.WTELAWTM/a.perSec, a.WTELAWTN/a.perSec, a.WTELAWTO/a.perSec
, a.WTELAWTQ/a.perSec) "wait % 1. % 2. % 3."
, fosFmtE7(a.BPGETPAGE/a.perSec) "bpGetPg"
, fosFmtE7(a.BPPGUPDAT/a.perSec) "bpUpdPg"
, fosFmtE7(a.BPSYNCRD/a.perSec) "bpSynRe"
, fosFmtE7(a.SQLCALL/a.perSec) SQLCALL
, fosFmtE7(a.SQLCOUNT/a.perSec) SQLCOUNT
, fosFmtE7(a.SELECTS/a.perSec) SELECTS
, fosFmtE7(a.INSERTS/a.perSec) INSERTS
, fosFmtE7(a.UPDATES/a.perSec) UPDATES
, fosFmtE7(a.DELETES/a.perSec) DELETES
, fosFmtE7(a.DESCRIBES/a.perSec) "describ"
, fosFmtE7(a.PREPARES/a.perSec) "prepare"
, fosFmtE7(a.OPENS/a.perSec) OPENS
, fosFmtE7(a.FETCHES/a.perSec) FETCHES
, fosFmtE7(a.CLOSES/a.perSec) CLOSES
, real((a.ELAPSYNCIO + a.ELPLOCK + a.ELPOTHREAD + a.ELPOTHWRIT
+ a.ELPUNITSW + a.ELPARCQIS + a.ELPDRAIN + a.ELPCLAIM
+ a.ELPARCREAD + a.ELPPGLAT + a.GBLMSGELAP + a.GBLLOKELAP
+ a.SPWAITELAP + a.FUNCWAIT + a.LOBWAITELAP + a.WTELAWTK
+ a.WTELAWTM + a.WTELAWTN + a.WTELAWTO
+ a.WTELAWTQ)/a.perSec) "wait"
, fosFmtE7(a.CLASS7CNT/a.perSec) CLASS7CNT
, fosFmtE7(a.CLASS8CNT/a.perSec) CLASS8CNT
, fosFmtE7(a.IFCIDSEQ#/a.perSec) IFCIDSEQ#
, fosFmtE7(a.CPUSUCONV/a.perSec) CPUSUCONV
, fosFmtE7(a.ELAPSYNCIO/a.perSec) "syncIOW"
, fosFmtE7(a.ELPLOCK/a.perSec) ELPLOCK
, fosFmtE7(a.ELPOTHREAD/a.perSec) "othReaW"
, fosFmtE7(a.ELPOTHWRIT/a.perSec) "othWriW"
, fosFmtE7(a.ELPUNITSW/a.perSec) "unitSwW"
, fosFmtE7(a.ELPARCQIS/a.perSec) "arcLQuW"
, fosFmtE7(a.ELPDRAIN/a.perSec) "drainW"
, fosFmtE7(a.ELPCLAIM/a.perSec) "claimW"
, fosFmtE7(a.ELPARCREAD/a.perSec) "arcLReW"
, fosFmtE7(a.ELPPGLAT/a.perSec) "pgLatW"
, fosFmtE7(a.GBLMSGELAP/a.perSec) "glMsgW"
, fosFmtE7(a.GBLLOKELAP/a.perSec) "glLockW"
, fosFmtE7(a.SPWAITELAP/a.perSec) "stPrW"
, fosFmtE7(a.SPROCCNT/a.perSec) SPROCCNT
, fosFmtE7(a.FUNCWAIT/a.perSec) FUNCWAIT
, fosFmtE7(a.FUNCCNT/a.perSec) FUNCCNT
, fosFmtE7(a.LOBWAITELAP/a.perSec) "lobW"
, fosFmtE7(a.WTELAWTK/a.perSec) "glChiW"
, fosFmtE7(a.WTELAWTM/a.perSec) "glOthW"
, fosFmtE7(a.WTELAWTN/a.perSec) "glPrtW"
, fosFmtE7(a.WTELAWTO/a.perSec) "glPgPhW"
, fosFmtE7(a.WTELAWTQ/a.perSec) "glOtPhW"
, fosFmtE7(a.RLFCPULIMITU/a.perSec) RLFCPULIMITU
, fosFmtE7(a.RLFCPUUSEDU/a.perSec) RLFCPUUSEDU
, fosFmtE7(a.SUSPLATCH/a.perSec) SUSPLATCH
, fosFmtE7(a.SUSPOTHER/a.perSec) SUSPOTHER
, fosFmtE7(a.LOCKREQS/a.perSec) LOCKREQS
, fosFmtE7(a.UNLOCKREQS/a.perSec) UNLOCKREQS
, fosFmtE7(a.QUERYREQS/a.perSec) QUERYREQS
, fosFmtE7(a.CHNGREQS/a.perSec) CHNGREQS
, fosFmtE7(a.IRLMREQS/a.perSec) IRLMREQS
, fosFmtE7(a.CLAIMREQ/a.perSec) CLAIMREQ
, fosFmtE7(a.DRAINREQ/a.perSec) DRAINREQ
-- end prb insert pen aa e~/a.perSec
, von, bis, cDay
, perCDay, perAll, perSec, perVon, perBis
from a
order by typ asc, cpuInc desc, groupName, programName, vn
;x;
select coalesce(v.groupName, n.groupName) group
, coalesce(v.programName, n.programName) program
, fosFmte8(coalesce(n.CPUTCBPKG, 0)
- coalesce(v.CPUTCBPKG, 0)) "cpuNa-Vo"
, v.vn
, n.vn
, real(coalesce(n.CPUTCBPKG, 0)
- coalesce(v.CPUTCBPKG, 0)) ord1
}¢--- A540769.WK.SQL(PRBP#TOP) cre=2013-02-21 mod=2013-03-27-10.51.21 A540769 ---
set current path oa1p;
with p as
(
select
groupName
, programName
-- begin prb insert snp ap
-- tacct_program p, all, expr sum(~)
, sum(p.ELAPSEPKG) ELAPSEPKG
, sum(p.CPUTCBPKG) CPUTCBPKG
, sum(p.CLASS7CPU_ZIIP) CLASS7CPU_ZIIP
, sum(p.BPGETPAGE) BPGETPAGE
, sum(p.BPPGUPDAT) BPPGUPDAT
, sum(p.BPSYNCRD) BPSYNCRD
, sum(p.SQLCALL) SQLCALL
, sum(p.SQLCOUNT) SQLCOUNT
, sum(p.SELECTS) SELECTS
, sum(p.INSERTS) INSERTS
, sum(p.UPDATES) UPDATES
, sum(p.DELETES) DELETES
, sum(p.DESCRIBES) DESCRIBES
, sum(p.PREPARES) PREPARES
, sum(p.OPENS) OPENS
, sum(p.FETCHES) FETCHES
, sum(p.CLOSES) CLOSES
, sum(p.CLASS7CNT) CLASS7CNT
, sum(p.CLASS8CNT) CLASS8CNT
, sum(p.IFCIDSEQ#) IFCIDSEQ#
, sum(p.CPUSUCONV) CPUSUCONV
, sum(p.ELAPSYNCIO) ELAPSYNCIO
, sum(p.ELPLOCK) ELPLOCK
, sum(p.ELPOTHREAD) ELPOTHREAD
, sum(p.ELPOTHWRIT) ELPOTHWRIT
, sum(p.ELPUNITSW) ELPUNITSW
, sum(p.ELPARCQIS) ELPARCQIS
, sum(p.ELPDRAIN) ELPDRAIN
, sum(p.ELPCLAIM) ELPCLAIM
, sum(p.ELPARCREAD) ELPARCREAD
, sum(p.ELPPGLAT) ELPPGLAT
, sum(p.GBLMSGELAP) GBLMSGELAP
, sum(p.GBLLOKELAP) GBLLOKELAP
, sum(p.SPWAITELAP) SPWAITELAP
, sum(p.SPROCCNT) SPROCCNT
, sum(p.FUNCWAIT) FUNCWAIT
, sum(p.FUNCCNT) FUNCCNT
, sum(p.LOBWAITELAP) LOBWAITELAP
, sum(p.WTELAWTK) WTELAWTK
, sum(p.WTELAWTM) WTELAWTM
, sum(p.WTELAWTN) WTELAWTN
, sum(p.WTELAWTO) WTELAWTO
, sum(p.WTELAWTQ) WTELAWTQ
, sum(p.RLFCPULIMITU) RLFCPULIMITU
, sum(p.RLFCPUUSEDU) RLFCPUUSEDU
, sum(p.SUSPLATCH) SUSPLATCH
, sum(p.SUSPOTHER) SUSPOTHER
, sum(p.LOCKREQS) LOCKREQS
, sum(p.UNLOCKREQS) UNLOCKREQS
, sum(p.QUERYREQS) QUERYREQS
, sum(p.CHNGREQS) CHNGREQS
, sum(p.IRLMREQS) IRLMREQS
, sum(p.CLAIMREQ) CLAIMREQ
, sum(p.DRAINREQ) DRAINREQ
-- end prb insert snp ap
, sum(p.CPUTCBPKG * 16000000 / max(1,p.CPUSUCONV)) suTcbPkg
, min(p.CPUSUCONV) cpuSUMin
, max(p.CPUSUCONV) cpuSUMax
, min(date(dateTime)) dateFrom
, max(date(dateTime)) dateTo
, count(distinct date(dateTime)) cDay
from pbDD.tacct_program p
where dateTime between '2013-03-01-00.00.00'
and '2013-03-31-24.00.00'
group by groupName
,programName
)
, g as
(
select
groupName
,'%' programName
-- begin prb insert snp ap
-- tacct_program p, all, expr sum(~)
, sum(p.ELAPSEPKG) ELAPSEPKG
, sum(p.CPUTCBPKG) CPUTCBPKG
, sum(p.CLASS7CPU_ZIIP) CLASS7CPU_ZIIP
, sum(p.BPGETPAGE) BPGETPAGE
, sum(p.BPPGUPDAT) BPPGUPDAT
, sum(p.BPSYNCRD) BPSYNCRD
, sum(p.SQLCALL) SQLCALL
, sum(p.SQLCOUNT) SQLCOUNT
, sum(p.SELECTS) SELECTS
, sum(p.INSERTS) INSERTS
, sum(p.UPDATES) UPDATES
, sum(p.DELETES) DELETES
, sum(p.DESCRIBES) DESCRIBES
, sum(p.PREPARES) PREPARES
, sum(p.OPENS) OPENS
, sum(p.FETCHES) FETCHES
, sum(p.CLOSES) CLOSES
, sum(p.CLASS7CNT) CLASS7CNT
, sum(p.CLASS8CNT) CLASS8CNT
, sum(p.IFCIDSEQ#) IFCIDSEQ#
, sum(p.CPUSUCONV) CPUSUCONV
, sum(p.ELAPSYNCIO) ELAPSYNCIO
, sum(p.ELPLOCK) ELPLOCK
, sum(p.ELPOTHREAD) ELPOTHREAD
, sum(p.ELPOTHWRIT) ELPOTHWRIT
, sum(p.ELPUNITSW) ELPUNITSW
, sum(p.ELPARCQIS) ELPARCQIS
, sum(p.ELPDRAIN) ELPDRAIN
, sum(p.ELPCLAIM) ELPCLAIM
, sum(p.ELPARCREAD) ELPARCREAD
, sum(p.ELPPGLAT) ELPPGLAT
, sum(p.GBLMSGELAP) GBLMSGELAP
, sum(p.GBLLOKELAP) GBLLOKELAP
, sum(p.SPWAITELAP) SPWAITELAP
, sum(p.SPROCCNT) SPROCCNT
, sum(p.FUNCWAIT) FUNCWAIT
, sum(p.FUNCCNT) FUNCCNT
, sum(p.LOBWAITELAP) LOBWAITELAP
, sum(p.WTELAWTK) WTELAWTK
, sum(p.WTELAWTM) WTELAWTM
, sum(p.WTELAWTN) WTELAWTN
, sum(p.WTELAWTO) WTELAWTO
, sum(p.WTELAWTQ) WTELAWTQ
, sum(p.RLFCPULIMITU) RLFCPULIMITU
, sum(p.RLFCPUUSEDU) RLFCPUUSEDU
, sum(p.SUSPLATCH) SUSPLATCH
, sum(p.SUSPOTHER) SUSPOTHER
, sum(p.LOCKREQS) LOCKREQS
, sum(p.UNLOCKREQS) UNLOCKREQS
, sum(p.QUERYREQS) QUERYREQS
, sum(p.CHNGREQS) CHNGREQS
, sum(p.IRLMREQS) IRLMREQS
, sum(p.CLAIMREQ) CLAIMREQ
, sum(p.DRAINREQ) DRAINREQ
-- end prb insert snp ap
, sum(suTcbPkg) suTcbPkg
, min(cpuSUMin) cpuSUMin
, max(cpuSUMax) cpuSUMax
, min(dateFrom) dateFrom
, max(dateTo ) dateTo
, max(cDay) cDay
from p
group by groupName
)
, s as
(
select max(cDay) * 86400 cSec
from g
)
, u as
(
select * from g
union all (select * from p
order by CPUTCBPKG desc
fetch first 100 rows only)
)
select
groupName
, programName
-- begin prb insert enp au e(~/s.cSec)
-- tacct_program u, fsoFmtE7, all, expr (~/s.cSec)
, fosFmtE7((u.ELAPSEPKG/s.cSec)) "pkgElap"
, fosFmtE7((u.CPUTCBPKG/s.cSec)) "pkgCpu"
, fosFmtE7((u.CLASS7CPU_ZIIP/s.cSec)) "pkgZIIP"
, fosPrWait((u.ELAPSYNCIO/s.cSec), (u.ELPLOCK/s.cSec)
, (u.ELPOTHREAD/s.cSec), (u.ELPOTHWRIT/s.cSec)
, (u.ELPUNITSW/s.cSec), (u.ELPARCQIS/s.cSec)
, (u.ELPDRAIN/s.cSec), (u.ELPCLAIM/s.cSec)
, (u.ELPARCREAD/s.cSec), (u.ELPPGLAT/s.cSec)
, (u.GBLMSGELAP/s.cSec), (u.GBLLOKELAP/s.cSec)
, (u.SPWAITELAP/s.cSec), (u.FUNCWAIT/s.cSec)
, (u.LOBWAITELAP/s.cSec), (u.WTELAWTK/s.cSec)
, (u.WTELAWTM/s.cSec), (u.WTELAWTN/s.cSec), (u.WTELAWTO/s.cSec)
, (u.WTELAWTQ/s.cSec)) "wait % 1. % 2. % 3."
, fosFmtE7((u.BPGETPAGE/s.cSec)) "bpGetPg"
, fosFmtE7((u.BPPGUPDAT/s.cSec)) "bpUpdPg"
, fosFmtE7((u.BPSYNCRD/s.cSec)) "bpSynRe"
, fosFmtE7((u.SQLCALL/s.cSec)) SQLCALL
, fosFmtE7((u.SQLCOUNT/s.cSec)) SQLCOUNT
, fosFmtE7((u.SELECTS/s.cSec)) SELECTS
, fosFmtE7((u.INSERTS/s.cSec)) INSERTS
, fosFmtE7((u.UPDATES/s.cSec)) UPDATES
, fosFmtE7((u.DELETES/s.cSec)) DELETES
, fosFmtE7((u.DESCRIBES/s.cSec)) "describ"
, fosFmtE7((u.PREPARES/s.cSec)) "prepare"
, fosFmtE7((u.OPENS/s.cSec)) OPENS
, fosFmtE7((u.FETCHES/s.cSec)) FETCHES
, fosFmtE7((u.CLOSES/s.cSec)) CLOSES
, real(((u.ELAPSYNCIO + u.ELPLOCK + u.ELPOTHREAD + u.ELPOTHWRIT
+ u.ELPUNITSW + u.ELPARCQIS + u.ELPDRAIN + u.ELPCLAIM
+ u.ELPARCREAD + u.ELPPGLAT + u.GBLMSGELAP + u.GBLLOKELAP
+ u.SPWAITELAP + u.FUNCWAIT + u.LOBWAITELAP + u.WTELAWTK
+ u.WTELAWTM + u.WTELAWTN + u.WTELAWTO
+ u.WTELAWTQ)/s.cSec)) "wait"
, fosFmtE7((u.CLASS7CNT/s.cSec)) CLASS7CNT
, fosFmtE7((u.CLASS8CNT/s.cSec)) CLASS8CNT
, fosFmtE7((u.IFCIDSEQ#/s.cSec)) IFCIDSEQ#
, fosFmtE7((u.CPUSUCONV/s.cSec)) CPUSUCONV
, fosFmtE7((u.ELAPSYNCIO/s.cSec)) "syncIOW"
, fosFmtE7((u.ELPLOCK/s.cSec)) ELPLOCK
, fosFmtE7((u.ELPOTHREAD/s.cSec)) "othReaW"
, fosFmtE7((u.ELPOTHWRIT/s.cSec)) "othWriW"
, fosFmtE7((u.ELPUNITSW/s.cSec)) "unitSwW"
, fosFmtE7((u.ELPARCQIS/s.cSec)) "arcLQuW"
, fosFmtE7((u.ELPDRAIN/s.cSec)) "drainW"
, fosFmtE7((u.ELPCLAIM/s.cSec)) "claimW"
, fosFmtE7((u.ELPARCREAD/s.cSec)) "arcLReW"
, fosFmtE7((u.ELPPGLAT/s.cSec)) "pgLatW"
, fosFmtE7((u.GBLMSGELAP/s.cSec)) "glMsgW"
, fosFmtE7((u.GBLLOKELAP/s.cSec)) "glLockW"
, fosFmtE7((u.SPWAITELAP/s.cSec)) "stPrW"
, fosFmtE7((u.SPROCCNT/s.cSec)) SPROCCNT
, fosFmtE7((u.FUNCWAIT/s.cSec)) FUNCWAIT
, fosFmtE7((u.FUNCCNT/s.cSec)) FUNCCNT
, fosFmtE7((u.LOBWAITELAP/s.cSec)) "lobW"
, fosFmtE7((u.WTELAWTK/s.cSec)) "glChiW"
, fosFmtE7((u.WTELAWTM/s.cSec)) "glOthW"
, fosFmtE7((u.WTELAWTN/s.cSec)) "glPrtW"
, fosFmtE7((u.WTELAWTO/s.cSec)) "glPgPhW"
, fosFmtE7((u.WTELAWTQ/s.cSec)) "glOtPhW"
, fosFmtE7((u.RLFCPULIMITU/s.cSec)) RLFCPULIMITU
, fosFmtE7((u.RLFCPUUSEDU/s.cSec)) RLFCPUUSEDU
, fosFmtE7((u.SUSPLATCH/s.cSec)) SUSPLATCH
, fosFmtE7((u.SUSPOTHER/s.cSec)) SUSPOTHER
, fosFmtE7((u.LOCKREQS/s.cSec)) LOCKREQS
, fosFmtE7((u.UNLOCKREQS/s.cSec)) UNLOCKREQS
, fosFmtE7((u.QUERYREQS/s.cSec)) QUERYREQS
, fosFmtE7((u.CHNGREQS/s.cSec)) CHNGREQS
, fosFmtE7((u.IRLMREQS/s.cSec)) IRLMREQS
, fosFmtE7((u.CLAIMREQ/s.cSec)) CLAIMREQ
, fosFmtE7((u.DRAINREQ/s.cSec)) DRAINREQ
-- end prb insert enp au e(~/s.cSec)
, fosFmtE7(suTcbPkg / s.cSec) suTcbPkg
, int(CPUSUMin) cpuSuMin
, int(CPUSUMax) cpuSuMax
, dateFrom
, dateTo
, u.cDay, s.cSec/86400 tDays, fosFmte7(s.cSec) cSec
from u, s
with ur
;;;
-- end prb insert sn ap
select
-- systemId
groupName
,programName
-- begin prb insert e s ap
, fosFmtE7(sum(p.ELAPSEPKG)) "pkgElap"
, fosFmtE7(sum(p.CPUTCBPKG)) "pkgCpu"
, fosFmtE7(sum(p.CLASS7CPU_ZIIP)) "pkgZIIP"
, fosPrWait(sum(p.ELAPSYNCIO), sum(p.ELPLOCK), sum(p.ELPOTHREAD)
, sum(p.ELPOTHWRIT), sum(p.ELPUNITSW), sum(p.ELPARCQIS)
, sum(p.ELPDRAIN), sum(p.ELPCLAIM), sum(p.ELPARCREAD)
, sum(p.ELPPGLAT), sum(p.GBLMSGELAP), sum(p.GBLLOKELAP)
, sum(p.SPWAITELAP), sum(p.FUNCWAIT), sum(p.LOBWAITELAP)
, sum(p.WTELAWTK), sum(p.WTELAWTM), sum(p.WTELAWTN)
, sum(p.WTELAWTO), sum(p.WTELAWTQ)) "wait % 1. % 2. % 3."
, fosFmtE7(sum(p.BPGETPAGE)) "bpGetPg"
, fosFmtE7(sum(p.BPPGUPDAT)) "bpUpdPg"
, fosFmtE7(sum(p.BPSYNCRD)) "bpSynRe"
, fosFmtE7(sum(p.SQLCALL)) SQLCALL
, fosFmtE7(sum(p.SQLCOUNT)) SQLCOUNT
, fosFmtE7(sum(p.SELECTS)) SELECTS
, fosFmtE7(sum(p.INSERTS)) INSERTS
, fosFmtE7(sum(p.UPDATES)) UPDATES
, fosFmtE7(sum(p.DELETES)) DELETES
, fosFmtE7(sum(p.DESCRIBES)) "describ"
, fosFmtE7(sum(p.PREPARES)) "prepare"
, fosFmtE7(sum(p.OPENS)) OPENS
, fosFmtE7(sum(p.FETCHES)) FETCHES
, fosFmtE7(sum(p.CLOSES)) CLOSES
, real(sum(p.ELAPSYNCIO + p.ELPLOCK + p.ELPOTHREAD
+ p.ELPOTHWRIT + p.ELPUNITSW + p.ELPARCQIS + p.ELPDRAIN
+ p.ELPCLAIM + p.ELPARCREAD + p.ELPPGLAT + p.GBLMSGELAP
+ p.GBLLOKELAP + p.SPWAITELAP + p.FUNCWAIT + p.LOBWAITELAP
+ p.WTELAWTK + p.WTELAWTM + p.WTELAWTN + p.WTELAWTO
+ p.WTELAWTQ)) "wait"
-- end prb insert e s ap
, sum(p.CPUTCBPKG) ord1
from pbDD.tacct_program p
where dateTime > current timestamp - 5 days
-- and programName like 'YMF%'
group by --systemId
groupName
,programName
order by ord1 desc
fetch first 100 rows only
}¢--- A540769.WK.SQL(PRFUNWAI) cre=2013-02-15 mod=2016-02-07-13.28.05 A540769 ---
/*--- functions for PRB ------------------------------------------------
Performance puRe Bmc Walter, 21.2.13
oa1p.fqzGeWait: total wait plus 3 biggest singel wait numbers
for tacct_general
oa1p.fqzPrWait: total wait plus 3 biggest singel wait numbers
for tacct_program
hint: use rexx prb to generate correct sqlCalls|
----------------------------------------------------------------------*/
set current sqlid = 'S100447';
/* -----------
29 ELAPSYNCIO syIO FLOAT 8
30 ELPLOCK loLL FLOAT 8
31 ELPOTHREAD otRe FLOAT 8
32 ELPOTHWRIT otWr FLOAT 8
33 ELPUNITSW unSw FLOAT 8
34 ELPARCQIS arQu FLOAT 8
35 ELPDRAIN drai FLOAT 8
36 ELPCLAIM clai FLOAT 8
37 ELPARCREAD arLR FLOAT 8
38 ELPPGLAT pgLa FLOAT 8
39 GBLMSGELAP gMsg FLOAT 8
40 GBLLOKELAP gLok FLOAT 8
41 SPWAITELAP stPr FLOAT 8
43 FUNCWAIT func FLOAT 8
45 LOBWAITELAP lob FLOAT 8
47 WTELAWTK gLch FLOAT 8 gblChiWait
48 WTELAWTM gLOt FLOAT 8 gblOtLWait
49 WTELAWTN gPrt FLOAT 8 gblPrPWait
50 WTELAWTO gPag FLOAT 8 gblPgPWait
51 WTELAWTQ gPOt FLOAT 8 gblOtPWait
--------- */
drop function OA1P.fosGeWait(
syIO float, otRe float, otWr float, opCl float
, daSe float, loLL float, lgRg float, loWr float
, arLo float, arLR float, drai float, clai float
, gCon float, gLch float, gLOt float, gPrt float
, gPag float, gPOt float, gMsg float, unSw float
, otSw float, stPr float, func float, lob float
) ;
drop function OA1P.fqzGeWait(
syIO float, otRe float, otWr float, opCl float
, daSe float, loLL float, lgRg float, loWr float
, arLo float, arLR float, drai float, clai float
, gCon float, gLch float, gLOt float, gPrt float
, gPag float, gPOt float, gMsg float, unSw float
, otSw float, stPr float, func float, lob float
) ;
drop function OA1P.fosPrWait(
syIO float, loLL float, otRe float, otWr float
, unSw float, arQu float, drai float, clai float
, arLR float, pgLa float, gMsg float, gLok float
, stPr float, func float, lob float, gLch float
, gLOt float, gPrt float, gPag float, gPOt float
) ;
drop function OA1P.fqzPrWait(
syIO float, loLL float, otRe float, otWr float
, unSw float, arQu float, drai float, clai float
, arLR float, pgLa float, gMsg float, gLok float
, stPr float, func float, lob float, gLch float
, gLOt float, gPrt float, gPag float, gPOt float
) ;
-- commit; sdf;
terminator?;
--#SET TERMINATOR ?
create function OA1P.fqzPrWait(
syIO float, loLL float, otRe float, otWr float
, unSw float, arQu float, drai float, clai float
, arLR float, pgLa float, gMsg float, gLok float
, stPr float, func float, lob float, gLch float
, gLOt float, gPrt float, gPag float, gPOt float
)
returns char(28)
deterministic no external action reads sql data
begin
declare sm float;
declare res, a1, a2 varchar(140) default '';
declare la, cu char(7);
declare cx int;
set sm = syIO + loLL + otRe + otWr
+ unSw + arQu + drai + clai
+ arLR + pgLa + gMsg + gLok
+ stPr + func + lob + gLch
+ gLOt + gPrt + gPag + gPOt ;
if sm < 0 then
return OA1P.fqzFmtE8(sm) || ' |||';
elseif sm < 1e-9 then
return OA1P.fqzFmtE7(sm);
end if;
set a1 =
case when syIO <= sm/200 then '' else digits(dec(round(
min(99, 100 * syIO/ sm)), 2))||'syIO ' end
|| case when loLL <= sm/200 then '' else digits(dec(round(
min(99, 100 * loLL / sm)), 2))||'loLL ' end
|| case when otRe <= sm/200 then '' else digits(dec(round(
min(99, 100 * otRe / sm)), 2))||'otRe ' end
|| case when otWr <= sm/200 then '' else digits(dec(round(
min(99, 100 * otWr / sm)), 2))||'otWr ' end
|| case when unSw <= sm/200 then '' else digits(dec(round(
min(99, 100 * unSw / sm)), 2))||'unSw ' end
|| case when arQu <= sm/200 then '' else digits(dec(round(
min(99, 100 * arQu / sm)), 2))||'arQu ' end
|| case when drai <= sm/200 then '' else digits(dec(round(
min(99, 100 * drai / sm)), 2))||'drai ' end
|| case when clai <= sm/200 then '' else digits(dec(round(
min(99, 100 * clai / sm)), 2))||'clai ' end
|| case when arLR <= sm/200 then '' else digits(dec(round(
min(99, 100 * arLR / sm)), 2))||'arLR ' end
|| case when pgLa <= sm/200 then '' else digits(dec(round(
min(99, 100 * pgLa / sm)), 2))||'pgLa ' end
|| case when gMsg <= sm/200 then '' else digits(dec(round(
min(99, 100 * gMsg / sm)), 2))||'gMsg ' end
|| case when gLok <= sm/200 then '' else digits(dec(round(
min(99, 100 * gLok / sm)), 2))||'gLok ' end
|| case when stPr <= sm/200 then '' else digits(dec(round(
min(99, 100 * stPr / sm)), 2))||'stPr ' end
|| case when func <= sm/200 then '' else digits(dec(round(
min(99, 100 * func / sm)), 2))||'func ' end
|| case when lob <= sm/200 then '' else digits(dec(round(
min(99, 100 * lob / sm)), 2))||'lob ' end
|| case when gLch <= sm/200 then '' else digits(dec(round(
min(99, 100 * gLch / sm)), 2))||'gLch ' end
|| case when gLOt <= sm/200 then '' else digits(dec(round(
min(99, 100 * gLOt / sm)), 2))||'gLOt ' end
|| case when gPrt <= sm/200 then '' else digits(dec(round(
min(99, 100 * gPrt / sm)), 2))||'gPrt ' end
|| case when gPag <= sm/200 then '' else digits(dec(round(
min(99, 100 * gPag / sm)), 2))||'gPag ' end
|| case when gPOt <= sm/200 then '' else digits(dec(round(
min(99, 100 * gPOt / sm)), 2))||'gPOt ' end ;
set la = x'ffffffff';
loop
set cx = 1;
set cu = '';
while cx < length(a1) do
if substr(a1, cx, 7) < la and substr(a1, cx, 7) > cu then
set cu = substr(a1, cx, 7);
end if;
set cx = cx + 7;
end while;
set a2 = a2 || cu;
if cu = '' or length(a2) >= 21 then
return left(OA1P.fqzFmtE7(sm) || ' ' || a2, 28);
end if;
set la = cu;
end loop;
end
?
terminator;?
--#SET TERMINATOR ;
create function OA1P.fosPrWait(
syIO float, loLL float, otRe float, otWr float
, unSw float, arQu float, drai float, clai float
, arLR float, pgLa float, gMsg float, gLok float
, stPr float, func float, lob float, gLch float
, gLOt float, gPrt float, gPag float, gPOt float
)
returns char(28)
deterministic no external action reads sql data
return OA1P.fqzPrWait(
syIO , loLL , otRe , otWr
, unSw , arQu , drai , clai
, arLR , pgLa , gMsg , gLok
, stPr , func , lob , gLch
, gLOt , gPrt , gPag , gPOt
)
;
commit;
select oa1p.fqzPrWait( 1e1, 2, 3, 4, 5e-1,6,7,8,9,10,11,12
, 13, 14, 15,16, 17, 18, 91, 20 )
from sysibm.sysDummy1
;
set current path oa1p;
select
oa1p.fqzPrWait(
ELAPSYNCIO , ELPLOCK , ELPOTHREAD , ELPOTHWRIT
, ELPUNITSW , ELPARCQIS , ELPDRAIN , ELPCLAIM
, ELPARCREAD , ELPPGLAT , GBLMSGELAP , GBLLOKELAP
, SPWAITELAP , FUNCWAIT , LOBWAITELAP, WTELAWTK
, WTELAWTM , WTELAWTN , WTELAWTO , WTELAWTQ
)
, p.*
from PBdd.tACCT_program p
where programName like 'YWM05%'
and dateTime > current timestamp - 2 days
;
/* -----------
40 EWAITIO syIO FLOAT 8 synIOWait
44 WAITREADIO otRe FLOAT 8 othReaWait
45 WAITWRITEIO otWr FLOAT 8 othWriWait
63 OPENCLSELAP opCl FLOAT 8 opeCloWait
65 DATASETELAP daSe FLOAT 8 datSetWait
41 EWAITLAL loLL FLOAT 8 locLoLaWait
64 SYSLGRNGELAP lgRg FLOAT 8 sysLgRaWait
86 LOGWRTELAP loWr FLOAT 8 logWrtWait
47 WAITARCLOG arLo FLOAT 8 arcLogWait
61 ARCHREADWAR arLR FLOAT 8 arcReaWait
58 DRAINLKWDR drai FLOAT 8 drainWait
59 CLAIMRLWCL clai FLOAT 8 claimWait
75 GBLLOKELAP gCon FLOAT 8 gblConWait s
115 WTELAWTK gLch FLOAT 8 gblChiWait
116 WTELAWTM gLOt FLOAT 8 gblOtLWait
117 WTELAWTN gPrt FLOAT 8 gblPrPWait
118 WTELAWTO gPag FLOAT 8 gblPgPWait
119 WTELAWTQ gPOt FLOAT 8 gblOtPWait
73 GBLMSGELAP gMsg FLOAT 8 gblMsgWait s
46 WAITSYNCEVENT unSw FLOAT 8 uniSwiWait
66 OTHERSWELAP otSw FLOAT 8 othSwiEla
80 SPWAITELAP stPr FLOAT 8 stoProWait
94 FUNCWAIT func FLOAT 8 funcWait
105 LOBWAITELAP lob FLOAT 8 lobWait
---------- */
terminator?;
--#SET TERMINATOR ?
create function OA1P.fqzGeWait(
syIO float, otRe float, otWr float, opCl float
, daSe float, loLL float, lgRg float, loWr float
, arLo float, arLR float, drai float, clai float
, gCon float, gLch float, gLOt float, gPrt float
, gPag float, gPOt float, gMsg float, unSw float
, otSw float, stPr float, func float, lob float
)
returns char(28)
deterministic no external action reads sql data
begin
declare sm float;
declare res, a1, a2 varchar(250) default '';
declare la, cu char(7);
declare cx int;
set sm = syIO + otRe + otWr + opCl
+ daSe + loLL + lgRg + loWr
+ arLo + arLR + drai + clai
+ gCon + gLch + gLOt + gPrt
+ gPag + gPOt + gMsg + unSw
+ otSw + stPr + func + lob ;
if sm < 0 then
return OA1P.fqzFmtE8(sm) || ' |||';
elseif sm < 1e-9 then
return OA1P.fqzFmtE7(sm);
end if;
set a1 =
case when syIO <= sm/200 then '' else digits(dec(round(
min(99, 100 * syIO/ sm)), 2))||'syIO ' end
|| case when otRe <= sm/200 then '' else digits(dec(round(
min(99, 100 * otRe / sm)), 2))||'otRe ' end
|| case when otWr <= sm/200 then '' else digits(dec(round(
min(99, 100 * otWr / sm)), 2))||'otWr ' end
|| case when opCl <= sm/200 then '' else digits(dec(round(
min(99, 100 * opCl / sm)), 2))||'opCl ' end
|| case when daSe <= sm/200 then '' else digits(dec(round(
min(99, 100 * daSe / sm)), 2))||'daSe ' end
|| case when loLL <= sm/200 then '' else digits(dec(round(
min(99, 100 * loLL / sm)), 2))||'loLL ' end
|| case when lgRg <= sm/200 then '' else digits(dec(round(
min(99, 100 * lgRg / sm)), 2))||'lgRg ' end
|| case when loWr <= sm/200 then '' else digits(dec(round(
min(99, 100 * loWr / sm)), 2))||'loWr ' end
|| case when arLo <= sm/200 then '' else digits(dec(round(
min(99, 100 * arLo / sm)), 2))||'arLo ' end
|| case when arLR <= sm/200 then '' else digits(dec(round(
min(99, 100 * arLR / sm)), 2))||'arLR ' end
|| case when drai <= sm/200 then '' else digits(dec(round(
min(99, 100 * drai / sm)), 2))||'drai ' end
|| case when clai <= sm/200 then '' else digits(dec(round(
min(99, 100 * clai / sm)), 2))||'clai ' end
|| case when gCon <= sm/200 then '' else digits(dec(round(
min(99, 100 * gCon / sm)), 2))||'gCon ' end
|| case when gLch <= sm/200 then '' else digits(dec(round(
min(99, 100 * gLch / sm)), 2))||'gLch ' end
|| case when gLOt <= sm/200 then '' else digits(dec(round(
min(99, 100 * gLOt / sm)), 2))||'gLOt ' end
|| case when gPrt <= sm/200 then '' else digits(dec(round(
min(99, 100 * gPrt / sm)), 2))||'gPrt ' end
|| case when gPag <= sm/200 then '' else digits(dec(round(
min(99, 100 * gPag / sm)), 2))||'gPag ' end
|| case when gPOt <= sm/200 then '' else digits(dec(round(
min(99, 100 * gPOt / sm)), 2))||'gPOt ' end
|| case when gMsg <= sm/200 then '' else digits(dec(round(
min(99, 100 * gMsg / sm)), 2))||'gMsg ' end
|| case when unSw <= sm/200 then '' else digits(dec(round(
min(99, 100 * unSw / sm)), 2))||'unSw ' end
|| case when otSw <= sm/200 then '' else digits(dec(round(
min(99, 100 * otSw / sm)), 2))||'otSw ' end
|| case when stPr <= sm/200 then '' else digits(dec(round(
min(99, 100 * stPr / sm)), 2))||'stPr ' end
|| case when func <= sm/200 then '' else digits(dec(round(
min(99, 100 * func / sm)), 2))||'func ' end
|| case when lob <= sm/200 then '' else digits(dec(round(
min(99, 100 * lob / sm)), 2))||'lob ' end;
set la = x'ffffffff';
loop
set cx = 1;
set cu = '';
while cx < length(a1) do
if substr(a1, cx, 7) < la and substr(a1, cx, 7) > cu then
set cu = substr(a1, cx, 7);
end if;
set cx = cx + 7;
end while;
set a2 = a2 || cu;
if cu = '' or length(a2) >= 28 then
return left(OA1P.fqzFmtE7(sm) || ' ' || a2, 28);
end if;
set la = cu;
end loop;
end
?
terminator;?
--#SET TERMINATOR ;
create function OA1P.fosGeWait(
syIO float, otRe float, otWr float, opCl float
, daSe float, loLL float, lgRg float, loWr float
, arLo float, arLR float, drai float, clai float
, gCon float, gLch float, gLOt float, gPrt float
, gPag float, gPOt float, gMsg float, unSw float
, otSw float, stPr float, func float, lob float
)
returns char(28)
deterministic no external action reads sql data
return OA1P.fqzGeWait(
syIO , otRe , otWr , opCl
, daSe , loLL , lgRg , loWr
, arLo , arLR , drai , clai
, gCon , gLch , gLOt , gPrt
, gPag , gPOt , gMsg , unSw
, otSw , stPr , func , lob
)
;
commit;
select oa1p.fqzGeWait( 1e1, 2, 3, 4, 5e-1,6,7,8,9,10,11,12
, 13, 14, 15,16, 17, 18, 91, 20 , 21 , 22 ,23, 24)
from sysibm.sysDummy1
;
set current path oa1p;
with g1 as
( select
p2Commits + aborts + selects + inserts + updates + deletes
+ describes + prepares + opens + fetches + closes
+ setcurprec + dclglobaltt + sqlcrgtt sqls
, oa1p.fqzGeWait(
eWaitIO , waitReadIO , waitWriteIO , openClsElap
, datasetElap , eWaitLAL
, sysLgRngElap , logWrtElap , waitArcLog , archReadWar
, drainLkWDR , claimRlWcl
, gblLokElap , wtelawtk , wtelawtm , wtelawtn
, wtelawto , wtelawtq , gblMsgElap
, waitSyncEvent, otherSWElap , spWaitElap
, funcWait ,lobWaitElap
) "wait % 1. % 2. % 3."
, eWaitIO + waitReadIO + waitWriteIO + openClsElap
+ datasetElap + eWaitLAL
+ sysLgRngElap + logWrtElap + waitArcLog + archReadWar
+ drainLkWDR + claimRlWcl
+ gblLokElap + wtelawtk + wtelawtm + wtelawtn
+ wtelawto + wtelawtq + gblMsgElap
+ waitSyncEvent+ otherSWElap + spWaitElap
+ funcWait + lobWaitElap wait
from PBdd.tACCT_general g
where planName like 'MF5000%'
and dateTime > current timestamp - 2 days
) select * from g1
;
}¢--- A540769.WK.SQL(PRIMARY) cre=2006-05-22 mod=2006-05-22-14.46.39 F540769 ---
ALTER TABLE GDB0444.TPO004A1 00010000
ADD PRIMARY KEY 00020000
(PO004_BUID, 00030000
PO004_BKST, 00040000
PO004_AORT) 00050000
}¢--- A540769.WK.SQL(PRMM) cre=2014-02-18 mod=2014-02-18-16.10.20 A540769 ------
select count(*)
from pbmm.tacct_general
where dateTime > '2013-12-08-03.59.59.999999' -- part 169
and dateTime <= '2013-12-08-07.59.59.999999' -- part 170
with ur
}¢--- A540769.WK.SQL(PROCNAT) cre=2008-06-06 mod=2009-08-14-17.19.49 A540769 ---
set current sqlId = 'S100447'; 00010002
--#SET TERMINATOR ? 00020000
CREATE PROCEDURE A540769.WKSQL1 00030003
(IN CMDTEXT VARCHAR(254) FOR SBCS DATA CCSID EBCDIC , 00040000
OUT CMDRESULT VARCHAR(32704) FOR SBCS DATA CCSID EBCDIC ) 00050000
DYNAMIC RESULT SETS 1 00060000
LANGUAGE SQL NOT DETERMINISTIC FENCED 00070001
CALLED ON NULL INPUT MODIFIES SQL DATA NO DBINFO 00080000
COLLID DSNREXDE WLM ENVIRONMENT DB2DSNR ASUTIME LIMIT 60 00090000
STAY RESIDENT NO PROGRAM TYPE MAIN SECURITY DB2 00100000
INHERIT SPECIAL REGISTERS STOP AFTER SYSTEM DEFAULT FAILURES 00110000
RUN OPTIONS 'TRAP(ON)' COMMIT ON RETURN NO 00120000
BEGIN 00130000
select * from sysIbm.sysDummy1; 00140000
end 00150000
? 00160004
rollback 00170004
}¢--- A540769.WK.SQL(PROC1) cre=2006-05-26 mod=2006-05-26-16.13.20 F540769 -----
SET CURRENT SQLID = 'S100447' @
DROP PROCEDURE A540769.PR1 @
CREATE PROCEDURE A540769.PR1(IN A VARCHAR(20), OUT RES VARCHAR(100))
LANGUAGE SQL READS SQL DATA COLLID DB
BEGIN
SET RES = A || '*XX*' || A;
END
}¢--- A540769.WK.SQL(PROC1C) cre=2006-05-26 mod=2006-05-26-14.41.18 F540769 ----
SET CURRENT SQLID = 'S100447' @
CALL A540769.PR1('AHA', 'OOO')
}¢--- A540769.WK.SQL(PROFCP) cre=2012-11-22 mod=2015-03-17-14.04.38 A540769 ----
$*( copy rcm Profiles
uncomment and adapt necessary functions
Achtung: share Option muss U sein ||||||
11. 3.15 mit utilityProfile
$*)
call sqlConnect dp4g
$;
$>. fEdit('::v')
$<=¢
$** $@%¢utilityProf A540769 UP1 DBX UP1 $!
$** $@%¢ruleSet DBX ALL DBX PCTFREE$!
$** $@%¢globalChange A828386 DBTFDBOF DBX DBTFDBOF$!
$** $@%¢globalChange DBX QTX2Y DBX QZ91S2T$!
$** $@%¢anaProf DBX ALL DBX UP1 $!
$** $@%¢anaProf DBX ALL DBX DROPSAVE $!
$** $@%¢autoMap A390880 NI10063C DBX NI10063C$!
$** $@%¢ruleSet A828386 DBX DBX ALL$!
$** change unloadTY=IBM in un&load||
$** change symbolics ||||
$** $@%¢utilityModel DBX ???? DBX ??? $!
$** $@%¢utilityModel DBX ALL DBX TSTTIM $!
$** $@%¢utilityModel DBX ALL DBX TSTALL $!
$** $@%¢utilityModel DBX ALL DBX BP $!
$** $@%¢utilityModel DBX ALL DBX DROPSAVE $!
$** $@%¢utilityModel DBX ALL DBX UI $!
$** $@%¢utilityModel DBX ALL DBX UIPAR $!
$*( ----------------------------------------------------
select * from pti.PTMGB_APTABLE_0100;
select * from session.cp;
select * from pti.PTMGB_APTABLE_0100;
;
;
$@%¢globalChange DBX ALLLALLL DBX DBOFDBOF$!
$@%¢autoMap DBX, EMPTY, DBX, ALLLALLL$!
-- automap
select * from pti.PTMG9_MASK_0510 where name = 'DBXEQ'
;
select * from pti.PTMGA_LNAME_0200 where type = 'M' and
name = 'DBXEQ'
;
select * from pti.PTMG9_MASK_0510 where name = 'DBXEQ'
;
select * from pti.PTMGA_LNAME_0200 where type = 'M' and
name = 'DBXEQ'
;
-- globalChange
select * from pti.PTMG5_GLOBAL_0400 where name = 'WKP2A'
;
select * from pti.PTMGA_LNAME_0200
where type = 'G' and name = 'WKP2A'
;
select * from pti.PTMG5_GLOBAL_0400 where name = 'WKP2A'
;
select * from pti.PTMGA_LNAME_0200
where type = 'G' and name = 'WKP2A'
;
select * from pti.PTMG4_RULES_0300 where name = 'DBX' or creator = 'DBX'
;
$@%¢ruleSet A540769 DBX DBX ALL$!
;
select * from pti.PTMG4_RULES_0300 where name = 'DBX' or creator = 'DBX'
;
;
select * from pti.PTMOD_UTLSYM_0401 where model_product_code = 'RCM'
and model_id='DBX' or model_creator='DBX'
;
select * from pti.PTMOD_UTLSYM_0401 where model_product_code = 'RCM'
and model_id='DBX' or model_creator='DBX'
--------------------------------------------------------
$*)
commit
$!
call sqlStmts
call sqlDisconnect
$@proc anaProf $@/anaProf/
parse arg , fCr fNm tCr tNm
say 'copy anaProf' fCr'.'fNm '-->' tCr'.'tNm
$@=¢
declare global temporary table session.cp
as (select * from pti.PTMGB_APTABLE_0100) with no data
;
insert into session.cp
select * from pti.PTMGB_APTABLE_0100
where creator = '$-¢fCr$!' and name = '$-¢fNm$!'
;
update session.cp set creator = '$-¢tCr$!', name = '$-¢tNm$!'
;
delete from pti.PTMGB_APTABLE_0100
where creator = '$-¢tCr$!' and name = '$-¢tNm$!'
;
insert into pti.PTMGB_APTABLE_0100
select * from session.cp
;
$!
$/anaProf/
$@proc autoMap $@/autoMap/
parse arg , fCr fNm tCr tNm
say 'copy automap' fCr'.'fNm '-->' tCr'.'tNm
$@=¢
delete from pti.PTMG9_MASK_0510
where creator = '$-¢tCr$!' and name = '$-¢tNm$!'
;
insert into pti.PTMG9_MASK_0510
select '$-¢tCr$!' , '$-¢tNm$!', node_type, node_seq, segment
from pti.PTMG9_MASK_0510
where creator = '$-¢fCr$!' and name = '$-¢fNm$!'
;
delete from pti.PTMGA_LNAME_0200 where type = 'M'
and creator = '$-¢tCr$!' and name = '$-¢tNm$!'
;
insert into pti.PTMGA_LNAME_0200
select '$-¢tCr$!' , '$-¢tNm$!', type, sequence_field, version, data
from pti.PTMGA_LNAME_0200
where type = 'M'
and creator = '$-¢fCr$!' and name = '$-¢fNm$!'
;
$!
$/autoMap/
$@proc globalChange $@/globalChange/
parse arg , fCr fNm tCr tNm .
say 'copy globalChange' fCr'.'fNm '-->' tCr'.'tNm
$@=¢
delete from pti.PTMG5_GLOBAL_0400
where creator = '$-¢tCr$!' and name = '$-¢tNm$!'
;
insert into pti.PTMG5_GLOBAL_0400
select '$-¢tCr$!' , '$-¢tNm$!', node_type, segment
from pti.PTMG5_GLOBAL_0400
where creator = '$-¢fCr$!' and name = '$-¢fNm$!'
;
delete from pti.PTMGA_LNAME_0200 where type = 'G'
and creator = '$-¢tCr$!' and name = '$-¢tNm$!'
;
insert into pti.PTMGA_LNAME_0200
select '$-¢tCr$!' , '$-¢tNm$!', type, sequence_field, version, data
from pti.PTMGA_LNAME_0200
where type = 'G'
and creator = '$-¢fCr$!' and name = '$-¢fNm$!'
;
$!
$/globalChange/
$@proc ruleSet $@/ruleSet/
parse arg , fCr fNm tCr tNm
say 'copy ruleSet' fCr'.'fNm '-->' tCr'.'tNm
$@=¢
delete from pti.PTMG4_RULES_0300
where creator = '$-¢tCr$!' and name = '$-¢tNm$!'
;
insert into pti.PTMG4_RULES_0300
select '$-¢tNm$!', desc, '$-¢tCr$!' , SHARE_OPT, ssid,
UPDT_USER, UPDT_DATE, UPDT_TIME, RULES
from pti.PTMG4_RULES_0300
where creator = '$-¢fCr$!' and name = '$-¢fNm$!'
;
$!
$/ruleSet/
$@proc utilityModel $@/utilityModel/
parse arg , fCr fNm tCr tNm
say 'copy ruleSet' fCr'.'fNm '-->' tCr'.'tNm
$@=¢
delete from pti.PTMOD_UTLSYM_0401
where model_product_code = 'RCM'
and model_creator = '$-¢tCr$!' and model_id = '$-¢tNm$!'
;
insert into pti.PTMOD_UTLSYM_0401
select '$-¢tNm$!', '$-¢tCr$!' , model_product_code,
SEQUENCE_FIELD, Internal_type, data
from pti.PTMOD_UTLSYM_0401 where model_product_code = 'RCM'
and model_creator = '$-¢fCr$!' and model_id = '$-¢fNm$!'
;
$!
$/utilityModel/
$@proc $@/utilityProf/
parse arg , fCr fNm tCr tNm
say 'copy ruleSet' fCr'.'fNm '-->' tCr'.'tNm
$@=¢
delete from PTI.PTMGB_UPTABLE_0100
where creator = '$-¢tCr$!' and name = '$-¢tNm$!'
;
insert into PTI.PTMGB_UPTABLE_0100
select '$-¢tNm$!' -- NAME
, '$-¢tCr$!' -- CREATOR
, 'U' -- PROFILETYPE
, STATS
, CHECKDATA
, IMAGECOPY
, BIND
, REORG
, RECOVERINDEX
, MODELNAME
, MODELCREATOR
, MODELUPDATE
, ALTEREDTS
, PARALLELOPTS
from PTI.PTMGB_UPTABLE_0100
where creator = '$-¢fCr$!' and name = '$-¢fNm$!'
;
delete from PTI.PTMGB_SPTABLE_0100
where creator = '$-¢tCr$!' and name = '$-¢tNm$!'
;
insert into PTI.PTMGB_SPTABLE_0100
select '$-¢tNm$!' -- NAME
, '$-¢tCr$!' -- CREATOR
, 'U' -- PROFILETYPE
, OBJECT
, ATTRIBUTE
, BCOPY
, BUNLD
, AUNLD
, AREORG
, ALOAD
, ACHECK
, AREBILD
, ARUNSTATS
, ACOPY
from PTI.PTMGB_SPTABLE_0100
where creator = '$-¢fCr$!' and name = '$-¢fNm$!'
;
$!
$/utilityProf/
$#out 20150317 13:52:34
}¢--- A540769.WK.SQL(PROFEX) cre=2012-11-23 mod=2015-03-17-14.02.45 A540769 ----
$#@
$*( --------------------------------------------------- walter 08.01.13
profEx: wsh script zum verteilen der CA profile fuer dbx
1. DSN.DBX.GLBCHG(#PROFILE) erstellen
mit sql delete/insert für alle Profile
2. alle global changes mit creator=DBX exportieren
nach DSN.DBX.GLBCHG(*)
3. jcl erstellen zum verteilen von DSN.DBX.GLBCHG(*)
und ausfuehren der SQLs den Db2Subsystemen
26.11.13 walter verteilung aus rz4
-------------------------------------------------------------------- $*)
$= dbSys = DP4G
$= j7 = YPROFEX
$= outPds = DSN.DBX.GLBCHG
$= outSql = $outPds(#PROFILE)
$= cr = DBX
$= wh =- "creator = '"$cr"'"
$= whMo =- "model_creator = '"$cr"'"
$= whTy =- $wh 'and type ='
$= myRz =- sysvar(sysnode)
if 1 then $@¢
$@expProfs
$!
if 1 then $@¢
$@sendProfs
$>. fEdit()
$<=¢
RZ2 DBOF DVBP DP2G
RZ4 DBOL $** |||dp4g is the source|||
RZX DE0G DEVG DPXG DX0G
RZY DE0G DEVG DPYG
RZZ DE0G DEVG DPZG
RR2 DBOF DVBP DP2G
RQ2 DBOF DVBP DP2G
$!
$!
$@proc expProfs $@/expProfs/
say 'exporting CAProfiles from ' $dbSys
say ' where' $wh
say ' to ' $outPds
call sqlConnect $dbSys
$;
$>$outSql
$$ ------- export $-¢date('s') time()$!
$$ --------------- 1 - GlobalProfile
$$ --------------- 2 - RCMProfile
$@%¢expTb - pti.PTMG5_GLOBAL_0400, $wh, "3 - GlobalChange"$!
names = $names
$@%¢expTb - pti.PTMGA_LNAME_0200, $whTy "'G'", "3 - GlobalChange/Name"$!
$@%¢expTb - pti.PTMG4_RULES_0300, $wh, "4 - CompareRule"$!
$@%¢expTb - pti.PTMG9_MASK_0510 , $wh, "5 - AutomapMask"$!
$@%¢expTb - pti.PTMGA_LNAME_0200, $whTy "'M'", "5 - AutomapMask/Name"$!
$@%¢expTb - pti.PTMOD_UTLSYM_0401, $whMo, "6 - UtilityModel"$!
$$ --------------- 7 - CopyGroup
$@%¢expTb - pti.PTMGB_APTABLE_0100,$wh, "P - AnalysisProfile"$!
$$ --------------- U - UtilityProfile
$;
$do gx=1 to words(names) $@¢
gc = word(names, gx)
$;
$>$outPds($-¢gc$!)
$@%¢globalChangeExp - $cr, gc$!
$!
$/expProfs/
$@proc $@/expTb/
parse arg , tb, wh, tit
$$- ''
$$- '---------------' tit
$$- 'delete from' tb 'where' wh
$$ ;
$;
call sqlSel 'select * from' tb 'where' wh
$|
lst = ''
cx = 0
$@for oo $@¢
cx = cx + 1
o1 = $.oo
call sql4Obj o1, tb
if wordPos(m.o1.name, lst) < 1 then
lst = lst m.o1.name
$!
say right(cx, 5) 'inserts into' left(tb, 24) 'for' tit
$=names=- lst
$/expTb/
$@proc $@/globalChangeExp/
parse arg , Cr, Nm
say 'export globalChange' Cr'.'Nm
call sqlQuery 7, 'select * from pti.PTMG5_GLOBAL_0400' ,
"where node_type=2 and creator = '"cr"' and name = '"nm"'",
, "c n ty se"
do while sqlFetch(7,ff)
lc = c2d(substr(m.ff.se, 1, 2))
$$- ' GLBLNAME 'left(m.ff.n, 20) '--' date('s') time()
$$- ' GLBLCRTR 'left(m.ff.c, 20)
do lx=1 to lc
sx = lx*40-37
$$- ' 'substr(m.ff.se, sx, 4) left('', 4) $*+
substr(m.ff.se, sx+4, 18) ' ' $*+
substr(m.ff.se, sx+22, 18)
end
$** say length(m.ff.se) '<' 2+lc*40
if length(m.ff.se) < 2+lc*40 then
call err 'bad segment too short' m.ff.c'.'m.ff.n
if substr(m.ff.se, 3+lc*40) <> '' then
call err 'bad segment addition infos' m.ff.c'.'m.ff.n
end
call sqlClose 7
$/globalChangeExp/
$@proc $@=/sendProfs/
//${j7}W JOB (CP00,KE50),'DB2 REO',
// MSGCLASS=T,TIME=1440,
// NOTIFY=&SYSUID,REGION=0M,SCHENV=DB2
//*MAIN CLASS=LOG
$@for li $@/rz/
$=rz =- word($li, 1)
$$ //*---------------------------------------- $rz
if $rz \= $myRz then $@=¢
//${rz}SEND EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99,PARM=WSH
//SYSPROC DD DISP=SHR,DSN=TSO.$myRz.P0.PROD.EXEC
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//*UT DD SYSOUT=*
//SYSTSIN DD DUMMY
//WSH DD *
call csmCopy '$outPds', '$rz/$outPds'
$!
$@=¢
//${rz}SUB EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT2 DD SUBSYS=(CSM,'SYSTEM=$rz,SYSOUT=(A,INTRDR)')
//SYSUT1 DD *,DLM='}}'
//${j7}S JOB (CP00,KE50),'DB2 REO',
// MSGCLASS=T,TIME=1440,
// NOTIFY=&SYSUID,REGION=0M,SCHENV=DB2
//*MAIN CLASS=LOG
$!
$@do wx=2 while word($li, wx) \== '' $@=/dbSy/
$=dbSy =- word($li, wx)
//${dbSy}SQL EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSTERM DD DUMMY
//SYSIN DD DISP=SHR,DSN=$outSql
//SYSTSIN DD *
DSN SYSTEM($dbSy)
RUN PROGRAM(DSNTEP2) PARMS('ALIGN(LHS)') PLAN(DSNTEP2)
$/dbSy/
$$ }}
$/rz/
$/sendProfs/
$#out 20150317 14:01:28
$#out 20150223 10:01:00
$#out 20150106 12:26:53
}¢--- A540769.WK.SQL(PROTPTA) cre=2012-04-12 mod=2016-11-03-09.20.44 A540769 ---
with tb as
( select *
from sysibm.sysTables
where (dbName like 'AV%' or dbName like 'VV%' or dbName like 'NI%'
or name like 'VAV%' or name like 'VVV%' or name like 'VNI%')
)
select type, strip(creator) || '.' || strip(name)
from tb
union all select 'i', strip(creator) || '.' || strip(name)
|| ' on ' || strip(tbcreator) || '.' || strip(tbname)
from sysibm.sysIndexes
where (dbName like 'AV%' or dbName like 'VV%' or dbName like 'NI%'
or name like 'IAV%' or name like 'IVV%' or name like 'INI%')
union all select 'r', strip(Creator) || '.' || strip(tbName)
|| ' ref ' || strip(reftbcreator) || '.' || strip(reftbname)
|| ' ' || strip(char(colCount)) || ' ' || relName
from sysibm.sysRels
where (Creator, tbName) in (select creator, name from tb)
or (refTbCreator, refTbName) in (select creator, name from tb)
union all select 'j', strip(schema) || '.' || strip(Name)
|| ' Trigger ' || trigTime || trigEvent || granularity
|| ' ' || strip(tbowner) || '.' || strip(tbName)
from sysibm.sysTriggers
where (tbowner, tbName) in (select creator, name from tb)
order by 2, 1
$#out 20120416 07:13:13
C COL2
T A230450.VNI145TOCLOSE
T A230450.VNI145TODEL
}¢--- A540769.WK.SQL(PRPGKACC) cre=2013-10-21 mod=2013-10-21-09.06.07 A540769 ---
set current path = oa1p;
with x as
( select smallint(floor(log10(max(1e-30,
real(BPGETPAGE)/sqlCount)) * 3)) g, p.*
from pbxx.TACCT_PROGRAM_20131015 p
where sqlCount > 0
fetch first 1000000 rows only
)
select count(*), g
, substr(fosFmte7(min(real(BPGETPAGE)/sqlCount)), 1, 7) bpGetMi
, substr(fosFmte7(max(real(BPGETPAGE)/sqlCount)), 1, 7) bpGetMa
, substr(fosFmte7(avg(real(BPGETPAGE)/sqlCount)), 1, 7) bpGet
, min(dateTime)
, max(dateTime)
, min(subsystem), max(subsystem)
, min(planName), max(planName)
, min(programName), max(programName)
from x
group by g
order by g desc
}¢--- A540769.WK.SQL(PRPLAN) cre=2014-01-20 mod=2014-01-20-14.46.30 A540769 ----
set current path oa1p;
select
-- begin prb insert genc
-- tacct_general g, fsoFmtE7, all, expr ~
g.DATETIME
, g.CORRNAME
, fosFmtE7(g.ELAPSETOD) "totElap"
, fosFmtE7(g.ELAPSETCB) "totCPU"
, fosFmtE7(g.EDB2TOD) "db2Elap"
, fosFmtE7(g.EDB2TCB) "db2CPU"
, fosGeWait(g.eWaitIO, g.waitReadIO, g.waitWriteIO, g.openClsElap
, g.datasetElap, g.eWaitLAL, g.sysLgRngElap, g.logWrtElap
, g.waitArcLog, g.archReadWar, g.drainLkWDR, g.claimRlWcl
, g.gblLokElap, g.wtelawtk, g.wtelawtm, g.wtelawtn, g.wtelawto
, g.wtelawtq, g.gblMsgElap, g.waitSyncEvent, g.otherSWElap
, g.spWaitElap, g.funcWait
, g.lobWaitElap) "wait % 1. % 2. % 3."
, fosFmtE7((g.p2Commits + g.aborts + g.selects + g.inserts
+ g.updates + g.deletes + g.describes + g.prepares + g.opens
+ g.fetches + g.closes + g.setcurprec + g.dclglobaltt
+ g.sqlcrgtt)) "sqls"
, fosFmtE7(g.P2COMMITS) "commit"
, fosFmtE7(g.ABORTS) "abort"
, fosFmtE7(g.SELECTS) SELECTS
, fosFmtE7(g.INSERTS) INSERTS
, fosFmtE7(g.UPDATES) UPDATES
, fosFmtE7(g.DELETES) DELETES
, fosFmtE7(g.DESCRIBES) DESCRIBES
, fosFmtE7(g.PREPARES) PREPARES
, fosFmtE7(g.OPENS) OPENS
, fosFmtE7(g.FETCHES) FETCHES
, fosFmtE7(g.CLOSES) CLOSES
, fosFmtE7(g.LOGWRTELAP) "logEla"
, fosFmtE7(g.LOGRECORDS) "logRecs"
, fosFmtE7(g.LOGBYTES) "logByte"
, fosFmtE7(g.BPGETPAGE) BPGETPAGE
, fosFmtE7(g.BPPGUPDAT) BPPGUPDAT
, fosFmtE7(g.BPSYNCRD) BPSYNCRD
, fosFmtE7(g.BPPREFET) BPPREFET
, fosFmtE7(g.BPSYNCWR) BPSYNCWR
, fosFmtE7(g.BPLISTPREF) BPLISTPREF
, fosFmtE7(g.BPDPF) BPDPF
, fosFmtE7(g.BPNGT) BPNGT
, fosFmtE7(g.BPSIO) BPSIO
, REAL((g.eWaitIO + g.waitReadIO + g.waitWriteIO + g.openClsElap
+ g.datasetElap + g.eWaitLAL + g.sysLgRngElap + g.logWrtElap
+ g.waitArcLog + g.archReadWar + g.drainLkWDR + g.claimRlWcl
+ g.gblLokElap + g.wtelawtk + g.wtelawtm + g.wtelawtn
+ g.wtelawto + g.wtelawtq + g.gblMsgElap + g.waitSyncEvent
+ g.otherSWElap + g.spWaitElap + g.funcWait
+ g.lobWaitElap)) "wait"
, fosFmtE7(g.OCCURRENCES) OCCURRENCES
, g.SYSTEMID
, g.SUBSYSTEM
, g.PLANNAME
, g.AUTHID
, g.CONNECTION
, g.CORRID
, g.ORIGPRIMID
, g.LUWIDNID
, g.LUWIDLUNM
, g.LUWIDINST
, fosFmtE7(g.LUWIDCOMIT) LUWIDCOMIT
, g.CONNTYPE
, g.DATE
, g.LOCATION
, g.GROUPNAME
, g.FIRSTPKG
, g.ACCTTOKN
, g.ENDUSERID
, g.ENDUSERTX
, g.ENDUSERWN
, g.PSTNUMBER
, g.PSBNAME
, g.CICSTRAN
, g.NETWORKID
, fosFmtE7(g.TRANSCNT) TRANSCNT
, fosFmtE7(g.CLASS2CNT) CLASS2CNT
, fosFmtE7(g.CLASS3CNT) CLASS3CNT
, fosFmtE7(g.IFCIDSEQ#) IFCIDSEQ#
, fosFmtE7(g.ELAPSESRB) ELAPSESRB
, fosFmtE7(g.EDB2SRB) EDB2SRB
, fosFmtE7(g.EWAITIO) "synIOWait"
, fosFmtE7(g.EWAITLAL) "locLoLaWai"
, fosFmtE7(g.ENTEXEVNT) ENTEXEVNT
, fosFmtE7(g.WAITEVNT) WAITEVNT
, fosFmtE7(g.WAITREADIO) "othReaWait"
, fosFmtE7(g.WAITWRITEIO) "othWriWait"
, fosFmtE7(g.WAITSYNCEVENT) "uniSwiWait"
, fosFmtE7(g.WAITARCLOG) "arcLogWait"
, fosFmtE7(g.WEVLOCK) WEVLOCK
, fosFmtE7(g.WEVREAD) WEVREAD
, fosFmtE7(g.WEVWRITE) WEVWRITE
, fosFmtE7(g.WEVSYNCH) WEVSYNCH
, fosFmtE7(g.CLASS1CPU_ZIIP) CLASS1CPU_ZIIP
, fosFmtE7(g.CLASS2CPU_ZIIP) CLASS2CPU_ZIIP
, fosFmtE7(g.TRIGGERCPU_ZIIP) TRIGGERCPU_ZIIP
, fosFmtE7(g.CPUZIIPELIGIBLE) CPUZIIPELIGIBLE
, fosFmtE7(g.ARCLOG) ARCLOG
, fosFmtE7(g.DRAINLKRND) DRAINLKRND
, fosFmtE7(g.DRAINLKWDR) "drainWait"
, fosFmtE7(g.CLAIMRLWCL) "claimWait"
, fosFmtE7(g.CLAIMRLRNC) CLAIMRLRNC
, fosFmtE7(g.ARCHREADWAR) "arcReaWait"
, fosFmtE7(g.ARCHREADNAR) ARCHREADNAR
, fosFmtE7(g.OPENCLSELAP) "opeCloWait"
, fosFmtE7(g.SYSLGRNGELAP) "sysLgRaWai"
, fosFmtE7(g.DATASETELAP) "datSetWait"
, fosFmtE7(g.OTHERSWELAP) "othSwiEla"
, fosFmtE7(g.OPENCLSEVNT) OPENCLSEVNT
, fosFmtE7(g.SYSLGRNGEVNT) SYSLGRNGEVNT
, fosFmtE7(g.DATASETEVNT) DATASETEVNT
, fosFmtE7(g.OTHERSWEVNT) OTHERSWEVNT
, fosFmtE7(g.LATCHCNTWTP) LATCHCNTWTP
, fosFmtE7(g.LATCHCNTRNH) LATCHCNTRNH
, fosFmtE7(g.GBLMSGELAP) "gblMsgWait"
, fosFmtE7(g.GBLMSGEVNT) GBLMSGEVNT
, fosFmtE7(g.GBLLOKELAP) "gblConWait"
, fosFmtE7(g.GBLLOKEVNT) GBLLOKEVNT
, fosFmtE7(g.SPTCB) "stoProCpu"
, fosFmtE7(g.SPTCBINDB2) "stoProDb2"
, fosFmtE7(g.SPEVNT) SPEVNT
, fosFmtE7(g.SPWAITELAP) "stoProWait"
, fosFmtE7(g.SPWAITCNT) SPWAITCNT
, fosFmtE7(g.PARATASKS) PARATASKS
, fosFmtE7(g.PARALLTASKS) PARALLTASKS
, fosFmtE7(g.CPUSUCONV) CPUSUCONV
, fosFmtE7(g.LOGWRTEVNT) LOGWRTEVNT
, g.WLMSVCCLASS
, fosFmtE7(g.FUNCTCB) "funcCpu"
, fosFmtE7(g.FUNCSQLTCB) "funcD2Cpu"
, fosFmtE7(g.FUNCSQLEVNT) FUNCSQLEVNT
, fosFmtE7(g.LOBWAITCNT) LOBWAITCNT
, fosFmtE7(g.FUNCWAIT) "funcWait"
, fosFmtE7(g.FUNCELAP) "funcEla"
, fosFmtE7(g.FUNCSQLELAP) "funcD2Ela"
, fosFmtE7(g.TRIGGERTCB) "triD2Cpu"
, fosFmtE7(g.TRIGGERELAP) "triD2Ela"
, fosFmtE7(g.PREENCTCB) "???"
, fosFmtE7(g.PREENCSQLTCB) "???"
, fosFmtE7(g.SPROCELAP) "stoProToEl"
, fosFmtE7(g.SPROCSQLELAP) "stoProD2El"
, fosFmtE7(g.ENCTRIGGERTCB) "triNesToCp"
, fosFmtE7(g.ENCTRIGGERELAP) "triNesToEl"
, fosFmtE7(g.LOBWAITELAP) LOBWAITELAP
, fosFmtE7(g.SPNFCPUZIIP) "???"
, fosFmtE7(g.SPNFCPU) "???"
, fosFmtE7(g.SPNFELAP) "???"
, fosFmtE7(g.UDFNFCPUZIIP) UDFNFCPUZIIP
, fosFmtE7(g.UDFNFCPU) UDFNFCPU
, fosFmtE7(g.UDFNFELAP) UDFNFELAP
, fosFmtE7(g.SVPOINTREQ) SVPOINTREQ
, fosFmtE7(g.SVPOINTREL) SVPOINTREL
, fosFmtE7(g.SVPOROLLBK) SVPOROLLBK
, fosFmtE7(g.WTELAWTK) "gblChiWait"
, fosFmtE7(g.WTELAWTM) "gblOtLWait"
, fosFmtE7(g.WTELAWTN) "gblPrPWait"
, fosFmtE7(g.WTELAWTO) "gblPgPWait"
, fosFmtE7(g.WTELAWTQ) "gblOtPWait"
, fosFmtE7(g.WTEVARNK) WTEVARNK
, fosFmtE7(g.WTEVARNM) WTEVARNM
, fosFmtE7(g.WTEVARNN) WTEVARNN
, fosFmtE7(g.WTEVARNO) WTEVARNO
, fosFmtE7(g.WTEVARNQ) WTEVARNQ
, fosFmtE7(g.WTELAWFC) "???"
, fosFmtE7(g.WTEVFCCT) WTEVFCCT
, fosFmtE7(g.WTELIXLT) WTELIXLT
, fosFmtE7(g.WTEVIXLE) WTEVIXLE
, fosFmtE7(g.SETCURPREC) SETCURPREC
, fosFmtE7(g.DCLGLOBALTT) DCLGLOBALTT
, fosFmtE7(g.PARAGLOBALTT) PARAGLOBALTT
, fosFmtE7(g.PARAMAXDEG) PARAMAXDEG
, fosFmtE7(g.PARAREDGRP) PARAREDGRP
, fosFmtE7(g.SQLCALLAB) SQLCALLAB
, fosFmtE7(g.SQLCALLTO) SQLCALLTO
, fosFmtE7(g.SQLCRGTT) SQLCRGTT
, fosFmtE7(g.REOPTIMIZE) REOPTIMIZE
, fosFmtE7(g.DIRECTROWIX) DIRECTROWIX
, fosFmtE7(g.DIRECTROWTS) DIRECTROWTS
, fosFmtE7(g.FUNC) FUNC
, fosFmtE7(g.FUNCAB) FUNCAB
, fosFmtE7(g.FUNCTO) FUNCTO
, fosFmtE7(g.FUNCRJ) FUNCRJ
, fosFmtE7(g.DEADLOCKS) DEADLOCKS
, fosFmtE7(g.SUSPENDS) SUSPENDS
, fosFmtE7(g.TIMEOUTS) TIMEOUTS
, fosFmtE7(g.LOCKESHR) LOCKESHR
, fosFmtE7(g.LOCKEXCL) LOCKEXCL
, fosFmtE7(g.MAXPGLOCKS) MAXPGLOCKS
, fosFmtE7(g.SUSPLATCH) SUSPLATCH
, fosFmtE7(g.SUSPOTHER) SUSPOTHER
, fosFmtE7(g.LOCKREQS) LOCKREQS
, fosFmtE7(g.CLAIMREQ) CLAIMREQ
, fosFmtE7(g.CLAIMREQUN) CLAIMREQUN
, fosFmtE7(g.DRAINREQ) DRAINREQ
, fosFmtE7(g.DRAINREQUN) DRAINREQUN
, fosFmtE7(g.GBPREADINVBD) GBPREADINVBD
, fosFmtE7(g.GBPREADINVBR) GBPREADINVBR
, fosFmtE7(g.GBPREADNOPGD) GBPREADNOPGD
, fosFmtE7(g.GBPREADNOPGR) GBPREADNOPGR
, fosFmtE7(g.GBPREADNOPGN) GBPREADNOPGN
, fosFmtE7(g.GBPWRITCHG) GBPWRITCHG
, fosFmtE7(g.GBPWRITCLEAN) GBPWRITCLEAN
, fosFmtE7(g.GBPUNREGPG) GBPUNREGPG
, fosFmtE7(g.GBPEXPLICITXI) GBPEXPLICITXI
, fosFmtE7(g.GBPWRITCHK2) GBPWRITCHK2
, fosFmtE7(g.GBPASYNPRIM) GBPASYNPRIM
, fosFmtE7(g.GBPASYNSEC) GBPASYNSEC
, fosFmtE7(g.GBPDEPGETPG) GBPDEPGETPG
, fosFmtE7(g.GBPPLKSPMAP) GBPPLKSPMAP
, fosFmtE7(g.GBPPLKDATA) GBPPLKDATA
, fosFmtE7(g.GBPPLKIDX) GBPPLKIDX
, fosFmtE7(g.GBPPLKUNLK) GBPPLKUNLK
, fosFmtE7(g.GBPPSUSSPMAP) GBPPSUSSPMAP
, fosFmtE7(g.GBPPSUSDATA) GBPPSUSDATA
, fosFmtE7(g.GBPPSUSIDX) GBPPSUSIDX
, fosFmtE7(g.GBPWARMULTI) GBPWARMULTI
, fosFmtE7(g.GBPWAR) GBPWAR
, fosFmtE7(g.GLPLOCKLK) GLPLOCKLK
, fosFmtE7(g.GLPLOCKCHG) GLPLOCKCHG
, fosFmtE7(g.GLPLOCKUNLK) GLPLOCKUNLK
, fosFmtE7(g.GLXESSYNCLK) GLXESSYNCLK
, fosFmtE7(g.GLXESSYNCCHG) GLXESSYNCCHG
, fosFmtE7(g.GLXESSYNCUNLK) GLXESSYNCUNLK
, fosFmtE7(g.GLSUSPIRLM) GLSUSPIRLM
, fosFmtE7(g.GLSUSPXES) GLSUSPXES
, fosFmtE7(g.GLSUSPFALSE) GLSUSPFALSE
, fosFmtE7(g.GLINCOMPAT) GLINCOMPAT
, fosFmtE7(g.GLNOTFYSENT) GLNOTFYSENT
, fosFmtE7(g.GLFALSECONT) GLFALSECONT
, fosFmtE7(g.RLFCPULIMITU) RLFCPULIMITU
, fosFmtE7(g.RLFCPUUSEDU) RLFCPUUSEDU
, fosFmtE7(g.UNLOCKREQS) UNLOCKREQS
, fosFmtE7(g.QUERYREQS) QUERYREQS
, fosFmtE7(g.CHNGREQS) CHNGREQS
, fosFmtE7(g.IFIELAPSED) IFIELAPSED
, fosFmtE7(g.IFITCBCPU) IFITCBCPU
, fosFmtE7(g.IFIELAPDTC) IFIELAPDTC
, fosFmtE7(g.IFIELAPEXT) IFIELAPEXT
, fosFmtE7(g.PROGRAMS) PROGRAMS
, g.LOADTS
-- end prb insert genc
from pbxx.tacct_general_20140117 g
where dateTime between '2014-01-17-14.58.00'
and '2014-01-17-15.19.00'
and subsystem like 'DOF%'
and corrName like 'F256026%'
and planName like 'DSNTIAU%'
order by round_timestamp(dateTime, 'mi') desc, corrName
fetch first 100 rows only
}¢--- A540769.WK.SQL(PRPLPK) cre=2013-11-18 mod=2016-11-03-09.24.42 A540769 ----
$#@
call sqlConnect dp4g
$;
$<=¢
set current path oa1p ;
with p as
(
select sum(real(p2Commits+aborts)) comR
, sum(real(EDB2TCB)) placpu
, groupName, planName
from pbdd.tacct_general
where dateTime between '2013-11-13-00.00.00'
and '2013-11-13-23.59.59'
group by groupName, planName
)
, q as
(
select
real(occurrences) occ
, real(sqlcount) sqls
, real(cputcbpkg) cpu
, groupName, planName -- , programName
from pbdd.tacct_program
where dateTime between '2013-11-13-00.00.00'
and '2013-11-13-23.59.59'
)
, s as
(
select sum(occ) occ
, sum(sqls) sqls
, sum(cpu) cpu
, groupName, planName--, programName
from q
group by groupName, planName--, programName
)
select fosFmte7(comR) comR
, fosFmte7(plaCpu) plaCpu
, fosFmte7(occ) pkgOcc
, fosFmte7(sqls) sqls
, fosFmte7(cpu) cpu
, p.groupName, p.planName--, programName
from s left join p
on s.groupName = p.groupName and s.planName = p.planName
order by s.occ desc
fetch first 2000 rows only
$!
call sqlStmts
$#out 20131120 09:28:03
sqlCode 0: set current path oa1p
COMR PLACPU PKGOCC SQLS CPU GROUPNAM PLANNAME
1.10E6 6.52E03 1.64E7 2.81E8 6.24E03 DBOF NZ0610
5.91E5 5.61E03 7.65E6 2.00E8 5.53E03 DBOF KC0680
5.28E5 1.16E04 7.45E6 1.36E9 1.11E04 DBOF NZ0920
8.12E5 1.74E03 5.60E6 2.47E7 1.64E03 DBOF CI0700
1.67E5 2.35E03 4.93E6 7.47E7 2.34E03 DBOF CA0410
1.94E5 2.68E03 4.83E6 1.04E8 2.66E03 DBOF KC0830
4.27E5 3.01E03 4.18E6 1.00E8 2.95E03 DBOF BE0630
8.15E5 2.10E03 3.39E6 4.98E7 2.05E03 DBOF CI0900
}¢--- A540769.WK.SQL(PRPLPK2) cre=2013-11-18 mod=2016-11-03-09.25.27 A540769 ---
$#@
$<~WK.SQL(PRPLPKdd)
call sqlConnect dbof
call sqlQueryPrep 7 ,
, "select ( select release from sysibm.sysPlan p" ,
"where p.name = ?) plaR" ,
",(select k.release from sysibm.sysPackage k" ,
"where k.name = ?" ,
"order by k.pcTimestamp desc, k.timestamp desc" ,
"fetch first 1 row only) pkgR from sysibm.sysDummy1"
$@for li $@¢
li = strip($li)
gr = word(li, 6)
pl = word(li, 7)
pr = word(li, 8)
if gr = 'DBOF' then $@¢
call sqlQueryArgs 7, pl, pr
if \ sqlFetch(7, a) then
call err 'no row'
$$- li m.a.plaR'/'m.a.pkgR'.'
call sqlClose 7
$!
$!
$#out 20131118 22:34:36
1.10E6 6.52E3 9.44E5 9.37E6 8.52E02 DBOF NZ0610 YCDSGET C/ .
1.10E6 6.52E3 9.31E5 1.60E8 1.93E03 DBOF NZ0610 YOOAIE3 C/ .
1.10E6 6.52E3 9.23E5 4.15E7 3.22E02 DBOF NZ0610 YCDX031 C/ .
5.91E5 5.61E3 9.18E5 1.12E7 4.49E02 DBOF KC0680 YBER03E C/ .
1.10E6 6.52E3 8.91E5 1.62E6 1.91E02 DBOF NZ0610 YCDQGET C/ .
1.10E6 6.52E3 8.91E5 6.47E6 3.53E02 DBOF NZ0610 YCDOGEE C/ .
}¢--- A540769.WK.SQL(PRSTATS) cre=2014-06-25 mod=2014-06-25-16.13.49 A540769 ---
select subsystem, dateTime, prepfnd, prepNotfnd
, prepdiscMax, prepDiscProg, s.*
from pbdd.tStat_general s
where dateTime > current timestamp - 5 days
order by datetime desc, subsystem
}¢--- A540769.WK.SQL(PRTB2PK) cre=2014-03-10 mod=2014-03-10-18.08.06 A540769 ---
$#@
call sqlConnect 'RZ1/DBTF'
$;
$<=¢
select strip(pk.NAME) pkg
, max(pcTimestamp) pc
from sysIbm.sysPackage pk
where (pk.location, pk.collid, pk.name, pk.conToken) in
(select pkd.dLocation, pkd.dCollid, pkd.dName, pkd.dConToken
from sysIbm.sysPackDep pkd
where (pkd.bQualifier, pkd.bName) in
(select t.creator, t.name
from sysIbm.sysTables t
where t.type not in ('A', 'V') and t.name = 'SYSTABLES'
) )
group by pk.name
order by pk.name
$!
$@<.¢sqlRdr()$!
call fTabAuto
call sqlDisconnect
!$#out 20140310 17:32:57
O.160.1
$#out 20140310 17:31:56
J J
0 0
$#out 20140310 17:31:26
J J
0 0
$#out 20140310 17:30:44
}¢--- A540769.WK.SQL(PRXX) cre=2014-04-25 mod=2014-04-25-17.31.15 A540769 ------
select min(dateTime), max(DateTime)
from prxx.tacct_general
-- where planname = 'DSNREXX'
;x;
select *
from prxx.tacct_general
where planname = 'DSNREXX'
}¢--- A540769.WK.SQL(PTAGGR) cre=2015-03-20 mod=2015-03-20-13.16.02 A540769 ----
-- performance test aggregate functions
-- min or max are efficiently retrieved from index
-- (access to first and/or last entry in range)
-- however this is not clearly reflected in explain_tables
-- cost only gives a difference in CPU,
-- struct has no difference
-- only plan_table.COLUMN_FN_EVAL = R/S gives an indication
--
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.dsn_struct_table;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 2 for
select tbCreator
from sysibm.sysColumns
where tbCreator like 'OA1%'
order by tbCreator desc
fetch first 1 row only
;
explain plan set queryno = 3 for
select max(tbCreator)
from sysibm.sysColumns
where tbCreator like 'OA1%'
;
explain plan set queryno = 5 for
select max(tbCreator), min(tbCreator)
from sysibm.sysColumns
where tbCreator like 'OA1%'
;
explain plan set queryno = 7 for
select count(*)
from sysibm.sysColumns
where tbCreator like 'OA1%'
;
explain plan set queryno = 9 for
select count(*), sum(length(strip(tbCreator)))
from sysibm.sysColumns
where tbCreator like 'OA1%'
;
select * from plan_view1
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select * from plan_view2det
order by -- collid, progName, version, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from plan_viewPred
order by collid, progName, explain_time,
queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
;
select *
from plan_table
order by collid, progName, explain_time,
queryNo, qblockno, planno, mixOpSeq
;
select *
from A540769.DSN_DetCost_TABLE
order by collid, progName, explain_time,
queryNo, qblockno, planno
;
select *
from dsn_struct_table
order by collid, progName, explain_time,
queryNo, qblockno, parent
;
rollback
;x;;
select current timestamp from sysibm.sysDummy1;
select tbCreator
from sysibm.sysColumns
where tbCreator like 'OA1%'
order by tbCreator desc
fetch first 1 row only
;
select current timestamp from sysibm.sysDummy1;
select max(tbCreator)
from sysibm.sysColumns
where tbCreator like 'OA1%'
;
select current timestamp from sysibm.sysDummy1;
select max(tbCreator), min(tbCreator)
from sysibm.sysColumns
where tbCreator like 'OA1%'
;
select current timestamp from sysibm.sysDummy1;
select count(*)
from sysibm.sysColumns
where tbCreator like 'OA1%'
;
select current timestamp from sysibm.sysDummy1;
select count(*), sum(length(strip(tbCreator)))
from sysibm.sysColumns
where tbCreator like 'OA1%'
;
select current timestamp from sysibm.sysDummy1;
xx;
}¢--- A540769.WK.SQL(PTI) cre=2014-05-30 mod=2014-05-30-15.19.02 A540769 -------
SELECT MODEL_ID , MODEL_CREATOR , MODEL_PRODUCT_CODE , SEQUENCE_FIELD ,
INTERNAL_TYPE , "DATA"
FROM PTI.PTMOD_UTLSYM_0401
WHERE ( MODEL_ID = 'ALL'
AND MODEL_CREATOR = 'DBX' )
ORDER BY MODEL_ID ASC , MODEL_CREATOR ASC , MODEL_PRODUCT_CODE ASC ,
SEQUENCE_FIELD ASC
}¢--- A540769.WK.SQL(PVALL) cre=2011-04-12 mod=2011-04-12-10.29.51 A540769 -----
select * from GDB0482.TPV431A1 ;
select * from GDB0482.TPV431B1 ;
select * from GDB0482.TPV432A1 ;
select * from GDB0482.TPV432B1 ;
select * from GDB0482.TPV499A1 ;
select * from GDB0482.TPV601A1 ;
select * from GDB0482.TPV602A1 ;
select * from GDB0482.TPV610A1 ;
select * from GDB0482.TPV611A1 ;
select * from GDB0482.TPV612A1 ;
;;;;;;
select * from GDB0482.TPV414B1 ;
select * from GDB0482.TPV415A1 ;
select * from GDB0482.TPV415B1 ;
select * from GDB0482.TPV416A1 ;
select * from GDB0482.TPV416B1 ;
select * from GDB0482.TPV417A1 ;
select * from GDB0482.TPV417B1 ;
select * from GDB0482.TPV418A1 ;
select * from GDB0482.TPV418B1 ;
select * from GDB0482.TPV419A1 ;
select * from GDB0482.TPV419B1 ;
select * from GDB0482.TPV420A1 ;
select * from GDB0482.TPV420B1 ;
select * from GDB0482.TPV421A1 ;
select * from GDB0482.TPV421B1 ;
select * from GDB0482.TPV422A1 ;
select * from GDB0482.TPV422B1 ;
select * from GDB0482.TPV423A1 ;
select * from GDB0482.TPV423B1 ;
select * from GDB0482.TPV424A1 ;
select * from GDB0482.TPV424B1 ;
select * from GDB0482.TPV425A1 ;
select * from GDB0482.TPV425B1 ;
select * from GDB0482.TPV426A1 ;
select * from GDB0482.TPV426B1 ;
select * from GDB0482.TPV430A1 ;
select * from GDB0482.TPV430B1 ;
select * from GDB0482.TPV431A1 ;
;;;;
select * from GDB0482.TPV401A1 ;
select * from GDB0482.TPV401B1 ;
select * from GDB0482.TPV402A1 ;
select * from GDB0482.TPV402B1 ;
select * from GDB0482.TPV403A1 ;
select * from GDB0482.TPV403B1 ;
select * from GDB0482.TPV404A1 ;
select * from GDB0482.TPV404B1 ;
select * from GDB0482.TPV405A1 ;
select * from GDB0482.TPV405B1 ;
select * from GDB0482.TPV406A1 ;
select * from GDB0482.TPV406B1 ;
-- select * from GDB0482.TPV407A1 ;
select * from GDB0482.TPV407B1 ;
select * from GDB0482.TPV408A1 ;
select * from GDB0482.TPV408B1 ;
select * from GDB0482.TPV409A1 ;
select * from GDB0482.TPV409B1 ;
select * from GDB0482.TPV410A1 ;
select * from GDB0482.TPV410B1 ;
select * from GDB0482.TPV411A1 ;
select * from GDB0482.TPV411B1 ;
select * from GDB0482.TPV412A1 ;
select * from GDB0482.TPV412B1 ;
select * from GDB0482.TPV413A1 ;
select * from GDB0482.TPV413B1 ;
select * from GDB0482.TPV414A1 ;
select * from GDB0482.TPV414B1 ;
}¢--- A540769.WK.SQL(PVM77) cre= mod= ------------------------------------------
select
char(mon) || '; '
|| arbid || '; '
|| char(sum(erstPag#)) || '; '
|| char(sum(erstCou#))
from
(select
year(ldatum) * 100 + month(lDatum) as mon,
left(erstJob,4) arbid,
erstPag#,
erstCou#
from OA1T.vpv013a1a
where mandant = '0034'
and left(erstJob,2)
in ('W0', 'W1', 'W2', 'W3', 'W4', 'W5')
and lDatum between '20050601' and '20050631'
) t1
group by arbid , mon
order by arbid , mon
}¢--- A540769.WK.SQL(PVM77D) cre= mod= -----------------------------------------
select
ldatum,
erstJob,
erstPag#,
erstCou#
from OA1T.vpv013a1a
where mandant = '0034'
and left(erstJob,2)
in ('W0', 'W1', 'W2', 'W3', 'W4', 'W5')
and lDatum between '20051001' and '20051031'
}¢--- A540769.WK.SQL(PVM7700H) cre= mod= ---------------------------------------
<html>
<head>
<TITLE>Leistungsverrechnung Detailnachweis WGR</TITLE>
</head>
<body>
<h1>Leistungsverrechnung Detailnachweis WGR</h1>
<br>
Speichern Sie den folgenden Link als .csv File (ohne Apostrophs)
<p>
<table border=2 cellpadding=5>
<tr><th>Monat</th><th>Detaildaten</th></tr>
<tr>
<td>$MONTHDISP</td>
<td><a href="'$CSV'" TYPE="text/csv">$RZ</a></td>
</table>
<p>
Die Kolonnen in der Excel-Tabelle haben folgende Bedeutung:
<ol>
<li>Monat im Format yyyymm</li>
<li>Instradierung</li>
<li>PVS Anzahl Seiten</li>
<li>PVS Anzahl Dokumente</li>
<li>JES (interner Output) Anzahl Seiten</li>
<li>JES (interner Output) Anzahl Stapel</li>
</ol>
</body>
</html>
}¢--- A540769.WK.SQL(PVM7700M) cre= mod= ---------------------------------------
SUBJECT Leistungsverrechnung Detailnachweis WGR
RECPLIST A540769
*********** RECP*IST A702455
SENDERID GGPVS
SENDERIDCC Y
DOCTEXT
Grüezi Herr Malnati
dieser Link führt Sie zum Detailnachweis WGR des Monats $MONTHDISP
<https://rhino.csintra.net/MVSDS/'$HTML'>
mit freundlichen Grüssen
<mailTo:GG PVS Support (KPCO 4)>
}¢--- A540769.WK.SQL(PVM7700S) cre= mod= ---------------------------------------
select mon, arbid, sum(erstPag#), sum(erstCou#)
from
(select
year(datum) * 100 + month(datum) as mon,
left(erstJob,4) arbid,
erstPag#,
erstCou#
from $DBOWNER.vpv013a1a
where mandant = '0034'
and left(erstJob,2)
in ('W0', 'W1', 'W2', 'W3', 'W4', 'W5')
and datum between '${MONTH}01' and '${MONTH}31'
) t1
group by arbid , mon
order by arbid desc, mon
}¢--- A540769.WK.SQL(PVSVER) cre= mod= -----------------------------------------
select ldatum, count(*)
from oa1t.vpv013a1a
where lDatum between '20050601' and '20050677'
group by lDatum;
-- select
-- char(mon) || ', ' ||arbid || ', ' || char(sum(erstPag#))
-- || ', ' || char(sum(erstCou#)) || ', ' || char(count(*))
-- from
-- ( select
-- year(ldatum) * 100 + month(lDatum) as mon,
-- left(erstJob,4) arbid, erstPag#, erstCou#
-- from oa1t.vpv013a1a
-- where left(erstJob,2) in ('BE', 'CD', 'CS', 'ED')
-- and year(ldatum) = 2005 and month(lDatum) = 3
-- ) t1
-- group by arbid , mon
-- order by arbid , mon ;
--
-- select
-- mon as "Month", arbid as "ArbID", sum(erstPag#) as "Pages",
-- sum(erstCou#) as "Documents", count(*) as "Count"
-- from
-- ( select
-- year(ldatum) * 100 + month(lDatum) as mon,
-- left(erstJob,4) arbid, erstPag#, erstCou#
-- from oa1t.vpv013a1a
-- where year(ldatum) = 2005 and month(lDatum) = 3
-- ) t1
-- group by arbid , mon
-- order by arbid , mon ;
}¢--- A540769.WK.SQL(PVSVERI) cre= mod= ----------------------------------------
select
char(mon) || ', ' || arbid || ', ' || char(sum(erstPag#))
|| ', ' || char(sum(erstCou#)) || ', ' || char(count(*))
from
( select
year(ldatum) * 100 + month(lDatum) as mon,
left(erstJob,4) arbid, erstPag#, erstCou#
from $DBOWNER.vpv013a1a
where left(erstJob,2)
in ($BEREICHE)
and lDatum between '${MONTH}01' and '${MONTH}31'
) t1
group by arbid , mon
order by arbid , mon
}¢--- A540769.WK.SQL(PVSVERJ) cre= mod= ----------------------------------------
select
char(mon) || '; ' || arbid || '; ' || char(sum(erstPag#))
|| '; ' || char(sum(erstCou#))
from
( select
year(ldatum) * 100 + month(lDatum) as mon,
left(erstJob,4) arbid, erstPag#, erstCou#
from $DBOWNER.vpv013a1a
where left(erstJob,2)
in ($BEREICHE)
and lDatum between '${MONTH}01' and '${MONTH}31'
) t1
group by arbid , mon
order by arbid , mon
}¢--- A540769.WK.SQL(PVS13) cre= mod= ------------------------------------------
select mon, arbid, sum(erstPag#), sum(erstCou#)
from
(select
year(ldatum) * 100 + month(lDatum) as mon,
left(erstJob,4) arbid,
erstPag#,
erstCou#
from $DBOWNER.vpv013a1a
where mandant = '0034'
and left(erstJob,2)
in ('W0', 'W1', 'W2', 'W3', 'W4', 'W5')
and lDatum between '${MONTH}01' and '${MONTH}31'
) t1
group by arbid , mon
order by arbid desc, mon
}¢--- A540769.WK.SQL(PV7130) cre= mod= -----------------------------------------
SELECT char(datum, iso), char(datum, jis), char(datum, eur),
ERSTJOB, PVSJOB, SUM(ERSTPAG#)
FROM oa1t.VPV013A1A
WHERE DATUM >= '27.07.2005' AND
PVSJOB LIKE 'PVS%'
GROUP BY DATUM, ERSTJOB, PVSJOB, DATUM
order BY DATUM, ERSTJOB, PVSJOB, DATUM;
}¢--- A540769.WK.SQL(PXT2300) cre=2008-09-12 mod=2008-09-12-20.30.22 F540769 ---
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 111 for
SELECT BP20001,BP20004,BP20007,BP20008,BP20010,
BP20011,BP20012,BP20013,BP20014,BP20015,BP20016,
BP20017,BP20019,BP20022,BP20024,BP20025,BP20026,
BP20027,BP20028,BP20029,BP20401,BP20404,BP20409,
BP20410,BP20502,BP20503,BP20504,BP20508,BP20509,
BP20510,BP20511,BP20512
FROM oa1t.TBP200A1,oa1t.TBP204A1,oa1t.TBP205A1
WHERE BP20001=BP20411 AND BP20001=BP20501
AND '2008-04-01-00.00.00.000000' BETWEEN BP20002 AND BP20003
AND BP20005=?
AND BP20403=?
AND BP20405=?
AND BP20503>=?
AND BP20505=?
AND BP20401 BETWEEN ? AND ?
AND BP20409=? AND BP20008=?
ORDER BY BP20008,BP20401 DESC
FOR FETCH ONLY WITH UR
;
select * from plan_view5a
where queryno in ( 111, 222)
order by applname, progname, queryNo, qblockno, planno
;
rollback;
}¢--- A540769.WK.SQL(QM416204) cre=2007-10-23 mod=2013-09-11-11.08.55 A540769 ---
--$SPECIAL
select current timestamp "timestamp",
current member "member", current server "server",
'11.9.13 alte queries' "version"
from sysibm.sysDummy1
;
with T as -- tadm09a1 gruppieren und max PartitionSize berechnen
( SELECT DB_NAME, TS_NAME, PARTITIONS_NR,
sum(float(HI_U_RBA)) / 1024 / 1024 / 1024 USED,
CASE -- negative paLim bei GruppierungsFehlern
WHEN MIN(PARTITIONS_TOTAL) <> Max(PARTITIONS_TOTAL)
THEN -91
WHEN MIN(DS_SIZE) <> Max(DS_SIZE) THEN -92
WHEN MIN(LARGE) <> Max(LARGE) THEN -93
-- maximale PartitionSize in GB
WHEN MIN(PARTITIONS_TOTAL) = 0 THEN 64
WHEN MIN(DS_SIZE) <> 0 THEN INT(MIN(DS_SIZE)/1024/1024)
WHEN MIN(LARGE) = 'K' OR MIN(LARGE) = 'L' THEN 4
WHEN MIN(PARTITIONS_TOTAL) <= 16 THEN 4
WHEN MIN(PARTITIONS_TOTAL) <= 32 THEN 2
WHEN MIN(PARTITIONS_TOTAL) <= 64 THEN 1
WHEN MIN(PARTITIONS_TOTAL) <= 254 THEN 4
-- > 254 parts hängt von pageSize ab --> Fehler
ELSE -94
END paLim,
MIN(PARTITIONS_TOTAL) partitions_total,
min(DS_SIZE) ds_size,
min(LARGE) large,
DATUM DATUM
from oa1a.TADM09A1
group by DB_NAME, TS_NAME, PARTITIONS_NR, DATUM
) ,
L as -- SchwellWerte tadm10a1 mit like Wert ergänzen
( select W.*,
case when posStr(db_name, '%') < 1 then '% no %'
else left(db_name, posStr(db_name, '%') - 1)
end dbLike,
case when posStr(ts_name, '%') < 1 then '% no %'
else left(ts_name, posStr(ts_name, '%') - 1)
end tsLike
from oa1a.tadm10a1 W
where w.END_DATUM >= timestamp(current date,'00:00:00')
) ,
S as -- join R mit einem SchwellWert-Tupel aus TADM10A1,
-- Tupel wird mit folgender Priorität gewählt
-- 1. db =, ts = , pa = or 0
-- 2. db =, ts like , pa = or 0
-- 3. db like, ts like or =, pa = or 0
-- 4. db DEFAULT
-- 5. default 90% der Limite
-- like Operator geht hier nicht, wir vergleichen
-- bis zum ersten %
( SELECT T.DB_NAME, T.TS_NAME, T.PARTITIONS_NR, T.used,
-- Werte aus erster gefunden Schwellwert Row auswählen
coalesce(spez.exclude, sTSl.exclude, sDBl.exclude,
sdef.exclude, 'N') exclude,
coalesce(strip(spez.db_name) || '.' || strip(spez.ts_name)
|| '.' || strip(char(spez.partitions_nr)),
strip(sTSl.db_name) || '.' || strip(sTSl.ts_name)
|| '.' || strip(char(sTSl.partitions_nr)),
strip(sDBl.db_name) || '.' || strip(sDBl.ts_name)
|| '.' || strip(char(sDBl.partitions_nr)),
strip(sDef.db_name) || '.' || strip(sDef.ts_name)
|| '.' || strip(char(sDef.partitions_nr)),
'%default 90%') swKey,
coalesce (
case T.paLim -- richtigen Schwellwert für paLim wählen
when 1 then coalesce(spez.HIGHWATER_1GB,
sTSl.HIGHWATER_1GB , sDBl.HIGHWATER_1GB,
sDef.HIGHWATER_1GB)
when 2 then coalesce(spez.HIGHWATER_2GB,
sTSl.HIGHWATER_2GB , sDBl.HIGHWATER_2GB,
sDef.HIGHWATER_2GB)
when 4 then coalesce(spez.HIGHWATER_4GB,
sTSl.HIGHWATER_4GB , sDBl.HIGHWATER_4GB,
sDef.HIGHWATER_4GB)
when 8 then coalesce(spez.HIGHWATER_8GB,
sTSl.HIGHWATER_8GB , sDBl.HIGHWATER_8GB,
sDef.HIGHWATER_8GB)
when 16 then coalesce(spez.HIGHWATER_16GB,
sTSl.HIGHWATER_16GB , sDBl.HIGHWATER_16GB,
sDef.HIGHWATER_16GB)
when 32 then coalesce(spez.HIGHWATER_32GB,
sTSl.HIGHWATER_32GB , sDBl.HIGHWATER_32GB,
sDef.HIGHWATER_32GB)
when 64 then coalesce(spez.HIGHWATER_64GB,
sTSl.HIGHWATER_64GB , sDBl.HIGHWATER_64GB,
sDef.HIGHWATER_64GB)
else min(-89, T.paLim)
end , 0.9 * T.paLim) sw,
T.paLim, T.partitions_total, T.ds_size, T.large, T.datum
FROM T
left JOIN L SPEZ -- Schwelle für db, ts und part%
ON SPEZ.DB_NAME = T.DB_NAME
AND SPEZ.TS_NAME = T.TS_NAME
AND SPEZ.PARTITIONS_NR IN (0 , T.PARTITIONS_NR)
left JOIN L sTSl -- Schwelle für db, ts% und part%
ON sTSl.DB_NAME = T.DB_NAME
AND sTSl.tsLike = left(T.ts_name, length(sTSl.tsLike))
AND sTSl.PARTITIONS_NR IN (0 , T.PARTITIONS_NR)
left JOIN l sDBl -- Schwelle für db, ts% und part%
ON sDBl.dbLike = left(T.db_name, length(sDBl.dbLike))
AND ( sDBl.tsLike = left(T.ts_name, length(sDBl.tsLike))
or sDBl.ts_name = T.ts_name )
AND sDBl.PARTITIONS_NR IN (0 , T.PARTITIONS_NR)
LEFT JOIN L SDEF -- Schwell Default
ON SDEF.DB_NAME = 'DEFAULT'
)
--\*********************************************************************
--\
--\ Tablespace (Partitionen) grösser SchwellWert
--\
SELECT substr(DB_NAME,1,8) "db",
substr(TS_NAME,1,8) "ts",
char(case
when partitions_nr <= 999 and partitions_total <= 999
then right(' ' || strip(char(PARTITIONS_nr)), 3) || '/'
|| right(' ' || strip(char(PARTITIONS_total)), 3)
else strip(char(PARTITIONS_nr)) || '/'
end, 7) "par/tot" ,
dec(used, 4, 2) "used",
dec(sw, 4, 2) "schWe",
dec(paLim, 2, 0) "lim",
char(swKey, 20) "schwellWertKey"
from S
where datum = current date
and exclude in ('N', 'S') and used > sw
ORDER BY 1, 2, 3
;
--/
--/ db = Datenbank
--/ ts = Tablespace
--/ par/tot = betroffene PartitionsNummer
--/ / Total Anzahl Partitionen des Tablespace
--/ used = benutzter Speicherplatz in GB
--/ schWe = Schwellwert in GB
--/ lim = Limite in GB
--/ schwellWertKey = Key des Schwellwerts im Format db.ts.par
--/
--/*********************************************************************
with ts as -- tablespace mit dsSz
( select s.*,
case when partitions = 0 then 64 * 1024 * 1024
when dssize <> 0 then dssize
when type in ('K', 'L') then 4 * 1024 * 1024
when partitions <= 16 then 4 * 1024 * 1024
when partitions <= 32 then 2 * 1024 * 1024
when partitions <= 64 then 1 * 1024 * 1024
when partitions <= 254 then 4 * 1024 * 1024
when partitions <= 16 then 4 * 1024 * 1024
end dsSz
from sysibm.sysTablespace s
) ,
ii as -- index mit pieceSz, pieceCnt und maxPartition
(
select i.*, t.tsName, p.maxPart,
case when maxPart > 0 then 1
when s.dsSize < 4e6 and not s.type in ('L', 'K') then 32
else 4096
end pieceCnt,
case when maxPart > 0 then dsSz
when pieceSize > 0 then piecesize
when s.dsSz >= 4 then 4 * 1024 * 1024
else 2 * 1024 * 1024
end pieceSz
from sysibm.sysindexes i, sysibm.systables t, ts s,
( select max(partition) maxPart, ixCreator, ixName
from sysibm.sysindexpart p
group by ixCreator, ixName
) p
where
i.tbCreator = t.creator and i.tbName = t.name
and t.dbName = s.dbName and t.tsName = s.name
and i.creator = p.ixCreator and i.name = p.ixName
) ,
L as --* SchwellWerte tadm10a1 mit like Wert ergänzen
( select W.*,
case when posStr(db_name, '%') < 1 then '% no %'
else left(db_name, posStr(db_name, '%') - 1)
end dbLike,
case when posStr(ts_name, '%') < 1 then '% no %'
else left(ts_name, posStr(ts_name, '%') - 1)
end tsLike
from oa1a.tadm10a1 W
where w.END_DATUM >= timestamp(current date,'00:00:00')
),
RR as --* RTS mit Limite und Schwellwert
(
select r.*,
ii.creator ixCreator, ii.name ixName, ii.maxPart,
ii.tbCreator, ii.tbName, ii.tsName,
float(r.nActive) * 4 / 1024 / 1024 activeGB,
float(r.space) / 1024 / 1024 spaceGB,
ii.pieceCnt limitPieces,
float(ii.pieceSz) * ii.pieceCnt / 1024 / 1024 limitGB,
coalesce(L1.HIGHWATER_1GB, L2.HIGHWATER_1GB, L3.HIGHWATER_1GB,
L4.HIGHWATER_1GB, .8) swFrc,
coalesce(L1.exclude, L2.exclude, L3.exclude,
l4.exclude, 'N') exclude,
coalesce(strip(l1.db_name) || '.' || strip(l1.ts_name)
|| ':' || strip(char(l1.partitions_nr)),
strip(l2.db_name) || '.' || strip(l2.ts_name)
|| ':' || strip(char(l2.partitions_nr)),
strip(l3.db_name) || '.' || strip(l3.ts_name)
|| ':' || strip(char(l3.partitions_nr)),
strip(l4.db_name) || '.' || strip(l4.ts_name)
|| ':' || strip(char(l4.partitions_nr)),
'sql default') swKey
from sysibm.sysindexspacestats r
left join ii on ii.dbid = r.dbid and ii.isobid = r.isobid
left JOIN L L1 --* Schwelle für db, ts und part%
ON L1.DB_NAME = ii.DBNAME
AND L1.TS_NAME = ii.indexSpace
AND L1.PARTITIONS_NR IN (0 , r.PARTITION)
left JOIN L L2 --* Schwelle für db, ts% und part%
ON L2.DB_NAME = ii.DBNAME
AND L2.tsLike = left(ii.indexSpace,length(L2.tsLike))
AND L2.PARTITIONS_NR IN (0 , r.PARTITION)
left JOIN l L3 --* Schwelle für db, ts% und part%
ON L3.dbLike = left(ii.dbname, length(L3.dbLike))
AND ( L3.tsLike = left(ii.indexspace, length(L3.tsLike))
or L3.ts_name = ii.indexSpace )
AND L3.PARTITIONS_NR IN (0 , r.PARTITION)
LEFT JOIN L L4 --* Schwell Default
ON L4.DB_NAME = 'DEFAULT/I'
)
--\*********************************************************************
--\
--\ IndexSpace (Partitionen) grösser SchwellWert * Limite
--\
SELECT substr(DBNAME,1,8) "db",
substr(indexSpace,1,8) "indexSpc",
char(case
when partition <= 999 and maxPart <= 999
then right(' ' || strip(char(PARTITION)), 3) || '/'
|| right(' ' || strip(char(maxPart)), 3)
else strip(char(PARTITION)) || '/'
end, 7) "par/tot" ,
char(
right(' '||strip(cast(dec(activeGB, 8, 3) as char(10))),10)
|| char(dec(swFrc, 3, 2))
|| right(' '||strip(cast(dec(limitGB, 8,3) as char(10))),10)
, 25) " active scWe limit",
char(left(ixName, 20), 20) "index name"
from RR
where exclude in ('N', 'S') and activeGB > swFrc * limitGB
ORDER BY 1, 2, 3
;
--/
--/ db = Datenbank
--/ indexSp = index Space (Nicht Name|)
--/ par/tot = betroffene PartitionsNummer / Total Partitonen
--/ active = Speicherplatz in GB der active Pages
--/ schWe = Schwellwert Faktor
--/ lim = Limite in GB
--/ indexName = Name des Index
--/
--/*********************************************************************
--$SPECIAL
select current timestamp "timestamp",
current member "member", current server "server",
'11.9.13 neue queries' "version"
from sysibm.sysDummy1
;
with t0 as
(
select dbname db, name ts, pgSize
, partitions parts, maxPartitions maxParts, dsSize
, case
when type <> ' ' then type
when partitions > 0 and segsize = 0 then 'p' -- classic part
when partitions = 0 and segsize = 0 then 'i' -- simple
when partitions = 0 and segsize > 0 then 's' -- segmented
else raise_error(70000, 'unknown ts type='||type
|| ' partitions=' || strip(char(partitions))
|| ' segsize=' || strip(char(segsize))
|| ' db.ts=' || strip(dbName) ||'.'||name) end tsTy
, case
when dssize <> 0 then int(dssize / 1048576)
when type in ('G', 'O', 'P', 'R', 'L') then 4
when partitions = 0 then 64
when partitions > 254 then pgSize
when partitions > 64 then 4
when partitions > 32 then 1
when partitions > 16 then 2
else 4
end dsGB
, dbid, psid
from sysibm.sysTablespace
)
, ts as
( select t0.*
, case when tsTy = 'G' or parts = 0 then 0 else 9999 end scope
, case when tsTy = 'G' then dsGB * maxparts
when tsTy = 'O' then dsGB * 254
else dsGb end limGB
from t0
)
, tk1 as
(
select ts.*
, value( ( select max(a.key)
from s100447.tGbGrSchwelle
for business_time as of current date a
where a.part = 0
and left(a.db, a.dbLen) = left(ts.db, a.dbLen)
and left(a.ts, a.tsLen) = left(ts.ts, a.tsLen)
and (a.tsTy = ' ' or a.tsTy = ts.tsTy)
and a.dsMin <= ts.limGB
), raise_error(70001, 'schwelle null ' || db ||'.'||ts
|| ' ty='||tsTy)
) keyTS
from ts
)
, tr as
(
select tk1.*
, min(partition, scope) part
, nActive nAct
from tk1 join sysibm.sysTableSpaceStats r
on tk1.db = r.dbName and tk1.ts = r.name
and tk1.dbid = r.dbid and tk1.psid = r.psid
)
, tg (db, ts, part, limGb, keyTS, nAct
, pgSize, parts, maxParts, dsSize, tsTy, dsGB) as
(
select db, ts, part, min(limGb), max(keyTS), sum(bigInt(nAct))
, max(pgSize), max(parts), max(maxParts), max(dsSize)
, max(tsTy), max(dsGB)
from tr
group by db, ts, part
)
, i1 as
(
select i.indexType, i.pieceSize, i.creator ixCr, i.name ix
, case when i.pgSize = 4096 or i.compress = 'Y' then 4
else i.pgSize
end ixPgSz
, (select max(partition)
from sysibm.sysIndexPart p
where p.ixCreator = i.creator
and p.ixName = i.name
) ixPaMax
, tk1.*
from tk1
join sysibm.sysTables t
on tk1.db = t.dbName and tk1.ts = t.tsName
and t.type not in ('A', 'V')
join sysibm.sysIndexes i
on i.tbCreator = t.creator and i.tbName = t.name
)
, i2 as
(
select case when piecesize <> 0 then real(pieceSize) / 1048576
when parts <> 0 then real(dsGB) * ixPgSz / pgSize
else 2
end pcGb
, i1.*
from i1
)
, i3 as
(
select case when ixPaMax <> 0 then 1
when parts = 0 then 32
when tsTy <> 'L' and dsSize = 0 and parts <= 64 then 32
when parts > 254 then 4096
else smallInt(min(4096, 4096 / pcGb * ixPgSz))
end pcMx
, i2.*
from i2
)
, iR as
(
select pcGb * pcMx ixpGb
, float(r.nActive) * i3.ixPgSz / 1048576 actGB
, r.partition part
, i3.*
from i3 left join sysibm.sysindexspacestats r
on i3.ixCr = r.creator and i3.ix = r.name
)
, u1 (db, ts, ix, part, parts, limGb, actGb, tsTy, keyTs) as
(
select db, ts, ' --ts--', part, parts, limGb
, float(nAct) * pgSize / 1048576
, tsTy, keyTS
from tg
union all select db, ts, ix, part, ixPaMax, ixpGb, actGb, tsTy, keyTS
from iR
)
, uK as
(
select u1.*
, case when u1.part is null or u1.part < 1 then keyTS
else value ( ( select max(a.key)
from s100447.tGbGrSchwelle
for business_time as of current date a
where u1.part > 0 and a.part = u1.part and a.key > u1.keyTS
and left(a.db, a.dbLen) = left(u1.db, a.dbLen)
and left(a.ts, a.tsLen) = left(u1.ts, a.tsLen)
and (a.tsTy = ' ' or a.tsTy = u1.tsTy)
and a.dsMin <= u1.limGB
), u1.keyTS) end key
from u1
)
, uS as
(
select j.schwelle
, smallint(round(actGb * 100 / limGB, 0)) used
, uK.*
from uK
join s100447.tGbGrSchwelle
for business_time as of current date j
on uK.key = j.key
)
--\*********************************************************************
--\
--\ Tablespace und Index Partitionen grösser SchwellWert
--\
select substr(db, 1, 8) "db"
, substr(ts, 1, 8) "ts"
, substr(case when part = 0 then ''
else value(right(' '||strip(char(part)), 4), '----')
||'/'|| value(right(' '||strip(char(parts)), 4), '----')
end, 1, 9) "part/ tot"
, substr(ix, max(1, length(ix) - 7), 8) "...index"
, dec(limGb, 6, 0) "lim GB"
, dec(schwelle, 3, 0) "schw%"
, dec(used, 3, 0) "used%"
, tsTy "y"
from oa1p.vAdm13GbGr g
where used > schwelle
order by g.db, g.ts, g.part, g.ix
;
--/
--/ db = Datenbank
--/ ts = tablespace
--/ part/ tot = betroffene PartitionsNummer / Total Partitonen
--/ index = index oder --ts--
--/ lim GB = physische Limite in GB
--/ schw% = Schwellwert in Prozent der Limite
--/ used% = benutzter Plat in Prozent der Limite
--/ y = tsType s=Segmented,i=Simple p=Partitioned classic
--/ andere Werte aus sysibm.sysTableSpace.type
--/ key ... = key des Schwellwerts aus S100447.tGbGrSchwelle
--/ abgeschnitten siehe DSN.jobname.MAIL1
--/*********************************************************************
--$SPECIAL
select current timestamp "timestamp",
current member "member", current server "server",
'11.9.13 ende' "version"
from sysibm.sysDummy1
;
}¢--- A540769.WK.SQL(QUERYNO) cre=2010-04-06 mod=2010-04-06-16.07.03 A540769 ---
select count(*), queryno
from cmnbatch.DSN_QUERY_TABLE
group by queryno
order by 1 desc
fetch first 100 rows only
with ur
}¢--- A540769.WK.SQL(QUERYREN) cre=2010-04-07 mod=2010-04-08-15.26.21 A540769 ---
rename table CMNBATCH.DSN_QUERY_TABLE_REORG
to DSN_QUERY_TABLE;
commit;
}¢--- A540769.WK.SQL(QUIET) cre=2008-01-07 mod=2008-01-07-16.55.59 F540769 -----
UPDATE GDB9998.TWK801A1 00010000
SET TI4 = CURRENT TIME; 00020001
UPDATE GDB9998.TWK802A1 00030002
SET TI4 = CURRENT TIME; 00040002
}¢--- A540769.WK.SQL(QZ06SUM) cre=2014-05-13 mod=2015-06-12-17.11.49 A540769 ---
with u (tb, cnt, rz, dbSys, ssMin, ssMax
, tstMin, tstMax, loadMin, loadMax) as
(
select '60timeOut', count(*), rz, dbSys, min(ssid), max(ssid)
, min(timestamp), max(timestamp)
, min(loadDate), max(loadDate)
from oa1p.tqz060Timeout
where timestamp > '2015-05-01-00.00.00'
and loadDate > '08.10.2014'
group by left(ssid, 3), rz,dbsys
union all select '63UOW', count(*), rz, dbSys, min(ssid), max(ssid)
, min(timestamp), max(timestamp)
, min(loadDate), max(loadDate)
from oa1p.tqz063UOW
where timestamp > '2015-05-01-00.00.00'
and loadDate > '08.10.2014'
group by left(ssid, 3), rz,dbsys
union all select '65LockEs', count(*), rz, dbSys, min(ssid), max(ssid)
, min(timestamp), max(timestamp)
, min(loadDate), max(loadDate)
from oa1p.tqz064LockEscal
where timestamp > '2015-05-01-00.00.00'
and loadDate > '08.10.2014'
group by left(ssid, 3), rz,dbsys
union all select '65Abend', count(*), rz, dbSys, min(ssid), max(ssid)
, min(timestamp), max(timestamp)
, min(loadDate), max(loadDate)
from oa1p.tqz065Abend
where timestamp > '2015-05-01-00.00.00'
and loadDate > '08.10.2014'
group by left(ssid, 3), rz,dbsys
)
select *
from u
order by 3, 4, 1
with ur
;x;
select count(*), count(distinct loadDate), loadDate
from oa1p.tqz060Timeout
where rz = 'RR2' and loadDate > current date - 1 month
group by loadDate
order by 3 desc
;X;
select count(*), rz, dbSys, min(ssid), max(ssid)
, min(timestamp), max(timestamp)
, min(loadDate), max(loadDate)
from oa1p.tqz060Timeout
where timestamp > '2014-08-01-00.00.00'
and loadDate > '08.10.2014'
group by left(ssid, 3), rz,dbsys
--, trunc_timestamp(timestamp, 'mon')
order by 2, 3
with ur
;
select count(*), rz, dbSys, min(ssid), max(ssid)
, min(timestamp), max(timestamp)
, min(loadDate), max(loadDate)
from oa1p.tqz063UOW
where timestamp > '2014-08-01-00.00.00'
and loadDate > '08.10.2014'
group by left(ssid, 3), rz,dbsys
--, trunc_timestamp(timestamp, 'mon')
order by 2, 3
with ur
;
select count(*), rz, dbSys, min(ssid), max(ssid)
, min(timestamp), max(timestamp)
, min(loadDate), max(loadDate)
from oa1p.tqz064LockEscal
where timestamp > '2014-08-01-00.00.00'
and loadDate > '08.10.2014'
group by left(ssid, 3), rz,dbsys
--, trunc_timestamp(timestamp, 'mon')
order by 2, 3
with ur
;
select count(*), rz, dbSys, min(ssid), max(ssid)
, min(timestamp), max(timestamp)
, min(loadDate), max(loadDate)
from oa1p.tqz065Abend
where timestamp > '2014-08-01-00.00.00'
and loadDate > '08.10.2014'
group by left(ssid, 3), rz,dbsys
--, trunc_timestamp(timestamp, 'mon')
order by 2, 3
with ur
;x;
}¢--- A540769.WK.SQL(QZ060) cre=2014-08-26 mod=2016-08-25-10.29.11 A540769 -----
set current application compatibility 'V11R1';
select date(timestamp), count(*)
, sum(case when victim_corr_id like '%AUTBND%'
then 1 else 0 end) vict
, sum(case when holder_corr_id like '%AUTBND%'
then 1 else 0 end) hold
, type, left(name, 10)
, min(name), max(name)
from oa1p.tqz060timeout
where rz = 'RZ2' and dbSys = 'DBOF'
and ( victim_corr_id like '%AUTBND%'
or holder_corr_id like '%AUTBND%'
)
and timestamp > current timestamp - 2 month
group by date(timestamp), rollup(type, left(name, 10))
order by 1 desc, 2 desc
;x;
select *
from oa1p.tqz060timeout
where rz = 'RZ2' and dbSys = 'DBOF'
and type = 'DB' and name = 'WI02A1P'
and ( victim_corr_id like '%AUTBND%'
or holder_corr_id like '%AUTBND%'
)
and timestamp > current timestamp - 2 month
;x;
select count(*), event_type
, date(MAX(timestamp)) --, min(timestamp)
, strip(min(name)) || ' - ' || max(name)
, MAX(timestamp), min(timestamp)
from oa1p.tqz060timeout
where rz = 'RZ2' and dbSys = 'DBOF'
and timestamp > current timestamp - 2 month
and ( name like '%XC01A1P%')
and timestamp between '2015-09-01-00.00.00'
and '2016-04-22-23.00.00'
group by left(name, 15), event_type
, trunc_timestamp(timestamp, 'iw')
order by trunc_timestamp(timestamp, 'iw') desc, 1 desc
;x;
select count(*), rz, ssid, dbSys
, max(loadDate)
, max(timestamp)
, min(loadDate)
, min(timestamp)
from oa1p.tqz064LockEscal
where rz = 'RZ2'
-- and type like '%ID%'
and timestamp > '2015-10-01-12.38.19'
group by rz, ssid, dbSys, loadDate
order by rz, ssid, dbSys, loadDate desc
;x;
select date(trunc_timestamp(timestamp, 'mon'))
, count(distinct date(timestamp)), count(*)
, max(loadDate)
, max(timestamp)
, min(loadDate)
, min(timestamp)
from oa1p.tqz065Abend
where rz = 'RQ2' -- and dbSys = 'DE0G'
and timestamp >= '2014-01-01-00.00.00'
-- and loaddate > '01.06.2015'
group by trunc_timestamp(timestamp, 'mon')
order by 1 desc
;x;
select *
from oa1p.tqz064LockEscal
where rz = 'RZZ' and dbSys = 'DEVG'
and timestamp = '2015-09-03-14.38.34'
;x;
select *
from oa1p.tqz065Abend
where rz = 'RZZ' and dbSys = 'DEVG'
and timestamp = '2015-09-09-11.07.38'
;x;
select *
from oa1p.tqz063UOW
where rz = 'RZZ' and dbSys = 'DEVG'
and timestamp = '2015-09-09-10.42.20'
;x;
select *
from oa1p.tqz060timeout
where rz = 'RZZ' and dbSys = 'DEVG'
-- and type like '%ID%'
and timestamp = '2015-09-07-12.38.19'
;x;
union all select count(*), date(timestamp)
from oa1p.tqz065Abend
where rz = 'RZX' and dbSys = 'DE0G'
and timestamp >= '2015-01-01-00.00.00'
group by date(timestamp)
select count(*), date(timestamp)
from oa1p.tqz065Abend
where rz = 'RZX' and dbSys = 'DE0G'
and timestamp = '2015-09-29-06.49.48'
;x;
select count(*), date(timestamp)
from oa1p.tqz065Abend
where rz = 'RZX' and dbSys = 'DE0G'
and timestamp = '2015-09-29-06.49.48'
;x;
select count(*), holder_plan, trunc_timestamp(timestamp, 'dd')
from oa1p.tqz060timeout
where rz = 'RZ2' and dbSys = 'DBOF'
and timestamp > current timestamp - 12 month
--and ( name like '%DW52%' or name like '%DW50A1P%')
and (holder_plan = 'KE5480' or victim_plan = 'KE5480')
group by holder_plan, trunc_timestamp(timestamp, 'dd')
order by 3 desc
;x;
select *
from oa1p.tqz060timeout
where rz = 'RZ2' and dbSys = 'DBOF'
and timestamp > current timestamp - 2 month
--and ( name like '%DW52%' or name like '%DW50A1P%')
and (holder_plan = 'KE5480' or victim_plan = 'KE5480')
order by timestamp desc
;x;
select count(*), event_type
, date(MAX(timestamp)) --, min(timestamp)
, strip(min(name)) || ' - ' || max(name)
, MAX(timestamp), min(timestamp)
from oa1p.tqz060timeout
where rz = 'RZ2' and dbSys = 'DBOF'
and timestamp > current timestamp - 12 month
and ( name like '%DW52%' or name like '%DW50A1P%')
and not timestamp between '2014-02-20-00.00.00'
and '2014-02-22-23.00.00'
group by left(name, 15), event_type
;x;
select count(*), event_type
, date(MAX(timestamp)) --, min(timestamp)
, strip(min(name)) || ' - ' || max(name)
, MAX(timestamp), min(timestamp)
from oa1p.tqz060timeout
where rz = 'RZ2' and dbSys = 'DBOF'
--and timestamp > current timestamp - 1 month
and ( name like '%DW52%' or name like '%DW50A1P%')
group by left(name, 15), event_type
}¢--- A540769.WK.SQL(QZ063) cre=2014-05-13 mod=2014-05-13-10.23.30 A540769 -----
with g as
(
select count(*) c, timestamp, ssid, event_type, plan_name, conn_id,
corrid_id, authid, logRec, rz, dbSys
from oa1p.tqz063uow
where timestamp >= '2014-04-01-00.00.00'
group by timestamp, ssid, event_type, plan_name, conn_id,
corrid_id, authid, logRec, rz, dbSys
)
select trunc_timestamp(timestamp, 'dd'), count(*) cnt
, sum(case when c > 1 then 1 else 0 end) mult
, sum(case when c > 1 then c else 0 end) multSum
from g
group by trunc_timestamp(timestamp, 'dd')
order by 1 desc
with ur
}¢--- A540769.WK.SQL(RAND) cre=2009-04-16 mod=2009-04-16-15.38.55 F540769 ------
select current timestamp from sysibm.sysdummy1;
with n (n) as
( select 1 from sysibm.sysDummy1
union all select n+1 from n where n < 1e4
),
nc (n, l1, l2, lv2, s1, s2) as
( select n, int(rand(101)*30), int(rand(102)*30),
0, varchar('',1000), varchar('',1000) from n
union all select n, l1, l2, lv2+1, s1 ||
substr('abcdefghijklmnopqrstuvwxyz 0123456789<>.'
|| 'ABCDEFGHIJKLMNOPQRSTUVWXYZ+*%&/()=?\¢!{}'
, int(rand(133)*80)+1, 1), s2
from nc
where lv2 < l1 and lv2 <= 1000
union all select n, l1, l2, lv2+1, s1, s2 ||
substr('abcdefghijklmnopqrstuvwxyz 0123456789<>.'
|| 'ABCDEFGHIJKLMNOPQRSTUVWXYZ+*%&/()=?\¢!{}'
, int(rand(133)*80)+1, 1)
from nc
where lv2 >= l1 and lv2 < l1+l2 and lv2 <= 1000
)
-- select count(*), sum(len) from nc where lv2 = len
select * from nc where lv2 = l1+l2
order by n
; c
xelect current timestamp from sysibm.sysdummy1;
with n (n) as
( select 1 from sysibm.sysDummy1
union all select n+1 from n where n < 1e5
),
nc (n, len, lv2, str) as
( select n, int(rand(101)*30), 0, varchar('',1000) from n
union all select n, len, lv2+1, str ||
substr('abcdefghijklmnopqrstuvwxyz 0123456789<>.'
|| 'ABCDEFGHIJKLMNOPQRSTUVWXYZ+*%&/()=?\¢!{}'
, int(rand(133)*80)+1, 1)
from nc
where lv2 < len and lv2 <= 1000
)
select count(*), sum(len) from nc where lv2 = len
-- order by n
;
select current timestamp from sysibm.sysdummy1;
xelect r, count(r)
with n (lev) as
( select 1 from sysibm.sysDummy1
union all select lev+1 from n1 where lev < 1e5
),
select r, count(r)
from
(
select substr('abcdefghijklmnopqrstuvwxyz 0123456789<>.'
|| 'ABCDEFGHIJKLMNOPQRSTUVWXYZ+"*%&/()=?\¢!-'
, int(rand(123)*80)+1, 1) r
from n1
) r
group by r
order by 2
;
xelect substring(int(rand(123)*100) r
from sysibm.syscolumns) r
select r, count(r)
from
( select int(rand(123)*100) r
from sysibm.syscolumns) r
group by r
;
x
select int(rand(123)*99.999+1), rand(123)
from sysibm.systables
fetch first 100 rows only
;
x
select rand(123), rand(), rand(), rand(123)
from sysibm.sysdummy1;
select rand(123), rand(123), rand(123)
from sysibm.systables
fetch first 100 rows only
;
select rand(123), rand(124), rand(125)
from sysibm.systables
fetch first 100 rows only
;
}¢--- A540769.WK.SQL(REF) cre=2006-07-25 mod=2006-07-26-17.07.25 F540769 -------
-- set current sqlid = 'S100447';
select t.*, hex(wk003gen), hex(1234), hex(generate_unique())
from A540769.TWK003A t;
delete from A540769.TWK003A where wk003id = '72';
select * from A540769.TWK003A;
;
xx
insert into A540769.TWK003A (wk003id, wk003txt, wk003for)
values ('7', '7', null);
insert into A540769.TWK003A (wk003id, wk003txt, wk003for)
values ('71', '71', '7');
insert into A540769.TWK003A (wk003id, wk003txt, wk003for)
values ('72', '72', '7');
insert into A540769.TWK003A (wk003id, wk003txt, wk003for)
values ('73', '73', '7');
insert into A540769.TWK003A (wk003id, wk003txt, wk003for)
values ('711', '711', '71');
insert into A540769.TWK003A (wk003id, wk003txt, wk003for)
values ('712', '712', '71');
insert into A540769.TWK003A (wk003id, wk003txt, wk003for)
values ('721', '721', '72');
insert into A540769.TWK003A (wk003id, wk003txt, wk003for)
values ('732', '732', '73');
insert into A540769.TWK003A (wk003id, wk003txt, wk003for)
values ('7211', '7211', '721');
insert into A540769.TWK003A (wk003id, wk003txt, wk003for)
values ('72111', '72111', '7211');
commit;
select * from A540769.TWK003A;
;
xx
xx
delete from A540769.TWK003A where wk003id = '05';
select * from A540769.TWK003A;
xx
update A540769.TWK003A set wk003for = '05'
where wk003id = '04';
}¢--- A540769.WK.SQL(REFDEP) cre=2007-05-15 mod=2007-05-15-13.16.18 F540769 ----
select char(td.dbName, 8),
char(strip(r.creator) ||'.'|| strip(r.tbName), 20) "dep",
char(case when td.dbName = tr.dbName then '=' else tr.dbName end
, 8),
char(strip(refTbcreator) ||'.'|| strip(refTbName), 20) "ref par",
char(relName, 30)
from sysibm.sysrels r, sysibm.sysTables td, sysibm.sysTables tr
where r.creator = td.creator and r.tbName = td.name
and r.refTbcreator = tr.creator and r.reftbName = tr.name
and (td.dbname like 'BJAA_0001'
or td.dbname = 'DBJ01' or td.dbname like 'DNF%'
or tr.dbname like 'BJAA_0001'
or tr.dbname = 'DBJ01' or tr.dbname like 'DNF%')
}¢--- A540769.WK.SQL(REF1) cre= mod= -------------------------------------------
delete from dgdb0211.tid105a1 where tid105lui like 'uuid-dsn%';
select * from dgdb0211.tid105a1 where tid105lui like 'uuid-dsn%';
select * from dgdb0211.tid107a1 where tid107aus like 'uuid-dsn%';
insert into dgdb0211.tid107a1(tid107aus, tid107aub,tid107ats)
values('uuid-dsn-1', 'uuid-beleg-1',current timestamp);
insert into dgdb0211.tid105a1
(tid105ldn, tid105lts,tid105lui,
TID105JNM,
TID105JNR,
TID105JOI,
TID105ANM,
TID105AJN,
TID105ATS)
values('dsn.eins.1', current timestamp, 'uuid-dsn-1',
'jmn', 'jnr', 'joi', 'anm', 'ajn', 'ats');
}¢--- A540769.WK.SQL(REIST) cre=2006-09-15 mod=2006-10-17-13.28.36 F540769 -----
select (hour(current timestamp) * 60 + minute(current timestamp)) * 60
+ second(current timestamp),
current timestamp, 'tst anfang'
from sysibm.sysdummy1
;
SELECT FI.FI_ID,
FI.FI_Status,
PI.Auftrags_Nummer,
FI.TimerTyp,
FI.Ausloese_Zeitpunkt,
MP.ED_Kurzname,
FA.FD_Name,
PM.PM_Name
FROM oa1t.VPW311A1V FI,
oa1t.VPW310A1V PI,
oa1t.VPW301A1V PM,
oa1t.VPW302A1V FA,
oa1t.VPW318A1V MP
WHERE FI.Laufzeit = 0
AND FI.TimerTyp like '%%%%'
AND FI.Ausloese_Zeitpunkt >= '2006-10-16-16.39.13.817263'
AND FI.Ausloese_Zeitpunkt <= '9999-12-31-23.59.59.999999'
AND FI.FI_STATUS like '%'
AND PI.Auftrags_Nummer like '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'
AND PI.PI_Status <> 'B'
AND PM.PM_Name like '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'
AND PI.PI_ID = FI.PI_ID
AND PI.PM_ID = PM.PM_ID
AND PM.EntryType = 'R '
AND FI.MP_ID = MP.MP_ID
AND FI.FA_ID = FA.FA_ID
AND FA.EntryType = 'R '
ORDER BY FI.Ausloese_Zeitpunkt ASC
;
select (hour(current timestamp) * 60 + minute(current timestamp)) * 60
+ second(current timestamp),
current timestamp, 'tst nach leer'
from sysibm.sysdummy1
;
SELECT FI.FI_ID,
FI.FI_Status,
PI.Auftrags_Nummer,
FI.TimerTyp,
FI.Ausloese_Zeitpunkt,
MP.ED_Kurzname,
FA.FD_Name,
PM.PM_Name
FROM oa1t.vpw311A1V FI,
oa1t.vpw310A1V PI,
oa1t.vpw301A1V PM,
oa1t.vpw302A1V FA,
oa1t.vpw318A1V MP
WHERE FI.Laufzeit = 0
AND FI.TimerTyp like 'ARCH'
AND FI.Ausloese_Zeitpunkt >= '2006-10-16-16.39.13.817263'
AND FI.Ausloese_Zeitpunkt <= '9999-12-31-23.59.59.999999'
AND FI.FI_STATUS like '%'
AND PI.Auftrags_Nummer like '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'
AND PI.PI_Status <> 'B'
AND PM.PM_Name like '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'
AND PI.PI_ID = FI.PI_ID
AND PI.PM_ID = PM.PM_ID
AND PM.EntryType = 'R '
AND FI.MP_ID = MP.MP_ID
AND FI.FA_ID = FA.FA_ID
AND FA.EntryType = 'R '
ORDER BY FI.Ausloese_Zeitpunkt ASC
;
select (hour(current timestamp) * 60 + minute(current timestamp)) * 60
+ second(current timestamp),
current timestamp, 'tst nach nur timertyp = ARCH'
from sysibm.sysdummy1
;
SELECT FI.FI_ID,
FI.FI_Status,
PI.Auftrags_Nummer,
FI.TimerTyp,
FI.Ausloese_Zeitpunkt,
MP.ED_Kurzname,
FA.FD_Name,
PM.PM_Name
FROM oa1t.vpw311A1V FI,
oa1t.vpw310A1V PI,
oa1t.vpw301A1V PM,
oa1t.vpw302A1V FA,
oa1t.vpw318A1V MP
WHERE FI.Laufzeit = 0
AND FI.TimerTyp like '%%%%'
AND FI.Ausloese_Zeitpunkt >= '2006-10-16-16.39.13.817263'
AND FI.Ausloese_Zeitpunkt <= '9999-12-31-23.59.59.999999'
AND FI.FI_STATUS like '%'
AND PI.Auftrags_Nummer like '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'
AND PI.PI_Status <> 'B'
AND PM.PM_Name like 'WB Boerse Zuteilung bis Infra%%%%%%%%%%%%%%%%%%'
AND PI.PI_ID = FI.PI_ID
AND PI.PM_ID = PM.PM_ID
AND PM.EntryType = 'R '
AND FI.MP_ID = MP.MP_ID
AND FI.FA_ID = FA.FA_ID
AND FA.EntryType = 'R '
ORDER BY FI.Ausloese_Zeitpunkt ASC
;
select (hour(current timestamp) * 60 + minute(current timestamp)) * 60
+ second(current timestamp),
current timestamp, 'tst nach nur prozess modell'
from sysibm.sysdummy1
;
SELECT FI.FI_ID,
FI.FI_Status,
PI.Auftrags_Nummer,
FI.TimerTyp,
FI.Ausloese_Zeitpunkt,
MP.ED_Kurzname,
FA.FD_Name,
PM.PM_Name
FROM oa1t.vpw311A1V FI,
oa1t.vpw310A1V PI,
oa1t.vpw301A1V PM,
oa1t.vpw302A1V FA,
oa1t.vpw318A1V MP
WHERE FI.Laufzeit = 0
AND FI.TimerTyp like '%%%%'
AND FI.Ausloese_Zeitpunkt >= '2006-10-16-16.39.13.817263'
AND FI.Ausloese_Zeitpunkt <= '9999-12-31-23.59.59.999999'
AND FI.FI_STATUS like '%'
AND PI.Auftrags_Nummer like 'F%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'
AND PI.PI_Status <> 'B'
AND PM.PM_Name like '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'
AND PI.PI_ID = FI.PI_ID
AND PI.PM_ID = PM.PM_ID
AND PM.EntryType = 'R '
AND FI.MP_ID = MP.MP_ID
AND FI.FA_ID = FA.FA_ID
AND FA.EntryType = 'R '
ORDER BY FI.Ausloese_Zeitpunkt ASC
;
select (hour(current timestamp) * 60 + minute(current timestamp)) * 60
+ second(current timestamp),
current timestamp, 'tst nach nur teil auftragsNr'
from sysibm.sysdummy1
;
SELECT FI.FI_ID,
FI.FI_Status,
PI.Auftrags_Nummer,
FI.TimerTyp,
FI.Ausloese_Zeitpunkt,
MP.ED_Kurzname,
FA.FD_Name,
PM.PM_Name
FROM oa1t.VPW311A1V FI,
oa1t.VPW310A1V PI,
oa1t.VPW301A1V PM,
oa1t.VPW302A1V FA,
oa1t.VPW318A1V MP
WHERE FI.Laufzeit = 0
AND FI.TimerTyp like 'ARCH'
AND FI.Ausloese_Zeitpunkt >= '2005-09-14-09.16.00.000000'
AND FI.Ausloese_Zeitpunkt <= '2007-12-31-23.59.00.000000'
AND FI.FI_STATUS like '%'
AND PI.Auftrags_Nummer like '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'
AND PI.PI_Status <> 'B'
AND PM.PM_Name like '%'
AND PI.PI_ID = FI.PI_ID
AND PI.PM_ID = PM.PM_ID
AND PM.EntryType = 'R '
AND FI.MP_ID = MP.MP_ID
AND FI.FA_ID = FA.FA_ID
AND FA.EntryType = 'R '
ORDER BY FI.Ausloese_Zeitpunkt ASC
FOR FETCH ONLY
with ur
;
select (hour(current timestamp) * 60 + minute(current timestamp)) * 60
+ second(current timestamp),
current timestamp, 'tst nach altem query'
from sysibm.sysdummy1
;
}¢--- A540769.WK.SQL(REOCRT44) cre=2010-10-08 mod=2010-10-08-17.23.38 A540769 ---
----------------------------------------------------------------------
-- tRtsReo*Parms und *run* und tdbState
-- tables für rts reorg erstellen
-- default werte einfüllen
-- datenübernahme aus alten exception tables
-- w. keller, 27.09.2010 v5.4
--
-- Teile für Migration sind mit --migr markiert
-- --migr53 Migration von v5.3
-- --migr44 Migration von v4.4
-- --migr00 Neuerstellung, keine alten Tb vorhanden
-- drop/stop auf die alten DB's DB2RTS, TSTRTSDB und DB2REORG
-- muss extra gemacht werden|
--
SET CURRENT SQLID='s100447';
--drop DATABASE Db2Reo;
CREATE DATABASE db2Reo
BUFFERPOOL BP2
INDEXBP BP1
CCSID UNICODE
STOGROUP GSMS;
--DROP TABLESPACE db2Reo.A012A;
--DROP TABLESPACE Db2Reo.A012H;
--DROP TABLESPACE Db2Reo.A013A;
--DROP TABLESPACE Db2Reo.A013H;
--DROP TABLESPACE Db2Reo.A014A;
--DROP TABLESPACE Db2Reo.A014H;
--drop TABLEspace Db2Reo.A020A ;
--drop TABLEspace Db2Reo.A021A ;
--drop TABLEspace Db2Reo.A022A ;
--drop TABLEspace Db2Reo.A023A ;
--drop TABLEspace Db2Reo.A024A ;
--DROP TABLESPACE db2Admin.A012A;
--DROP TABLESPACE db2Admin.A012H;
--DROP TABLESPACE db2Admin.A013A;
--DROP TABLESPACE db2Admin.A013H;
--DROP TABLESPACE db2Admin.A014A;
--DROP TABLESPACE db2Admin.A014H;
--drop TABLEspace db2Admin.A036A ;
--drop TABLEspace db2Admin.A020A ;
commit
;
CREATE TABLESPACE AReoTPA
IN Db2Reo
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLE s100447.tReoTSParms
(
PRIO SMALLINT NOT NULL WITH DEFAULT 20,
CONSTRAINT PRIO CHECK (PRIO >= 0 AND PRIO <= 99),
DB CHAR(8) NOT NULL,
TS CHAR(8) NOT NULL,
PARTVON smallINT NOT NULL WITH DEFAULT,
CONSTRAINT PARTVON CHECK (PARTVON >= 0),
PARTBIS smallINT NOT NULL WITH DEFAULT,
CONSTRAINT PARTBIS CHECK (PARTBIS <= 9999
AND PARTBIS >= PARTVON),
GUVON DATE NOT NULL WITH DEFAULT,
GUBIS DATE NOT NULL WITH DEFAULT '31.12.9999',
REMARK CHAR(80) FOR SBCS DATA NOT NULL,
REORG CHAR(12) FOR SBCS DATA WITH DEFAULT NULL,
CONSTRAINT REORG
CHECK (REORG IN ('ALWAYS', 'NEVER', 'THRESHOLD')),
UNCLUST INTEGER WITH DEFAULT NULL,
FARINDREF INTEGER WITH DEFAULT NULL,
NEARINDREF INTEGER WITH DEFAULT NULL,
EXTENTS SMALLINT WITH DEFAULT NULL,
REORGDAYS INTEGER WITH DEFAULT NULL,
CONSTRAINT reorgDays
CHECK (reorgDays between 1 and 99999),
INSERTS INTEGER WITH DEFAULT NULL,
UPDATES INTEGER WITH DEFAULT NULL,
DELETES INTEGER WITH DEFAULT NULL,
advisory CHAR(1) WITH DEFAULT NULL,
CONSTRAINT advisory
CHECK (advisory IN ('0', '1')),
datasize INTEGER WITH DEFAULT NULL,
pageSave INTEGER WITH DEFAULT NULL,
rangeI0 INTEGER WITH DEFAULT NULL,
updTst TIMESTAMP NOT NULL with default
)
IN Db2Reo.AReoTPA
AUDIT NONE
DATA CAPTURE NONE
CCSID UNICODE
NOT VOLATILE
;
CREATE UNIQUE INDEX s100447.IReoTSParms
ON s100447.tReoTSParms
(PRIO ASC,
DB ASC,
TS ASC,
PARTVON ASC,
GUBIS ASC
)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G
;
LABEL ON TABLE s100447.tReoTSParms
IS 'TS Thresholds: Defs/Ausnahmen'
;
COMMENT ON TABLE s100447.tReoTSParms
IS 'diese Tabelle enthaelt die Default-Schwellwerte und die TS mit s
peziellen Schwellwerten für Reorgs.'
;
LABEL ON s100447.tReoTSParms
( PRIO is 'Prioritaet: tiefste=0=Default' ,
DB is 'Datenbank Name' ,
TS is 'TableSpace Name' ,
PARTVON is 'Partition von' ,
PARTBIS is 'Partition bis' ,
GUVON is 'Gueltig von' ,
GUBIS is 'Gueltig bis' ,
REORG is 'ALWAYS,NEVER,THRESHOLD' ,
UNCLUST is 'Schwellwert unclustered %' ,
FARINDREF is 'SchwWe overflow far (>16 pg) %',
NEARINDREF is 'SchwWe overflow near(<16 pg) %',
EXTENTS is 'SchwWe Extents pro TS/Part' ,
REORGDAYS is 'Schwellwert Anzahl Tage' ,
INSERTS is 'Schwellwert inserts %' ,
UPDATES is 'Schwellwert updates %' ,
DELETES is 'Schwellwert deletes %' ,
advisory is 'reorg bei AREO* 1/0' ,
datasize is 'Schwellwert dataSize < %' ,
pageSave is 'Schwellwert pageSave < %' ,
RangeI0 is 'Range Reo time > % i0time' ,
updTst is 'letzte Aenderung' ,
REMARK is 'Begründung (Freitext)'
)
;
--migr53
--insert into s100447.tReoTSParms
-- select * from tstRts.tRtsReoTSException
--;
CREATE TABLESPACE AReoTPH
IN Db2Reo
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLE s100447.tReoTSParmsHist
as (select e.*, ' ' updOp,
current timestamp endTst, ' ' endOp
from s100447.tReoTSParms e
) with no data
IN Db2Reo.AReoTPH
AUDIT NONE
DATA CAPTURE NONE
CCSID UNICODE
NOT VOLATILE
;
LABEL ON TABLE s100447.tReoTSParmsHist
IS 'History von tReoTSParms'
;
LABEL ON s100447.tReoTSParmsHist
( updTst is 'activation timestamp'
, updOp is 'activation operation (i,u)'
, endTst is 'deactivation timestamp'
, endOp is 'deactivation operation (u,d)'
)
;
CREATE UNIQUE INDEX s100447.IReoTSParmsHist
ON s100447.tReoTSParmsHist
(PRIO ASC,
DB ASC,
TS ASC,
partVon ASC,
guBis ASC,
updTst ASC
)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
--migr53
--insert into s100447.tReoTSParmsHist
-- select * from tstRts.tRtsReoTSExceptionHist
--;
--#SET TERMINATOR ?
create trigger s100447.tReoTSParmsBefIns
no cascade before insert on s100447.tReoTSParms
referencing New as n
for each row mode db2sql begin atomic
set updTst = current timestamp;
end
?
create trigger s100447.tReoTSParmsBefUpd
no cascade before update on s100447.tReoTSParms
referencing New as n Old as o
for each row mode db2sql begin atomic
set updTst = current timestamp;
end
?
create trigger s100447.tReoTSParmsAftIns
after insert on s100447.tReoTSParms
referencing New_table as n
for each statement mode db2sql begin atomic
insert into s100447.tReoTSParmsHist
select n.*, 'i', '9999-12-31-23.59.59', ' '
from n
;
end
?
create trigger s100447.tReoTSParmsAftUpdSt
after update on s100447.tReoTSParms
referencing New as n old as o
for each row mode db2sql begin atomic
update s100447.tReoTSParmsHist h
set endTst = n.updTst, endOp = 'u'
where h.PRIO = o.PRIO
and h.DB = o.DB
and h.TS = o.TS
and h.partVon = o.partVon
and h.guBis = o.guBis
and h.updTst = o.updTst
;
end
?
create trigger s100447.tReoTSParmsAftUpd
after update on s100447.tReoTSParms
referencing New_table as n old_table as o
for each statement mode db2sql begin atomic
insert into s100447.tReoTSParmsHist
select n.*, 'u', '9999-12-31-23.59.59', ' '
from n
;
end
?
create trigger s100447.tReoTSParmsAftDelSt
after delete on s100447.tReoTSParms
referencing old as o
for each row mode db2sql begin atomic
update s100447.tReoTSParmsHist h
set endTst = current timestamp, endOp = 'd'
where h.PRIO = o.PRIO
and h.DB = o.DB
and h.TS = o.TS
and h.partVon = o.partVon
and h.guBis = o.guBis
and h.updTst = o.updTst
;
end
?
--#SET TERMINATOR ;
--migr44 --migr00
insert into s100447.tReoTSParms
( PRIO, DB, TS, partVon, partBis, REORG,
unclust, FARINDREF, nearIndRef, extents, reorgdays,
inserts, updates, deletes,
advisory, dataSize, pageSave, RangeI0,
remark
) values (
0, '*', '*', 0, 9999, 'THRESHOLD',
10, 5, 5, 500, 365,
999999, 999999, 999999,
'1', 50, 5, 200,
'globale default Schwellwerte'
)
;
--migr44
insert into s100447.tReoTSParms
( PRIO, DB, TS, partVon, partBis,
guVon, guBis, REORG,
unclust, FARINDREF, nearIndRef, extents, reorgdays,
inserts, updates, deletes,
remark
) select
PRIO, DB, TS, min(partVon, 9999), min(partBis, 9999),
guVon, guBis, REORG,
unclust, FARINDREF, nearIndRef, extents,
min(max(reorgDays, 1), 99999),
inserts, updates, deletes,
left(remark, 80)
from s100447.tRtsReoTSException
where db <> '*' or ts <> '*'
;
select * from s100447.tReoTSParms
;
CREATE TABLESPACE aReoIPA
IN Db2Reo
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255;
CREATE TABLE s100447.TReoIXParms
(
PRIO SMALLINT NOT NULL WITH DEFAULT 20,
CONSTRAINT PRIO CHECK (PRIO >= 0 AND PRIO <= 99),
DB CHAR(8) NOT NULL,
TS CHAR(8) NOT NULL,
IX CHAR(20) NOT NULL,
PARTVON INT NOT NULL WITH DEFAULT,
CONSTRAINT PARTVON CHECK (PARTVON >= 0),
PARTBIS INT NOT NULL WITH DEFAULT,
CONSTRAINT PARTBIS CHECK (PARTBIS <= 9999
AND PARTBIS >= PARTVON),
GUVON DATE NOT NULL WITH DEFAULT,
GUBIS DATE NOT NULL WITH DEFAULT '31.12.9999',
REMARK CHAR(80) FOR SBCS DATA NOT NULL,
REORG CHAR(12) FOR SBCS DATA WITH DEFAULT NULL,
CONSTRAINT REORG
CHECK (REORG IN ('ALWAYS', 'NEVER', 'THRESHOLD')),
PAGESPLITS INTEGER WITH DEFAULT NULL,
EXTENTS SMALLINT WITH DEFAULT NULL,
REORGDAYS INTEGER WITH DEFAULT NULL,
CONSTRAINT reorgDays
CHECK (reorgDays between 1 and 99999),
INSERTS INTEGER WITH DEFAULT NULL,
DELETES INTEGER WITH DEFAULT NULL,
PSEUDODEL INTEGER WITH DEFAULT NULL,
updTst TIMESTAMP NOT NULL WITH DEFAULT
)
IN Db2Reo.aReoIPA
AUDIT NONE
DATA CAPTURE NONE
CCSID UNICODE
NOT VOLATILE
;
LABEL ON TABLE s100447.TReoIXParms
IS 'Ausnahmen+Defs RtsRorgs Index'
;
COMMENT ON TABLE s100447.TReoIXParms
IS 'diese Tabelle enthaelt die Default-Schwellwerte und die TS mit s
peziellen Schwellwerten für RTS-Reorgs fuer Indexe.'
;
LABEL ON s100447.TReoIXParms
( PRIO is 'Prioritaet: tiefste=0=Default' ,
DB is 'Datenbank Name' ,
TS is 'TableSpace Name' ,
IX is 'Index Name' ,
PARTVON is 'Partition von' ,
PARTBIS is 'Partition bis' ,
GUVON is 'Gueltig von' ,
GUBIS is 'Gueltig bis' ,
REORG is 'ALWAYS,NEVER,THRESHOLD' ,
PAGESPLITS is 'Schwellwert ReorgLeafFar %' ,
EXTENTS is 'SchwWe Extents pro TS/Part' ,
REORGDAYS is 'Schwellwert Anzahl Tage' ,
INSERTS is 'Schwellwert inserts %' ,
DELETES is 'Schwellwert deletes %' ,
PseudoDel is 'Schwellwert PseudoDeletes %' ,
updTst is 'letzter update Timestamp' ,
REMARK is 'Begründung (Freitext)'
) ;
CREATE UNIQUE INDEX s100447.IReoIXParms
ON s100447.TReoIXParms
(PRIO ASC,
DB ASC,
TS ASC,
IX ASC,
PARTVON ASC,
GUBIS ASC
)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G
;
--migr53
--insert into s100447.tReoIxParms
-- select * from tstRts.tRtsReoIxException
--;
CREATE TABLESPACE aReoIPH
IN Db2Reo
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLE s100447.TReoIXParmsHist
as (select e.*, ' ' updOp,
current timestamp endTst, ' ' endOp
from s100447.TReoIXParms e
) with no data
IN Db2Reo.aReoIPH
AUDIT NONE
DATA CAPTURE NONE
CCSID UNICODE
NOT VOLATILE
;
LABEL ON TABLE s100447.TReoIXParmsHist
IS 'Ausnahmen+Defs RtsReo History'
;
LABEL ON s100447.TReoIXParmsHist
( updTst is 'activation timestamp'
, updOp is 'activation operation (i,u)'
, endTst is 'deactivation timestamp'
, endOp is 'deactivation operation (u,d)'
)
;
CREATE UNIQUE INDEX s100447.IReoIXParmsHist
ON s100447.TReoIXParmsHist
(PRIO ASC,
DB ASC,
TS ASC,
IX ASC,
PARTVON ASC,
GUBIS ASC,
updTst ASC
)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G
;
--migr53
--insert into s100447.tReoIxParmsHist
-- select * from tstRts.tRtsReoIxExceptionHist
--;
--#SET TERMINATOR ?
create trigger s100447.TReoIXParmsBefIns
no cascade before insert on s100447.TReoIXParms
referencing New as n
for each row mode db2sql begin atomic
set updTst = current timestamp;
end
?
create trigger s100447.TReoIXParmsBefUpd
no cascade before update on s100447.TReoIXParms
referencing New as n Old as o
for each row mode db2sql begin atomic
set updTst = current timestamp;
end
?
create trigger s100447.TReoIXParmsAftIns
after insert on s100447.TReoIXParms
referencing New_table as n
for each statement mode db2sql begin atomic
insert into s100447.TReoIXParmsHist
select n.*, 'i', '9999-12-31-23.59.59', ' '
from n
;
end
?
create trigger s100447.TReoIXParmsAftUpdSt
after update on s100447.TReoIXParms
referencing New as n old as o
for each row mode db2sql begin atomic
update s100447.TReoIXParmsHist h
set endTst = n.updTst, endOp = 'u'
where h.PRIO = o.PRIO
and h.DB = o.DB
and h.TS = o.TS
and h.IX = o.IX
and h.partVon = o.partVon
and h.guBis = o.guBis
and h.updTst = o.updTst
;
end
?
create trigger s100447.TReoIXParmsAftUpd
after update on s100447.TReoIXParms
referencing New_table as n old_table as o
for each statement mode db2sql begin atomic
insert into s100447.TReoIXParmsHist
select n.*, 'u', '9999-12-31-23.59.59', ' '
from n
;
end
?
create trigger s100447.TReoIXParmsAftDelSt
after delete on s100447.TReoIXParms
referencing old as o
for each row mode db2sql begin atomic
update s100447.TReoIXParmsHist h
set endTst = current timestamp, endOp = 'd'
where h.PRIO = o.PRIO
and h.DB = o.DB
and h.TS = o.TS
and h.IX = o.IX
and h.partVon = o.partVon
and h.guBis = o.guBis
and h.updTst = o.updTst
;
end
?
--#SET TERMINATOR ;
--migr44 --migr00
insert into s100447.tReoIXParms
( PRIO, DB, TS, IX, partVon, partBis,
REORG, pageSPlits, extents, reorgDays,
inserts, deletes, pseudoDel,
remark
) values (
0, '*', '*', '*', 0, 9999,
'THRESHOLD', 10, 500, 365,
999999, 999999, 999999,
'globale default Schwellwerte'
)
;
--migr44
insert into s100447.tReoIXParms
( PRIO, DB, TS, IX,
partVon, partBis, guVon, guBis,
REORG, pageSPlits, extents, reorgDays,
inserts, deletes, pseudoDel,
remark
) select
20, db , ts , ix,
min(partVon, 9999), min(partBis, 9999), guVon, guBis,
REORG, pageSPlits, extents,
min(max(reorgDays, 1), 99999),
inserts, deletes, pseudoDel,
left(remark, 80)
from s100447.tRtsReoIXException
where db <> '*' or ts <> '*' or ix <> '*'
-- where left(dbName, 1) not in ('1')
;
select * from s100447.tReoIXParms
;
CREATE TABLESPACE AREOJPA
IN Db2Reo
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLE s100447.TReoJobParms
(
PRIO SMALLINT NOT NULL WITH DEFAULT 20,
CONSTRAINT PRIO CHECK (PRIO >= 0 AND PRIO <= 99),
Job CHAR(8) NOT NULL,
GUVON DATE NOT NULL WITH DEFAULT,
GUBIS DATE NOT NULL WITH DEFAULT '31.12.9999',
REMARK CHAR(80) FOR SBCS DATA NOT NULL,
tsTime int WITH DEFAULT NULL,
ixTime int WITH DEFAULT NULL,
uncompDef real with default null,
uncompI0 real with default null,
ixSpae char(1) with default null,
CONSTRAINT ixSpae CHECK (ixSpae in ('i', 't', 'n')),
stats char(1) with default null,
CONSTRAINT stats CHECK (stats in ('n', 'j', 'p', 's')),
updTst TIMESTAMP NOT NULL with default
)
IN Db2Reo.AREOJPA
AUDIT NONE
DATA CAPTURE NONE
CCSID UNICODE
NOT VOLATILE
;
CREATE UNIQUE INDEX s100447.IReoJobParms
ON s100447.TReoJobParms
(PRIO ASC,
job ASC,
GUBIS ASC
)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G
;
LABEL ON TABLE s100447.TReoJobParms
IS 'Ausnahmen+Defaults RtsReo Job'
;
COMMENT ON TABLE s100447.TReoJobParms
IS 'diese Tabelle enthaelt die Default-Schwellwerte und die Jobs mit
speziellen Schwellwerten für RTS-Reorgs.'
;
LABEL ON s100447.TReoJobParms
( PRIO is 'Prioritaet: tiefste=0=Default' ,
job is 'Job Name' ,
GUVON is 'Gueltig von' ,
GUBIS is 'Gueltig bis' ,
tsTime is 'max ReoTime fuer TS in secs' ,
ixTime is 'max ReoTime fuer IX in secs' ,
uncompDef is 'max uncompressed data DPSI' ,
uncompI0 is 'max uncompressed data Default' ,
ixSpae is 'ix nach spaeter: ix, ts, no' ,
stats is 'statsColl: job,part,stats,no' ,
updTst is 'letzte Aenderung' ,
REMARK is 'Begruendung (Freitext)'
)
;
--migr53
-- insert into s100447.tReoJobParms
-- select PRIO, job, guvon, gubis, remark, tsTime, ixTime,
-- 8e10/5, 8e10, translate(ixSpae, 'itn','ITN'), 's', updTst
-- from tstRts.tRtsReoJobException
-- ;
CREATE TABLESPACE AREOJPH
IN Db2Reo
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLE s100447.TReoJobParmsHist
as (select e.*, ' ' updOp,
current timestamp endTst, ' ' endOp
from s100447.TReoJobParms e
) with no data
IN Db2Reo.AREOJPH
AUDIT NONE
DATA CAPTURE NONE
CCSID UNICODE
NOT VOLATILE
;
LABEL ON TABLE s100447.TReoJobParmsHist
IS 'Ausnahmen+Defs RtsReo History'
;
LABEL ON s100447.TReoJobParmsHist
( updTst is 'activation timestamp'
, updOp is 'activation operation (i,u)'
, endTst is 'deactivation timestamp'
, endOp is 'deactivation operation (u,d)'
)
;
CREATE UNIQUE INDEX s100447.IReoJobParmsHist
ON s100447.TReoJobParmsHist
(PRIO ASC,
job ASC,
guBis ASC,
updTst ASC
)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G
;
--migr53
-- insert into s100447.tReoJobParmsHist
-- select PRIO, job, guvon, gubis, remark, tsTime, ixTime,
-- uncompSz/5, uncompSz, ixSpae, stats,
-- updTst, updOp, endTst, endOp
-- from tstRts.tRtsReoJobExceptionHist
--;
--#SET TERMINATOR ?
create trigger s100447.TReoJobParmsBefIns
no cascade before insert on s100447.TReoJobParms
referencing New as n
for each row mode db2sql begin atomic
set updTst = current timestamp;
end
?
create trigger s100447.TReoJobParmsBefUpd
no cascade before update on s100447.TReoJobParms
referencing New as n Old as o
for each row mode db2sql begin atomic
set updTst = current timestamp;
end
?
create trigger s100447.TReoJobParmsAftIns
after insert on s100447.TReoJobParms
referencing New_table as n
for each statement mode db2sql begin atomic
insert into s100447.TReoJobParmsHist
select n.*, 'i', '9999-12-31-23.59.59', ' '
from n
;
end
?
create trigger s100447.TReoJobParmsAftUpdSt
after update on s100447.TReoJobParms
referencing New as n old as o
for each row mode db2sql begin atomic
update s100447.TReoJobParmsHist h
set endTst = n.updTst, endOp = 'u'
where h.PRIO = o.PRIO
and h.job = o.job
and h.guBis = o.guBis
and h.updTst = o.updTst
;
end
?
create trigger s100447.TReoJobParmsAftUpd
after update on s100447.TReoJobParms
referencing New_table as n old_table as o
for each statement mode db2sql begin atomic
insert into s100447.TReoJobParmsHist
select n.*, 'u', '9999-12-31-23.59.59', ' '
from n
;
end
?
create trigger s100447.TReoJobParmsAftDelSt
after delete on s100447.TReoJobParms
referencing old as o
for each row mode db2sql begin atomic
update s100447.TReoJobParmsHist h
set endTst = current timestamp, endOp = 'd'
where h.PRIO = o.PRIO
and h.job = o.job
and h.guBis = o.guBis
and h.updTst = o.updTst
;
end
?
--#SET TERMINATOR ;
--migr44 --migr00
insert into s100447.tReoJobParms
( PRIO, job, tsTime, ixTime, uncompDef, uncompI0,
ixSpae, stats, remark
) values (
0, '*', 18000, 10800, 1e11/5, 1e11, 't', 's',
'globale default Schwellwerte'
)
;
select * from s100447.tReoJobParms
;
--commit
--;
CREATE TABLESPACE ADBSTA
IN Db2Reo
USING STOGROUP GSMS
SEGSIZE 64
CCSID UNICODE
BUFFERPOOL BP2
LOCKSIZE ANY
COMPRESS YES;
CREATE TABLE s100447.tDbState
(db CHAR(12) NOT NULL,
sp CHAR(12) NOT NULL,
paFr INTEGER NOT NULL,
paTo INTEGER NOT NULL,
ty char(1) not null,
sta char(20) not null
)
IN Db2Reo.ADBSTA
CCSID UNICODE;
--
LABEL ON TABLE s100447.TDbState IS 'spaceStatus';
--
COMMENT ON TABLE s100447.tDbState IS 'space status restrict/advisory';
--
LABEL ON s100447.tDbState
(db IS 'db name',
sp IS 'name of index/tablespace',
paFr is 'partition from',
paTo is 'partition to',
ty is 'type: Ix Tb Db @',
sta is 'status of db or space'
);
CREATE UNIQUE INDEX s100447.iDbStateA1
ON s100447.tDbState
(db asc ,
sp asc ,
paFr asc
)
CLUSTER
USING STOGROUP GSMS
BUFFERPOOL BP1;
insert into s100447.tDbState values (
'', '', 0, 0, '@', '');
CREATE TABLESPACE AREORJA
IN Db2Reo
USING STOGROUP GSMS
SEGSIZE 64
CCSID UNICODE
BUFFERPOOL BP2
LOCKSIZE ANY
COMPRESS YES;
CREATE TABLE s100447.tReoRunJob
(tst timestamp NOT NULL,
constraint primaryKey primary key (tst),
job CHAR(8) NOT NULL,
ty char(2) NOT NULL,
tyInp char(2) NOT NULL,
sta char(1) not null,
eoj timestamp
)
IN Db2Reo.AREORJA
CCSID UNICODE;
--
COMMENT ON TABLE s100447.tReoRunJob IS 'rtsReo Job Status';
LABEL ON TABLE s100447.tReoRunJob IS 'rtsReo Job Status';
LABEL ON s100447.tReoRunJob
(tst IS 'creation timestamp primaryKey',
job IS 'Job',
ty is 'rtsReo Type: TS or IX',
tyInp is 'rtsReo Type from jobParameter',
sta is 'Status: r=reorg, s=r+Spa, 0',
eoj is 'timestamp >= end of job'
);
CREATE UNIQUE INDEX s100447.iReoRunJob1
ON s100447.tReoRunJob
(tst asc)
CLUSTER
USING STOGROUP GSMS
BUFFERPOOL BP1
;
CREATE UNIQUE INDEX s100447.iReoRunJob2
ON s100447.tReoRunJob
(job asc, tst desc)
USING STOGROUP GSMS
BUFFERPOOL BP1
;
--migr53
--insert into s100447.tReoRunJob
-- select * from tstRts.tRtsReoRunJob
-- where job <> '&late'
--;
--commit
--;
CREATE TABLESPACE AREORPA
IN Db2Reo
USING STOGROUP GSMS
SEGSIZE 64
CCSID UNICODE
BUFFERPOOL BP2
LOCKSIZE ANY
COMPRESS YES;
CREATE TABLE s100447.tReoRunPart
(tst timestamp NOT NULL,
constraint parent foreign key (tst)
references s100447.tReoRunJob on delete cascade,
rng int not null,
part smallInt not null,
constraint primaryKey primary key (tst, rng, part),
paVon smallInt not null,
paBis smallInt not null,
rngI0 int not null,
dbId smallInt not null,
spId smallInt not null,
ty char(1) not null,
sta char(1) not null,
reason char(50) not null,
db char(8) not null,
sp char(8) not null,
reoTst timestamp,
reoTime int
)
IN Db2Reo.AREORPA
CCSID UNICODE;
--
COMMENT ON TABLE s100447.tReoRunPart IS 'rtsReo Job Parts';
LABEL ON TABLE s100447.tReoRunPart IS 'rtsReo Job Parts';
LABEL ON s100447.tReoRunPart
(tst IS 'creation timestamp Job',
rng IS 'range id',
part IS 'partition',
paVon IS 'range partition von',
paBis IS 'range partition bis',
rngI0 IS 'range für i0',
dbId IS 'dbId',
spId is 'psId or isoBid',
ty is 't=TS, i=Ix',
sta is 'r=reorg, s=Spa, 0=i0',
reason is 'reason of reorg',
db is 'database',
sp is 'table/indexSpace',
reoTst is 'timestamp of end of reorg'
);
CREATE UNIQUE INDEX s100447.iReoRunPart1
ON s100447.tReoRunPart
(tst asc, rng asc, part asc)
CLUSTER
USING STOGROUP GSMS
BUFFERPOOL BP1
;
--insert into s100447.tReoRunPart
-- select * from tstRts.tRtsReoRunPart
--;
--commit
--;
CREATE TABLESPACE AREORTA
IN Db2Reo
USING STOGROUP GSMS
SEGSIZE 64
CCSID UNICODE
BUFFERPOOL BP2
LOCKSIZE ANY
COMPRESS YES;
CREATE TABLE s100447.tReoRunTSStats
as (select current timestamp tst, int(1) rng, s.*
from sysibm.sysTableSpaceStats s
) with no data
IN Db2Reo.AREORTA
CCSID UNICODE;
CREATE UNIQUE INDEX s100447.iReoRunTSStats1
ON s100447.tReoRunTSStats
(tst asc, rng asc, partition asc)
CLUSTER
USING STOGROUP GSMS
BUFFERPOOL BP1
;
alter TABLE s100447.tReoRunTSStats
add constraint primaryKey primary key (tst, rng, partition);
alter TABLE s100447.tReoRunTSStats
add constraint parent foreign key (tst, rng, partition)
references s100447.tReoRunPart on delete cascade
;
--migr53
--insert into s100447.tReoRunTSStats
-- select * from tstRts.tRtsReoRunTSStats
--;
--commit
--;
CREATE TABLESPACE AREORIA
IN Db2Reo
USING STOGROUP GSMS
SEGSIZE 64
CCSID UNICODE
BUFFERPOOL BP2
LOCKSIZE ANY
COMPRESS YES;
CREATE TABLE s100447.tReoRunIXStats
as (select current timestamp tst, int(1) rng, s.*
from sysibm.sysIndexSpaceStats s
) with no data
IN Db2Reo.AREORIA
CCSID UNICODE;
CREATE UNIQUE INDEX s100447.iReoRunIXStats1
ON s100447.tReoRunIXStats
(tst asc, rng asc, partition asc, isoBid asc)
CLUSTER
USING STOGROUP GSMS
BUFFERPOOL BP1
;
alter TABLE s100447.tReoRunIXStats
add constraint primaryKey primary key (tst,rng,partition,isobid);
alter TABLE s100447.tReoRunIXStats
add constraint parent foreign key (tst, rng, partition)
references s100447.tReoRunPart on delete cascade
;
--migr53
--insert into s100447.tReoRunIXStats
-- select * from tstRts.tRtsReoRunIXStats
--;
commit
}¢--- A540769.WK.SQL(REOCRT57) cre=2011-09-21 mod=2011-09-21-17.19.25 A540769 ---
set current sqlid = 's100447';
alter TABLE s100447.tReoTSParms
add parallel smallInt WITH DEFAULT NULL;
commit;
update s100447.tReoTSParms set parallel = 7
where prio = 0 and db = '*' and ts = '*';
commit;
}¢--- A540769.WK.SQL(REOCRVW) cre=2008-03-03 mod=2011-09-28-15.25.59 A540769 ---
------------------------------------------------------------------------
-- create views for reo
-- 28.9.10 W.keller v5.7
------------------------------------------------------------------------
set current sqlId = 's100447';
--drop view S100447.vReoTSSchwelle ;
--drop view S100447.vReoIxSchwelle ;
--drop view S100447.vReoJobParms ;
--drop view S100447.vReoRunRng;
--drop view S100447.vReoRunTSStats;
--drop view S100447.vReoRunIXStats;
--drop view S100447.vReoTSStatsPlus;
--
commit;
------------------------------------------------------------------------
-- view vReoTSSchwelle: Schwellwerte pro Catalog Objekt
-- und alle später benötigen Werte aus Catalog Tabellen
--
CREATE VIEW S100447.vReoTSSchwelle AS
with sw as
(
SELECT
CASE WHEN POSSTR(DB, '*') > 0
THEN POSSTR(DB, '*') - 1 ELSE 8 END DBLEN,
CASE WHEN POSSTR(TS, '*') > 0
THEN POSSTR(TS, '*') - 1 ELSE 8 END TSLEN,
char(STRIP(CHAR(PRIO)), 2) prC2,
e.*
FROM s100447.TReoTSParms e
)
select p.dbName db, p.tsName ts, p.partition part,
min(s.dbId) dbid, min(s.psId) psId,
min(s.pgSize) pgSize, min(s.partitions) partitions,
min(p.createdTS) createdTS, min(p.compress) compress,
min(p.pageSave) pageSave ,
min(smallint(round(
case when p.freePage > 0 then p.freePage/real(1+p.freePage)
else 1 end
* min(100 - p.pctFree,
case when s.maxrows > 0 and p.avgRowLen > 0
then real(s.maxrows) * p.avgRowLen / pgSize/10.24
else 100 end)
,0))) pctLoad,
substr(max(prC2 || char(reorg )), 3) swReorg ,
int(substr(max(prC2 || char(unclust )), 3)) swUnclust ,
int(substr(max(prC2 || char(sw.FARINDREF )), 3)) swFARINDREF ,
int(substr(max(prC2 || char(sw.NEARINDREF)), 3)) swNEARINDREF,
int(substr(max(prC2 || char(sw.EXTENTS )), 3)) swEXTENTS ,
int(substr(max(prC2 || char(REORGDAYS )), 3)) swREORGDAYS ,
int(substr(max(prC2 || char(INSERTS )), 3)) swINSERTS ,
int(substr(max(prC2 || char(UPDATES )), 3)) swUPDATES ,
int(substr(max(prC2 || char(DELETES )), 3)) swDELETES ,
substr(max(prC2 || advisory ), 3) swAdvisory ,
int(substr(max(prC2 || char(datasize )), 3)) swDatasize ,
int(substr(max(prC2 || char(sw.pageSave )), 3)) swPageSave ,
int(substr(max(prC2 || char(rangeI0 )), 3)) swRangeI0 ,
smallint(substr(max(prC2 || char(parallel )), 3)) parallel
from
SYSIBM.SYSTABLEPart p
left join SYSIBM.SYSTABLESPACE S
on s.dbName = p.dbName and s.name = p.tsName
left join sw
on left(p.dbname, dbLen) = left(db, dbLen)
and left(p.tsName, tsLen) = left(ts, tsLen)
and p.partition between partVon and partBis
and current date between guVon and guBis
group by p.dbName, p.tsName, p.partition
;
------------------------------------------------------------------------
-- RTS-Stats Werte pro TS-Partition zu Schwellen joinen
-- Kolonnen Namen: sw*: Schwellen, ix* selbe IndexPartion,
-- i0* nicht part. Indexes für part. TS
--
create view S100447.vReoTsStats as
with ix as -- join ix und i0
(
select s.db, s.ts, s.part,
min(s.dbId) ixDbid, min(s.psId) ixPsId,
min(s.pgSize) pgSize, min(s.partitions) partitions,
min(s.createdTS) createdTS, min(s.compress) compress,
min(s.pageSave ) pageSave ,
min(s.pctLoad ) pctLoad ,
min(swReorg ) swReorg ,
min(swUnclust ) swUnclust ,
min(swFARINDREF ) swFARINDREF ,
min(swNEARINDREF) swNEARINDREF,
min(swEXTENTS ) swEXTENTS ,
min(swREORGDAYS ) swREORGDAYS ,
min(swINSERTS ) swINSERTS ,
min(swUPDATES ) swUPDATES ,
min(swDELETES ) swDELETES ,
min(swAdvisory ) swAdvisory ,
min(swDatasize ) swDatasize ,
min(swPageSave ) swPageSave ,
min(swRangeI0 ) swRangeI0 ,
min(parallel ) swParallel ,
min(substr(strip(t.creator) || '.' || strip(t.name), 1,30)) crTb,
sum(case when j.partition= s.part then 1 else 0 end)
ixParts,
sum(case when j.partition= s.part
then totalEntries else 0 end) ixEnt,
sum(case when j.partition= s.part
then real(j.totalEntries)
* log10(max(1e0, j.totalEntries)) else 0 end) ixEntLog,
sum(case when j.partition= s.part
then real(j.space) * 1024 else 0 end) ixSpc,
sum(case when j.partition= s.part
then real(j.space) * 1024 * log10(
max(1e0, real(j.space) * 1024)) else 0 end) ixSpcLog,
sum(case when j.partition= s.part
then real(j.space) * 1024 * log10(
max(1e0, j.totalEntries)) else 0 end) ixSpcLogEnt,
max(case when j.partition= s.part
then j.totalEntries else 0 end) ixEntMax,
max(case when j.partition= s.part
then real(j.totalEntries) * log10(
max(1e0, j.totalEntries)) else 0 end) ixEntLogMax,
max(case when j.partition= s.part
then real(j.space) * 1024 else 0 end) ixSpcMax,
max(case when j.partition= s.part
then real(j.space) * 1024 * log10(
max(1e0, real(j.space) * 1024)) else 0 end) ixSpcLogMax,
max(case when j.partition= s.part
then real(j.space) * 1024 * log10(
max(1e0, j.totalEntries)) else 0 end) ixSpcLogEntMax,
sum(case when j.partition<>s.part then 1 else 0 end)
i0Parts,
sum(case when j.partition<>s.part
then totalEntries else 0 end) i0Ent,
sum(case when j.partition<>s.part
then real(j.totalEntries)
* log10(max(1e0, j.totalEntries)) else 0 end) i0EntLog,
sum(case when j.partition<>s.part
then real(j.space) * 1024 else 0 end) i0Spc,
sum(case when j.partition<>s.part
then real(j.space) * 1024 * log10(
max(1e0, real(j.space) * 1024)) else 0 end) i0SpcLog,
sum(case when j.partition<>s.part
then real(j.space) * 1024 * log10(
max(1e0, j.totalEntries)) else 0 end) i0SpcLogEnt,
max(case when j.partition<>s.part
then j.totalEntries else 0 end) i0EntMax,
max(case when j.partition<>s.part
then real(j.totalEntries) * log10(
max(1e0, j.totalEntries)) else 0 end) i0EntLogMax,
max(case when j.partition<>s.part
then real(j.space) * 1024 else 0 end) i0SpcMax,
max(case when j.partition<>s.part
then real(j.space) * 1024 * log10(
max(1e0, real(j.space) * 1024)) else 0 end) i0SpcLogMax,
max(case when j.partition<>s.part
then real(j.space) * 1024 * log10(
max(1e0, j.totalEntries)) else 0 end) i0SpcLogEntMax,
max(case when i.clustering <> 'Y' then -9
when i.statstime < '2008-01-01-00.00.00' then -8
when i.fullKeyCardf < 100 then -7
when i.clusterratioF <= 0.0 then -6
else clusterRatio end) clusterRatio
from
S100447.vReoTSSchwelle s
left join sysIbm.sysTables t
on t.dbName = s.db and t.tsName = s.ts
-- and t.dbid = s.dbid
and t.type = 'T'
left join sysIbm.sysIndexes i
on i.tbCreator = t.creator and i.tbName = t.name
-- and s.db = i.dbName and s.dbId = i.dbId
left join SYSIBM.SYSINDEXSPACESTATS j
on j.creator = i.creator and j.Name = i.name
and j.dbName = i.dbName and j.indexSpace = i.indexSpace
and j.dbId = i.dbId and j.isoBid = i.isoBid
-- and j.dbId = s.dbId and j.dbName = s.db
and j.creator = i.creator and j.Name = i.name
and j.partition in (0, s.part)
and (j.partition = 0
or j.partition = s.part)
group by s.db, s.ts, s.part
) , tsPa as
( -- join tsPart Stats and calculate first formulas
select i0PARTS * 2.8568338 + i0SpcMax * 1.4917387E-07
+ i0SpcLogMax * 3.4002310E-09 i0Time,
i.*,
max(CAST(r.totalRows as REAL), 100) rRows,
max(coalesce(r.reorgLasttime, i.createdTs)
,coalesce(r.loadRLasttime, i.createdTs)) lastBuilt,
coalesce(real(r.datasize),
real(r.nActive) * i.pgSize * 1024 ) dataSz,
case when r.uncompressedDatasize > 0
and real(r.nActive) * i.pgSize * 102400
/ min(max(100-i.pageSave, 3), 100)
between real(r.uncompressedDatasize) / 7
and real(r.uncompressedDatasize) * 7
then real(r.uncompressedDatasize)
else
real(r.nActive) * i.pgSize * 102400
/ min(max(100-i.pageSave, 3), 100)
end uncompSz,
r.*
from ix i
left join sysIbm.sysTableSpaceStats r
on i.db = r.dbName and i.ts = r.name
and i.ixDbId = r.dbId and i.ixPsId = r.psId
and i.part = r.partition
) -- remaining formulas
select real(2.7397410 + 1 * 2.2918106) -- const + tsParts *
+ rRows * 1.1719944E-05
+ real(space) * (1024 * 4.1178398E-08)
+ uncompSz * 4.7357392E-09
+ ixPARTS * 5.9228624
+ ixSPC * 1.1593550E-08
+ i0Time reorgTime, tsPa.*
from tsPa
;
------------------------------------------------------------------------
-- vReoTS: SchwellwertUeberschreitungen herausfinden
-- in riesigem case statement
--
create view S100447.vReoTS as
with ts1 as
(
select
case
when swReorg = 'NEVER' then 'no - reorgNever'
when staDb.sta like 'RO%' or staDb.sta like 'STOP%'
then 'no - db status ' || strip(staDb.sta)
when staTs.sta like 'RO%' or staTs.sta like 'STOP%'
then 'no - ts status ' || strip(staTs.sta)
when swReorg = 'ALWAYS' then 'reorgAlways'
when swAdvisory = '1'
and posStr(',' || strip(staTs.sta) || ',', ',AREO*,') > 0
then 'advisory status ' || strip(staTs.sta)
when dbName is null then 'rtsMissing'
when REORGLASTTIME IS NULL and LOADRLASTTIME IS NULL
then 'rtsNull'
when rRows is null then 'rtsRowsNull'
when totalRows < 0 then 'rtsRows ' || strip(char(totalRows))
|| ' < 0'
when REORGUNCLUSTINS > rRows / 100 * swUnclust
then 'unclust ' || strip(char(REORGUNCLUSTINS)) || ' > '
|| strip(char(swUnclust)) || '% of ' || char(totalRows)
when clusterRatio >= 0 and totalRows > 1000
and clusterRatio < 100 -swUnclust
then 'clusterRatio ' || strip(char(clusterRatio))
|| ' < 100-' || strip(char(swUnclust))
when REORGFARINDREF > rRows / 100 * swFarindref
then 'farIndRef ' || strip(char(reorgFarIndRef)) || ' > '
|| strip(char(swFarIndRef))||'% of '
|| strip(char(totalRows))
when REORGNEARINDREF > rRows / 100 * swNearindref
then 'nearIndRef '||strip(char(reorgnearIndRef)) || ' > '
|| strip(char(swNearIndRef))||'% of '
|| strip(char(totalRows))
when r.extents > swExtents
then 'extents ' || strip(char(r.extents)) || ' > '
|| strip(char(swExtents))
when r.dataSize >= 0 and r.dataSize
< real(nActive) * r.pgSize
* 0.1024 * pctLoad * swdatasize - 1e7
then 'datasize ' || strip(char(real(r.datasize)))
|| ' < ' || strip(char(swdatasize)) || '% activeSz '
|| strip(char(real(nActive) * r.pgSize * 1024))
when compress = 'Y' and pageSave < swpageSave
and reorgInserts > rRows * .9 and rRows > 1e4
then 'pagesave ' || strip(char(pagesave))
|| ' < ' || strip(char(swPageSave)) || ' % '
when reorgInserts > rRows / 100 * swInserts
then 'inserts ' || strip(char(reorgInserts)) || ' > '
|| strip(char(swInserts)) || '% of '
|| strip(char(totalRows))
when reorgUpdates > rRows / 100 * swUpdates
then 'updates ' || strip(char(reorgUpdates)) || ' > '
|| strip(char(swUpdates)) || '% of '
|| strip(char(totalRows))
when reorgDeletes > rRows / 100 * swDeletes
then 'deletes ' || strip(char(reorgDeletes)) || ' > '
|| strip(char(swDeletes)) || '% of '
|| strip(char(totalRows))
when CURRENT TIMESTAMP - swReorgDays days > lastBuilt
then 'lastBuilt ' || char(date(lastBuilt)) || ' older '
|| strip(char(swReorgDays)) ||' reorgDays'
else 'no - reorg not required'
end reason,
staTs.paFr, staTs.paTo, staTs.sta staTs, staDb.sta staDb,
1 parts,
r.*
from S100447.vReoTsStats r
left join s100447.tDbState staTs
ON staTs.Ty = 'T'
and staTs.db = r.db
AND staTs.sp = r.ts
AND staTs.paFr <= r.part
AND staTs.paTo >= r.part
left join s100447.tDbState staDb
ON staDb.Ty = 'D'
and staDb.db = r.db
)
-- importance anfügen
select smallint(case
when reason = 'no - reorg not required' then 0
when reason like 'no %' then -1
when reason like 'lastBuilt %' then 3
when reason like 'advisory %' then 7
when reason like 'reorgAlway%' then 9
else 5
end) importance ,
ts1.*
from ts1
;
------------------------------------------------------------------------
-- view vReoIXSchwelle: Schwellwerte pro Catalog Objekt
-- und alle später benötigen Werte aus Catalog Tabellen
--
create view S100447.vReoIXSchwelle as
with sw as
( select
CASE WHEN POSSTR(DB, '*') > 0
THEN POSSTR(DB, '*') - 1 ELSE 8 END DBLEN,
CASE WHEN POSSTR(TS, '*') > 0
THEN POSSTR(TS, '*') - 1 ELSE 8 END TSLEN,
CASE WHEN POSSTR(IX, '*') > 0
THEN POSSTR(IX, '*') - 1 ELSE 20 END IXLEN,
char(STRIP(CHAR(PRIO)), 2) prC2,
e.*
from s100447.tReoIXParms e
)
select i.creator cr, i.name ix, p.partition part,
substr(max(prC2 || char(reorg )), 3) swReorg ,
int(substr(max(prC2 || char(pageSplits )), 3)) swPageSplits,
int(substr(max(prC2 || char(sw.EXTENTS )), 3)) swEXTENTS ,
int(substr(max(prC2 || char(REORGDAYS )), 3)) swREORGDAYS ,
int(substr(max(prC2 || char(INSERTS )), 3)) swINSERTS ,
int(substr(max(prC2 || char(DELETES )), 3)) swDELETES ,
int(substr(max(prC2 || char(pseudoDel )), 3)) swPseudoDel ,
min(i.dbName) db, min(i.indexSpace) is, min(t.tsName) ts,
min(i.dbId) dbId, min(i.isoBid) isoBid,
min(p.createdTS) createdTS,
min(t.creator) tbCr, min(t.name) tb
from
SYSIBM.sysIndexes I
join SYSIBM.SYSTABLES T
on i.tbCreator = t.creator and i.tbName = t.name
and i.dbName = t.dbName
join SYSIBM.SYSIndexPart p
on p.ixCreator = i.creator and p.ixName = i.name
, sw
where left(i.dbName, dbLen) = left(db, dbLen)
and left(i.name, ixLen) = left(ix, ixLen)
and left(t.tsName, tsLen) = left(ts, tsLen)
and p.partition between partVon and partBis
and current date between guVon and guBis
group by i.creator, i.name, p.partition
;
------------------------------------------------------------------------
-- RTS-Stats Werte pro ix-Partition zu Schwellen joinen
-- Kolonnen Namen: sw*: Schwellen
-- ?????
create view S100447.vReoIxStats as
select cr, ix, part, db, is, ts, tbCr, tb, createdTS,
swReorg , swPageSplits, swEXTENTS , swREORGDAYS ,
swINSERTS , swDELETES , swPseudoDel ,
max(CAST(TOTALEntries AS REAL), 100) rEntrs,
cast(nActive AS REAL) rActive,
max(coalesce(reorgLastTime, createdTS),
coalesce(loadrLastTime, createdTS),
coalesce(rebuildLastTime, createdTS)) lastBuilt ,
coalesce(real(max(r.space, 0)) * 1024 * 1.3558420E-07 , 0)
+ 1.8626988 reorgTime ,
r.*
from S100447.vReoIXSchwelle s
left join sysibm.sysIndexSpaceStats r
on r.DBID = S.DBID
AND r.ISOBID = S.ISOBID
AND r.DBNAME = S.DB
AND r.indexSpace = S.is
AND r.partition = s.part
;
------------------------------------------------------------------------
-- vReoIx: SchwellwertUeberschreitungen herausfinden
-- in riesigem case statement
--
create view S100447.vReoIX as
with ix1 as
( select
case
when swReorg = 'NEVER' then 'no - reorgNever'
when staDb.sta like 'RO%' or staDb.sta like 'STOP%'
then 'no - db status ' || strip(staDb.sta)
when staTs.sta like 'STOP%'
then 'no - ts status ' || strip(staTs.sta)
when staIx.sta like 'RO%' or staIx.sta like 'STOP%'
then 'no - ix status ' || strip(staIx.sta)
when swReorg = 'ALWAYS' then 'reorgAlways'
when indexSpace is null then 'rtsMissing'
when REORGLASTTIME IS NULL and LOADRLASTTIME IS NULL
and REBUILDLASTTIME IS NULL then 'rtsNull'
when rEntrs is null then 'rtsRowsNull'
when totalEntries < 0 then 'rtsEntries '
|| strip(char(totalEntries)) || ' < 0'
when REORGLEAFFAR > rActive / 100 * swPageSplits
then 'pageSplits ' || strip(char(reorgLeafFar)) || ' > '
|| strip(char(swPageSplits))
|| '% of ' || strip(char(nActive))
when extents > swExtents
then 'extents ' || strip(char(extents)) || ' > '
|| strip(char(swExtents))
when reorgInserts > rEntrs / 100 * swInserts
then 'inserts ' || strip(char(reorgInserts)) || ' > '
|| strip(char(swInserts)) || '% of '
|| strip(char(totalEntries))
when reorgDeletes > rEntrs / 100 * swDeletes
then 'deletes ' || strip(char(reorgDeletes)) || ' > '
|| strip(char(swDeletes)) || '% of '
|| strip(char(totalEntries))
when reorgPseudoDeletes > rEntrs / 100 * swPseudoDel
then 'pseudoDel ' || strip(char(reorgPseudoDeletes))||' > '
|| strip(char(swPseudoDel)) || '% of '
|| strip(char(totalEntries))
when CURRENT TIMESTAMP - swReorgDays days > lastBuilt
then 'lastBuilt ' || char(date(lastBuilt)) || ' older '
|| strip(char(swReorgDays)) ||' reorgDays'
else 'no - reorg not required'
end reason, s.*
from S100447.vReoIXStats s
left join s100447.tDbState staDb
ON staDb.Ty = 'D'
and staDb.db = s.db
left join s100447.tDbState staTs
ON staTs.Ty = 'T'
and staTs.db = s.db
AND staTs.sp = s.ts
AND staTs.paFr <= s.part
AND staTs.paTo >= s.part
left join s100447.tDbState staIx
ON staIx.Ty = 'I'
and staIx.db = s.db
AND staIx.sp = s.is
AND staIx.paFr <= s.part
AND staIx.paTo >= s.part
)
-- importance voranstellen
select smallint(case
when reason = 'no - reorg not required' then 0
when reason like 'no %' then -1
when reason like 'lastBuilt %' then 3
when reason like 'advisory %' then 7
when reason like 'reorgAlway%' then 9
else 5
end) importance,
ix1.*
from ix1
;
------------------------------------------------------------------------
-- vReoJobParms: jobLen und prC2 anfügen
--
CREATE VIEW S100447.vReoJobParms AS
SELECT e.*,
CASE WHEN POSSTR(job, '*') > 0
THEN POSSTR(job, '*') - 1 ELSE 8 END jobLEN,
char(STRIP(CHAR(PRIO)), 2) prC2
FROM s100447.TReoJobParms e
;
select
int(substr(max(prC2 || char(tsTime)), 3)) tsTime ,
int(substr(max(prC2 || char(ixTime)), 3)) ixTime ,
real(substr(max(prC2 || char(uncompDef)), 3)) uncompDef,
real(substr(max(prC2 || char(uncompI0)), 3)) uncompI0 ,
substr(max(prC2 || char(ixSpae)), 3) ixSpae ,
substr(max(prC2 || char(stats )), 3) stats ,
count(*) cnt, min(job) minJ, max(job) maxJ
from S100447.vReoJobParms
where left(job, jobLen) = left('QR01234P', jobLen)
-- group by p.dbName, p.tsName, p.partition
;
create view S100447.vReoRunRng as
with r1 as
( select p.tst, p.rng, max(paVon) paVon, max(paBis) paBis,
count(*) cnt
, sum(case when reoTst is null then 0 else 1 end) cntReoTst
, max(case when reoTst is null then tst
else reoTst end) reoEnd
from s100447.tReoRunPart p
group by tst, rng
) , r2 as
( select r.*,
( select coalesce(max(coalesce(o.reoEnd, o.tst))
, r.tst)
from r1 o
where o.tst = r.tst
and o.rng <> r.rng and o.reoEnd < r.reoEnd
) reoBeg
from r1 r
)
select
(days(reoEnd) - days(reoBeg)) * 86400
+ midnight_seconds(reoEnd) - midnight_seconds(reoBeg) rngTime,
r2.*
from r2
;
CREATE VIEW S100447.vReoRunTsStats AS
with tp as
( select
real(totalRows) rows
, log10(max(real(totalRows),1)) logRows
, real(space) * 1024 spc
, log10(max(real(space), 1)*1024) logSpc
, real(uncompressedDatasize) uds
, log10(max(real(uncompressedDatasize), 1)) logUds
, r.*
from s100447.tReoRunTsStats r
)
, t as
( select tst, rng
, min(partition) partMin
, max(partition) partMax
, count(*) parts
, sum(rows) rows
, max(rows) rowsMax
, sum(rows * logrows) rowsLog
, sum(rows) * max(logRows) rowsLogMax
, sum(spc) spc
, sum(spc * logSpc) spcLog
, sum(spc * logRows) spcLogRows
, max(spc) spcMax
, sum(spc) * max(logSpc) spcLogMax
, sum(Uds) Uds
, sum(Uds * logUds) UdsLog
, sum(Uds * logRows) UdsLogRows
, max(Uds) UdsMax
, sum(Uds) * max(logUds) UdsLogMax
from tp
group by tst, rng
)
, ip as
( select
real(totalEntries) ent,
log10(max(real(totalEntries),1)) logEnt,
real(space) * 1024 spc,
log10(max(real(space), 1)*1024) logSpc,
r.*
from s100447.tReoRunIxStats r
)
, i as
( select tst, rng, count(*) parts
, sum(ent) ent
, max(ent) entMax
, sum(ent * logEnt) entLog
, sum(ent) * max(logEnt) entLogMax
, sum(spc) spc
, sum(spc * logSpc) spcLog
, sum(spc * logEnt) spcLogEnt
, max(spc) spcMax
, sum(spc) * max(logSpc) spcLogMax
from ip
group by tst, rng
)
select j.job, r.*
, partMin tsPartMin
, partMax tsPartMax
, value(t .parts , 0) tsParts
, value(t .rows , 0) tsRows
, value(t .rowsMax , 0) tsRowsMax
, value(t .rowsLog , 0) tsRowsLog
, value(t .rowsLogMax , 0) tsRowsLogMax
, value(t .spc , 0) tsSpc
, value(t .spcLog , 0) tsSpcLog
, value(t .spcLogRows , 0) tsSpcLogRows
, value(t .spcMax , 0) tsSpcMax
, value(t .spcLogMax , 0) tsSpcLogMax
, value(t .Uds , 0) tsUds
, value(t .UdsLog , 0) tsUdsLog
, value(t .UdsLogRows , 0) tsUdsLogRows
, value(t .UdsMax , 0) tsUdsMax
, value(t .UdsLogMax , 0) tsUdsLogMax
, value(ix.parts , 0) ixparts
, value(ix.ent , 0) ixent
, value(ix.entMax , 0) ixentMax
, value(ix.entLog , 0) ixentLog
, value(ix.entLogMax , 0) ixentLogMax
, value(ix.spc , 0) ixspc
, value(ix.spcLog , 0) ixspcLog
, value(ix.spcLogEnt , 0) ixspcLogEnt
, value(ix.spcMax , 0) ixspcMax
, value(ix.spcLogMax , 0) ixspcLogMax
, value(i0.parts , 0) i0parts
, value(i0.ent , 0) i0ent
, value(i0.entMax , 0) i0entMax
, value(i0.entLog , 0) i0entLog
, value(i0.entLogMax , 0) i0entLogMax
, value(i0.spc , 0) i0spc
, value(i0.spcLog , 0) i0spcLog
, value(i0.spcLogEnt , 0) i0spcLogEnt
, value(i0.spcMax , 0) i0spcMax
, value(i0.spcLogMax , 0) i0spcLogMax
from s100447.tReoRunJob j, s100447.tReoRunPart r
left join t on t.tst = r.tst and t.rng = r.rng
left join i ix on ix.tst = r.tst and ix.rng = r.rng
left join i i0 on i0.tst = r.tst and i0.rng = r.rngI0
and r.rngI0 > 0
where j.ty = 'TS' and j.sta <> '0' and r.ty = 't' and r.sta = 'r'
and r.part = r.pavon and r.reoTime is not null
and r.tst = j.tst
;
commit;
CREATE VIEW S100447.vReoRunIxStats AS
with ip as
( select
real(totalEntries) ent,
log10(max(1, real(totalEntries))) logEnt,
real(space) * 1024 spc,
log10(max(1, real(space)*1024)) logSpc,
r.*
from s100447.tReoRunIxStats r
)
, i as
( select tst, rng, count(*) parts
, min(partition) partMin
, max(partition) partMax
, sum(ent) ent
, max(ent) entMax
, sum(ent * logEnt) entLog
, sum(ent) * max(logEnt) entLogMax
, sum(spc) spc
, sum(spc * logSpc) spcLog
, sum(spc * logEnt) spcLogEnt
, max(spc) spcMax
, sum(spc) * max(logSpc) spcLogMax
from ip
group by tst, rng
)
select j.job, r.*
, partMin partMin
, partMax partMax
, value(ix.parts , 0) parts
, value(ix.ent , 0) ent
, value(ix.entMax , 0) entMax
, value(ix.entLog , 0) entLog
, value(ix.entLogMax , 0) entLogMax
, value(ix.spc , 0) spc
, value(ix.spcLog , 0) spcLog
, value(ix.spcLogEnt , 0) spcLogEnt
, value(ix.spcMax , 0) spcMax
, value(ix.spcLogMax , 0) spcLogMax
from s100447.tReoRunJob j, s100447.tReoRunPart r
left join i ix on ix.tst = r.tst and ix.rng = r.rng
where j.ty = 'IX' and j.sta <> '0' and r.ty = 'i' and r.sta = 'r'
and r.part = r.pavon and r.reoTime is not null
and r.tst = j.tst
;
select * from S100447.vReoRunIxStats
order by tst desc, rng
fetch first 100 rows only
with ur
;
create view S100447.vReoTSStatsPlus as
select r.*, s.pgSize, p.pageSave,
case when r.uncompressedDatasize > 0
and real(r.nActive) * s.pgSize * 102400
/ min(max(100-p.pageSave, 3), 100)
between real(r.uncompressedDatasize) / 7
and real(r.uncompressedDatasize) * 7
then bigInt(r.uncompressedDatasize)
else
bigInt(real(r.nActive) * s.pgSize * 102400
/ min(max(100-p.pageSave, 3), 100))
end fixUncomp
from sysibm.sysTableSpaceStats r,
sysibm.sysTableSpace s, sysibm.sysTablePart p
where s.dbName = r.dbName and s.name = r.name
and s.dbid = r.dbId and s.psid = r.psid
and p.dbName = r.dbName and p.tsName = r.name
and p.partition = r.partition
;
create view S100447.vReoTSStatsFix as
select UPDATESTATSTIME ,
NACTIVE ,
NPAGES ,
EXTENTS ,
LOADRLASTTIME ,
REORGLASTTIME ,
REORGINSERTS ,
REORGDELETES ,
REORGUPDATES ,
REORGUNCLUSTINS ,
REORGDISORGLOB ,
REORGMASSDELETE ,
REORGNEARINDREF ,
REORGFARINDREF ,
STATSLASTTIME ,
STATSINSERTS ,
STATSDELETES ,
STATSUPDATES ,
STATSMASSDELETE ,
COPYLASTTIME ,
COPYUPDATEDPAGES,
COPYCHANGES ,
COPYUPDATELRSN ,
COPYUPDATETIME ,
IBMREQD ,
DBID ,
PSID ,
PARTITION ,
INSTANCE ,
SPACE ,
TOTALROWS ,
DATASIZE ,
fixUncomp UNCOMPRESSEDDATASIZE,
DBNAME ,
NAME
from S100447.vReoTSStatsPlus
;
commit
;
--- end of install v5.7 -------------------------------------
;x;
?????? intermediate and helpers
-- select *
-- from s100447.tReoRunTsStats
-- where uncompressedDatasize is not null
-- order by uncompressedDatasize desc
-- fetch first 1000 rows only
-- with ur;
-- update s100447.tReoRunTsStats u
-- set uncompressedDatasize = (select
-- bigInt(real(u.nActive) * f.pgSize * 102400
-- / min(max(100-f.pageSave, 3), 100))
-- from S100447.vReoTsStatsPlus f
-- where f.dbName = u.dbName and f.name = u.name
-- and f.dbid = u.dbId and f.psid = u.psid
-- and f.partition = u.partition
-- )
-- where u.tst < '2010-08-27-18.00.00.00'
-- or u.uncompressedDatasize < 1
-- ;
-- --commit;
-- select *
-- from s100447.tReoRunTsStats
-- where uncompressedDatasize is not null
-- order by uncompressedDatasize desc
-- fetch first 1000 rows only
-- with ur;
-- commit ;
--;
create view S100447.vReoTSStatsPlus as
select r.*, s.pgSize, p.pageSave,
case when r.uncompressedDatasize > 0
and real(r.nActive) * s.pgSize * 102400
/ min(max(100-p.pageSave, 3), 100)
between real(r.uncompressedDatasize) / 7
and real(r.uncompressedDatasize) * 7
then bigInt(r.uncompressedDatasize)
else
bigInt(real(r.nActive) * s.pgSize * 102400
/ min(max(100-p.pageSave, 3), 100))
end fixUncomp
from sysibm.sysTableSpaceStats r,
sysibm.sysTableSpace s, sysibm.sysTablePart p
where s.dbName = r.dbName and s.name = r.name
and s.dbid = r.dbId and s.psid = r.psid
and p.dbName = r.dbName and p.tsName = r.name
and p.partition = r.partition
;
create view S100447.vReoTSStatsFix as
select UPDATESTATSTIME ,
NACTIVE ,
NPAGES ,
EXTENTS ,
LOADRLASTTIME ,
REORGLASTTIME ,
REORGINSERTS ,
REORGDELETES ,
REORGUPDATES ,
REORGUNCLUSTINS ,
REORGDISORGLOB ,
REORGMASSDELETE ,
REORGNEARINDREF ,
REORGFARINDREF ,
STATSLASTTIME ,
STATSINSERTS ,
STATSDELETES ,
STATSUPDATES ,
STATSMASSDELETE ,
COPYLASTTIME ,
COPYUPDATEDPAGES,
COPYCHANGES ,
COPYUPDATELRSN ,
COPYUPDATETIME ,
IBMREQD ,
DBID ,
PSID ,
PARTITION ,
INSTANCE ,
SPACE ,
TOTALROWS ,
DATASIZE ,
fixUncomp UNCOMPRESSEDDATASIZE,
DBNAME ,
NAME
from S100447.vReoTSStatsPlus
;
select real(space)*1024, real(fixuncomp), pageSave, r.*
from S100447.vReoTSStatsPlus r
where dbName like 'MF01%'
-- order by dbName, name, partition
order by abs(real(space)*1024 - real(fixuncomp)) desc
with ur;
select count(*), sum(real(space)*1024), sum(real(datasize)),
sum(real(fixuncomp))
from S100447.vReoTSStatsPlus r
with ur;
select count(*), sum(real(space)*1024), sum(real(datasize)),
sum(real(uncompressedDatasize))
from S100447.vReoTSStatsFix
with ur;
select count(*), sum(real(space)*1024), sum(real(datasize)),
sum(real(uncompressedDatasize))
from sysibm.sysTableSpaceStats
with ur;
select r.*
from sysibm.sysTableSpaceStats r
left join sysibm.sysTableSpace s
on s.dbName = r.dbName and s.name = r.name
and s.dbid = r.dbId and s.psid = r.psid
where s.dbName is null
;
commit
;x;
-----------------------------------------------------------------------
version 2009
-- views erstellen für rts reorg Abfragen für ix und ts
-- tableIxStats: tableSpaceStats ergänzt mit w.keller 18.11.09
-- Index Daten (selbe Part + part 0)
-- vReoIx.is für IndexSpace w.keller 08.9.08
-- (nicht null bei fehlenden RTS Daten)
-- V9 eNFM (SYStablespacestats usw.) w.keller 21.8.08
-- vorbereitet für V9 (cr statt creator) w.keller 21.8.08
-- neu w.keller 30.4.08
set current sqlId = 'S100447';
-- drop view S100447.vReoTSException;
-- drop VIEW S100447.vReoIXException;
-- drop view S100447.tableIxStats;
-- drop view S100447.tableIxStatsDet;
-- tableIxStats: tableSpaceStats ergänzt mit Index Daten
-- für dieselbe Partition und Partition 0 (falls ts.part <> 0)
create view S100447.tableIxStats as
with tsIx as -- Daten aus IndexStats aggregieren pro TS part
( select
max(substr(strip(t.creator) || '.' || strip(t.name), 1,30)) crTb,
t.dbName db, t.tsName ts,
j.partition,
count(*) cnt,
sum(j.totalEntries) ent,
sum(real(j.totalEntries)
* log10(max(1e0, j.totalEntries))) entLog,
sum(real(j.space) * 1024) spc,
sum(real(j.space) * 1024
* log10(max(1e0, real(j.space) * 1024))) spcLog,
sum(real(j.space) * 1024
* log10(max(1e0, j.totalEntries))) spcLogEnt,
max(j.totalEntries) entMax,
max(real(j.totalEntries)
* log10(max(1e0, j.totalEntries))) entLogMax,
max(real(j.space) * 1024) spcMax,
max(real(j.space) * 1024
* log10(max(1e0, real(j.space) * 1024))) spcLogMax,
max(real(j.space) * 1024
* log10(max(1e0, j.totalEntries))) spcLogEntMax
from sysIbm.sysTables t
join sysIbm.sysIndexes i
on i.tbCreator = t.creator and i.tbName = t.name
join SYSIBM.SYSINDEXSPACESTATS j
on i.creator = j.creator and i.Name = j.name
and i.dbName = j.dbName and i.indexSpace = j.indexSpace
and i.dbId = j.dbId and i.isoBid = j.isoBid
where t.type = 'T'
group by t.dbName, t.tsName, t.dbId, j.partition
) , det as
(
select r.*,
1 rParts,
max(coalesce(real(space), 0), 0) * 1024 spc,
max(coalesce(real(totalRows), 0), 0) rows,
coalesce(i.crtb, '') crTb,
-- selbe Partition von partit. Indexen
coalesce(i.cnt, 0) ixParts,
coalesce(i.ent, 0) ixEnt,
coalesce(i.entLog, 0) ixEntLog,
coalesce(i.spc, 0) ixSpc,
coalesce(i.spcLog, 0) ixSpcLog,
coalesce(i.spcLogEnt, 0) ixSpcLogEnt,
coalesce(i.entMax, 0) ixEntMax,
coalesce(i.entLogMax, 0) ixEntLogMax,
coalesce(i.spcMax, 0) ixSpcMax,
coalesce(i.spcLogMax, 0) ixSpcLogMax,
coalesce(i.spcLogEntMax, 0) ixSpcLogEntMax,
-- Part 0 von nicht Partitionierten Indexen in part. TS
coalesce(j.cnt, 0) i0Parts,
coalesce(j.ent, 0) i0Ent,
coalesce(j.entLog, 0) i0EntLog,
coalesce(j.spc, 0) i0Spc,
coalesce(j.spcLog, 0) i0SpcLog,
coalesce(j.spcLogEnt, 0) i0SpcLogEnt,
coalesce(j.entMax, 0) i0EntMax,
coalesce(j.entLogMax, 0) i0EntLogMax,
coalesce(j.spcMax, 0) i0SpcMax,
coalesce(j.spcLogMax, 0) i0SpcLogMax,
coalesce(j.spcLogEntMax, 0) i0SpcLogEntMax
from sysibm.sysTablespaceStats r
left join tsix i
on r.dbName = i.db and r.name = i.ts
and r.partition = i.partition
left join tsix j
on r.dbName = j.db and r.name = j.ts
and r.partition <> 0 and j.partition = 0
)
select det.*,
real( 2.22E+01 * 1 -- real to avoid exponent overflow in sum
+ coalesce(2.23E-08 * space * 1024 + 1.14E-07 * totalRows
* log10(max(1e0, real(totalRows))), 0)
+ 2.66E-07 * ixEntLog
+ 4.94E+00 * i0Parts + 3.84E-08 * i0Spc
+ 3.42E-06 * i0EntMax) reorgTime
from det
;
-- create view S100447.tableIxStats as
-- select dbName db, name ts, partition, crTb,
-- 1 parts, real(space)*1024 spc, real(totalRows) rows,
-- ixParts, ixSpc, ixEnt, ixEntMax,
-- i0Parts, i0Spc, i0Ent, i0EntMax
-- from S100447.tableIxStatsDet
--
-- view vReoTSExceptions: Längen und key anfügen --------------------
CREATE VIEW S100447.vReoTSException AS
SELECT PRIO, db, ts,
PARTVON, PARTBIS, GUVON, GUBIS,
reorg, unclust, farindref, nearindref, extents, reorgdays,
inserts, updates, deletes,
inserttimestamp, remark,
CASE WHEN POSSTR(DB, '*') > 0
THEN POSSTR(DB, '*') - 1 ELSE 8 END DBLEN,
CASE WHEN POSSTR(TS, '*') > 0
THEN POSSTR(TS, '*') - 1 ELSE 8 END TSLEN,
char(RIGHT('0' || STRIP(CHAR(PRIO)), 2)
|| strip(DB) || case when POSSTR(DB, '*') > 0
then '' else '=' end
|| strip(ts) || case when POSSTR(ts, '*') > 0
then '' else '=' end
|| right('0000' || strip(char(partVon)), 4)
|| '.' || translate('34679A', char(GUVON, ISO),
'123456789A')
, 31) KEY
FROM S100447.TReoTSException ;
COMMENT ON table S100447.vReoTSException
IS 'diese Tabelle enthaelt die Default-Schwellwerte und die TS mit s
peziellen Schwellwerten für RTS-Reorgs.'
;
LABEL ON S100447.vReoTSException
( PRIO is 'Prioritaet: tiefste=0=Default' ,
DB is 'Datenbank Name' ,
TS is 'TableSpace Name' ,
TSLEN is 'Laenge Datenbank Name' ,
PARTVON is 'Partition von' ,
PARTBIS is 'Partition bis' ,
GUVON is 'Gueltig von' ,
GUBIS is 'Gueltig bis' ,
REORG is 'ALWAYS,NEVER,THRESHOLD' ,
UNCLUST is 'Schwellwert unclustered %' ,
FARINDREF is 'SchwWe overflow far (>16 pg) %',
NEARINDREF is 'SchwWe overflow near(<16 pg) %',
EXTENTS is 'SchwWe Extents pro TS/Part' ,
REORGDAYS is 'Schwellwert Anzahl Tage' ,
INSERTS is 'Schwellwert inserts %' ,
UPDATES is 'Schwellwert updates %' ,
DELETES is 'Schwellwert deletes %' ,
INSERTTIMESTAMP is 'Erstellungs Zeitpunkt' ,
REMARK is 'Begründung (Freitext)' ,
DBLEN is 'Laenge Datenbank Name' ,
TSLEN is 'Laenge Datenbank Name' ,
KEY is 'eindeutiger Schluessel'
) ;
-- view vReoTSSchwellen: Schwellwerte pro Catalog Objekt -----------
create view S100447.vReoTSSchwelle as
select s.dbName db, s.name ts, p.partition part,
substr(max(key || char(reorg )), 32) reorg ,
int(substr(max(key || char(unclust )), 32)) unclust ,
int(substr(max(key || char(INSERTS )), 32)) INSERTS ,
int(substr(max(key || char(UPDATES )), 32)) UPDATES ,
int(substr(max(key || char(DELETES )), 32)) DELETES ,
int(substr(max(key || char(e.FARINDREF )), 32)) FARINDREF ,
int(substr(max(key || char(e.NEARINDREF)), 32)) NEARINDREF,
int(substr(max(key || char(e.EXTENTS )), 32)) EXTENTS ,
int(substr(max(key || char(REORGDAYS )), 32)) REORGDAYS ,
s.pgSize, s.partitions, s.dbId, s.psId,
p.createdTS, p.compress, p.pageSave
from
SYSIBM.SYSTABLESPACE S
join SYSIBM.SYSTABLEPart p
on s.dbName = p.dbName and s.name = p.tsName
, S100447.vReoTSException e
where left(s.dbname, dbLen) = left(db, dbLen)
and left(s.name, tsLen) = left(ts, tsLen)
and p.partition between partVon and partBis
and current date between guVon and guBis
group by s.dbName, s.name, p.partition, s.pgSize, s.partitions,
s.dbId, s.psId, p.createdTS, p.compress, p.pageSave
;
-- view vReoTS: SchwellwerteUeberschreitungen pro RTS Obj -----------
create view S100447.vReoTS as
with ts1 as
(
select
case
when reorg = 'NEVER' then 'no - reorgNever'
when staDb.sta like 'RO%' or staDb.sta like 'STOP%'
then 'no - db status ' || strip(staDb.sta)
when staTs.sta like 'RO%' or staTs.sta like 'STOP%'
then 'no - ts status ' || strip(staTs.sta)
when reorg = 'ALWAYS' then 'reorgAlways'
when dbName is null then 'rtsMissing'
when posStr(',' || strip(staTs.sta) || ',', ',AREO*,') > 0
then 'advisory status ' || strip(staTs.sta)
when REORGLASTTIME IS NULL and LOADRLASTTIME IS NULL
then 'rtsNull'
when rRows is null then 'rtsRowsNull'
when REORGUNCLUSTINS > rRows / 100 * unclust
then 'unclust ' || strip(char(REORGUNCLUSTINS)) || ' > '
|| strip(char(unclust)) || '% of ' || char(totalRows)
when REORGFARINDREF > rRows / 100 * farindref
then 'farIndRef ' || strip(char(reorgFarIndRef)) || ' > '
|| strip(char(farIndRef)) || '% of ' || char(totalRows)
when REORGNEARINDREF > rRows / 100 * nearindref
then 'nearIndRef '||strip(char(reorgnearIndRef)) || ' > '
|| strip(char(nearIndRef)) ||'% of ' || char(totalRows)
when r.extents > s.Extents
then 'extents ' || strip(char(r.extents)) || ' > '
|| strip(char(s.Extents))
when dataSize >= 0
and dataSize < real(nActive) * pgSize * 256 - 1e7
then 'datasize ' || strip(char(real(datasize)))
|| ' << activeSz '
|| strip(char(real(nActive) * pgSize * 1024))
when compress = 'Y' and pageSave < 5
and reorgInserts > rRows * .9 and space > 1e4
then 'pagesave ' || strip(char(pagesave))
|| '%, inserts ' || strip(char(reorgInserts))
|| ', rows ' || strip(char(totalRows))
when reorgInserts > rRows / 100 * inserts
then 'inserts ' || strip(char(reorgInserts)) || ' > '
|| strip(char(inserts)) || '% of ' || char(totalRows)
when reorgUpdates > rRows / 100 * updates
then 'updates ' || strip(char(reorgUpdates)) || ' > '
|| strip(char(updates)) || '% of ' || char(totalRows)
when reorgDeletes > rRows / 100 * deletes
then 'deletes ' || strip(char(reorgDeletes)) || ' > '
|| strip(char(deletes)) || '% of ' || char(totalRows)
when DAYS(CURRENT TIMESTAMP) - DAYS(
max(coalesce(reorgLastTime, createdTS),
coalesce(loadrLastTime, createdTS))) > reorgDays
then 'reorgDays ' || char(date(
max(coalesce(reorgLastTime, createdTS),
coalesce(loadrLastTime, createdTS))))
|| ' > ' || strip(char(reorgDays)) ||' days'
else 'no - reorg not required'
end reason,
s.db, s.ts, s.part, s.pgSize, s.partitions, s.compress, s.pageSave,
staTs.paFr, staTs.paTo, staTs.sta staTs, staDb.sta staDb,
1 parts, r.*
from
S100447.vReoTSSchwelle s
left join
( select max(CAST(TOTALROWS AS REAL), 100) rRows, t.*
from S100447.tableIxStats T
) r
ON r.DBID = S.DBID
AND r.PSID = S.PSID
AND r.DBNAME = S.DB
AND r.NAME = S.ts
AND r.partition = s.part
left join oa1a.TADM36A1 staTs
ON staTs.Ty = 'T'
and staTs.db = s.db
AND staTs.sp = s.ts
AND staTs.paFr <= s.part
AND staTs.paTo >= s.part
left join oa1a.TADM36A1 staDb
ON staDb.Ty = 'D'
and staDb.db = s.db
)
select case when reason like 'no %' then 0
when reason like 'reorgDays %' then 3
when reason like 'advisory %' then 7
when reason like 'reorgAlway%' then 9
else 5 end class ,
ts1.*
from ts1
;
-- view vReoIXExceptions: Längen und key anfügen --------------------
CREATE VIEW S100447.vReoIXException AS
SELECT PRIO, db, ts, ix,
PARTVON, PARTBIS, GUVON, GUBIS,
reorg, pageSplits, extents, reorgdays,
inserts, deletes, pseudoDel,
inserttimestamp, remark,
CASE WHEN POSSTR(DB, '*') > 0
THEN POSSTR(DB, '*') - 1 ELSE 8 END DBLEN,
CASE WHEN POSSTR(TS, '*') > 0
THEN POSSTR(TS, '*') - 1 ELSE 8 END TSLEN,
CASE WHEN POSSTR(IX, '*') > 0
THEN POSSTR(IX, '*') - 1 ELSE 20 END IXLEN,
char(RIGHT('0' || STRIP(CHAR(PRIO)), 2)
|| strip(DB) || case when POSSTR(DB, '*') > 0
then '' else '=' end
|| strip(ts) || case when POSSTR(ts, '*') > 0
then '' else '=' end
|| strip(ix) || case when POSSTR(ix, '*') > 0
then '' else '=' end
|| right('0000' || strip(char(partVon)), 4)
|| '.' || translate('34679A', char(GUVON, ISO),
'123456789A')
, 52) KEY
FROM S100447.TReoIXException ;
COMMENT ON table S100447.vReoIXException
IS 'diese Tabelle enthaelt die Default-Schwellwerte und die Indexe m
it speziellen Schwellwerten für RTS-Reorgs.'
;
LABEL ON S100447.vReoIXException
( PRIO is 'Prioritaet: tiefste=0=Default' ,
DB is 'Datenbank Name' ,
TS is 'TableSpace Name' ,
IX is 'Index Name' ,
PARTVON is 'Partition von' ,
PARTBIS is 'Partition bis' ,
GUVON is 'Gueltig von' ,
GUBIS is 'Gueltig bis' ,
REORG is 'ALWAYS,NEVER,THRESHOLD' ,
PAGESPLITS is 'Schwellwert ReorgLeafFar %' ,
EXTENTS is 'SchwWe Extents pro TS/Part' ,
REORGDAYS is 'Schwellwert Anzahl Tage' ,
INSERTS is 'Schwellwert inserts %' ,
DELETES is 'Schwellwert deletes %' ,
PseudoDel is 'Schwellwert PseudoDeletes %' ,
INSERTTIMESTAMP is 'Erstellungs Zeitpunkt' ,
REMARK is 'Begründung (Freitext)' ,
DBLEN is 'Laenge Datenbank Name' ,
TSLEN is 'Laenge Datenbank Name' ,
IXLEN is 'Laenge Index Name' ,
KEY is 'eindeutiger Schluessel'
) ;
-- view vReoIXSchwelle: Schwellwerte pro Catalog Objekt -----------
create view S100447.vReoIXSchwelle as
select i.creator cr, i.name ix, p.partition part,
substr(max(key || char(reorg )), 53) reorg ,
int(substr(max(key || char(pageSplits )), 53)) pageSplits,
int(substr(max(key || char(e.EXTENTS )), 53)) EXTENTS ,
int(substr(max(key || char(REORGDAYS )), 53)) REORGDAYS ,
int(substr(max(key || char(INSERTS )), 53)) INSERTS ,
int(substr(max(key || char(DELETES )), 53)) DELETES ,
int(substr(max(key || char(pseudoDel )), 53)) pseudoDel ,
i.dbName db, i.indexSpace is, t.tsName ts,
i.dbId, i.isoBid, p.createdTS
from
SYSIBM.sysIndexes I
join SYSIBM.SYSTABLES T
on i.tbCreator = t.creator and i.tbName = t.name
join SYSIBM.SYSIndexPart p
on p.ixCreator = i.creator and p.ixName = i.name
, S100447.vReoIXException e
where left(i.dbName, dbLen) = left(db, dbLen)
and left(i.name, ixLen) = left(ix, ixLen)
and left(t.tsName, tsLen) = left(ts, tsLen)
and p.partition between partVon and partBis
and current date between guVon and guBis
group by i.creator, i.name, p.partition,
i.dbName, i.indexSpace, t.tsName,
i.dbId, i.isoBid, p.createdTS
;
-- view vReoIX: SchwellwerteUeberschreitungen pro RTS Obj -----------
create view S100447.vReoIX as
select
case
when reorg = 'NEVER' then 'no - reorgNever'
when reorg = 'ALWAYS' then 'reorgAlways'
when r.indexSpace is null then 'rtsMissing'
when REORGLASTTIME IS NULL and LOADRLASTTIME IS NULL
and REBUILDLASTTIME IS NULL then 'rtsNull'
when rEntrs is null then 'rtsRowsNull'
when REORGLEAFFAR > rActive / 100 * pageSplits
then 'pageSplits ' || strip(char(reorgLeafFar)) || ' > '
|| strip(char(pageSplits))
|| '% of ' || strip(char(nActive))
when r.extents > s.Extents
then 'extents ' || strip(char(r.extents)) || ' > '
|| strip(char(s.Extents))
when reorgInserts > rEntrs / 100 * inserts
then 'inserts ' || strip(char(reorgInserts)) || ' > '
|| strip(char(inserts)) || '% of ' || char(totalEntries)
when reorgDeletes > rEntrs / 100 * deletes
then 'deletes ' || strip(char(reorgDeletes)) || ' > '
|| strip(char(deletes)) || '% of ' || char(totalEntries)
when reorgPseudoDeletes > rEntrs / 100 * pseudoDel
then 'pseudoDel ' || strip(char(reorgPseudoDeletes))||' > '
|| strip(char(pseudoDel)) ||'% of '|| char(totalEntries)
when DAYS(CURRENT TIMESTAMP) - DAYS(
max(coalesce(reorgLastTime, createdTS),
coalesce(loadrLastTime, createdTS),
coalesce(rebuildLastTime, createdTS))) > reorgDays
then 'reorgDays ' || char(date(
max(coalesce(reorgLastTime, createdTS),
coalesce(loadrLastTime, createdTS),
coalesce(rebuildLastTime, createdTS))))
|| ' > ' || strip(char(reorgDays)) ||' days'
else 'no - reorg not required'
end reason, s.cr, s.ix, s.db, s.is, s.ts, s.part, r.*
from
S100447.vReoIXSchwelle s
left join
( select max(CAST(TOTALEntries AS REAL), 100) rEntrs,
CAST(nActive AS REAL) rActive, t.*
from SYSIBM.SYSINDEXSPACESTATS T
) r
ON r.DBID = S.DBID
AND r.ISOBID = S.ISOBID
AND r.DBNAME = S.DB
AND r.indexSpace = S.is
AND r.partition = s.part
;
commit
;
}¢--- A540769.WK.SQL(REODDL) cre=2012-03-26 mod=2016-02-29-12.00.50 A540769 ----
$#@
call sqlConnect DBOL
$*( fun = funktion
t = tables erstellen/migrieren und views erstellen
v = nur views droppen und erstellen
tDropOld = alte Tables löschen
(entstehen bei migration durch rename
==> nach Kontrolle migration )
$*)
$=fun= ?DropOld
$=fun=v
$=db2v10ENF = 1 $** v10 catalog or not
$=mig=63 $*( migration ab wo
0 = create new
54 = migrate ab 54
570 = migrate ab (unvollständiger) Version 5.7
571 = migrate ab 5.7 ohne clusterRatio
59 = migrate stats tables from v9 to db2v10
62 = migrate stats tables from v10 to db2v11
63 = primary key in stats tables for cloned
$*)
$;
$** $>. fEdit() $@/ddl/
call sqlStmts $<@/ddl/
$@=¢
SET CURRENT SQLID='S100447';
$!
if $fun = 'tDropOld' then $@=/tDropOld/
drop table s100447.tReoTsParmsOld;
drop table s100447.tReoTSParmsHistOld;
commit;
$/tDropOld/ else if $fun == 't' then $@/tAnf/
$@=¢
----------------------------------------------------------------------
-- tRtsReo*Parms und *run* und tdbState
-- tables für rts reorg erstellen
-- default werte einfüllen
-- datenübernahme aus alten exception tables
-- 29. 2.16 v6.4: clone infos in views
-- 17.9.13 walter: aReor, reorP, rbdp usw. Stati
-- 28.09.2011 v5.7
$!
if $mig == 0 then $@=¢
-- create new tables
$! else if $mig == 54 then $@=¢
-- migrate from table version 54
$! else if $mig == 570 then $@=¢
-- migrate from table version 570 (with bad triggers)
$! else if $mig == 571 then $@=¢
-- migrate from table version 571 (without clustRatio)
$! else if $mig == 59 then $@=¢
-- migrate stats Table from db2v9 to db2v10
$! else if $mig == 62 then $@=¢
-- migrate stats Table from db2v9 to db2v10
$! else if $mig == 63 then $@=¢
-- primary key / index with instance for cloned TS/IX
$! else
call err 'bad mig='$mig
$@=¢
-- drop/stop auf die alten DBs DB2RTS, TSTRTSDB und DB2REORG
-- muss extra gemacht werden|
--
----------------------------------------------------------------------
$!
$/tAnf/ else if $fun \== 'v' then call err 'bad fun' $fun
if $fun == 't' | $fun == 'v' then $@=/vDrop/
drop view s100447.vReoTSSchwelle ;
drop view s100447.vReoIxSchwelle ;
drop view s100447.vReoJobParms ;
drop view s100447.vReoRunRng;
drop view s100447.vReoRunTSStats;
drop view s100447.vReoRunIXStats;
drop view s100447.vReoTSStatsPlus;
drop view s100447.vReoRunJobChk;
drop view s100447.vReoRunRngChk;
$/vDrop/
if $fun == 't' then $@/table/
if $mig == 0 then $@=¢
--drop DATABASE Db2Reo; commit;
CREATE DATABASE db2Reo
BUFFERPOOL BP2
INDEXBP BP1
CCSID UNICODE
STOGROUP GSMS;
--DROP TABLESPACE db2Reo.A012A;
--DROP TABLESPACE Db2Reo.A012H;
--DROP TABLESPACE Db2Reo.A013A;
--DROP TABLESPACE Db2Reo.A013H;
--DROP TABLESPACE Db2Reo.A014A;
--DROP TABLESPACE Db2Reo.A014H;
--drop TABLEspace Db2Reo.A020A ;
--drop TABLEspace Db2Reo.A021A ;
--drop TABLEspace Db2Reo.A022A ;
--drop TABLEspace Db2Reo.A023A ;
--drop TABLEspace Db2Reo.A024A ;
--DROP TABLESPACE db2Admin.A012A;
--DROP TABLESPACE db2Admin.A012H;
--DROP TABLESPACE db2Admin.A013A;
--DROP TABLESPACE db2Admin.A013H;
--DROP TABLESPACE db2Admin.A014A;
--DROP TABLESPACE db2Admin.A014H;
--drop TABLEspace db2Admin.A036A ;
--drop TABLEspace db2Admin.A020A ;
commit
;
CREATE TABLESPACE AReoTPA
IN Db2Reo
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLESPACE AReoTPH
IN Db2Reo
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
$!
if $mig >> 0 & $mig << 59 then $@=¢
drop trigger s100447.tReoTSParmsBefIns ;
drop trigger s100447.tReoTSParmsBefUpd ;
drop trigger s100447.tReoTSParmsAftIns ;
drop trigger s100447.tReoTSParmsAftUpdSt ;
drop trigger s100447.tReoTSParmsAftUpd ;
drop trigger s100447.tReoTSParmsAftDelSt ;
rename table s100447.tReoTsParms to tReoTsParmsOld ;
rename INDEX s100447.IReoTSParms to IReoTSParmsOld ;
rename table s100447.tReoTSParmsHist to tReoTSParmsHistOld ;
rename INDEX s100447.IReoTSParmsHist to IReoTSParmsHistOld ;
$! else if $mig == 62 then $@¢
ixSta = catTbLastCol(s100447, tReoRunIxStats)
if ixSta \== "44 STATS101" then $@¢
call err 'bad s100447, tReoRunIxStats:' ixSta
$! else $@=¢
alter TABLE s100447.tReoRunIxStats
alter COPYUPDATELRSN set data type CHARACTER(10) -- FOR BIT DATA
;
$!
tsSta = catTbLastCol(s100447, tReoRunTsStats)
$@=¢
alter TABLE s100447.tReoRunTSStats
alter COPYUPDATELRSN set data type CHARACTER(10) -- FOR BIT DATA
$!
if tsSta == "37 NAME" then $@=¢
-- v10 columns
add REORGCLUSTERSENS BIGINT
WITH DEFAULT NULL
add REORGSCANACCESS BIGINT
WITH DEFAULT NULL
add REORGHASHACCESS BIGINT
WITH DEFAULT NULL
add HASHLASTUSED DATE
WITH DEFAULT NULL
add DRIVETYPE CHARACTER(3) FOR MIXED DATA
NOT NULL
WITH DEFAULT 'HDD'
add LPFACILITY CHARACTER(1) FOR MIXED DATA
WITH DEFAULT NULL
add STATS01 BIGINT
WITH DEFAULT NULL
$!
if tsSta == "44 STATS01" | tsSta == "37 NAME" then $@=¢
-- v11 columns
add UPDATESIZE BIGINT
WITH DEFAULT NULL
add LASTDATACHANGE TIMESTAMP (6) WITHOUT TIME ZONE
WITH DEFAULT NULL
$! else if tsSta \== "46 LASTDATACHANGE" then $@¢
call err 'bad s100447.tReoRunTsStats:' tsSta
$!
$$ ;
$! else if $mig == 63 then $@=¢
alter TABLE s100447.tReoRunIXStats
drop constraint primaryKey ;
drop INDEX s100447.iReoRunIXStats1;
CREATE UNIQUE INDEX s100447.iReoRunIXStats1
ON s100447.tReoRunIXStats
(tst asc, rng asc, partition asc, isoBid asc, instance)
CLUSTER
USING STOGROUP GSMS
BUFFERPOOL BP1
;
alter TABLE s100447.tReoRunIXStats
add constraint primaryKey primary key
(tst, rng, partition, isobid, instance)
;
alter TABLE s100447.tReoRunTSStats
drop constraint primaryKey ;
drop INDEX s100447.iReoRunTSStats1;
CREATE UNIQUE INDEX s100447.iReoRunTSStats1
ON s100447.tReoRunTSStats
(tst asc, rng asc, partition asc, instance asc)
CLUSTER
USING STOGROUP GSMS
BUFFERPOOL BP1
;
alter TABLE s100447.tReoRunTSStats
add constraint primaryKey primary key
(tst, rng, partition, instance)
;
$!
if $mig << 59 then $@=¢
CREATE TABLE s100447.tReoTSParms
(
PRIO SMALLINT NOT NULL WITH DEFAULT 20,
CONSTRAINT PRIO CHECK (PRIO >= 0 AND PRIO <= 99),
DB CHAR(8) NOT NULL,
TS CHAR(8) NOT NULL,
PARTVON smallINT NOT NULL WITH DEFAULT,
CONSTRAINT PARTVON CHECK (PARTVON >= 0),
PARTBIS smallINT NOT NULL WITH DEFAULT,
CONSTRAINT PARTBIS CHECK (PARTBIS <= 9999
AND PARTBIS >= PARTVON),
GUVON DATE NOT NULL WITH DEFAULT,
GUBIS DATE NOT NULL WITH DEFAULT '31.12.9999',
REMARK CHAR(80) FOR SBCS DATA NOT NULL,
REORG CHAR(12) FOR SBCS DATA WITH DEFAULT NULL,
CONSTRAINT REORG
CHECK (REORG IN ('ALWAYS', 'NEVER', 'THRESHOLD')),
UNCLUST INTEGER WITH DEFAULT NULL,
clustRatio INTEGER WITH DEFAULT NULL,
FARINDREF INTEGER WITH DEFAULT NULL,
NEARINDREF INTEGER WITH DEFAULT NULL,
EXTENTS SMALLINT WITH DEFAULT NULL,
REORGDAYS INTEGER WITH DEFAULT NULL,
CONSTRAINT reorgDays
CHECK (reorgDays between 1 and 99999),
INSERTS INTEGER WITH DEFAULT NULL,
UPDATES INTEGER WITH DEFAULT NULL,
DELETES INTEGER WITH DEFAULT NULL,
advisory CHAR(1) WITH DEFAULT NULL,
CONSTRAINT advisory
CHECK (advisory IN ('0', '1')),
datasize INTEGER WITH DEFAULT NULL,
pageSave INTEGER WITH DEFAULT NULL,
rangeI0 INTEGER WITH DEFAULT NULL,
parallel smallInt WITH DEFAULT NULL,
updTst TIMESTAMP NOT NULL with default
)
IN Db2Reo.AReoTPA
AUDIT NONE
DATA CAPTURE NONE
CCSID UNICODE
NOT VOLATILE
;
CREATE UNIQUE INDEX s100447.IReoTSParms
ON s100447.tReoTSParms
(PRIO ASC,
DB ASC,
TS ASC,
PARTVON ASC,
GUBIS ASC
)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G
;
LABEL ON TABLE s100447.tReoTSParms
IS 'TS Thresholds: Defs/Ausnahmen'
;
COMMENT ON TABLE s100447.tReoTSParms is
'Default- und Spezial-Schwellwerte für TS Reorgs'
;
LABEL ON s100447.tReoTSParms
( PRIO is 'Prioritaet: tiefste=0=Default' ,
DB is 'Datenbank Name' ,
TS is 'TableSpace Name' ,
PARTVON is 'Partition von' ,
PARTBIS is 'Partition bis' ,
GUVON is 'Gueltig von' ,
GUBIS is 'Gueltig bis' ,
REORG is 'ALWAYS,NEVER,THRESHOLD' ,
UNCLUST is 'Schwellwert unclustered %' ,
clustRatio is 'Schwellwert clustRatio % ' ,
FARINDREF is 'SchwWe overflow far (>16 pg) %',
NEARINDREF is 'SchwWe overflow near(<16 pg) %',
EXTENTS is 'SchwWe Extents pro TS/Part' ,
REORGDAYS is 'Schwellwert Anzahl Tage' ,
INSERTS is 'Schwellwert inserts %' ,
UPDATES is 'Schwellwert updates %' ,
DELETES is 'Schwellwert deletes %' ,
advisory is 'reorg bei AREO* 1/0' ,
datasize is 'Schwellwert dataSize < %' ,
pageSave is 'Schwellwert pageSave < %' ,
RangeI0 is 'Range Reo time > % i0time' ,
parallel is 'max parllele parts reorg' ,
updTst is 'letzte Aenderung' ,
REMARK is 'Begründung (Freitext)'
)
;
CREATE TABLE s100447.tReoTSParmsHist
as (select e.*, ' ' updOp,
current timestamp endTst, ' ' endOp
from s100447.tReoTSParms e
) with no data
IN Db2Reo.AReoTPH
AUDIT NONE
DATA CAPTURE NONE
CCSID UNICODE
NOT VOLATILE
;
LABEL ON TABLE s100447.tReoTSParmsHist
IS 'History von tReoTSParms'
;
LABEL ON s100447.tReoTSParmsHist
( updTst is 'activation timestamp'
, updOp is 'activation operation (i,u)'
, endTst is 'deactivation timestamp'
, endOp is 'deactivation operation (u,d)'
)
;
CREATE UNIQUE INDEX s100447.IReoTSParmsHist
ON s100447.tReoTSParmsHist
(PRIO ASC,
DB ASC,
TS ASC,
partVon ASC,
guBis ASC,
updTst ASC
)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G;
commit;
$!
if $mig >>= 54 & $mig << 59 then $@=¢
$=par =- if($mig>>570,'parallel','case when 1=0 then 7 else null end')
-- delete from s100447.tReoTSParms;
insert into s100447.tReoTSParms
select PRIO
, DB
, TS
, PARTVON
, PARTBIS
, GUVON
, GUBIS
, REMARK
, REORG
, UNCLUST
, case when 1=0 then 7 else null end -- clustRatio
, FARINDREF
, NEARINDREF
, EXTENTS
, REORGDAYS
, INSERTS
, UPDATES
, DELETES
, ADVISORY
, DATASIZE
, PAGESAVE
, RANGEI0
, $par -- parallel
, UPDTST
from s100447.tReoTSParmsOld
;
select count(*) from s100447.tReoTSParms;
select count(*) from s100447.tReoTSParmsOld;
$=par =- if($mig==571, 'parallel','case when 1=0 then 7 else null end')
-- delete from s100447.tReoTSParmsHist ;
insert into s100447.tReoTSParmsHist
select PRIO
, DB
, TS
, PARTVON
, PARTBIS
, GUVON
, GUBIS
, REMARK
, REORG
, UNCLUST
, case when 1=0 then 7 else null end -- clustRatio
, FARINDREF
, NEARINDREF
, EXTENTS
, REORGDAYS
, INSERTS
, UPDATES
, DELETES
, ADVISORY
, DATASIZE
, PAGESAVE
, RANGEI0
, $par -- parallel
, UPDTST
, UPDOP
, ENDTST
, ENDOP
from s100447.tReoTSParmsHistOld
;
select count(*) from s100447.tReoTSParmsHist;
select count(*) from s100447.tReoTSParmsHistOld;
commit ;
$! else if $mig == 44 then $@=¢
insert into s100447.tReoTSParms
( PRIO, DB, TS, partVon, partBis,
guVon, guBis, REORG,
unclust, FARINDREF, nearIndRef, extents, reorgdays,
inserts, updates, deletes,
remark
) select
PRIO, DB, TS, min(partVon, 9999), min(partBis, 9999),
guVon, guBis, REORG,
unclust, FARINDREF, nearIndRef, extents,
min(max(reorgDays, 1), 99999),
inserts, updates, deletes,
left(remark, 80)
from s100447.tRtsReoTSException
where db <> '*' or ts <> '*'
;
$! else if $mig >> 0 & $mig << 59 then $@¢
call err 'migration von mig='$mig 'noch nicht implementiert5'
$!
if $mig << 59 then $@=¢
TERMINATOR? ;
create trigger s100447.tReoTSParmsBefIns
no cascade before insert on s100447.tReoTSParms
referencing New as n
for each row mode db2sql begin atomic
set updTst = current timestamp;
end
?
create trigger s100447.tReoTSParmsBefUpd
no cascade before update on s100447.tReoTSParms
referencing New as n Old as o
for each row mode db2sql begin atomic
set updTst = current timestamp;
end
?
create trigger s100447.tReoTSParmsAftIns
after insert on s100447.tReoTSParms
referencing New_table as n
for each statement mode db2sql begin atomic
insert into s100447.tReoTSParmsHist
select n.*, 'i', '9999-12-31-23.59.59', ' '
from n
;
end
?
create trigger s100447.tReoTSParmsAftUpdSt
after update on s100447.tReoTSParms
referencing New as n old as o
for each row mode db2sql begin atomic
update s100447.tReoTSParmsHist h
set endTst = n.updTst, endOp = 'u'
where h.PRIO = o.PRIO
and h.DB = o.DB
and h.TS = o.TS
and h.partVon = o.partVon
and h.guBis = o.guBis
and h.updTst = o.updTst
;
end
?
create trigger s100447.tReoTSParmsAftUpd
after update on s100447.tReoTSParms
referencing New_table as n old_table as o
for each statement mode db2sql begin atomic
insert into s100447.tReoTSParmsHist
select n.*, 'u', '9999-12-31-23.59.59', ' '
from n
;
end
?
create trigger s100447.tReoTSParmsAftDelSt
after delete on s100447.tReoTSParms
referencing old as o
for each row mode db2sql begin atomic
update s100447.tReoTSParmsHist h
set endTst = current timestamp, endOp = 'd'
where h.PRIO = o.PRIO
and h.DB = o.DB
and h.TS = o.TS
and h.partVon = o.partVon
and h.guBis = o.guBis
and h.updTst = o.updTst
;
end
?
TERMINATOR; ?
$!
if $mig == 0 then $@=¢
insert into s100447.tReoTSParms
( PRIO, DB, TS, partVon, partBis, REORG,
unclust, clustRatio,FARINDREF, nearIndRef, extents, reorgdays,
inserts, updates, deletes,
advisory, dataSize, pageSave, RangeI0, parallel,
remark
) values (
0, '*', '*', 0, 9999, 'THRESHOLD',
10, 90, 5, 5, 500, 365,
999999, 999999, 999999,
'1', 50, 5, 200, 7 ,
'globale default Schwellwerte'
)
;
$! else if $mig >>= 54 & $mig << 59 then $@=¢
update s100447.tReoTSParms set parallel = 7
where prio = 0 and db = '*' and ts = '*' and parallel is null;
update s100447.tReoTSParms set clustRatio = 90
where prio = 0 and db = '*' and ts = '*' and clustRatio is null;
$!
$@=¢
commit;
-- select * from s100447.tReoTSParms ;
$!
if $mig == 0 then $@=¢
CREATE TABLESPACE aReoIPA
IN Db2Reo
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255;
CREATE TABLE s100447.TReoIXParms
(
PRIO SMALLINT NOT NULL WITH DEFAULT 20,
CONSTRAINT PRIO CHECK (PRIO >= 0 AND PRIO <= 99),
DB CHAR(8) NOT NULL,
TS CHAR(8) NOT NULL,
IX CHAR(20) NOT NULL,
PARTVON INT NOT NULL WITH DEFAULT,
CONSTRAINT PARTVON CHECK (PARTVON >= 0),
PARTBIS INT NOT NULL WITH DEFAULT,
CONSTRAINT PARTBIS CHECK (PARTBIS <= 9999
AND PARTBIS >= PARTVON),
GUVON DATE NOT NULL WITH DEFAULT,
GUBIS DATE NOT NULL WITH DEFAULT '31.12.9999',
REMARK CHAR(80) FOR SBCS DATA NOT NULL,
REORG CHAR(12) FOR SBCS DATA WITH DEFAULT NULL,
CONSTRAINT REORG
CHECK (REORG IN ('ALWAYS', 'NEVER', 'THRESHOLD')),
PAGESPLITS INTEGER WITH DEFAULT NULL,
EXTENTS SMALLINT WITH DEFAULT NULL,
REORGDAYS INTEGER WITH DEFAULT NULL,
CONSTRAINT reorgDays
CHECK (reorgDays between 1 and 99999),
INSERTS INTEGER WITH DEFAULT NULL,
DELETES INTEGER WITH DEFAULT NULL,
PSEUDODEL INTEGER WITH DEFAULT NULL,
updTst TIMESTAMP NOT NULL WITH DEFAULT
)
IN Db2Reo.aReoIPA
AUDIT NONE
DATA CAPTURE NONE
CCSID UNICODE
NOT VOLATILE
;
LABEL ON TABLE s100447.TReoIXParms
IS 'Ausnahmen+Defs RtsRorgs Index'
;
COMMENT ON TABLE s100447.TReoIXParms
IS 'diese Tabelle enthaelt die Default-Schwellwerte und die TS mit s
peziellen Schwellwerten für RTS-Reorgs fuer Indexe.'
;
LABEL ON s100447.TReoIXParms
( PRIO is 'Prioritaet: tiefste=0=Default' ,
DB is 'Datenbank Name' ,
TS is 'TableSpace Name' ,
IX is 'Index Name' ,
PARTVON is 'Partition von' ,
PARTBIS is 'Partition bis' ,
GUVON is 'Gueltig von' ,
GUBIS is 'Gueltig bis' ,
REORG is 'ALWAYS,NEVER,THRESHOLD' ,
PAGESPLITS is 'Schwellwert ReorgLeafFar %' ,
EXTENTS is 'SchwWe Extents pro TS/Part' ,
REORGDAYS is 'Schwellwert Anzahl Tage' ,
INSERTS is 'Schwellwert inserts %' ,
DELETES is 'Schwellwert deletes %' ,
PseudoDel is 'Schwellwert PseudoDeletes %' ,
updTst is 'letzter update Timestamp' ,
REMARK is 'Begründung (Freitext)'
) ;
CREATE UNIQUE INDEX s100447.IReoIXParms
ON s100447.TReoIXParms
(PRIO ASC,
DB ASC,
TS ASC,
IX ASC,
PARTVON ASC,
GUBIS ASC
)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G
;
--migr53
--insert into s100447.tReoIxParms
-- select * from tstRts.tRtsReoIxException
--;
CREATE TABLESPACE aReoIPH
IN Db2Reo
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLE s100447.TReoIXParmsHist
as (select e.*, ' ' updOp,
current timestamp endTst, ' ' endOp
from s100447.TReoIXParms e
) with no data
IN Db2Reo.aReoIPH
AUDIT NONE
DATA CAPTURE NONE
CCSID UNICODE
NOT VOLATILE
;
LABEL ON TABLE s100447.TReoIXParmsHist
IS 'Ausnahmen+Defs RtsReo History'
;
LABEL ON s100447.TReoIXParmsHist
( updTst is 'activation timestamp'
, updOp is 'activation operation (i,u)'
, endTst is 'deactivation timestamp'
, endOp is 'deactivation operation (u,d)'
)
;
CREATE UNIQUE INDEX s100447.IReoIXParmsHist
ON s100447.TReoIXParmsHist
(PRIO ASC,
DB ASC,
TS ASC,
IX ASC,
PARTVON ASC,
GUBIS ASC,
updTst ASC
)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G
;
--migr53
--insert into s100447.tReoIxParmsHist
-- select * from tstRts.tRtsReoIxExceptionHist
--;
TERMINATOR? ;
create trigger s100447.TReoIXParmsBefIns
no cascade before insert on s100447.TReoIXParms
referencing New as n
for each row mode db2sql begin atomic
set updTst = current timestamp;
end
?
create trigger s100447.TReoIXParmsBefUpd
no cascade before update on s100447.TReoIXParms
referencing New as n Old as o
for each row mode db2sql begin atomic
set updTst = current timestamp;
end
?
create trigger s100447.TReoIXParmsAftIns
after insert on s100447.TReoIXParms
referencing New_table as n
for each statement mode db2sql begin atomic
insert into s100447.TReoIXParmsHist
select n.*, 'i', '9999-12-31-23.59.59', ' '
from n
;
end
?
create trigger s100447.TReoIXParmsAftUpdSt
after update on s100447.TReoIXParms
referencing New as n old as o
for each row mode db2sql begin atomic
update s100447.TReoIXParmsHist h
set endTst = n.updTst, endOp = 'u'
where h.PRIO = o.PRIO
and h.DB = o.DB
and h.TS = o.TS
and h.IX = o.IX
and h.partVon = o.partVon
and h.guBis = o.guBis
and h.updTst = o.updTst
;
end
?
create trigger s100447.TReoIXParmsAftUpd
after update on s100447.TReoIXParms
referencing New_table as n old_table as o
for each statement mode db2sql begin atomic
insert into s100447.TReoIXParmsHist
select n.*, 'u', '9999-12-31-23.59.59', ' '
from n
;
end
?
create trigger s100447.TReoIXParmsAftDelSt
after delete on s100447.TReoIXParms
referencing old as o
for each row mode db2sql begin atomic
update s100447.TReoIXParmsHist h
set endTst = current timestamp, endOp = 'd'
where h.PRIO = o.PRIO
and h.DB = o.DB
and h.TS = o.TS
and h.IX = o.IX
and h.partVon = o.partVon
and h.guBis = o.guBis
and h.updTst = o.updTst
;
end
?
TERMINATOR; ?
--migr44 --migr00
insert into s100447.tReoIXParms
( PRIO, DB, TS, IX, partVon, partBis,
REORG, pageSPlits, extents, reorgDays,
inserts, deletes, pseudoDel,
remark
) values (
0, '*', '*', '*', 0, 9999,
'THRESHOLD', 10, 500, 365,
999999, 999999, 999999,
'globale default Schwellwerte'
)
;
--migr44
-- insert into s100447.tReoIXParms
-- ( PRIO, DB, TS, IX,
-- partVon, partBis, guVon, guBis,
-- REORG, pageSPlits, extents, reorgDays,
-- inserts, deletes, pseudoDel,
-- remark
-- ) select
-- 20, db , ts , ix,
-- min(partVon, 9999), min(partBis, 9999), guVon, guBis,
-- REORG, pageSPlits, extents,
-- min(max(reorgDays, 1), 99999),
-- inserts, deletes, pseudoDel,
-- left(remark, 80)
-- from s100447.tRtsReoIXException
-- where db <> '*' or ts <> '*' or ix <> '*'
-- -- where left(dbName, 1) not in ('1')
-- ;
--lect * from s100447.tReoIXParms
;
CREATE TABLESPACE AREOJPA
IN Db2Reo
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLE s100447.TReoJobParms
(
PRIO SMALLINT NOT NULL WITH DEFAULT 20,
CONSTRAINT PRIO CHECK (PRIO >= 0 AND PRIO <= 99),
Job CHAR(8) NOT NULL,
GUVON DATE NOT NULL WITH DEFAULT,
GUBIS DATE NOT NULL WITH DEFAULT '31.12.9999',
REMARK CHAR(80) FOR SBCS DATA NOT NULL,
tsTime int WITH DEFAULT NULL,
ixTime int WITH DEFAULT NULL,
uncompDef real with default null,
uncompI0 real with default null,
ixSpae char(1) with default null,
CONSTRAINT ixSpae CHECK (ixSpae in ('i', 't', 'n')),
stats char(1) with default null,
CONSTRAINT stats CHECK (stats in ('n', 'j', 'p', 's')),
updTst TIMESTAMP NOT NULL with default
)
IN Db2Reo.AREOJPA
AUDIT NONE
DATA CAPTURE NONE
CCSID UNICODE
NOT VOLATILE
;
CREATE UNIQUE INDEX s100447.IReoJobParms
ON s100447.TReoJobParms
(PRIO ASC,
job ASC,
GUBIS ASC
)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G
;
LABEL ON TABLE s100447.TReoJobParms
IS 'Ausnahmen+Defaults RtsReo Job'
;
COMMENT ON TABLE s100447.TReoJobParms
IS 'diese Tabelle enthaelt die Default-Schwellwerte und die Jobs mit
speziellen Schwellwerten für RTS-Reorgs.'
;
LABEL ON s100447.TReoJobParms
( PRIO is 'Prioritaet: tiefste=0=Default' ,
job is 'Job Name' ,
GUVON is 'Gueltig von' ,
GUBIS is 'Gueltig bis' ,
tsTime is 'max ReoTime fuer TS in secs' ,
ixTime is 'max ReoTime fuer IX in secs' ,
uncompDef is 'max uncompressed data DPSI' ,
uncompI0 is 'max uncompressed data Default' ,
ixSpae is 'ix nach spaeter: ix, ts, no' ,
stats is 'statsColl: job,part,stats,no' ,
updTst is 'letzte Aenderung' ,
REMARK is 'Begruendung (Freitext)'
)
;
--migr53
-- insert into s100447.tReoJobParms
-- select PRIO, job, guvon, gubis, remark, tsTime, ixTime,
-- 8e10/5, 8e10, translate(ixSpae, 'itn','ITN'), 's', updTst
-- from tstRts.tRtsReoJobException
-- ;
CREATE TABLESPACE AREOJPH
IN Db2Reo
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
TRACKMOD YES
SEGSIZE 64
BUFFERPOOL BP2
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS YES
CCSID UNICODE
DEFINE YES
MAXROWS 255
;
CREATE TABLE s100447.TReoJobParmsHist
as (select e.*, ' ' updOp,
current timestamp endTst, ' ' endOp
from s100447.TReoJobParms e
) with no data
IN Db2Reo.AREOJPH
AUDIT NONE
DATA CAPTURE NONE
CCSID UNICODE
NOT VOLATILE
;
LABEL ON TABLE s100447.TReoJobParmsHist
IS 'Ausnahmen+Defs RtsReo History'
;
LABEL ON s100447.TReoJobParmsHist
( updTst is 'activation timestamp'
, updOp is 'activation operation (i,u)'
, endTst is 'deactivation timestamp'
, endOp is 'deactivation operation (u,d)'
)
;
CREATE UNIQUE INDEX s100447.IReoJobParmsHist
ON s100447.TReoJobParmsHist
(PRIO ASC,
job ASC,
guBis ASC,
updTst ASC
)
USING STOGROUP GSMS
PRIQTY -1 SECQTY -1
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
CLUSTER
BUFFERPOOL BP1
CLOSE YES
COPY NO
DEFINE YES
PIECESIZE 2 G
;
--migr53
-- insert into s100447.tReoJobParmsHist
-- select PRIO, job, guvon, gubis, remark, tsTime, ixTime,
-- uncompSz/5, uncompSz, ixSpae, stats,
-- updTst, updOp, endTst, endOp
-- from tstRts.tRtsReoJobExceptionHist
--;
TERMINATOR? ;
create trigger s100447.TReoJobParmsBefIns
no cascade before insert on s100447.TReoJobParms
referencing New as n
for each row mode db2sql begin atomic
set updTst = current timestamp;
end
?
create trigger s100447.TReoJobParmsBefUpd
no cascade before update on s100447.TReoJobParms
referencing New as n Old as o
for each row mode db2sql begin atomic
set updTst = current timestamp;
end
?
create trigger s100447.TReoJobParmsAftIns
after insert on s100447.TReoJobParms
referencing New_table as n
for each statement mode db2sql begin atomic
insert into s100447.TReoJobParmsHist
select n.*, 'i', '9999-12-31-23.59.59', ' '
from n
;
end
?
create trigger s100447.TReoJobParmsAftUpdSt
after update on s100447.TReoJobParms
referencing New as n old as o
for each row mode db2sql begin atomic
update s100447.TReoJobParmsHist h
set endTst = n.updTst, endOp = 'u'
where h.PRIO = o.PRIO
and h.job = o.job
and h.guBis = o.guBis
and h.updTst = o.updTst
;
end
?
create trigger s100447.TReoJobParmsAftUpd
after update on s100447.TReoJobParms
referencing New_table as n old_table as o
for each statement mode db2sql begin atomic
insert into s100447.TReoJobParmsHist
select n.*, 'u', '9999-12-31-23.59.59', ' '
from n
;
end
?
create trigger s100447.TReoJobParmsAftDelSt
after delete on s100447.TReoJobParms
referencing old as o
for each row mode db2sql begin atomic
update s100447.TReoJobParmsHist h
set endTst = current timestamp, endOp = 'd'
where h.PRIO = o.PRIO
and h.job = o.job
and h.guBis = o.guBis
and h.updTst = o.updTst
;
end
?
TERMINATOR; ?
--migr44 --migr00
insert into s100447.tReoJobParms
( PRIO, job, tsTime, ixTime, uncompDef, uncompI0,
ixSpae, stats, remark
) values (
0, '*', 18000, 10800, 1e11/5, 1e11, 't', 's',
'globale default Schwellwerte'
)
;
-- select * from s100447.tReoJobParms ;
--;
CREATE TABLESPACE ADBSTA
IN Db2Reo
USING STOGROUP GSMS
SEGSIZE 64
CCSID UNICODE
BUFFERPOOL BP2
LOCKSIZE ANY
COMPRESS YES;
CREATE TABLE s100447.tDbState
(db CHAR(12) NOT NULL,
sp CHAR(12) NOT NULL,
paFr INTEGER NOT NULL,
paTo INTEGER NOT NULL,
ty char(1) not null,
sta char(20) not null
)
IN Db2Reo.ADBSTA
CCSID UNICODE;
--
LABEL ON TABLE s100447.TDbState IS 'spaceStatus';
--
COMMENT ON TABLE s100447.tDbState IS 'space status restrict/advisory';
--
LABEL ON s100447.tDbState
(db IS 'db name',
sp IS 'name of index/tablespace',
paFr is 'partition from',
paTo is 'partition to',
ty is 'type: Ix Tb Db @',
sta is 'status of db or space'
);
CREATE UNIQUE INDEX s100447.iDbStateA1
ON s100447.tDbState
(db asc ,
sp asc ,
paFr asc
)
CLUSTER
USING STOGROUP GSMS
BUFFERPOOL BP1;
insert into s100447.tDbState values (
'', '', 0, 0, '@', '');
CREATE TABLESPACE AREORJA
IN Db2Reo
USING STOGROUP GSMS
SEGSIZE 64
CCSID UNICODE
BUFFERPOOL BP2
LOCKSIZE ANY
COMPRESS YES;
CREATE TABLE s100447.tReoRunJob
(tst timestamp NOT NULL,
constraint primaryKey primary key (tst),
job CHAR(8) NOT NULL,
ty char(2) NOT NULL,
tyInp char(2) NOT NULL,
sta char(1) not null,
eoj timestamp
)
IN Db2Reo.AREORJA
CCSID UNICODE;
--
COMMENT ON TABLE s100447.tReoRunJob IS 'rtsReo Job Status';
LABEL ON TABLE s100447.tReoRunJob IS 'rtsReo Job Status';
LABEL ON s100447.tReoRunJob
(tst IS 'creation timestamp primaryKey',
job IS 'Job',
ty is 'rtsReo Type: TS or IX',
tyInp is 'rtsReo Type from jobParameter',
sta is 'Status: r=reorg, s=r+Spa, 0',
eoj is 'timestamp >= end of job'
);
CREATE UNIQUE INDEX s100447.iReoRunJob1
ON s100447.tReoRunJob
(tst asc)
CLUSTER
USING STOGROUP GSMS
BUFFERPOOL BP1
;
CREATE UNIQUE INDEX s100447.iReoRunJob2
ON s100447.tReoRunJob
(job asc, tst desc)
USING STOGROUP GSMS
BUFFERPOOL BP1
;
--migr53
--insert into s100447.tReoRunJob
-- select * from tstRts.tRtsReoRunJob
-- where job <> '&late'
--;
--commit
--;
CREATE TABLESPACE AREORPA
IN Db2Reo
USING STOGROUP GSMS
SEGSIZE 64
CCSID UNICODE
BUFFERPOOL BP2
LOCKSIZE ANY
COMPRESS YES;
CREATE TABLE s100447.tReoRunPart
(tst timestamp NOT NULL,
constraint parent foreign key (tst)
references s100447.tReoRunJob on delete cascade,
rng int not null,
part smallInt not null,
constraint primaryKey primary key (tst, rng, part),
paVon smallInt not null,
paBis smallInt not null,
rngI0 int not null,
dbId smallInt not null,
spId smallInt not null,
ty char(1) not null,
sta char(1) not null,
reason char(50) not null,
db char(8) not null,
sp char(8) not null,
reoTst timestamp,
reoTime int
)
IN Db2Reo.AREORPA
CCSID UNICODE;
--
COMMENT ON TABLE s100447.tReoRunPart IS 'rtsReo Job Parts';
LABEL ON TABLE s100447.tReoRunPart IS 'rtsReo Job Parts';
LABEL ON s100447.tReoRunPart
(tst IS 'creation timestamp Job',
rng IS 'range id',
part IS 'partition',
paVon IS 'range partition von',
paBis IS 'range partition bis',
rngI0 IS 'range für i0',
dbId IS 'dbId',
spId is 'psId or isoBid',
ty is 't=TS, i=Ix',
sta is 'r=reorg, s=Spa, 0=i0',
reason is 'reason of reorg',
db is 'database',
sp is 'table/indexSpace',
reoTst is 'timestamp of end of reorg'
);
CREATE UNIQUE INDEX s100447.iReoRunPart1
ON s100447.tReoRunPart
(tst asc, rng asc, part asc)
CLUSTER
USING STOGROUP GSMS
BUFFERPOOL BP1
;
--insert into s100447.tReoRunPart
-- select * from tstRts.tRtsReoRunPart
--;
--commit
--;
CREATE TABLESPACE AREORTA
IN Db2Reo
USING STOGROUP GSMS
SEGSIZE 64
CCSID UNICODE
BUFFERPOOL BP2
LOCKSIZE ANY
COMPRESS YES;
CREATE TABLE s100447.tReoRunTSStats
as (select current timestamp tst, int(1) rng, s.*
from sysibm.sysTableSpaceStats s
) with no data
IN Db2Reo.AREORTA
CCSID UNICODE;
CREATE UNIQUE INDEX s100447.iReoRunTSStats1
ON s100447.tReoRunTSStats
(tst asc, rng asc, partition asc)
CLUSTER
USING STOGROUP GSMS
BUFFERPOOL BP1
;
alter TABLE s100447.tReoRunTSStats
add constraint primaryKey primary key (tst, rng, partition);
alter TABLE s100447.tReoRunTSStats
add constraint parent foreign key (tst, rng, partition)
references s100447.tReoRunPart on delete cascade
;
--migr53
--insert into s100447.tReoRunTSStats
-- select * from tstRts.tRtsReoRunTSStats
--;
--commit
--;
CREATE TABLESPACE AREORIA
IN Db2Reo
USING STOGROUP GSMS
SEGSIZE 64
CCSID UNICODE
BUFFERPOOL BP2
LOCKSIZE ANY
COMPRESS YES;
CREATE TABLE s100447.tReoRunIXStats
as (select current timestamp tst, int(1) rng, s.*
from sysibm.sysIndexSpaceStats s
) with no data
IN Db2Reo.AREORIA
CCSID UNICODE;
CREATE UNIQUE INDEX s100447.iReoRunIXStats1
ON s100447.tReoRunIXStats
(tst asc, rng asc, partition asc, isoBid asc)
CLUSTER
USING STOGROUP GSMS
BUFFERPOOL BP1
;
alter TABLE s100447.tReoRunIXStats
add constraint primaryKey primary key (tst,rng,partition,isobid);
alter TABLE s100447.tReoRunIXStats
add constraint parent foreign key (tst, rng, partition)
references s100447.tReoRunPart on delete cascade
;
--migr53
--insert into s100447.tReoRunIXStats
-- select * from tstRts.tRtsReoRunIXStats
--;
commit
;
$!
if $mig == 59 then $@=¢
-- mig==59: migrate stats tables from db2v9 to db2v10 format
alter TABLE s100447.tReoRunTSStats
add REORGCLUSTERSENS BIGINT WITH DEFAULT NULL;
alter TABLE s100447.tReoRunTSStats
add REORGSCANACCESS BIGINT WITH DEFAULT NULL;
alter TABLE s100447.tReoRunTSStats
add REORGHASHACCESS BIGINT WITH DEFAULT NULL;
alter TABLE s100447.tReoRunTSStats
add HASHLASTUSED DATE WITH DEFAULT NULL;
alter TABLE s100447.tReoRunTSStats
add DRIVETYPE CHAR(3) FOR MIXED DATA NOT NULL
WITH DEFAULT 'HDD';
alter TABLE s100447.tReoRunTSStats
add LPFACILITY CHAR(1) FOR MIXED DATA WITH DEFAULT NULL;
alter TABLE s100447.tReoRunTSStats
add STATS01 BIGINT WITH DEFAULT NULL;
alter TABLE s100447.tReoRunIXStats
add REORGINDEXACCESS BIGINT WITH DEFAULT NULL;
alter TABLE s100447.tReoRunIXStats
add DRIVETYPE CHAR(3) FOR MIXED DATA NOT NULL
WITH DEFAULT 'HDD';
alter TABLE s100447.tReoRunIXStats
add STATS101 BIGINT WITH DEFAULT NULL
;
commit ;
$!
$/table/
if $fun == 'v' | $fun == 't' then $@=/view/
------------------------------------------------------------------------
-- view vReoTSSchwelle: Schwellwerte pro Catalog Objekt
-- und alle später benötigen Werte aus Catalog Tabellen
--
CREATE VIEW S100447.vReoTSSchwelle AS
with sw as
(
SELECT
CASE WHEN POSSTR(DB, '*') > 0
THEN POSSTR(DB, '*') - 1 ELSE 8 END DBLEN,
CASE WHEN POSSTR(TS, '*') > 0
THEN POSSTR(TS, '*') - 1 ELSE 8 END TSLEN,
substr(right('00' || STRIP(CHAR(PRIO)), 2), 1, 2) prC2,
e.*
FROM s100447.TReoTSParms e
)
select p.dbName db, p.tsName ts, p.partition part,
min(s.dbId) dbid, min(s.psId) psId,
min(s.pgSize) pgSize, min(s.partitions) partitions,
min(s.clone) clone, min(s.instance) base,
min(p.createdTS) createdTS, min(p.compress) compress,
min(p.pageSave) pageSave ,
min(smallint(round(
case when p.freePage > 0 then p.freePage/real(1+p.freePage)
else 1 end
* min(100 - p.pctFree,
case when s.maxrows > 0 and p.avgRowLen > 0
then real(s.maxrows) * p.avgRowLen / pgSize/10.24
else 100 end)
,0))) pctLoad,
substr(max(prC2 || char(reorg )), 3) swReorg ,
int(substr(max(prC2 || char(unclust )), 3)) swUnclust ,
int(substr(max(prC2 || char(clustRatio )), 3)) swClustRatio ,
int(substr(max(prC2 || char(sw.FARINDREF )), 3)) swFARINDREF ,
int(substr(max(prC2 || char(sw.NEARINDREF)), 3)) swNEARINDREF,
int(substr(max(prC2 || char(sw.EXTENTS )), 3)) swEXTENTS ,
int(substr(max(prC2 || char(REORGDAYS )), 3)) swREORGDAYS ,
int(substr(max(prC2 || char(INSERTS )), 3)) swINSERTS ,
int(substr(max(prC2 || char(UPDATES )), 3)) swUPDATES ,
int(substr(max(prC2 || char(DELETES )), 3)) swDELETES ,
substr(max(prC2 || advisory ), 3) swAdvisory ,
int(substr(max(prC2 || char(datasize )), 3)) swDatasize ,
int(substr(max(prC2 || char(sw.pageSave )), 3)) swPageSave ,
int(substr(max(prC2 || char(rangeI0 )), 3)) swRangeI0 ,
smallint(substr(max(prC2 || char(parallel )), 3)) parallel
from
SYSIBM.SYSTABLEPart p
left join SYSIBM.SYSTABLESPACE S
on s.dbName = p.dbName and s.name = p.tsName
left join sw
on left(p.dbname, dbLen) = left(db, dbLen)
and left(p.tsName, tsLen) = left(ts, tsLen)
and p.partition between partVon and partBis
and current date between guVon and guBis
group by p.dbName, p.tsName, p.partition
;
------------------------------------------------------------------------
-- RTS-Stats Werte pro TS-Partition zu Schwellen joinen
-- Kolonnen Namen: sw*: Schwellen, ix* selbe IndexPartion,
-- i0* nicht part. Indexes für part. TS
--
create view S100447.vReoTsStats as
with ix as -- join ix und i0
(
select s.db, s.ts, s.part,
min(s.dbId) ixDbid, min(s.psId) ixPsId,
min(s.pgSize) pgSize, min(s.partitions) partitions,
min(s.clone) clone, min(s.base) base,
min(s.createdTS) createdTS, min(s.compress) compress,
min(s.pageSave ) pageSave ,
min(s.pctLoad ) pctLoad ,
min(swReorg ) swReorg ,
min(swUnclust ) swUnclust ,
min(swClustRatio) swClustRatio,
min(swFARINDREF ) swFARINDREF ,
min(swNEARINDREF) swNEARINDREF,
min(swEXTENTS ) swEXTENTS ,
min(swREORGDAYS ) swREORGDAYS ,
min(swINSERTS ) swINSERTS ,
min(swUPDATES ) swUPDATES ,
min(swDELETES ) swDELETES ,
min(swAdvisory ) swAdvisory ,
min(swDatasize ) swDatasize ,
min(swPageSave ) swPageSave ,
min(swRangeI0 ) swRangeI0 ,
min(parallel ) swParallel ,
min(substr(strip(t.creator) || '.' || strip(t.name), 1,30)) crTb,
sum(case when j.partition= s.part then 1 else 0 end)
ixParts,
sum(case when j.partition= s.part
then totalEntries else 0 end) ixEnt,
sum(case when j.partition= s.part
then real(j.totalEntries)
* log10(max(1e0, j.totalEntries)) else 0 end) ixEntLog,
sum(case when j.partition= s.part
then real(j.space) * 1024 else 0 end) ixSpc,
sum(case when j.partition= s.part
then real(j.space) * 1024 * log10(
max(1e0, real(j.space) * 1024)) else 0 end) ixSpcLog,
sum(case when j.partition= s.part
then real(j.space) * 1024 * log10(
max(1e0, j.totalEntries)) else 0 end) ixSpcLogEnt,
max(case when j.partition= s.part
then j.totalEntries else 0 end) ixEntMax,
max(case when j.partition= s.part
then real(j.totalEntries) * log10(
max(1e0, j.totalEntries)) else 0 end) ixEntLogMax,
max(case when j.partition= s.part
then real(j.space) * 1024 else 0 end) ixSpcMax,
max(case when j.partition= s.part
then real(j.space) * 1024 * log10(
max(1e0, real(j.space) * 1024)) else 0 end) ixSpcLogMax,
max(case when j.partition= s.part
then real(j.space) * 1024 * log10(
max(1e0, j.totalEntries)) else 0 end) ixSpcLogEntMax,
sum(case when j.partition<>s.part then 1 else 0 end)
i0Parts,
sum(case when j.partition<>s.part
then totalEntries else 0 end) i0Ent,
sum(case when j.partition<>s.part
then real(j.totalEntries)
* log10(max(1e0, j.totalEntries)) else 0 end) i0EntLog,
sum(case when j.partition<>s.part
then real(j.space) * 1024 else 0 end) i0Spc,
sum(case when j.partition<>s.part
then real(j.space) * 1024 * log10(
max(1e0, real(j.space) * 1024)) else 0 end) i0SpcLog,
sum(case when j.partition<>s.part
then real(j.space) * 1024 * log10(
max(1e0, j.totalEntries)) else 0 end) i0SpcLogEnt,
max(case when j.partition<>s.part
then j.totalEntries else 0 end) i0EntMax,
max(case when j.partition<>s.part
then real(j.totalEntries) * log10(
max(1e0, j.totalEntries)) else 0 end) i0EntLogMax,
max(case when j.partition<>s.part
then real(j.space) * 1024 else 0 end) i0SpcMax,
max(case when j.partition<>s.part
then real(j.space) * 1024 * log10(
max(1e0, real(j.space) * 1024)) else 0 end) i0SpcLogMax,
max(case when j.partition<>s.part
then real(j.space) * 1024 * log10(
max(1e0, j.totalEntries)) else 0 end) i0SpcLogEntMax,
max(case when i.clustering <> 'Y' then -9
when i.statstime < '2008-01-01-00.00.00' then -8
when i.fullKeyCardf < 100 then -7
when i.clusterratioF <= 0.0 then -6
else clusterRatio end) clusterRatio
from
S100447.vReoTSSchwelle s
left join sysIbm.sysTables t
on t.dbName = s.db and t.tsName = s.ts
-- and t.dbid = s.dbid
and t.type = 'T'
left join sysIbm.sysIndexes i
on i.tbCreator = t.creator and i.tbName = t.name
-- and s.db = i.dbName and s.dbId = i.dbId
left join SYSIBM.SYSINDEXSPACESTATS j
on j.creator = i.creator and j.Name = i.name
and j.dbName = i.dbName and j.indexSpace = i.indexSpace
and j.dbId = i.dbId and j.isoBid = i.isoBid
-- and j.dbId = s.dbId and j.dbName = s.db
and j.creator = i.creator and j.Name = i.name
and j.partition in (0, s.part)
and (j.partition = 0
or j.partition = s.part)
group by s.db, s.ts, s.part
) , tsPa as
( -- join tsPart Stats and calculate first formulas
select i0PARTS * 2.8568338 + i0SpcMax * 1.4917387E-07
+ i0SpcLogMax * 3.4002310E-09 i0Time,
i.*,
max(CAST(r.totalRows as REAL), 100) rRows,
max(coalesce(r.reorgLasttime, i.createdTs)
,coalesce(r.loadRLasttime, i.createdTs)) lastBuilt,
coalesce(real(r.datasize),
real(r.nActive) * i.pgSize * 1024 ) dataSz,
case when r.uncompressedDatasize > 0
and real(r.nActive) * i.pgSize * 102400
/ min(max(100-i.pageSave, 3), 100)
between real(r.uncompressedDatasize) / 7
and real(r.uncompressedDatasize) * 7
then real(r.uncompressedDatasize)
else
real(r.nActive) * i.pgSize * 102400
/ min(max(100-i.pageSave, 3), 100)
end uncompSz,
r.*
from ix i
left join sysIbm.sysTableSpaceStats r
on i.db = r.dbName and i.ts = r.name
and i.ixDbId = r.dbId and i.ixPsId = r.psId
and i.part = r.partition
) -- remaining formulas
select real(2.7397410 + 1 * 2.2918106) -- const + tsParts *
+ rRows * 1.1719944E-05
+ real(space) * (1024 * 4.1178398E-08)
+ uncompSz * 4.7357392E-09
+ ixPARTS * 5.9228624
+ ixSPC * 1.1593550E-08
+ i0Time reorgTime
, tsPa.*
from tsPa
;
------------------------------------------------------------------------
-- vReoTS: SchwellwertUeberschreitungen herausfinden
-- in riesigem case statement
--
create view S100447.vReoTS as
with ts1 as
(
select
case
when swReorg = 'NEVER' then 'no - reorgNever'
when staDb.sta like 'RO%' or staDb.sta like 'STOP%'
then 'no - db status ' || strip(staDb.sta)
when staTs.sta like 'RO%' or staTs.sta like 'STOP%'
then 'no - ts status ' || strip(staTs.sta)
when ',' || strip(staTs.sta) || ',' like '%,REORP,%'
then 'pending reorp ' || strip(stats.sta)
when ',' || strip(staTs.sta) || ',' like '%,AREOR,%'
then 'pending areor ' || strip(stats.sta)
when swReorg = 'ALWAYS' then 'reorgAlways'
when swAdvisory = '1'
and ',' || strip(staTs.sta) || ',' like '%,AREO*,%'
then 'pending areo* ' || strip(staTs.sta)
when dbName is null then 'rtsMissing'
when REORGLASTTIME IS NULL and LOADRLASTTIME IS NULL
then 'rtsNull'
when rRows is null then 'rtsRowsNull'
when totalRows < 0 then 'rtsRows ' || strip(char(totalRows))
|| ' < 0'
when REORGUNCLUSTINS > rRows / 100 * swUnclust
then 'unclust ' || strip(char(REORGUNCLUSTINS)) || ' > '
|| strip(char(swUnclust)) || '% of ' || char(totalRows)
when REORGFARINDREF > rRows / 100 * swFarindref
then 'farIndRef ' || strip(char(reorgFarIndRef)) || ' > '
|| strip(char(swFarIndRef))||'% of '
|| strip(char(totalRows))
when REORGNEARINDREF > rRows / 100 * swNearindref
then 'nearIndRef '||strip(char(reorgnearIndRef)) || ' > '
|| strip(char(swNearIndRef))||'% of '
|| strip(char(totalRows))
when r.extents > swExtents
then 'extents ' || strip(char(r.extents)) || ' > '
|| strip(char(swExtents))
when r.dataSize >= 0 and r.dataSize
< real(nActive) * r.pgSize
* 0.1024 * pctLoad * swdatasize - 1e7
then 'datasize ' || strip(char(real(r.datasize)))
|| ' < ' || strip(char(swdatasize)) || '% activeSz '
|| strip(char(real(nActive) * r.pgSize * 1024))
when compress = 'Y' and pageSave < swpageSave
and reorgInserts > rRows * .9 and rRows > 1e4
then 'pagesave ' || strip(char(pagesave))
|| ' < ' || strip(char(swPageSave)) || ' % '
when reorgInserts > rRows / 100 * swInserts
then 'inserts ' || strip(char(reorgInserts)) || ' > '
|| strip(char(swInserts)) || '% of '
|| strip(char(totalRows))
when reorgUpdates > rRows / 100 * swUpdates
then 'updates ' || strip(char(reorgUpdates)) || ' > '
|| strip(char(swUpdates)) || '% of '
|| strip(char(totalRows))
when reorgDeletes > rRows / 100 * swDeletes
then 'deletes ' || strip(char(reorgDeletes)) || ' > '
|| strip(char(swDeletes)) || '% of '
|| strip(char(totalRows))
when clusterRatio >= 0 and totalRows > 1000
and clusterRatio < swClustRatio
then 'clusterRatio ' || strip(char(clusterRatio))
|| ' < ' || strip(char(swClustRatio))
when CURRENT TIMESTAMP - swReorgDays days > lastBuilt
then 'lastBuilt ' || char(date(lastBuilt)) || ' older '
|| strip(char(swReorgDays)) ||' reorgDays'
else 'no - reorg not required'
end reason,
staTs.paFr, staTs.paTo, staTs.sta staTs, staDb.sta staDb,
1 parts,
r.*
from S100447.vReoTsStats r
left join s100447.tDbState staTs
ON staTs.Ty = 'T'
and staTs.db = r.db
AND staTs.sp = r.ts
AND staTs.paFr <= r.part
AND staTs.paTo >= r.part
left join s100447.tDbState staDb
ON staDb.Ty = 'D'
and staDb.db = r.db
)
-- importance anfügen
select smallint(case
when reason = 'no - reorg not required' then 0
when reason like 'no %' then -1
when reason like 'lastBuilt %' then 3
when reason like 'clusterRatio %' then 3
when reason like 'pending areo*%' then 7
when reason like 'pending %' then 11
when reason like 'reorgAlway%' then 9
else 5
end) importance ,
ts1.*
from ts1
;
------------------------------------------------------------------------
-- view vReoIXSchwelle: Schwellwerte pro Catalog Objekt
-- und alle später benötigen Werte aus Catalog Tabellen
--
create view S100447.vReoIXSchwelle as
with sw as
( select
CASE WHEN POSSTR(DB, '*') > 0
THEN POSSTR(DB, '*') - 1 ELSE 8 END DBLEN,
CASE WHEN POSSTR(TS, '*') > 0
THEN POSSTR(TS, '*') - 1 ELSE 8 END TSLEN,
CASE WHEN POSSTR(IX, '*') > 0
THEN POSSTR(IX, '*') - 1 ELSE 20 END IXLEN,
substr(right('00' || STRIP(CHAR(PRIO)), 2), 1, 2) prC2,
e.*
from s100447.tReoIXParms e
)
select i.creator cr, i.name ix, p.partition part,
substr(max(prC2 || char(reorg )), 3) swReorg ,
int(substr(max(prC2 || char(pageSplits )), 3)) swPageSplits,
int(substr(max(prC2 || char(sw.EXTENTS )), 3)) swEXTENTS ,
int(substr(max(prC2 || char(REORGDAYS )), 3)) swREORGDAYS ,
int(substr(max(prC2 || char(INSERTS )), 3)) swINSERTS ,
int(substr(max(prC2 || char(DELETES )), 3)) swDELETES ,
int(substr(max(prC2 || char(pseudoDel )), 3)) swPseudoDel ,
min(i.dbName) db, min(i.indexSpace) is, min(t.tsName) ts,
min(i.dbId) dbId, min(i.isoBid) isoBid,
min(p.createdTS) createdTS,
min(t.creator) tbCr, min(t.name) tb,
min(s.clone) clone, min(s.instance) base
from
SYSIBM.sysIndexes I
join SYSIBM.SYSTABLES T
on i.tbCreator = t.creator and i.tbName = t.name
and i.dbName = t.dbName
join SYSIBM.SYSTABLESPACE S
on t.dbName = s.dbName and t.tsName = s.name
join SYSIBM.SYSIndexPart p
on p.ixCreator = i.creator and p.ixName = i.name
, sw
where left(i.dbName, dbLen) = left(db, dbLen)
and left(i.name, ixLen) = left(ix, ixLen)
and left(t.tsName, tsLen) = left(ts, tsLen)
and p.partition between partVon and partBis
and current date between guVon and guBis
group by i.creator, i.name, p.partition
;
------------------------------------------------------------------------
-- RTS-Stats Werte pro ix-Partition zu Schwellen joinen
-- Kolonnen Namen: sw*: Schwellen
--
create view S100447.vReoIxStats as
select cr, ix, part, db, is, ts, tbCr, tb, createdTS, clone, base,
swReorg , swPageSplits, swEXTENTS , swREORGDAYS ,
swINSERTS , swDELETES , swPseudoDel ,
max(CAST(TOTALEntries AS REAL), 100) rEntrs,
cast(nActive AS REAL) rActive,
max(coalesce(reorgLastTime, createdTS),
coalesce(loadrLastTime, createdTS),
coalesce(rebuildLastTime, createdTS)) lastBuilt ,
coalesce(real(max(r.space, 0)) * 1024 * 1.3558420E-07 , 0)
+ 1.8626988 reorgTime ,
r.*
from S100447.vReoIXSchwelle s
left join sysibm.sysIndexSpaceStats r
on r.DBID = S.DBID
AND r.ISOBID = S.ISOBID
AND r.DBNAME = S.DB
AND r.indexSpace = S.is
AND r.partition = s.part
;
------------------------------------------------------------------------
-- vReoIx: SchwellwertUeberschreitungen herausfinden
-- in riesigem case statement
--
create view S100447.vReoIX as
with ix1 as
(
select s.*
, value(
( select 'no - db status ' || strip(d.sta)
from s100447.tDbState d
where d.sta like 'STOP%'
and d.Ty = 'D' and d.db = s.db
fetch first row only
)
, ( select 'no - ts status ' || strip(t.sta)
from s100447.tDbState t
where t.sta like 'STOP%'
and t.Ty = 'T'
and t.db = s.db
AND t.sp = s.ts
AND t.paFr <= s.part
AND t.paTo >= s.part
fetch first row only
)
, ( select substr(min(
case when i.sta like 'RO%' or i.sta like 'STOP%'
or i.sta like '%RBD%'
then '1no - ix status ' || strip(i.sta)
when ',' || strip(i.sta) || ',' like '%,REORP,%'
then '2pending reorp ' || strip(i.sta)
when ',' || strip(i.sta) || ',' like '%,AREOR,%'
then '3pending areor ' || strip(i.sta)
else null end), 2)
from s100447.tDbState i
where i.Ty = 'I'
and i.db = s.db
AND i.sp = s.is
and ( i.paFr = 0 or s.part = 0
or ( i.paFr <= s.part
AND i.paTo >= s.part ))
) ) xSta
from S100447.vReoIXStats s
)
, ix2 as
( select
case
when swReorg = 'NEVER' then 'no - reorgNever'
when xSta is not null then xSta
when swReorg = 'ALWAYS' then 'reorgAlways'
when indexSpace is null then 'rtsMissing'
when REORGLASTTIME IS NULL and LOADRLASTTIME IS NULL
and REBUILDLASTTIME IS NULL then 'rtsNull'
when rEntrs is null then 'rtsRowsNull'
when totalEntries < 0 then 'rtsEntries '
|| strip(char(totalEntries)) || ' < 0'
when REORGLEAFFAR > rActive / 100 * swPageSplits
then 'pageSplits ' || strip(char(reorgLeafFar)) || ' > '
|| strip(char(swPageSplits))
|| '% of ' || strip(char(nActive))
when extents > swExtents
then 'extents ' || strip(char(extents)) || ' > '
|| strip(char(swExtents))
when reorgInserts > rEntrs / 100 * swInserts
then 'inserts ' || strip(char(reorgInserts)) || ' > '
|| strip(char(swInserts)) || '% of '
|| strip(char(totalEntries))
when reorgDeletes > rEntrs / 100 * swDeletes
then 'deletes ' || strip(char(reorgDeletes)) || ' > '
|| strip(char(swDeletes)) || '% of '
|| strip(char(totalEntries))
when reorgPseudoDeletes > rEntrs / 100 * swPseudoDel
then 'pseudoDel ' || strip(char(reorgPseudoDeletes))||' > '
|| strip(char(swPseudoDel)) || '% of '
|| strip(char(totalEntries))
when CURRENT TIMESTAMP - swReorgDays days > lastBuilt
then 'lastBuilt ' || char(date(lastBuilt)) || ' older '
|| strip(char(swReorgDays)) ||' reorgDays'
else 'no - reorg not required'
end reason, s.*
from ix1 s
)
-- importance voranstellen
select smallint(case
when reason = 'no - reorg not required' then 0
when reason like 'no %' then -1
when reason like 'lastBuilt %' then 3
when reason like 'pending areo*%' then 7
when reason like 'pending %' then 11
when reason like 'reorgAlway%' then 9
else 5
end) importance,
ix2.*
from ix2
;
------------------------------------------------------------------------
-- vReoJobParms: jobLen und prC2 anfügen
--
CREATE VIEW S100447.vReoJobParms AS
SELECT e.*,
CASE WHEN POSSTR(job, '*') > 0
THEN POSSTR(job, '*') - 1 ELSE 8 END jobLEN,
substr(right('00' || STRIP(CHAR(PRIO)), 2), 1, 2) prC2
FROM s100447.TReoJobParms e
;
CREATE VIEW S100447.vReoRunTsStats AS
with tp as
( select
real(totalRows) rows
, log10(max(real(totalRows),1)) logRows
, real(space) * 1024 spc
, log10(max(real(space), 1)*1024) logSpc
, real(uncompressedDatasize) uds
, log10(max(real(uncompressedDatasize), 1)) logUds
, r.*
from s100447.tReoRunTsStats r
)
, t as
( select tst, rng
, min(partition) partMin
, max(partition) partMax
, count(*) parts
, sum(rows) rows
, max(rows) rowsMax
, sum(rows * logrows) rowsLog
, sum(rows) * max(logRows) rowsLogMax
, sum(spc) spc
, sum(spc * logSpc) spcLog
, sum(spc * logRows) spcLogRows
, max(spc) spcMax
, sum(spc) * max(logSpc) spcLogMax
, sum(Uds) Uds
, sum(Uds * logUds) UdsLog
, sum(Uds * logRows) UdsLogRows
, max(Uds) UdsMax
, sum(Uds) * max(logUds) UdsLogMax
from tp
group by tst, rng
)
, ip as
( select
real(totalEntries) ent,
log10(max(real(totalEntries),1)) logEnt,
real(space) * 1024 spc,
log10(max(real(space), 1)*1024) logSpc,
r.*
from s100447.tReoRunIxStats r
)
, i as
( select tst, rng, count(*) parts
, sum(ent) ent
, max(ent) entMax
, sum(ent * logEnt) entLog
, sum(ent) * max(logEnt) entLogMax
, sum(spc) spc
, sum(spc * logSpc) spcLog
, sum(spc * logEnt) spcLogEnt
, max(spc) spcMax
, sum(spc) * max(logSpc) spcLogMax
from ip
group by tst, rng
)
select j.job, r.*
, partMin tsPartMin
, partMax tsPartMax
, value(t .parts , 0) tsParts
, value(t .rows , 0) tsRows
, value(t .rowsMax , 0) tsRowsMax
, value(t .rowsLog , 0) tsRowsLog
, value(t .rowsLogMax , 0) tsRowsLogMax
, value(t .spc , 0) tsSpc
, value(t .spcLog , 0) tsSpcLog
, value(t .spcLogRows , 0) tsSpcLogRows
, value(t .spcMax , 0) tsSpcMax
, value(t .spcLogMax , 0) tsSpcLogMax
, value(t .Uds , 0) tsUds
, value(t .UdsLog , 0) tsUdsLog
, value(t .UdsLogRows , 0) tsUdsLogRows
, value(t .UdsMax , 0) tsUdsMax
, value(t .UdsLogMax , 0) tsUdsLogMax
, value(ix.parts , 0) ixparts
, value(ix.ent , 0) ixent
, value(ix.entMax , 0) ixentMax
, value(ix.entLog , 0) ixentLog
, value(ix.entLogMax , 0) ixentLogMax
, value(ix.spc , 0) ixspc
, value(ix.spcLog , 0) ixspcLog
, value(ix.spcLogEnt , 0) ixspcLogEnt
, value(ix.spcMax , 0) ixspcMax
, value(ix.spcLogMax , 0) ixspcLogMax
, value(i0.parts , 0) i0parts
, value(i0.ent , 0) i0ent
, value(i0.entMax , 0) i0entMax
, value(i0.entLog , 0) i0entLog
, value(i0.entLogMax , 0) i0entLogMax
, value(i0.spc , 0) i0spc
, value(i0.spcLog , 0) i0spcLog
, value(i0.spcLogEnt , 0) i0spcLogEnt
, value(i0.spcMax , 0) i0spcMax
, value(i0.spcLogMax , 0) i0spcLogMax
from s100447.tReoRunJob j, s100447.tReoRunPart r
left join t on t.tst = r.tst and t.rng = r.rng
left join i ix on ix.tst = r.tst and ix.rng = r.rng
left join i i0 on i0.tst = r.tst and i0.rng = r.rngI0
and r.rngI0 > 0
where j.ty = 'TS' and j.sta <> '0' and r.ty = 't' and r.sta = 'r'
and r.part = r.pavon and r.reoTime is not null
and r.tst = j.tst
;
CREATE VIEW S100447.vReoRunIxStats AS
with ip as
( select
real(totalEntries) ent,
log10(max(1, real(totalEntries))) logEnt,
real(space) * 1024 spc,
log10(max(1, real(space)*1024)) logSpc,
r.*
from s100447.tReoRunIxStats r
)
, i as
( select tst, rng, count(*) parts
, min(partition) partMin
, max(partition) partMax
, sum(ent) ent
, max(ent) entMax
, sum(ent * logEnt) entLog
, sum(ent) * max(logEnt) entLogMax
, sum(spc) spc
, sum(spc * logSpc) spcLog
, sum(spc * logEnt) spcLogEnt
, max(spc) spcMax
, sum(spc) * max(logSpc) spcLogMax
from ip
group by tst, rng
)
select j.job, r.*
, partMin partMin
, partMax partMax
, value(ix.parts , 0) parts
, value(ix.ent , 0) ent
, value(ix.entMax , 0) entMax
, value(ix.entLog , 0) entLog
, value(ix.entLogMax , 0) entLogMax
, value(ix.spc , 0) spc
, value(ix.spcLog , 0) spcLog
, value(ix.spcLogEnt , 0) spcLogEnt
, value(ix.spcMax , 0) spcMax
, value(ix.spcLogMax , 0) spcLogMax
from s100447.tReoRunJob j, s100447.tReoRunPart r
left join i ix on ix.tst = r.tst and ix.rng = r.rng
where j.ty = 'IX' and j.sta <> '0' and r.ty = 'i' and r.sta = 'r'
and r.part = r.pavon and r.reoTime is not null
and r.tst = j.tst
;
create view S100447.vReoTSStatsPlus as
select r.*, s.pgSize, p.pageSave,
case when r.uncompressedDatasize > 0
and real(r.nActive) * s.pgSize * 102400
/ min(max(100-p.pageSave, 3), 100)
between real(r.uncompressedDatasize) / 7
and real(r.uncompressedDatasize) * 7
then bigInt(r.uncompressedDatasize)
else
bigInt(real(r.nActive) * s.pgSize * 102400
/ min(max(100-p.pageSave, 3), 100))
end fixUncomp
from sysibm.sysTableSpaceStats r,
sysibm.sysTableSpace s, sysibm.sysTablePart p
where s.dbName = r.dbName and s.name = r.name
and s.dbid = r.dbId and s.psid = r.psid
and p.dbName = r.dbName and p.tsName = r.name
and p.partition = r.partition
;
create view S100447.vReoTSStatsFix as
select UPDATESTATSTIME
, NACTIVE
, NPAGES
, EXTENTS
, LOADRLASTTIME
, REORGLASTTIME
, REORGINSERTS
, REORGDELETES
, REORGUPDATES
, REORGUNCLUSTINS
, REORGDISORGLOB
, REORGMASSDELETE
, REORGNEARINDREF
, REORGFARINDREF
, STATSLASTTIME
, STATSINSERTS
, STATSDELETES
, STATSUPDATES
, STATSMASSDELETE
, COPYLASTTIME
, COPYUPDATEDPAGES
, COPYCHANGES
, COPYUPDATELRSN
, COPYUPDATETIME
, IBMREQD
, DBID
, PSID
, PARTITION
, INSTANCE
, SPACE
, TOTALROWS
, DATASIZE
, fixUncomp UNCOMPRESSEDDATASIZE
, DBNAME
, NAME
$@¢ if $db2v10ENF then $@=¢
, REORGCLUSTERSENS -- from here new db2v10 columns
, REORGSCANACCESS
, REORGHASHACCESS
, HASHLASTUSED
, DRIVETYPE
, LPFACILITY
, STATS01
$! $!
from S100447.vReoTSStatsPlus
;
-- check views ------------------------------------------------------
---------------------------------------------------------------------
-- test tReoRunJob (and tReoRunPart.reoTst)
-- message e not null ==> error message ==> see case statement below
-- eo2 = calculate better eoj
---------------------------------------------------------------------
create view s100447.vReoRunJobChk as
with p as -- part gruppiert nach job, nur ty='r'
(select tst, ty, count(*) cnt,
count(reotst) cntReo,
min(reoTst) reoTstVon,
max(reoTst) reoTstBis
from s100447.tReoRunPart
where sta = 'r'
group by tst, ty
), j as -- join to job
(
select j.*,
p.ty pTy, p.cnt pCnt, p.cntReo,
p.reoTstVon, p.reoTstBis,
(select min(tst)
from s100447.tReoRunJob a
where a.job = j.job and a.tst > j.tst
) nextJob
from s100447.tReoRunJob j
left join p
on j.tst = p.tst and p.ty = lower(left(j.ty, 1))
)
----> diese case statement macht error message <-------------
select case when eoj is null and nextJob is not null
then 'null not last'
when reoTstVon < tst then 'reoTst < tst'
when reoTstBis > nextJob then 'reoTst > nextJob'
when reoTstBis > eoj then 'reoTst > eoj'
when eoj > nextJob then 'overlap nextJob'
when reoTstBis - tst > 1000000 then 'reoTst > 1 day'
-- when eoj - tst > 1000000 then 'eoj > 1 day'
else null
end e,
case when pCnt is null or pCnt < 1 then tst
when reoTstBis is not null
and (nextJob is null or nextJob > reoTstBis)
and (tst < current timestamp - 2 days
or pCnt = cntReo) then reoTstBis
when nextJob is not null then
nextJob
else null
end eo2, j.*
from j
;
---------------------------------------------------------------------
-- check tReoRunPart
-- message e not null ==> error message ==> see case statement below
-- newTime = calculate reoTime from current values
---------------------------------------------------------------------
create view S100447.vReoRunRngChk as
with r as -- part gruppiert nach range
(
select
(select j.job from s100447.tReoRunJob j where j.tst = p.tst) job,
p.tst, p.rng,
min(ty) ty,
count(distinct ty) cdTy,
min(sta) sta,
count(distinct sta) cdSta,
sum(case when part = paVon then 1 else 0 end) cPaVon,
sum(case when part = paBis then 1 else 0 end) cPaBis,
count(*) cnt,
count(distinct part) cdPart,
count(reoTst) cReoTst,
min(reoTst) minReoTst,
max(reoTst) maxReoTst,
(select max(b.reoTst) -- letzter reoTst aus vorgehenden Ranges
from s100447.tReoRunPart b
where b.tst = p.tst and b.rng < p.rng) befReoTst,
(select min(sta) || max(sta) -- status und reoTst aus Range -1
|| case when count(*) = count(reotst) then '=' else '0' end
|| coalesce(char(max(reoTst)), '-')
from s100447.tReoRunPart b
where b.tst = p.tst and b.rng = p.rng-1) r1ReoTst,
(select min(sta) || max(sta) -- status und reoTst aus Range -2
|| case when count(*) = count(reotst) then '=' else '0' end
|| coalesce(char(max(reoTst)), '-')
from s100447.tReoRunPart b
where b.tst = p.tst and b.rng = p.rng-2) r2ReoTst,
max(case when part = paVon then reoTime else null end) reoTime
from s100447.tReoRunPart p
group by tst, rng
) , s as -- begTst aus range -1 und range -2 berechnen
( select r.*,
case when rng = 1 then tst
when left(r1ReoTst, 3) = 'rr='
then timestamp(substr(r1ReoTst, 4))
when left(r1ReoTst, 2) <> '00' then null
when rng = 2 then tst
when left(r2ReoTst, 3) = 'rr='
then timestamp(substr(r2ReoTst, 4))
else null
end begTst
from r
), t as -- aktuelle reoZeit berechnen
( select s.*,
(days(maxReoTst) - days(begTst)) * 86400
+ midnight_seconds(maxReoTst) - midnight_seconds(begTst)
+ 1e-6 * (microsecond(maxReoTst)-microsecond(begTst)) newTime
from s
)
select ---> case statement macht error message <--------------------
case when job is null then 'job missing'
when cdTy <> 1 then 'ty not unique'
when cdSta <> 1 then 'sta not unique'
when cPaVon <> 1 then 'part=paVon not unique'
when cPaBis <> 1 then 'part=paBis not unique'
when cdPart <> cnt then 'part not distinct'
when minReoTst < tst then 'reoTst < tst'
-- rng waren früher anders sortiert
when tst < '2011-09-29-00.00.00' then null
when befReoTst > minReoTst then 'before ReoTst > minReoTst'
when abs(reoTime-newTime) >= 1 then 'reoTime <> newTime'
else null
end e,
t.*
from t
;
commit
;
--- end of install mig=$mig----------------------------------
$/view/
$/ddl/