Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Execution Plan Okumak 1: Estimated vs Actual Plan, Operator'ler ve Join Algoritmaları
Execution plan sağdan sola, içten dışa okunur; ilk bakılacak şey cost yüzdesi değil, tahmini ve gerçek satır sayısı ile her operator'ün kaç kez çalıştığıdır. EF Core Include sorgusunun actual plan'ında cost yüzdesinin yanılttığı yer, seek/scan/lookup, nested loops, merge ve hash join'in aynı sorguda ölçülen maliyetleri, stream ve hash aggregate ve iki index'le 2.549'dan 689 logical read'e iniş.
Execution Plan Okumak 2: Memory Grant, Spill, Parallelism ve Implicit Conversion Uyarıları
Plan uyarıları tahminin bedelini gösterir: küçük tahmin memory grant'i yetersiz bırakıp tempdb'ye spill ettirir, düşük cost threshold küçük sorguları 10 thread'e dağıtır, nvarchar parameter varchar kolonda 3 page'lik aramayı 3.117 page'e çıkarır. Memory grant feedback, exchange operator'leri, CX wait'leri, 2025'te varsayılan açık DOP feedback, EF Core ve Dapper ile implicit conversion, batch mode ve adaptive join.