쿼리 블록

SQL문은 여러 개의 서브쿼리로 구성되는데, 이들 서브쿼리는 액세스 플랜 다이어그램에서 쿼리 블록별로 표시됩니다.

서브쿼리는 SELECT, INSERT, UPDATE 또는 DELETE가 될 수 있습니다. 서브쿼리에는 FROM절, WHERE절 또는 UNION이나 UNION ALL의 subselect에 다른 서브쿼리가 들어 있을 수 있습니다. 다른 서브쿼리 내에 있는 서브쿼리를 하위 서브쿼리라고 합니다. 다른 서브쿼리를 포함하고 있는 서브쿼리를 상위 서브쿼리라고 합니다. 이러한 상위-하위 관계는 트리 계층 구조로 표시될 수 있습니다.

서브쿼리가 상위 서브쿼리 또는 트리 계층 구조에서 더 높은 상위 서브쿼리의 컬럼 중 최소한 하나의 컬럼을 참조하는 경우, 이 서브쿼리는 상관 서브쿼리입니다. 그렇지 않을 경우, 비상관 서브쿼리입니다. 비상관 서브쿼리는 역시 비상관인 최상위 서브쿼리와 동시에 실행할 수 있습니다. 비상관 서브쿼리와의 관계와 관련하여 이 최상위 서브쿼리를 "열기 시 수행 상위 서브쿼리"라고 합니다. 상관 서브쿼리의 실행은 그 상위 서브쿼리의 실행으로 바인드됩니다. 이러한 상위 및 하위 쿼리 간의 상대적인 실행 관계를 액세스 플랜 그래프에서 별도의 트리 계층 구조로 표시할 수 있습니다.

비상관 서브쿼리
비상관 서브쿼리의 경우, 쿼리 블록 노드는 역시 비상관인 최상 상위 서브쿼리에 대한 쿼리 블록 노드의 오른쪽으로 연결됩니다.
상관 서브쿼리
상관 서브쿼리의 경우 쿼리 블록 노드는 상관 서브쿼리가 실행되는 상위 서브쿼리 내의 부분에 연결됩니다.

피드백