# 인라인뷰
- FROM 절에서 사용하는 서브 쿼리
- 문장이 실행되는 동안 존재되며, 일반 뷰와 같이 사용
# 계층 검색 (START WITH, CONNECT BY PRIOR)
SELECT [LEVEL], 컬럼, …
FROM 테이블
[WHERE 조건]
START WITH 시작조건
CONNECT BY PRIOR 계층조건
;
1> LEVEL
- 계층 트리에서 각 노드의 깊이 의미
- 루트 노드부터 1씩 증가하면서 자식 노드로 이동
2> START WITH : 계층의 루트 행 지정
3> CONNECT BY PRIOR
- 계층 구조 검색방향 설정
- 부모컬럼 = 자식컬럼 : 계층을 하향 검색
- 자식컬럼 = 부모컬럼 : 계층을 상향 검색
# 실행 계획 (EXECUTION PLAN)
1> PARSE -> EXECUTE -> FETCH
- 파스 (PARSE) : 문장 수행 전 db 엔진이 해당 쿼리를 어떻게 수행할지 결정하는 과정 (실행 계획 설정)
- 실행 (EXECUTE) : 파스 과정에서 계획된 실행 계획으로 쿼리 수행
- 추출 (FETCH) : SELECT 경우 실행결과를 화면에 출력하여 최종 사용자 확인
- 실행계획 수립은 RDBMS 엔진 옵티마이저 역할 : SQL 분석하여 최적의 처리 실행계획 생성
2> 실행계획 분석
- 로우 소스 : 각 실행 되는 행
- 하위레벨의 로우 소스부터 수행되며, 동일한 레벨은 위 로우소스부터 수행
<SQL PLAN>
ID OPERATION
----------------------------------------------------------
0 SELECT STATEMENT
1 NESTED LOOP
2 TABLE ACCESS BY INDEX ROWID (PART)
3 INDEX UNIQUE SCAN (NAME_ENO_PK)
4 TABEL ACCESS FULL (COMP)
- 실행계획 읽는 순서 : 3 -> 2 -> 4 -> 1 -> 0
- 실행계획 해석
1. 3번 ID 실행 : NAME_ENO_PK 인덱스가 먼저 수행되면서 eno 값과 해당 rowid 읽는다.
2. 2번 ID 실행 : 3에서 찾은 rowid로 PART 테이블의 행을 찾는다.
3. 4번 ID 실행 : PART 테이블 행의 ENO값이 같은 데이터를 COMP 테이블에서 검색한다.
4. NESTED LOOP 조인 : 선행 테이블의 행을 검색하고 해당 행을 통해 다음 테이블 행을 검색해가는 과정
'IT ▶ > Data' 카테고리의 다른 글
[ADP/ADsP 자격] 빅데이터 정의 및 활용 (0) | 2020.05.18 |
---|---|
데이터 분석 준전문가 (ADsP) ? (0) | 2020.05.02 |
[Database Index] 데이터베이스 인덱스, 뷰, 시퀀스 개념과 역할 (0) | 2020.03.11 |
[Database] 데이터베이스 테이블 컬럼 추가, 삭제, 변경 방법 (0) | 2020.03.09 |
데이터베이스 비등가 조인, 등가 조인 (JOIN) / 트랜잭션 (Transaction) 개념 (0) | 2020.03.07 |