一个关于执行计划的小问题测试(r8笔记第60天)

最近有朋友在微信公众号后台留言提了一个问题,问题如下:

但是两张表在sql中是有等值连接的,为什么执行计划没有提现连接方式呢?

一个关于执行计划的小问题测试(r8笔记第60天)

为了简单复现这个问题,在本地做了一个小测试。

一个关于执行计划的小问题测试(r8笔记第60天)

一个关于执行计划的小问题测试(r8笔记第60天)

这个时候可以看到对这两个表还是走了全表扫描,表连接为hash join的方式,可以看到一致性读也确实低了不少。

一个关于执行计划的小问题测试(r8笔记第60天)

可以看到CBO还是做了很合理的选择,对于xs_xf还是使用全表扫描,对于返回的结果集,是通过绑定变量的方式传入子查询。

一个关于执行计划的小问题测试(r8笔记第60天)

这种结果就好比下面的形式。