【问题标题】:query taking too much time查询花费太多时间
【发布时间】:2021-06-13 09:00:54
【问题描述】:

以下查询花费了太多时间来执行。是关于出生日期的索引。还有什么可以让它更快的吗

SELECT * FROM Member_dtls WHERE
DATEADD(year, 10, DateOfBirth) < GETDATE()

【问题讨论】:

  • 你在那个 DateOfBirth 上使用了一个函数,所以索引被忽略了

标签: sql optimization


【解决方案1】:

是的,设为SARGable(这里避免在被索引的列上表达):

SELECT * FROM Member_dtls 
WHERE DateOfBirth < DATEADD(year, -10, GETDATE())
                    -- this part is "constant"

【讨论】:

    猜你喜欢
    • 2018-01-08
    • 2019-11-14
    • 2012-09-03
    • 2013-07-11
    • 2017-09-24
    • 1970-01-01
    • 1970-01-01
    • 2013-07-18
    相关资源
    最近更新 更多