LINQ的速度有多快?

Tha*_*oke 9 .net linq linq-to-sql

我需要操纵100,000到200,000条记录.
我正在考虑使用LINQ(到SQL)来做到这一点.
我从经验中知道过滤数据视图非常慢.
那么LINQ有多快?

你能否告诉我你的经历以及它是否值得使用,或者我会更好地使用SQL存储过程(繁重且不太灵活)?

在成千上万条记录中,我需要查找数据组然后处理它们,每组有大约50条记录.

Mar*_*tin 19

LINQ to SQL将您的查询表达式转换为T-SQL,因此您的查询性能应与通过ADO.NET发送该SQL查询完全相同.我想,将查询的表达式树转换为等效的T-SQL会有一点开销,但我的经验是,这与实际查询时间相比较小.

您当然可以确切地了解生成的T-SQL,因此请确保您具有良好的支持索引.

与DataViews的主要区别在于LINQ to SQL不会将所有数据都带入内存并在那里对其进行过滤.相反,它让数据库做它擅长的事情,只将匹配的数据带入内存.


fox*_*rot 11

这取决于你想要做什么.LINQ对我来说非常快从数据库中提取数据,但LINQ-to-SQL会直接将您的请求转换为SQL来运行它.但是,有时候我发现在某些情况下使用存储过程会更好.

例如,我有一些我需要查询的数据涉及几个表,以及相当密集的密钥.使用LINQ以及LINQ定制查询的相对缺乏灵活性,这些查询将花费几分钟时间.通过手动调整SQL(即,通过在JOIN中放置'WHERE'类型参数以最小化JOIN的数据强度),我能够大大提高性能.

我的建议是,尽可能使用LINQ,但如果确定LINQ生成的SQL太慢,并且可以轻松地手动调整SQL以完成所需的操作,则不要害怕进入存储过程路由.

  • 您不需要存储过程来执行此操作.您可以通过linq-to-sql执行sql语句. (2认同)