【问题标题】:Extended events not capturing Entity Framework queries (read/updates)未捕获实体框架查询的扩展事件(读取/更新)
【发布时间】:2019-05-06 19:08:47
【问题描述】:

我添加了扩展事件来跟踪 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

但我注意到它没有从 Entity Framework 注册 sql server 更新/读取查询/过程调用,而只记录了我使用 SSMS 运行的 sql 查询。

感谢任何想法

更新:

我使用 EF6.1,我认为是批量保存数据。

【问题讨论】:

  • 尝试一一去除过滤器,看看是哪一个导致了这些事件的排除。

标签: entity-framework extended-events


【解决方案1】:

我不会尝试捕获sqlserver.sql_statement_completed,而是为应用程序/API 发出的查询/存储过程捕获sqlserver.sql_batch_completedsqlserver.rpc_completed

如果这不起作用,那么删除过滤器(或者至少是 duration 过滤器(正如 Andrey 在 cmets 中建议的那样)可能会让我们更深入地了解为什么没有捕获查询。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多