应该linq to sql用于流量高的网站

时间:2010-01-26 06:10:37

标签: c# asp.net performance linq-to-sql

我已经阅读了很多关于linq到sql性能的文章。我得到的结果是它比正常方法(DAL或Microsoft企业库)慢。 即使在执行性能调整之后,读取和写入操作也会变慢,例如禁用ObjectTracking和其他技巧。我知道它有像快速开发,清洁代码等的prons但是性能如何。

如果我只用于阅读操作怎么办。

请提出您的建议。

3 个答案:

答案 0 :(得分:8)

它似乎对stackoverflow工作得很好;-p特别是如果你使用compiled queries,这不太可能是你的瓶颈,比较(例如)适当的数据库设计和获取正确的列/行,以及避免n + 1加载。

答案 1 :(得分:4)

对于读取操作,LINQ To SQL应该与直接编写SQL一样快,因为这正是它的作用。创建SQL的开销不应该是显而易见的。可能有一些查询没有像手工编写查询那样最佳,但根据我的经验,它在大多数情况下表现都很好。

对于批量更新,LINQ To SQL通常较慢,因为它一次处理一行。如果没有获取所有行,则无法在LINQ to SQL中执行UPDATE Foo SET x = 0 WHERE id BETWEEN 100 AND 200之类的操作。目前最好手动编写SQL来进行此类操作。

答案 2 :(得分:3)

更新和删除是LINQ to SQL当前受到影响的地方,因为为每个受影响的对象生成了单独的语句。

也就是说,这篇博客文章详细介绍了如何将这两项操作都归结为1条声明,这有助于提高性能:Batch Updates and Deletes with LINQ to SQL

编译查询对于经常使用的查询也会派上用场,特别是那些使用参数获取特定结果的查询。您可能还会发现此帖子很有用:10 Tips to Improve your LINQ to SQL Application Performance