如何优化对数据库的许多不同请求?

时间:2019-03-05 17:29:37

标签: c# sql-server asp.net-mvc entity-framework asp.net-web-api

我正在使用带有EF 6和LINQ的SQL Server数据库。

例如,我在页面上有10个下拉列表。我需要从数据库中获取这些下拉列表。

我需要同时执行10个不同的请求,这需要很多时间。在我的情况下,每个请求大约需要0.05ec。 10个请求* 0.05 = 0.5秒。很长。

如何以其他方式提出这些请求以提高性能?

请求示例

var marriageStatuses = await db.MarriageStatus
                               .AsNoTracking()
                               .Select(x => new
                                            {
                                                Id = x.Id,
                                                Description = x.Description
                                            })
                               .ToListAsync();

表格示例

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

有一些通用的简单技术可以解决此类问题:

  1. 通过将整个集合组合为一个查询来避免任何n + 1个查询
  2. 合并其他任何要提取冗余数据的查询
  3. 通过后续服务器请求延迟加载组件,以便页面首先加载

如果您有更多详细信息,例如要查询的表和列,我可能可以更具体地回答。