獲取v$latch資料來源實驗
實驗環境:Oracle Rac 11.2.0.3
首先獲取v$latch的定義:
透過PL/SQL或者get ddl等常規途徑只能獲取到v_$latch相關的檢視資訊。
需要透過特殊方法獲取v$latch的ddl
可以透過set autotrace traceonly開啟狀態下執行select * from v$latch;得知表的資料來源是x$kslltr,結果如下:
-----------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 352 | 0 (0)| 00:00:01 |
|* 1 | FIXED TABLE FULL| X$KSLLTR | 1 | 352 | 0 (0)| 00:00:01 |
透過sql_trace的方式因為版本問題,trace的輸出結構略有不同,在11.2.0.4.5中可以獲取的ddl,但是在我的實驗環境中無法獲取,方法如下
alter session set sql_trace=true;
select * from v$latch;
alter session set sql_trace=false;
select * from v$diag_info where name='Default Trace File';
tkprof xxxx.trc
透過10053trace的方式獲取到v$latch的具體底層資料來源,方法如下
alter session set events '10053 trace name context forever,level 1';
select * from v$latch;
alter session set events '10053 trace name context off';
select * from v$diag_info where name='Default Trace File';
vim /u01/app/oracle/diag/rdbms/irac/IRAC1/trace/IRAC1_ora_16791.trc
注意!請不要使用sys使用者做10053 trace,你是得不到結果的。
得到如下結果,從輸出可以看出,最終轉換的sql語句如下;
Final query after transformations:******* UNPARSED QUERY IS *******
SELECT "LT"."KSLLTADDR" "ADDR","LT"."KSLLTNUM" "LATCH#","LT"."KSLLTLVL" "LEVEL#","LT"."KSLLTNAM" "NAME","LT"."KSLLTHSH" "HASH","LT"."KSLLTWGT" "GETS","LT"."KSLLTWFF" "MISSES","LT"."KSLLTWSL" "SLEEPS","LT"."KSLLTNGT" "IMMEDIATE_GETS","LT"."KSLLTNFA" "IMMEDIATE_MISSES","LT"."KSLLTWKC" "WAITERS_WOKEN","LT"."KSLLTWTH" "WAITS_HOLDING_LATCH","LT"."KSLLTHST0" "SPIN_GETS","LT"."KSLLTHST1" "SLEEP1","LT"."KSLLTHST2" "SLEEP2","LT"."KSLLTHST3" "SLEEP3","LT"."KSLLTHST4" "SLEEP4","LT"."KSLLTHST5" "SLEEP5","LT"."KSLLTHST6" "SLEEP6","LT"."KSLLTHST7" "SLEEP7","LT"."KSLLTHST8" "SLEEP8","LT"."KSLLTHST9" "SLEEP9","LT"."KSLLTHST10" "SLEEP10","LT"."KSLLTHST11" "SLEEP11","LT"."KSLLTWTT" "WAIT_TIME" FROM SYS."X$KSLLTR" "LT" WHERE "LT"."INST_ID"=USERENV('INSTANCE')
kkoqbc: optimizing query block SEL$88122447 (#0)
從而得到v$latch的底層資料來源。
當然,如果每次想看到官方文件中沒有記載的檢視就去做一個10053trace,實在麻煩,可以使用如下方式,簡單方便的查詢到檢視的資料來源:
SQL> SELECT * FROM v$fixed_view_definition WHERE view_name = 'V$LATCH';
VIEW_NAME
--------------------------------------------------------------------------------
VIEW_DEFINITION
--------------------------------------------------------------------------------
V$LATCH
select addr,latch#,level#,name,hash,gets,misses,sleeps,immediate_gets, immediate
_misses,waiters_woken,waits_holding_latch,spin_gets, sleep1,sleep2,sleep3,sleep4
,sleep5,sleep6,sleep7,sleep8,sleep9, sleep10,sleep11,wait_time from gv$latch whe
re inst_id = USERENV('Instance')
SQL> SELECT * FROM v$fixed_view_definition WHERE view_name = 'GV$LATCH';
VIEW_NAME
--------------------------------------------------------------------------------
VIEW_DEFINITION
--------------------------------------------------------------------------------
GV$LATCH
select lt.inst_id,lt.kslltaddr,lt.kslltnum,lt.kslltlvl,lt.kslltnam, lt.ks
llthsh,lt.kslltwgt,lt.kslltwff, lt.kslltwsl,lt.kslltngt,lt.kslltnfa,lt.ks
lltwkc, lt.kslltwth,lt.ksllthst0,lt.ksllthst1,lt.ksllthst2, lt.ksl
lthst3,lt.ksllthst4,lt.ksllthst5,lt.ksllthst6,lt.ksllthst7, lt.ksllthst8,
lt.ksllthst9,lt.ksllthst10, lt.ksllthst11, lt.kslltwtt from x$kslltr lt
SQL>
功夫不負有心人,經過不懈的努力終於得到了v$latch是如何產生的,那麼這個檢視究竟有什麼用處呢,以後的部落格會分享。
這博文稽核的也太慢了吧。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29135257/viewspace-2146979/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Spring多資料來源獲取Spring
- 使用RxJava從多個資料來源獲取資料RxJava
- AngularJS中獲取資料來源的幾種方式AngularJS
- 列舉繫結資料來源,獲取值
- Android使用getIdentifier()方法根據資源名來獲取資AndroidIDE
- jboss 3.2.3為何取不到資料來源?
- 如何利用電商API介面來獲取商品資料API
- 登入驗證判斷,獲取後臺資料
- 好用的資源獲取網站網站
- ckeditor獲取資料
- DataPipeline「自定義」資料來源,解決複雜請求邏輯外部資料獲取難題API
- 實現多資料來源事務
- 實時處理 Kafka 資料來源Kafka
- 獲得JD商品評論 API 如何實現實時資料獲取API
- 如何獲取Mac/win軟體資源?Mac
- 為什麼要透過API介面來獲取資料API
- 在jboss中為何SessionBean不能獲得資料來源?SessionBean
- 學習動態效能表(11)--v$latch$v$latch_children
- 獲取Wireshark資料流
- 1.獲取資料
- 如何透過API獲取實時商品資料API
- 原生js實現獲取form表單資料JSORM
- 談談Spring Boot 資料來源載入及其多資料來源簡單實現Spring Boot
- jndi資料來源
- 大資料實戰:電商該如何利用大資料獲取流量?大資料
- API商品資料介面呼叫實戰:爬蟲與資料獲取API爬蟲
- 雲資料管理的未來已來,Veeam v11帶來更酷炫體驗!
- Spring-Boot 多資料來源配置+動態資料來源切換+多資料來源事物配置實現主從資料庫儲存分離Springboot資料庫
- 多資料來源與動態資料來源的權衡
- request保持會話,尋找set-cookie來獲取資料會話Cookie
- v$session的來源Session
- oracle 11g latch之v$latch系列二Oracle
- oracle 11g latch之v$latch系列三Oracle
- 獲取遠端圖片的Blob資源
- Java - 獲取ClassPath的路徑和資源Java
- datatables 獲取 pageLength 和 pageStart,重新獲取table資料
- ODI基於源表時間戳欄位獲取增量資料時間戳
- 實時獲取化工網商品詳情API資料API