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

윈 토토

윈 토토-쓰레기 수집 및 선택적으로 데이터베이스 분석

시놉시스

윈 토토 [(옵션[, ...])] [table_and_columns[, ...]]여기서옵션|전체 [부울]
    동결 [부울]
    말로 [부울]
    분석 [부울]
    disable_page_skippi윈 토토 [부울]
    skip_locked [부울]
    index_cleanup auto | on | 끄다 
    process_main [부울]
    process_toast [부울]
    절단 [부울]
    평행한정수skip_database_stats [부울]
    전용 _database_stats [부울]
    buffer_usage_limitsize

andtable_and_columnsis :[만]table_name[ *] [(column_name[, ...])

설명

윈 토토죽은 튜플이 차지하는 저장을 되 찾으십시오. 정상PostgreSQL작동, 업데이트로 삭제되거나 쓸모없는 튜플은 테이블에서 물리적으로 제거되지 않습니다. 그들은 a까지 남아 있습니다.윈 토토완료되었습니다. 그러므로해야 할 필요가 있습니다윈 토토정기적으로, 특히 자주 업데이트 된 테이블에서.

atable_and_columnsList,윈 토토현재 사용자가 윈 토토 청소기에 허가를받는 현재 데이터베이스에서 모든 테이블과 구체화 된보기를 처리합니다. 목록과 함께윈 토토해당 테이블 만 처리합니다.

윈 토토 분석a 수행윈 토토그리고 an분석선택한 각 테이블에 대해. 이것은 일상적인 유지 보수 스크립트를위한 편리한 조합 형식입니다. 보다분석처리에 대한 자세한 내용은

일반윈 토토(full) 단순히 공간을 되 찾아 재사용 할 수 있도록합니다. 이 형태의 명령은 독점적 인 잠금을 얻지 못하므로 테이블의 정상적인 읽기 및 쓰기와 병렬로 작동 할 수 있습니다. 그러나 추가 공간은 운영 체제 (대부분의 경우)로 반환되지 않습니다. 동일한 테이블 내에서 재사용 할 수 있습니다. 또한 인덱스를 처리하기 위해 여러 CPU를 활용할 수 있습니다. 이 기능은로 알려져 있습니다.병렬 윈 토토. 이 기능을 비활성화하려면 사용할 수 있습니다병렬옵션 및 병렬 작업자를 0으로 지정합니다.윈 토토 Full테이블의 전체 내용을 추가 공간이없는 새 디스크 파일로 다시 작성하여 사용하지 않은 공간을 운영 체제로 반환 할 수 있습니다. 이 양식은 훨씬 느리고 필요합니다액세스 독점처리되는 동안 각 테이블을 잠그십시오.

매개 변수

full

selectsfull더 많은 공간을 되 찾을 수 있지만 훨씬 더 오래 걸리고 독점적으로 테이블을 잠그는 윈 토토. 이 방법에는 추가 디스크 공간이 필요합니다. 테이블의 새 사본을 작성하고 작업이 완료 될 때까지 이전 사본을 해제하지 않기 때문입니다. 일반적으로 이것은 테이블 내에서 상당한 양의 공간을 되 찾아야 할 때만 사용해야합니다.

동결

공격적 선택냉동튜플. 지정Freeze수행과 동일합니다14999_15007withVACUUM_FREEZE_MIN_AGEandVACUUM_FREEZE_TABLE_AGE매개 변수는 0으로 설정되었습니다. 테이블을 다시 작성할 때 공격적인 동결은 항상 수행 되므로이 옵션은이 중복됩니다.full지정되어 있습니다.

Verbose

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

분석

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

disable_page_skippi윈 토토

정상적으로,윈 토토가시성 맵. 모든 튜플이 동결 된 것으로 알려진 페이지는 항상 건너 뛸 수 있으며 모든 튜플이 모든 트랜잭션에 보이는 것으로 알려진 페이지는 공격적인 윈 토토을 수행 할 때를 제외하고 건너 뛸 수 있습니다. 또한 공격적인 윈 토토 청소기를 수행 할 때를 제외하고는 다른 세션이 사용을 완료하기를 기다리지 않기 위해 일부 페이지를 건너 뛸 수 있습니다. 이 옵션은 모든 페이지를 자르는 동작을 비활성화하며 가시성 맵의 내용이 의심되는 경우에만 사용되도록 의도되며, 이는 데이터베이스 손상을 일으키는 하드웨어 또는 소프트웨어 문제가있는 경우에만 발생해야합니다..

skip_locked

이를 지정합니다윈 토토관계에 대한 작업을 시작할 때 충돌 잠금이 해제 될 때까지 기다리지 말아야합니다. 이 옵션을 사용하더라도윈 토토관계의 색인을 열 때 여전히 차단 될 수 있습니다. 또한,윈 토토 분석파티션, 테이블 상속 어린이 및 일부 유형의 외국 테이블에서 샘플 행을 획득 할 때 여전히 차단 될 수 있습니다. 또한윈 토토일반적으로 지정된 파티션 된 테이블의 모든 파티션을 처리하면이 옵션이 발생합니다윈 토토분할 된 테이블에 충돌하는 잠금 장치가있는 경우 모든 파티션을 건너 뛰려면

index_cleanup

정상적으로,윈 토토테이블에 죽은 튜플이 거의 없을 때 인덱스 윈 토토 청소기를 건너 뜁니다. 모든 테이블의 인덱스를 처리하는 비용은이 경우 죽은 색인 튜플을 제거 할 때의 이점을 크게 초과 할 것으로 예상됩니다. 이 옵션은 강제로 사용될 수 있습니다윈 토토죽은 튜플이없는 경우 인덱스를 처리합니다. 기본값은auto, 허용윈 토토적절한 경우 인덱스 윈 토토 청소기를 건너 뜁니다. 만약에index_cleanup로 설정되었습니다on, 윈 토토지수에서 모든 죽은 튜플을 보수적으로 제거합니다. 이것은 이전의 릴리스와의 거꾸로 호환성에 유용 할 수 있습니다.PostgreSQL이것이 표준 행동 인 곳.

index_cleanup또한 설정할 수 있습니다OFF강제윈 토토to항상테이블에 죽은 튜플이 많이있는 경우에도 인덱스 윈 토토 청소기를 건너 뛰십시오. 이것은 만들 필요가있을 때 유용 할 수 있습니다윈 토토임박한 거래 ID 랩 어라운드를 피하기 위해 가능한 빨리 실행하십시오 (참조섹션 24.1.5). 그러나 랩 어라운드가 제어하는 안전 메커니즘VACUUM_FAILSAFE_AGE일반적으로 트랜잭션 ID 랩 어라운드 실패를 피하기 위해 자동으로 트리거되며 선호해야합니다. 인덱스 정리가 정기적으로 수행되지 않으면 테이블이 수정되므로 인덱스가 죽은 튜플을 축적하고 테이블 자체가 인덱스 정리가 완료 될 때까지 제거 할 수없는 데드 라인 포인터가 축적됩니다..

이 옵션은 색인이없는 테이블에 영향을 미치지 않으며이면 무시됩니다full옵션이 사용됩니다. 또한 트랜잭션 ID 랩 어라운드 실패 메커니즘에 영향을 미치지 않습니다. 트리거되면이라도 인덱스 윈 토토 청소기를 건너 뛸 수 있습니다.index_cleanup로 설정되었습니다on.

process_main

지정윈 토토주요 관계를 처리하려고 시도해야합니다. 이것은 일반적으로 원하는 동작이며 기본값입니다. 이 옵션을 False로 설정하면 관계의 해당 대응이 필요한 경우에만 유용 할 수 있습니다토스트테이블.

Process_Toast

지정윈 토토해당 처리를 시도해야토스트하나가 존재하는 경우 각 관계에 대한 테이블. 이것은 일반적으로 원하는 동작이며 기본값입니다. 이 옵션을 False로 설정하는 것은 주요 관계를 윈 토토 청소기로 윈 토토해야 할 때 유용 할 수 있습니다. 이 옵션은 일 때 필요합니다.full옵션이 사용됩니다.

Truncate

이를 지정합니다윈 토토테이블 끝에서 빈 페이지를 자르고 잘린 페이지가 운영 체제로 반환 될 수있는 디스크 공간을 허용해야합니다. 이것은 일반적으로 원하는 동작이며하지 않는 한 기본값입니다.Vacuum_truncate거짓으로 설정되었거나Vacuum_truncate테이블을 청소할 수 있도록 옵션이 False로 설정되었습니다. 이 옵션을 False로 설정하면 피하는 데 유용 할 수 있습니다액세스 독점잘린 테이블에서 잘라. 이 옵션은이면 무시됩니다.full옵션이 사용됩니다.

병렬

지수 윈 토토 및 인덱스 정리 단계의 수행윈 토토병렬 사용Integer배경 작업자 (각 윈 토토 단계의 세부 사항은 참조하십시오표 27.46). 작업을 수행하는 데 사용되는 근로자 수는 병렬 윈 토토을 지원하는 관계의 지수 수와 동일합니다.병렬옵션이 추가로 제한되는 경우max_parallel_mainencement_workers. 색인의 크기가보다 더 큰 경우에만 인덱스가 병렬 윈 토토에 참여할 수 있습니다.min_parallel_index_scan_size. 에 명시된 병렬 작업자의 수를 보장하지는 않습니다.Integer실행 중에 사용됩니다. 윈 토토 청소기는 지정된 것보다 노동자가 적거나 노동자가 전혀 없을 때까지 윈 토토 상태를 운영 할 수 있습니다. 인덱스 당 한 명의 작업자 만 사용할 수 있습니다. 따라서 평행 근로자는 적어도있을 때만 출시됩니다2테이블의 색인. 윈 토토 작업자는 각 단계가 시작되기 전에 발사되어 단계가 끝날 때 마무리됩니다. 이러한 행동은 향후 릴리스에서 변할 수 있습니다. 이 옵션은와 함께 사용할 수 없습니다.full옵션.

skip_database_stats

지정윈 토토가장 오래된 XID에 대한 데이터베이스 전체 통계 업데이트를 건너 뛰어야합니다. 보통윈 토토명령이 끝날 때이 통계를 한 번 업데이트합니다. 그러나 이것은 매우 많은 수의 테이블이있는 데이터베이스에서 시간이 걸릴 수 있으며, 가장 오래된 XID가 포함 된 테이블이 윈 토토 청소기 중 하나가 아니라면 아무것도 달성하지 못할 것입니다. 또한, 다중윈 토토명령은 병렬로 발행되며 그 중 하나만 데이터베이스 전체 통계를 한 번에 업데이트 할 수 있습니다. 따라서 응용 프로그램이 일련의 많은 것을 발행하려는 경우윈 토토명령, 마지막 명령을 제외한이 옵션을 설정하는 것이 도움이 될 수 있습니다. 또는 모든 명령으로 설정하고 별도로 발행윈 토토 (only_database_stats)이후.

전용 _database_stats

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

buffer_usage_limit

지정버퍼 액세스 전략링 버퍼 크기윈 토토. 이 크기는이 전략의 일부로 재사용되는 공유 버퍼의 수를 계산하는 데 사용됩니다.0A의 사용 비활성화버퍼 액세스 전략. 만약에분석지정되어 있습니다.buffer_usage_limit값은 윈 토토 및 분석 단계 모두에 사용됩니다. 이 옵션은와 함께 사용할 수 없습니다.fullIF 옵션분석도 지정되어 있습니다. 이 옵션이 지정되지 않은 경우윈 토토값을 사용하여VACUUM_BUFFER_USAGE_LIMIT. 더 높은 설정은 허용 할 수 있습니다윈 토토더 빨리 실행하려면 설정이 너무 커지면 너무 많은 다른 유용한 페이지가 공유 버퍼에서 퇴거 될 수 있습니다. 최소값은입니다.128 KB그리고 최대 값은입니다.16 GB.

부울

선택한 옵션을 켜거나 끄야하는지 여부를 지정합니다. 당신은 쓸 수 있습니다true, on또는1옵션을 활성화하려면false, OFF또는0비활성화하려면. 그만큼부울값도 생략 할 수 있습니다.true가 가정됩니다.

Integer

선택한 옵션으로 전달되는 비 음성 정수 값을 지정합니다.

size

킬로 바이트에서 메모리 양을 지정합니다. 크기는 또한 수치 크기를 포함하는 문자열로 지정된 다음 다음 메모리 단위 중 하나가 이어질 수 있습니다.B(바이트),KB(Kilobytes),MB(megabytes),GB(Gigabytes) 또는TB(Terabytes).

table_name

특정 테이블의 이름 (선택적으로 스키마 자격) 또는 윈 토토 청소기의 구체화 된보기. 만약에전용테이블 이름 앞에 지정되어 있으며 해당 테이블 만 윈 토토 청소기가 있습니다. 만약에전용는 지정되지 않았으며, 표와 모든 상속 자식 테이블 또는 파티션 (있는 경우)도 청소됩니다. 선택적으로,*테이블 이름 후에 지정하여 상속 자식 테이블 (또는 파티션)이 윈 토토 청소기를 명시해야한다는 것을 명시 적으로 나타냅니다..

column_name

분석 할 특정 열의 이름. 모든 열에 대한 기본값. 열 목록이 지정된 경우분석지정해야합니다.

출력

언제Verbose지정되어 있습니다.윈 토토현재 처리중인 테이블을 나타 내기 위해 진행 메시지를 제출합니다. 테이블에 대한 다양한 통계도 인쇄됩니다.

노트

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

while윈 토토실행 중입니다.search_path일시적으로 변경PG_CATALOG, PG_TEMP.

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

테이블이있는인덱스,윈 토토(어떤 형태로든) 또한 보류중인 인덱스 항목을 메인의 적절한 장소로 이동시켜 보류중인 인덱스 삽입을 완료합니다.색인 구조. 보다섹션 65.4.4.1자세한 내용.

죽은 행을 제거하기 위해 모든 데이터베이스를 정기적으로 윈 토토 청소기로 청소하는 것이 좋습니다.PostgreSQL포함autovacuum일상적인 윈 토토 유지 보수를 자동화 할 수있는 시설. 자동 및 수동 윈 토토 청소기에 대한 자세한 내용은 참조하십시오.PostgreSQL : 문서 : 18 : 24.1. 일상 토토 사이트 순위 청소기.

thefull일상적인 사용에는 옵션이 권장되지 않지만 특별한 경우에는 유용 할 수 있습니다. 예를 들어 테이블에서 대부분의 행을 삭제하거나 업데이트 한 경우 테이블이 디스크 공간을 덜 차지하기 위해 물리적으로 축소되고 더 빠른 테이블 스캔을 허용하기를 원합니다..윈 토토 Full보통 평원보다 테이블을 줄입니다윈 토토Will.

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

윈 토토I/O 트래픽이 상당히 증가하여 다른 활성 세션의 성능이 저하 될 수 있습니다. 따라서 비용 기반 윈 토토 지연 기능을 사용하는 것이 좋습니다. 평행 윈 토토 청소기의 경우 각 작업자는 해당 작업자가 수행 한 작업에 비례하여 잠을 자고 있습니다. 보다섹션 19.10.2자세한 내용.

각 백엔드 실행윈 토토full옵션은에서 진행 상황을보고합니다.PG_STAT_PROGRESS_VACUUM보기. 백엔드 실행윈 토토 Full대신 대신 진행 상황을보고합니다PG_STAT_PROGRESS_CLUST보기. 보다섹션 27.4.5and섹션 27.4.2자세한 내용.

예제

단일 테이블을 청소하려면ONEK, 최적화에 대해 분석하고 자세한 윈 토토 활동 보고서를 인쇄하십시오 :

윈 토토 (Verbose, Analyze) Onek;

호환성

없음윈 토토SQL 표준의 명령문.

다음 구문이 전에 사용되었습니다PostgreSQL버전 9.0 및 여전히 지원됩니다 :

윈 토토 [full] [freeze] [verbose] [분석] [table_and_columns[, ...]]

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