oracle查询cpu占用率高,ORACLE杀掉cpu占用率高的session

SPID一一system process id,表示该server

process在OS层面的Porcess ID

PID一一Oracle process

id,可以理解Oracle给自己的进程的一个编号

SID一一SESSION标识,常用于连接其它列,理解为有在和oracle连接会话时oracle为其分配的一个编号

ADDR----进程对象地址

paddr----process addr,

通过这个字段我们可以查看当前进程的相关信息, 系统进程id,操作系统用户信息等

根据sid查询sql语句的spid

select b.spid,a.sid,a.serial#,a.machine

from v$session a,v$process b where a.paddr

=b.addr and a.sid = '&sid';

根据sid查询sql语句的OS里进程号,可以用kill

-9来杀

SQL> select spid, osuser, s.program from v$session

s,v$process p where s.paddr=p.addr and s.sid=631;

=============

通过进程号spid找sql语句的方法

1. select sid from v$session where paddr = (select addr from

v$process where spid = &spid);

然后输入spid,得到对应的sid (session id)

2. select sql_text from v$sqltext where address = (select

sql_address from v$session where sid = &sid) order by

piece;

输入刚才得到的sid,的确可以得到sql语句。如果感觉输入麻烦,比较简单的方法是开2个sqlplus顺序执行。

===============

1. 使用top或者 glance

查看占用cpu资源高的oralce进程

将进程PID记下--spid

2. 将查到的结果记下ADDR

sql>select ADDR from v$process where

spid=PID;

3. 将查到的sid 和serial#记下

sql>select sid, serial# from v$session

where paddr='ADDR';

(

PS也可直接按sid查

SQL>select sid,serial# from v$session

where sid=XXX;

)

4. 可以进一步确认sql语句

输入SID号查sql语句

select sql_text from v$sqlarea where

(hash_value,address)=(select sql_hash_value,sql_address from

v$session where sid=&sid);

下例:

SID=输入SID 224

update sdi_t_ccms_image t set t.reserve1 = null, t.obtain_time =

sysdate where t.reserve1 = '1' and t.status = 202 and t.obtainer =

'028'

5. 确定后杀

sql>alter system kill session

'sid,serial#';

==========================================

以下附例子

---

PROCESS

LIST Users= 5

User CPU % Thrd

Disk Memory Block

Process

Name PID Name ( 400% max)

Cnt IOrate RSS/VSS On

--------------------------------------------------------------------------------

oraclecardmi 22087

oracle 37.0 1 0.2 85.7mb 105.4mb PRI

oraclecardmi 22093

oracle 36.1 1 0.2 85.7mb 89.4mb PRI

oraclecardmi 22103

oracle 35.3 1 0.0 86.7mb

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值