본문 바로가기

DataBase/Oracle

[펌]인덱스의 컬럼 선정 및 고려사항

1. 인덱스 컬럼의 선정


   - 분포도가 좋은 컬럼은 단독적으로 생성하여 활용도를 향상 시킵니다.

   - 자주 조합되어 사용되는 경우는 결합인덱스를 생성 합니다.

   - 엑세스 경우의 수를 만족할 수 있도록 각 인덱스간의 역할을 분담 합니다.

   - 가능한 수정이 빈번하지 않는 컬럼을 선정 합니다.

   - 가능한 한 컬럼이 여러 인덱스에 포함되지 않도록 합니다.

   - 기본키 및 외부키 (조인의 연결고리가 되는 컬럼)가 되는 컬럼을 선정합니다.

   - 결합 인덱스의 컬럼순서 선정에 주의 (사용빈도,유일성,SORT유형,부분범위처리등을 고려)해야
      합니다.
     첫번째 컬럼은 항상 사용되는 컬럼을 선택 해야 합니다

   - 실제 조사된 엑세스 종류를 토대로 선정 및 검증 해야 합니다.


2. 인덱스가 사용되지 않는 경우
 

   - 인덱스 컬럼이 비교되기 전에 변형이 일어날 경우

   - 부정형(NOT, <>)으로 조건을 기술한 경우

   - 인덱스 컬럼이 NULL로 비교되는 경우(NULL, NOT NULL의 사용)

   - 옵티마이져가 특정 인덱스의 사용을 취사 선택 할 경우 사용되지 않을 수 있음니다.
 

 


3. 인덱스 생성시 고려사항


   - 새로 추가된 인덱스는 기존 엑세스 경로에 영향을 미칠 수가 있습니다.

   - 지나치게 많은 인덱스는 많은 오버헤드를 발생 시킴니다.

   - 넓은 범위를 인덱스로 처리시 많은 오버헤드 발생 시킵니다.

   - 옵티마이져를 위한 통계 데이타를 주기적으로 갱신(ANALYZE) 합니다.

   - 인덱스를 위한 추가적인 저장공간이 필요 합니다.

   - 인덱스의 개수는 테이블의 사용형태에 따라 다릅니다.
      (검색위주형,  동시 다량처리형,  단일 처리형,  배치처리형)

   - 분포도가 양호한 컬럼도 처리 조건(범위)에 따라 분포도가 나빠 질 수 있습니다.

   - NULL 값을 가지는 컬럼의 인덱스 ENTRY는 생성되지 않습니다.

   - 조인(join)시에 인덱스가 사용되지 않으면 엑세스 경로는 무조건 특정 형태로 고정 되어 집니다.

[http://www.oracleclub.com 에서 펌]

'DataBase > Oracle' 카테고리의 다른 글

테이블스페이스 용량구하기...  (0) 2008.10.09
ORA-02020 조치  (0) 2008.10.07
[펌]ANALYZE ?  (0) 2008.10.06
ANALYZE 명령어  (0) 2008.10.06
DBMS_STATS 패키지  (0) 2008.10.06