[Oracle] 淺談Lock與Latch
首先談談它們的共同點吧:它們本質(zhì)上都是一種對資源的獨占鎖定,都是由并發(fā)引起(如果數(shù)據(jù)庫只有一個session,就談不上鎖定)。
接著著重談談它們的不同點:
首先,它們的目的不一樣,enqueue (即Lock,Oracle官方文檔混合使用這兩個名詞,在等待事件里,可以看到大量的enqueue,其實就是lock)是為了解決業(yè)務層面的數(shù)據(jù)爭用,而latch是為了解決內(nèi)存資源的爭用。
其次,它們的運行方式不一樣,enqueue采用排隊方式,先到先得,而latch的競爭近乎無序,以一種隨機的方式,先到不一定先得,得靠搶,而且它還以一種時間片輪訓的方式,不會一直霸占,即時還沒運行完,時間片一到也。
第三,會話持有的時長不一樣,enqueue根據(jù)業(yè)務情況,可能會持有較長時間,而latch通常非常短。第四,引起的原因不一樣,enqueue太多通常是業(yè)務設計的問題,而latch過多,一般是數(shù)據(jù)庫層面的問題(如未使用綁定變量、表或索引熱塊等)。
相關文章
Oracle通過正則表達式分割字符串 REGEXP_SUBSTR的代碼詳解
這篇文章主要介紹了Oracle通過正則表達式分割字符串 REGEXP_SUBSTR的相關知識,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-05-05Oracle 子程序參數(shù)模式,IN,OUT,NOCOPY
Oracle 子程序參數(shù)模式主要有IN,OUT,NOCOPY,IN和OUT可以組合,OUT和NOCOPY也可以組合使用.2009-10-10ORA-00349|激活 ADG 備庫時遇到的問題及處理方法
這篇文章主要介紹了ORA-00349|激活 ADG 備庫時遇到的問題及處理方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03