오라클16 인덱스 튜닝 인덱스 튜닝 테이블 액세스 최소화 SQL 튜닝은 랜덤 I/O와의 전쟁이다. 인덱스 ROWID는 논리적 주소다. 디스크 상에서 테이블 레코드를 찾아가기 위한 위치 정보를 담는다. 인덱스 ROWID는 우편주소이고 우체부 아저씨가 일일이 찾아다니는 구조이다. 메모리DB의 경우는 전화통신 구조이다. 인덱스 손익분기점 1. Table Full Scan은 시퀀셜 액세스인 반면, 인덱스 ROWID를 이용한 테이블 액세스는 랜덤 액세스 방식이다. 2. Table Full Scan은 Multiblock I/O인 반면, 인덱스 ROWID를 이용한 테이블 액세스는 Sigle Block I/O 방식이다. Table Full Scan은 성능이 일정하다. 1000만건중 한 건을 조회하든, 10만건을 조회하든 차이가 거의 없다. .. 2021. 12. 5. 오라클 HINT 오라클 HINT 1.최적화 목표 1)ALL_ROWS : 전체 처리속도 최적화 2)FIRST_ROWS(N) : 최초 N건 응답속도 최적화 2.액세스 방식 1)FULL : Table Full Scan으로 유도 2)INDEX : Index Scan으로 유도 3)INDEX_DESC : Index를 역순으로 스캔하도록 유도 4)INDEX_FFS : Index Fast Full Scan으로 유도 5)INDEX_SS : Index Skip Scan으로 유도 3.조인순서 1)ORDERED : FROM 절에 나열된 순서대로 조인 2)LEADING : LEADING 힌트 괄호에 기술한 순서대로 조인 예)LEADING(T1 T2) 3)SWAP_JOIN_INPUTS : 해시 조인 시, BUILD INPUT을 명시적으로 선택 .. 2021. 12. 4. 인덱스 개요 인덱스 개요 데이터베이스 테이블에서 데이터를 찾는 방법은 두 가지다. 1. 테이블 전체를 스캔한다 2. 인덱스를 이용한다. 모든 교실을 돌며 학생을 찾는 경우가 전자에 속하고, 이름순으로 정렬한 학생명부를 이용하는 경우가 후자에 속한다. 테이블 전체 스캔과 관련해서는 튜닝 요소가 많지 않지만, 인덱스와 관련해서는 튜닝 요소가 매우 많고 기법도 다양하다. 그래서 인덱스는 SQL 튜닝을 공부할 때 가장 먼저 다루어야 할 주제다. Table Full Scan vs Index Range Scan Table Full Scan Table Full Scan은 시퀀셜 Multiblock I/O 방식으로 디스크 블록을 읽는다. 한 블록에 속한 모든 레코드를 한 번에 읽어 들이고, 캐시에서 못 찾으면 '한 번의 수면(I/.. 2021. 12. 4. 실행계획 용어 정리 실행계획 용어 정리 결합 처리에 관한 실행 계획 1.NESTED LOOP : NESTED LOOP 조인을 사용한 결합 처리 1)OUTER : 중첩 루프를 사용하여 외부 조인 처리 2.MERGE JOIN : 2개의 행 세트 각각 특정 항목으로 정렬하고 결합된 결과를 리턴 1)OUTER : 병합에 의한 외부 조인 2)ANTI : 병합된 앤티 결합(반대 결합) 3)SEMI : 병합에 의한 세미 결합(세미 조인) 4)CARTESIAN : 병합에 의한 CARTESIAN 3.HASH JOIN : 해시로 2개의 행 세트의 결합 1)ANTI : 해시 앤티 결합(반대 결합) 2)SEMI : 해시 의한 세미 결합(세미 조인) 3)RIGHT ANTI : 해시로 오른족 안티 결합 4)RIGHT SEMI : 해시로 오른쪽 세미.. 2021. 12. 3. 이전 1 2 3 4 다음