我已经阅读了很多关于linq to sql性能的文章。结果证明,与常规方法(DAL或Microsoft企业库)相比,linq to sql更慢。即使进行了性能调优,如禁用ObjectTracking和其他技巧,读写操作都会更慢。我知道它有快速开发、清晰的代码等优点,但性能如何呢?
如果只用于读取操作,会怎样呢?
请给出你的建议。
我已经阅读了很多关于linq to sql性能的文章。结果证明,与常规方法(DAL或Microsoft企业库)相比,linq to sql更慢。即使进行了性能调优,如禁用ObjectTracking和其他技巧,读写操作都会更慢。我知道它有快速开发、清晰的代码等优点,但性能如何呢?
如果只用于读取操作,会怎样呢?
请给出你的建议。
对于stackoverflow来说,这似乎工作得足够好;-p 特别是如果您使用编译查询,与适当的数据库设计、获取正确的列/行以及避免n+1加载相比,这不太可能成为瓶颈。
对于读操作,LINQ To SQL 的速度应该与直接编写 SQL 相当快,因为这正是它所做的。创建 SQL 的开销不应该被注意到。可能会有一些查询无法像手动编写查询那样优化,但在我看来,在大多数情况下它表现得非常好。
对于批量更新,LINQ To SQL 通常较慢,因为它逐个处理行。您不能像 LINQ to SQL 中那样执行 UPDATE Foo SET x = 0 WHERE id BETWEEN 100 AND 200
这样的操作而不获取所有行。目前最好手动编写 SQL 来处理此类操作。