스포츠 토토 베트맨 - 인덱스 재건
스포츠 토토 베트맨 [(옵션
[, ...])] index | 표 |이름
스포츠 토토 베트맨 [(옵션
[, ...])] 데이터베이스 | System [동시에] [이름
] 여기서옵션
|동시에 [부울
]new_tablespace
Verbose [부울
]
스포츠 토토 베트맨
인덱스 테이블에 저장된 데이터를 사용하여 인덱스를 다시 작성하여 색인의 이전 사본을 대체합니다. 사용할 몇 가지 시나리오가 있습니다스포츠 토토 베트맨
:
인덱스가 손상되었으며 더 이상 유효한 데이터를 포함하지 않습니다. 이론적으로는 이런 일이 일어나지 않아야하지만 실제로는 소프트웨어 버그 나 하드웨어 고장으로 인해 인덱스가 손상 될 수 있습니다.스포츠 토토 베트맨
복구 방법 제공.
인덱스가되었습니다“Bloated”, 그것은 비어 있거나 거의 비어있는 많은 페이지를 포함합니다. 이것은 b- 트리 색인에서에서 발생할 수 있습니다.postgresql특정 드문 액세스 패턴 아래.스포츠 토토 베트맨
는 죽은 페이지없이 인덱스의 새 버전을 작성하여 인덱스의 공간 소비를 줄이는 방법을 제공합니다. 보다섹션 24.2자세한 내용은
인덱스에 대한 스토리지 매개 변수 (예 : FillFactor)를 변경하고 변경이 완전한 시행되었는지 확인하고자합니다.
인덱스 빌드가에 실패한 경우동시에
옵션,이 색인은로 남겨 둡니다.“잘못된”. 이러한 인덱스는 쓸모가 없지만 사용하기 편리 할 수 있습니다스포츠 토토 베트맨
재건하려면. 만스포츠 토토 베트맨 Index
무효 인덱스에서 동시 빌드를 수행 할 수 있습니다.
index
지정된 인덱스를 재현합니다. 이 형태의스포츠 토토 베트맨
파티션 된 인덱스와 함께 사용하면 트랜잭션 블록 내부에서 실행할 수 없습니다.
테이블
지정된 테이블의 모든 인덱스를 재현합니다. 테이블에 보조가있는 경우“토스트”테이블, 그것은 또한 다시 표시됩니다. 이 형태의스포츠 토토 베트맨
파티션 된 테이블과 함께 사용하면 트랜잭션 블록 내부에서 실행할 수 없습니다.
스키마
지정된 스키마의 모든 인덱스를 재현합니다. 이 스키마의 테이블에 보조가있는 경우“토스트”테이블, 그것은 또한 다시 표시됩니다. 공유 시스템 카탈로그의 색인도 처리됩니다.스포츠 토토 베트맨
트랜잭션 블록 내부에서 실행할 수 없습니다.
데이터베이스
시스템 카탈로그를 제외한 현재 데이터베이스 내의 모든 인덱스를 재현합니다. 시스템 카탈로그의 인덱스는 처리되지 않습니다.스포츠 토토 베트맨
트랜잭션 블록 내부에서 실행할 수 없습니다.
System
현재 데이터베이스 내 시스템 카탈로그에서 모든 색인을 재현합니다. 공유 시스템 카탈로그의 인덱스가 포함되어 있습니다.스포츠 토토 베트맨
트랜잭션 블록 내부에서 실행할 수 없습니다.
이름
특정 인덱스, 테이블 또는 데이터베이스의 이름은 다시 표시됩니다. 인덱스 및 테이블 이름은 스키마 자격을 사용할 수 있습니다.스포츠 토토 베트맨 데이터베이스
및스포츠 토토 베트맨 System
현재 데이터베이스 만 다시 표시 할 수 있습니다. 그들의 매개 변수는 선택 사항이며 현재 데이터베이스 이름과 일치해야합니다.
동시에
이 옵션이 사용될 때postgresql테이블에서 동시 인서트, 업데이트 또는 삭제를 방지하는 잠금 장치를 사용하지 않고 인덱스를 재구성합니다. 표준 인덱스는 잠금을 재건 해제 할 때까지 테이블에 쓴 (읽지 않음)를 재건합니다.지수 재건 동시에아래.
임시 테이블의 경우스포츠 토토 베트맨
다른 세션에 액세스 할 수없고, 비 콘유트 리인덱스는 저렴합니다..
테이블 스페이스
새로운 테이블 스페이스에서 인덱스가 재건 될 것이라고 지정합니다.
Verbose
각 지수가 다시 표시 될 때 진행 보고서를 인쇄합니다.
부울
선택한 옵션을 켜거나 끄야하는지 여부를 지정합니다. 당신은 쓸 수 있습니다true
, on
또는1
옵션을 활성화하려면거짓
, OFF
또는0
비활성화하려면. 그만큼부울
값도 생략 할 수 있습니다.true
가 가정됩니다.
new_tablespace
인덱스가 재건 될 테이블 스페이스.
사용자 테이블에서 인덱스의 손상이 의심되는 경우 사용하여 해당 인덱스 또는 테이블의 모든 색인을 재구성 할 수 있습니다스포츠 토토 베트맨 Index
또는스포츠 토토 베트맨 테이블
.
시스템 테이블에서 인덱스의 손상을 복구 해야하는 경우 문제가 더 어렵습니다. 이 경우 시스템이 용의자 지수 자체를 사용하지 않은 것이 중요합니다.-p
옵션 - 시스템 카탈로그 조회에 인덱스를 사용하지 못하게합니다.
이 작업을 수행하는 한 가지 방법은 서버를 종료하고 단일 사용자를 시작하는 것입니다postgresql서버가있는-p
명령 줄에 포함 된 옵션. 그 다음에,스포츠 토토 베트맨 데이터베이스
, 스포츠 토토 베트맨 System
, 스포츠 토토 베트맨 테이블
또는스포츠 토토 베트맨 Index
재구성하려는 양에 따라 발행 할 수 있습니다. 의심스러운 경우 사용스포츠 토토 베트맨 System
데이터베이스에서 모든 시스템 인덱스의 재구성을 선택합니다. 그런 다음 단일 사용자 서버 세션을 종료하고 일반 서버를 다시 시작하십시오.Postgres참조 페이지 단일 사용자 서버 인터페이스와 상호 작용하는 방법에 대한 자세한 내용.
또는 일반 서버 세션을 시작할 수 있습니다-p
명령 줄 옵션에 포함됩니다. 이를 수행하는 방법은 고객마다 다르지만 모두libpq-기반 클라이언트,를 설정할 수 있습니다pgoptions
환경 변수 to-p
클라이언트를 시작하기 전에. 이 방법은 다른 클라이언트를 잠그는 것이 필요하지 않지만 수리가 완료 될 때까지 다른 사용자가 손상된 데이터베이스에 연결하는 것을 방지하는 것이 여전히 현명 할 수 있습니다..
스포츠 토토 베트맨
는 인덱스 내용이 처음부터 재건된다는 점에서 인덱스의 드롭 및 재생성과 유사합니다. 그러나 잠금 고려 사항은 다소 다릅니다.스포츠 토토 베트맨
잠금 OUT은 쓴다. 또한도 필요합니다.액세스 독점
처리중인 특정 인덱스를 잠그고 해당 인덱스를 사용하려는 읽기를 차단합니다. 특히 쿼리 플래너는를 취하려고합니다.액세스 공유
쿼리에 관계없이 테이블의 모든 색인을 잠그십시오스포츠 토토 베트맨
계획이 캐시 되고이 인덱스를 사용하지 않는 일부 준비된 쿼리를 제외하고는 거의 모든 쿼리를 차단합니다. 대조적으로,Drop Index
순간적으로액세스 독점
부모 테이블을 잠그고 두 글과 읽기를 차단합니다. 후속색인 생성
Locks Out은 쓰기를 읽지 만 읽지 않습니다. 인덱스가 없으므로 읽기가 사용하려고 시도하지 않으므로 차단이 없지만 읽기가 값 비싼 순차적 스캔으로 강제 될 수 있음을 의미합니다.
while스포츠 토토 베트맨
실행 중입니다.search_path일시적으로 변경PG_CATALOG, PG_TEMP
.
단일 색인 또는 테이블에 reindexing유지 관리
테이블의 특권.스포츠 토토 베트맨
분할 된 색인 또는 테이블의유지 관리
분할 된 테이블의 특권, 그러한 명령은 개별 파티션을 처리 할 때 권한 검사를 건너 뜁니다. 스키마 또는 데이터베이스를 다시 표시하는 것은 해당 스키마 또는 데이터베이스의 소유자가되거나의 권한이 있어야합니다.pg_maintain
역할. 비 슈퍼 사용자가 다른 사용자가 소유 한 테이블의 인덱스를 재건 할 수 있다는 점에 유의하십시오.스포츠 토토 베트맨 데이터베이스
, 스포츠 토토 베트맨 Schema
및스포츠 토토 베트맨 System
사용자가가없는 한 공유 카탈로그에서 인덱스를 건너 뛸 것입니다.유지 관리
카탈로그의 특권.
reindexing 분할 된 인덱스 또는 분할 된 테이블이 지원됩니다스포츠 토토 베트맨 Index
또는스포츠 토토 베트맨 테이블
21029_21240
사용시테이블 스페이스
스포츠 토토 베트맨
분할 된 인덱스 또는 테이블에서 잎 파티션의 테이블 스페이스 참조 만 업데이트됩니다. 분할 된 인덱스가 업데이트되지 않으므로 별도로 사용하는 것이 좋습니다Alter Table 만
새로운 파티션이 새 테이블 스페이스를 물려 받으십시오. 실패시 모든 인덱스를 새 테이블 스페이스로 옮겼을 수 있습니다.
if스키마
, 데이터베이스
또는System
테이블 스페이스
, 시스템 관계가 건너 뛰고 단일경고
생성됩니다. 토스트 테이블의 인덱스는 재건되었지만 새 테이블 스페이스로 이동하지는 않습니다.
인덱스 재건은 데이터베이스의 정기적 인 작동을 방해 할 수 있습니다. 보통postgresql인덱스가 쓰기에 대해 재건 된 테이블을 잠그고 테이블의 단일 스캔으로 전체 색인 빌드를 수행합니다. 다른 트랜잭션은 여전히 테이블을 읽을 수 있지만 테이블에 행을 삽입, 업데이트 또는 삭제하려고하면 인덱스 재건이 완료 될 때까지 차단됩니다.
postgresql쓰기의 최소 잠금으로 재건축 인덱스를 지원합니다. 이 방법은를 지정하여 호출됩니다.동시에
옵션스포츠 토토 베트맨
. 이 옵션이 사용될 때postgresql각 인덱스에 대해 테이블의 두 스캔을 수행해야하며, 이는 재건되어야하며 잠재적으로 인덱스를 사용할 수있는 모든 기존 트랜잭션의 종료를 기다려야합니다. 이 방법은 표준 지수 재건보다 더 많은 총 작업이 필요하며 인덱스를 수정할 수있는 미완성 트랜잭션을 기다려야하므로 완료하는 데 훨씬 더 오래 걸립니다.
다음 단계는 동시 리인덱스에서 발생합니다. 각 단계는 별도의 거래에서 실행됩니다.
카탈로그에 새로운 과도 지수 정의가 추가됩니다pg_index
. 이 정의는 이전 색인을 대체하는 데 사용됩니다.공유 업데이트 독점
처리 중에 스키마 수정을 방지하기 위해 관련 테이블뿐만 아니라 다시 표시되는 인덱스에서 세션 수준에서 잠금이 발생합니다.
인덱스를 구축하는 첫 번째 패스는 각각의 새로운 인덱스에 대해 수행됩니다. 인덱스가 구축되면 플래그PG_INDEX.INDISREADY
로 전환“true”삽입 준비를하기 위해 빌드를 수행 한 트랜잭션이 완료되면 다른 세션에 보이도록합니다. 이 단계는 각 지수에 대해 별도의 트랜잭션에서 수행됩니다.
그런 다음 첫 번째 패스가 작동하는 동안 추가 된 튜플을 추가하기 위해 두 번째 패스가 수행됩니다. 이 단계는 각 지수에 대해 별도의 트랜잭션에서도 수행됩니다.
인덱스를 참조하는 모든 제약 조건은 새 인덱스 정의를 참조하도록 변경되고 인덱스 이름이 변경됩니다. 이 시점에서pg_index.indisvalid
로 전환“true”새로운 색인 및 to“거짓”기존의 경우, 캐시 무효화가 완료되어 기존 색인을 무효화하는 모든 세션이 발생합니다.
이전 인덱스는PG_INDEX.INDISREADY
전환“거짓”새로운 튜플 삽입을 방지하려면 이전 색인을 참조 할 수있는 실행 쿼리를 기다린 후.
이전 인덱스가 삭제됩니다. 그만큼공유 업데이트 독점
인덱스 및 테이블에 대한 세션 잠금 장치가 해제됩니다.
고유 한 지수의 독창성 위반과 같은 인덱스를 재건하는 동안 문제가 발생하면스포츠 토토 베트맨
명령은 실패하지만 뒤에 남겨 둡니다.“잘못된”새로운 인덱스 외에도 기존 인덱스. 이 색인은 불완전 할 수 있으므로 쿼리 목적으로 무시됩니다.PSQL \ d
명령은와 같은 색인을보고합니다.Invalid
:
postgres =# \ d 탭
인덱스가 표시된 경우Invalid
접미사ccnew
, 그런 다음 동시 작동 중에 생성 된 과도 지수에 해당하며 권장되는 복구 방법은를 사용하여 삭제하는 것입니다.Drop Index
, 그런 다음 시도스포츠 토토 베트맨 동시에
다시. 유효하지 않은 인덱스가 대신 접미사 인 경우ccold
, 삭제할 수없는 원래 색인에 해당합니다. 권장 복구 방법은 재건축이 성공적 이었으므로 상기 색인을 삭제하는 것입니다.
일반 색인 빌드는 동일한 테이블의 다른 일반 색인 빌드가 동시에 발생할 수 있도록 허용하지만 한 번에 테이블에서 하나의 동시 인덱스 빌드 만 발생할 수 있습니다. 두 경우 모두 테이블의 다른 수정 자의 스키마 수정은 허용되지 않습니다.스포츠 토토 베트맨 테이블
또는스포츠 토토 베트맨 Index
명령은 트랜잭션 블록 내에서 수행 할 수 있지만스포츠 토토 베트맨 동시에
할 수 없습니다.
장기 실행 거래와 마찬가지로스포츠 토토 베트맨
테이블에서 동시에 제거 할 수있는 튜플에 영향을 줄 수 있습니다진공
다른 테이블에서.
스포츠 토토 베트맨 System
지원하지 않음동시에
시스템 카탈로그는 동시에 다시 표시 할 수 없으므로
또한 배제 제약에 대한 인덱스는 동시에 다시 표시 될 수 없습니다. 이 인덱스 가이 명령에서 직접 명명되면 오류가 발생합니다.동시에
옵션.)
각 백엔드 실행스포츠 토토 베트맨
에서 진행 상황을보고합니다PG_STAT_PROGRESS_CREATE_INDEX
보기. 보다섹션 27.4.4자세한 내용.
단일 색인 재건 :
스포츠 토토 베트맨 index my_index;
테이블의 모든 인덱스를 재구성my_table
:
린덱스 테이블 my_table;
시스템 색인이 이미 유효하도록 신뢰하지 않고 특정 데이터베이스의 모든 인덱스 재 구축 :
$Export Pgoptions = "-P"
$psql broken_db
...
스포츠 토토 베트맨ing이 진행중인 동안 관련 관계에 대한 읽기 및 쓰기 작업을 차단하지 않고 테이블의 인덱스 재건축 :
스포츠 토토 베트맨 테이블 동시에 my_broken_table;
없음스포츠 토토 베트맨
SQL 표준의 명령.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다.이 양식문서 문제를보고하려면