Belirtiler
Çok sayıda satır içeren bir tablo değişkenini doldurma ve ardından başka tablolarla birleştirme işlemleri yaparken, sorgu iyileştirici verimsiz bir sorgu planı seçebilir ve bu da sorgu performansının yavaşlamasına neden olabilir.
Çözüm
Bu düzeltmeyi uyguladıktan sonra, tablo değişkeninin yeterli sayıda satır değiştirildiğinde yeniden derlemeyi tetiklemesini sağlamak için izleme bayrağını 2453 açabilirsiniz. Bu, sorgu iyileştiricinin daha etkili bir plan seçmesine izin verebilir. Sorun ilk olarak SQL Server için aşağıdaki toplu güncelleştirmede veya/ve hizmet paketlerinde düzeltildi.
SQL Server 2014 için toplu güncelleştirme 3 /en-us/help/2984923
Her bir SQL Server toplu güncelleştirmesi, önceki toplu güncelleştirmeyle birlikte gelen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. En son SQL Server güncelleştirmelerini gözden geçirin:
Hizmet paketleri birikimli. Her yeni hizmet paketi, yeni düzeltmelerle birlikte önceki hizmet paketlerindeki düzeltmeleri de içerir. Önerimiz en son hizmet paketini ve hizmet paketine yönelik en son toplu güncelleştirmeyi uygulamaktır. En son hizmet paketini yüklemeden önce önceki hizmet paketini yüklemeniz gerekmez. En son hizmet paketi ve en son toplu güncelleştirme hakkında daha fazla bilgi bulmak için aşağıdaki makaledeki Tablo 1 ' i kullanın:
SQL Server ve bileşenlerinin sürümü, sürümü ve güncelleştirme düzeyini belirleme
Ek Bilgi
Bir toplu işlem veya yordamda bir tablo değişkeni kullandığınızda, sorgu derlenir ve tablo değişkeninin ilk boş durumu için iyileştirilmiştir. Bu tablo değişkeni çalışma zamanında çok sayıda satırla doldurulmuşsa, önceden derlenmiş sorgu planı artık en iyi olmayabilir. Örneğin, sorgu iç içe döngülü bir tablo değişkenine katılabiliyor, bu da küçük sayıda satır için daha verimli. Tablo değişkeninde milyonlarca satır varsa bu sorgu planı verimsiz olabilir. Karma birleşim bu koşul altında daha iyi bir seçim olabilir. Yeni bir sorgu planı edinmek için, yeniden derlenmesi gerekmektedir. Diğer Kullanıcı veya geçici tablolardan farklı olarak, bir tablo değişkeninde satır sayısı değişikliği sorgu yeniden derlemesini tetiklemez. Genellikle, kendi genel gideri maliyeti olan SEÇENEKLE (yeniden DERLEYEREK) geçici çözüm yapabilirsiniz. İzleme bayrağı 2453, sorgu yeniden derleme avantajın SEÇENEĞINI (yeniden DERLEYIN) sağlar. Bu izleme bayrağı iki ana açıdan SEÇENEKTEN (yeniden DERLEYEREK) farklıdır. (1) diğer tablolarla aynı satır sayısı eşiğini kullanır. Sorgunun her yürütme için, SEÇENEKTEN (yeniden derleme) farklı olarak derlenmesi gerekmez. Yeniden derleyerek, yalnızca satır sayısı değiştiğinde önceden tanımlanmış eşik değeri geçtiğinde tetiklenir. (2) SEÇENEĞI (yeniden DERLEYIN) sorguyu parametrelere göz atma Bu izleme bayrağı parametre gözatma gerektirmez.Not bu izleme bayrağı çalışma zamanında olmalıdır. Bu izleme bayrağını QUERYTRACEON ile kullanamazsınız. Bu izleme bayrağının, daha iyi bir sorgu iyileştirmesine kadar tasarruf verecek şekilde yeniden derleme
Durum
Microsoft bu sorunun "Uygulandığı öğe" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.