dot*_*00b 3 t-sql sql-server datetime date
哪个被认为更好?
select *
from TableA
where productDate < '12/9/2013'
Run Code Online (Sandbox Code Playgroud)
要么
select *
from TableA
where DATEDIFF(day, productDate, '12/9/2013') > 0
Run Code Online (Sandbox Code Playgroud)
在浏览文章时,我读到使用Date函数(例如:datediff,dateadd),其中子句会对性能产生负面影响.这是真的?
最好的可能是:
SELECT <column list> -- not * (1)
FROM dbo.TableA -- please always specify schema (2)
WHERE productDate < '20131209'; -- always use a semi-colon (3)
-- and always use a non-regional, unambiguous date format (4)
Run Code Online (Sandbox Code Playgroud)
这将是最好的原因是因为它为优化器提供了在productDate列上使用索引的最佳机会.即使今天不存在索引,明天也可能会添加一个索引.应用类似DATEDIFF()列的函数将始终使表达式不可搜索,这意味着它总是必须使用效率较低的扫描(假设这是唯一的搜索谓词).
至于内联评论:
| 归档时间: |
|
| 查看次数: |
3776 次 |
| 最近记录: |