現象
Microsoft SQL Server 2014 で同時に複数の大きなクエリを実行しようとすると、一部のクエリで RESOURCE_SEMAPHORE_QUERY_COMPILEを待つ場合があります。 サーバーに十分なメモリがある場合でも、大規模なゲートウェイのしきい値 ( DBCC MEMORYSTATUS コマンドの出力によって提供される) よりも多くのメモリを必要とする1つのクエリのみが処理を継続できます。注:これは予期される動作です。 ただし、データウェアハウスなどの大規模なバッチシステムでは、多くのクエリの同時実行のパフォーマンスがダウングレードされる可能性があります。
解決方法
累積的な更新情報
この問題は、SQL Server の次の累積的な更新プログラムで最初に修正されました。
SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムをダウンロードしてインストールすることをお勧めします。
この修正プログラムでは、新しいトレースフラグ-T 6498 が導入されています。 このトレースフラグを使うと、十分なメモリがある場合に、複数の大きなクエリコンパイルによって大きなゲートウェイへのアクセスが可能になります。 これは、80の SQL Server ターゲットメモリの割合に基づいており、25 gb (GB) のメモリに1つの大きなクエリコンパイルを実行できます。 たとえば、64 GB のターゲットメモリコンピューター上で、2つの大きなクエリコンパイルを実行できます。 この修正プログラムを適用した後、新しい動作を有効にするには、トレースフラグ-T 6498 を有効にする必要があります。 注:DBCC TRACEONコマンドを使ってトレースフラグを有効にした場合、トレースフラグが有効になるようにサーバーを再起動する必要はありません。 ただし、新しい大規模なゲートウェイ構成を適用するには、10秒かかることがあります。 サポートされている修正プログラムは、Microsoft から提供されています。ただし、この修正プログラムは、この記事で説明されている問題のみを修正することを目的としています。この修正プログラムは、この特定の問題が発生しているシステムにのみ適用してください。 この修正プログラムをダウンロードできる場合は、このサポート技術情報の記事の上部にある「修正プログラムダウンロード可能」セクションを参照してください。このセクションが表示されない場合は、Microsoft カスタマーサービスとサポートにリクエストを送信して、修正プログラムを入手してください。 注 その他の問題が発生した場合、またはトラブルシューティングが必要な場合は、別のサービスリクエストを作成することが必要になることがあります。この特定の修正プログラムに該当しないその他のサポートの質問や問題については、通常のサポート料金が適用されます。Microsoft カスタマサービスとサポートの電話番号の完全な一覧、または別のサービスリクエストを作成するには、次の Microsoft web サイトを参照してください。
http://support.microsoft.com/contactus/?ws=support 注: "Hotfix Download Available" フォームには、修正プログラムを提供している言語が表示されます。 使用している言語が表示されない場合は、その言語では修正プログラムが利用できないことが原因です。
詳細情報
原因SQL Server では、コンパイルゲートウェイを使ってコンパイルを調整します。 ゲートウェイアーキテクチャは、SQL Server が、コントロールでの入力クエリのコンパイルのためにメモリ使用量を維持するための手段です。 ゲートウェイには、小、中、大の3つのゲートウェイがあります。 DBCC MEMORYSTATUSコマンドを使用してメモリ使用量を監視する方法の詳細については、「 KB 907877: dbcc MEMORYSTATUS コマンドを使用して SQL Server 2005 のメモリ使用量を監視する方法」を参照してください。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。