İndeksler ve performans
Execution plan okumak
Tahminle gerçek satır sayısını karşılaştır.
Kavramı anlayalım
Estimated plan sorguyu çalıştırmadan tahmin edilen işlemleri gösterir. Actual plan yürütmenin ölçümlerini ekler; “actual” olması bütün maliyet yüzdelerini gerçek süreye dönüştürmez. SQL Server planındaki cost yüzdeleri model tahminidir. Sorguyu çalıştırırken veri değişiklikleri ve kaynak tüketimi gerçekten gerçekleşebilir.
Önce actual/estimated rows farkına, spill uyarılarına, sort, lookup ve join noktalarına bak. Planı tek ikon üzerinden yargılama. Çok satır taşınıyor ama az sonuç dönüyorsa filtre ve grain’i incele. SSMS’de Ctrl+M ile actual plan aç; SELECT sorgusunu çalıştır ve Execution Plan sekmesini kontrol et. Bu küçük veri performans benchmark’ı değildir; gerçek iş yükü ayrı ölçülür.
Ölçüme dayalı optimizasyon yapmak için.
Plan cost yüzdesini gerçek süre yüzdesi sanmak.
Aynı konu. Üç farklı derinlik.
SELECT ProductName FROM lab.Product WHERE ProductId = 1;Basit anahtar sorgusunun planını aç.
Bu sayfa SQL çalıştırmaz. Örnekleri indirilebilir SqlStudioLab veritabanında, SSMS’de uygula. Geçici tablo örneklerini yeniden çalıştırırken yalnız ilgili #tabloyu temizle. VIEW, procedure ve function örnekleri lab’da kalıcı nesne oluşturur; üretim bağlantısı kullanma.
Önce kendin dene.
Ürünleri fiyat sırasına koyan sorgunun actual planını incele.
Çözümü ve açıklamasını göster
SELECT ProductId, ProductName, Price FROM lab.Product ORDER BY Price DESC, ProductId;Sort olup olmadığını mevcut indekslerle birlikte değerlendir. Plan burada tarayıcıda yürütülmez.