Latch和Lock的區別(轉)
Latch是Oracle提供的輕量級鎖資源,他用於快速,短時間的鎖定資源,防止多個併發程式同時修改訪問某個共享資源,他只工作在記憶體中, 我們可以不大準確的說,記憶體中資源的鎖叫latch,資料庫物件(表,索引等)的鎖叫Lock。比如資料快取中的某個塊要被讀取,我們會獲得這個塊的 latch,這個過程叫做pin,另外一個程式恰好要修改這個塊,他也要pin這個塊,此時他必須等待,當前一個程式釋放latch後才能pin住,然後 修改,如果多個程式同時請求的話,他們之間將出現競爭,沒有一個入隊機制,一旦前面程式釋放所定,後面的程式就蜂擁而上,沒有先來後到的概念,這個和 Lock是有本質區別的,這一切都發生的非常快,因為Latch的特點是快而短暫,當然這個只是大致過程,細節部分在後面討論 先來看下Latch和Lock的區別, 1. Latch是對記憶體資料結構提供互斥訪問的一種機制,而Lock是以不同的模式來套取共享資源物件,各個模式間存在著相容或排斥,從這點看出,Latch 的訪問,包括查詢也是互斥的,任何時候,只能有一個程式能pin住記憶體的某一塊,幸好這個過程是相當的短暫,否則系統效能將沒的保障,現在從9I開始,允 許多個程式同時查詢相同的記憶體塊,但效能並沒有想象中的好。 2. Latch只作用於記憶體中,他只能被當前例項訪問,而L ock作用於資料庫物件,在RAC體系中例項間允許Lock檢測與訪問 3. Latch是瞬間的佔用,釋放,Lock的釋放需要等到事務正確的結束,他佔用的時間長短由事務大小決定 4. Latch是非入隊的,而Lock是入隊的 5. Latch不存在死鎖,而Lock中存在(死鎖在Oracle中是非常少見的)
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/114037/viewspace-1035274/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【 latch和lock的區別 】
- latch和lock的區別
- Oracle中latch和lock的區別Oracle
- Latch 與 Lock 的區別
- snapshot 和 view,lock 和 latch 的區別View
- 【鎖】Latch、lock、 pin的區別
- Lock 和 synchronized的區別synchronized
- Oracle Latch & LockOracle
- spin_lock、spin_lock_irq、spin_lock_irqsave區別【轉】
- ORACLE LOCK,LATCH,PINOracle
- 【筆記】lock and latch筆記
- enqueue, latch的理解及區別ENQ
- 基礎才是重中之重~lock和monitor的區別
- synchronized與Lock的區別synchronized
- mutex,latch,lock,enqueue hash chains latch基礎概念MutexENQAI
- Lock、Synchronized鎖區別解析synchronized
- latch:library cache lock等待事件事件
- 【轉】mysql 和 redis的區別MySqlRedis
- HttpRequest 和HttpWebRequest的區別(轉)HTTPWeb
- 轉:SAN和NAS的區別
- editchanged 和 itemchanged 的區別(轉)
- JavaScript和Java的區別(轉)JavaScript
- 轉發和重定向的區別(轉)
- 【面試普通人VS高手系列】lock和synchronized區別面試synchronized
- 轉發和重定向的區別?
- frame和bounds的區別(轉載)
- (轉)ORACLE 中IN和EXISTS的區別Oracle
- synchronized與Lock的區別與使用詳解synchronized
- library cache lock和library cache pin區別總結
- InnoDB和MyISAM 區別(轉)
- 【轉】spin lock 和mutexMutex
- 共享池之六:shared pool latch/ library cache latch /lock pin 簡介
- (轉)編譯和連結的區別編譯
- malloc/free 和 new /delete 的區別 (轉)delete
- su和sudo的區別與使用(轉)
- 讀書筆記-高階owi與oracle效能調整-latch和lock筆記Oracle
- 轉發和重定向的過程和區別
- 【原創】說說你是如何理解Oracle資料庫中latch和enqueue lock的?Oracle資料庫ENQ