이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다윈 토토 캔 PostgreSQL : 문서 : 17 : Cluster버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

토토 캔

이름

토토 캔-an에 따라 테이블 토토 캔 색인

시놉시스

토토 캔 [Verbose]TableName[사용indexname]
토토 캔 [Verbose]

설명

토토 캔지침PostgreSQLTableName색인을 기반으로합니다 지정indexname. 색인 이미 정의되어 있어야TableName.

테이블이 토토 캔링되면 색인 정보. 토토 캔링은 일회성 작업입니다 이후 테이블이 업데이트되고 변경 사항이 토토 캔되지 않습니다. 즉, 새 또는 업데이트 된 행을 저장하려는 시도는 없습니다. 그들의 색인 순서에 따라. (원한다면 할 수 있습니다 명령을 다시 발행하여 주기적으로 재 토토 캔. 또한, 테이블 설정FillFactor스토리지 100% 미만의 매개 변수는 토토 캔 보존에 도움이 될 수 있습니다. 업데이트 된 행이 우선적으로 사용되므로 업데이트 중 주문 중입니다 같은 페이지에 보관되었습니다.)

테이블이 토토 캔링되면PostgreSQL어떤 색인이 있는지 기억합니다 토토 캔링. 양식토토 캔TableNameReclusters 사용 테이블 이전과 동일한 인덱스.

토토 캔매개 변수가없는 전류의 이전에 토토 캔 된 모든 테이블을 재 토토 캔합니다 전화 사용자가 소유 한 데이터베이스 또는 호출되는 경우 모든 테이블 슈퍼업자에 의해. 이 형태의토토 캔트랜잭션 블록 내부에서 실행할 수 없습니다.

테이블이 토토 캔링되면액세스 독점적인잠금이 획득되었습니다. 이것은 다른 사람을 방지합니다 데이터베이스 운영 (읽기 및 쓰기)에서 작동하지 않습니다. 까지 테이블토토 캔완료되었습니다.

매개 변수

TableName

표의 이름 (스키마 자격).

indexname

색인 이름.

Verbose

각 테이블이 토토 캔링 될 때 진행 보고서를 인쇄합니다.

노트

단일 행에 무작위로 액세스하는 경우 테이블, 테이블의 실제 데이터 순서는 중요하지 않습니다. 그러나 다른 데이터보다 일부 데이터에 더 액세스하는 경향이있는 경우 함께 그룹화하는 색인이 있습니다. 사용에서토토 캔. 당신이라면 테이블에서 인덱스 된 값 범위 또는 단일 일치하는 여러 행을 가진 인덱스 값토토 캔인덱스이기 때문에 도움이됩니다 일치하는 첫 번째 행의 테이블 페이지를 식별합니다. 일치하는 다른 행은 아마도 이미 같은 테이블에있을 것입니다. 페이지, 디스크 액세스를 저장하고 쿼리 속도를 높이십시오.

토토 캔 작동 중에 테이블의 임시 사본은 다음과 같습니다. 인덱스 순서로 테이블 데이터를 포함하는 생성. 테이블의 각 지수의 임시 사본도 생성됩니다. 따라서 적어도 합계와 같은 디스크에 여유 공간이 필요합니다. 테이블 크기와 인덱스 크기의.

때문에토토 캔기억합니다 토토 캔링 정보는 원하는 테이블을 토토 캔링 할 수 있습니다 처음으로 수동으로 토토 캔링되고 시간이 정한 이벤트 설정 유사진공테이블이 있도록 주기적으로 재 토토 캔.

플래너는 주문에 대한 통계를 기록하기 때문입니다 테이블, 실행하는 것이 좋습니다분석새로 토토 캔 된 테이블에서. 그렇지 않으면 플래너가 쿼리를 잘 선택할 수 있습니다 계획.

데이터를 토토 캔하는 또 다른 방법이 있습니다. 그만큼토토 캔명령은 원래 테이블을 다시 작성합니다 지정한 인덱스를 사용하여 스캔합니다. 이것은 느릴 수 있습니다 줄이 인덱스의 테이블에서 가져 왔기 때문에 큰 테이블 주문, 테이블이 무질서한 경우 항목은 무작위입니다. 페이지가 있으므로 이동 한 모든 행에 검색된 디스크 페이지가 하나 있습니다. (postgresql캐시가 있지만 큰 테이블의 대부분은 캐시에 맞지 않습니다.) 다른 방법으로 테이블을 토토 캔하는 것은 다음과 같습니다.

테이블 만들기Newtableas
    선택 *에서테이블주문 byColumnList;

PostgreSQL원하는 순서를 생성하기위한 정렬 코드; 이것은 보통 많은 것입니다 무질서한 데이터에 대한 인덱스 스캔보다 빠릅니다. 그런 다음 당신은 떨어 뜨립니다 오래된 테이블, 사용Alter Table ... Renameto 이름 바꾸기Newtable이전 이름으로, 테이블의 인덱스를 재현합니다. 이것의 큰 단점 접근 방식은 OID, 제약, 외국인을 보존하지 않는다는 것입니다. 주요 관계, 부여 특권 및 기타 보조 테이블의 속성 - 그러한 모든 항목은 수동으로해야합니다. 재현. 또 다른 단점은 이런 식으로 정렬이 필요하다는 것입니다 테이블 자체와 같은 크기의 임시 파일이므로 피크 디스크 사용량은 두 번 대신 테이블 크기의 약 3 배입니다. 테이블 크기.

테이블 토토 캔직원on 지수의 기초직원 _ind:

직원을 사용하는 토토 캔 직원 _ind;

토토 캔직원테이블을 사용합니다 이전에 사용 된 것과 동일한 인덱스 :

토토 캔 직원;

토토 캔 이전에 있었던 데이터베이스의 모든 테이블 토토 캔링 :

토토 캔;

호환성

없음토토 캔진술 SQL 표준.

구문

토토 캔indexnameonTableName

Pre-8.3과의 호환성을 위해 지원됩니다.postgresql버전.

참조

ClusterDB