롤 토토

VACUUM — 가비지 수집 및 선택적으로 데이터베이스 분석

시놉시스

롤 토토 [ (옵션 [, ...] ) ] [ table_and_columns [, ...] ]

어디에서옵션다음 중 하나일 수 있습니다.전체 [부울]
    정지 [부울]
    자세한 내용 [부울]
    분석 [부울]
    DISABLE_PAGE_SKIPPING [부울]
    건너뛰기_잠김 [부울]
    INDEX_CLEANUP  자동 | 켜짐 | 끄기 
    PROCESS_MAIN [부울]
    PROCESS_TOAST [부울]
    자르기 [부울]
    병렬정수SKIP_DATABASE_STATS [부울]
    ONLY_DATABASE_STATS [부울]
    BUFFER_USAGE_LIMIT크기

그리고table_and_columns다음은:

    테이블_이름 [ ( 컬럼_이름 [, ...] ) ]

설명

롤 토토죽은 튜플이 차지하는 저장 공간을 회수합니다. 보통포스트그레SQL작업, 업데이트로 인해 삭제되거나 사용되지 않는 튜플은 테이블에서 물리적으로 제거되지 않습니다. 그들은 a까지 존재한다롤 토토완료되었습니다. 그러므로 다음을 수행해야 합니다.롤 토토정기적으로, 특히 자주 업데이트되는 테이블에서.

a 없이table_and_columns목록,롤 토토현재 사용자가 Vacuum 권한을 가지고 있는 현재 데이터베이스의 모든 테이블과 구체화된 뷰를 처리합니다. 목록으로,롤 토토해당 테이블만 처리합니다.

롤 토토 분석수행롤 토토그리고 그 다음에는분석선택된 각 테이블에 대해. 이는 일상적인 유지 관리 스크립트를 위한 편리한 조합 양식입니다. 보다분석처리에 대한 자세한 내용을 확인하세요.

일반롤 토토(없이전체)는 단순히 공간을 회수하여 재사용이 가능하도록 만듭니다. 이 명령 형식은 배타적 잠금을 얻지 못하므로 테이블의 일반적인 읽기 및 쓰기와 병렬로 작동할 수 있습니다. 그러나 추가 공간은 운영 체제에 반환되지 않습니다(대부분의 경우). 동일한 테이블 내에서 재사용이 가능하도록 유지됩니다. 또한 인덱스를 처리하기 위해 여러 CPU를 활용할 수도 있습니다. 이 기능은 다음과 같이 알려져 있습니다.병렬 롤 토토. 이 기능을 비활성화하려면 다음을 사용할 수 있습니다.병렬옵션을 선택하고 병렬 작업자를 0으로 지정합니다.롤 토토이 가득 참추가 공간 없이 테이블의 전체 내용을 새 디스크 파일에 다시 작성하여 사용되지 않은 공간을 운영 체제에 반환할 수 있습니다. 이 형식은 훨씬 느리며 다음이 필요합니다.접속 독점처리되는 동안 각 테이블을 잠급니다.

매개변수

전체

선택전체vacuum은 더 많은 공간을 확보할 수 있지만 시간이 더 오래 걸리고 테이블을 독점적으로 잠급니다. 또한 이 방법은 테이블의 새 복사본을 쓰고 작업이 완료될 때까지 이전 복사본을 해제하지 않으므로 추가 디스크 공간이 필요합니다. 일반적으로 이는 테이블 내에서 상당한 양의 공간을 회수해야 하는 경우에만 사용해야 합니다.

정지

공격적 선택동결튜플. 지정정지수행하는 것과 동일합니다롤 토토와 함께vacuum_freeze_min_age그리고vacuum_freeze_table_age매개변수가 0으로 설정되었습니다. 테이블을 다시 작성할 때 공격적 동결이 항상 수행되므로 이 옵션은 다음과 같은 경우 중복됩니다.전체지정되었습니다.

상세

각 테이블에 대한 자세한 롤 토토 활동 보고서를 인쇄합니다.

분석

플래너가 쿼리를 실행하는 가장 효율적인 방법을 결정하는 데 사용하는 통계를 업데이트합니다.

DISABLE_PAGE_SKIPPING

