zOs/SQL/CATCOPW
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