Scan
| Hint List | Description | Format |
| SeqScan | 테이블 순차 스캔을 하도록 적용 | SeqScan(Table) |
| TidScan | 테이블 TID 스캔을 하도록 적용 | TidScan(Table) |
| IndexScan | 테이블에서 특정 인덱스가 있는 경우, 인덱스 스캔을 하도록 적용. 이 때 테이블에 인덱스가 하나거나 인덱스를 특정할 필요가 없는 경우, 테이블만 작성 가능 |
IndexScan(Table [index]) |
| IndexOnlyScan | 테이블에서 특정 인덱스가 있는 경우, 인덱스 전용 스캔을 하도록 적용. 이 때 테이블에 인덱스가 하나거나 인덱스를 특정할 필요가 없는 경우, 테이블만 작성 가능 |
IndexOnlyScan(Table [index]) |
| BitmapScan | 테이블에서 특정 인덱스가 있는 경우, 비트맵 스캔을 하도록 적용. 이 때 테이블에 인덱스가 하나거나 인덱스를 특정할 필요가 없는 경우, 테이블만 작성 가능 |
BitmapScan(Table [index]) |
| IndexScanRegexp | 테이블에서 특정 POSIX 정규식 패턴과 일치하는 인덱스로 인덱스 스캔을 하도록 적용. 이 때 테이블에 특정 정규식 패턴이 하나거나 정규식 패턴을 특정할 필요가 없는 경우, 테이블만 작성 가능 |
IndexScanRegexp(Table [POSIX Regrexp..]) |
| IndexOnlyScanRegexp | 테이블에서 특정 POSIX 정규식 패턴과 일치하는 인덱스로 인덱스 전용 스캔을 하도록 적용 (9.2v 이상). 이 때 테이블에 특정 정규식 패턴이 하나거나 정규식 패턴을 특정할 필요가 없는 경우, 테이블만 작성 가능 |
IndexOnlyScanRegexp(Table [POSIX Regrexp..]) |
| BitmapScanRegexp | 테이블에서 특정 POSIX 정규식 패턴과 일치하는 인덱스로 비트맵 스캔을 하도록 적용. 이 때 테이블에 특정 정규식 패턴이 하나거나 정규식 패턴을 특정할 필요가 없는 경우, 테이블만 작성 가능 |
BitmapScanRegexp(Table [POSIX Regrexp..]) |
| NoSeqScan | 테이블에서 순차 스캔을 하지 않도록 적용 | NoSeqScan(Table) |
| NoTidScan | 테이블에서 TID 스캔을 하지 않도록 적용 | NoTidScan(Table) |
| NoIndexScan | 테이블에서 인덱스 스캔이나 인덱스 전용 스캔을 하지 않도록 적용 | NoIndexScan(Table) |
| NoIndexOnlyScan | 테이블에서 인덱스 전용 스캔을 하지 않도록 적용 | NoIndexOnlyScan(Table) |
| NoBitmapScan | 테이블에서 비트맵 스캔 하지 않도록 적용 | NoBitmapScan(Table) |
Join
| Hint List | Description | Format |
| Leading | 조인의 순서를 지정하도록 적용. 조인 방향까지 제어하려면 Format에서 괄호를 우측 (2)번으로 작성해야하고 이때 Table1이 Driving 또는 Outer Table |
(1) Leading(Table Table) (2) Leading((Table1 Table2)) |
| NestLoop | 특정 테이블이 중첩 루프(Nested Loop) 조인으로 풀리도록 적용 | NestLoop(TableTable [Table..]) |
| HashJoin | 특정 테이블이 해시 조인으로 풀리도록 적용 | HashJoin(Table Table [Table..]) |
| MergeJoin | 특정 테이블이 머지 조인으로 풀리도록 적용 | MergeJoin(Table Table [Table..]) |
| NoNestLoop | 특정 테이블이 중첩 루프(Nested Loop) 조인으로 풀리지 않도록 적용 | NoNestLoop(Table Table [Table..]) |
| NoHashJoin | 특정 테이블이 해시 조인으로 풀리지 않도록 적용 | NoHashJoin(Table Table [Table..]) |
| NoMergeJoin | 특정 테이블이 머지 조인으로 풀리지 않도록 적용 | NoMergeJoin(Table Table [Table..]) |
Behavior Control on Join
| Hint List | Description | Format |
| Memoize | Memoize가 활성화된 경우, 특정 테이블 간의 조인 중 최상위 조인의 결과값을 캐싱하도록 적용 | Memoize(Table Table [ Table...]) |
| NoMemoize | 특정 테이블 사이의 조인에서 내부 결과를 캐싱하여 기억하는 것을 금지하도록 적용 | NoMemoize(Table Table [ Table...]) |
Row Number Correction
| Hint List | Description | Format |
| Rows | 절대(#), 더하기(+), 빼기(-) 및 곱하기(*)를 이용하여 특정 테이블에 대한 조인 결과의 행 번호를 수정하도록 적용 | Rows(Table Table [ Table...] correction) |
Parallel Query Configuration
| Hint List | Description | Format |
| Parallel | 테이블 스캔에 병렬 수행을 적용 ( default : soft ) | Parallel(Table <# of workers> [soft|hard]) |
GUC(Grand Unified Configuration) : postgresql.conf Parameter
| Hint List | Description | Format |
| Set | Optimizer가 실행되는 동안 SQL Plan과 관련된 GUC 매개변수 값을 Hint에 정의된 값으로 적용. 다른 Hint와 충돌한 경우 적용되지않음 |
Set(GUC-param value) |
'DBA > Postgresql' 카테고리의 다른 글
| FILLFACTOR (0) | 2024.09.03 |
|---|---|
| 유휴 세션 정리 (0) | 2024.08.28 |
| 테이블 정의서 추출 (0) | 2024.08.07 |
| orafce 설치 및 적용 (0) | 2024.07.29 |
| DB간 테이블 복제(실시간) (0) | 2024.07.26 |