【问题标题】:LINQ is so slow with huge database table大型数据库表的 LINQ 太慢了
【发布时间】:2013-12-17 21:05:49
【问题描述】:

我有一个带有 SQL 服务器后端的 ASP.Net MVC 软件。我有一个有 80 列的表,目前大约有 975413 条记录。我正在使用 Linq 进行与数据库的事务。问题是我注意到执行 SaveChanges()、Find()、Select() 等命令需要很长时间。

如何减少执行此类 Linq 命令所花费的时间...

【问题讨论】:

  • 您是否确认问题出在 linq 而不是生成的 SQL?
  • 您能向我们展示一些您的查询示例吗?

标签: sql-server asp.net-mvc linq ado.net


【解决方案1】:

您必须进行一些分析。

  1. Log the actual SQL commands that Linq is generating.
  2. 使用 SQL Server 分析来确定哪些查询是性能最差的罪魁祸首。检查这些查询的执行策略。

如果 Linq 正在生成愚蠢的 SQL,那么您可能需要调整您的 Linq 代码,或者考虑使用原始 SQL 命令。如果执行策略显示不需要的策略,例如表扫描,那么您可能需要考虑添加索引或更改它们(重新排序键,添加包含的列)。

还请注意,Linq 通常很慢。但实际上,100 万条记录并没有那么大,我相信您可以使用上述方法提高性能。

【讨论】:

    猜你喜欢
    • 2016-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多