Simptomi
Pretpostavimo da koristite upravljački program sučelja sqlncli11.dll ODBC za pristup programu Microsoft SQL Server 2012 ili SQL Server 2014 u aplikaciji. Kada koristite pokazivač poslužitelja i funkciju SQLFetch/ SQLGetData za pristup nekim binarnim velikim objektima (BLOB) podacima u sustavu SQL Server, dolazi do problema s performansama, posebice za velike vrste podataka kao što su varbinary (max) ili varchar (max).
Uzrok
Ovo je problem dizajna za implementaciju funkcije SQLFetch/ SQLGetData u ODBC upravljačkom programu za SQL Server 2012. Kada upit koristi bilo koji kursor poslužitelja, upravljački program ODBC poziva sp_cursorfetch tijekom implementacije SQLFetch, a poslužitelj šalje sve BLOB-ove klijentu. Zatim, kada se izvrši SQLGetData, sp_cursor ponovno dovodi sve BLOB-ove. To znatno utječe na performanse velikih vrsta podataka kao što su varbinary (max) ili varchar (max).
Rješenje
Informacije o kumulativnom ažuriranju
Nova implementacija poziva sp_cursoroption da bi dohvatila TEXTPTR_ONLY prije sp_cursorfetch, a zatim poziva sp_cursoroption da bi ih vratila u TEXTDATA prije sp_cursor. Time se mogu poboljšati performanse.
Problem je prvi put riješen u sljedećem kumulativnom ažuriranju sustava SQL Server.
- Kumulativno ažuriranje 1 za SQL Server 2014 SP1
- Kumulativno ažuriranje 7 za SQL Server 2014
- Kumulativno ažuriranje 5 za SQL Server 2012 SP2
Preporuka: instalirajte najnovije kumulativno ažuriranje za SQL Server
Svako novo kumulativno ažuriranje za SQL Server sadrži sve hitne popravke i sigurnosne popravke koji su obuhvaćeni prethodnim kumulativnim ažuriranjem. Preporučujemo da preuzmete i instalirate najnovija kumulativna ažuriranja za SQL Server:
- Najnovije kumulativno ažuriranje za SQL Server 2014 SP1
- Najnovije kumulativno ažuriranje za SQL Server 2014
- Najnovije kumulativno ažuriranje za SQL Server 2012 SP2
Status
Microsoft je potvrdio da je to problem u Microsoftovim proizvodima koji su navedeni u odjeljku „Odnosi se na“.