Symptomer
Anta at du bruker en sqlncli11.dll ODBC-driveren for Microsoft SQL Server 2012 for access eller SQL Server-2014 i et program. Når du bruker Servermarkør- og SQLFetch/ SQLGetData -funksjonen til å få tilgang til noen store binære object (BLOB) data i SQL Server, en ytelsesproblemet oppstår spesielt for store datatyper som varbinary (maks.) eller varchar (maks.).
Årsak
Dette er et problem for implementering av SQLFetch/ SQLGetData fungerer i SQL Server 2012 ODBC-driveren. Når spørringen bruker en hvilken som helst server markører, ODBC-driveren starter sp_cursorfetch under implementeringen av SQLFetch , og serveren sender alle BLOB til klienten. Deretter, når SQLGetData kjøres, sp_cursor gir alle BLOB på nytt. Dette påvirker mye ytelse for store datatyper som varbinary (maks.) eller varchar (maks.).
Oppløsning
Informasjon om kumulativ oppdatering
Ny implementering aktiverer sp_cursoroption for å få TEXTPTR_ONLY før sp_cursorfetch, og deretter aktiverer du sp_cursoroption for å sette den tilbake til TEXTDATA før sp_cursor. Dette kan forbedre ytelsen.
Problemet ble først løst i den følgende kumulative oppdateringen av SQL Server.
Hver nye kumulative oppdateringen for SQL Server inneholder alle hurtigreparasjonene og alle sikkerhetsreparasjoner som fulgte med den forrige kumulative oppdateringen. Vi anbefaler at du laster ned og installerer de nyeste kumulative oppdateringene for SQL Server:
Status
Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen "Gjelder for".