Kaz*_*kit 5 performance sql-server execution-plan query-performance
在我的查询中,我比较了WHERE子句中的两个日期
一旦使用CONVERT:
CONVERT(day,InsertedOn) = CONVERT(day,GETDATE())
Run Code Online (Sandbox Code Playgroud)
另一个使用DATEDIFF:
DATEDIFF(day,InsertedOn,GETDATE()) = 0
Run Code Online (Sandbox Code Playgroud)
这是执行计划
的数据类型InsertedOn是datetime。
哪个更优化?
相反,尝试
WHERE InsertedOn>=CAST(GETDATE() AS date) AND
InsertedOn<DATEADD(day, 1, CAST(GETDATE() AS date))
Run Code Online (Sandbox Code Playgroud)
这个表达式是sargable,这是您想要的最佳性能。就像@Mikael 指出的那样,您最好设计一个索引,使其InsertedOn成为第一列,并且查询中使用的所有其他列都包含在索引中。如果查询中有很多列,最好使用表的聚集索引。阅读覆盖索引。
| 归档时间: |
|
| 查看次数: |
11554 次 |
| 最近记录: |