Belirtiler
Microsoft SQL ServerSQL Server 2017 veya 2019'un yüklü olduğunu ve bunun varsayılan Kardinalite Tahmini (CE) ile çalıştığını varsayalım. Sütun1 sütununda filtre koşulu olan bir sorguyu yürütürsünüz. Sorgu yüklemlerinin kendine özgü UPPER, LOWER veya RTRIM vardır. Sütun1, optimize edici tarafından kullanılacak istatistiklere sahiptir. Bu senaryoda, hatalı kardinalite tahminleri ve SQL Server verimsiz bir plan kullandığını gözlemleyebilirsiniz. Aşağıda koşulları olan bazı sorgular verilmiştir:
SELECT person_id FROM Person WHERE (email LIKE UPPER(N'@live.com%'))
SELECT person_id FROM Person WHERE (email = UPPER(N'msft@live.com'))
Durum
Microsoft bunun, "Şunlar için geçerlidir" bölümünde listelenen Microsoft ürünlerinde sorun olduğunu doğrulamıştır.
Çözüm
Bu sorun, SQL ServerSQL Server için aşağıdaki toplu güncelleştirmelerde düzeltildi:
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 2019 için en son toplu güncelleştirme
- En son toplu güncelleştirme SQL ServerSQL Server 2017
Notlar Bu düzeltmenin etkili olması için aşağıdakilerden biri gerekir:
- QUERY_OPTIMIZER_HOTFIXES veritabanı kapsamlı yapılandırma AÇIK olarak ayarlandı
- ENABLE_QUERY_OPTIMIZER_HOTFIXES KULLANMA İPUCUNU kullanma
- İzleme Bayrağını Etkinleştir 4199
Başvurular
Microsoft'un yazılım güncelleştirmelerini tanımlamak için kullandığı terminoloji hakkında bilgi edinin.