본문 바로가기

I T./Oracle

ORacle Index 선정방법

index선정기준
-분포도가 좋은 컬럼은 단독적으로 생성하여 활용도 향상
인덱스 사용하는것은 그렇지않은 경우보다 좋은 성능 기대될수 있다.
만약 분포도가 좋은 컬럼 이라면 단일 인덱스 또는 유일한 인덱스를 생성한다.

-자주 조합되어 사용되는 경우는 결합인덱스 생성
싱글 인덱스를 여러개 생성하고 실행해 보면 각각의 싱글인덱스를 읽은 다음 결합
이런경우 하나의 결합인덱스를 생성하게 되면 검색범위를 중일수 있기 때문에 보다 빠르게 데이터 검색가능

-각종 엑세스 경우의 수를 만족할 수 있도록 인덱스 간의 역활분담
일반적으로 하나의 테이블에 가장 적합한 인덱스 수는 3~4개 정도
프로젝트 수행후 일정 시점이 지난 다음 각 테이블의 인덱스 수를 조사해 보면 적절하지 못한
인덱스들(같은 컬럼을 중복적으로 생성한 인덱스, 생성된후 한번도 사용된적이 없는 인덱스)가 존재

-가능한 수정이 빈번히 발생되지 않는 칼럼
인덱스가 많을수록 update,insert,delete문의 성능은 저하
데이터의 변경이 빈번하지 않는 컬럼에 인덱스를 생성하는 것이 좋고 인덱스를 생성하더라도
최소 개수로 생성하는 것이 성능에 도움

-기본키와 외부키
기본키는 기본적으로 인덱스가 생성되며 외부키는 생성되지않음
기본키에 의해 만들어지는 인덱스는 반드시 데이터와 인덱스 구조를 분리하여 생성

-결합인덱스의 컴럼순서 선정에 주위
자주 사용되는 컬럼을 선행컬럼으로 설정하게 되는데 이때 각 컬럼의 사용빈도에 별차이가 없다면
분포도가 넓은 컬럼보다는 분포도가 좁은 컬럼을 선행 컬럼으로 설정하는것이 보다 유리하다

-반복 수행(LOOP내) 되는 조건은 가장 빠른 수행속도를 내게 할것
SQL문이 가장 빠른 성능을 내게 하기 위해서는 최적의 SQL문의 작성되어야 하고 또한 적절한
인덱스구조와 인덱스 타입이 사용되어야 함
데이터베이스 서버적인 측면도 잘 고려해야한다(메모리,CPU,DISK)

-실제 조사된 엑세스 종류를 토대로 선정 및 검증
많이 사용되는 컬럼인지 얼마나 자주 사용되는지 검색조건이 만족하는 데이터 분포도는 어떤지
등을 실제 환경에서 조사 분석된 자료를 근거로 생성해야만 최적의 인덱스를 생성할수있다.

'I T. > Oracle' 카테고리의 다른 글

자동으로 UNDO 세그먼트 구성  (0) 2009.12.11
ORacle REDO/UNDO  (0) 2009.12.11
Oracle Tablespace  (0) 2009.12.11
Oracle Recovery 복구  (0) 2009.12.11
Oracle Backup  (0) 2009.12.10
Oracle 권한  (0) 2009.12.10