전체 글 96

Nested Loop

1. 기본 사항 Nested Loop은 index의 유무와 대상 table의 크기에 따라 driving table이 결정된다. Nested Loop에서 driving table의 선정은 아래와 같이 4가지 조건으로 분류할 수 있다. select * from emp e, dept d where e.deptno = d.deptno index X X --> driving 테이블 : 작은 테이블 (optimizer_stats로 판단) index X O --> driving 테이블 : index가 없는 쪽 (항상 index가 없는 쪽에서 먼저 실행된다.) index O X --> driving 테이블 : index가 있는 쪽 (항상 index가 없는 쪽에서 먼저 실행된다.) index O O --> driving..

오라클/Tuning 2010.05.08

Oracle Data Access Pattern

Rowid로 데이터 찾기 - 첫번째 방법 : 일반적 방법 select deptno, max(hiredate) as max_hiredate from emp group by deptno; select * from emp e, (select deptno, max(hiredate) as max_hiredate from emp group by deptno) d where e.deptno = d.deptno and e.hiredate = d.max_hiredate; - 두번째 방법 : Join 할 때 직접 rowid를 활용하는 방법 select deptno, to_char(hiredate,'YYYYMMDD')||ROWID as rid from emp order by deptno, rid; select deptno,..

오라클/Tuning 2010.05.08

SQL

SQL (Structured Query Language) - 구조화된 질의 언어 DDL (Data Definition Language) - Create, Alter, Drop, Truncate, Rename, Comment DML (Data Manipulation Language) - Select, Insert, Update, Delete, Merge TCL (Transaction Control) - Commit, Rollback, Savepoint DCL (Data Control Language) - Grant, Revoke Select 문을 작성할 때 권장할 만한 순서 (절대 실행순서가 아님) select 컬럼명, 연산식, 함수 .. ---- ④ from 테이블, 뷰, 서브쿼리 등의 재료 집합 ---..

오라클/SQL 2010.05.06

Clustering Factor 란?

Clustering Factor란 Index의 테이블에 대한 정렬정도를 말합니다. 정렬정도를 측정하기 위해 오라클은 Clustering Factor의 수치를 Index를 scan하는동안 방문하게되는 Table의 Data Block의 갯수로 나타냅니다. 이는 Clustering Factor가 높아지면 읽어 들이는 Data Blcok의 갯수가 많아지기 때문에 Physical Reads가 높게 나온다는 것을 의미합니다. Physical Reads는 Performance와 밀접한 관련이 있기 때문에 Clustering Factor를 최소화 하는 것이 튜닝의 중요 요소 중 하나라고 할 수 있습니다. Good Clustering Factor Good Clustering Factor란 Sequence Key나 Dat..

오라클/Tuning 2010.05.06