EF LINQ ToList 非常慢

2024-03-30

我在用ASP NET MVC4.5 和EF6,代码优先迁移。

我有这段代码,大约需要 6 秒。

var filtered = _repository.Requests.Where(r => some conditions); // this is fast, conditions match only 8 items
var list = filtered.ToList(); // this takes 6 seconds, has 8 items inside

我以为这是因为关系,它必须将它们建立在内存中,但事实并非如此,因为即使我返回 0 个字段,它仍然很慢.

var filtered = _repository.Requests.Where(r => some conditions).Select(e => new {}); // this is fast, conditions match only 8 items
var list = filtered.ToList(); // this takes still around 5-6 seconds, has 8 items inside

现在,Requests 表非常复杂,有很多关系,并且有大约 16k 项。另一方面,过滤后的列表应仅包含 8 个项目的代理。

Why is ToList()方法这么慢?我实际上认为问题不在于 ToList() 方法,而可能是 EF 问题,或者糟糕的设计问题。

有人有过这样的经历吗?

EDIT:

这些是条件:

_repository.Requests.Where(r => ids.Any(a => a == r.Student.Id) && r.StartDate <= cycle.EndDate && r.EndDate >= cycle.StartDate)

所以基本上,我可以检查是否Studentid 在我的 ID 列表中并检查日期是否匹配。


Your filtered变量包含一个查询,它是question,并且它不包含answer。如果您通过致电请求答复.ToList(),即执行查询的时间。这就是为什么它很慢的原因,因为只有当你打电话时.ToList()是您的数据库执行的查询。

它被称为延期执行. 可能会为您提供更多相关信息。

如果您显示一些条件,我们也许可以说出为什么它很慢。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

