cpu占用过高怎么办 cpu占用过高怎么办( 二 )


,ag.NameasAgentServerName,a.EventBm,a.MgrObjId,a.Id,a.Cfmoper,a.Cfm,a.Cfmtime,a.State,a.IgnoreStartTime,a.IgnoreEndTime
,a.OpUserId,d.NameasMgrObjTypeName,l.UserNameasuserName,f.NameasAddrName2
fromeventlogasaleft joinmgrobjasbona.MgrObjId=b.Idanda.AgentBm=b.AgentBm
left joinaddrnodeasconb.AddrId=c.Idleft joinmgrobjtypeasdonb.MgrObjTypeId=d.Id
left joineventdiraseona.EventBm=e.Bmleft joinagentserverasagona.AgentBm=ag.AgentBm
left joinloginUseraslona.cfmoper=l.loginGuidleft joinaddrnodeasfonag.AddrId=f.Id
where((MgrObjIdin(
selectIdfromMgrObj
whereAddrIdin('','02100000','02113000','02113001','02113002','02113003','02113004'
,'02113005','02113006','02113007','02113008','02113009','02113010','02113011','02113012'

cpu占用过高怎么办 cpu占用过高怎么办

文章插图
,'02113013','02113014','02113015','02113016','02113017','02113018','02113019','02113020'
,'02113021','02113022','02113023','02113024','02113025','02113026')))
or(mgrobjidin('00000000-0000-0000-0000-000000000000','00000000-0000-0000-0000-000000000000'
,'00000000-0000-0000-0000-000000000000','11111111-1111-1111-1111-111111111111'
,'11111111-1111-1111-1111-111111111111'))
)
order byalarmtimeDESC
SQL2:获取当前的总报警记录数
select count(*)from eventlog asaleft join mgrobj asbona.MgrObjId=b.Id anda.AgentBm=b.AgentBm
left join addrnode asconb.AddrId=c.Id left join mgrobjtype asdonb.MgrObjTypeId=d.Id
left join eventdir aseona.EventBm=e.Bm
where MgrObjId in(
select Id from MgrObj where AddrId in
('','02100000','02100001','02100002','02100003','02100004','02100005','02100006','02100007'
,'02100008','02100009','02100010','02100011','02100012','02100013','02100014','02100015'
,'02100016','02100017','02100018','02100019','02101000','02101001','02101002','02101003'
,'02101004','02101005','02101006','02101007','02101008','02101009','02101010','02101011','02101012'
,'02101013','02101014','02101015','02101016','02101017','02101018','02101019','02101020','02101021'
,'02101022','02101023','02101024','02101025','022000','022001','022101','022102','0755','0755002')
)
andmgrobjid notin(
'00000000-0000-0000-0000-000000000000','00000000-0000-0000-0000-000000000000','00000000-0000-0000-0000-000000000000'
,'11111111-1111-1111-1111-111111111111','11111111-1111-1111-1111-111111111111')
select count(*)from eventlog asaleft join mgrobj asbona.MgrObjId=b.Id anda.AgentBm=b.AgentBm
left join addrnode asconb.AddrId=c.Id left join mgrobjtype asdonb.MgrObjTypeId=d.Id
left join eventdir aseona.EventBm=e.Bm
where MgrObjId in(
select Id from MgrObj where AddrId in
('','02100000','02100001','02100002','02100003','02100004','02100005','02100006','02100007'
,'02100008','02100009','02100010','02100011','02100012','02100013','02100014','02100015'
,'02100016','02100017','02100018','02100019','02101000','02101001','02101002','02101003'
,'02101004','02101005','02101006','02101007','02101008','02101009','02101010','02101011','02101012'
,'02101013','02101014','02101015','02101016','02101017','02101018','02101019','02101020','02101021'
,'02101022','02101023','02101024','02101025','022000','022001','022101','022102','0755','0755002')
)
andmgrobjid notin(
'00000000-0000-0000-0000-000000000000','00000000-0000-0000-0000-000000000000','00000000-0000-0000-0000-000000000000'
,'11111111-1111-1111-1111-111111111111','11111111-1111-1111-1111-111111111111')
这是典型的获取数据并分页的数据,一条获取最新分页记录总数,一条获取分页记录,正是获取最新事件这里导致的CPU过高 。这里的业务大概是每个客户端,每3秒执行一次数据库查找,以便显示最新的告警事件 。好了,元凶找到了,怎么解决?
有哪些SQL语句会导致CPU过高?
上网查看了下文章,得出以下结论: