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

現象

次のような状況を考えます。

  • リンク サーバーがローカル サーバーとリモート サーバーが Microsoft SQL Server 2012 インスタンスがある両方の間で構成されます。

  • ローカル サーバーを構成するには、区別しない照合順序など、1 つの照合順序を使用します。

  • リモート サーバーでは、大文字小文字を区別の照合順序など、ローカル サーバーから別の照合順序で構成されているオブジェクトがあります。

  • 接続が確立 Microsoft JDBC ドライバーからの SQL Server では、Microsoft ODBC ドライバーは、SQL Server、SQL OLE DB プロバイダー、または SQL のネイティブ クライアントをローカル サーバーにします。

  • ドライバーは、ローカル サーバー上のsp_prepexecストアド プロシージャの呼び出しを準備されたステートメントとして Transact SQL の更新クエリを実行します。

  • クエリは、リモート サーバー上のテーブルを更新します。これには、ローカル サーバーから別の照合順序を使用している column オブジェクトが含まれます。

このシナリオでは、クエリの実行によるパフォーマンスの低下が発生する可能性があります。更新クエリの実行プランを確認する場合は、フィルターなしでリモート サーバーのテーブルにリモート スキャンを実行するを参照してください可能性があります。したがって、実行した場合多くの読み取り、リモート ・ テーブルをスキャンし、ローカル サーバーへのすべての行を取得し、そのときです。

たとえば、されない照合順序の既定値を持つローカル サーバーにクエリを準備し、リモート サーバーには、テーブルT1は、大文字小文字を区別する列が含まれる。更新プログラムでは、 T1のすべての行をスキャンします。
DECLARE @p1 INTEXEC sp_prepexec @p1 output, N'@P0 NVARCHAR(16), @P1 NVARCHAR(16)',
N'UPDATE RemoteServer.RemoteDatabase.dbo.T1 SET COL1=@P0 WHERE COL2=@P1',
N'a', N'a'
SELECT @p1

原因

問題は、両方のサーバーの照合順序が一致しない場合に更新の準備されたクエリが、リモート ・ テーブルをスキャンするために発生します。

SQL Server 用の新しい累積的な更新プログラムには、以前の累積的な更新プログラムに含まれていた、すべての修正プログラムおよびすべてのセキュリティ更新プログラムが含まれています。以下で、SQL Server 用の最新の累積的な更新プログラムを確認してください。


修正プログラムの情報サポートされている修正プログラムは、マイクロソフトから入手可能です。ただし、この修正プログラムは、ここで説明する問題のみを修正することを目的としたものです。この問題が発生しているシステムにのみ適用してください。

修正プログラムをダウンロードできる場合は、このサポート技術情報の資料の上部に「修正プログラムのダウンロード」セクションがあります。このセクションが表示されていない場合は、マイクロソフト カスタマー サービス サポートにリクエストを送信し、修正プログラムを入手してください。

ヘルプを表示

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

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

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

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

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

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

×