토토 캔

토토 캔 - 데이터베이스에 대한 통계 수집

시놉시스

토토 캔 [(옵션[, ...])] [table_and_columns[, ...]]table_and_columns[, ...]]여기서옵션중 하나 일 수 있습니다 :Verbose [부울]부울 ]

andtable_and_columnsis :

    table_name[(column_name[, ...])]

설명

토토 캔데이터베이스의 테이블 내용에 대한 통계를 수집하고 결과를 저장합니다PG_STATISTIC시스템 카탈로그. 그 후, 쿼리 플래너는 이러한 통계를 사용하여 쿼리에 대한 가장 효율적인 실행 계획을 결정하는 데 도움이됩니다.

atable_and_columnsList,토토 캔현재 사용자가 토토 캔 할 권한이있는 현재 데이터베이스에서 모든 테이블과 구체화 된보기를 처리합니다. 목록과 함께토토 캔해당 테이블 만 처리합니다. 테이블의 열 이름 목록을 제공 할 수 있습니다.이 경우 해당 열에 대한 통계 만 수집됩니다..

옵션 목록이 괄호로 둘러싸여 있으면 옵션은 어떤 순서로든 작성할 수 있습니다. 괄호 안장 구문이 추가되었습니다PostgreSQL11; 비교되지 않은 구문은 더 이상 사용되지 않습니다.

매개 변수

Verbose

진행 메시지 표시 활성화.

skip_locked

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

부울

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

table_name

토토 캔 할 특정 테이블의 이름 (schema-qualified). 생략하면 모든 일반 테이블, 파티션 된 테이블 및 현재 데이터베이스의 구체화 된 뷰가 토토 캔됩니다 (그러나 이물질은 아님).

column_name

토토 캔 할 특정 열의 이름. 모든 열에 대한 기본값.

출력

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

노트

테이블을 토토 캔하려면 일반적으로 테이블의 소유자 또는 슈퍼업자 여야합니다. 그러나 데이터베이스 소유자는 공유 카탈로그를 제외한 데이터베이스의 모든 테이블을 토토 캔 할 수 있습니다.토토 캔슈퍼업자 만 수행 할 수 있습니다.)토토 캔호출 사용자가 토토 캔 할 권한이없는 테이블을 건너 뜁니다.

외국 테이블은 명시 적으로 선택한 경우에만 토토 캔됩니다. 모든 외국 데이터 포장지 지원은 아닙니다토토 캔. 테이블의 래퍼가 지원하지 않는 경우토토 캔, 명령은 경고를 인쇄하고 아무것도하지 않습니다.

기본값PostgreSQL구성, Autovacuum 데몬 (참조섹션 24.1.6)는 데이터가 처음로드 될 때 테이블의 자동 토토 캔을 처리하고 정기적 인 작동 내내 변경됩니다. Autovacuum이 비활성화되면 실행하는 것이 좋습니다토토 캔주기적으로 또는 테이블 내용을 크게 변경 한 직후. 정확한 통계는 플래너가 가장 적절한 쿼리 계획을 선택하여 쿼리 처리 속도를 향상시키는 데 도움이됩니다.진공and토토 캔낮은 usage 시간 동안 하루에 한 번. (이는 업데이트 활동이 심하면 충분하지 않습니다.)

토토 캔대상 테이블의 읽기 잠금 만 필요하므로 테이블의 다른 활동과 병렬로 실행할 수 있습니다.

통계가 수집 한 통계토토 캔일반적으로 각 열에서 가장 일반적인 값 중 일부와 각 열의 대략적인 데이터 분포를 보여주는 히스토그램 목록을 포함합니다. 이 중 하나 또는 둘 다를 생략 할 수 있습니다토토 캔흥미롭지 않은 것으로 간주합니다 (예 : 고유 한 키 열에서는 공통 값이 없습니다) 또는 열 데이터 유형이 적절한 연산자를 지원하지 않는 경우. 통계에 대한 자세한 정보가 있습니다.PostgreSQL : 문서 : 13 : 24 장. 일상 배트맨 토토 유지 보수 작업.

큰 테이블의 경우토토 캔모든 행을 검사하지 않고 테이블 내용의 임의의 샘플을 취합니다. 이를 통해 매우 큰 테이블조차 소량으로 토토 캔 할 수 있습니다.토토 캔실제 테이블 내용이 변경되지 않더라도 실행됩니다. 이로 인해 플래너의 예상 비용이 |설명. 드문 상황에서는이 비 결정주의가 플래너의 쿼리 계획을 선택하여 변경 될 것입니다토토 캔실행 중입니다. 이를 피하려면에 의해 수집 된 통계량을 높이십시오.토토 캔, 아래 설명 된대로.

토토 캔 범위는 조정하여 제어 할 수 있습니다default_statistics_targetconfiguration 변수 또는 컬럼 별 통계 대상을 |Alter Table ... Alter Column ... Set Statistics(참조Alter Table). 대상 값은 가장 일반적인 값 목록에서 최대 항목 수와 히스토그램의 최대 빈 수를 설정합니다.토토 캔그리고 점유 된 공간의 양PG_STATISTIC. 특히 통계 대상을 0으로 설정하면 해당 열에 대한 통계 수집이 비활성화됩니다.여기서, 그룹 by또는주문 by플래너가 그러한 열에 대한 통계를 사용하지 않기 때문에 쿼리의 조항.

토토 캔중인 열 중 가장 큰 통계 목표는 통계를 준비하기 위해 샘플링 된 테이블 행의 수를 결정합니다. 목표를 늘리면 필요한 시간과 공간이 비례 적으로 증가합니다토토 캔.

에 의해 추정 된 값 중 하나토토 캔는 각 열에 나타나는 별개의 값의 수입니다. 행의 서브 세트 만 검사하기 때문에 가능한 가장 큰 통계 목표를 사용 하더라도이 추정치는 때때로 상당히 부정확 할 수 있습니다.ALTER 테이블 ... ALTER 열 ... 세트 (n_distInct = ...)(참조Alter Table).

토토 캔중인 테이블에 상속 자녀가있는 경우토토 캔2 개의 통계 세트를 수집합니다. 하나는 부모 테이블의 행에만, 부모 테이블과 모든 어린이의 행을 포함하여 두 번째. 이 두 번째 통계 세트는 상속 트리를 전체적으로 처리하는 쿼리를 계획 할 때 필요합니다.토토 캔수동으로.

분할 된 테이블의 경우토토 캔모든 파티션에서 행을 샘플링하여 통계를 수집합니다. 또한 각 파티션으로 되풀이되고 통계를 업데이트합니다.

autovacuum 데몬은 분할 된 테이블을 처리하지 않으며, 어린이 만 수정 된 경우 상속 부모를 처리하지 않습니다. 일반적으로 주기적으로 매뉴얼을 실행해야합니다토토 캔테이블 계층의 통계를 최신 상태로 유지하려면.

하위 테이블이나 파티션이 외국 데이터 포장지가 지원하지 않는 외국 테이블 인 경우토토 캔, 상속 물 통계를 수집하는 동안 해당 테이블이 무시됩니다.

토토 캔중인 테이블이 완전히 비어 있으면토토 캔해당 테이블에 대한 새로운 통계를 기록하지 않습니다. 기존 통계는 유지됩니다.

호환성

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

정정 제출

문서에 맞지 않는 내용이 있으면 일치하지 않습니다.이 양식문서 문제를보고하려면