프로덕션 환경에 데이터베이스 응용 프로그램이 있으며 모든 테이블은 현재 클러스터 된 인덱스로 설정된 GUID 기본 키를 사용합니다. 나는 이것이 성능 고려 사항 때문에 빈약 한 디자인이라는 것을 알고 있습니다. Kimberly Tripp의 this great article을 비롯한 많은 주제를 읽었습니다.GUID 기본 키, 별도의 클러스터 된 인덱스 열
INT
의 자동 증가 인덱스 열을 간단히 만들고 클러스터 된 인덱스로 설정하여 성능을 향상시킬 수 있습니까? 필자는 Kimberly의 기사에서 클러스터되지 않은 모든 인덱스 (예 : 내 GUID 기본 키 등)가 클러스터 된 인덱스를 참조 함을 이해합니다. 그러나 WHERE
절에서 GUID 기본 키를 사용하여 레코드를 검색 할 경우 실제로 성능이 향상 될 것입니까?
또한 기존 레코드의 새 열을 자연스러운 순서로 채워서 성능을 향상시킬 수 있습니까?
편집 : 다른 질문 GUID 기본 키의 사용에 대한 일반에 대한 성능 고려 사항의 모범 사례에 대해 요구하고있다 :이 질문은 this other question의 중복 여부를 해결하기 위해. 특별한 접근법은 논의되지 않았다. 반면 내 질문은 자동 증가 인덱스 열 INT
의 추가 여부가 GUID 기본 키의 문제를 개선하는 데 도움이되는지 묻는 것입니다. 더욱이, 나의 질문은 그 혜택을 실현하기 위해 자신의 "자연 질서"에 새로운 칼럼을 채워야 할지를 묻는다. 일반 수준이 높아서 다른 질문에서 다루지 않는다.
예,보다 적합한 클러스터링 키 덕분에 조각화가 크게 감소하므로 성능이 향상됩니다. GUID는 고유 할 것이므로 항상 하나의 레코드 만 가져 오므로 추가 키 조회가 포함되어 있지만 시간이 지남에 따라 더 나은 조각 동작이 유용합니다. –
[GUID를 사용하는 최상의 방법은 무엇입니까? 특히 성능과 관련하여 기본 키로 사용합니까?] (http : // stackoverflow.com/questions/11938044/what-are-the-the-the-best-practices-for-a-primary-key-specific-rega) – AHiggins
@AHiggins - 내 편집을 참조하십시오. –