扩展事件无法捕获Entity Framework查询(读取/更新)

时间:2018-12-05 08:58:05

标签: entity-framework extended-events

我已经添加了Extended事件来跟踪sql调用,这使我的系统变慢,导致出现Timeout异常等

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

但是我注意到它没有注册Entity Framework的sql服务器更新/读取查询/程序调用,而仅记录了使用SSMS运行的sql查询。

任何想法都值得赞赏

更新:

我使用EF6.1,我认为该批处理用于保存数据。

1 个答案:

答案 0 :(得分:1)

我将捕获应用程序/ API发出的查询/存储过程的sqlserver.sql_statement_completedsqlserver.sql_batch_completed,而不是捕获sqlserver.rpc_completed

如果这不起作用,则删除过滤器(或至少删除duration过滤器(如Andrey在评论中建议的那样)可能会使我们更深入地了解为何未捕获查询。