機能説明

基本的な使用方法

pg_hint_planはSQL文に与えられた特別な形式のコメント内のヒント句を読み取ります。 ヒントは先頭に "/*+"というシーケンスを付け、最後に "*/" を付けることで指定できます。 ヒント句はヒント名とそれに続くパラメータを括弧で囲み、スペースで区切ったものです。 ヒント句は読みやすくするために改行することができます。

以下の例では、pgbench_accounts に対してシーケンシャルスキャンを行う際に結合方法としてハッシュ結合が選択されています。

=# /*+
     HashJoin(a b)
     SeqScan(a)
    */
   EXPLAIN SELECT *
     FROM pgbench_branches b
     JOIN pgbench_accounts a ON b.bid = a.bid
     ORDER BY a.aid;
                                        QUERY PLAN
---------------------------------------------------------------------------------------
    Sort  (cost=31465.84..31715.84 rows=100000 width=197)
    Sort Key: a.aid
    ->  <b>Hash Join</b>  (cost=1.02..4016.02 rows=100000 width=197)
            Hash Cond: (a.bid = b.bid)
            ->  <b>Seq Scan on pgbench_accounts a</b>  (cost=0.00..2640.00 rows=100000 width=97)
            ->  Hash  (cost=1.01..1.01 rows=1 width=100)
                ->  Seq Scan on pgbench_branches b  (cost=0.00..1.01 rows=1 width=100)
(7 rows)