Oracle Latch

Latch在數據庫層裏面業務層面是看不到的,不像鎖是可以感知到的,比如一個會話被誰鎖定了被誰阻塞住了。

�LOCK
– enqueue:隊列,其實就是鎖,也就是業務層面的阻塞。enqueue實際上就是隊列,要求進程排隊使用資源的會話排隊
–latch

 

Latch的目的

�保證資源的串行訪問:
– 保護SGA的資源訪問
– 保護內存的分配
�保證執行的串行化:
– 保護關鍵資源的串行執行
– 防止內存結構損壞

Latch是保護數據庫本身的內存結構,不是業務層面的保護

 

Latch V.S. enqueue

Latch不具有隊列性,是大家爭先恐後的去申請資源,混亂的。enqueue是隊列性的,只能等到資源釋放了纔可以拿到資源,如果沒有釋放那麼只能等着,等釋放之後才能拿到鎖。

 

 

Latch在哪裏?---SGA

資源的請求和分配
�共享池
– sql 解析,sql重用....
�數據緩衝池
– 數據訪問,數據寫入磁盤,數據讀入內存...
– 修改數據塊
– 數據段擴展

Latch不在PGA裏面,PGA不是共享的資源。SGA主要分爲兩塊

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章