enq: TX – index contention bekleme olayı

12 Kas by Ahmet Duruöz

enq: TX – index contention bekleme olayı

“enq: TX – index contention” bekleme olayı genellikle uygulama, eşzamanlı olarak çok sayıda INSERT ve DELETE gerçekleştirdiğinde meydana gelir.

Beklemenin nedeni, dizine yeni bir satır eklerken dizin bloğu bölünmeleridir. Blok ayırma işlemini gerçekleştiren işlemler , işlemlerini tamamlayana kadar mod 4’te TX kilidini beklemek zorunda kalacaktır.

Soruna sebep olan nesnelerin tespiti için aşağıdaki sorguyu kullanabilirsiniz.

SELECT DO.OBJECT_NAME, DO.OBJECT_TYPE, ASH.EVENT, SUM (ASH.WAIT_TIME + ASH.TIME_WAITED) TTL_WAIT_TIME FROM V$ACTIVE_SESSION_HISTORY ASH, DBA_OBJECTS DO WHERE ASH.SAMPLE_TIME BETWEEN SYSDATE - 60 / 2880 AND SYSDATE AND ASH.CURRENT_OBJ# = DO.OBJECT_ID AND ASH.EVENT LIKE '%enq: TX - index contention%' GROUP BY DO.OBJECT_NAME, DO.OBJECT_TYPE, ASH.EVENT ORDER BY 4;

Sorunun çözümü için yukarıdaki sorgu ile tespit edilen indekslerin rebuild ya da shrink işlemine tabi tutulması gerekmektedir.

Aşağıdaki gibi bir indeks shrink yapılabilir.

SQL> alter index <SCHEMA>.<INDEX_NAME> shrink space COMPACT; 
SQL> alter index <SCHEMA>.<INDEX_NAME> shrink space;

 

Aşağıdaki gibi bir indeks online olarak rebuild yapılabilir.

SQL> alter index <SCHEMA>.<INDEX_NAME> rebuild online;

 

Loading

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir