vivek
vivek

Reputation: 849

How to flush event data to event file (.xel) in sql server extended event

I am moving from sql profiler to extended event.

I encounter one issue that all query are not captured by extended event if I use target as event file but all query get capture if I use ring buffer as target. after searching on google I found that event file uses some buffer and only after buffer is full it write data to file. but I need to stop the event capture and use the file somewhere else and every time I stop session data which is in buffer lost. How I can flush buffer to file ? before I stop session . The sample test event I created is like below. ( I remove ring buffer and use event file)

    CREATE EVENT SESSION [Test] ON SERVER 
ADD EVENT sqlserver.rpc_completed(
    WHERE ([package0].[equal_i_unicode_string]([sqlserver].[database_name],N'pubs'))),
ADD EVENT sqlserver.sql_batch_starting(SET collect_batch_text=(1)
    WHERE ([package0].[equal_i_unicode_string]([sqlserver].[database_name],N'pubs')))
ADD TARGET package0.event_file(SET filename=N'C:\TEMP\Test.xel')
--ADD TARGET package0.ring_buffer(SET max_events_limit=(10000),max_memory=(1048576))
WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=NO_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF)
GO

 

Upvotes: 0

Views: 129

Answers (0)

Related Questions