假设我有一张 table
Id int
Region int
Name nvarchar
select * from table1 where region = 1 and name = 'test'
select * from table1 where name = 'test' and region = 1
性能会有差异吗? 假设没有索引
和LINQ一样吗?
最佳答案
因为本质上您的限定符实际上是相同的(where 子句的放置顺序并不重要),所以不,它们之间没有区别。
对于 LINQ,您需要知道 LINQ to SQL 实际发出什么查询(您可以使用 SQL Profiler 来找出)。有时,查询将是您能想到的最简单的查询,有时,由于对 FK 的依赖性或其他此类约束,它会是您没有意识到的各种复杂的查询。 LINQ 也不会使用 * 进行选择。
唯一真正了解的方法是找出两个查询的 SQL Server 查询执行计划。要了解有关该主题的更多信息,请转到此处:
关于sql - 编写 SQL 查询的方式会影响性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/766981/