执行计划中,步骤的实现并非按编号顺序进行。Oracle首先处理树结构图中的叶子节点步骤,例如步骤3、5、6。每一步返回的行称为其下一步骤的行源。以下是具体的步骤执行顺序:

  1. 首先,Oracle执行步骤3,并将结果行逐一返回给步骤2
  2. 对于步骤3返回的每一行,Oracle接着执行:
  3. 步骤5,并将结果ROWID返回给步骤4
  4. 然后,Oracle执行步骤4,并将结果行返回给步骤2
  5. 接下来,Oracle执行步骤2,接受来自步骤3步骤4的行,并将结果返回给步骤1
  6. Oracle执行步骤6,如果有结果行,则将其返回给步骤1
  7. 最后,Oracle执行步骤1,如果从步骤6返回行,则将来自步骤2的行返回给发出SQL语句的用户。