Oracle Explain Plan
Merhabalar,
Uzun bir aradan sonra yeni bir yazı paylaşmanın mutluluğu var içimde :)
Sizlere bu hafta öğrendiğim Oracle’da Explain Plan hakkında bildiklerimi aktaracağım.
Hepimiz Test veritabanında ufak tefek sorgular yazıyor ve bunları Live ortama deploy ediyoruz. Peki Test ve Live ortamda sorgunun performans durumu aynı oluyor mu? Tabiki hayır. Live ortamda veri miktarı, veri akışı durmadığı için Test ortamla kıyaslamak gerektiğinde yazdığımız sorgular daha yavaş çalışmaktadır.
Bu durumun tahmini olarak önüne geçebilmek için Oracle fonksiyonlarından Explain Plan’ı kullanabiliriz.
Peki “Explain Plan” Nedir?
Yazdığımız sorguların tahmini olarak performanslı olup olmadığı bilgisini tespit etmemizi sağlayan Oracle fonksiyonudur.
Oracle’da herhangi bir sorguyu geliştirme aracına ekleyip execute etmeden, “Explain Plan” butonu tıkladığımızda, sorgunun ne kadar sürede çalışacağını tahmini olarak bize göstermektedir.
“Explain Plan” fonksiyonu aşağıdaki geliştirme araçlarında bulunur :
· Toad,
· PlSql Developer,
· Sql Developer.
“Explain Plan” tablosunun açılması için klavyeye basılması gerekilen tuşlar şu şekildedir :
· Toad’da CTRL+E tuşları ile,
· PLSQL Developer’da F5 tuşu ile,
· Sql Developer’da F10 tuşu ile görüntülebilir.
“Explain Plan” tablosu içerisindekiler :
Name : Sorgu çalışırken kullanılması tahmin edilen veritabanı nesnesidir.
Rows/Cardinality : İşlemlerin her birinden çıkan tahmini satır sayısı bilgisidir.
Bytes : Sorgu çalıştıktan sonra tahmini kullanılacak byte boyutudur.
Cost : Sorgu çalıştıktan sonra tahmini kullanılacak CPU boyutudur.
Time : Sorgu çalıştıktan sonra tahmini geçecek süredir.
“Explain Plan” tablosu çıktısındaki detaylar aşağıdaki gibidir:
· Tablo sıralaması,
· Tabloya erişim metodu(Örneğin; Table Access Full vs.),
· Join metotları,
· Filtreleme ve sıralama işlemleri.
***Table Access Full : Tablodaki veriye, uygun bir index ile erişilmediğinde yazar.
*** “Table Access Full” özellikleri şunlardır :
· Veri çoksa kaçınılması gereken bir durumdur.
· Verinin az olduğu yerlerde kullanılması performanslı olabilir.
· Bu erişim tipinde tablonun tüm satırları okunur, sorguda filtre varsa koşula uymayan değerler çıkartılır.
· Cost, Response Time değerleri yüksektir.
Explain Plan’ı yorumlarken dikkat edilmesi gerekilen asıl kısım, veriye ulaşmak istediğiniz tabloya nasıl eriştiğinizdir. Sorguların performanslı bir şekilde çalışmasını sağlamak için index kullanırız. Bu index’lere göre sorguda düzenlemeler yapmak gerekir.
Oracle’da “Explain Plan” çalışmasını etkileyen faktörler bulunmaktadır. Bunlar ;
* Tablo verilerinde artış/güncellenmesi,
* Tabloya alan eklenmesi/çıkartılması,
* Tabloya yeni index eklenmesi ya da olan index’lerin güncellenmesi,
* Oracle veritabanı kurulum parametrelerinin güncellenmesi,
* Yazılan sorgu üzerinde güncelleme yapılması
istatistiklerin çoğunlukla değişmesine sebep olmaktadır.
“Explain Plan” hakkında aktaracaklarım bu kadardı. Bir başka yazıda görüşmek üzere…