Veritabanında çalıştırılmış sorguların tespiti

16 Kas by Ahmet Duruöz

Veritabanında çalıştırılmış sorguların tespiti

Oracle veritabanında çalıştırılmış sorguların tespiti için DBA_HIST_ACTIVE_SESS_HISTORY data dictionary görüntüsü kullanılabilir. Geçmişe yönelik bilgiler bulunmaktadır. Anlık çalışan sorgular için V$ACTIVE_SESSION_HISTORY görüntüsü sorgulanabilir. Gelen kayıtlar Active Session History (ASH) tablolarından gelmektedir. Bu yüzden çok geride çalışmış sorgular , bu görüntüde olmayacaktır. 

Örneğin 30 gün öncesindeki çalışmış sorguların tespiti için aşağıdaki gibi bir sorgu kullanılabilir.

SELECT
h.sample_time,
u.username,
h.program,
h.module,
s.sql_text
FROM
DBA_HIST_ACTIVE_SESS_HISTORY h,
DBA_USERS u,
DBA_HIST_SQLTEXT s
WHERE sample_time >= SYSDATE - 30
AND h.user_id=u.user_id
AND h.sql_id = s.sql_iD
ORDER BY h.sample_time

Yukarıdaki sorguda sample_time için belirli bir tarih aralığı da verilebilir.

SELECT
   h.sample_time,
   u.username,
   h.program,
   h.module,
   s.sql_text
FROM
   DBA_HIST_ACTIVE_SESS_HISTORY h,
   DBA_USERS u,
   DBA_HIST_SQLTEXT s
WHERE  sample_time between to_date('01/10/2018 00:00:00','DD/MM/YYYY HH24:MI:SS') and to_date('15/10/2018 00:00:00','DD/MM/YYYY HH24:MI:SS')
   AND h.user_id=u.user_id
   AND h.sql_id = s.sql_iD
ORDER BY h.sample_time

 

Loading

Bir yanıt yazın

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