本篇文章給大家分享的是有關如何理解enq: TX - index contention等待的探討與測試,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一
一、今天在查看awr報告中,發現Top 5 Timed Foreground Events發現enq: HW - contention的等待事件; 二、enq: HW
當一個事務對一個索引塊做DML時,由于該索引塊沒有空閑空間導致索引塊分裂,這時其他事務正在向這個索引塊做DML時就會產生等待,直到這個索引塊分裂完成。 以下是發生索引分裂競爭的幾種場景:
11g之前,通常我們數據庫hang住了之后,我們會對數據庫做hang analyze來進行分析,在11g之后,我們可以通過一個新的視圖v$wait_chains來診斷數據庫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
執行DML 期間,為防止對與DML 相關的對象進行修改,執行DML 的進程必須對該表獲得TM 鎖。 P1 = name|mode P2 = object # P3 = table/partition
oracle為了管理Sequence使用了以下三種鎖:row cache lock :在調用Sequnece.nextval過程中.將數據字典信息進行物理修改時獲取.賦予NOCACHE屬性的Seque