SQL튜닝 5

SQL튜닝 입문 - NESTED LOOPS/SORT/MERGE/HASH

1. NESTED LOOPS JOIN- Driving Table: 옵티마이저가 결정 / outer table- Driven Table:Inner Table - 튜닝 포인트  1) 테이블 간 조인 횟수를 최소화 할 수 있도록 Driving Table을 선택 및 제어  2) Driven Table의 연결고리 칼럼에 대한 인덱스 구성2. NESTED LOOPS JOIN 장/단점1. 인덱스에 의한 랜덤 액세스에 기반하고 있어 대량의 데이터 처리 시 적합하지 않음2. Driving Table로는 테이블의 데이터가 적은 마스터 테이블이거나 where 절 조건으로 적절하게 row를 제어할 수 있어야 함.3. Driven Table에는 조인을 위한 적절한 인덱스가 있어야 함3. 조인 순서 제어 방법- 조인 순서 제어를..

프로그래밍 2025.01.19

SQL튜닝 입문 - INDEX 활용 불가능 케이스

1. 인덱스 사용하면 안되는 경우- 조건에 의한 처리 범위가 넓어짐으로써 분포도가 나빠지는 경우, 이 때 인덱스 스캔보다 FULL TABLE SCAN을 하는 것이 낫다 →FULL TABLE SCAN할 경우, 한 번의 I/O 때 마다 여러 개의 데이터 블록을 처리하기 때문에 I/O횟수가 감소함2. 인덱스 사용 불가능한 경우1) NOT 연산자 사용SELECT *FROM EMPWHERE EMPNO != '1234';SELECT *FROM EMPWHERE EMPNO '1234'; 2) IS NULL, IS NOT NULL 사용SELECT *FROM EMPWHERE EMPNO IS NULL; 3) 옵티마이저 취사 선택옵티마이저의 자의적 판단에 의해서 인덱스를 사용할 수도 있고, 사용하지 않을 수 있는 경우> 옵..

프로그래밍 2025.01.12

SQL튜닝 입문 - INDEX, 결합INDEX

1. 필요성- 일반적으로 테이블의 전체 데이터 중에서 10~15% 이하의 데이터를 처리하는 경우에 효율적2. B* TREE 구조- 가장 많이 사용되는 인덱스 구조, 데이터 저장 방식- ROOT/BRANCH/LEAF NODE 구성- BRANCH NODE: 조회하려는 값이 있는 LEAF 노드까지 도달하기 위해 비교/분기해야 될 값들이 저장됨LEAF NODE = 인덱스 칼럼의 값 + ROWID(저장위치정보) - ORDER BY에 의한 SORT를 피할 수 있음- MAX/MIN의 효율적 처리가 가능3. 인덱스 선정 절차1) 프로그램 개발에 이용된 모든 테이블에 대하여 Access Path 조사2) 인덱스 칼럼 선정 및 분포도 조사3) Critical Access Path 결정 및 우선순위 선정4) 인덱스 칼럼의 ..

프로그래밍 2025.01.12

SQL 튜닝 - 튜닝 활용

1. CASE 함수 IF-THEN-ELSE 논리와 유사한 방식으로 표현식을 해독한다. * 일반 프로그램 IF SAL > 2000 THEN REVISED_SALARY = SAL ELSE REVIESD_SALARY = 2000 END IF * CASE 문 SELECT JOB, CASE WHEN SAL>2000 THEN SAL ELSE 2000 END as REVISED_SALARY FROM EMP; 2. SUM(DECODE) 모델링의 제1정규화로 인해 반복되는 칼럼의 경우 구분 칼럼을 두고 여러 개의 레코드로 만들어진 집합을 정해진 칼럼 수만큼 확장해서 사용하는 기법 * 부서별로 월별 입사자의 평균 급여 구하기 SELECT DEPTNO, AVG(DECODE(MONTH, 1, SAL)) M01, AVG(DEC..

프로그래밍 2021.10.06

SQL 튜닝 - JOIN(2)

6. SET OPERATOR * SET 연산자 수행 - UNION의 경우 합치고 중복된 결과 중 중첩된 라인을 단일화하기 위해 UNIQUE 정렬을 실행한다. - UNION ALL의 경우 단일화와 정렬을 수행하지 않아 성능이 좋다. - 모든 SET 연산자의 실행 우선 순위는 동일하다. - SET 연산자에 의해서 조회되는 문자형 결과의 자료형은 두 질의문에서 모두 문자형이 조회된다면 문자형으로 출력되고, 두 질의문 혹은 하나의 질의문에서 가변 문자형이 사용되면 가변 문자형으로 출력된다. * SET 연산자 장단점 - 두 질의문의 결과를 대상으로 수학적인 개념의 집합 연산을 수행할 수 있게 한다. - UNION ALL은 칼럼 개수와 자료형만 동일하면 N개의 질의문을 결합할 수 있는 수단이 된다. - INTERS..

프로그래밍 2021.10.05