EF LINQ ToList 非常慢 的相关文章

  • Blazor 与 Razor

    随着 Blazor 的发明 我想知道这两种语言之间是否存在显着的效率 无论是在代码创建方面还是在代码的实际编译 执行方面 https github com SteveSanderson Blazor https github com Ste
  • 通信对象 System.ServiceModel.Channels.ServiceChannel 不能用于通信

    通信对象System ServiceModel Channels ServiceChannel 无法用于通信 因为它处于故障状态 这个错误到底是什么意思 我该如何解决它 您收到此错误是因为您让服务器端发生 NET 异常 并且您没有捕获并处理
  • Guid 应包含 32 位数字和 4 个破折号

    我有一个包含 createuserwizard 控件的网站 创建帐户后 验证电子邮件及其验证 URL 将发送到用户的电子邮件地址 但是 当我进行测试运行时 单击电子邮件中的 URL 时 会出现以下错误 Guid should contain
  • 调试内存不足异常

    在修复我制作的小型 ASP NET C Web 应用程序的错误时 我遇到了 OutOfMemoryException 没有关于在哪里查看的提示 因为这是一个编译时错误 如何诊断此异常 我假设这正是内存分析发挥作用的地方 有小费吗 Thank
  • Xamarin Android:获取内存中的所有进程

    有没有办法读取所有进程 而不仅仅是正在运行的进程 如果我对 Android 的理解正确的话 一次只有一个进程在运行 其他所有进程都被冻结 后台进程被忽略 您可以使用以下代码片段获取当前正在运行的所有 Android 应用程序进程 Activ
  • 两组点之间的最佳匹配

    I ve got two lists of points let s call them L1 P1 x1 y1 Pn xn yn and L2 P 1 x 1 y 1 P n x n y n 我的任务是找到它们点之间的最佳匹配 以最小化它
  • 从 Orchard 内的主题渲染图像

    我刚刚选择 Orchard 来构建我的博客 作为创建这个新博客的努力的一部分 我正在创建一个自定义主题 这个自定义主题同时具有 CSS 和图像 我的问题 我的问题基本上可以归结为 如何渲染属于主题一部分的图像 到目前为止我已经尝试过的 我尝
  • 如何排列表格中的项目 - MVC3 视图 (Index.cshtml)

    我想使用 ASP NET MVC3 显示特定类型食品样本中存在的不同类型维生素的含量 如何在我的视图 Index cshtml 中显示它 an example 这些是我的代码 table tr th th foreach var m in
  • Qt - 设置不可编辑的QComboBox的显示文本

    我想将 QComboBox 的文本设置为某些自定义文本 不在 QComboBox 的列表中 而不将此文本添加为 QComboBox 的项目 此行为可以在可编辑的 QComboBox 上实现QComboBox setEditText cons
  • C# 搜索目录中包含字符串的所有文件,然后返回该字符串

    使用用户在文本框中输入的内容 我想搜索目录中的哪个文件包含该文本 然后我想解析出信息 但我似乎找不到该字符串或至少返回信息 任何帮助将不胜感激 我当前的代码 private void btnSearchSerial Click object
  • 过期时自动重新填充缓存

    我当前缓存方法调用的结果 缓存代码遵循标准模式 如果存在 则使用缓存中的项目 否则计算结果 在返回之前将其缓存以供将来调用 我想保护客户端代码免受缓存未命中的影响 例如 当项目过期时 我正在考虑生成一个线程来等待缓存对象的生命周期 然后运行
  • 为什么我使用google'smtp'无法发送电子邮件?

    我有以下程序使用 smtp gmail com 587 发送电子邮件 namespace TestMailServer class Program static void Main string args MailMessage mail
  • 哪些属性有助于运行时 .Net 性能?

    我正在寻找可用于通过向加载器 JIT 编译器或 ngen 提供提示来确保 Net 应用程序获得最佳运行时性能的属性 例如我们有可调试属性 http msdn microsoft com en us library k2wxda47 aspx
  • 同时从多个流中捕获、最佳方法以及如何减少 CPU 使用率

    我目前正在编写一个应用程序 该应用程序将捕获大量 RTSP 流 在我的例子中为 12 个 并将其显示在 QT 小部件上 当我超过大约 6 7 个流时 问题就会出现 CPU 使用率激增并且出现明显的卡顿 我认为它不是 QT 绘制函数的原因是因
  • 我应该在应用程序退出之前运行 Dispose 吗?

    我应该在应用程序退出之前运行 Dispose 吗 例如 我创建了许多对象 其中一些对象具有事件订阅 var myObject new MyClass myObject OnEvent OnEventHandle 例如 在我的工作中 我应该使
  • 如何打开 Windows 资源管理器窗口并选择特定文件夹

    我有一个 winform 应用程序 这个 winform 应用程序创建了几个文件 我想在我的应用程序中实现 查找目标 功能来显示这些文件 这些文件位于同一文件夹中 看图片 假设我创建了几个文件 C Test 文件夹 该文件夹包含以下文件 C
  • 以编程方式使用自定义元素创建网格

    我正在尝试以编程方式创建一个网格 并将自定义控件作为子项附加到网格中 作为 2x2 矩阵中的第 0 行第 0 列 为了让事情变得更棘手 我使用了 MVVM 设计模式 下面是一些代码可以帮助大家理解这个想法 应用程序 xaml cs base
  • boost::program_options:带有固定和可变标记的参数?

    是否可以在 boost program options 中使用此类参数 program p1 123 p2 234 p3 345 p12 678 即 是否可以使用第一个标记指定参数名称 例如 p 后跟一个数字 是动态的吗 我想避免这种情况
  • Azure函数版本2.0-应用程序blobTrigger不工作

    我有一个工作功能应用程序 它有一个 blob 输入和一个事件中心输出 在测试版中工作 随着最新的更改 我的功能不再起作用 我尝试根据发行说明更新 host json 文件 但它没有引用 blob 触发器 version 2 0 extens
  • 如何创建向后兼容 Windows 7 的缩放和尺寸更改每显示器 DPI 感知应用程序?

    我是 WPF 和 DPI 感知 API 的新手 正在编写一个在 Windows 7 8 1 和 10 中运行的应用程序 我使用具有不同每个显示器 DPI 设置的多个显示器 并且有兴趣将我的应用程序制作为跨桌面配置尽可能兼容 我已经知道可以将

