적용 대상:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Microsoft Fabric의 SQL 데이터베이스
디스크 공간은 인덱스를 만들거나 다시 작성하거나 삭제할 때 중요한 고려 사항입니다. 디스크 공간이 부족하면 성능이 저하되거나 인덱스 작업이 실패할 수도 있습니다. 이 문서에서는 DDL(인덱스 데이터 정의 언어) 작업에 필요한 디스크 공간의 양을 결정하는 데 도움이 되는 일반적인 정보를 제공합니다.
추가 디스크 공간이 필요하지 않은 인덱스 작업
다음 인덱스 작업은 추가 디스크 공간이 필요하지 않습니다.
ALTER INDEX REORGANIZE; 그러나 로그 공간이 필요합니다.DROP INDEX비클러스터형 인덱스 삭제 시DROP INDEX절을 지정하지 않고 클러스터형 인덱스를 오프라인으로 삭제하는MOVE TO경우 비클러스터형 인덱스가 존재하지 않습니다.CREATE TABLE(PRIMARY KEY또는UNIQUE제약 조건)
추가 디스크 공간이 필요한 인덱스 작업
그 외 모든 인덱스 DDL 작업에는 작업 중 사용할 추가 임시 디스크 공간과 새 인덱스 구조를 저장할 영구 디스크 공간이 필요합니다.
새 인덱스 구조가 생성되면 해당 파일과 파일 그룹에 기존(원본) 구조와 새(대상) 구조를 위한 디스크 공간이 모두 필요합니다. 인덱스 만들기 트랜잭션이 커밋될 때까지 이전 구조체의 할당이 취소되지 않습니다.
다음 인덱스 DDL 작업은 새 인덱스 구조를 만들고 추가 디스크 공간이 필요합니다.
CREATE INDEXCREATE INDEX WITH DROP_EXISTINGALTER INDEX REBUILD-
ALTER TABLE ADD CONSTRAINT(PRIMARY KEY또는UNIQUE) -
ALTER TABLE DROP CONSTRAINT(PRIMARY KEY또는UNIQUE) 제약 조건이 클러스터형 인덱스 기반인 경우 -
DROP INDEX MOVE TO(클러스터형 인덱스에만 적용됩니다.)
정렬을 위한 임시 디스크 공간
쿼리 최적화 프로그램에서 정렬이 필요하지 않은 실행 계획을 찾지 않는 한 원본 및 대상 구조에 필요한 디스크 공간 외에도 정렬에 임시 디스크 공간이 필요합니다.
정렬이 필요한 경우 정렬로 한 번에 하나의 새 인덱스가 발생합니다. 예를 들어 단일 문 내에서 클러스터형 인덱스 및 연결된 비클러스터형 인덱스를 다시 작성하면 인덱스가 하나씩 정렬됩니다. 따라서 정렬에 필요한 추가 임시 디스크 공간은 작업에서 가장 큰 인덱스만큼 커야 합니다. 거의 항상 클러스터형 인덱스입니다.
옵션이 SORT_IN_TEMPDB로 설정되면, 가장 큰 인덱스는 ON에 맞아야 합니다. 이 옵션은 인덱스를 만드는 데 사용되는 임시 디스크 공간의 양을 늘리지만 사용자 데이터베이스와 다른 디스크 집합에 있을 때 tempdb 인덱스를 만드는 데 필요한 시간을 줄일 수 있습니다.
각 인덱스를 SORT_IN_TEMPDB (기본값)으로 설정하면, 분할된 인덱스를 포함하여, 각 인덱스는 자신의 대상 디스크 공간에서 정렬됩니다. 따라서 새 인덱스 구조에 필요한 디스크 공간만 필요합니다.
디스크 공간을 계산하는 예제는 디스크 공간 인덱스 예제를 참조하세요.
온라인 인덱스 작업을 위한 임시 디스크 공간
온라인으로 인덱스 작업을 수행하는 경우 추가 임시 디스크 공간이 필요합니다.
클러스터형 인덱스를 만들거나 다시 작성하거나 온라인으로 삭제하면 임시 비클러스터형 인덱스가 만들어지고 이전 책갈피가 새 책갈피에 매핑됩니다.
SORT_IN_TEMPDB 옵션을 설정ON하면 이 임시 인덱스가 만들어집니다tempdb.
SORT_IN_TEMPDB로 설정될 경우, OFF는 대상 인덱스와 같은 파일 그룹 또는 파티션 구성표가 사용됩니다. 임시 매핑 인덱스는 테이블의 각 행에 대해 하나의 레코드를 포함하며, 해당 내용은 고유 식별자 및 레코드 식별자를 포함한 이전 책갈피 및 새 책갈피 열의 합집합입니다. 또한 두 책갈피에 사용된 열의 단일 복사본만 포함합니다. 온라인 인덱스 작업에 대한 자세한 내용은 온라인으로 인덱스 작업 수행을 참조하세요.
참고 항목
SORT_IN_TEMPDB 옵션은 DROP INDEX 문에 설정할 수 없습니다. 임시 매핑 인덱스는 항상 대상 인덱스와 동일한 파일 그룹 또는 파티션 구성표에 만들어집니다.
온라인 인덱스 작업은 행 버전 관리를 사용하여 다른 트랜잭션에서 수정하는 내용의 영향을 받지 않습니다. 이렇게 하면 읽은 행에 대한 공유 잠금을 요청할 필요가 없습니다. 온라인 인덱스 작업 중에 동시 사용자 업데이트 및 삭제 작업에는 버전 레코드에 tempdb대한 공간이 필요합니다. 자세한 내용은 온라인으로 인덱스 작업 수행을 참조하세요.