KB3107397 - SQL Server'de artık koşul itme içeren sorgu yürütme planları için geliştirilmiş tanılama

Uygulandığı Öğe
SQL Server 2012 Enterprise SQL Server 2012 Web SQL Server 2012 Developer SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use)

Belirtiler

Microsoft SQL Server'daki bazı sorgu yürütme planları, bir tablonun veya dizin tarama/aralık işleminin üstündeki bir filtreyi değerlendirme deseni içerir. Filtre koşulunun bazı bölümleri bir dizin anahtarıyla eşleşebilir ve bu nedenle bir dizin araması veya aralık taraması çalıştırmak için kullanılabilir. Yüklemin geri kalan kısımları "artık" olarak bilinir ve tarama veya aralık işlemiyle her satır çıktısı için değerlendirilmelidir. Bu bir filtre işlecine karşılık gelir. Ancak, performansı artırmak SQL Server böyle bir filtreyi tablo erişim işlecinin kendisine gönderebilir.

Bu yaklaşım genel olarak performansı geliştirse de, bazı koşullarda (örneğin, parametre duyarlılığıyla ilgili yanlış bir kardinalite tahmini durumunda), alttan tarama filtresi beklenenden daha fazla sayıda satırı işliyor olabilir. Gerçek bir yürütme planı kullanırken sorgu performansı sorunlarını giderme işlemi sırasında bu durum gizlenebilir, çünkü döndürülen gerçek satır sayısı bir tablodan veya dizinden taranan gerçek satır sayısına değil, artık koşul uygulandıktan sonraki satır sayısına karşılık gelir.

Çözüm

Belirtiler bölümünde açıklanan senaryoya yönelik tanılamayı geliştirmek için SQL Server 2012 Service Pack 3 (SP3) ve SQL Server 2014 SP2, Okunan Gerçek Satırlar adlı yeni bir gösteri planı XML özniteliği sunar. Bu öznitelik, artık koşul uygulanmadan önce operatör tarafından kaç satırın okunduğu hakkında bilgi sağlar.

Bu işlevsellik ilk olarak aşağıdaki SQL Server Hizmet Paketlerinde kullanıma sunulmuştur. 

SQL Server 2012 Service Pack 3 (SP3) hakkında daha fazla bilgi için SQL Server 2012 Service Pack 3'te düzeltilen hatalara bakın.

Service Pack 2 for SQL ServerSQL Server for SQL ServerSQL Server 2014
        
         SQL ServerSQL Server 2016 Service Pack 1 (SP1) 

SQL Server Hizmet paketleri hakkında

Hizmet paketleri birikimlidir. Her yeni hizmet paketi, yeni düzeltmelerle birlikte önceki hizmet paketlerindeki düzeltmeleri de içerir. Önerimiz, en son hizmet paketini ve bu hizmet paketine yönelik en son toplu güncelleştirmeyi uygulamanızdır. En son hizmet paketini yüklemeden önce önceki bir hizmet paketini yüklemenize gerek yoktur. En son hizmet paketi ve en son toplu güncelleştirme hakkında daha fazla bilgi bulmak için aşağıdaki makalede yer alan Tablo 1'i kullanın.

SQL Server ve bileşenlerinin sürüm, sürüm ve güncelleştirme düzeyini belirleme