oracle latch_自譯文_(2)
latch(二)
續上一節
latch(一)自譯文
http://space.itpub.net/9240380/viewspace-631161
cursor:mutex S
我們嘗試以共享模式獲取在父cursor上面的一個mutex或者v$sqlstat bucket
這個mutex是in flux(實際就是有些人正以共享模式持有它),因此我們要等待只到擁有者完成它的共享持有
適用於:檢查父cursor或者查詢v$sqlstat bucket
cursor:mutex X
我們嘗試以獨有模式獲取在父cursor上面的一個mutex或者v$sqlstat bucket
有些人已經以未相容模式持有mutex
有些人指:
已經以x 模式(獨有)佔用mutex
或者以S 模式(共享)有好多佔用者持有mutex
適用於:在父cursor下載入新的子cursor,修改v$sqlstat bucket,更改(新)繫結抓取的資料
cursor:pin S
我們嘗試以共享模式pin(固定)cursor(比如要執行)
用於固定住子cursor的mutex叫:in flux,有些人正在固定已經固定的cursor
我們必須等待直到其它會話完成它們的固定(pin)請求
cursor:pin X
我們嘗試以獨佔模式pin(固定)cursor,但其它人已經用非相容模式固定(pin)了這個cursor
或是一個會話已經以x 模式固定了cursor或者多個會話以共享模式固定了它
cursor:pin S wait on X
我們嘗試以共享模式固定一個cursor,但已有一些人以獨有模式固定了它
適用於:其它會話正在載入用於解析(子游標)
在11g中,大多數library cache latches已被library cache hash buckets的mutexes 代替
共有131072個 KGL hash buckets
每個buckets被獨立的mutex保護
虛假競爭存在的機會更少
library cache:mutex S
嘗試以共享模式獲取library cache hash bucket的一個mutex
這個mutex已被非相容模式佔用
library cache:mutex X
嘗試以獨有模式獲取library cache hash bucket的一個mutex
這個mutex已被非相容模式佔用
附上一段cursor and library cache mutex content detail,供參考
SQL> @sed mutex
EVENT_NAME PARAMETER1 PARAMETER2 PARAMETER3
------------------------- --------------- --------------- ------------
cursor: mutex S idn value where|sleeps
cursor: mutex X idn value where|sleeps
cursor: pin S idn value where|sleeps
cursor: pin S wait on X idn value where|sleeps
cursor: pin X idn value where|sleeps
library cache: mutex S idn value where
library cache: mutex X idn value wher
idn=library cache object hash value(cursor:*events)
idn=library cache hash bucket number(library cache:events)
values=
每個字(2或4個bytes)的低bytes - 被共享模式引用的mutex數
每個字(2或4個bytes)的高bytes -專用模式佔用者的sid
where=到x$mutex_sleep.locatin_id的地圖索引或叫座標
_spin_count
latch的spin計數--在放棄或睡眠前等待的次數
經常被混淆喲
如果沒有其它問題並且系統有充足的cpu資源,應該增加
_latch_classes 和_latch_class_x
可以給不同的latches配置不同的spin 計數
select indx,spin,yield,waittime from x$ksllclass
_kgx_spin_count
在11g以後,對於KGX mutex的固定計數
修復了固定原因,你就不需要調節spin count了,哈哈
續上一節
latch(一)自譯文
http://space.itpub.net/9240380/viewspace-631161
cursor:mutex S
我們嘗試以共享模式獲取在父cursor上面的一個mutex或者v$sqlstat bucket
這個mutex是in flux(實際就是有些人正以共享模式持有它),因此我們要等待只到擁有者完成它的共享持有
適用於:檢查父cursor或者查詢v$sqlstat bucket
cursor:mutex X
我們嘗試以獨有模式獲取在父cursor上面的一個mutex或者v$sqlstat bucket
有些人已經以未相容模式持有mutex
有些人指:
已經以x 模式(獨有)佔用mutex
或者以S 模式(共享)有好多佔用者持有mutex
適用於:在父cursor下載入新的子cursor,修改v$sqlstat bucket,更改(新)繫結抓取的資料
cursor:pin S
我們嘗試以共享模式pin(固定)cursor(比如要執行)
用於固定住子cursor的mutex叫:in flux,有些人正在固定已經固定的cursor
我們必須等待直到其它會話完成它們的固定(pin)請求
cursor:pin X
我們嘗試以獨佔模式pin(固定)cursor,但其它人已經用非相容模式固定(pin)了這個cursor
或是一個會話已經以x 模式固定了cursor或者多個會話以共享模式固定了它
cursor:pin S wait on X
我們嘗試以共享模式固定一個cursor,但已有一些人以獨有模式固定了它
適用於:其它會話正在載入用於解析(子游標)
在11g中,大多數library cache latches已被library cache hash buckets的mutexes 代替
共有131072個 KGL hash buckets
每個buckets被獨立的mutex保護
虛假競爭存在的機會更少
library cache:mutex S
嘗試以共享模式獲取library cache hash bucket的一個mutex
這個mutex已被非相容模式佔用
library cache:mutex X
嘗試以獨有模式獲取library cache hash bucket的一個mutex
這個mutex已被非相容模式佔用
附上一段cursor and library cache mutex content detail,供參考
SQL> @sed mutex
EVENT_NAME PARAMETER1 PARAMETER2 PARAMETER3
------------------------- --------------- --------------- ------------
cursor: mutex S idn value where|sleeps
cursor: mutex X idn value where|sleeps
cursor: pin S idn value where|sleeps
cursor: pin S wait on X idn value where|sleeps
cursor: pin X idn value where|sleeps
library cache: mutex S idn value where
library cache: mutex X idn value wher
idn=library cache object hash value(cursor:*events)
idn=library cache hash bucket number(library cache:events)
values=
每個字(2或4個bytes)的低bytes - 被共享模式引用的mutex數
每個字(2或4個bytes)的高bytes -專用模式佔用者的sid
where=到x$mutex_sleep.locatin_id的地圖索引或叫座標
_spin_count
latch的spin計數--在放棄或睡眠前等待的次數
經常被混淆喲
如果沒有其它問題並且系統有充足的cpu資源,應該增加
_latch_classes 和_latch_class_x
可以給不同的latches配置不同的spin 計數
select indx,spin,yield,waittime from x$ksllclass
_kgx_spin_count
在11g以後,對於KGX mutex的固定計數
修復了固定原因,你就不需要調節spin count了,哈哈
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-631300/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle latch_自譯文_(1)Oracle
- oracle latch_自譯文_(3)Oracle
- 【譯文】OAuth 2 介紹OAuth
- oracle 失效物件自動重新編譯Oracle物件編譯
- 張正友標定論文翻譯(2)
- RFC2617- HTTP Authentication自譯本-(2) (轉)HTTP
- rfc1945-http1.0自譯本-(2) (轉)HTTP
- 譯文:WebKit for DevelopersWebKitDeveloper
- 飆高音(譯文)
- 【公益譯文】安全控制評估自動化支援:軟體漏洞管理
- objc系列譯文(6.2):編譯器OBJ編譯
- C標準庫參考指南系列譯文(2)ctype.h
- TransH論文翻譯
- Ambari 架構(譯文)架構
- NDT論文翻譯
- 【公益譯文】安全控制評估自動化支援:軟體漏洞管理(二)
- 【公益譯文】安全控制評估自動化支援:軟體漏洞管理(三)
- ORACLE自動重編譯包導致查詢被卡Oracle編譯
- [翻譯自官方]什麼是RDB和AOF? 一文了解Redis持久化!Redis持久化
- 《Scalable IO in Java》譯文Java
- 《太上感應篇》譯文
- 譯文:影象優化(上)優化
- 理解 Node.js(譯文)Node.js
- 併發框架Disruptor譯文框架
- 自媒體-軟文
- [譯]《The Swift Programming Language》2 0版之自動引用計數Swift
- 全網唯一完整譯文|Waymo無人車報告:通往自動駕駛之路自動駕駛
- Understanding HBase and BigTable 譯文
- JavaScript中的Object相等(譯文)JavaScriptObject
- 【譯文】CSS 與網路效能CSS
- samesite-cookie詳解(譯文)Cookie
- A3C論文翻譯
- [譯文] JavaScript async 和 awaitJavaScriptAI
- Java Volatile Keyword - 譯文Java
- JavaScript 閉包入門(譯文)JavaScript
- objc系列譯文(7.2):值物件OBJ物件
- objc系列譯文(9.5):字串渲染OBJ字串
- 轉 《五蠹》參考譯文