Minimizing System Contention ( 18- Recent Wait Events )


18- Recent Wait Events

- En yaygın bekleme olayları ve SQL ifadeleri, veritabanı nesneleri ve bu beklemelerden sorumlu olan kullanıcılar hakkında bilgi almak için V$ACTIVE_SESSION_HISTORY viewini sorgulayın. Aşağıda, kullanabileceğiniz bazı yararlı sorguları bulabilirsiniz.

 Son 15 dakika içinde oluşan en önemli bekleme olaylarını bulmak için aşağıdaki sorguyu çalıştırın:

    SQL> select event,
     sum(wait_time +
     time_waited) total_wait_time
     from v$active_session_history
     where sample_time between
     sysdate - 30/2880 and sysdate
     group by event
     order by total_wait_time desc;




 Kullanıcılarınızdan hangisinin son 15 dakika içinde en çok beklediğini öğrenmek için aşağıdaki sorguyu çalıştırın:

    SQL> select s.sid, s.username,
     sum(a.wait_time +
     a.time_waited) total_wait_time
     from v$active_session_history a,
     v$session s
     where a.sample_time between sysdate - 30/2880 and sysdate
     and a.session_id=s.sid
     group by s.sid, s.username
     order by total_wait_time desc;
 

En yüksek beklemeleri olan nesneleri bulmak için aşağıdaki sorguyu çalıştırın:

    SQL>select a.current_obj#, d.object_name, d.object_type, a.event,
     sum(a.wait_time +
     a.time_waited) total_wait_time
     from v$active_session_history a,
     dba_objects d
     where a.sample_time between sysdate - 30/2880 and sysdate
     and a.current_obj# = d.object_id
     group by a.current_obj#, d.object_name, d.object_type, a.event
     order by total_wait_time desc;
    
   Aşağıdaki sorgu ile son 15 dakika içinde en çok bekleyen SQL deyimlerini belirleyebilirsiniz:

    SQL> select a.user_id,u.username,s.sql_text,
     sum(a.wait_time + a.time_waited) total_wait_time
     from v$active_session_history a,
     v$sqlarea s,
     dba_users u
     where a.sample_time between sysdate – 30/2880 and sysdate
     and a.sql_id = s.sql_id
     and a.user_id = u.user_id
     group by a.user_id,s.sql_text, u.username;
    
  Nasıl Çalışır:

  - Yukarıdaki bölüm,son birkaç dakika içinde en çok bekleme olayına neden olan veya kimin beklediğini tam olarak öğrenmek için V$ACTIVE_SESSION_HISTORY viewine V$SESSION, V$SQLAREA, DBA_USERS ve DBA_OBJECTS gibi diğer viewlerle nasıl joinleneceğini gösterir.

Bu bilgiler "canlı" veritabanı performansı sorunlarını gidermek için son derece yararlıdır.

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...