WoI*_*IIe 5 c# sql linq performance entity-framework
我一直在寻找一些技巧来提高我的实体框架查询性能,并偶然发现了这篇有用的文章。
这篇文章的作者提到了以下几点:
08 避免使用 contains
在 LINQ 中,我们使用 contains 方法来检查是否存在。它在 SQL 中被转换为“WHERE IN”,这会导致性能下降。
我还有哪些更快的替代方案?
它非常依赖于上下文,你应该关注的不是避免.Contains(),而是如何WHERE xx IN yy在 SQL 中避免。您可以加入吗?是否可以指定一个区间而不是离散值?
这里给出了一个完美的例子:避免 SQL WHERE NOT IN 子句
可以通过使用连接来避免它。
我想说,这WHERE xx IN yy通常只是解决方案的一半,通常您真正想要的是其他东西,而您只能到达一半,而不是直接到达那里,就像连接的情况一样。