الأعراض
افترض انك تستخدم برنامج تشغيل ODBC sqlncli11 للوصول إلى Microsoft SQL Server 2012 أو SQL Server 2014 في تطبيق. عند استخدام مؤشر الخادم والدالة سقلفيتش/ سقلجيتداتا للوصول إلى بعض البيانات الثنائية الكبيرة الحجم (BLOB) في SQL server ، تحدث مشكله الأداء بشكل خاص لأنواع البيانات الكبيرة مثل varbinary (max) أو varchar (الحد الأقصى).
السبب
هذه مشكله تصميم لتنفيذ الدالة سقلفيتش/ سقلجيتداتا في برنامج تشغيل SQL server 2012 ODBC. عندما يستخدم الاستعلام أيا من مؤشرات الخادم ، يقوم برنامج تشغيل ODBC باستدعاء sp_cursorfetch اثناء تنفيذ سقلفيتش ، ويرسل الخادم كل الكائن BLOB إلى العميل. بعد ذلك ، عند تنفيذ سقلجيتداتا ، سيقوم الsp_cursor بإحضار كل النقطتين مره أخرى. يؤثر ذلك بشكل كبير علي أداء أنواع البيانات الكبيرة مثل varbinary (max) أو varchar (max).
الحل
معلومات التحديث التراكمي
يقوم التطبيق الجديد باستدعاء sp_cursoroption للحصول علي TEXTPTR_ONLY قبل الsp_cursorfetch، ثم يستدعي sp_cursoroption لأعاده إلى التيكستداتا قبل الsp_cursor. يمكن ان يؤدي ذلك إلى تحسين الأداء. تم تصحيح المشكلة أولا في التحديث التراكمي التالي ل SQL Server.
يحتوي كل تحديث تراكمي جديد ل SQL Server علي كل الإصلاحات العاجلة وكل تصحيحات الأمان التي تم تضمينها في التحديث التراكمي السابق. من المستحسن تنزيل أحدث التحديثات التراكمية ل SQL Server وتثبيته:
الحالة
أقرت Microsoft أن هذه المشكلة تحدث في منتجات Microsoft المسردة في المقطع "تنطبق على".