oracle嵌套循环的执行计划优化(二)

2014-11-24 09:18:59 · 作者: · 浏览: 1
om
CREATE INDEX t1_n ON t1(n)
当换成这个索引时,下面的执行计划将被采用。请注意,表t2 上的rowid 访问是处在不同的位置的.在前一个执行计划,它是在操作4 ,然而在后一个执行计划中,它是在操作1 。比较特别的是,row 记访问(操作l )的子操作是一个嵌套循环连接(操作2 )。从我们的角度看,这两个执行计划做了同一件事。卜面的这个执行计划可能是为了利用一些内部优化(比如块预取)。

在oracle 11g 中,可能会使用下面的执行计划,而不是之前的那个。注意,虽然查询始终是一个两表连接,执行计划却含有两个嵌套循环连接!一个简单的性能测试显示,使用它可以将性能提高约10 个百分点。这可能是由于一种新的内部优化只能在新的执行计划中才能生效。