現象
Microsoft SQL Server 2012 で、述語を含む XEvent セッションを作成することを前提としています。 XEvent セッションを繰り返し開始して停止すると、メモリリークが発生し、' MEMORYCLERK_XE ' によって割り当てられたメモリが段階的に増加していることがわかります。次に、動作を示すサンプル XEvent セッションを示します。
CREATE EVENT SESSION[MyDiagnosticSession]ON SERVERADD EVENT sqlserver.module_end( ACTION (sqlserver.client_app_name,sqlserver.plan_handle,sqlserver.session_id,sqlserver.sql_text) WHERE ([package0].[Greater_than_equal_unicode_string]([sqlserver].[client_app_name],'MyApplication1') AND[package0].[Less_than_equal_unicode_string]([sqlserver].[client_app_name],'Myapplication2')))
注: このメモリリークを監視するには、次のクエリを使用するか、DBCC MEMORYSTATUS を実行します。
select [Memory Used KB] = page_size_in_bytes /1024 from sys.dm_os_memory_clerks where type = 'MEMORYCLERK_XE'
解決方法
この問題は、SQL Server の次の累積的な更新プログラムで最初に修正されました。
SQL Server 2012 SP2 の累積更新プログラム2 /en-us/help/2983175
SQL Server 2012 SP1 の累積更新プログラム11 /en-us/help/2975396
SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムを確認します。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。