롤 토토 - 데이터베이스에 대한 통계 수집
롤 토토 [(옵션
[, ...])] [table_and_columns
[, ...]]여기서옵션
중 하나 일 수 있습니다 :Verbose [부울
] skip_locked [부울
] buffer_usage_limitsize
andtable_and_columns
is :[만]table_name
[ *] [(column_name
[, ...])
롤 토토
데이터베이스의 테이블 내용에 대한 통계를 수집하고 결과를 저장합니다.PG_STATISTIC
시스템 카탈로그. 그 후, 쿼리 플래너는 이러한 통계를 사용하여 쿼리에 대한 가장 효율적인 실행 계획을 결정하는 데 도움이됩니다.
atable_and_columns
list,롤 토토
현재 사용자가 롤 토토 할 권한이있는 현재 데이터베이스에서 모든 테이블과 구체화 된보기를 처리합니다. 목록과 함께롤 토토
해당 테이블 만 처리합니다. 테이블의 열 이름 목록을 제공 할 수 있습니다.이 경우 해당 열에 대한 통계 만 수집됩니다..
Verbose
진행 메시지 표시 활성화info
레벨.
skip_locked
이를 지정합니다롤 토토
관계에 대한 작업을 시작할 때 충돌하는 잠금 장치가 릴리스 될 때까지 기다리지 말아야합니다. 이 옵션을 사용하더라도롤 토토
관계의 색인을 열 때 또는 파티션, 테이블 상속 자식 및 일부 유형의 외국 테이블에서 샘플 행을 획득 할 때 여전히 차단 될 수 있습니다. 또한롤 토토
일반적으로 지정된 파티션 된 테이블의 모든 파티션을 처리하면이 옵션이 원인롤 토토
분할 된 테이블에 충돌하는 잠금 장치가있는 경우 모든 파티션을 건너 뛰려면
buffer_usage_limit
지정버퍼 액세스 전략링 버퍼 크기롤 토토
. 이 크기는이 전략의 일부로 재사용되는 공유 버퍼의 수를 계산하는 데 사용됩니다.0
A의 사용 비활성화버퍼 액세스 전략
. 이 옵션이 지정되지 않은 경우롤 토토
값을 사용하여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
[, ...]]