メイン コンテンツへスキップ
サポート
Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

現象

Sqlncli11 の ODBC ドライバーを使用して、アプリケーションの Microsoft SQL Server 2012 または SQL Server 2014 にアクセスすることを前提としています。 サーバーカーソルと Sqlfetch/ SQLGetData 関数を使って SQL server の一部のバイナリラージオブジェクト (BLOB) データにアクセスすると、特に varbinary (max) や varchar (max) などの大きなデータ型に対してパフォーマンスの問題が発生します。

原因

これは、SQL Server 2012 ODBC ドライバーで Sqlfetch/ SQLGetData 関数を実装する場合の設計上の問題です。 クエリがサーバーカーソルを使用している場合、ODBC ドライバーはSqlfetchの実装中にsp_cursorfetchを呼び出し、サーバーはすべての BLOB をクライアントに送信します。 次に、 SQLGetData が実行されると、 sp_cursor がすべての BLOB をもう一度取り込みます。 これは、varbinary (max) や varchar (max) などの大きなデータ型のパフォーマンスに大きく影響します。

解決方法

累積的な更新情報

新しい実装は sp_cursoroption を呼び出して sp_cursorfetchの前に TEXTPTR_ONLY を取得し、 sp_cursoroption を呼び出して、 sp_cursorの前に TEXTDATA に戻します。 これによりパフォーマンスが向上します。この問題は、SQL Server の次の累積的な更新プログラムで最初に修正されました。

SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムをダウンロードしてインストールすることをお勧めします。

状態

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?
[送信] を押すと、Microsoft の製品とサービスの改善にフィードバックが使用されます。 IT 管理者はこのデータを収集できます。 プライバシーに関する声明。

フィードバックをいただき、ありがとうございます。

×