Öncelikle herkese merhabalar.

Bugün Oracle veritabanı kullanırken yaşanan performans sorunlarının tespitinde oldukça faydalı olan explain plan tool kullanımından bahsedeceğiz.

SQL sorguları yazdığımızda bu sorguların hangi adımlar izlediği, maliyetinin ( CPU kullanımı) ne kadar süre aldığı artık çok önem taşıyor. Çünkü hangi sektörde olursak olalım, süre artık çok çok önemli.

Oracle veritabanına hangi tool üzerinden erişiyor olursanız olun (plsql developer, toad, sql developer vs.)  hepsinde bu özelliği bulabilirsiniz.

Şimdi dilerseniz “Explain Plan nedir?”, biraz daha detaylı bakalım.

The EXPLAIN PLAN  Oracle Optimizer’ın seçtiği execution plan’larını bizlere gösterir.

Burada ilgili sql’in hangi adımlarla çalıştırıldığı bilgisini rahatlıkla görebiliriz.

Sql ise SELECT, UPDATE, INSERT, ve DELETE işlemlerini kapsar.

Çıktılar aşağıdaki gibidir:

  • Tablo sıralaması
  • Tabloya erişim metodu
  • Join metotları
  • Filtreleme ve sıralama işlemleri

Ayrıca; CPU kullanımı, süre gibi bilgileri de görme imkanı sağlar.

“Peki execution plan neye göre değişir?” diye sorabilirsiniz. Tabloya yeni kolon eklenmesi durumunda,  yeni index eklenirse ya da şema değişirse execution plan da değişir.

Aşağıda bir Explain Plan çıktısını görebilirsiniz.

Kısaca gördüğünüz bilgileri özetlemek gerekirse;

Name: Operasyon sırasında kullanılması öngörülen db objesidir.

Rows: Operasyona sağlanan tahmini satır sayısıdır.

Bytes: Operasyona sağlanan tahmini byte sayısıdır.

Cost: Tahmini CPU tüketimidir.

Time: Tahmini geçecek süredir.

Explain Plan doğru kullanıldığında, sql sorgularımızın performansını arttırmak için  büyük kolaylık sağlayan bir özellik. Burada dikkat edilmesi gereken bind değişken kullanımı. Eğer bind değişken kullanıyorsanız Explain Plan’in doğru çıktıyı vermeme durumu oluşabilir. Buna dikkat etmenizde fayda var.

Bugün kısaca “Explain Plan nedir?” ve “Neleri görmenizi sağlar?” onu anlatmaya çalıştık.

Başka bir yazıda görüşmek üzere,

Tolga Silivri