gpt4 book ai didi

asp.net-mvc - .包含在 Entity Framework 中有多贵?

转载 作者:行者123 更新时间:2023-12-02 23:52:11 24 4
gpt4 key购买 nike

我在 ASP.NET MVC 操作方法中有以下简单查询。

IEnumerable<Company> query = unitOfWork.CompanyRepository.dbSet
.Include("Adresses.PhoneNumbers")
.Include("Adresses.FaxNumber")
.Include("Emails").Where(q => q.CustomerCompany == true);

此操作方法是通过 ajax get 请求调用的,有时需要长达 25 秒!数据库中只有 40 个公司。每个公司都有一个地址,最多有几个电话号码和传真号码。(有趣的是,有时需要 200-500 毫秒,但非常罕见)

如果我将此查询更改为以下

IEnumerable<Company> query = unitOfWork.CompanyRepository.dbSet
.Where(q => q.CustomerCompany == true);

只需要大约 200 毫秒。

所以我想知道为什么 .Include 如此昂贵。我的应用程序正在生产中,并且我正在将 SQL Azure 与 Azure 网站结合使用。

谢谢。

最佳答案

生成的 SQL 更复杂,但通常性能是由于 LINQ 查询编译开销。您需要进行分析才能确定。一种可能的解决方法是使用预编译查询,这在第二次及后续次数中会更快。更好的解决办法可能是仅使用所需数据的投影,而不是在查询中包含 4 个实体,这相当于在所有 4 个表上使用 SELECT *。如果您需要所有这些完整实体,另一个可能的修复方法是显式加载详细信息,这意味着更多(但更快!)查询。

关于asp.net-mvc - .包含在 Entity Framework 中有多贵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12866560/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com