보통은,롤 토토다음에 따라 페이지를 건너뜁니다.가시성 지도. 모든 튜플이 고정된 것으로 알려진 페이지는 항상 건너뛸 수 있으며, 모든 튜플이 모든 트랜잭션에 표시되는 것으로 알려진 페이지는 공격적인 Vacuum을 수행하는 경우를 제외하고는 건너뛸 수 있습니다. 또한 적극적인 롤 토토 작업을 수행하는 경우를 제외하고 다른 세션에서 해당 페이지 사용이 완료될 때까지 기다리지 않기 위해 일부 페이지를 건너뛸 수 있습니다. 이 옵션은 모든 페이지 건너뛰기 동작을 비활성화하며 가시성 지도의 내용이 의심스러운 경우에만 사용하도록 고안되었습니다. 이는 데이터베이스 손상을 일으키는 하드웨어 또는 소프트웨어 문제가 있는 경우에만 발생해야 합니다.

건너뛰기_잠김

다음을 지정함롤 토토관계에 대한 작업을 시작할 때 충돌하는 잠금이 해제될 때까지 기다리면 안 됩니다. 관계를 기다리지 않고 즉시 잠글 수 없으면 관계를 건너뜁니다. 이 옵션을 사용하더라도,롤 토토관계의 색인을 열 때 여전히 차단될 수 있습니다. 추가적으로,롤 토토 분석파티션, 테이블 상속 하위 항목 및 일부 유형의 외부 테이블에서 샘플 행을 획득할 때 여전히 차단될 수 있습니다. 또한 동안롤 토토일반적으로 지정된 파티션된 테이블의 모든 파티션을 처리합니다. 이 옵션으로 인해 발생합니다.롤 토토파티션된 테이블에 잠금 충돌이 있는 경우 모든 파티션을 건너뜁니다.

INDEX_CLEANUP

일반적으로,롤 토토테이블에 데드 튜플이 거의 없으면 인덱스 롤 토토 청소를 건너뜁니다. 이 경우 테이블의 모든 인덱스를 처리하는 비용은 데드 인덱스 튜플을 제거하는 이점을 크게 초과할 것으로 예상됩니다. 이 옵션은 강제로 사용할 수 있습니다.롤 토토데드 튜플이 0개보다 많을 때 인덱스를 처리합니다. 기본값은자동, 이를 통해롤 토토적절한 경우 인덱스 정리를 건너뜁니다. 만일INDEX_CLEANUP다음으로 설정됨켜짐, 롤 토토인덱스에서 모든 데드 튜플을 보수적으로 제거합니다. 이는 이전 릴리스와의 호환성을 위해 유용할 수 있습니다.포스트그레SQL이것이 표준 동작이었습니다.

INDEX_CLEANUP다음으로 설정할 수도 있음꺼짐강제로롤 토토항상테이블에 데드 튜플이 많더라도 인덱스 정리를 건너뜁니다. 이는 다음을 수행해야 할 때 유용할 수 있습니다.롤 토토임박한 트랜잭션 ID 랩어라운드를 피하기 위해 가능한 한 빨리 실행하세요(참조섹션 24.1.5). 그러나 다음으로 제어되는 랩어라운드 안전 장치 메커니즘은vacuum_failsafe_age일반적으로 트랜잭션 ID 랩어라운드 실패를 방지하기 위해 자동으로 트리거되며 선호됩니다. 인덱스 정리가 정기적으로 수행되지 않으면 성능이 저하될 수 있습니다. 테이블이 수정되면 인덱스에 데드 튜플이 누적되고 테이블 자체에는 인덱스 정리가 완료될 때까지 제거할 수 없는 데드 라인 포인터가 누적되기 때문입니다.

이 옵션은 색인이 없는 테이블에는 효과가 없으며 다음과 같은 경우에는 무시됩니다.전체옵션이 사용됩니다. 또한 트랜잭션 ID 랩어라운드 안전 장치 메커니즘에는 영향을 주지 않습니다. 트리거되면 인덱스 롤 토토 청소를 건너뜁니다.INDEX_CLEANUP다음으로 설정됨ON.

PROCESS_MAIN

다음을 지정함롤 토토주요 관계 처리를 시도해야 합니다. 이는 일반적으로 원하는 동작이며 기본값입니다. 이 옵션을 false로 설정하면 관계에 해당하는 항목만 정리해야 할 때 유용할 수 있습니다.토스트테이블.

PROCESS_TOAST

다음을 지정합니다롤 토토해당하는 처리를 시도해야 합니다토스트20511_20742전체옵션이 사용됩니다.

잘라내기

