Sintomi
Supponiamo che tu crei una sessione XEvent con predicati in Microsoft SQL Server 2012. Quando si avvia e si arresta ripetutamente la sessione XEvent, si verificano perdite di memoria e si nota che la memoria allocata da "MEMORYCLERK_XE" aumenta gradualmente. Ecco una sessione di esempio XEvent che dimostra il comportamento:
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')))
Nota È possibile monitorare questa perdita di memoria usando la query seguente oppure eseguendo DBCC MEMORYSTATUS:
select [Memory Used KB] = page_size_in_bytes /1024 from sys.dm_os_memory_clerks where type = 'MEMORYCLERK_XE'
Risoluzione
Il problema è stato risolto per la prima volta nel seguente aggiornamento cumulativo di SQL Server.
Aggiornamento cumulativo 2 per SQL Server 2012 SP2 /en-us/help/2983175
Aggiornamento cumulativo 11 per SQL Server 2012 SP1 /en-us/help/2975396
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nell'aggiornamento cumulativo precedente. Vedere gli ultimi aggiornamenti cumulativi per SQL Server:
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".