FIX sqlncli11.dll ODBC ドライバーを使用するアプリケーションで SQL Server にアクセスするときにパフォーマンス問題が発生します。

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:3041859
現象
アプリケーションで Microsoft SQL Server 2012年または SQL Server 2014年に sqlncli11.dll ODBC ドライバーを使用することと仮定します。サーバー カーソルとはSQLFetchを使用する場合大規模ないくつかのバイナリへのアクセスにSQLGetData関数オブジェクト (BLOB) データを SQL Server に varbinary (max) などの大きなデータ型または varchar (max) のパフォーマンスの問題が発生しました。
原因
SQLFetchの実装の設計上の問題です/ SQLGetDataを SQL Server 2012年の ODBC ドライバーの機能です。クエリ サーバー カーソルを使用する場合 ODBC ドライバー sp_cursorfetchSQLFetchの実装時に起動してクライアントへのすべての BLOB を送信します。Sp_cursorSQLGetDataを実行するとすべての BLOB が再度が表示そして、されます。これは varbinary (max) または varchar (max) のような大きな値のデータ型のパフォーマンスに大きく影響します。
解決方法

累積的な更新プログラムの情報

新しい実装sp_cursorfetchの、前に TEXTPTR_ONLY を取得するsp_cursoroptionを呼び出すし、TEXTDATA sp_cursorの前に、にsp_cursoroptionを呼び出します。パフォーマンスが向上します。

問題最初に SQL Server の次の累積的な更新プログラムで修正されました。

に関する推奨事項: 最新バージョンの累積的な更新を SQL Server のインストールします。
ごと新しいの累積的な更新 SQL Server にはのすべての修正プログラムが含まれていて、以前の累積的な更新プログラムとセキュリティ修正がすべて付属します。ダウンロードして SQL Server の最新の累積的な更新プログラムをインストールすることをお勧めします。
状況
マイクロソフトは、この問題を「対象製品」セクションに記載されているマイクロソフト製品の問題として認識しています。

プロパティ

文書番号:3041859 - 最終更新日: 06/24/2015 05:26:00 - リビジョン: 3.0

Microsoft SQL Server 2012 Service Pack 2, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Service Pack 1

  • kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB3041859 KbMtja
フィードバック