- SQL Trace ve TKPROF Nedir? SQL Trace Nedir?
SQL Trace, Oracle veritabanında çalışan SQL sorgularını ve bunların yürütme istatistiklerini izlemeye yarayan bir özelliktir. SQL işlemlerinin performansını değerlendirmek için kullanılan düşük seviyeli bir izleme aracıdır.
📌 SQL Trace ile elde edilen bilgiler:
Sorgunun çalıştırılma süresi
Kullanılan CPU zamanı
Okunan blok sayısı
Bekleme olayları
Bu bilgiler, performans darboğazlarını tespit etmek için kullanılır. Ancak, SQL Trace çıktısı ham veri içerdiğinden, okunması ve analiz edilmesi zordur. İşte burada TKPROF devreye girer.
TKPROF Nedir?
TKPROF (Trace Kernel Profiler), SQL Trace çıktısını anlamlı ve okunabilir hale getiren bir araçtır. TKPROF, sorgu istatistiklerini özetleyerek performans problemlerini tespit etmeyi kolaylaştırır.
✅ TKPROF’un sağladığı avantajlar:
Yavaş çalışan SQL’leri tespit eder
CPU ve I/O kullanımlarını analiz eder
Index kullanımı ve yürütme planlarını gösterir
PL/SQL bloklarının detaylarını inceler
PL/SQL mülakatlarında performans analizi yapabilir misin? sorusuna SQL Trace ve TKPROF’u anlatan bir yanıt verebilirsen, fark yaratabilirsin.
- SQL Trace Nasıl Aktif Edilir?
Oracle’da SQL Trace’i etkinleştirmek için birkaç yöntem vardır. En yaygın kullanılan yöntemlerden biri, ALTER SESSION komutudur.
ALTER SESSION SET sql_trace = TRUE;
Bu komut, geçerli oturumdaki tüm SQL sorgularının izlenmesini sağlar. İşlem tamamlandıktan sonra, trace dosyası UDUMP (User Dump) dizinine kaydedilir.
Bir oturuma özgü SQL Trace etkinleştirmek için:
EXEC DBMS_MONITOR.SESSION_TRACE_ENABLE(session_id => 123, waits => TRUE, binds => TRUE);
Eğer spesifik bir SQL ID için trace açmak istiyorsan:
EXEC DBMS_SQLTUNE.EXECUTE_TUNING_TASK(task_name => 'my_task');
📌 Dikkat: SQL Trace işlemi performansa yük getirebilir, bu yüzden üretim ortamında dikkatli kullanılmalıdır.
- TKPROF Kullanarak Performans Analizi
SQL Trace dosyasını oluşturduktan sonra, TKPROF ile analiz edebilirsin.
İlk olarak, Trace dosyasının yerini belirle:
SELECT value FROM v$diag_info WHERE name = 'Default Trace File';
Ardından, TKPROF’u çalıştır:
tkprof trace_dosyasi.trc cikti_dosyasi.prf EXPLAIN=username/password SORT=fchela
🔍 Parametre Açıklamaları:
EXPLAIN: Plan açıklaması almak için kullanılır.
SORT: Sorguları belirli kriterlere göre sıralar.
fchela: Fetch işlemlerine göre sıralar.
execpu: CPU kullanımına göre sıralar.
disk: Disk I/O’ya göre sıralar.
📌 Örnek TKPROF Çıktısı:
Bu analiz sonucunda, hangi işlemlerin fazla kaynak tükettiğini tespit edip optimizasyon yapabilirsin.
- SQL Performansını Artırmak İçin İpuçları
TKPROF çıktısına göre aşağıdaki optimizasyon tekniklerini uygulayabilirsin:
✔ Index Kullanımı: Eğer tablo taramaları fazla ise, uygun index eklenmeli.
✔ Bind Variables Kullanımı: Hard parse’ı azaltmak için bind değişkenleri kullanılmalı.
✔ Query Rewrite: Sorgular optimize edilmeli, gereksiz *SELECT ** kullanımı önlenmeli.
✔ Statistikler Güncellenmeli: ANALYZE veya DBMS_STATS.GATHER_TABLE_STATS komutları ile istatistikler güncel tutulmalı.
✔ Bekleme Olaylarını İnceleme: Eğer db file sequential read, log file sync gibi bekleme olayları varsa, disk veya log dosyalarının iyileştirilmesi gerekebilir.
Sonuç
SQL Trace ve TKPROF, Oracle’da SQL performans analizi yapmak için kritik araçlardır. Bir PL/SQL mülakatında performans optimizasyonu hakkında konuşurken, bu araçların nasıl kullanıldığını bilmek seni güçlü bir aday yapar.
🎯 Özetle:
✅ SQL Trace ile sorguları izleyebilirsin.
✅ TKPROF, bu sorguları analiz ederek anlamlı hale getirir.
✅ TKPROF çıktısına göre sorguları optimize edebilirsin.
Top comments (0)