다음을 지정함롤 토토테이블 끝에 있는 빈 페이지를 잘라내고 잘린 페이지를 위한 디스크 공간이 운영 체제에 반환되도록 해야 합니다. 이는 일반적으로 원하는 동작이며 다음을 제외하면 기본값입니다.vacuum_truncate테이블을 비우기 위해 옵션이 false로 설정되었습니다. 이 옵션을 false로 설정하면 방지하는 데 유용할 수 있습니다.접속 독점잘림에 필요한 테이블을 잠급니다. 이 옵션은 다음과 같은 경우 무시됩니다.전체옵션이 사용됩니다.

병렬

인덱스 롤 토토 및 인덱스 정리 단계 수행롤 토토병렬 사용정수백그라운드 작업자(각 롤 토토 단계에 대한 자세한 내용은 참조표 27.46). 작업을 수행하는 데 사용되는 작업자 수는 지정된 작업자 수로 제한되는 병렬 롤 토토을 지원하는 관계의 인덱스 수와 같습니다.병행추가로 제한되는 옵션이 있는 경우max_parallel_maintenance_workers. 인덱스 크기가 다음보다 큰 경우에만 인덱스가 병렬 롤 토토에 참여할 수 있습니다.min_parallel_index_scan_size. 에 지정된 병렬 작업자 수가 보장되지는 않습니다.정수실행 중에 사용됩니다. 지정된 것보다 적은 수의 작업자 또는 작업자가 전혀 없는 상태에서도 롤 토토청소기를 실행할 수 있습니다. 인덱스당 하나의 작업자만 사용할 수 있습니다. 따라서 병렬 작업자는 최소한 다음이 있을 때만 시작됩니다.2테이블의 색인입니다. 롤 토토 작업 작업자는 각 단계가 시작되기 전에 시작되고 단계가 끝나면 종료됩니다. 이러한 동작은 향후 릴리스에서 변경될 수 있습니다. 이 옵션은와 함께 사용할 수 없습니다.전체옵션.

SKIP_DATABASE_STATS

다음을 지정합니다롤 토토가장 오래되고 고정되지 않은 XID에 대한 데이터베이스 전체 통계 업데이트를 건너뛰어야 합니다. 일반적으로롤 토토명령이 끝나면 이 통계를 한 번 업데이트합니다. 그러나 테이블 수가 매우 많은 데이터베이스에서는 이 작업에 시간이 걸릴 수 있으며, 가장 오래 고정되지 않은 XID가 포함된 테이블이 비워진 테이블에 속하지 않는 한 아무 작업도 수행되지 않습니다. 게다가 여러 개라면롤 토토명령은 병렬로 실행되며, 그 중 하나만 한 번에 데이터베이스 전체 통계를 업데이트할 수 있습니다. 따라서 애플리케이션이 일련의 다수를 발행하려는 경우롤 토토명령, 마지막 명령을 제외한 모든 명령에서 이 옵션을 설정하는 것이 도움이 될 수 있습니다. 또는 모든 명령에 설정하고 별도로 발행하십시오.롤 토토(ONLY_DATABASE_STATS)나중에.

ONLY_DATABASE_STATS

다음을 지정합니다롤 토토가장 오래되고 고정되지 않은 XID에 대한 데이터베이스 전체 통계를 업데이트하는 것 외에는 아무것도 하지 않아야 합니다. 이 옵션이 지정되면,table_and_columns목록은 비어 있어야 하며 다음을 제외하고는 다른 옵션을 활성화할 수 없습니다.상세.

BUFFER_USAGE_LIMIT

다음을 지정합니다버퍼 액세스 전략링 버퍼 크기롤 토토. 이 크기는 이 전략의 일부로 재사용될 공유 버퍼 수를 계산하는 데 사용됩니다.0a의 사용을 비활성화합니다버퍼 액세스 전략. 만일분석또한 지정되었습니다.BUFFER_USAGE_LIMIT값은 롤 토토 및 분석 단계 모두에 사용됩니다. 이 옵션은와 함께 사용할 수 없습니다.전체경우를 제외한 옵션분석도 지정되었습니다. 이 옵션이 지정되지 않은 경우,롤 토토다음의 값을 사용합니다vacuum_buffer_usage_limit. 더 높은 설정이 허용될 수 있음롤 토토더 빠르게 실행하기 위한 것이지만 설정이 너무 크면 공유 버퍼에서 다른 유용한 페이지가 너무 많이 제거될 수 있습니다. 최소값은128KB최대값은16GB.

부울

선택한 옵션을 켜야 할지 꺼야 할지 지정합니다. 쓸 수 있습니다, 켜짐또는1옵션을 활성화하고거짓, 꺼짐또는0비활성화합니다.부울값은 생략될 수도 있습니다. 이 경우가정됩니다.

