[20211111]补充完善ash_wait_chains脚本.txt

来源:这里教程网 时间:2026-03-03 17:08:18 作者:

[20211111]补充完善ash_wait_chains脚本.txt --//tanel poder 提供的脚本ash_wait_chains对于分析阻塞很好用. --//但是我写的命令太长了,昨天查找我以前写的脚本浪费许多时间.我决定把它打个包,便于自己以后调用. @ tpt/ash/ash_wait_chains BLOCKING_SESSION||','||BLOCKING_SESSION_SERIAL#||',@'||BLOCKING_INST_ID||'=>'||session_id||','||SESSION_SERIAL#||',@'||inst_id||'=>'||event 1=1 sysdate-1/1440 sysdate --//脚本如下: $ cat wcx.sql @ tpt/ash/ash_wait_chains BLOCKING_SESSION||','||BLOCKING_SESSION_SERIAL#||',@'||BLOCKING_INST_ID||'=>'||session_id||','||SESSION_SERIAL#||',@'||inst_id||'=>'||event 1=1 &&1 &&2 $ cat wcy.sql @ tpt/ash/ash_wait_chains BLOCKING_SESSION||','||BLOCKING_SESSION_SERIAL#||',@'||BLOCKING_INST_ID||'=>'||session_id||','||SESSION_SERIAL#||',@'||inst_id||'=>'||event "&&3" &&1 &&2 --//简单说明一下: --//参数1 监测开始时间. 参数2 监测结束时间 注意不要有空格 参数3一些过滤条件.我加了双引号. --//另外取时间范围不要太长,一般取5-10分钟为佳. --//例子: @ wcx sysdate-5/1440 sysdate @ wcy sysdate-1/24 sysdate "event='latch free'" --//注:第3个参数有空格,必须使用双引号. --//另外作者还提供dash_wait_chains脚本查询dba_hist_active_sess_history视图.因为阻塞一般很少事后分析,d开头命令我很少用。 --//不过使用时我遇到问题,才发现我写错一个地方。 SYS@book> @tpt/ash/dash_wait_chains "blocking_session||','||blocking_session_serial#||',@'||blocking_inst_id||' => '||session_id||','||session_serial#||'@'||inst_id||' => '||event2" 1=1 sysdate-0.3/1440 sysdate -- Display ASH Wait Chain Signatures script v0.6 BETA by Tanel Poder ( https://tanelpoder.com )       , REPLACE(SYS_CONNECT_BY_PATH(blocking_session||','||blocking_session_serial#||',@'||blocking_inst_id||' => '||session_id||','||session_serial#||'@'||inst_id||' => '||event2, '->'), '->', ' -> ')||CASE WHEN CONNECT_BY_ISLEAF = 1 AND d.blocking_session IS NOT NULL THEN ' -> [idle blocker '||d.blocking_inst_id||','||d.blocking_session||','||d.blocking_session_serial#||(SELECT ' ('||s.program||')' FROM gv$session s WHERE (s.inst_id, s.sid , s.serial#) = ((d.blocking_inst_id,d.blocking_session,d.blocking_session_serial#)))||']' ELSE NULL END path -- there's a reason why I'm doing this                                                                                                                                                             * ERROR at line 63: ORA-00904: "INST_ID": invalid identifier --//顺便说一下前几天我升级了ash_wait_chains.sql,dash_wait_chains.sql,因为链接 --//http://blog.itpub.net/267265/viewspace-2795478/ => [20211012]ORA-12850.txt  的原因。 --//理论讲两个脚本的区别就算一个访问v$active_session_history,另外一个访问dba_hist_active_sess_history的区别。 --//对比两个视图结构才发现dba_hist_active_sess_history使用INSTANCE_NUMBER。

相关推荐