oracle杀掉占用cpu高的进程

2019-07-25  本文已影响0人  寄居他乡

1:首先使用TOP命令找到占用CPU高的SPID号
PID USERNAME THR PRI NICE SIZE RES STATE TIME CPU COMMAND
3575 oracle 1 12 0 0K 0K run 748.6H 24.98% oracle
3571 oracle 1 22 0 0K 0K sleep 706.2H 22.84% oracle

2:使用DBA账户登录数据库,使用以下SQL语句查询:
SELECT
sql_text
FROM vsqltext a WHERE (a.hash_value, a.address) IN (SELECT DECODE(sql_hash_value, 0, prev_hash_value, sql_hash_value), DECODE(sql_hash_value, 0, prev_sql_addr, sql_address) FROM vsession b
WHERE b.paddr =
(SELECT addr FROM v$process c WHERE c.spid = '&pid'))
ORDER BY piece ASC

通过操作系统的spid查询到oracle的sid:

select t1.saddr,t1.sid,t1.serial#,t1.paddr,t1.username,t1.status from vsession t1,vprocess t2 where t1.paddr=t2.addr and t2.SPID='15274';

取出上一步得出的sid和serial#,并使用命令杀掉:

alter system kill session '2775,42446'

上一篇下一篇

猜你喜欢

热点阅读