实体框架异步:意外的性能瓶颈
迁移到异步控制器和数据库操作(使用 ToListAsync()
而不是 ToList()
)通常可以提高应用程序性能。 然而,情况并非总是如此。 在最近的场景中,切换到异步方法会极大地减慢查询执行速度。 以下查询通过简单的数据库连接检索“Album”对象,说明了此问题:
<code class="language-csharp">var albums = await this.context.Albums .Where(x => x.Artist.ID == artist.ID) .ToListAsync();</code>
生成的 SQL 查询是(为了简洁而被截断):
<code class="language-sql">SELECT [Extent1].[ID] AS [ID], [Extent1].[URL] AS [URL], [Extent1].[ASIN] AS [ASIN], ...</code>
以上是为什么我的实体框架异步操作比同步操作慢?的详细内容。更多信息请关注PHP中文网其他相关文章!