【发布时间】:2017-02-09 00:28:28
【问题描述】:
我正在使用 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
我的网站变得非常缓慢且没有响应,有时会显示错误。
【问题讨论】:
-
您的执行计划显示了近 500,000 行的索引扫描。好像你正在做一个完整的扫描,而不是点击索引。但是如果没有看到你的索引,这有点难以分辨。
-
查询返回多少行?查询在 SSMS 中需要多长时间(所有行都出现?)
-
@DavidMakogon 这很有趣,什么会导致跳过索引?
-
哪些索引是“必需索引”?您是否在 UserID 上创建了索引?
-
此对话应移至Stack Overflow Chat(chat.stackoverflow.com) 与在 cmets 中进行讨论。
标签: azure asp.net-core azure-sql-database