Minimizing System Contention (5- Session Waits İncelemesi)


 - V$SESSION_WAIT viewı, burada gösterildiği gibi belirli bir oturumun ne beklediği hakkında hızlı bir fikir edinmek için kullanabilirsiniz:
 
  SQL> select event, count(*) from v$session_wait
    group by event;
  
   EVENT             COUNT(*)
   -----------------------------------------------   ----------
   SQL*Net message from client         11
   Streams AQ: waiting for messages in the queue     1
   enq: TX - row lock contention         1
   …
   15 rows selected.
 - Sorgunun çıktısı, bir oturumun bir enqueue lock beklediğini, muhtemelen başka bir oturuma ait bir blocking lock dan dolayı olduğunu gösterir.
 Row lock contention yaşayan çok sayıda session görürseniz, blocking session ı bulmanız gerekir.

 - Belirli bir oturumu neyin yavaşlattığını bulmak için V$SESSION_WAIT görünümünü sorgulamanın bir başka yolu vardır:

  SQL> select event, state, seconds_in_wait siw
    from v$session_wait
    where sid = 81;
   EVENT           STATE    SIW
   ----------------------------------------  -----------  ------
   enq: TX - row lock contention     WAITING   976

 - Önceki sorgu, SID 81'le oturumun bir enqueue event için beklediğini gösterir; çünkü, güncellemek istediği satır (veya satırlar) başka bir hareketle kilitlidir.

  Not: Oracle Database 11g'de, oturum, bekleme nedeniyle birçok dahili zaman aşımı yaşansa bile, veritabanı her bir kaynak bekleme olayını
 yalnızca bir bekleme sayar. Örneğin, 15 saniye boyunca bir enqueue beklemesi, 5 farklı 3 saniyelik uzun bekleme
 çağrısını içerebilir; veritabanı bunları sadece tek bir enqueue beklemesi olarak değerlendirir.

 Nasıl Çalışır:
 - Yukarıdaki bölümünde gösterilen ilk sorgu, hangi bekleme olaylarının kullanıcı oturumlarını yavaşlattığını bulmak için kolay bir yol sunar.
 Bir SID belirtmeden sorgu gönderdiğinizde, veritabanındaki tüm oturumların geçerli ve son bekleyişlerini görüntüler.
 Örneğin, veritabanında bir kilitleme durumu ile karşılaşırsanız, toplam arama bekleme sayısının düşmekte olup olmadığını görmek için periyodik
 olarak sorgu yayınlayabilirsiniz. bekletme sayısı arttıkça, engellenen kilit nedeniyle daha fazla oturumda yavaşlama yaşanıyor demektir.
 - V$SESSION_WAIT viewı, her oturum için geçerli veya son bekleyişi gösterir. Bu görünümdeki STATE sütunu, bir oturumun şu anda beklediğini size gösterir.
 STATE sütununun olası değerleri şunlardır:

  WAITING    : Oturum şu an için bir kaynak bekliyor.
  WAITED UNKNOWN TIME : Son bekleme süresi bilinmiyor (bu değer yalnızca TIMED_STATISTICS parametresini false olarak ayarladığınızda gösterilir).
  WAITED SHORT TIME : En son bekleme, yüz saniyeden daha kısa sürdü.
  WAITED KNOWN TIME : WAIT_TIME sütunu son bekleme süresini gösterir.
 
 - Sorgunun, bu oturumun ne kadar süre beklediğini öğrenmek için seconds_in_wait sütununu kullandığını unutmayın.
 Oracle bu sütunu bekleme süresinin mikrosaniye cinsinden bekletildiğini gösteren wait_time_micro sütunu lehine reddetti.
 Her iki sütun da beklenen süreyi gösterir. Oturum şu anda beklemiyorsa, wait_time_micro sütununda son bekleme süresi gösterilir.

Constraint Disable-Enable

Disable Constraint BEGIN   FOR c IN   (SELECT c.owner, c.table_name, c.constraint_name    FROM user_constraints c, user_tables t    WHERE...