Příznaky
Předpokládejme, že jste v Microsoft SQL serveru 2012 vytvořili relaci XEvent s predikáty. Při opakovaném spuštění a zastavení relace XEvent dojde k nevracení paměti a zjistíte, že se paměť přidělená metodou MEMORYCLERK_XE postupně zvětšuje. Tady je ukázková relace XEvent, která ukazuje chování:
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')))
Poznámka Tuto nevracení paměti můžete sledovat pomocí následujícího dotazu nebo spuštěním příkazu DBCC MEMORYSTATUS:
select [Memory Used KB] = page_size_in_bytes /1024 from sys.dm_os_memory_clerks where type = 'MEMORYCLERK_XE'
Řešení
Tento problém byl poprvé opraven následující kumulativní aktualizací SQL serveru.
Kumulativní aktualizace 2 pro SQL Server 2012 SP2 /en-us/help/2983175
Kumulativní aktualizace 11 pro SQL Server 2012 SP1 /en-us/help/2975396
Každá nová kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí kumulativní aktualizace. Podívejte se na nejnovější kumulativní aktualizace SQL serveru:
Stav
Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.