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

롤 토토

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

시놉시스

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

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

설명

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

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

매개 변수

Verbose

진행 메시지 표시 활성화info레벨.

skip_locked

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

buffer_usage_limit

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

부울

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

size

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

table_name

롤 토토 할 특정 테이블의 이름 (schema-qualified). 생략하면 모든 일반 테이블, 파티션 된 테이블 및 현재 데이터베이스의 구체화 된 뷰가 롤 토토됩니다 (그러나 이물질은 아님). 만약에전용테이블 이름 앞에 지정되어 있으며 해당 테이블 만 롤 토토됩니다. 만약에전용는 지정되지 않았으며 표와 모든 상속 자식 테이블 또는 파티션 (있는 경우)이 롤 토토됩니다. 선택적으로,*상속 하위 테이블 (또는 파티션)을 롤 토토해야한다는 것을 명시 적으로 표시하기 위해 테이블 ​​이름 후에 지정할 수 있습니다..

column_name

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

출력

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

노트

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

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

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

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

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

통계가 수집 한 통계롤 토토일반적으로 각 열에서 가장 일반적인 값 중 일부와 각 열의 대략적인 데이터 분포를 보여주는 히스토그램 목록을 포함합니다. 이 중 하나 또는 둘 다를 생략 할 수 있습니다롤 토토흥미롭지 않은 것으로 간주합니다 (예 : 고유 한 키 열에서는 공통 값이 없습니다) 또는 열 데이터 유형이 적절한 연산자를 지원하지 않는 경우. 통계에 대한 자세한 정보가 있습니다.PostgreSQL: Tài liệu: 18: Chươ토토 커뮤니티 24. Nhiệm vụ bảo trì cơ sở dữ liệu thườ토토 커뮤니티 xuyên.

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

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

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

에 의해 추정 된 값 중 하나롤 토토는 각 열에 나타나는 별개의 값의 수입니다. 행의 서브 세트 만 검사하기 때문에 가능한 가장 큰 통계 목표를 사용 하더라도이 추정치는 때때로 상당히 부정확 할 수 있습니다. 이 부정확성이 잘못된 쿼리 계획으로 이어지면 더 정확한 값을 수동으로 결정한 다음로 설치할 수 있습니다.ALTER 테이블 ... ALTER 열 ... 세트 (n_distinct = ...).

롤 토토중인 테이블에 상속 자녀가있는 경우롤 토토2 개의 통계 세트를 수집합니다 : 부모 테이블의 행에만 하나, 부모 테이블과 모든 어린이의 행을 포함하여 두 번째. 이 두 번째 통계 세트는 상속 트리를 전체적으로 처리하는 쿼리를 계획 할 때 필요합니다. 그러나 Autovacuum 데몬은 해당 테이블의 자동 롤 토토을 트리거할지 여부를 결정할 때 부모 테이블 자체의 인서트 또는 업데이트 만 고려합니다. 해당 테이블이 거의 삽입되거나 업데이트되지 않으면 상속 통계는 실행되지 않으면 최신 상태가되지 않습니다롤 토토수동으로. 기본적으로롤 토토각 상속 하위 테이블에 대한 통계를 재귀 적으로 수집하고 업데이트합니다. 그만큼전용키워드를 사용하여이를 비활성화 할 수 있습니다.

분할 된 테이블,롤 토토모든 파티션에서 행을 샘플링하여 통계를 수집합니다. 기본적으로롤 토토각 파티션에 대한 통계를 재귀 적으로 수집하고 업데이트합니다. 그만큼전용키워드를 사용하여이를 비활성화 할 수 있습니다.

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

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

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

각 백엔드 실행롤 토토진행 상황을보고합니다PG_STAT_PROGRESS_ANALYZE보기. 보다섹션 27.4.1자세한 내용.

호환성

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

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

롤 토토 [Verbose] [table_and_columns[, ...]]