暂无图片
Oracle为什么exists/not exists容易产生FILTER,而in很少会产生FILTER呢?
我来答
分享
同同
2023-03-27
Oracle为什么exists/not exists容易产生FILTER,而in很少会产生FILTER呢?

Oracle为什么exists/not exists容易产生FILTER,而in很少会产生FILTER呢?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新

当子查询关键字(union/union all/start with connect by/rownum/cube/rollup),子查询会被固化为一个整体,采用exists/not exists这种写法,这时子查询中有主表连接列,只能是主表通过连接列传值给子表,所以CBO只能选择FILTER。而我们如果将SQL改写为in/not in这种写法,子查询虽然被固化为整体,但是子查询中没有主表连接列字段,这个时候CBO就不会选择FILTER。

暂无图片 评论
暂无图片 有用 3
暂无图片
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