oracle查找历史录入命令,通过SID查找历史执行的SQL语句

这次某系统发生严重的阻塞,但是去查顶级会话,发现已经没有该对应的sql_id了,于是我们只用通过

v$active_session_history 视图来寻找。下面是查找的过程:

1、查看当前等待事件

select event,count(*) from v$session where event not in ('SQL*Net message from client','rdbms ipc message')

group by event order by count(*);

2、查找顶层会话阻塞

@?/rdbms/admin/utllockt.sql

3、根据顶层会话查找进程

select SID,SERIAL#,USERNAME,COMMAND, OSUSER , PROCESS,macHINE,PROGRAM, SQL_ID from v$session where sid=&sid;

3、查找顶层ASH历史sql_id

select session_id,sql_id,sample_id,event,sample_time from v$active_session_history where session_id==&sid;

4、根据上面的sql_id 定位历史 sql语句

set long 999999

select sql_text from v$sqltext where sql_id='&sql_id' order by piece;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值