BackPulse
SQL Server · SORGU OPTİMİZASYONU

SQL Server Parameter Sniffing sorununu çözme

Parameter sniffing, SQL Server'ın bir stored procedure'ü ilk çağıran parametre değerine göre plan üretip cache'lemesidir. O plan farklı veri dağılımına sahip diğer parametreler için kötü olabilir; aynı sorgu bazen hızlı, bazen çok yavaş çalışır.

Kendi sorgunuzu yapıştırın — bağlantı olmadan, saniyeler içinde teşhis alın.

Sorgu Analizcisini aç

Belirtiler

Kök nedenler

Çözüm adımları

1

Sorunu doğrula

Plan cache'i ve estimated/actual row farkını inceleyin. Belirli parametrelerde planın uygunsuz olduğunu teyit edin.

2

Hedefli çözüm seç

OPTION (RECOMPILE) her çağrıda taze plan üretir (CPU maliyeti var). OPTIMIZE FOR UNKNOWN ortalama bir plan üretir. OPTIMIZE FOR (@p = değer) tipik değere sabitler. Senaryoya göre seçin.

3

İstatistikleri güncel tut

Eski istatistikler sniffing'i ağırlaştırır. Düzenli istatistik güncellemesi tahminleri iyileştirir.

Sık sorulanlar

OPTION (RECOMPILE) her zaman güvenli mi?

İşlevsel olarak güvenlidir ama her çağrıda derleme CPU maliyeti getirir. Çok sık çağrılan sıcak sorgularda dikkatli kullanın.

Parameter sniffing'i tamamen kapatmalı mıyım?

Hayır. Sniffing çoğu zaman faydalıdır; yalnızca çarpık dağılımlı problemli sorgularda hedefli müdahale yapın.

Sorgunuzu ChatGPT'ye değil, senior DBA'ye sorun

Deterministik DBA checklist + execution plan analizi. Bağlantı yok, credential yok.

Ücretsiz analiz et