지원되는 버전 :현재(17) /16 / 15 / 14 / 13
개발 버전 :18 / devel
지원되지 않는 버전 :12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 동일한 페이지를 볼 수 있습니다현재버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

토토 커뮤니티

토토 커뮤니티 - 인덱스 재건

시놉시스

토토 커뮤니티 [(Verbose)] index | 표 | 스키마 | 데이터베이스 | 시스템이름

설명

토토 커뮤니티인덱스 테이블에 저장된 데이터를 사용하여 인덱스를 다시 작성하여 색인의 기존 사본을 대체합니다. 사용할 몇 가지 시나리오가 있습니다토토 커뮤니티:

  • 인덱스가 손상되었으며 더 이상 유효한 데이터를 포함하지 않습니다. 이론적으로는 이런 일이 일어나지 않아야하지만 실제로는 소프트웨어 버그 나 하드웨어 고장으로 인해 인덱스가 손상 될 수 있습니다.토토 커뮤니티복구 방법을 제공합니다.

  • 색인이되었습니다Bloated, 그것은 비어 있거나 거의 비어있는 많은 페이지를 포함합니다. 이것은 b- 트리 색인에서에서 발생할 수 있습니다.PostgreSQL특정 드문 액세스 패턴 아래.토토 커뮤니티죽은 페이지없이 인덱스의 새 버전을 작성하여 인덱스의 공간 소비를 줄이는 방법을 제공합니다. 보다섹션 24.2자세한 내용은

  • 당신은 색인에 대한 스토리지 매개 변수 (예 : FillFactor)를 변경했으며 변경이 완전한 효과를 보장하고자합니다.

  • 동시에옵션 실패,잘못된색인. 이러한 인덱스는 쓸모가 없지만 사용하기 편리 할 수 있습니다토토 커뮤니티그들을 재건하려면. 참고토토 커뮤니티동시 빌드를 수행하지 않습니다. 생산을 방해하지 않고 인덱스를 구축하려면 색인을 삭제하고 재발행해야합니다동시에 색인 생성명령.

매개 변수

색인

지정된 색인 재현.

테이블

지정된 테이블의 모든 인덱스를 재현합니다. 테이블에 보조가있는 경우토스트테이블, 그것은 또한 다시 표시됩니다.

스키마

지정된 스키마의 모든 인덱스를 재현합니다. 이 스키마의 테이블에 보조가있는 경우토스트테이블, 그것은 또한 다시 표시됩니다. 공유 시스템 카탈로그의 색인도 처리됩니다. 이 형태의토토 커뮤니티트랜잭션 블록 내부에서 실행할 수 없습니다.

데이터베이스

현재 데이터베이스 내의 모든 인덱스를 재현합니다. 공유 시스템 카탈로그의 색인도 처리됩니다. 이 형태의토토 커뮤니티트랜잭션 블록 내부에서 실행할 수 없습니다.

시스템

현재 데이터베이스 내 시스템 카탈로그에서 모든 색인을 재현합니다. 공유 시스템 카탈로그의 인덱스가 포함되어 있습니다. 사용자 테이블의 인덱스는 처리되지 않습니다. 이 형태의토토 커뮤니티트랜잭션 블록 내부에서 실행할 수 없습니다.

이름

특정 인덱스, 테이블 또는 데이터베이스의 이름은 다시 표시됩니다. 인덱스 및 테이블 이름은 스키마 자격을 사용할 수 있습니다. 현재,토토 커뮤니티 데이터베이스and토토 커뮤니티 System현재 데이터베이스 만 다시 표시 할 수 있으므로 매개 변수는 현재 데이터베이스 이름과 일치해야합니다.

Verbose

각 지수가 다시 표시 될 때 진행 보고서를 인쇄합니다.

노트

사용자 테이블에서 인덱스의 손상이 의심되는 경우 사용하여 해당 색인 또는 테이블의 모든 인덱스를 재구성 할 수 있습니다토토 커뮤니티 Index또는토토 커뮤니티 테이블.

