本篇文章給大家分享的是有關(guān)如何理解enq: TX - index contention等待的探討與測試,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一
一、今天在查看awr報告中,發(fā)現(xiàn)Top 5 Timed Foreground Events發(fā)現(xiàn)enq: HW - contention的等待事件; 二、enq: HW
當一個事務(wù)對一個索引塊做DML時,由于該索引塊沒有空閑空間導致索引塊分裂,這時其他事務(wù)正在向這個索引塊做DML時就會產(chǎn)生等待,直到這個索引塊分裂完成。 以下是發(fā)生索引分裂競爭的幾種場景:
11g之前,通常我們數(shù)據(jù)庫hang住了之后,我們會對數(shù)據(jù)庫做hang analyze來進行分析,在11g之后,我們可以通過一個新的視圖v$wait_chains來診斷數(shù)據(jù)庫hang和content
參考:http://www.killdb.com/2015/07/13/%E5%85%B3%E4%BA%8Eenq-tx-row-lock-contention%E7%9A%84%E6%B5%8B%E
enq: HW - contention 說明: 硬件隊列用于序列化段的高水位線以外的空間分配。 可以用手動分配范圍即可解決問題。 V$SESSION_WAIT,P2 / V$L
SQL> select name, parameter1, parameter2, parameter3 from v$event_name where name like '&even
執(zhí)行DML 期間,為防止對與DML 相關(guān)的對象進行修改,執(zhí)行DML 的進程必須對該表獲得TM 鎖。 P1 = name|mode P2 = object # P3 = table/partition
oracle為了管理Sequence使用了以下三種鎖:row cache lock :在調(diào)用Sequnece.nextval過程中.將數(shù)據(jù)字典信息進行物理修改時獲取.賦予NOCACHE屬性的Seque