首页 > 解决方案 > 将日期谓词更改一天时,Oracle SQL 查询性能发生变化

问题描述

我有这个非常复杂的 sql 查询,其中有许多连接在几秒钟内运行,谓词中有一个日期,但是当我将日期更改一天时,我最终会在 15 分钟后取消查询。PHA是Oracle中的PO.PO_HEADERS_ALL表,CREATION_DATE列定义为DATE类型。

--this finishes in a few seconds with 444 records
and pha.creation_date > to_date('23-JAN-2021','DD-MON-YYYY')

-- this never finishes
and pha.creation_date > to_date('22-JAN-2021','DD-MON-YYYY')

如果在谓词中使用 TRUNC(pha.creation_date),则两个查询都会在几秒钟内完成,并获得预期的结果。

只是想知道是否有人可以解释为什么有一天会引起不同?TOAD 中的解释计划在两个查询之间看起来并没有什么不同。

标签: sqloracle

解决方案


推荐阅读