oracle (3) 썸네일형 리스트형 인덱스 확장 기능 사용법 : 인덱스 스킵 스캔 외(친절한 SQL 튜닝) 인덱스 범위 스캔 vs 인덱스 풀 스캔Index Range Scan가장 기본적인 인덱스를 사용한 액세스 방식이다.아래와 같은 그림처럼 인덱스 루트(시작점)까지 수직 이동 후 필요한 범위를 스캔한다. 이전에 이야기했듯, 선두 컬럼을 가공하지 않는 등의 인덱스 순서를 그대로 사용할 수 있는 방법을 사용할 경우 일반적으로 Range Scan이 사용된다.Index Full Scan수직 탐색 없이 바닥의 리프 노드 블록을 ‘전부’ 순회하여 스캔할 경우를 의미한다. Index Full Scan은 그냥 순차 스캔과 동일한가? (인덱스 풀 스캔의 효용)인덱스 Full Scan과 순차 스캔은 비슷해 보이지만 완전히 동일하지 않다. 인덱스를 읽지만, 정렬된 상태로 인덱스의 모든 엔트리를 순차적으로 읽는 작업이다... 인덱스 기본 사용법 : 연산 최적화(친절한 SQL 튜닝) 인덱스 기본 사용법인덱스 컬럼(선두 컬럼)을 가공하지 않아야 인덱스를 정상적으로 사용할 수 있다.즉, ‘인덱스를 정상적으로 사용한다’ 라는 개념은 리프 블록에서 ‘시작점’ 을 찾아 순차 스캔하며 결과를 찾는 것이다. 인덱스 기본 사용법인덱스 컬럼(선두 컬럼)을 가공하지 않아야 인덱스를 정상적으로 사용할 수 있다.즉, ‘인덱스를 정상적으로 사용한다’ 라는 개념은 리프 블록에서 ‘시작점’ 을 찾아 순차 스캔하며 결과를 찾는 것이다.이것은 결국 B-Tree의 그래프에서 리프 노드를 먼저 찾은 뒤, 인덱스 시작점부터 리프 블록의 일부분만 스캔하는 Range Scan을 의미한다.이는 일반적인 DB의 인덱스 구현은 B+Tree를 기반으로 하므로, 리프 노드에서 시작해 오른쪽 리프 노드로 자연스럽게 넘어가는 범위 탐.. 인덱스 구조 및 탐색 : 수직적 탐색 과정과 LMC(친절한 SQL 튜닝) 인덱스 구조 및 탐색 DBMS가 발명된지 수 십년이 지났지만, 사실상 현존하는 SQL의 테이블 스캔 방법은 두 가지다. 1. 테이블 전체를 스캔(Full Scan)2. 인덱스를 사용(Random Access) 이 두 가지 과정에서 당연하게도 인덱스를 사용하는 것이 실제 튜닝을 통해 성능을 개선할 요소가 많다.FS 자체는 그다지 (물리적으로 개선하는 것이 아니라면) 의미가 없을 것이다. 인덱스 튜닝의 핵심 요소 1. 인덱스 스캔 과정에서 발생하는 비효율을 줄이기 (인덱스 스캔 효율 튜닝) 소량 데이터 검색 시에는 인덱스 자체의 튜닝을 줄이는 것이 중요하다. 예시에서는 복합 인덱스의 순서처럼, 중복도가 낮은 순서대로 정렬하는 것의 예시를 들었다.이 경우 테이블 내에서 전체 스캔해야 할 내용은 적어지며, .. 이전 1 다음