Oracle中row lock contention的效能故障

來源:互聯網
上載者:User

這是一套Windows RAC的環境,也是之前處理  解決一則row cache lock引起的效能故障 那套環境。下面記錄一下處理的經過:

1 對這一個小時進行AWR的收集和分析,首先,從報告頭中看到DB Time達到近500分鐘,(DB Time)/Elapsed=8,這個比值偏高:

2 再看TOP 5事件:

看到排在第一位的是enq: TX – row lock contention事件,也就是說系統中在這一個小時裡產生了較為嚴重的行級鎖等待事件。

Top 5 Timed Events

通常,產生enq: TX – row lock contention事件的原因有以下幾種可能:

■不同的session更新或刪除同一條記錄;

■唯一索引有重複索引;

■位元影像索引同時被更新或同時並發的向位元影像索引欄位上插入相同欄位值;

■並發的對同一個資料區塊上的資料進行update操作;

■等待索引塊完成分裂;

同時,從段的統計資訊章節中,也看到下面的資訊:

■% of Capture shows % of row lock waits for each top segment compared

■with total row lock waits for all segments captured by the Snapshot

看到row lock waits發生在一個索引上。

3 那麼,究竟是什麼操作導致了這個enq: TX – row lock contention等待事件呢? 查看系統中,當前有哪些會話產生了enq: TX – row lock contention等待事件?

view sourceprint?

01 SQL> select event,sid,p1,p2,p3 from v$session_wait where event='enq: TX - row lock contention';

02

03 EVENT                                                                   SID         P1         P2         P3

04 ---------------------------------------------------------------- ---------- ---------- ---------- ----------

05 enq: TX - row lock contention                                           224 1415053316    1441815     144197

06 enq: TX - row lock contention                                           238 1415053316    1441815     144197

07 enq: TX - row lock contention                                           247 1415053316    1441815     144197

08 enq: TX - row lock contention                                           248 1415053316    1441815     144197

09 enq: TX - row lock contention                                           253 1415053316    1441815     144197

10 SQL>

看到SID為224,238,247,248,253的會話產生enq: TX – row lock contention等待事件。

4 查看系統中的當前會話,是在哪個對象上產生了產生了enq: TX – row lock contention等待事件?

view sourceprint?

01 SQL> select ROW_WAIT_OBJ#,ROW_WAIT_FILE#,ROW_WAIT_BLOCK#,ROW_WAIT_ROW# from v$session where event='enq: TX - row lock contention';

02

03 ROW_WAIT_OBJ# ROW_WAIT_FILE# ROW_WAIT_BLOCK# ROW_WAIT_ROW#

04 ------------- -------------- --------------- -------------

05        369195              0               0             0

06        369195              0               0             0

07        369195              0               0             0

08        369195              0               0             0

09        369195              0               0             0

10        369195              0               0             0

11

12 6 rows selected

13 SQL>

5 那麼這個資料庫物件為369195的對象究竟是什麼呢?

view sourceprint?

01 SQL> select object_name,object_id from dba_objects where object_id=369195;

02

03 OBJECT_NAME                          OBJECT_ID

04 ----------------------------------- ----------

05 BIND_PROCESS_LOG_REFNO                  369195

06 SQL> select OWNER,OBJECT_NAME,OBJECT_ID,DATA_OBJECT_ID, OBJECT_TYPE from dba_objects where object_name='BIND_PROCESS_LOG_REFNO';

更多精彩內容:http://www.bianceng.cn/database/Oracle/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.