Bir session için 10046 trace aç/kapat ve TKPROF ile özetle
OraclePerformansKomut
-- 1) Hedef session'i ve trace dosyasini bul:
SELECT s.sid, s.serial#, s.username, s.module, p.tracefile
FROM v$session s
JOIN v$process p ON p.addr = s.paddr
WHERE s.username = 'MUSTERI_APP';
-- 2) Trace ac (waits + binds = level 12 karsiligi):
BEGIN
DBMS_MONITOR.SESSION_TRACE_ENABLE(
session_id => <sid>,
serial_num => <serial#>,
waits => TRUE,
binds => TRUE,
plan_stat => 'ALL_EXECUTIONS');
END;
/
-- Dogrula: SELECT sql_trace, sql_trace_waits, sql_trace_binds FROM v$session WHERE sid = <sid>;
-- 3) Sorunlu islem bitince kapat:
EXEC DBMS_MONITOR.SESSION_TRACE_DISABLE(session_id => <sid>, serial_num => <serial#>);
-- Alternatifler:
-- Kendi session'in: ALTER SESSION SET EVENTS '10046 trace name context forever, level 12';
-- Tek SQL_ID, tum session'lar: ALTER SYSTEM SET EVENTS 'sql_trace[SQL: <sql_id>] wait=true, bind=true';
-- kapat: ALTER SYSTEM SET EVENTS 'sql_trace[SQL: <sql_id>] off';
-- Connection pool icin: DBMS_MONITOR.CLIENT_ID_TRACE_ENABLE / SERV_MOD_ACT_TRACE_ENABLE
-- 4) OS'te TKPROF ile ozetle (en pahali SQL basta):
-- $ tkprof /u01/app/oracle/diag/rdbms/orcl/ORCL/trace/ORCL_ora_12345.trc /tmp/ora_12345.prf \
-- sys=no sort=exeela,fchela,prsela waits=yes aggregate=yesNe yapar?
Extended SQL trace (10046), session'ın çalıştırdığı her SQL için parse/execute/fetch sürelerini, wait event'leri ve bind değerlerini trace dosyasına yazar; TKPROF bunu SQL bazında toplanmış okunabilir rapora çevirir.
Ne zaman kullanılır?
AWR/ASH'ın yetmediği, tek bir kullanıcı işleminin uçtan uca nerede vakit harcadığını kanıtlamak gerektiğinde; uygulama ile DB arasındaki round-trip (SQL*Net) sorunlarında.
Dikkat
Lisans gerektirmez. Trace dosyası hızla büyür ve hedef session'a ek yük bindirir; kısa tut ve mutlaka kapat (DBA_ENABLED_TRACES ile açık kalanları kontrol et). binds=TRUE hassas veriyi (kimlik no, kart vb.) trace dosyasına yazar. ALTER SESSION SET EVENTS için ALTER SESSION yetkisi gerekir (yoksa ORA-01031). TKPROF varsayılan olarak bind değerlerini göstermez; ham .trc dosyasını sakla.
İlgili
- AWR snapshot al ve iki snapshot arası AWR raporu üret
- İki dönemi karşılaştıran AWR diff (compare period) raporu
- ASH ile anlık/son dakikaların top wait event ve top SQL analizi
- ADDM analizini çalıştır ve raporunu al
- SQL Monitor raporu al (çalışan veya biten uzun SQL)
- Gerçek execution plan'ı satır istatistikleriyle göster (ALLSTATS LAST)