LINQ是如此之慢,拥有庞大的数据库表

时间:2013-12-17 21:05:50

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

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

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

1 个答案:

答案 0 :(得分:3)

你必须做一些分析。

  1. Log the actual SQL commands that Linq is generating.
  2. 使用SQL Server分析来确定哪些查询在性能方面是最糟糕的罪魁祸首。检查这些查询的执行策略。
  3. 如果Linq生成了愚蠢的SQL,那么您可能需要调整Linq代码,或者考虑使用原始SQL命令。如果执行策略显示不需要的策略(如表扫描),那么您可能需要考虑添加索引或更改它们(重新排序键,添加包含的列)。

    另请注意,Linq通常很慢。但实际上,100万条记录并不是那么大,我相信你可以用上面的方法来提高性能。