Track memory grants with this Extent Event CREATE EVENT SESSION [XtEvt_MemoryGrantFeedback] ON SERVER ADD EVENT sqlserver.memory_grant_feedback_loop_disabled( ACTION(sqlserver.client_hostname,sqlserver.database_name,sqlserver.nt_username,sqlserver.plan_handle,sqlserver.session_nt_username,sqlserver.sql_text,sqlserver.username)), ADD EVENT sqlserver.memory_grant_updated_by_feedback( ACTION(sqlserver.client_hostname,sqlserver.database_name,sqlserver.nt_username,sqlserver.plan_handle,sqlserver.session_nt_username,sqlserver.sql_text,sqlserver.username) WHERE ([ideal_additional_memory_before_kb]>(8192) OR [ideal_additional_memory_after_kb]>(8192))) ADD TARGET package0.event_file(SET filename=N'C:\temp\XtEvt_MemoryGrantFeedback',max_file_size=(10),max_rollover_files=(15)) WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=ON) GO kkkkk SELECT [XML Data], [XML Data].value('(/event/@timestamp)[1]','DATETIME') AS EventTime, [XML Data].value('(event/data[@name="ideal_additional_memory_before_kb"]/value)[1]','bigint') AS ideal_additional_memory_before_kb, [XML Data].value('(event/data[@name="ideal_additional_memory_after_kb"]/value)[1]','bigint') AS ideal_additional_memory_after_kb, [XML Data].value ('(/event/action[@name=''database_name'']/value)[1]', 'VARCHAR(MAX)') AS db, [XML Data].value ('(/event/action[@name=''sql_text'']/value)[1]', 'VARCHAR(MAX)') AS sql_text, [XML Data].value ('(/event/action[@name=''username'']/value)[1]', 'VARCHAR(MAX)') AS username, [XML Data].value ('(/event/action[@name=''nt_username'']/value)[1]', 'VARCHAR(MAX)') AS nt_username, [XML Data].value ('(/event/action[@name=''client_hostname'']/value)[1]', 'VARCHAR(MAX)') AS client_hostname FROM (SELECT OBJECT_NAME AS [Event], CONVERT(XML, event_data) AS [XML Data] FROM sys.fn_xe_file_target_read_file ('C:\temp\XtEvt_MemoryGrantFeedback*.xel',NULL,NULL,NULL)) as MemoryGrantFeedback Read more →