【发布时间】:2020-06-29 15:27:21
【问题描述】:
我正在使用 EF Core 3.1 和 sql server 2019 Developer Edition 我有一个复杂的选择查询,其中包含多个包含,其中 90% 非常快(平均 200 毫秒),但有时对于相同的参数它会变慢(有时需要长达 25 秒)。
我已经阅读了有关 sql server 中的参数嗅探的信息,但我不知道如何确定这是否会减慢查询速度。 我该如何检查是否是这种情况?
【问题讨论】:
-
是 EF 生成 SQL,还是您为此编写了自定义 SQL?
-
EF 正在生成 SQL。没有自定义代码
-
您是否在每次查询时(或在聚合根的边界内)创建一个新的 DataContext?
-
我正在创建一个新的 DbContext,因为它为 REST 端点提供服务
-
我运行了 sql 分析器,当它运行缓慢时,我能够在那里捕获它。 SQL Server 探查器中的持续时间几乎与 asp.net 核心记录器记录的请求的总时间相同。所以我想这不是连接问题。
标签: c# .net sql-server entity-framework-core