表员工
ID Name DOJ
------------------
1 A 2018-12-12
2 B 2018-11-12
......
查询:
SELECT NAME
FROM Employee
WHERE YEAR(DOJ) = 2018
employee
表数据量很大,如何优化?
最佳答案
您可以避免在 where
子句中使用
SELECT NAME
FROM Employee e
WHERE DOJ >= '20180101' and DOJ <= '20181231';
因此,该查询将被称为 SARGable,它可以利用索引(如果已经存在)
对于您当前的查询,在 where
子句中使用任何函数,这将使查询不可搜索。因此,SQL 优化器无法在 DOJ
上使用索引,即使索引存在也是如此。
小建议总是使用 ANSI SQL 日期格式 YYYYMMDD
关于sql-server - 如何优化SQL Server查询的where子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50014756/