[20200409]使用ash_wait_chains注意的一個細節.txt
[20200409]使用ash_wait_chains注意的一個細節.txt
--//上午使用ash_wait_chains檢查生產系統資料庫,遇到一個小問題做一個記錄:
> @ tpt/ash/ash_wait_chains upper(program2)||event2 1=1 trunc(sysdate) trunc(sysdate+1)
-- Display ASH Wait Chain Signatures script v0.2 BETA by Tanel Poder ( http://blog.tanelpoder.com )
%This SECONDS AAS WAIT_CHAIN
------ ---------- ------- -------------------------
33% 24518 .3 -> (XXXXXX.EXE) ON CPU
24% 17933 .2 -> (JNNN) ON CPU
22% 15984 .2 -> (WNWP.EXE) ON CPU
2% 1279 .0 -> (ORACLE) ON CPU
1% 1033 .0 -> () ON CPU
...
--//我想看看WNWP.EXE的sql語句.
> select * from gv$session where lower(program) like '%wnwp%';
no rows selected
--//找了半天也沒有找到這樣的程式。實際上程式是w3wp.exe.可以透過如下確定:
> @ tpt/ash/ash_wait_chains upper(program)||':'||event2 1=1 trunc(sysdate) trunc(sysdate+1)
-- Display ASH Wait Chain Signatures script v0.2 BETA by Tanel Poder ( http://blog.tanelpoder.com )
%This SECONDS AAS WAIT_CHAIN
------ ---------- ------- ------------------------------------
33% 25084 .3 -> XXXXXXX.EXE:ON CPU
24% 17886 .2 -> ORACLE@XXXXXXXX (J001):ON CPU
21% 16158 .2 -> W3WP.EXE:ON CPU
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1% 1043 .0 -> :ON CPU
--//實際上的執行程式是w3wp.exe.執行比較實際上指令碼把裡面的數字轉換成N。可以看出使用program2簡化program外,還做了一些處理。
--//主要目的是為了一些合併。可以檢視原始碼發現:
ash AS (SELECT /*+ QB_NAME(ash) LEADING(a) USE_HASH(u) SWAP_JOIN_INPUTS(u) */
a.*
, u.username
, CASE WHEN a.session_type = 'BACKGROUND' OR REGEXP_LIKE(a.program, '.*\([PJ]\d+\)') THEN
REGEXP_REPLACE(SUBSTR(a.program,INSTR(a.program,'(')), '\d', 'n')
ELSE
'('||REGEXP_REPLACE(REGEXP_REPLACE(a.program, '(.*)@(.*)(\(.*\))', '\1'), '\d', 'n')||')'
END || ' ' program2
, NVL(a.event||CASE WHEN a.event IN ('buffer busy waits', 'gc buffer busy', 'gc buffer busy acquire', 'gc buffer busy release')
THEN ' ['||(SELECT class FROM bclass WHERE r = a.p3)||']' ELSE null END,'ON CPU')
|| ' ' event2
, TO_CHAR(CASE WHEN session_state = 'WAITING' THEN p1 ELSE null END, '0XXXXXXXXXXXXXXX') p1hex
, TO_CHAR(CASE WHEN session_state = 'WAITING' THEN p2 ELSE null END, '0XXXXXXXXXXXXXXX') p2hex
, TO_CHAR(CASE WHEN session_state = 'WAITING' THEN p3 ELSE null END, '0XXXXXXXXXXXXXXX') p3hex
FROM
gv$active_session_history a
, dba_users u
WHERE
a.user_id = u.user_id (+)
AND sample_time BETWEEN &3 AND &4
),
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2685119/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20190523]修改引數後一些細節注意.txt
- [20190523]修改引數後一些細節注意2.txt
- 關於使用vector時需要注意的細節
- 電商選品需要注意的8個細節
- Docker 19.03.13的四個使用細節Docker
- Golang陣列注意細節Golang陣列
- [20220311]完善ash_wait_chains指令碼.txtAI指令碼
- Laravel 的一個命名細節分享Laravel
- 一個小的技術細節
- Termux使用的一些細節UX
- 使用JavaScript變數需要注意哪些語法細節?JavaScript變數
- [譯] Google JavaScript 風格指南中 13 個值得注意的細節GoJavaScript
- 企業建站的相關注意細節分享
- [20211111]補充完善ash_wait_chains指令碼.txtAI指令碼
- Java面試要注意哪些細節Java面試
- [20190314]使用strace注意的問題.txt
- [20220121]windows使用grep注意.txtWindows
- [20210408]使用linux find注意.txtLinux
- 用 Go map 要注意這 1 個細節,避免依賴他!Go
- Git 的一些使用細枝末節Git
- OpenFeign 使用細節
- 集合:安卓開發中怎麼注意細節?一文告訴你四十個安卓
- [JAVA] Java switch的使用細節Java
- 乾貨 | APP介面設計的色彩注意細節,有哪些?APP
- 搭建直播系統前需要注意的細節有哪些?
- MYSQL索引建立需要注意以下幾點細節MySql索引
- TCP 中的兩個細節點TCP
- 程式設計師面試 IT 公司,這些細節一定要注意!程式設計師面試
- vue元件使用的細節 is 屬性Vue元件
- 第 70 期 Go 中不常注意的各種細節集錦Go
- 圖解SparkStreaming與Kafka的整合,這些細節大家要注意!圖解SparkKafka
- iOS模仿系統相機拍照你不曾注意過的細節iOS
- 關於python類屬性和例項屬性的一些細節注意點Python
- Node 中如何引入一個模組及其細節
- 數字展廳設計需要注意哪些細節?
- Spring(4)-AOP使用細節Spring
- GO 變數使用細節Go變數
- 關於SVM數學細節邏輯的個人理解(一)