次の例は、ソース SQL Server で拡張イベント セッションを作成し、アプリケーション データ層のワークロードをキャプチャする方法を示しています。 ピーク時のワークロードを表す期間、ワークロードをキャプチャします。
DROP EVENT SESSION [DatalayerSession] ON SERVER
go
CREATE EVENT SESSION [DatalayerSession] ON SERVER
ADD EVENT sqlserver.sql_batch_completed(
ACTION (sqlserver.sql_text,sqlserver.client_app_name,sqlserver.client_hostname,sqlserver.database_id))
ADD TARGET package0.asynchronous_file_target(SET filename=N'C:\temp\Demos\DataLayerAppassess\DatalayerSession.xel')
WITH (MAX_MEMORY=2048 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=3 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF)
go
---Start the session
ALTER EVENT SESSION [DatalayerSession]
ON SERVER
STATE = START;
---Wait for few minutes
---Query events
SELECT
object_name,
CAST(event_data as xml) as event_data,
file_name,
file_offset
FROM sys.fn_xe_file_target_read_file('C:\temp\Demos\DataLayerAppassess\DatalayerSession*xel',
'C:\\temp\\Demos\\DataLayerAppassess\\DatalayerSession*xem',
null,
null)
---Stop the session after capturing the peak load.
ALTER EVENT SESSION [DatalayerSession]
ON SERVER
STATE = STOP;
go