Hint list

使用可能なヒントは以下の通りです。

グループ

書式

説明

スキャン方法

SeqScan(テーブル)

指定されたテーブルにシーケンシャルスキャンを強制します。

TidScan(テーブル)

指定されたテーブルにTid スキャンを強制します。検索条件にctidを指定した場合にのみ有効です。

IndexScan(テーブル[ インデックス...])

指定されたテーブルにインデックススキャンを強制します。指定されたインデックスがある場合は、そのインデックスに限定されます。

IndexOnlyScan(テーブル[ インデックス...])

指定されたテーブルにインデックスオンリースキャンを強制します。指定されたインデックスがある場合は、そのインデックスに限定されます。インデックスオンリースキャンが利用できない場合、インデックススキャンが使用されることがあります。

BitmapScan(テーブル[ インデックス...])

指定されたテーブルにビットマップスキャンを強制します。指定されたインデックスがある場合は、そのインデックスに限定されます。

IndexScanRegexp(テーブル[ POSIX正規表現...])
IndexOnlyScanRegexp(テーブル[ POSIX正規表現...])
BitmapScanRegexp(テーブル[ POSIX正規表現...])

指定されたテーブルにインデックススキャン、インデックスオンリースキャン(PostgreSQL 9.2以降)、ビットマップスキャンを強制します。指定されたPOSIX正規表現パターンに一致するインデックスに限定されます。

NoSeqScan(テーブル)

指定されたテーブルにシーケンシャルスキャンを行わないように強制します。

NoTidScan(テーブル)

指定されたテーブルにTIDスキャンを行わないように強制します。

NoIndexScan(テーブル)

指定されたテーブルに対してインデックススキャン、インデックスオンリースキャンを行わないように強制します。

NoIndexOnlyScan(テーブル)

指定されたテーブルにTIDスキャンを行わないように強制します。

NoBitmapScan(テーブル)

指定されたテーブルにビットマップスキャンを行わないように強制します。

Disable indexes

DisableIndex(table index...)

Disables the specified indexes during query planning, taking precedence over any other hints.

結合方法

NestLoop(テーブル テーブル[ テーブル...])

指定されたテーブルで構成された結合にネステッドループ結合を強制します。

HashJoin(テーブル テーブル[ テーブル...])

指定されたテーブルで構成された結合にハッシュ結合を強制します。

MergeJoin(テーブル テーブル[ テーブル...])

指定されたテーブルで構成された結合にマージ結合を強制します。

NoNestLoop(テーブル テーブル[ テーブル...])

指定されたテーブルで構成する結合にネステッドループ結合が行われないように強制します。

NoHashJoin(テーブル テーブル[ テーブル...])

指定されたテーブルで構成する結合にハッシュ結合が行われないように強制します。

NoMergeJoin(テーブル テーブル[ テーブル...])

指定されたテーブルで構成する結合にマージ結合が行われないように強制します。

結合順序

Leading(テーブル テーブル[ テーブル...])

指定された結合順序に強制します。

Leading(<結合のペア>)

指定された結合順序と方向を強制します。結合ペアは、括弧で囲まれたテーブルや他の結合ペアのペアであり、入れ子構造を作ることができます。

結合時の挙動制御

Memoize(テーブル テーブル[ テーブル...])

指定されたテーブル間の結合の最上位の結合において内部表の結果をメモすることを許可する (これは強制ではないことに注意)。

NoMemoize(テーブル テーブル[ テーブル...])

指定されたテーブル間の結合の最上位の結合において内部表の結果をメモすることを禁止します。

見積り行数の補正

Rows(テーブル テーブル[ テーブル...] 行数補正)

指定されたテーブルの結合結果の見積り行数を補正します。補正方法は、絶対値(#)、加算(+)、減算(-)、乗算(*)です。はstrtod()が読み込める文字列でなければなりません。

パラレルクエリの設定

Parallel(table <ワーカー数> [soft|hard])

指定されたテーブルの並列実行を強制または禁止します。<ワーカー数>は希望する並列ワーカー数で、0は並列実行を禁止することを意味します。第3パラメータがsoft(デフォルト)の場合、max_parallel_workers_per_gatherを変更するだけで、その他すべてはプランナに任せます。hardは指定された数のワーカーを強制することを意味します。

GUCパラメータ

Set(GUCパラメータ 値)

プランナが実行中の間、GUCパラメータの値を設定します。