随机推荐

  • C++ 流如何为输入分配空间?

    例如 is type std istream str type std string is gt gt str 这是怎么长出来的str适应输入 它逐个字符地读取并调用str push back 或类似的东西 或者它是否有一种机制可以在读取输
  • 作为 Xcode 构建过程的一部分,如何运行上传符号来上传 dSYM?

    好的 所以我正在尝试自动上传 dSYM 我正在遵循此官方文档中的说明 https firebase google com docs crashlytics get deobfuscated reports https firebase go
  • 左右声道与麦克风录音分离

    我试图从麦克风录制并将录制的数据仅发送到左通道 右通道上有零 但我的技术似乎不起作用 我正在使用 PCM 16 和单声道模式的录音和音轨 我似乎做错了什么 package com example leftrighttest import a
  • 色彩图的非线性缩放以增强对比度

    以下 python 代码创建包含正态分布值的矩阵热图 import numpy as np from matplotlib import pylab as plt np random seed 123 make sure we all ha
  • 如何迁移到WKWebView?

    我试图了解如何使用 iOS8 中新的 WKWebView 但找不到太多信息 我读了 http developer telerik com featured why ios 8s wkwebview is a big deal for hyb
  • 学习 Objective-C 的好资源 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Maven 获取特定类

    有没有一种方法可以让 maven 在将依赖项导入 uber jar shade 时仅包含特定的 class 文件 我正在寻找一种方法来将名称中包含 Client 的文件从依赖项 jar 中提取出来并添加到最终的 jar 中 任何帮助都会很棒
  • Python 中的字母数字排序和负数

    我有一个相当简单的列表 一个数字后跟一个句子 这里按正确的顺序 347 a negative number 100 another negative number 25 and again a negative number 17 some
  • ArrayCollection 删除排序

    对我的数据提供程序 数组集合 应用数字排序后 我无法通过平铺列表对项目重新排序 我是否需要从 arrayCollection txt 中删除排序 如果是这样 这只是设置 collection sort null 的情况吗 var sortF
  • 为什么用户控件加载事件没有被触发

    我有一个用户控件 我有时再次遇到这种情况 但总是可以通过使用 New 构造函数 但我仍然想知道我做错了什么 因为如果加载了控件 则必须触发 load 事件 这是一些代码
  • 签名 url 中存在 MalformedSecurityHeader 错误 - 标头包含在签名标头中,但未包含在请求中

    我正在尝试使用签名 URL 使用 React 和 Node js 通过 Google 应用程序引擎上传文件 我能够生成签名 URL 但在控制台中收到 CORS 错误时 当我在浏览器中打开签名 URL 时 收到以下错误
  • 错误 LNK1120:1 未解析的外部 - VS13 C [重复]

    这个问题在这里已经有答案了 我尝试编译这段代码 include
  • 如何在 Yahoo PHP5 Sdk yos-social-php5 上使用 YQL 获取私有数据

    我在用雅虎 PHP5 SDK https github com yahoo yos social php5并使用它从表 Social contacts 中获取用户联系人 该表是私有数据 在 Delicious 的示例中 它仅显示从 YQL
  • 使用 Swift 的预期声明错误

    我正在尝试传递 a 的布尔值UISwitch到另一个班级使用NSUserDefaults 由于某种原因 在包含开关的类中 if应该将值设置为的语句NSUserDefaults无法读取 switch 声明 ViewController swi
  • jquery .eq() 方法中的“eq”代表什么?

    例子 td eq 2 css color red or td eq 2 css color red 我想知道缩写 eq 代表什么 我不是问 eq 方法是做什么的 可以找到here http api jquery com eq 关于这个问题的
  • Mono Cecil 生成 PDB 时出错

    下面的代码允许我更改方法主体并保存回程序集 Recreate PDB var assemblyResolver new DefaultAssemblyResolver var assemblyLocation Path GetDirecto
  • 当值是列表时交换字典键和值

    类似于这个问题 https stackoverflow com questions 1031851 python best way to exchange keys with values in a dictionary and 这个问题
  • 初始化 Facebook 评论后加载 jScrollPane - 如何?

    Facebook 评论插件是否有 onComplete 状态或类似状态 我正在尝试将 jScrollPane 滚动条添加到其中包含 FB Comments 的内容框 发生的情况是我将 FB Comments iframe 放置在框内容的顶部
  • 从 R 中的语料库创建单词子集

    我使用 XML 包根据 Twitter 搜索创建了一个 1 500 行向量 然后我将其转换为语料库以与 tm 包一起使用 我希望最终使用其中一些 最常见的 单词创建一个词云 因此我将其转换为 TermDocumentMatrix 以便能够找
  • EF LINQ ToList 非常慢

    我在用ASP NET MVC4 5 和EF6 代码优先迁移 我有这段代码 大约需要 6 秒 var filtered repository Requests Where r gt some conditions this is fast c