목록인덱스 (3)
정미나닷컴
* Cluster : (함께 자라거나 나타나는) 무리, (조밀하게 모여 있는 사람동물 등의) 무리 그럼 Index Cluster Table은 인덱스 별로 모여있는 테이블(?) 정도로 이해하면 되려나.. 일단 클러스터는 DB Object 개념의 하나이다. 일반적으로 우리가 알고 있는 구조가 [테이블] ↔ [인덱스] 분리형이고 IOT가 [테이블=인덱스] 일체형이라고 한다면 인덱스 클러스터 테이블은 이 둘의 중간쯤이라고 생각하면 되겠다. 백문이 불여일견이므로 일단 직접 만들어보면서 이 놈이 어떻게 생겨먹은 놈인지 알아보도록 하자. ① 데이터를 저장할 클러스터를 생성한다.CREATE CLUSTER C_DEPTNO (DEPTNO NUMBER(2)) INDEX;: 클러스터의 이름을 C_DEPTNO로 정하고 인덱스로..
Index Range Scan - B*Tree 인덱스의 가장 일반적이고 정상적인 형태의 액세스 방식(수직적 탐색 후 필요한 범위만 수평적 탐색) - 항상 빠른 속도를 보장하진 않음 - 인덱스 스캔 범위를 얼만큼 줄일 수 있느냐, 테이블 액세스 횟수를 얼만큼 줄일 수 있느냐가 관건 => 인덱스 설계와 SQL 튜닝의 핵심 원리 - 인덱스를 구성하는 선두 컬럼이 조건절에 사용되어야 함 Index Full Scan - 수직적 탐색없이 인덱스 리프 블록을 처음부터 끝까지 수평적으로 탐색하는 방식 - 최적의 인덱스가 없을 때 차선책(인덱스 선두 컬럼이 조건절에 없을 경우) - 최종 결과값이 적을때 Table Full Scan보다 Index Full Scan이 훨씬 효율적 Index Unique Scan - 수직적 ..
쿼리의 조건절에 인덱스 선두 컬럼이 사용된 경우(인덱스가 B*Tree 형태일 때)옵티마이저는 인덱스의 Root부터 탐색을 시작해 Branch를 거쳐 원하는 레코드 키값이 존재하는 Leaf 까지 도달한다. 이 때 Root -> Branch -> Leaf 에 도달하는 과정(Leaf node의 시작점을 찾는 과정)을 수직적 탐색,Leaf node의 시작점에서부터 원하는 범위까지를 scan하는 과정(인덱스는 정렬 상태이므로)을 수평적 탐색,수평적 탐색을 통해 get한 RowID를 이용해 궁극적으로 원하는 데이터가 있는(Select 절에 명시된 컬럼 데이터) 테이블까지 도달하는 과정을 Table Random Access라고 한다. 하지만 주의해야 할 점은 조건절에 인덱스 컬럼을 사용한다고 해서 무조건 인덱스 활용..