KB3041859 – PATAISYMAS: veikimo problema kyla, kai naudojate ODBC tvarkyklę norėdami pasiekti „SQL Server“ programojesqlncli11.dll

Taikoma
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Požymiai

Tarkime, naudojate sqlncli11.dll ODBC tvarkyklę norėdami pasiekti "Microsoft „SQL Server“ 2012" arba "„SQL Server“ 2014" programoje. Kai naudojate serverio žymiklį ir funkciją SQLFetch/ SQLGetData kai kuriems dvejetainių didelių objektų (BLOB) duomenims pasiekti „SQL Server“, ypač kyla didelių duomenų tipų, pvz., varbinary (max) arba varchar (max), veikimo problema.

Priežastis

Tai yra SQLFetch/ SQLGetData funkcijos diegimo "„SQL Server“ 2012 ODBC" tvarkyklėje projektavimo problema. Kai užklausa naudoja bet kuriuos serverio žymiklius, ODBC tvarkyklė iškviečia sp_cursorfetch SQLFetch diegimo metu ir serveris siunčia visą BLOB klientui. Tada, kai SQLGetData vykdomas, sp_cursor vėl pateikia visą BLOB. Tai daro didelę įtaką didelių duomenų tipų, pvz., varbinary (max) arba varchar (max), našumui.

Sprendimas

Kaupiamojo naujinimo informacija

Naujasis diegimas iškviečia sp_cursoroption, kad gautų TEXTPTR_ONLY prieš sp_cursorfetch, tada iškviečia sp_cursoroption, kad grąžintų jį į TEXTDATA prieš sp_cursor. Tai gali pagerinti efektyvumą.

Problema pirmą kartą buvo išspręsta šiame kaupiamajame „SQL Server“ naujinime.

Rekomendacija: įdiekite naujausią "„SQL Server“" kaupiamąjį naujinimą

Kiekviename naujame „SQL Server“ kaupiamajame naujinime yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo įtrauktos į ankstesnį kaupiamąjį naujinimą. Rekomenduojame atsisiųsti ir įdiegti naujausius kaupiamuosius "„SQL Server“" naujinimus:

      

Būsena

„„Microsoft““ patvirtino, kad tai yra „„Microsoft““ produktų, išvardytų dalyje „Taikoma“, problema.