정수

선택한 옵션에 전달된 음수가 아닌 정수 값을 지정합니다.

크기

메모리 양을 킬로바이트 단위로 지정합니다. 크기는 숫자 크기 뒤에 다음 메모리 단위 중 하나가 포함된 문자열로 지정될 수도 있습니다.B(바이트),KB(킬로바이트),MB(메가바이트),GB(기가바이트) 또는TB(테라바이트).

테이블_이름

VACUUM할 특정 테이블 또는 구체화된 뷰의 이름(선택적으로 스키마 한정). 지정된 테이블이 분할된 테이블인 경우 해당 테이블의 모든 리프 파티션이 정리됩니다.

열_이름

분석할 특정 열의 이름. 기본값은 모든 열입니다. 컬럼 목록이 지정된 경우,분석또한 지정되어야 합니다.

출력

언제상세지정되었습니다.롤 토토현재 처리 중인 테이블을 나타내는 진행 메시지를 내보냅니다. 테이블에 대한 다양한 통계도 인쇄됩니다.

참고

테이블을 롤 토토청소하려면 일반적으로 다음이 있어야 합니다.유지테이블에 대한 권한입니다. 그러나 데이터베이스 소유자는 공유 카탈로그를 제외하고 데이터베이스의 모든 테이블을 정리할 수 있습니다.롤 토토호출 사용자에게 Vacuum 권한이 없는 테이블은 건너뜁니다.

그동안롤 토토실행 중입니다.검색_경로일시적으로 다음으로 변경되었습니다.pg_catalog, pg_temp.

롤 토토트랜잭션 블록 내에서는 실행할 수 없습니다.

다음이 포함된 테이블의 경우색인,롤 토토(어떤 형태로든) 보류 중인 색인 항목을 기본 항목의 적절한 위치로 이동하여 보류 중인 색인 삽입을 완료합니다.인덱스 구조. 참조섹션 64.4.4.1자세한 내용은.

죽은 행을 제거하기 위해 모든 데이터베이스를 정기적으로 비우는 것이 좋습니다.PostgreSQL포함자동 롤 토토일상적인 롤 토토 유지 관리를 자동화할 수 있는 시설입니다. 자동 및 수동 롤 토토 청소에 대한 자세한 내용은 다음을 참조하세요.PostgreSQL : 문서 : 17 : 24.1. 일상 와이즈 토토 청소기.

전체옵션은 일상적인 사용에는 권장되지 않지만 특별한 경우에는 유용할 수 있습니다. 예를 들어 테이블의 행 대부분을 삭제하거나 업데이트했으며 테이블을 물리적으로 축소하여 디스크 공간을 덜 차지하고 테이블 스캔 속도를 높이려는 경우가 있습니다.롤 토토이 가득 참일반적으로 일반 테이블보다 테이블을 더 축소합니다롤 토토그러겠습니다.

병렬옵션은 롤 토토 목적으로만 사용됩니다. 이 옵션이와 함께 지정된 경우분석옵션, 영향을 미치지 않습니다분석.

롤 토토I/O 트래픽이 크게 증가하여 다른 활성 세션의 성능이 저하될 수 있습니다. 따라서 때로는 비용 기반 롤 토토 지연 기능을 사용하는 것이 좋습니다. 병렬 롤 토토의 경우 각 작업자는 해당 작업자가 수행한 작업에 비례하여 수면을 취합니다. 참조섹션 19.4.4자세한 내용은.

각 백엔드 실행 중롤 토토없이전체옵션은 다음에 진행 상황을 보고합니다.pg_stat_progress_vacuum보기. 백엔드 실행 중롤 토토이 가득 참대신에 진행 상황을 보고할 것입니다.pg_stat_progress_cluster보기. 참조섹션 27.4.5그리고섹션 27.4.2자세한 내용은.

단일 테이블을 정리하려면오네크, 최적화 프로그램을 위해 분석하고 자세한 롤 토토 활동 보고서를 인쇄합니다.

롤 토토(상세, 분석) onek;

호환성

없습니다롤 토토SQL 표준의 문입니다.

다음 구문은 이전에 사용되었습니다.포스트그레SQL버전 9.0이며 계속 지원됩니다.

롤 토토 [ 전체 ] [ 정지 ] [ 자세한 설명 ] [ 분석 ] [table_and_columns [, ...] ]

이 구문에서 옵션은 표시된 순서대로 정확하게 지정되어야 합니다.

수정사항 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.