(hint-list)=
The available hints are listed below.
Group | Format | Description |
---|---|---|
Scan method | SeqScan(table) |
Forces sequential scan on the table. |
TidScan(table) |
Forces TID scan on the table. | |
IndexScan(table[ index...]) |
Forces index scan on the table. Restricts to specified indexes if any. | |
IndexOnlyScan(table[ index...]) |
Forces index-only scan on the table. Restricts to specified indexes if any. Index scan may be used if index-only scan is not available. | |
BitmapScan(table[ index...]) |
Forces bitmap scan on the table. Restricts to specified indexes if any. | |
IndexScanRegexp(table[ POSIX Regexp...]) IndexOnlyScanRegexp(table[ POSIX Regexp...]) BitmapScanRegexp(table[ POSIX Regexp...]) |
Forces index scan, index-only scan (For PostgreSQL 9.2 and later) or bitmap scan on the table. Restricts to indexes that matches the specified POSIX regular expression pattern. | |
NoSeqScan(table) |
Forces to not do sequential scan on the table. | |
NoTidScan(table) |
Forces to not do TID scan on the table. | |
NoIndexScan(table) |
Forces to not do index scan and index-only scan on the table. | |
NoIndexOnlyScan(table) |
Forces to not do index only scan on the table. | |
NoBitmapScan(table) |
Forces to not do bitmap scan on the table. | |
Join method | NestLoop(table table[ table...]) |
Forces nested loop for the joins on the tables specified. |
HashJoin(table table[ table...]) |
Forces hash join for the joins on the tables specified. | |
MergeJoin(table table[ table...]) |
Forces merge join for the joins on the tables specified. | |
NoNestLoop(table table[ table...]) |
Forces to not do nested loop for the joins on the tables specified. | |
NoHashJoin(table table[ table...]) |
Forces to not do hash join for the joins on the tables specified. | |
NoMergeJoin(table table[ table...]) |
Forces to not do merge join for the joins on the tables specified. | |
Join order | Leading(table table[ table...]) |
Forces join order as specified. |
Leading(<join pair>) |
Forces join order and directions as specified. A join pair is a pair of tables and/or other join pairs enclosed by parentheses, which can make a nested structure. | |
Behavior control on Join | Memoize(table table[ table...]) |
Allows the topmost join of a join among the specified tables to Memoize the inner result. Not enforced. |
NoMemoize(table table[ table...]) |
Inhibits the topmost join of a join among the specified tables from Memoizing the inner result. | |
Row number correction | Rows(table table[ table...] correction) |
Corrects row number of a result of the joins on the tables specified. The available correction methods are absolute (#), addition (+), subtract (-) and multiplication (*). should be a string that strtod() can understand. |
Parallel query configuration | Parallel(table <# of workers> [soft|hard]) |
Enforces or inhibits parallel execution of the specified table. <# of workers> is the desired number of parallel workers, where zero means inhibiting parallel execution. If the third parameter is soft (default), it just changes max_parallel_workers_per_gather and leaves everything else to the planner. Hard enforces the specified number of workers. |
GUC | Set(GUC-param value) |
Sets GUC parameter to the value defined while planner is running. |