Execution Plan

Türkçe karşılığı: Yürütme planıAlan: Veritabanları

Yürütme planı (Execution Plan) — Database optimizer'ın bir SQL sorgusunu hangi access path, join order ve operator'lerle çalıştıracağını gösteren fiziksel yürütme stratejisi.

Veri Tabanı Bağlamı

Index scan, full scan, nested loop, hash join ve sort maliyetleri cardinality tahminine dayanır. Actual rows ile estimated rows farkı plan hatasının önemli göstergesidir.

İşlem ve Depolama Sınırı

Explain plan gerçek runtime istatistiklerini her zaman göstermez; bind, adaptive davranış ve cache durumu yürütme sırasında farklılık yaratabilir.

İlişkili Veri Tabanı Kavramları

Tahmin Edilen Plan ile Gerçek Yürütme Aynı Veri Değildir

Optimizer planı bir maliyet modelinin sonucudur; özellikle cardinality tahmini yanlışsa doğru fiziksel operatörün seçilme olasılığı da düşer. Bu yüzden yalnız "index kullanmış mı?" sorusu çoğu performans incelemesi için yetersizdir. Join sırası, access path ve operator seçiminin yanında tahmini satır ile gerçek satır sayısı arasındaki sapma izlenmelidir.

Oracle örneğinde EXPLAIN PLAN ile plan tablosuna yazılan tahmin ile DBMS_XPLAN.DISPLAY_CURSOR üzerinden çalışan cursor ve runtime istatistiklerini incelemek aynı şey değildir. Bind değerleri, adaptive plan davranışı ve cache durumu yürütme bağlamını değiştirebilir. Oracle'ın DBMS_XPLAN/execution-plan belgeleri bu ayrımı doğrudan destekler: Oracle SQL Tuning Guide. İlgili kavram: Cardinality Estimation.