> 데이터 베이스 > MySQL 튜토리얼 > Oracle嵌套循环的执行计划优化

Oracle嵌套循环的执行计划优化

WBOY
풀어 주다: 2016-06-07 17:21:28
원래의
1435명이 탐색했습니다.

嵌套循环连接处理的两个数据集被称为外部循环(outer loop,也就是驱动数据源,driving row soulce )和内部循环〔 inner loop )

嵌套循环连接处理的两个数据集被称为外部循环(outer loop,也就是驱动数据源,driving row soulce )和内部循环〔 inner loop )。外部循环为左子节点,内部循环为右子节点.如图10 一6 所示,当外部循环执行一次的时候,内部循环需要针对外部循环返回的每条记录执行一次。

嵌套循环连接有以下几点特征:

口左子节点(外部循环)只会执行一次,而右子节点(内部循环)一般会执行很多次。

口在所有数据处理完之前,就可以返回结果集的第一条记录。

口可以有效利用索引来处理限制条件与连接条件。

口支持所有类型的连接。

两表连接

下面是个简单的两表嵌套循环连接的执行计划。同时也描述了如何使用提示1eading 与use_n1来强制使用嵌套循环连接。Leading提示要求先访问表tl ,也就是,,它指定了哪张表作为外部循环表使用。use_nl提示指定了具体使用哪种连接方法来将内部循环返回的数据(表t2 )与表t1 连接起来。有必要指出的是:usenl 提示并没有引用表t1 。

SELECT /* + leading (t1) use_nl(t2) full(t1) full(t2)*/ *

FROM t1 ,t2  WHERE tl.id =t2.id AND tl.n=19

linux

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