다음을 통해 공유


인덱스를 파일 그룹에 배치

인덱스 디자인 전략을 개발할 때는 데이터베이스와 관련된 파일 그룹에 인덱스를 배치해야 합니다. 파일 그룹이나 파티션 구성표를 주의 깊게 선택하면 쿼리 성능을 향상시킬 수 있습니다.

기본적으로 인덱스는 인덱스가 생성된 기본 테이블과 동일한 파일 그룹에 저장됩니다. 분할되지 않은 클러스터형 인덱스와 기본 테이블은 항상 동일한 파일 그룹 내에 위치합니다. 그러나 다음과 같은 작업도 가능합니다.

  • 기본 테이블의 파일 그룹이 아닌 파일 그룹에 비클러스터형 인덱스를 만듭니다.

  • 여러 파일 그룹에 걸쳐 클러스터형 및 비클러스터형 인덱스를 분할합니다.

  • 클러스터형 인덱스를 삭제한 후 새 파일 그룹이나 파티션 구성표를 DROP INDEX 문의 MOVE TO 절에 지정하거나 CREATE INDEX 문에 DROP_EXISTING 절을 사용하여 한 파일 그룹에서 다른 파일 그룹으로 테이블을 이동합니다.

다른 파일 그룹에서 자체의 컨트롤러를 가진 여러 개의 물리적 드라이브를 사용하는 경우에는 파일 그룹에 비클러스터형 인덱스를 만들어 성능 향상을 이룰 수 있습니다. 그러면 데이터와 인덱스 정보를 여러 개의 디스크 헤드로 병렬로 읽을 수 있습니다. 예를 들어 f1 파일 그룹의 Table_Af2 파일 그룹의 Index_A가 모두 같은 쿼리에서 사용되는 경우에는 두 파일 그룹이 모두 경합 없이 충분히 활용되므로 성능 향상이 이루어질 수 있습니다. 그러나 Table_A는 쿼리에서 검색되지만 Index_A가 참조되지 않으면 파일 그룹 f1만 사용되므로 성능이 향상되지 않습니다.

앞으로 있을 액세스의 유형과 시점을 정확히 예측할 수는 없으므로 테이블과 인덱스를 모든 파일 그룹에 걸쳐 분산시키는 것이 더 안전합니다. 이렇게 하면 모든 데이터와 인덱스가 모든 디스크에 동일하게 분산되기 때문에 어떤 방식으로 데이터에 액세스하든지 모든 디스크에 액세스할 수 있습니다. 이는 시스템 관리자에게 더욱 간단한 방법이기도 합니다.

여러 파일 그룹에 걸친 파티션

여러 파일 그룹에 걸쳐 클러스터형 및 비클러스터형 인덱스를 분할하는 것을 고려할 수도 있습니다. 분할된 인덱스는 파티션 함수를 기준으로 가로 또는 행으로 분할됩니다. 파티션 함수는 분할 열이라는 특정 열의 값을 기준으로 각 행이 파티션 집합에 매핑되는 방식을 정의합니다. 파티션 구성표는 파티션과 파일 그룹 간의 매핑을 지정합니다.

인덱스를 분할하면 다음 이점이 제공됩니다.

  • 큰 인덱스를 보다 잘 관리할 수 있는 확장 가능한 시스템을 제공합니다. 예를 들어 OLTP 시스템에서 파티션을 인식하며 큰 인덱스를 처리하는 응용 프로그램을 구현할 수 있습니다.

  • 쿼리가 보다 빠르고 효율적으로 실행됩니다. 쿼리가 인덱스의 여러 파티션을 액세스할 때 쿼리 최적화 프로그램은 동시에 여러 파티션을 처리하고 쿼리의 영향을 받지 않는 파티션을 제외할 수 있습니다.

자세한 내용은 분할된 테이블 및 인덱스를 참조하십시오.

특정 파일 그룹에 새 인덱스를 만들려면

CREATE INDEX

기존 인덱스 또는 테이블을 다른 파일 그룹으로 이동하려면

방법: 다른 파일 그룹으로 기존 인덱스 이동(SQL Server Management Studio)

DROP INDEX MOVE TO

CREATE INDEX WITH DROP_EXISTING