Расширенные события не захватывают запросы Entity Framework (чтение / обновление)
Я добавил событие Extended для отслеживания вызовов sql, что замедляет работу моей системы, что приводит к исключениям тайм-аута и другим
CREATE EVENT SESSION [longrunning_statements] ON SERVER
ADD EVENT sqlserver.sql_statement_completed(
WHERE ([duration]>(2000000) AND [database_id]=(9)))
ADD TARGET package0.event_file(SET filename=N'c:\capture\xe_longrunning_statement.xel',metadatafile=N'c:\capture\xe_longrunning_statement.xem')
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=OFF)
GO
Но я заметил, что он не регистрирует обновления SQL Server / запросы на чтение / вызовы процедур из Entity Framework, а только регистрирует мои SQL-запросы, запущенные с использованием SSMS.
Любые идеи приветствуются
ОБНОВИТЬ:
Я использую EF6.1, который, я думаю, использовал пакеты для сохранения данных.
1 ответ
Вместо того, чтобы пытаться захватить sqlserver.sql_statement_completed
Я бы захватил sqlserver.sql_batch_completed
а также sqlserver.rpc_completed
для приложений /API выданных запросов / хранимых процедур.
Если это не работает, то удалите фильтры (или, по крайней мере, duration
Фильтр (как предлагает Андрей в комментариях), вероятно, даст нам больше понимания того, почему запросы не фиксируются.