[20230210]建立完善swcnm.sql脚本.txt --//遇到asm例子出现阻塞的情况.正常使用tpt的swc脚本无法查询.因为asm实例在nomount状态.with subquery报错. --//自己建立一个新的查询脚本.使用v$instance,v$thread作为子查询的子表. SYS@test> startup nomount ORACLE instance started. Total System Global Area 805306368 bytes Fixed Size 8924064 bytes Variable Size 297796704 bytes Database Buffers 490733568 bytes Redo Buffers 7852032 bytes SYS@test> set verify off SYS@test> @ swc sid||','||SERIAL#||',@'||inst_id||','||event 1=1 THEN ' ['||NVL((SELECT class FROM bclass WHERE r = s.p3),'undo @bclass '||s.p3)||']' ELSE null END,'ON CPU') * ERROR at line 22: ORA-01219: database or pluggable database not open: queries allowed on fixed tables or views only --//主要里面使用with子查询,使用别名不对. --//改写如下: $ cat swcnm.sql prompt @ swcnm sid||','||SERIAL#||',@'||inst_id||','||event 1=1 col path format a180 WITH v$instance AS (SELECT /*+ INLINE */ class, ROWNUM r from v$waitstat) , v$thread AS ( SELECT REPLACE(SYS_CONNECT_BY_PATH(&1, '->'), '->', ' -> ') ||CASE WHEN CONNECT_BY_ISLEAF = 1 AND ses.blocking_session IS NOT NULL THEN ' -> [idle blocker '||ses.blocking_instance||','||ses.blocking_session||' ('||ses.program||')]' ELSE NULL END path FROM ( SELECT s.* , CASE WHEN s.type = 'BACKGROUND' AND s.program LIKE '%(DBW%)' THEN '(DBWn)' WHEN s.type = 'BACKGROUND' OR REGEXP_LIKE(s.program, '.*\([PJ]\d+\)') THEN REGEXP_REPLACE(SUBSTR(s.program,INSTR(s.program,'(')), '\d', 'n') ELSE '('||REGEXP_REPLACE(REGEXP_REPLACE(s.program, '(.*)@(.*)(\(.*\))', '\1'), '\d', 'n')||')' END || ' ' program2 , NVL(s.event||CASE WHEN event like 'enq%' AND state = 'WAITING' THEN ' [mode='||BITAND(p1, POWER(2,14)-1)||']' WHEN s.event IN (SELECT name FROM v$event_name WHERE parameter3 = 'class#') THEN ' ['||NVL((SELECT class FROM v$instance WHERE r = s.p3),'undo @bclass '||s.p3)||']' ELSE null END,'ON CPU') || ' ' event2 , TO_CHAR(CASE WHEN state = 'WAITING' THEN p1 ELSE null END, '0XXXXXXXXXXXXXXX') p1hex , TO_CHAR(CASE WHEN state = 'WAITING' THEN p2 ELSE null END, '0XXXXXXXXXXXXXXX') p2hex , TO_CHAR(CASE WHEN state = 'WAITING' THEN p3 ELSE null END, '0XXXXXXXXXXXXXXX') p3hex FROM gv$session s ) ses CONNECT BY NOCYCLE ( PRIOR ses.blocking_session = ses.sid AND PRIOR ses.blocking_instance = ses.inst_id ) START WITH (ses.state='WAITING' AND ses.wait_class!='Idle') AND &2 ) SELECT COUNT(*) sessions , path FROM v$thread GROUP BY path ORDER BY sessions DESC / --//例子: @ swcnm sid||','||SERIAL#||',@'||inst_id||','||event 1=1 --//简单测试: --//先在nomunt下测试: SYS@test> @ swcnm sid||','||SERIAL#||',@'||inst_id||','||event 1=1 @ swcnm sid||','||SERIAL#||',@'||inst_id||','||event 1=1 no rows selected --//ok没有问题,进入open模式,继续测试: SCOTT@test01p> @ ver1 PORT_STRING VERSION BANNER CON_ID ------------------------------ -------------- -------------------------------------------------------------------------------- ---------- IBMPC/WIN_NT64-9.1.0 12.2.0.1.0 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production 0 --//session 1: SCOTT@test01p> @ spid SID SERIAL# PROCESS SERVER SPID PID P_SERIAL# C50 ---------- ---------- ------------------------ --------- -------------------- ------- ---------- -------------------------------------------------- 169 61475 9544:1400 DEDICATED 12952 26 4 alter system kill session '169,61475' immediate; SCOTT@test01p> create table t ( a number); Table created. SCOTT@test01p> insert into t values (1); 1 row created. SCOTT@test01p> commit ; Commit complete. SCOTT@test01p> update t set a=1; 1 row updated. --//session 2: SCOTT@test01p> @ spid SID SERIAL# PROCESS SERVER SPID PID P_SERIAL# C50 ---------- ---------- ------------------------ --------- -------------------- ------- ---------- -------------------------------------------------- 178 25684 8384:7108 DEDICATED 3004 42 7 alter system kill session '178,25684' immediate; SCOTT@test01p> update t set a=2; --//挂起!! --//session 1: SCOTT@test01p> @ swcnm sid||','||SERIAL#||',@'||inst_id||','||event 1=1 @ swcnm sid||','||SERIAL#||',@'||inst_id||','||event 1=1 SESSIONS PATH ---------- ----------------------------------------------------------------------------------------------- 1 -> 178,25684,@1,enq: TX - row lock contention -> 169,61475,@1,SQL*Net message to client 1 -> 178,25684,@1,enq: TX - row lock contention
[20230210]建立完善swcnm.sql脚本.txt
来源:这里教程网
时间:2026-03-03 18:21:47
作者:
编辑推荐:
- [20230210]建立完善swcnm.sql脚本.txt03-03
- 江苏泰工阀门衬氟阀门03-03
- sysbench压测Oracle 11g03-03
- benchmark 压测Oracle 12c03-03
- 科大讯飞、学而思、读书郎“混战”学习机03-03
- [20230214]数据库连接访问asm相关视图.txt03-03
- [20230216]数据库连接访问asm相关视图2.txt03-03
- [20230216]奇怪的高逻辑读3.txt03-03
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 江苏泰工阀门衬氟阀门
江苏泰工阀门衬氟阀门
26-03-03 - 科大讯飞、学而思、读书郎“混战”学习机
科大讯飞、学而思、读书郎“混战”学习机
26-03-03 - 以太网分析仪
以太网分析仪
26-03-03 - 记一次资源消耗导致RAC数据库访问异常案例
记一次资源消耗导致RAC数据库访问异常案例
26-03-03 - 自动驾驶“跌伤”,百度、小马智行“强筋壮骨”
自动驾驶“跌伤”,百度、小马智行“强筋壮骨”
26-03-03 - VIAVI唯亚威SmartClass OLA-54/-55/-55M 光功率衰减器
- VIAVI唯亚威MAP 可变光衰减器模块 (mVOA)
VIAVI唯亚威MAP 可变光衰减器模块 (mVOA)
26-03-03 - VIAVI唯亚威光纤TeraVM核心测试软件
VIAVI唯亚威光纤TeraVM核心测试软件
26-03-03 - 无锡哲讯谈食品行业如何利用SAP信息化方案实现数字化转型?
无锡哲讯谈食品行业如何利用SAP信息化方案实现数字化转型?
26-03-03 - VIAVI唯亚威StrataSync托管式云解决方案
VIAVI唯亚威StrataSync托管式云解决方案
26-03-03
