我正在使用ASP.NET Core 1.1。
以下是占用大部分时间并导致所有这些问题的查询:
C#
List<Message> messages =await _context.Messages.Where(m => m.UserId.Equals(_userManager.GetUserId(User)))
.Select(m => new Message { ID = m.ID, DateTime = m.DateTime, Text = m.Text }).ToListAsync();
SQL
SELECT [m].[ID], [m].[DateTime], [m].[Text] FROM [Messages] AS [m] WHERE [m].[UserId] = @__GetUserId_0
我的网站变得非常慢,没有响应,有时会显示错误。
答案 0 :(得分:1)
正如我在评论中所述:您的执行计划显示了近500,000行的索引扫描。您似乎正在进行完整扫描,而不是点击索引。
我怀疑在UserId
上添加索引可以解决此问题,因为这是WHERE
子句中唯一使用的字段。