C# EF6 DbContext.Database.Log持续时间与SQL Server探查器持续时间不同

C# EF6 DbContext.Database.Log持续时间与SQL Server探查器持续时间不同,c#,sql-server,entity-framework,entity-framework-6,sql-server-profiler,C#,Sql Server,Entity Framework,Entity Framework 6,Sql Server Profiler,DbContext.Database.Log记录的EF查询的持续时间与我在SQL Server Profiler中看到的实际持续时间不同 在SQLServer概要文件中,我看到一行类似于 EventClass TextData Duration RPC:Completed exec sp_executesql N'SELECT... 59473 但是在DbContext.Database.Logs中,我找不到具有该持续

DbContext.Database.Log
记录的EF查询的持续时间与我在SQL Server Profiler中看到的实际持续时间不同

在SQLServer概要文件中,我看到一行类似于

EventClass       TextData                          Duration 
RPC:Completed    exec sp_executesql N'SELECT...    59473
但是在
DbContext.Database.Log
s中,我找不到具有该持续时间的查询。根据这些日志,没有任何查询需要花费超过几毫秒的时间

我还尝试实现一个自定义的
IDbCommandInterceptor
,它可以手动截取、计时和记录EF查询(类似于这样:),但我遇到了同样的问题

我错过了什么?这是否与数据的实际读取有关

所讨论的EF查询如下所示:

var duplicates = databaseItems.Where(item => newItems.Contains(item)).ToList();

您确定从sql server profiler中引用的行来自dbcontext而不是其他来源吗?@JanneMatikainen非常确定是的。我已经查看了应用程序整个生命周期的所有跟踪日志。日志中没有任何内容接近我在SQL Server Profiler中看到的~60秒的持续时间。您的newsItems集合中有多少项?根据其大小,编译和查询计划生成可能会非常慢,每次调用都会发生。不确定编译时间是否显示在DbContext.Database中。Log@jbl
newItems
小于100。这些是我最终将插入的新项目<代码>数据库项约为50000。超时时间是多少?可能是SqlClient引发了异常(因此没有日志或您正在查找的日志条目),但SQL Server继续工作。您确定从SQL Server profiler引用的行来自dbcontext而不是其他源吗?@JanneMatikainen非常确定是的。我已经查看了应用程序整个生命周期的所有跟踪日志。日志中没有任何内容接近我在SQL Server Profiler中看到的~60秒的持续时间。您的newsItems集合中有多少项?根据其大小,编译和查询计划生成可能会非常慢,每次调用都会发生。不确定编译时间是否显示在DbContext.Database中。Log@jbl
newItems
小于100。这些是我最终将插入的新项目<代码>数据库项约为50000。超时时间是多少?可能是SqlClient引发了异常(因此没有日志或您正在查找的日志条目),但SQL Server继续工作。您确定从SQL Server profiler引用的行来自dbcontext而不是其他源吗?@JanneMatikainen非常确定是的。我已经查看了应用程序整个生命周期的所有跟踪日志。日志中没有任何内容接近我在SQL Server Profiler中看到的~60秒的持续时间。您的newsItems集合中有多少项?根据其大小,编译和查询计划生成可能会非常慢,每次调用都会发生。不确定编译时间是否显示在DbContext.Database中。Log@jbl
newItems
小于100。这些是我最终将插入的新项目<代码>数据库项约为50000。超时时间是多少?可能是SqlClient引发了一个异常(因此没有您要查找的日志或日志条目),但SQLServer继续工作。