Belirtiler
Bir uygulamada Microsoft SQL Server 2012 veya SQL Server 2014 erişmek için bir sqlncli11. dll ODBC sürücüsü kullandığınızı varsayalım. SQL Server 'da bazı ikili büyük nesne (BLOB) verilerine erişmek için sunucu imleci ve SQLFetch/ SQLGetData işlevini kullandığınızda, özellikle varbinary (max) veya varchar gibi büyük veri türlerinde bir performans sorunu oluşuyor.
Neden
Bu, SQL Server 2012 ODBC sürücüsündeki SQLFetch/ SQLGetData işlevinin uygulanması için bir tasarım sorunudur. Sorgu herhangi bir sunucu imleci kullandığında, ODBC sürücüsü SQLFetch uygulaması sırasında sp_cursorfetch çağırılır ve sunucu tüm blobunu istemciye gönderir. Ardından, SQLGetData işlemi yürütüldüğünde sp_cursor tüm blob 'u yeniden getirir. Bu, varbinary (max) veya varchar (max) gibi büyük veri türlerinin performansını önemli ölçüde etkiler.
Çözüm
Toplu güncelleştirme bilgileri
Yeni uygulama, sp_cursorfetchönce textptr_only almak için sp_cursoroption çağırır ve ardından sp_cursorönce metin metnine geri döndürmek için sp_cursoroption çağırır. Bu performansı iyileştirebilir. Sorun ilk olarak SQL Server 'ın aşağıdaki toplu güncelleştirmesinde giderilmiştir.
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 indirip yüklemenizi öneririz:
Durum
Microsoft bu sorunun "Uygulandığı öğe" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.