编写SQL查询的方式会影响性能吗?

cha*_*hat 4 sql linq

说我有一张桌子

Id int
Region int
Name nvarchar

select * from table1 where region = 1 and name = 'test'

select * from table1 where name = 'test' and region = 1
Run Code Online (Sandbox Code Playgroud)

性能会有差异吗?假设没有索引

与LINQ一样吗?

Jon*_*jap 7

因为你的限定符本质上实际上是相同的(无论where子句的顺序是什么并不重要),那么不,这些之间没有区别.

对于LINQ,您需要知道LINQ to SQL实际发出的查询(您可以使用SQL事件探查器查找).有时查询将是您能想到的最简单的查询,有时候如果没有您意识到这将是一个复杂的问题,因为诸如依赖于FK或其他此类约束之类的事情.LINQ也不会使用*来进行选择.

唯一真正的方法是找出两个查询的SQL Server查询执行计划.要了解有关该主题的更多信息,请访问:

SQL Server查询执行计划分析