</head>
<body>
-<h1 id="pg_hint_plan">pg_hint_plan 1.1.0</h1>
+<h1 id="pg_hint_plan">pg_hint_plan 1.1 付録</h1>
<div class="navigation">
<a href="pg_hint_plan-ja.html">pg_hint_plan</a> >
<a href="hint_list-ja.html">Appendix A. ヒント句一覧</a>
<td nowrap>Leading(テーブル テーブル[ テーブル...])</td>
<td>指定したテーブルを指定した順番通りに結合します。</td></tr>
<tr><td nowrap>Leading((テーブル集合<Sup>注1</Sup> テーブル集合<Sup>注1</Sup>))</td>
- <td>1つ目に指定したテーブル集合を外部表として、2つ目に指定したテーブル集合を内部表として結合します。</td></tr>
+ <td>1つ目に指定したテーブル集合を外部表として、2つ目に指定したテーブル集合を内部表として結合します。書式中のテーブル集合はテーブルもしくは別のテーブル集合です。</td></tr>
<tr><td>見積もり件数補正</td>
<td nowrap>Rows(テーブル テーブル[ テーブル...] 件数補正)</td>
<p>pg_hint_plan -- 実行計画を示すヒントをクエリに指定することで、SQL文やGUCパラメータを変えずに実行計画を制御します。</p>
<h2 id="synopsis">概要</h2>
-<p>PostgreSQLã\81¯ã\82³ã\82¹ã\83\88ã\83\99ã\83¼ã\82¹ã\82ªã\83\97ã\83\86ã\82£ã\83\9eã\82¤ã\82¶ã\82\92æ\8e¡ç\94¨ã\81\97ã\81¦ã\81\8aã\82\8aã\80\81SQLæ\96\87ã\81¨çµ±è¨\88æ\83\85å ±ã\82\92å\85\83ã\81«å\8f¯è\83½ã\81ªå®\9fè¡\8cè¨\88ç\94»ã\81®ã\82³ã\82¹ã\83\88ã\82\92è¦\8bç©\8dã\82\82ã\82\8aã\80\81æ\9c\80ã\82\82ã\82³ã\82¹ã\83\88ã\81®ä½\8eã\81\84å®\9fè¡\8cè¨\88ç\94»ã\82\92é\81¸æ\8a\9eã\81\97ã\81¾ã\81\99ã\80\82ã\82ªã\83\97ã\83\86ã\82£ã\83\9eã\82¤ã\82¶ã\81¯å\8f¯è\83½ã\81ªé\99\90ã\82\8aã\82\88ã\81\84å®\9fè¡\8cè¨\88ç\94»ã\82\92ä½\9cæ\88\90ã\81\97ã\82\88ã\81\86ã\81¨ã\81\97ã\81¾ã\81\99ã\81\8cã\80\81カラム間の相関関係などは考慮しないため、複雑なクエリでは常に最適なプランを選択するとは限りません。</p>
+<p>PostgreSQLã\81®ã\83\97ã\83©ã\83³ã\83\8aã\81¯ã\81¯ã\82³ã\82¹ã\83\88ã\83\99ã\83¼ã\82¹ã\81§ã\81®ã\82ªã\83\97ã\83\86ã\82£ã\83\9eã\82¤ã\82ºã\82\92è¡\8cã\81ªã\81£ã\81¦ã\81\8aã\82\8aã\80\81SQLæ\96\87ã\81¨çµ±è¨\88æ\83\85å ±ã\82\92å\85\83ã\81«å\8f¯è\83½ã\81ªå®\9fè¡\8cè¨\88ç\94»ã\81®ã\82³ã\82¹ã\83\88ã\82\92è¦\8bç©\8dã\82\82ã\82\8aã\80\81æ\9c\80ã\82\82ã\82³ã\82¹ã\83\88ã\81®ä½\8eã\81\84å®\9fè¡\8cè¨\88ç\94»ã\82\92é\81¸æ\8a\9eã\81\97ã\81¾ã\81\99ã\80\82ã\83\97ã\83©ã\83³ã\83\8aã\81¯å\8f¯è\83½ã\81ªé\99\90ã\82\8aã\82\88ã\81\84å®\9fè¡\8cè¨\88ç\94»ã\82\92ä½\9cæ\88\90ã\81\97ã\82\88ã\81\86ã\81¨ã\81\97ã\81¾ã\81\99ã\81\8cã\80\81ä¾\8bã\81\88ã\81°カラム間の相関関係などは考慮しないため、複雑なクエリでは常に最適なプランを選択するとは限りません。</p>
<p>pg_hint_planを用いると、ヒントでスキャン方式や結合方式を指定することで、SQL文やGUCパラメータを変更することなく実行計画を制御することができます。</p>
<h2 id="description">機能説明</h2>
...
</pre>
</div>
-
+<h4>結合方向</h4>
+<p>上記の結合順序の指定を行なった際にはプランナの都合により結合方向(外部表/内部表もしくは駆動表/被駆動表の別)が期待とは異なるものになる場合があります。このような状況に対して結合方向を固定したい場合はもうひとつの書式を使う必要があります。</p>
+<pre>
+postgres=# /*+ Leading((t1 (t2 t3))) */ SELECT...
+</pre>
+<p>この書式では2つの要素を丸括弧で囲ったものがネストする形になっており、一つの括弧内では1つ目の要素が外部/駆動表、2番めの要素が内部/被駆動表として結合されます。</p>
<h4>見積もり件数補正</h4>
<p>あるオブジェクトの結合結果の件数を補正できるヒント句のグループです。「Rows」のみを含みます。</p>
<p>見積もり件数補正対象として指定できるオブジェクトは結合方式と同じです。補正できるのは結合結果の見積もり件数だけで、スキャンの見積もり件数を補正することはできません。</p>
<h2 id="requirement">動作環境</h2>
<dl>
<dt>PostgreSQL</dt>
- <dd>バージョン 9.1.4、9.2.1</dd>
-<dt>動作検証済みOS</dt>
- <dd>RHEL 6.1</dd>
+ <dd>バージョン 9.1, 9.2, 9.3, 9.4</dd>
+<dt>動作確認済みOS</dt>
+ <dd>RHEL 6.5</dd>
</dl>
<h2 id="seealso">関連項目</h2>