VACUUM — 가비지 수집 및 선택적으로 데이터베이스 분석
무지개 토토 [ (옵션[, ...] ) ] [table_and_columns[, ...] ] VACUUM [ 전체 ] [ 동결 ] [ 장황함 ] [ 분석 ] [table_and_columns[, ...] ] 어디에서옵션다음 중 하나일 수 있습니다.전체 [부울] 정지 [부울] 자세한 내용 [부울] 분석 [부울] DISABLE_PAGE_SKIPPING [부울] 건너뛰기_잠김 [부울] INDEX_CLEANUP 자동 | 켜짐 | 끄기 PROCESS_TOAST [부울] 자르기 [부울] 병렬정수그리고table_and_columns다음과 같습니다:테이블_이름[ (컬럼_이름[, ...] ) ]
무지개 토토죽은 튜플이 차지하는 저장소를 회수합니다. 보통포스트그레SQL작업, 업데이트로 인해 삭제되거나 사용되지 않는 튜플은 테이블에서 물리적으로 제거되지 않습니다. 그들은 a까지 존재한다무지개 토토완료되었습니다. 그러므로 다음을 수행해야 합니다.무지개 토토정기적으로, 특히 자주 업데이트되는 테이블에서.
a 없이table_and_columns목록,무지개 토토현재 사용자가 Vacuum 권한을 갖고 있는 현재 데이터베이스의 모든 테이블과 구체화된 뷰를 처리합니다. 목록으로,무지개 토토해당 테이블만 처리합니다.
무지개 토토 분석수행무지개 토토그리고 그 다음에는분석선택된 각 테이블에 대해. 이는 일상적인 유지 관리 스크립트를 위한 편리한 조합 양식입니다. 참조분석처리에 대한 자세한 내용을 확인하세요.
일반무지개 토토(없이전체)는 단순히 공간을 회수하여 재사용이 가능하도록 만듭니다. 이 명령 형식은 배타적 잠금을 얻지 못하므로 테이블의 일반적인 읽기 및 쓰기와 병렬로 작동할 수 있습니다. 그러나 추가 공간은 운영 체제에 반환되지 않습니다(대부분의 경우). 동일한 테이블 내에서 재사용이 가능하도록 유지됩니다. 또한 인덱스를 처리하기 위해 여러 CPU를 활용할 수도 있습니다. 이 기능은 다음과 같이 알려져 있습니다.병렬 무지개 토토. 이 기능을 비활성화하려면 다음을 사용할 수 있습니다.병렬옵션을 선택하고 병렬 작업자를 0으로 지정합니다.무지개 토토 가득 참추가 공간 없이 테이블의 전체 내용을 새 디스크 파일에 다시 작성하여 사용되지 않은 공간을 운영 체제에 반환할 수 있습니다. 이 형식은 훨씬 느리며 다음이 필요합니다.접속 독점처리되는 동안 각 테이블을 잠급니다.
옵션 목록이 괄호로 묶인 경우 옵션은 어떤 순서로도 쓰여질 수 있습니다. 괄호 없이 옵션은 위에 표시된 순서대로 정확하게 지정해야 합니다. 괄호 안에 구문이 추가되었습니다.PostgreSQL9.0; 괄호로 묶이지 않은 구문은 더 이상 사용되지 않습니다.
전체선택“전체”vacuum은 더 많은 공간을 확보할 수 있지만 시간이 더 오래 걸리고 테이블을 독점적으로 잠급니다. 또한 이 방법은 테이블의 새 복사본을 쓰고 작업이 완료될 때까지 이전 복사본을 해제하지 않으므로 추가 디스크 공간이 필요합니다. 일반적으로 이는 테이블 내에서 상당한 양의 공간을 회수해야 하는 경우에만 사용해야 합니다.
정지공격적 선택“동결”튜플. 지정정지수행하는 것과 동일합니다무지개 토토와 함께vacuum_freeze_min_age그리고vacuum_freeze_table_age매개변수가 0으로 설정되었습니다. 테이블을 다시 작성할 때 공격적 동결이 항상 수행되므로 이 옵션은 다음과 같은 경우 중복됩니다.전체지정되었습니다.
상세각 테이블에 대한 자세한 무지개 토토 활동 보고서를 인쇄합니다.
분석플래너가 쿼리를 실행하는 가장 효율적인 방법을 결정하는 데 사용하는 통계를 업데이트합니다.
DISABLE_PAGE_SKIPPING보통은,무지개 토토다음에 따라 페이지를 건너뜁니다.가시성 지도. 모든 튜플이 고정된 것으로 알려진 페이지는 항상 건너뛸 수 있으며, 모든 튜플이 모든 트랜잭션에 표시되는 것으로 알려진 페이지는 공격적인 Vacuum을 수행하는 경우를 제외하고는 건너뛸 수 있습니다. 또한 적극적인 무지개 토토 작업을 수행하는 경우를 제외하고 다른 세션에서 사용이 완료될 때까지 기다리지 않기 위해 일부 페이지를 건너뛸 수 있습니다. 이 옵션은 모든 페이지 건너뛰기 동작을 비활성화하며 가시성 지도의 내용이 의심스러운 경우에만 사용하도록 고안되었습니다. 이는 데이터베이스 손상을 일으키는 하드웨어 또는 소프트웨어 문제가 있는 경우에만 발생해야 합니다.
건너뛰기_잠김다음을 지정함무지개 토토관계에 대한 작업을 시작할 때 충돌하는 잠금이 해제될 때까지 기다리면 안 됩니다. 관계를 기다리지 않고 즉시 잠글 수 없으면 관계를 건너뜁니다. 이 옵션을 사용하더라도,무지개 토토관계의 색인을 열 때 여전히 차단될 수 있습니다. 추가적으로,무지개 토토 분석파티션, 테이블 상속 하위 항목 및 일부 유형의 외부 테이블에서 샘플 행을 획득할 때 여전히 차단될 수 있습니다. 또한 동안무지개 토토일반적으로 지정된 파티션된 테이블의 모든 파티션을 처리합니다. 이 옵션으로 인해 발생합니다.무지개 토토파티션된 테이블에 잠금 충돌이 있는 경우 모든 파티션을 건너뜁니다.
INDEX_CLEANUP보통은,무지개 토토테이블에 데드 튜플이 거의 없으면 인덱스 무지개 토토 청소를 건너뜁니다. 이 경우 테이블의 모든 인덱스를 처리하는 비용은 데드 인덱스 튜플을 제거하는 이점을 크게 초과할 것으로 예상됩니다. 이 옵션은 강제로 사용할 수 있습니다.무지개 토토데드 튜플이 0개 이상 있을 때 인덱스를 처리합니다. 기본값은자동, 이를 통해무지개 토토적절한 경우 인덱스 정리를 건너뜁니다. 만일INDEX_CLEANUP다음으로 설정됨ON, 무지개 토토인덱스에서 모든 데드 튜플을 보수적으로 제거합니다. 이는 이전 릴리스와의 호환성을 위해 유용할 수 있습니다.PostgreSQL이것이 표준 동작이었습니다.
INDEX_CLEANUP다음으로 설정할 수도 있음꺼짐강제로무지개 토토에항상테이블에 데드 튜플이 많더라도 인덱스 정리를 건너뜁니다. 이는 다음을 수행해야 할 때 유용할 수 있습니다.무지개 토토임박한 트랜잭션 ID 랩어라운드를 피하기 위해 가능한 한 빨리 실행하세요(참조섹션 25.1.5). 그러나 다음으로 제어되는 랩어라운드 안전 장치 메커니즘은vacuum_failsafe_age일반적으로 트랜잭션 ID 랩어라운드 실패를 방지하기 위해 자동으로 트리거되며 선호되어야 합니다. 인덱스 정리가 정기적으로 수행되지 않으면 성능이 저하될 수 있습니다. 테이블이 수정되면 인덱스에 데드 튜플이 누적되고 테이블 자체에는 인덱스 정리가 완료될 때까지 제거할 수 없는 데드 라인 포인터가 누적되기 때문입니다.
이 옵션은 색인이 없는 테이블에는 효과가 없으며 다음과 같은 경우에는 무시됩니다.전체옵션이 사용됩니다. 또한 트랜잭션 ID 랩어라운드 안전 장치 메커니즘에는 영향을 주지 않습니다. 트리거되면 인덱스 무지개 토토 청소를 건너뜁니다.INDEX_CLEANUP다음으로 설정됨켜짐.
PROCESS_TOAST다음을 지정함무지개 토토해당하는 처리를 시도해야 합니다토스트20270_20501전체옵션이 사용됩니다.
잘라내기다음을 지정합니다무지개 토토테이블 끝에 있는 빈 페이지를 잘라내고 잘린 페이지를 위한 디스크 공간이 운영 체제에 반환되도록 해야 합니다. 이는 일반적으로 원하는 동작이며 다음을 제외하면 기본값입니다.vacuum_truncate테이블을 비우기 위해 옵션이 false로 설정되었습니다. 이 옵션을 false로 설정하면 방지하는 데 유용할 수 있습니다.접속 독점잘림에 필요한 테이블을 잠급니다. 이 옵션은 다음과 같은 경우 무시됩니다.전체옵션이 사용됩니다.
병렬인덱스 무지개 토토 및 인덱스 정리 단계 수행무지개 토토병렬 사용정수백그라운드 작업자(각 무지개 토토 단계에 대한 자세한 내용은 참조표 28.39). 작업을 수행하는 데 사용되는 작업자 수는 지정된 작업자 수로 제한되는 병렬 무지개 토토을 지원하는 관계의 인덱스 수와 같습니다.병렬추가로 제한되는 옵션이 있는 경우max_parallel_maintenance_workers. 인덱스 크기가 다음보다 큰 경우에만 인덱스가 병렬 무지개 토토에 참여할 수 있습니다.min_parallel_index_scan_size. 에 지정된 병렬 작업자 수가 보장되지는 않습니다.정수실행 중에 사용됩니다. 지정된 것보다 적은 수의 작업자 또는 작업자가 전혀 없는 상태에서도 무지개 토토청소기를 실행할 수 있습니다. 인덱스당 하나의 작업자만 사용할 수 있습니다. 따라서 병렬 작업자는 최소한 다음이 있을 때만 시작됩니다.2테이블의 인덱스입니다. 무지개 토토 작업 작업자는 각 단계가 시작되기 전에 시작되고 단계가 끝나면 종료됩니다. 이러한 동작은 향후 릴리스에서 변경될 수 있습니다. 이 옵션은와 함께 사용할 수 없습니다.전체옵션.
부울선택한 옵션을 켜야 할지 꺼야 할지 지정합니다. 쓸 수 있습니다참, 켜짐, 또는1옵션을 활성화하고거짓, 꺼짐, 또는0비활성화합니다.부울값을 생략할 수도 있습니다. 이 경우참가정됩니다.
정수선택한 옵션에 전달된 음수가 아닌 정수 값을 지정합니다.
테이블_이름VACUUM할 특정 테이블 또는 구체화된 뷰의 이름(선택적으로 스키마 한정). 지정된 테이블이 분할된 테이블인 경우 해당 테이블의 모든 리프 파티션이 정리됩니다.
열_이름분석할 특정 열의 이름. 기본값은 모든 열입니다. 컬럼 목록이 지정된 경우,분석또한 지정되어야 합니다.
언제상세지정되었습니다.무지개 토토현재 처리 중인 테이블을 나타내는 진행 메시지를 내보냅니다. 테이블에 대한 다양한 통계도 인쇄됩니다.
테이블을 비우려면 일반적으로 테이블의 소유자 또는 수퍼유저여야 합니다. 그러나 데이터베이스 소유자는 공유 카탈로그를 제외하고 데이터베이스의 모든 테이블을 정리할 수 있습니다. (공유 카탈로그에 대한 제한은 진정한 데이터베이스 전체에 대한 제한을 의미합니다.무지개 토토수퍼유저만 수행할 수 있습니다.)무지개 토토호출 사용자에게 Vacuum 권한이 없는 테이블은 건너뜁니다.
무지개 토토트랜잭션 블록 내에서는 실행할 수 없습니다.
다음이 포함된 테이블의 경우진색인,무지개 토토(어떤 형태로든) 보류 중인 색인 항목을 기본 항목의 적절한 위치로 이동하여 보류 중인 색인 삽입을 완료합니다.진인덱스 구조. 참조섹션 67.4.1자세한 내용은.
활성 프로덕션 데이터베이스를 자주(적어도 밤마다) 비워서 데드 행을 제거하는 것이 좋습니다. 많은 수의 행을 추가하거나 삭제한 후에는 다음을 실행하는 것이 좋습니다.무지개 토토 분석26122_26248PostgreSQL쿼리 계획에서 더 나은 선택을 위한 쿼리 플래너.
그전체옵션은 일상적인 사용에는 권장되지 않지만 특별한 경우에는 유용할 수 있습니다. 예를 들어 테이블의 행 대부분을 삭제하거나 업데이트했으며 테이블을 물리적으로 축소하여 디스크 공간을 덜 차지하고 테이블 스캔 속도를 높이려는 경우가 있습니다.무지개 토토이 가득 참일반적으로 일반 테이블보다 테이블을 더 축소합니다무지개 토토그러겠습니다.
그병렬옵션은 무지개 토토 목적으로만 사용됩니다. 이 옵션이와 함께 지정된 경우분석옵션, 영향을 미치지 않습니다분석.
무지개 토토I/O 트래픽이 크게 증가하여 다른 활성 세션의 성능이 저하될 수 있습니다. 따라서 때로는 비용 기반 무지개 토토 지연 기능을 사용하는 것이 좋습니다. 병렬 무지개 토토의 경우 각 작업자는 해당 작업자가 수행한 작업에 비례하여 수면을 취합니다. 보다섹션 20.4.4자세한 내용은.
PostgreSQL포함“자동 무지개 토토”일상적인 무지개 토토 유지 관리를 자동화할 수 있는 시설입니다. 자동 및 수동 무지개 토토 청소에 대한 자세한 내용은 다음을 참조하세요.PostgreSQL : 문서 : 14 : 25.1. 일상 윈 토토 청소기.
각 백엔드 실행 중무지개 토토없이전체옵션은 다음에 진행 상황을 보고합니다.pg_stat_progress_vacuum보기. 백엔드 실행 중무지개 토토이 가득 참대신에 진행 상황을 보고할 것입니다.pg_stat_progress_cluster보기. 참조섹션 28.4.3그리고섹션 28.4.4자세한 내용은.
단일 테이블을 청소하려면오네크, 최적화 프로그램을 위해 분석하고 자세한 무지개 토토 활동 보고서를 인쇄합니다.
무지개 토토(상세, 분석) onek;
없습니다무지개 토토SQL 표준의 문입니다.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.