oracle 占用cpu 100%,如何解决?

[复制链接]
查看11 | 回复6 | 2008-2-13 12:43:03 | 显示全部楼层 |阅读模式
dear all:

请教一个问题,oracle在有用户连接时CPU一直上升直到 100%,系统是win2000,想问一下能否通过什么办法可以查出哪些程式占用了这么多资源?
回复

使用道具 举报

千问 | 2008-2-13 12:43:03 | 显示全部楼层
http://www.eygle.com/faq/Use.Nt.tools.manage.Oracle.htm
回复

使用道具 举报

千问 | 2008-2-13 12:43:03 | 显示全部楼层
不好意思,很慢,多按了几下提交
回复

使用道具 举报

千问 | 2008-2-13 12:43:03 | 显示全部楼层
给你一个简单的方法侦测原因
select sql_text from v$sqlarea where address in(select sql_address from v$session where status='ACTIVE' and last_call_et>nnn);
找出目前最耗费资源的sql语句
where条件的意思是正处于活动状态且至少持续了nnn时间的对话
时间长短你自己定,这种sql往往是造成cpu居高不下的原因
回复

使用道具 举报

千问 | 2008-2-13 12:43:03 | 显示全部楼层
谢谢楼上的兄弟,我按照lihaibolw方法,但是测试出来的如下.好象不对,是不是哪里稿错了?
select sql_text from v$sqlarea where address in(select sql_address from v$sessio
n where status='ACTIVE' and last_call_et>10);
select f.file#, f.block#, f.ts#, f.length from fet$ f, ts$ t where t.ts#=f.ts# a
nd t.dflextpct!=0 and t.bitmapped=0
select local_tran_id, global_tran_fmt, global_oracle_id, global_foreign_id,
state, status, heuristic_dflt,session_vector, reco_vector, 3600*24*(s
ysdate-reco_time),3600*24*(sysdate-nvl(heuristic_time,fail_time)), globa
l_commit#, type# from pending_trans$where session_vector != '00000000'
回复

使用道具 举报

千问 | 2008-2-13 12:43:03 | 显示全部楼层
原来是DMT 啊,还大量的extent?
还有 pending_trans$,是远程在刷新?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行