Belirtiler
Microsoft SQL Server 2012 'te koşullara sahip bir XEvent oturumu oluşturduğunuzu varsayalım. XEvent oturumunu art arda başlatıp durdurduğunuzda, bellek sızıntısı gerçekleşir ve ' MEMORYCLERK_XE ' tarafından ayrılan belleğin giderek artırdığına fark edebilirsiniz. Bu, davranışı gösteren örnek bir XEvent oturumu aşağıdadır:
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')))
Not Aşağıdaki sorguyu kullanarak veya DBCC MEMORYSTATUS 'i çalıştırarak bu bellek sızıntısını izleyebilirsiniz:
select [Memory Used KB] = page_size_in_bytes /1024 from sys.dm_os_memory_clerks where type = 'MEMORYCLERK_XE'
Çözüm
Sorun ilk olarak SQL Server 'ın aşağıdaki toplu güncelleştirmesinde giderilmiştir.
SQL Server 2012 SP2 için toplu güncelleştirme 2 /en-us/help/2983175
SQL Server 2012 SP1 için toplu güncelleştirme 11 /en-us/help/2975396
Her bir SQL Server toplu güncelleştirmesi, önceki toplu güncelleştirmeyle birlikte gelen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. En son SQL Server güncelleştirmelerini gözden geçirin:
Durum
Microsoft bu sorunun "Uygulandığı öğe" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.