Dha*_*ana 0 sql-server performance
大多数SQL查询都没有对where子句进行数学运算.
将它们放在'where子句'上有什么问题?有任何性能问题吗?
例如:
SELECT*FROM Employee WHERE Salary*3 = 5000
cjk*_*cjk 11
如果where子句可以使用索引,则通常(但不总是)更快.在字段上使用数学运算将停止使用索引.
例如,如果您有一个包含一百万行的表和一个已建立索引的日期列,则此处的查询1将远远超过查询2(它们都将检索日期在过去7天内的所有行):
查询1:
select date from table where date > dateadd(d, -7, getdate())
Run Code Online (Sandbox Code Playgroud)
查询2:
select date from table where dateadd(d, 7, date) > getdate()
Run Code Online (Sandbox Code Playgroud)
在您的示例中,查询会更好:
select * from employee where salary = (5000 / 3)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6172 次 |
| 最近记录: |