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