(1).你知道下面这个执行计划问题在哪里呢?从哪里可以看出?
(2).总共消耗的实际时间为4.19秒,在8和9两步消耗了4.17秒,很明显问题就在这了,这个计划显示内容为:
9-》通过索引范围扫描获取ROWID
8-》通过9获取的ROWID回表取数
难道这样访问不对?这样有什么不对呢?这样当然没有问题,因为问题并不在这,接着往下看;
(3).真正原因在于列starts,循环了216次,那这个216是从哪里来的?为啥产生?接着往下看。。。
(4).216是从第7->6生成的最终结果集+第5的NESTED LOOPS方式而生成的循环,这样问题就清楚了,NL引起的;
(5).解决起来就很简单了,将NL换成HASH,具体如何换可参见如下地址: