윈 토토-쓰레기 수집 및 선택적으로 데이터베이스 분석
윈 토토 [(옵션
[, ...])] [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_columns
is :[만]table_name
[ *] [(column_name
[, ...])
윈 토토
죽은 튜플이 차지하는 저장을 되 찾으십시오. 정상PostgreSQL작동, 업데이트로 삭제되거나 쓸모없는 튜플은 테이블에서 물리적으로 제거되지 않습니다. 그들은 a까지 남아 있습니다.윈 토토
완료되었습니다. 그러므로해야 할 필요가 있습니다윈 토토
정기적으로, 특히 자주 업데이트 된 테이블에서.
atable_and_columns
List,윈 토토
현재 사용자가 윈 토토 청소기에 허가를받는 현재 데이터베이스에서 모든 테이블과 구체화 된보기를 처리합니다. 목록과 함께윈 토토
해당 테이블 만 처리합니다.
윈 토토 분석
a 수행윈 토토
그리고 an분석
선택한 각 테이블에 대해. 이것은 일상적인 유지 보수 스크립트를위한 편리한 조합 형식입니다. 보다분석처리에 대한 자세한 내용은
일반윈 토토
(full
) 단순히 공간을 되 찾아 재사용 할 수 있도록합니다. 이 형태의 명령은 독점적 인 잠금을 얻지 못하므로 테이블의 정상적인 읽기 및 쓰기와 병렬로 작동 할 수 있습니다. 그러나 추가 공간은 운영 체제 (대부분의 경우)로 반환되지 않습니다. 동일한 테이블 내에서 재사용 할 수 있습니다. 또한 인덱스를 처리하기 위해 여러 CPU를 활용할 수 있습니다. 이 기능은로 알려져 있습니다.병렬 윈 토토. 이 기능을 비활성화하려면 사용할 수 있습니다병렬
옵션 및 병렬 작업자를 0으로 지정합니다.윈 토토 Full
테이블의 전체 내용을 추가 공간이없는 새 디스크 파일로 다시 작성하여 사용하지 않은 공간을 운영 체제로 반환 할 수 있습니다. 이 양식은 훨씬 느리고 필요합니다액세스 독점
처리되는 동안 각 테이블을 잠그십시오.
full
selects“full”더 많은 공간을 되 찾을 수 있지만 훨씬 더 오래 걸리고 독점적으로 테이블을 잠그는 윈 토토. 이 방법에는 추가 디스크 공간이 필요합니다. 테이블의 새 사본을 작성하고 작업이 완료 될 때까지 이전 사본을 해제하지 않기 때문입니다. 일반적으로 이것은 테이블 내에서 상당한 양의 공간을 되 찾아야 할 때만 사용해야합니다.
동결
공격적 선택“냉동”튜플. 지정Freeze
수행과 동일합니다14999_15007
withVACUUM_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
지정버퍼 액세스 전략링 버퍼 크기윈 토토
. 이 크기는이 전략의 일부로 재사용되는 공유 버퍼의 수를 계산하는 데 사용됩니다.0
A의 사용 비활성화버퍼 액세스 전략
. 만약에분석
지정되어 있습니다.buffer_usage_limit
값은 윈 토토 및 분석 단계 모두에 사용됩니다. 이 옵션은와 함께 사용할 수 없습니다.full
IF 옵션분석
도 지정되어 있습니다. 이 옵션이 지정되지 않은 경우윈 토토
값을 사용하여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
[, ...]]
이 구문에서 옵션은 정확히 표시된 순서로 지정되어야합니다.