oracle latch_自譯文_(2)

wisdomone1發表於2010-04-04
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了,哈哈

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-631300/,如需轉載,請註明出處,否則將追究法律責任。

相關文章