오라클 인덱스 관련 질문입니다.~!? 0 4 1,605

by 블루오션 [Oracle 기초] [2012.07.23 18:43:16]


오라클에서 인덱스 관련 기초적인 질문 같은대요 좀 햇갈려서 한번 올려 봅니다.

오라클 인덱스를 잡을때 같은 인덱스 명으로 

INFO_IDX_1 로 NO, CTRL_NM , DIV_NM  이런식으로 3가지 컬럼들이 잡혀 있고
INFO_IDX_2 로 CTRL_NM, INFO_NM 이렇게 2가지 컬럼이 잡혀 있다고 할때

구지 중복되는 CTRL_NM 컬럼은 다른 인덱스 명으로 해서 또 잡을 필요가 있는건지요?

한 인덱스 명 안에 여러개가 잡혀 있으면 다른 인덱스명으로 구지 또 잡을 필요가 있는지에 대한 문의 입니다.

고수님들 답변 부탁드립니다.

by 손님 [2012.07.24 08:15:51]
그냥 간단한 카운터 예입니다.

CTRL_NM, DIV_NM 로 검색하면 100건,   DIV_NM 로 검색하면 10000건  이런경우

CTRL_NM, INFO_NM 로 검색하면 10건,    INFO_NM  로 검색하면 1000000건  이런경우 

앞의 CTRL_NM이 조건으로 주어짐으로 인하여 드라이브인 범위가 좁아진다고 하면 필요할듯.

하지만 그게 그거인 경우 굳이... 할필요는 없는듯 싶습니다. 


by 손님 [2012.07.24 08:30:06]

결합인덱스의 경우 컬럼의 순서가 중요합니다.
컴럼의 순서는 데이터를 찾아가는 길입니다.
3개 조건이 모두 주어진다면 완벽하게 길안내를 하겠지만
그렇지 않은 경우엔 순서대로 조건을 주느냐 안주느냐에 따라 인덱스 활용도가 달라집니다.
인덱스의 첫컬럼이 조건으로 주어지지 않는다면 처음부터 길이 막히는 것이죠.
1번컬럼 조건이 없이 2번컬럼 조건만 있는 경우라면 인덱스를 제대로 이용할 수 없습니다.


by 길군 [2012.07.24 08:30:48]

INFO_IDX_2 의 인덱스에서 칼럼 순서가 중요한 의미를 가지고 있습니다.
CTR_NM 칼럼이 첫번째가 아닌 두번째에 위치하게 되면 해당 컬럼만으로 인덱스 사용 확률이 적습니다.
첫번째에 위치 하고 있다면 별도의 인덱스를 만들 필요는 없어 보입니다.


by 블루오션 [2012.07.24 15:08:56]
ㄴ 답변 감사합니다.^^ 이제서 감이 좀 오는 듯 하내요^^
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입