인덱스 관리.
1. 인덱스의 분류
A. 단일 인덱스와 결합 인덱스
i. 딘일 인덱스 : 단일 열 인덱스는 인덱스 키에 오직 하나만의 열을 갖습니다.
예를 들면 emp 테이블의 empno만 인덱스로 지정하는 방법입니다.
CREATE INDEX EMP_EMPNO_INDX ON EMP(EMPNO);
ii. 결함(Concatenated) 인덱스 : 하나 이상의 테이블 컬럼을 하나의 인덱스로 묶는 방법입니다. 예를 들면 emp테이블의 empno와 ename을 하나의 인덱스로 지정하는 방법
CREATE INDEX EMP_EMPNO_ENAME_INDX ON EMP(EMPNO, ENAME);
B. Unique 인덱스와 NonUnique 인덱스
i. Unique 인덱스는 인덱스를 사용한 컬럼의 중복값들을 포함하지 않고 사용할 수 있는 장점이 있습니다.
ii. Primary Key와 Unique 제약 조건시 생성되는 인덱스는 Unique인덱스 입니다.
iii. Create Unique Index (emp_empno_indx) on emp(empno);
iv. Non Unique 인덱스는 일반적으로 Unique 인덱스가 아닌 인덱스들입니다.
v. Non-Unique 인덱스는 인덱스를 사용한 컬럼에 중복 데이터값을 가질 수 있습니다.
vi. Create Index emp_ename_idx on emp(ename);
2. 인덱스 컬럼 선정 및 고려사항
A. 인덱스 컬럼의 선정
i. 분포도가 좋은 컬럼은 단독적으로 생성하여 활용도를 향상 시킵니다.
ii. 자주 조합되어 사용되는 경우 결합인덱스를 생성합니다.
iii. 엑세스 경우의 수를 만족할 수 있도록 각 인덱스간의 역할을 분담 합니다.
iv. 가능한 수정이 빈번하지 않은 컬럼을 선정합니다.
v. 가능한 한 컬럼이 여러 인덱스를 포함하지 않도록 합니다.
vi. 기본키 및 외부키(조인의 연결고리가 되는 컬럼)가 되는 컬럼을 선정합니다.
vii. 결합 인덱스의 컬럼 순서 선정에 주의(사용빈도, 유일성, Sort유형, 부분범위처리등을 고려)해야 합니다. 첫번재 컬럼은 항상 사용되는 컬럼을 선택해야 합니다.
viii. 실제 조사된 엑세스 종류를 토대로 선정 및 검증해야 합니다.
B. 인덱스 생성시 고려사항
i. 새로 추가된 인덱스는 기존 엑세스 경로에 영향을 미칠 수가 있습니다.
ii. 지나치게 많은 인덱스는 오버헤드를 발생 시킵니다.
iii. 넓은 범위를 인덱스로 처리시 많은 오버헤드를 발생 시킵니다.
iv. 옵티마이져를 위한 통계 데이터를 주기적으로 갱신(ANALYZE)해야 합니다.
v. 인덱스의 개수는 테이블의 사용형태에 따라 다릅니다.(검색 위주형, 동시 다량 처리형, 단일 처리형, 배치 처리형)
vi. 분포도가 양호한 컬럼도 처리 조건(범위)에 따라 분포도가 나빠 질 수 있습니다.
vii. NULL값을 가지는 컬럼의 인덱스 ENTRY는 생성되지 않습니다.
viii. 조인(Join)시에는 인덱스가 사용되지 않으면 엑세스 경로는 무조건 특정 형태로 고정되어 집니다.
C. 인덱스가 사용되지 않는 경우
i. 인덱스 컬럼이 비교되기 전에 변형이 일어나는 경우
ii. 부정형(NOT, <>)으로 조건을 기술하는 경우
iii. 인덱스 컬럼이 NULL로 비교되는 경우(NULL, Not NULL의 사용)
iv. 옵티마이져가 특정 인덱스의 사용을 취사 선택 할 경우 사용되지 않을 수 있습니다.
트랙백 주소 :: http://frok.info/man/trackback/109
-
Subject: INDEX 생성 시 고려 사항
Tracked from about Frok's 2007/02/08 11:45 삭제데이타베이스 질의 시 주로 인덱스 사용을 유도하여 질의의 성능을 높이는 작업을 하게 된다. 대부분의 질의 시 통계적으로 ORACLE OPTIMIZER는 질의 작업에서 이용 되는 operation과 object들의 통계 ..




댓글을 달아 주세요
아주 좋은 위치 나는 그것을 감사 좋아한다!
우수한과 아주 도움이 되는!
친구는 너의 위치의 현재 팬이 되었다!
저에서 유사한 역사는 이었다.
우수한과 아주 도움이 되는!
재미있는 아주 지점. 감사.
이 위치는 아니라 유익한뿐 재미있는다!
너는 위치를차가운 만들었다!
블로그를 위한 감사합니다.
우수한 디자인!!
친구는 너의 현재 위치의 팬이 되었다!
여기 이것은 뉴스 있다!
걸출한 블로그!
많은 감사 위치! 우수한 나는 너의.
너의 방문한 위치를 즐기는!