시스템 테이블에서 인덱스의 손상을 복구 해야하는 경우 문제가 더 어렵습니다. 이 경우 시스템이 용의자 지수 자체를 사용하지 않은 것이 중요합니다. (실제로 이러한 종류의 시나리오에서는 손상된 인덱스에 대한 의존으로 인해 서버 프로세스가 시작시 즉시 충돌하고 있음을 알 수 있습니다.) 안전하게 복구하려면 서버는로 시작해야합니다.-p옵션, 시스템 카탈로그 조회에 인덱스를 사용하지 못하게합니다.

이 작업을 수행하는 한 가지 방법은 서버를 종료하고 단일 사용자를 시작하는 것입니다PostgreSQL서버가있는-p명령 줄에 포함 된 옵션. 그 다음에,토토 커뮤니티 데이터베이스, 토토 커뮤니티 System, 토토 커뮤니티 테이블또는토토 커뮤니티 Index재구성하려는 양에 따라 발행 할 수 있습니다. 의심스러운 경우 사용토토 커뮤니티 System데이터베이스에서 모든 시스템 인덱스의 재구성을 선택합니다. 그런 다음 단일 사용자 서버 세션을 종료하고 일반 서버를 다시 시작하십시오. 참조Postgres참조 페이지 단일 사용자 서버 인터페이스와 상호 작용하는 방법에 대한 자세한 내용.

또는 정기 서버 세션을 시작할 수 있습니다.-p명령 줄 옵션에 포함되어 있습니다. 이를 수행하는 방법은 고객마다 다르지만 모두libpq-기반 클라이언트,를 설정할 수 있습니다pgoptions환경 변수 to-p클라이언트를 시작하기 전에. 이 방법은 다른 클라이언트를 잠그는 것이 필요하지 않지만 수리가 완료 될 때까지 다른 사용자가 손상된 데이터베이스에 연결하는 것을 방지하는 것이 여전히 현명 할 수 있습니다..

토토 커뮤니티는 인덱스 내용이 처음부터 재건된다는 점에서 인덱스의 드롭 및 재생성과 유사합니다. 그러나 잠금 고려 사항은 다소 다릅니다.토토 커뮤니티잠금 OUT은 쓰기하지만 인덱스의 상위 테이블을 읽지 않습니다. 또한도 필요합니다.액세스 독점처리중인 특정 인덱스를 잠그고 해당 인덱스를 사용하려는 읽기를 차단합니다. 대조적으로,Drop Index순간적으로액세스 독점부모 테이블을 잠그고 두 글과 읽기를 차단합니다. 후속색인 생성Locks Out은 쓰기를 읽지 만 읽지 않습니다. 인덱스가 없으므로 읽기가 사용하려고 시도하지 않으므로 차단이 없지만 읽기가 값 비싼 순차적 스캔으로 강제 될 수 있음을 의미합니다.

단일 인덱스 또는 테이블을 다시 표시하려면 해당 인덱스 또는 테이블의 소유자가 필요합니다. 스키마 또는 데이터베이스를 다시 표시하려면 해당 스키마 또는 데이터베이스의 소유자가 필요합니다. 따라서 비 슈퍼 사용자가 다른 사용자가 소유 한 테이블의 인덱스를 재건 할 수 있습니다. 그러나 특별한 예외로토토 커뮤니티 데이터베이스, 토토 커뮤니티 Schema또는토토 커뮤니티 System는 비 슈퍼 루저가 발행하며, 공유 카탈로그의 색인은 사용자가 카탈로그를 소유하지 않으면 건너 뜁니다 (일반적으로 그렇지 않습니다). 물론 슈퍼 사용자는 항상 모든 것을 다시 구사할 수 있습니다.

파티션 된 테이블 또는 분할 된 인덱스는 지원되지 않습니다. 각 개별 파티션은 대신 별도로 구사 될 수 있습니다.

단일 색인 재건 :

토토 커뮤니티 index my_index;

테이블의 모든 인덱스를 재구성my_table:

토토 커뮤니티 테이블 my_table;

시스템 색인이 이미 유효하도록 신뢰하지 않고 특정 데이터베이스의 모든 색인을 재구성합니다.

$export pgoptions = "-p"$PSQL Broken_DB...
broken_db = 토토 커뮤니티 데이터베이스 broken_db;
broken_db = \ q

호환성

19899_19913토토 커뮤니티SQL 표준의 명령.