現象
Microsoft SQL Server 2016 でrpc_startingまたはrpc_completedイベントをキャプチャする拡張イベントセッションまたは SQL プロファイラートレースを作成していて、収集ステートメントまたはデータストリームが有効になっていないことを前提とします (たとえば、Xevents セッションの場合はcollect_statementまたはcollect_data_stream パラメーター 、 sql プロファイラーの場合は [ Text data] パラメーター を設定しません)。 セッション中に、テーブル値パラメーター (TVPs)に関連する sql server アクティビティがキャプチャされると、sql server のメモリ使用量が必要以上に大きくなることがあります。 これにより、重大な速度が低下し、極端なケースで SQL Server のメモリが枯渇し、進行中の操作について、次のようなハードエラー701メッセージが表示されることがあります。
このクエリを実行するには、リソースプール ' default ' のシステムメモリが不足しています
ノート DBCC MEMORYSTATUSまたは query sys.dm_os_memory_clerksを使用している場合、 OBJECTSTORE_LBSSメモリ消費量が大きいメモリ消費量を示していることがあります。
解決方法
ステートメントまたはデータストリームを収集するように構成されていない拡張イベントセッションまたはプロファイラートレースを使用しても、TVP 教材はこの修正によって解決されるため、大きなメモリバッファーが必要になります。
注拡張イベントセッションまたは SQL プロファイラートレースが、ステートメントまたはデータ/バイナリストリームを収集するように構成されていて、このセッション中に TVPs に関連する sql server アクティビティがキャプチャされている場合は、現在の修正プログラムを適用した後でも sql server のメモリ使用量が増加する可能性があります。
したがって、(数値またはサイズが多い) TVP ベースのアクティビティを受け取る可能性が高い SQL Server インスタンスでは、前に説明したイベントとデータフィールドの組み合わせで、永続的なセッションまたはトレースを実行しないことをお勧めします。
SQL Server の Service Pack:
この修正プログラムは、SQL Server 2016 の Service Pack 2に含まれています。
ノートTVP でトレースされる行の数を制限する別の修正プログラムについては、 KB 4468102を参照してください。
SQL Server 2016 ビルドについて
SQL Server 2016 用の新しいビルドごとに、以前のビルドで行われたすべての修正プログラムとセキュリティの修正が含まれています。 SQL Server 2016 用の最新のビルドをインストールすることをお勧めします。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
関連情報
マイクロソフトでソフトウェア更新プログラムの説明に使用する用語集を参照してください。