尝试编译"统计Hoggers"报告。所有那些占用CPU运行统计数据的用户都在" table.cols" (或col1,col2等),他们是否运行统计数据以及何时运行它们。
我写了下面的报告,但我可以看到它远非真实
它"拉过错误的家伙" - 反对运行统计数据操作的用户名显示不正确。我们运行统计数据的生产ID是SWPRDUSR,但顶级统计用户显示为SYSPRDUSR,这是系统范围内的产品。用户,他确实惹恼了我们的东西 - 所以我知道这里有些不对劲。
这是我正在运行的
我正在运行此报告而非系统范围,但仅适用于我的我的数据库,级联
sel
a.username,
s.ObjectTableName,
s.objectdatabasename,
--s.ObjectColumnName,
cast ( s.CollectTimeStamp as date ) ,
CAST( SUM((((a.AmpCPUTime(DEC(18,3)))+
ZEROIFNULL(a.ParserCPUTime)) )) AS DECIMAL(18,3)) as Total_CPU
from
DBC.DBQLogtbl a join DBC.DBQLoBJTBL s
on ( s.ProcID = a.ProcID
and cast ( s.CollectTimeStamp as date ) = cast ( a.CollectTimeStamp as date ) )
where objectdatabasename in (
sel child
from dbc.children
where parent ='FINDB'
group by 1 )
and ObjectType='tab'
and statementType='collect statistics'
group by 1,2,3,4
UNION ALL
sel
a.username,
s.ObjectTableName,
s.objectdatabasename,
s.Logdate,
--s.ObjectColumnName,
CAST( SUM((((a.AmpCPUTime(DEC(18,3)))+
ZEROIFNULL(a.ParserCPUTime)) )) AS DECIMAL(18,3)) as Total_CPU
from
PDCRinfo.DBQLogtbl a join PDCRinfo.dbqlobjtbl_hst s
on ( s.queryID = a.queryID
and s.Logdate = a.Logdate )
where objectdatabasename in (
sel child
from dbc.children
where parent ='FINDB'
group by 1 )
and ObjectType='tab'
and statementType='collect statistics'
group by 1,2,3,4
order by 5 desc , 3 asc, 2 asc, 1 asc
;
答案 0 :(得分:1)
在第一个选择中,缺少连接条件:s.queryID = a.queryID
Collect Stats
始终是单表,不需要拆分CPU。