KB3041859 – FIX: při použití ovladače sqlncli11. dll ODBC Driver pro přístup k SQL serveru v aplikaci dochází k problému s výkonem.

Příznaky

Předpokládejme, že pro přístup k Microsoft SQL serveru 2012 nebo SQL Server 2014 v aplikaci používáte ovladač ODBC sqlncli11. dll. Při použití kurzoru serveru a funkce SQLFetch/ SQLGetData k získání přístupu k některým binárním datům rozsáhlého objektu (BLOB) na serveru SQL Server dochází k problému s výkonem, který je obzvláště pro velké datové typy, jako je třeba (max) nebo varchar (max).

Příčina

Jedná se o problém s návrhem pro implementaci funkce SQLFetch/ SQLGETDATA v ovladači SQL Server 2012 ODBC. Když dotaz používá libovolné serverové kurzory, ovladač ODBC vyvolá sp_cursorfetch během implementace SQLFetch a server pošle všem objektům blob klientovi. Po SQLGetDatasp_cursor se pak znovu převede celý objekt BLOB. To významně ovlivňuje výkon pro velké datové typy, jako je varbinary (max) nebo varchar (max).

Řešení

Informace o kumulativní aktualizaci

Nová implementace vyvolá sp_cursoroption pro získání TEXTPTR_ONLY před sp_cursorfetcha pak vyvolá SP_CURSOROPTION pro jeho vrácení do TextData před sp_cursor. Tím se zlepší výkon. Tento problém byl poprvé opraven následující kumulativní aktualizací SQL serveru.

Každá nová kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí kumulativní aktualizace. Doporučujeme stáhnout a nainstalovat nejnovější kumulativní aktualizace pro SQL Server:

Stav

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.

Potřebujete další pomoc?

Rozšiřte své znalosti a dovednosti
Projít školení
Získejte nové funkce jako první
Připojit se k programu Microsoft Insider

Byly tyto informace užitečné?

Děkujeme za váš názor!

Děkujeme vám za váš názor! Pravděpodobně bude užitečné, když vás spojíme s některým z našich agentů podpory Office.

×