【问题标题】:BETWEEN Versus >= and <= in DB2 SQL Query - PerformanceBETWEEN Versus >= and <= in DB2 SQL Query - 性能
【发布时间】:2012-11-14 16:12:00
【问题描述】:

我有以下疑问:

SELECT ID, ADDRESS 
FROM EMPLOYEE A 
WHERE ID=12345 
AND CURRENT DATE BETWEEN A.EFF_DT AND A.EXP_DT 

SELECT ID, ADDRESS 
FROM EMPLOYEE A 
WHERE ID=12345 
AND CURRENT DATE >= A.EFF_DT AND CURRENT DATE <= A.EXP_DT 

在这两个查询中,哪个查询产生更好的性能。

这里我使用运算符 >= 和

请提出建议。

提前致谢。

【问题讨论】:

  • 请尽可能避免使用BETWEEN,实际上通常最好为范围设置独占上限 ('&lt;'),尤其是日期/时间/时间戳类型(你真的不想构造微秒,是吗?)。

标签: db2 query-optimization


【解决方案1】:

Between 只是 >= 和

如果想获得更多帮助,请点击此处的链接:Is the 'BETWEEN' function very expensive in SQL Server?

【讨论】:

  • 除非他在 DB2 上运行它,因此对 SQL Server 的讨论不一定适用。虽然在这种情况下,它可能以相同的方式实现。
【解决方案2】:

根据我对 DB2/z 的了解(LUW 产品可能有所不同,但我对此表示怀疑),这两者都应该为您提供完全相同的执行配置文件。

如果你真的很担心,你应该对这两个查询运行EXPLAIN 看看是否有任何差异。

【讨论】:

    猜你喜欢
    • 2018-02-18
    • 1970-01-01
    • 2016-10-15
    • 2022-12-01
    • 1970-01-01
    • 2022-01-09
    • 2022-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多