2011-01-01 2 views
0

데이터베이스 (Oracle)의 많은 테이블에 대해 다음과 같은 유형의 "고유 ID"열이 있습니다. 그것은 그래서 우리는 우리가 그들에 고유 인덱스를 가지고,이오라클 인덱스 문자열 열 - 데이터 형식이 인덱스의 품질에 영향을 줍니까?

U1234-12345-NBBJD 
U1234-12346-NBBJD 
U1234-12347-NBBJD 
U1234-12348-NBBJD 
U1234-12349-NBBJD 

UID입니다 값 같은 몇 가지 고유이

<randomnumber>-<ascendingnumber>-<machinename> 

형식

을 다음과 같이 문자열입니다. 인덱스 스캔의 경우 위의 포맷보다 다음 형식이 더 효율적입니까? 이 방법 쿼리 데이터에 의존로

NBBJD-U1234-12345 
NBBJD-U1234-12346 
NBBJD-U1234-12347 
NBBJD-U1234-12348 
NBBJD-U1234-12349 

답변

2

정말 이것에 대한 좋은 답변이 없습니다. 일반적으로 특정 레코드를 UNIQUE_ID까지 찾으려는 경우 중요하지 않습니다. 그러나 레코드를 machinename까지 찾으려면 열의 맨 앞에 그 레코드가 필요할 것입니다.

이 값들 각각을 별도의 열로 만들고 시퀀스 나 GUID를 기반으로 한 진정한 합성 기본 키를 가지고 있습니다. 그런 식으로 데이터를 정렬하는 것은 전혀 문제가되지 않습니다. 나중에 고마워 할거야.

+0

+1 이러한 구성 요소를 별도의 열로 나눌 수있는 제안 (복합 값을 생성하는보기와 사용자가 합성 값을 효율적으로 검색 할 수 있도록 함수 기반 색인을 사용하는 것이 가능) –

+0

쿼리는 항상 UNIQUE_ID . 고맙습니다! – Jayan

관련 문제