CS/DataBase

ORACLE 쿼리 조인, 쿼리 튜닝

prden 2023. 3. 10. 17:04

쿼리 튜닝 기초

1. OLTP 시스템에서 조인을 튜닝할 때는 일차적으로 NL 조인부터 고려

2. NL 조인 메커니즘에 따라 각 단계에서 Random 액세스가 발생하는 지점 파악

3. 조인 순서를 변경해 Random 액세스 발생량 줄이기 OR 인덱스 칼럼 구성을 변경하거나 다른 인덱스의 사용을 고려

4. NL 조인이 효과적이지 못하면 해시조인이나 소트머지 조인 검토

1. Nested Loops 조인

의미 : 중첩 LOOP문 생각 

 

1) 힌트를 이용해 NL 조인 제어

SELECT /*+ ordered use_nl(e)*/*
FROM dept d, emp e
where d.deptno = d.deptno

ordered 힌트는 from 절에 기술된 순서대로 조인하라고 옵티마이저에게 지시할 때 사용, use_nl은 NL 방식으로 조인하라고 지시할 때 사용한다.  dept 테이블( Driving  or Outer Table)을 기준으로 emp 테이블(inner table)과 조인할 때 NL 방식으로 조인하라는 뜻이됨.

 

DRIVING TABLE: JOIN시 먼저 액세스 되어 ACCESS PATH를 주도하는 테이블
조인시 먼저 액세스되는 쪽을 DRIVING TABLE, OUTER TABLE이라고하며, 
나중에 액세스 되는 테이블을 드리븐테이블(DRIVEN TABLE, INNER TABLE)이라고 한다.

 

'CS > DataBase' 카테고리의 다른 글

ORACLE 인덱스  (0) 2023.04.21
ORACLE 파티셔닝  (1) 2023.04.21
Lock, DeadLock, Blocking  (0) 2023.03.10
Pro*C  (0) 2023.01.08
ORACLE 실행계획, Hint, SQL 튜닝  (0) 2022.12.31