pg_hint_planで指定できるヒントは以下の通りです。
ヒントのグループ | ヒント | 説明 |
---|---|---|
スキャン方式 | SeqScan(テーブル) | 指定したテーブルについて、Seq Scanを選択します。 |
TidScan(テーブル) | ctidに具体的な値を指定したときに、指定したテーブルについて、Tid Scanを選択します。 | |
IndexScan(テーブル[ インデックス[ インデックス...]]) | 指定したテーブルについて、IndexScanを選択します。インデックスも指定した場合は、指定したインデックスの中でコストが最小となるIndex Scanを選択します。ただし、インデックスが存在しない場合や指定したインデックスがWHERE句やJOIN条件などに関連しない場合はSeq Scanを選択します。 | |
BitmapScan(テーブル[ インデックス[ インデックス...]]) | 指定したテーブルについて、Bitmap Scanを選択します。インデックスも指定した場合は、指定したインデックスの中でコストが最小となるインデックスを選択します。ただし、インデックスが存在しない場合や指定したインデックスがWHERE句やJOIN条件などに関連しない場合はSeq Scanを選択します。 | |
NoSeqScan(テーブル) | 指定したテーブルについて、Seq Scan以外でコストが最小となるスキャン方式を選択します。ただし、他のスキャン方式を選択できない場合は、Seq Scanを選択します。 | |
NoTidScan(テーブル) | 指定したテーブルについて、Tid Scanを除いたコストが最小となるスキャン方式を選択します。 | |
NoIndexScan(テーブル) | 指定したテーブルについて、Bitmap Scanを除いたコストが最小となるスキャン方式を選択します。 | |
NoBitmapScan(テーブル) | 指定したテーブルについて、Bitmap Scanを除いたコストが最小となるスキャン方式を選択します。 | |
結合方式 | NestLoop(テーブル テーブル[ テーブル...]) | 指定したテーブル間の結合にNested Loopを選択します。 |
HashJoin(テーブル テーブル[ テーブル...]) | 指定したテーブル間の結合にHash Joinを選択します。 | |
MergeJoin(テーブル テーブル[ テーブル...]) | 指定したテーブル間の結合にMerge Joinを選択します。 | |
NoNestLoop(テーブル テーブル[ テーブル...]) | 指定したテーブル間の結合にNested Loop以外の結合方式を選択します。他の結合方式を選択できない場合は、Nested Loopを選択します。 | |
NoHashJoin(テーブル テーブル[ テーブル...]) | 指定したテーブル間の結合にHash Join以外の結合方式を選択します。 | |
NoMergeJoin(テーブル テーブル[ テーブル...]) | 指定したテーブル間の結合にMerge Join以外の結合方式を選択します。 | |
結合順序 | Leading(テーブル[ テーブル...]) | 指定したテーブルを指定した順番通りに結合します。 |
GUCパラメータ | Set(GUCパラメータ 値) | そのクエリの時だけ、指定したGUCパラメータを指定した値に変更します。ただし、指定する値に小文字とアンダースコア(_)以外の文字(大文字、数字、空白スペースなど)を含む場合はダブルクォート(")で囲んでください。 |