어떤 상황에서는 다음을 사용하여 정기적으로 색인을 재구축하는 것이 좋습니다.REINDEX명령 또는 일련의 개별 재구축 단계.
완전히 비어 있는 B-트리 인덱스 페이지는 재사용을 위해 회수됩니다. 그러나 여전히 공간을 비효율적으로 사용할 가능성이 있습니다. 페이지에서 몇 개의 인덱스 키를 제외하고 모두 삭제된 경우 페이지는 할당된 상태로 유지됩니다. 따라서 각 범위의 전체가 아닌 대부분의 키가 결국 삭제되는 사용 패턴은 공간 활용도가 저하됩니다. 이러한 사용 패턴의 경우 정기적으로 색인을 다시 생성하는 것이 좋습니다.
비B-트리 인덱스의 팽창 가능성은 잘 연구되지 않았습니다. B-트리가 아닌 인덱스 유형을 사용할 때는 인덱스의 물리적 크기를 주기적으로 모니터링하는 것이 좋습니다.
또한 B-트리 인덱스의 경우 새로 구성된 인덱스는 여러 번 업데이트된 인덱스보다 액세스 속도가 약간 더 빠릅니다. 왜냐하면 논리적으로 인접한 페이지는 일반적으로 새로 작성된 인덱스에서 물리적으로도 인접하기 때문입니다. (이 고려사항은 비B-트리 인덱스에는 적용되지 않습니다.) 액세스 속도를 향상시키기 위해 주기적으로 인덱스를 다시 작성하는 것이 좋습니다.
REINDEX모든 경우에 안전하고 쉽게 사용할 수 있습니다. 그러나 이 명령에는 배타적 테이블 잠금이 필요하므로 일련의 생성 및 교체 단계를 통해 인덱스 재구축을 실행하는 것이 더 나은 경우가 많습니다. 지원하는 인덱스 유형색인 생성와 함께동시옵션은 대신 그런 식으로 다시 생성될 수 있습니다. 성공하고 결과 인덱스가 유효하면 원래 인덱스는 다음 조합을 사용하여 새로 빌드된 인덱스로 대체될 수 있습니다.색인 변경그리고인덱스 삭제. 고유성이나 기타 제약 조건을 적용하기 위해 인덱스를 사용하는 경우,테이블 변경기존 제약조건을 새 인덱스에 의해 시행된 제약조건으로 교체해야 할 수도 있습니다. 이 방법으로 색인을 다시 생성할 수 있는 색인에 제한이 있고 오류를 처리해야 하므로 사용하기 전에 이 대체 다단계 재구축 접근 방식을 주의 깊게 검토하세요.