Belirtiler
Aşağıdaki senaryoyu ele alalım:
- Parametreli skaler kullanıcı tanımlı işlev içeren bir koşul içeren bir sorgunuz var.
- Bu kullanıcı tanımlı işlevle aynı sonucu verebilecek birden çok giriş parametresi değeri kombinasyonu vardır.
- SQL ServerSQL Server, veritabanı uyumluluk modunun 120 olarak ayarlandığı Yeni Kardinalite Tahmin Aracı'nı kullanır.
Bu senaryoda, sorguyu çalıştırdığınızda, sorgu planında kullanıcı tanımlı işlevi içeren koşul için yanlış tahmin edilen satır sayısı nedeniyle düşük sorgu performansıyla karşılaşırsınız.
Çözüm
Bu sorun ilk olarak, SQL ServerSQL Server için aşağıdaki toplu güncelleştirmede düzeltildi:
SQL Server 2014 Service Pack 1 için Toplu Güncelleştirme 6
Bu toplu güncelleştirme paketini yükledikten sonra 4199 izleme bayrağını etkinleştirmeniz gerekir. Bunu yapmak için -T4199 başlangıç parametresini ekleyebilirsiniz. Veya belirli bir oturum için dbcc traceon(4199) deyimini kullanabilirsiniz.
SQL Server toplu güncelleştirmeleri hakkında
SQL Server için her yeni toplu güncelleştirme, önceki toplu güncelleştirmeye dahil edilen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. SQL Server için en son toplu güncelleştirmelere göz atın:
SQL Server 2014 için en son toplu güncelleştirme
Durum
Microsoft bunun, "Şunlar için geçerlidir" bölümünde listelenen Microsoft ürünlerinde sorun olduğunu doğrulamıştır.
Başvurular
Microsoft'un yazılım güncelleştirmelerini tanımlamak için kullandığı terminoloji hakkında bilgi edinin.