programing

SQL Server - 클러스터된 인덱스와 비클러스터된 인덱스를 사용할 때

easyjava 2023. 4. 14. 22:19
반응형

SQL Server - 클러스터된 인덱스와 비클러스터된 인덱스를 사용할 때

클러스터된 인덱스와 클러스터되지 않은 인덱스의 주요 차이점을 알고 있으며 실제로 어떻게 작동하는지 이해하고 있습니다.클러스터된 인덱스와 비클러스터된 인덱스가 읽기 성능을 향상시키는 방법을 이해했습니다.하지만 한 가지 확실하지 않은 것은 내가 하나를 택하는 이유가 무엇일까 하는 것이다.

예: 테이블에 클러스터된 인덱스가 없는 경우 비클러스터된 인덱스를 생성해야 하며 이 작업을 수행하면 어떤 이점이 있습니까?

경고하고 싶은 것은 클러스터화된 인덱스를 매우 신중하게 선택하라는 것입니다.모든 "일반" 데이터 테이블에는 클러스터형 인덱스가 있어야 합니다. 클러스터형 인덱스를 사용하면 실제로 많은 작업 속도가 향상됩니다. 예, 속도가 향상되고 삽입 및 삭제도 가능합니다.그러나 클러스터된 인덱스를 잘 선택하는 경우에만 해당됩니다.

SQL Server 데이터베이스에서 가장 많이 복제된 데이터 구조입니다.클러스터링 키는 테이블에 있는 각 비클러스터 인덱스의 일부이기도 합니다.

클러스터링 키를 선택할 때는 다음과 같이 매우 주의해야 합니다.

  • 이 좁음(4바이트가 이상적)

  • unique(결국 '행 포인터'입니다).고유한 SQL Server를 만들지 않으면 각 엔트리에 대해 몇 바이트의 비용과 행 수 및 비클러스터형 인덱스 수를 곱한 비용이 많이 듭니다.

  • static(가능한 경우 변경하지 않음)

  • 인덱스 플래그멘테이션이 심하지 않도록 하는 것이 이상적입니다(GUID는 좋은 클러스터링 키와 완전히 반대입니다).

  • 이 케이블은 분리할 수 없고 폭도 고정되어야 한다.varchar(250)매우 불량한 클러스터 키를 만듭니다.

그 외의 것은, 이러한 점의 배후에 있는 2차, 3차 레벨의 중요도입니다.

Kimberly Tripp(인덱싱의 여왕)의 블로그 투고를 봐주세요.그녀가 블로그에 쓴 것은 모두 매우 귀중한 것입니다.읽고, 소화하고, 생생하게!

언급URL : https://stackoverflow.com/questions/18304376/sql-server-when-to-use-clustered-vs-non-clustered-index

반응형