【发布时间】:2021-06-13 09:00:54
【问题描述】:
以下查询花费了太多时间来执行。是关于出生日期的索引。还有什么可以让它更快的吗
SELECT * FROM Member_dtls WHERE
DATEADD(year, 10, DateOfBirth) < GETDATE()
【问题讨论】:
-
你在那个 DateOfBirth 上使用了一个函数,所以索引被忽略了
标签: sql optimization
以下查询花费了太多时间来执行。是关于出生日期的索引。还有什么可以让它更快的吗
SELECT * FROM Member_dtls WHERE
DATEADD(year, 10, DateOfBirth) < GETDATE()
【问题讨论】:
标签: sql optimization
是的,设为SARGable(这里避免在被索引的列上表达):
SELECT * FROM Member_dtls
WHERE DateOfBirth < DATEADD(year, -10, GETDATE())
-- this part is "constant"
【讨论】: