VACUUM — 가비지 수집 및 선택적으로 데이터베이스 분석
토토 캔 [ (옵션[, ...] ) ] [table_and_columns[, ...] ] VACUUM [ 전체 ] [ 동결 ] [ 장황함 ] [ 분석 ] [table_and_columns[, ...] ] 어디에서옵션다음 중 하나일 수 있습니다.전체 동결 장황한 분석하다 DISABLE_PAGE_SKIPPING그리고table_and_columns다음과 같습니다:테이블_이름[ (컬럼_이름[, ...] ) ]
토토 캔죽은 튜플이 차지하는 저장 공간을 회수합니다. 보통PostgreSQL작업, 업데이트로 인해 삭제되거나 사용되지 않는 튜플은 테이블에서 물리적으로 제거되지 않습니다. 그들은 a까지 존재한다토토 캔완료되었습니다. 그러므로 다음을 수행해야 합니다.토토 캔정기적으로, 특히 자주 업데이트되는 테이블에서.
a 없이table_and_columns목록,토토 캔현재 사용자가 Vacuum 권한을 갖고 있는 현재 데이터베이스의 모든 테이블과 구체화된 뷰를 처리합니다. 목록으로,토토 캔해당 테이블만 처리합니다.
토토 캔 분석수행토토 캔그리고 그 다음에는분석선택한 각 테이블에 대해. 이는 일상적인 유지 관리 스크립트를 위한 편리한 조합 양식입니다. 참조분석처리에 대한 자세한 내용을 확인하세요.
일반토토 캔(없이전체)는 단순히 공간을 회수하여 재사용이 가능하도록 만듭니다. 이 명령 형식은 배타적 잠금을 얻지 못하므로 테이블의 일반적인 읽기 및 쓰기와 병렬로 작동할 수 있습니다. 그러나 추가 공간은 운영 체제에 반환되지 않습니다(대부분의 경우). 동일한 테이블 내에서 재사용이 가능하도록 유지됩니다.토토 캔이 가득 참추가 공간 없이 테이블의 전체 내용을 새 디스크 파일에 다시 작성하여 사용되지 않은 공간을 운영 체제에 반환할 수 있습니다. 이 형식은 훨씬 느리며 다음이 필요합니다.접속 독점처리되는 동안 각 테이블을 잠급니다.
옵션 목록이 괄호로 묶인 경우 옵션은 어떤 순서로도 쓰여질 수 있습니다. 괄호 없이 옵션은 위에 표시된 순서대로 정확하게 지정해야 합니다. 괄호 안에 구문이 추가되었습니다.PostgreSQL9.0; 괄호로 묶이지 않은 구문은 더 이상 사용되지 않습니다.
전체선택“가득찬”vacuum은 더 많은 공간을 확보할 수 있지만 시간이 더 오래 걸리고 테이블을 독점적으로 잠급니다. 또한 이 방법은 테이블의 새 복사본을 쓰고 작업이 완료될 때까지 이전 복사본을 해제하지 않으므로 추가 디스크 공간이 필요합니다. 일반적으로 이는 테이블 내에서 상당한 양의 공간을 회수해야 하는 경우에만 사용해야 합니다.
정지공격적 선택“동결”튜플. 지정정지수행하는 것과 동일합니다토토 캔와vacuum_freeze_min_age그리고vacuum_freeze_table_age매개변수가 0으로 설정되었습니다. 테이블을 다시 작성할 때 공격적 동결이 항상 수행되므로 이 옵션은 다음과 같은 경우 중복됩니다.전체지정되었습니다.
상세각 테이블에 대한 자세한 토토 캔 활동 보고서를 인쇄합니다.
분석플래너가 쿼리를 실행하는 가장 효율적인 방법을 결정하는 데 사용하는 통계를 업데이트합니다.
DISABLE_PAGE_SKIPPING보통은,토토 캔다음에 따라 페이지를 건너뜁니다.가시성 지도. 모든 튜플이 고정된 것으로 알려진 페이지는 항상 건너뛸 수 있으며, 모든 튜플이 모든 트랜잭션에 표시되는 것으로 알려진 페이지는 공격적인 Vacuum을 수행하는 경우를 제외하고는 건너뛸 수 있습니다. 또한 적극적인 토토 캔 작업을 수행하는 경우를 제외하고 다른 세션에서 해당 페이지 사용이 완료될 때까지 기다리지 않기 위해 일부 페이지를 건너뛸 수 있습니다. 이 옵션은 모든 페이지 건너뛰기 동작을 비활성화하며 가시성 지도의 내용이 의심스러운 경우에만 사용하도록 고안되었습니다. 이는 데이터베이스 손상을 일으키는 하드웨어 또는 소프트웨어 문제가 있는 경우에만 발생해야 합니다.
테이블_이름VACUUM할 특정 테이블 또는 구체화된 뷰의 이름(선택적으로 스키마 한정). 지정된 테이블이 분할된 테이블인 경우 해당 테이블의 모든 리프 파티션이 정리됩니다.
열_이름분석할 특정 열의 이름. 기본값은 모든 열입니다. 컬럼 목록이 지정된 경우,분석또한 지정되어야 합니다.
언제상세지정되었습니다.토토 캔현재 처리 중인 테이블을 나타내는 진행 메시지를 내보냅니다. 테이블에 대한 다양한 통계도 인쇄됩니다.
테이블을 비우려면 일반적으로 테이블의 소유자 또는 수퍼유저여야 합니다. 그러나 데이터베이스 소유자는 공유 카탈로그를 제외하고 데이터베이스의 모든 테이블을 정리할 수 있습니다. (공유 카탈로그에 대한 제한은 진정한 데이터베이스 전체에 대한 제한을 의미합니다.토토 캔수퍼유저만 수행할 수 있습니다.)토토 캔호출 사용자에게 Vacuum 권한이 없는 테이블은 건너뜁니다.
토토 캔트랜잭션 블록 내에서는 실행할 수 없습니다.
다음이 포함된 테이블의 경우진색인,토토 캔(어떤 형태로든) 보류 중인 색인 항목을 기본 항목의 적절한 위치로 이동하여 보류 중인 색인 삽입을 완료합니다.진인덱스 구조. 참조섹션 66.4.1자세한 내용은.
활성 프로덕션 데이터베이스를 자주(적어도 밤마다) 비워서 데드 행을 제거하는 것이 좋습니다. 많은 수의 행을 추가하거나 삭제한 후에는 다음을 실행하는 것이 좋습니다.토토 캔 분석18411_18537포스트그레SQL쿼리 계획에서 더 나은 선택을 위한 쿼리 플래너.
그전체옵션은 일상적인 사용에는 권장되지 않지만 특별한 경우에는 유용할 수 있습니다. 예를 들어 테이블의 행 대부분을 삭제하거나 업데이트했으며 테이블을 물리적으로 축소하여 디스크 공간을 덜 차지하고 테이블 스캔 속도를 높이려는 경우가 있습니다.토토 캔 가득 참일반적으로 일반 테이블보다 테이블을 더 축소합니다토토 캔그러겠습니다.
토토 캔I/O 트래픽이 크게 증가하여 다른 활성 세션의 성능이 저하될 수 있습니다. 따라서 때로는 비용 기반 토토 캔 지연 기능을 사용하는 것이 좋습니다. 참조섹션 19.4.4자세한 내용은.
PostgreSQL포함“자동 토토 캔”일상적인 토토 캔 유지 관리를 자동화할 수 있는 시설입니다. 자동 및 수동 토토 캔 청소에 대한 자세한 내용은 다음을 참조하세요.PostgreSQL : 문서 : 11 : 24.1. 일상 배트맨 토토 청소기.
단일 테이블을 정리하려면오네크, 최적화 프로그램을 위해 분석하고 자세한 토토 캔 활동 보고서를 인쇄합니다.
토토 캔(상세, 분석) onek;
없습니다토토 캔SQL 표준의 문입니다.