본문 바로가기

PostgreSQL

COST 계산에 이용되는 파라미터 / 통계 정보

IO 비용 계산을 위한 파라미터

seq_page_cost

Seq Scan 방식으로 1 블록을 읽는 비용

random_page_cost

Index Scan 방식으로 1 블록을 읽는 비용

인덱스 Root 블록과 Branch 블록을 제외

 

CPU 비용 계산을 위한 파라미터

cpu_tuple_cost

Seq Scan 수행 시에 1개 레코드를 액세스하는 비용

cpu_index_tuple_cost

Index Scan 수행 시에 1개 레코드를 액세스하는 비용

cpu_operator_cost

레코드 1개를 필터 처리하는 비용

 

 

Seq Scan 비용 계산

매우 단순한 방식으로 계산함

COST=

SELECT relpages * current_setting('seq_page_cost')::float +

reltuples * current_setting('cpu_tuple_cost')::float +

reltuples * current_setting('cpu_operator_cost')::float

FROM pg_class WHERE relname='t1';

 

통계 정보

 

통계 정보 생성 단위

데이터베이스, 테이블, 칼럼 레벨로 통계 정보 생성 가능

스키마, 인덱스 레벨은 지원하지 않음

 

통계 정보 수동 생성 방법

데이터베이스 레벨: analyze;

테이블 레벨: analyze {테이블명};

칼럼 레벨: analyze {테이블명} {(칼럼명)..};

 

주요 통계 정보 확인

Autovacuum이 자동으로 통계 정보를 갱신하는 기준

아래의 파라미터를 이용해서 통계 정보를 갱신한다

테이블 별 설정도 가능하다.

'PostgreSQL' 카테고리의 다른 글

액세스 방식  (0) 2021.04.23
Explain  (0) 2021.04.23
HOT (Heap Only Tuple)  (0) 2021.04.23
Vacuum, Auto Vacuum  (0) 2021.04.23
MVCC (다중 버전 읽기 일관성)  (0) 2021.04.23