我有一些与LINQ有关的复杂查询,这些查询在幕后进行7-9连接。我在优化queries.Now的过程中,我对这里的几件事有点困惑-
发布于 2010-11-09 10:30:06
这里有很多因素,对我来说也有很多未知因素,所以我回答的潜台词是“这取决于”。
1)使用定义良好的Datacontext
,LINQ通常会生成高效的查询。过滤器自动参数化,使数据库引擎能够缓存执行计划。因此,我认为唯一的时间存储过程会表现得更好,如果需要查询提示,或者查询生成器不支持的其他机制。我相信最好的做法是使用LINQ,并且只有当一个重要的优化能够被演示时才使用sprocs。
2)通常限制您到DB的旅行是最佳的。但是阅读你们的关系中所需要的连接数量会让人怀疑添加一个视图是否会为您提供更好的服务。它将抽象复杂性,视图与LINQ很好地集成,它将保护您的代码不受未来模式更改的影响。
让我也推荐LINQPad来帮助优化LINQ查询。它已经成为我不可或缺的工具,如果你还没有使用它,我打赌它也会成为你的工具之一。
此外,有关LINQ的更多意见,请参阅本问题中的讨论:LINQ to-SQL vs存储过程?
https://stackoverflow.com/questions/4137090
复制相似问题