Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Statistics ve Cardinality Estimation: Histogram, Density ve Yanlış Tahminin Bedeli
Optimizer satır sayısını statistics'ten tahmin eder: değer histogramda bir adımsa tahmin kusursuzdur, adım içindeyse ortalamadır, bilinmiyorsa density vector'e düşer. 1 milyon siparişlik Bookstore verisinde histogram okuma, otomatik güncelleme eşiğinin (31.623 değişiklik) deneyle doğrulanması, ascending key yüzünden 24 kat pahalı plan, birbirine bağlı kolonlarda CE model'leri ve CE feedback.
Plan Cache, Parameterization ve Parameter Sniffing: Belirtiler, Teşhis ve Çözümler
Parameter sniffing, cache'teki planın ilk gelen parametre değerine göre derlenip çarpık veride diğer değerlere uymamasıdır: aynı procedure müşteri 1 için bir sırada 7.709, diğerinde 612.850 logical read yaptı. Ad hoc/prepared plan'lar, simple ve forced parameterization, RECOMPILE ve OPTIMIZE FOR'un bedeli, 2022'nin PSP optimization'ı, 2025'in OPPO'su ve ORM parametre uzunluklarının plan cache'i şişirmesi.