优化前:
在下面的SQL语句中包含了IN,而IN之后的括号内是一个包含视图的子查询(即select grppolno from v_bc_lcpol where polno = ‘9022000000000388’),它不是一个常量的集合,所以Oracle这里不能对该SQL做“IN-List Iterator”和“IN-List Expansion OR Expansion”;

优化后:
上述SQL中的视图V_BC_LCGRPPOL和V_BC_LCPOL均包含了集合运算符UNION ALL,所以Oracle这里也不能对该SQL做视图合并;于是Oracle现在就只剩下了两条路可走:要么对该SQL走FILTER类型的执行计划(即“IN-List Filter”),要么对该SQL做子查询展开。


扫描二维码关注我的微学堂
搜索刘老师微信号:Rman-2014,备注“Oracle学习与咨询”,即可添加好友;或者扫描下面二维码,关注我的“微学堂”公众号,了解最新OCP认证动态、题库及答案解析、培训机构及讲师介绍、课堂授课内容等。每天还有一篇技术文章发布哦!

最后修改时间:2019-12-20 16:40:14
文章转载自Oracle微学堂,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




