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

Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) または Microsoft SQL Server 2012 の修正プログラムを1つのダウンロード可能なファイルで配布します。 修正プログラムは累積的であるため、新しいリリースごとに、以前の SQL Server 2008 R2 Service Pack 1 (SP1) または SQL Server 2012 update のリリースに含まれていたすべての修正プログラムとセキュリティ更新プログラムが含まれています。

現象

次のような状況を想定します。 Microsoft SQL Server 2008 R2 または Microsoft SQL Server 2012 でクエリを実行したときに、Top 演算子を含む実行プランがクエリオプティマイザーによって生成されます。 このシナリオでは、クエリの実行に時間がかかる場合があります。 たとえば、次のようなクエリを実行します。

SELECT TableA.Col1 FROM TableA JOIN TableB ON TableA.Col1 = TableB.Col1 WHERE TableA.Col2 = N'A' AND TableB.Col3 IN (SELECT Col1 FROM TableC )このクエリには2つの結合が含まれます。 1つの結合が TableB と TableC の間にあります。 (これは IN 述語が存在することによって暗示されます)。 もう1つの結合は、テーブル A と最初の結合の結果の間にあります。 クエリで最初の結合述語を満たす1つ以上の行が見つかった場合、IN 述語は true を返します。 そのため、クエリオプティマイザーは、クエリ実行プランに Top 演算子を追加します。このようなクエリは数行しか返さないことがあります。 ただし、このクエリを実行するのに予想以上に時間がかかることがあります。 実際のクエリ実行プランでは、推定行数は実際の行数とは大きく異なります。 これは、さまざまなプランの選択肢のコストを正確に見積もるためのクエリオプティマイザーの機能に影響します。この問題は、上の演算子を明示的に使用した場合、または次の演算子のいずれかを使用している場合にも発生することがあります。

  • OPTION (FAST N)

  • チェックイン

解決方法

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

SQL Server 2008 R2 Service Pack 2

この問題の修正プログラムは、SQL Server 2008 R2 Service Pack 2 の累積更新プログラム1で最初にリリースされました。この累積的な更新プログラムパッケージの入手方法の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。

2720425 SQL Server 2008 R2 Service Pack 2 の累積的な更新プログラムパッケージ1注: ビルドは累積的であるため、各新しい修正プログラムには、以前の SQL Server 2008 R2 fix release に含まれていたすべての修正プログラムとセキュリティ修正プログラムが含まれています。 この修正プログラムを含む最新の修正プログラムを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。

2730301 SQL Server 2008 R2 Service Pack 2 がリリースされた後にリリースされた SQL Server 2008 R2 ビルド

SQL Server 2008 R2 Service Pack 1

この問題の修正プログラムは、SQL Server 2008 R2 Service Pack 1 の累積更新プログラム7で最初にリリースされました。この累積的な更新プログラムパッケージの入手方法の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。

2703282 累積的な更新プログラムパッケージ 7 (SQL Server 2008 R2 Service Pack 1)注: ビルドは累積的であるため、各新しい修正プログラムには、以前の SQL Server 2008 R2 fix release に含まれていたすべての修正プログラムとセキュリティ修正プログラムが含まれています。 この修正プログラムを含む最新の修正プログラムを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。

2567616 SQL Server 2008 R2 Service Pack 1 がリリースされた後にリリースされた SQL Server 2008 R2 ビルド

SQL Server 2012

この問題の修正プログラムは、SQL Server 2012 の累積的な更新プログラム2で最初にリリースされました。この累積的な更新プログラムパッケージの詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。

2703275 SQL Server 2012 の累積的な更新プログラムパッケージ2注: ビルドは累積的であるため、それぞれの新しい修正プログラムには、以前の SQL Server 2012 fix release に含まれていたすべての修正プログラムとセキュリティ修正プログラムが含まれています。 この修正プログラムを含む最新の修正プログラムを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。

2692828 SQL Server 2012 がリリースされた後にリリースされた SQL Server 2012 ビルド Sql server 2012 のインストールには、SQL Server 2012 修正プログラムを適用する必要があります。

SQL Server 2008 R2

この問題の修正プログラムは、累積的な更新プログラム13で最初にリリースされました。SQL Server 2008 R2 用の累積的な更新プログラムパッケージの入手方法の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。

2679366 SQL Server 2008 R2 の累積更新プログラムパッケージ13注: ビルドは累積的であるため、各新しい修正プログラムには、以前の SQL Server 2008 R2 fix release に含まれていたすべての修正プログラムとセキュリティ修正プログラムが含まれています。 この修正プログラムを含む最新の修正プログラムを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。

981356 SQL Server 2008 R2 のリリース後にリリースされた SQL Server 2008 R2 ビルド注 累積的な更新プログラムをインストールした後、次の条件に該当する場合は、この累積的な更新プログラムで提供されている修正プログラムを有効にするには、トレースフラグ4199を有効にする必要があります。

  • クエリプランのトップ演算子は、別の適用/結合演算子の右側にある入れ子になったループ結合演算子 (join 1) の上にあります (結合 2)。

  • 結合1の外側には、結合2の外部参照が含まれています。

  • Join 1 は、左側の列で一意の等号述語を使用します。

このようなクエリの例は、「Symptoms」セクションに表示されます。 (これは、データベースに一意性制約が存在することを前提としています)。 TOP、OPTION (FAST N)、IN、または EXISTS の各演算子が含まれている他のクエリがあり、同様の現象が発生しても、ここで説明されているパターンに合わない場合は、トレースフラグ4138を有効にします。警告: トレースフラグ4138を有効にすると、TOP、OPTION (FAST N)、IN、または EXISTS 演算子を含む他のクエリで、パフォーマンスが低下することがあります。 トレースフラグ4138は、次の条件が満たされている場合にのみ使用してください。

  • これらの演算子に関連するスロークエリに対する影響を確認します。

  • その他の便利な回避策はありません。

  • 類似した演算子を含む他のクエリでは、回帰は検出されません。

状態

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

回避策

この問題を回避するには、左外部結合演算子またはいくつかのオプティマイザーヒントを使用します。

ヘルプを表示

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

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

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

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

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

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

×