2

我添加了扩展事件来跟踪 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,我认为它使用批处理来保存数据。

4

1 回答 1

3

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

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

于 2018-12-11T15:31:34.350 回答