玖叶教程网

前端编程开发入门

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

结论

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

问题

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

解决方法

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

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

分析

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

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

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言