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 |