【问题标题】:LINQ - .tolist() [closed]LINQ - .tolist() [关闭]
【发布时间】:2011-11-21 15:34:22
【问题描述】:

我有一个 LINQ 查询。此查询从数据库中检索 10000 条记录。但是,此查询的执行需要很长时间 - 大约 2 分钟。可能是什么原因?然后将数据显示在列表中的 DataGridView 中

【问题讨论】:

  • 我建议不要执行“ToList()”,你可以使用IEnumberable或IQueryable形式的结果吗?
  • 信息不足。你有快速连接到你的数据库吗?你有正确的连接、索引等吗?您是否包含一堆导航属性?物化大量数据并设置状态跟踪并不是一项廉价的操作。在没有任何实际解释(或代码!)的情况下说“我的代码很慢”并不是特别有用。
  • 你确定是 ToList() 慢而不是添加到 DataGridView 吗?

标签: linq


【解决方案1】:
  1. 启动 SQL Server Profiler(可在 sql management studio 的工具菜单中找到)。
  2. 研究生成的实际 SQL 查询并验证您的查询确实给出了 一个 查询,而不是 10.000。有时 linq-to-sql 无法很好地转换为 SQL。
  3. 复制执行的查询。
  4. 将查询粘贴到 sql management studio 窗口中。
  5. 启用“实际查询计划”
  6. 运行查询并检查查询计划,看看它是否建议任何新索引。创建它们并重试。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-25
  • 1970-01-01
  • 1970-01-01
  • 2014-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多