sql - 将日期谓词更改一天时,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 中的解释计划在两个查询之间看起来并没有什么不同。
解决方案
推荐阅读
- .htaccess - .htaccess 将“/”重定向到非“/”是 500 内部服务器错误
- r - 如何允许 R 忽略我的函数的参数,而不跳到下一个参数?
- javascript - Javascript - 通过循环向现有对象属性添加更多值
- angular - Angular 10 Google 索引只有第一页?
- python - 编译程序
- visual-c++ - visual c++ 2019:typedef向量
, 类方法内部的用法 - unity3d - Unity 中的正确尺寸:图像 + 比例或图像 -> svg -> 搅拌器 -> Unity
- jedis - 直接在 Ktor build.gradle 中实现 Jedis
- javascript - 关于在 firebase 云函数中的 promise 的 then 回调中返回 null 值的问题
- ajax - 如何将codeigniter中的数据库中的记录提取到Datatable中