2
Entity Frameworkの非同期操作が完了するまでに10倍の時間がかかる
Entity Framework 6を使用してデータベースを処理しているMVCサイトがあり、すべてを非同期コントローラーとして実行し、データベースへの呼び出しを非同期対応として実行するように変更しています(例:ToListAsync())。 ToList()の代わりに) 私が抱えている問題は、クエリを非同期に変更するだけで信じられないほど遅くなることです。 次のコードは、データコンテキストから「アルバム」オブジェクトのコレクションを取得し、かなり単純なデータベース結合に変換されます。 // Get the albums var albums = await this.context.Albums .Where(x => x.Artist.ID == artist.ID) .ToListAsync(); 作成されたSQLは次のとおりです。 exec sp_executesql N'SELECT [Extent1].[ID] AS [ID], [Extent1].[URL] AS [URL], [Extent1].[ASIN] AS [ASIN], [Extent1].[Title] AS [Title], [Extent1].[ReleaseDate] AS [ReleaseDate], [Extent1].[AccurateDay] AS [AccurateDay], [Extent1].[AccurateMonth] AS [AccurateMonth], [Extent1].[Type] AS [Type], [Extent1].[Tracks] …