这次某系统发生严重的阻塞,但是去查顶级会话,发现已经没有该对应的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;

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