latch free事件的整理(轉)
Latchesare like short duration locks that protect critical bits of code. LatchFree事件表示該程式在等待一個被其它程式持有的latch。這個事件共有3個引數,意義如下:
- p1 表示latch的地址,一般會用p1raw,也就是p1引數的16進位制。我們可以查詢v$latch_children和v$latch,透過addr=p1raw來查詢
- P2 表示latch號,我們可以透過v$latchname來進行查詢該latch的名字
- p3表示 我們已經試圖獲得該latch的次數
- 一般我們可以透過select * from v$latch where sleep>0 order by sleep desc; 來確定競爭最激烈的latch
- 對於shared_pool latch和library cache latch一般可以透過繫結變數來進行最佳化
- 對於cache buffer LRU chain,表示buffer cache的使用比較嚴重;我們要確保db_block_lru_statistics=false
- 對於cache buffer chains latch表示存在單個塊的buffer cache競爭。一個cache buffer chains latch管理著一些buffer cache的列表。如果在v$latch_children中存在該latch,則我們可以查詢:select * from x$bh where hladd=&child_latch_address;如果查詢的記錄數在3-10之間,表示說明該latch管理的buffer中有一個塊存在嚴重的競爭;在透過x$bh表中的Tch列(接觸的次數),就可以確定是那個buffer存在競爭了。因為,存在競爭的buffer塊,其Tch值肯定是很大的
- 我們也可以查詢v$latch_misses來檢視latch沒有申請到的情況select * from v$latch_misses where parent_name=&Latch_addr; 這個檢視中的WTR_SLP_COUNT表示等待latch而sleep的時間;SLEEP_COUNT表示等待而sleep的次數
導致latch競爭的幾個原因:
- CPU的高利用率 一個程式在得到latch後,由於系統的CPU資源很忙,它得不到CPU來進行處理,從而導致其它程式等待latch,我們可以透過os的資訊來檢視CPU的高利用率
- 希望所有的程式間歇的持有latch,但是如果一個程式持有latch過長,從而導致這個和諧被打破,導致受這個latch保護的在SGA中的link list過長。例如,在一個充滿碎片的shared pool中,標記free memory chunck的list就將很長,導致了latch的競爭。類似的還有hash chain在databuffer、library cache中等。 對於這種型別的latch競爭,我們可以調整_spin_count引數,來讓得不到latch的引數直接進入sleep狀態。當然,最好的辦法還是提高應用效率,減少等待latch的時間
- 如果程式申請latch的次數過多,也會產生latch的競爭。 比如在一個高commit的應用中,我們可能就會存在redo allocation latch的競爭了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7191998/viewspace-749612/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- latch free事件的整理事件
- Latch free等待事件(轉)事件
- Latch free等待事件三(轉)事件
- Latch free等待事件四(轉)事件
- Latch free等待事件二(轉)事件
- latch free 等待事件說明(轉)事件
- latch free等待事件事件
- Latch free等待事件三事件
- Latch free等待事件四事件
- Latch free等待事件二事件
- Latch free等待事件一事件
- latch free 中 cache buffer chain 的整理AI
- latch free 等待事件說明事件
- 【分享】latch free等待事件(一)事件
- latch free 等待事件的診斷語句事件
- 由最長SQL想到的Latch Free( Library Cache Pin/Lock)整理~~草稿SQL
- latch free(cache buffers chain)AI
- 10.2出現SQL Memory Manager latch型別的latch freeSQL型別
- Identify Which Latch is Associated with a "latch free" wait-413942.1IDEAI
- 轉_診斷latch:shared pool等待事件事件
- 分割槽解決LATCH FREE #98
- latch等待事件彙總事件
- latch 相關等待事件事件
- [20211229]再論19c latch free等待事件分析.txt事件
- oracle一次卡頓案例(六)-latch freeOracle
- Cache Buffer Chain Latch等待事件AI事件
- buffer cache與相關的latch等待事件事件
- [20170324]cpu 100%,latch free等待分析
- latch:library cache lock等待事件事件
- cache buffer lru chain latch等待事件AI事件
- freeswitch的event事件處理事件
- MySQL的 data_free,表碎片整理MySql
- ORACLE等待事件latch: cache buffers chainsOracle事件AI
- 【效能調整】等待事件(九) latch原理事件
- 等待事件_cache_buffers_chains_latch事件AI
- 等待事件_cache_buffers_lru_chain_latch事件AI
- 解決latch free問題的資料庫引數調整資料庫
- 12c設定RESULT_CACHE_MODE=MANUAL發生'Result Cache:RC Latch'型別的Latch Free等待型別