在ORACLE数据库中,执行计划中的步骤顺序并不是按照它们编号的顺序来执行的。ORACLE首先执行作为叶子节点出现的步骤(例如步骤3、5、6)。每个步骤返回的行被称为下一个步骤的行源。然后,ORACLE按照特定的顺序执行父步骤:首先执行步骤3,并逐行将结果返回给步骤2。对于步骤3返回的每一行,ORACLE依次执行步骤5,并将ROWID结果返回给步骤4。ORACLE继续执行步骤4,并将结果行返回给步骤2。最后,ORACLE执行步骤2,将来自步骤3和步骤4的结果行返回给步骤1。如果有结果行,ORACLE最后执行步骤6,并将其返回给步骤1。如果步骤6返回行,ORACLE将再次返回来自步骤2的行给发出SQL语句的用户。
优化ORACLE SQL性能的执行计划步骤顺序
相关推荐
Oracle数据库SQL性能优化:执行计划步骤执行顺序
执行计划中的步骤不是按照编号顺序执行的,Oracle首先执行树形图中作为叶子的步骤(如3、5、6)。然后逐层执行父步骤。具体顺序为:1. 执行步骤3,逐行将结果返回给步骤2。2. 对步骤3的每一行,执行步骤5,将ROWID返回给步骤4。3. 执行步骤4,将结果返回给步骤2。4. 执行步骤2,将步骤3和步骤4的一行合并,返回给步骤1。5. 执行步骤6,如果有结果,返回给步骤1。6. 执行步骤1,如果有步骤6返回的行,将步骤2的行返回给用户。
Oracle
12
2024-04-30
执行计划实现顺序-ORACLE SQL性能优化
执行计划中的步骤按树状结构实现,Oracle首先实现叶子节点(如步骤3、5、6)。每一步的结果成为下一步骤的行源。
Oracle以以下顺序实现步骤:1. 步骤3,返回结果行给步骤22. 步骤5,返回结果ROWID给步骤43. 步骤4,返回结果行给步骤24. 步骤2,合并步骤3和步骤4的结果,返回给步骤15. 步骤6,如果有结果行,返回给步骤16. 步骤1,合并来自步骤2和步骤6的结果,返回给用户
Oracle
9
2024-05-25
Oracle执行计划步骤的实现顺序
Oracle执行计划中的步骤并非按编号顺序执行。实际上,Oracle首先执行位于树状结构图叶子节点的步骤,如示例中的步骤3、5和6。每个步骤返回的行称为其下一步骤的行源。
完成叶子节点步骤后,Oracle开始执行父步骤,其顺序如下:
首先执行步骤3,并将结果逐行返回给步骤2。
对于步骤3返回的每一行,Oracle执行以下操作:
执行步骤5,并将结果ROWID返回给步骤4。
执行步骤4,并将结果行返回给步骤2。
执行步骤2,它接收来自步骤3和步骤4的行,并将结果返回给步骤1。
执行步骤6,并将结果行(如果有)返回给步骤1。
最后执行步骤1,如果步骤6返回了行,则将来自步骤2的行返回给发出S
Oracle
7
2024-05-19
ORACLE SQL性能优化的执行计划步骤
执行计划的步骤第3步和第6步分别从EMP表和SALGRADE表读取所有行。第5步在PK_DEPTNO索引中查找第3步返回的每个DEPTNO值,并找出与DEPT表相关联的那些行的ROWID。第4步从DEPT表中检索出第5步返回的那些行的ROWID。步骤在行源上执行操作,如表之间的关联、排序或过滤。第2步实现嵌套的循环操作,接收来自第3步和第4步的行源,将第3步源的每一行与第4步中相应的行连接在一起,然后返回结果行到第1步。第1步完成一个过滤器操作,接收来自第2步和第6步的行源,消除第2步中有相应行且第6步有相应行的那些行,并将来自第2步剩余的行返回给发出语句的用户或应用。
Oracle
5
2024-08-27
ORACLE SQL性能优化的执行计划步骤
在执行计划的步骤中,第三步和第六步分别从EMP表和SALGRADE表中读取所有行。第五步使用PK_DEPTNO索引查找第三步返回的每个DEPTNO值,确定与DEPT表相关联的行的ROWID。第四步从DEPT表中检索第五步返回的行的ROWID。标有黑色框的步骤在行源上执行操作,如表间连接、排序或过滤。第二步实现嵌套循环操作,将第三步和第四步的行源进行连接并返回到第一步。第一步完成过滤操作,接收第二步和第六步的行源,消除第二步中在第六步有对应行的行,并将剩余行返回给用户或应用程序。
Oracle
6
2024-07-30
ORACLE性能优化执行计划步骤优化
执行计划的第三步和第六步分别从EMP表和SALGRADE表读取所有行。第五步在PK_DEPTNO索引中查找第三步返回的每个DEPTNO值,定位与DEPT表关联的行的ROWID。第四步从DEPT表中检索第五步返回的行的ROWID。这些步骤在行源上执行操作,如表关联、排序或过滤。第二步实现嵌套循环操作,将第三步和第四步的行源连接在一起,返回结果行到第一步。第一步完成过滤操作,消除第二步中与第六步相对应的行,将剩余行返回给用户或应用。
Oracle
5
2024-09-26
Oracle执行计划步骤的实现顺序分析
在执行计划中,步骤的实现并非按编号顺序进行。Oracle首先处理树结构图中的叶子节点步骤,例如步骤3、5、6。每一步返回的行称为其下一步骤的行源。以下是具体的步骤执行顺序:
首先,Oracle执行步骤3,并将结果行逐一返回给步骤2。
对于步骤3返回的每一行,Oracle接着执行:
步骤5,并将结果ROWID返回给步骤4。
然后,Oracle执行步骤4,并将结果行返回给步骤2。
接下来,Oracle执行步骤2,接受来自步骤3和步骤4的行,并将结果返回给步骤1。
Oracle执行步骤6,如果有结果行,则将其返回给步骤1。
最后,Oracle执行步骤1,如果从步骤6返回行,则将来自步骤2的行返回给
Oracle
3
2024-11-03
Oracle性能优化的执行计划步骤详解
执行计划的步骤涉及从EMP表和SALGRADE表读取所有行。在PK_DEPTNO索引中查找每个DEPTNO值,以找出与DEPT表相关联的行的ROWID。然后从DEPT表中检索这些行。步骤涉及行源上的操作,如表之间的关联、排序和过滤。嵌套循环操作接收来自步骤3和4的行源,并将它们连接起来返回结果行。最终的过滤器操作消除掉不需要的行并返回剩余的结果。
Oracle
4
2024-09-13
ORACLE_SQL性能优化:解析执行计划步骤
ORACLE_SQL执行计划步骤解析
本部分将详细解析ORACLE_SQL执行计划的步骤3、4、5、6以及关键步骤1和2。
数据读取阶段:
步骤3和步骤6: 分别从EMP表和SALGRADE表读取所有数据行。
步骤5: 利用PK_DEPTNO索引查找步骤3返回的每个DEPTNO值,确定其在DEPT表中对应的ROWID。
步骤4: 根据步骤5返回的ROWID,从DEPT表中检索相应的行数据。
核心操作步骤:
步骤2: 执行嵌套循环操作,类似于编程语言中的嵌套循环结构。它接收步骤3和步骤4返回的结果集,将步骤3的每一行与步骤4中对应的行连接,并将结果集传递给步骤1。
最终结果处理:
Oracle
11
2024-05-23