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

标签 sql linq

假设我有一张 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 Server Query Execution Plan Analysis

关于sql - 编写 SQL 查询的方式会影响性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/766981/

相关文章:

java - 如何使用 SQLite ID 自动增量?

mysql - mySQL/SQL 中的 count(0)、count(1).. 和 count(*) 有什么区别?

c# - Linq 查询,如何检查空值并使用值 0 代替空值?

c# - 什么时候应该使用导航属性来查询数据库?

c# - 更聪明的where子句?

php - 使用可选参数构建 SQL 语句

sql - 如何在 BigQuery 的新 SQL 查询中连接/使用已保存的查询

mysql - 计算移动平均线 MySQL?

c# - 检查 LINQ 查询是否返回行

c# - 在单个 LINQ 表达式中转换 if