zOs/SQL/CATRUPD0
-- 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
;;;;