【Oracle】优化器基础知识之结果集
1.结果集概念
结果集就是指包含指定执行结果的集合。对于优化器而言(无论CBO还是RBO),结果集和目标SQL执行计划的步骤相对应,一个执行步骤所产生的结果就是该执行步骤所对应的输出结果集。
对于目标SQL的执行计划而言,其中某个执行步骤的输出结果就是该执行步骤所对应的输出结果集,同时该执行步骤所对应的输出结果集可能就是下一个执行步骤的输入结果集。这样层层传递,知道最终输出结果集就是该SQL最终的执行结果。
2.案例说明
对于上述CBO的执行计划而言,我们将Id=1,2的执行步骤对应的输出结果集分别记为输出结果集1和输出结果集2。此处Oracle会先执行2,步骤2所对应的列的Rows的值为1,这说明对输出结果集2的Cardinality的估算值是1。同时,输出结果集2又会作为Id=1的输入结果集,步骤1所对应的列的Rows的值也为1,这说明对输出结果集1的Cardinality的估算值是1。同时Id=0的执行步骤为SELECT STATEMENT
,这就说明输出结果集1就是整个SQL的最终执行结果。
作者:奔跑的金鱼
声明:书写博客不易,转载请注明出处,请支持原创,侵权将追究法律责任
个性签名:人的一切的痛苦,本质上都是对自己无能的愤怒
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!