龙空技术网

Oracle非标准的日期格式的日期格式导致分区裁剪特性无效

从头开始自学java 216

前言:

目前兄弟们对“oracle表中时间的格式”大致比较关心,各位老铁们都想要了解一些“oracle表中时间的格式”的相关资讯。那么小编同时在网上汇集了一些关于“oracle表中时间的格式””的相关资讯,希望兄弟们能喜欢,看官们一起来了解一下吧!

结论

非标准的SQL引起优化器判断异常,将其修改成标准写法后,SQL恢复正常。

问题

这个SQL中涉及的表是一个分区表,该SQL扫描了所有分区,分区裁剪特性没有起效。

解决方法

尝试通过引入union all来分解查询,以便于优化器做出更准确的判断。采用这个方法后,确实起效了,当然不可避免会扫描两遍表。

通过调整日期FORMAT格式,优化器很精准地判断了分区,整体SQL性能得到了很大的提高。

分析

对于非标准的日期格式,Oracle在复杂逻辑判断的情况下分区裁剪特性无法识别,不起作用。这种情况下,会走全表扫描,结果是正确的,但是执行效率会很低。

通过使用union all,简化了条件判断。使得Oracle在非保准日期格式下也能使用分区裁剪特性,但最佳修改方式还是规范SQL的写法。

标签: #oracle表中时间的格式