EF6 Entity framework 有时在 SQL 服务器上查询缓慢
EF6 Entity framework sometimes slow query on SQL Server
我们在 .NET Core 中开始了一个新项目。我们刚刚开始,我们正在访问 Web API 端点以获取 8 条记录的一些参考数据。
我们在 Angular 屏幕中注意到,EF 查询周期性地(大约每 10 个请求)屏幕需要大约 6 到 15 秒才能到达 运行,而不是通常需要的 30 毫秒.
在调试时我们知道我们正在到达 .ToListAsync()
然后在 SQL 探查器中我们可以看到它启动查询并且需要延迟时间。
所以第一印象是 SQL 问题,但如果我们 运行 在 SQL 中手动查询 SQL 本身,它永远不会延迟。
有什么想法吗?
这可能与 efcore 的连接池设置有关,它不应该在每次请求 db 时请求一个新连接,通过在你的依赖管理中添加这个来启用连接池:
builder.Services.AddPooledDbContextFactory<DbContext>(
o => o.UseSqlServer(builder.Configuration.GetConnectionString("AppContext")));
我们在 .NET Core 中开始了一个新项目。我们刚刚开始,我们正在访问 Web API 端点以获取 8 条记录的一些参考数据。
我们在 Angular 屏幕中注意到,EF 查询周期性地(大约每 10 个请求)屏幕需要大约 6 到 15 秒才能到达 运行,而不是通常需要的 30 毫秒.
在调试时我们知道我们正在到达 .ToListAsync()
然后在 SQL 探查器中我们可以看到它启动查询并且需要延迟时间。
所以第一印象是 SQL 问题,但如果我们 运行 在 SQL 中手动查询 SQL 本身,它永远不会延迟。
有什么想法吗?
这可能与 efcore 的连接池设置有关,它不应该在每次请求 db 时请求一个新连接,通过在你的依赖管理中添加这个来启用连接池:
builder.Services.AddPooledDbContextFactory<DbContext>(
o => o.UseSqlServer(builder.Configuration.GetConnectionString("AppContext")));