CLUSTER — 인덱스에 따라 테이블 윈 토토링
윈 토토 [ (옵션[, ...] ) ] [테이블_이름[ 사용 중색인_이름] ] 어디에서옵션다음 중 하나일 수 있습니다.자세한 내용 [부울]
윈 토토지시PostgreSQL다음으로 지정된 테이블을 윈 토토링합니다.테이블_이름다음에 의해 지정된 색인을 기준으로색인_이름. 인덱스는 이미 정의되어 있어야 합니다.테이블_이름.
테이블이 윈 토토링되면 인덱스 정보에 따라 물리적으로 재정렬됩니다. 윈 토토링은 일회성 작업입니다. 이후에 테이블이 업데이트되면 변경 사항이 윈 토토링되지 않습니다. 즉, 인덱스 순서에 따라 새 행이나 업데이트된 행을 저장하려고 시도하지 않습니다. (원하는 경우 명령을 다시 실행하여 주기적으로 다시 윈 토토링할 수 있습니다. 또한 테이블의채우기 요소저장 매개변수를 100% 미만으로 설정하면 업데이트 중에 윈 토토 순서를 유지하는 데 도움이 될 수 있습니다. 왜냐하면 충분한 공간을 사용할 수 있는 경우 업데이트된 행이 동일한 페이지에 유지되기 때문입니다.)
테이블이 윈 토토링되면,포스트그레SQL윈 토토된 인덱스를 기억합니다. 양식CLUSTER이전과 동일한 인덱스를 사용하여 테이블을 다시 윈 토토링합니다. 다음을 사용할 수도 있습니다.테이블_이름윈 토토또는윈 토토 없이 설정형태테이블 변경향후 윈 토토 작업에 사용할 색인을 설정하거나 이전 설정을 삭제합니다.
윈 토토없이테이블_이름호출 사용자가 권한을 갖고 있는 현재 데이터베이스의 이전에 윈 토토된 모든 테이블을 다시 윈 토토링합니다. 이 형태는윈 토토트랜잭션 블록 내에서는 실행할 수 없습니다.
테이블이 윈 토토링될 때,접속 독점잠금이 획득되었습니다. 이렇게 하면 다른 데이터베이스 작업(읽기 및 쓰기 모두)이 다음 때까지 테이블에서 작동하지 않습니다.윈 토토완료되었습니다.
테이블_이름테이블의 이름(스키마 한정).
색인_이름색인의 이름입니다.
상세각 테이블이 윈 토토링됨에 따라 진행 보고서를 인쇄합니다.정보레벨.
부울선택한 옵션을 켜야 할지 꺼야 할지 지정합니다. 쓸 수 있습니다참, ON또는1옵션을 활성화하고거짓, 꺼짐또는0비활성화합니다.부울값은 생략될 수도 있으며, 이 경우참가정됩니다.
테이블을 윈 토토링하려면 다음이 있어야 합니다.유지테이블에 대한 권한입니다.
테이블 내에서 무작위로 단일 행에 액세스하는 경우 테이블에 있는 데이터의 실제 순서는 중요하지 않습니다. 그러나 일부 데이터에 다른 데이터보다 더 많이 액세스하는 경향이 있고 이를 함께 그룹화하는 인덱스가 있는 경우 다음을 사용하는 것이 좋습니다.윈 토토. 테이블에서 인덱싱된 값 범위를 요청하거나 일치하는 여러 행이 있는 단일 인덱싱된 값을 요청하는 경우,윈 토토색인이 일치하는 첫 번째 행에 대한 테이블 페이지를 식별하면 일치하는 다른 모든 행이 이미 동일한 테이블 페이지에 있을 것이므로 도움이 되며, 따라서 디스크 액세스를 절약하고 쿼리 속도를 높일 수 있습니다.
윈 토토지정된 인덱스에 대한 인덱스 스캔 또는 (인덱스가 B-트리인 경우) 순차 스캔과 정렬을 사용하여 테이블을 다시 정렬할 수 있습니다. 플래너 비용 매개변수와 사용 가능한 통계 정보를 기반으로 더 빠른 방법을 선택하려고 시도합니다.
그동안윈 토토실행 중입니다.검색_경로임시로 변경됨pg_catalog, pg_temp.
인덱스 스캔이 사용되면 인덱스 순서대로 테이블 데이터를 포함하는 테이블의 임시 복사본이 생성됩니다. 테이블의 각 인덱스에 대한 임시 복사본도 생성됩니다. 따라서 최소한 테이블 크기와 인덱스 크기를 합한 것과 동일한 디스크 여유 공간이 필요합니다.
순차 스캔 및 정렬이 사용되면 임시 정렬 파일도 생성되므로 최대 임시 공간 요구 사항은 테이블 크기와 인덱스 크기의 두 배입니다. 이 방법은 인덱스 스캔 방법보다 빠른 경우가 많지만 디스크 공간 요구 사항이 감당할 수 없는 경우 임시로 설정하여 이 선택을 비활성화할 수 있습니다.enable_sort에꺼짐.
설정하는 것이 좋습니다maintenance_work_mem합리적으로 큰 값(단, 전용으로 할당할 수 있는 RAM 용량을 초과하지 않음윈 토토작업) 윈 토토링 전.
플래너는 테이블 순서에 대한 통계를 기록하므로 다음을 실행하는 것이 좋습니다.분석새로 윈 토토링된 테이블에. 그렇지 않으면 플래너가 쿼리 계획을 잘못 선택할 수 있습니다.
왜냐하면윈 토토어떤 인덱스가 윈 토토되었는지 기억하고, 처음에 수동으로 윈 토토링하려는 테이블을 윈 토토링한 다음 실행되는 주기적인 유지 관리 스크립트를 설정할 수 있습니다.윈 토토매개변수가 없으므로 원하는 테이블이 주기적으로 다시 윈 토토됩니다.
각 백엔드 실행 중윈 토토다음에 진행 상황을 보고할 것입니다.pg_stat_progress_cluster보기. 참조섹션 27.4.2자세한 내용은.
분할된 테이블을 윈 토토링하면 지정된 분할된 인덱스의 파티션을 사용하여 각 파티션이 윈 토토됩니다. 분할된 테이블을 윈 토토링할 때 인덱스를 생략할 수 없습니다.윈 토토파티션된 테이블에서는 트랜잭션 블록 내에서 실행할 수 없습니다.
테이블 윈 토토링직원색인을 기준으로employees_ind:
employee_ind를 사용하는 윈 토토 직원;
윈 토토직원이전에 사용된 것과 동일한 인덱스를 사용하는 테이블:
윈 토토 직원;
이전에 윈 토토된 데이터베이스의 모든 테이블을 윈 토토링하십시오:
윈 토토;
없습니다윈 토토SQL 표준의 문입니다.
다음 구문은 이전에 사용되었습니다.PostgreSQL17 여전히 지원됩니다:
윈 토토 [ 자세한 정보 ] [테이블_이름[ 사용 중색인_이름] ]
다음 구문은 이전에 사용되었습니다.PostgreSQL8.3이며 여전히 지원됩니다:
윈 토토색인_이름ON테이블_이름
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.