• R/O
  • HTTP
  • SSH
  • HTTPS

pg_hint_plan: コミット

firtst release


コミットメタ情報

リビジョンb2d04ea9b90574d89d023947469c88e1b7467a5c (tree)
日時2014-12-19 15:55:10
作者Kyotaro Horiguchi <horiguchi.kyotaro@lab....>
コミッターKyotaro Horiguchi

ログメッセージ

Some fix and addition to the japaneses document.

It lacked the description about joni direction enforcement so added
it. Addition to it, added html language specification and updated
target PostgreSQL versions and OS version.

変更サマリ

差分

--- a/doc/hint_list-ja.html
+++ b/doc/hint_list-ja.html
@@ -10,7 +10,7 @@
1010 </head>
1111
1212 <body>
13-<h1 id="pg_hint_plan">pg_hint_plan 1.1.0</h1>
13+<h1 id="pg_hint_plan">pg_hint_plan 1.1 付録</h1>
1414 <div class="navigation">
1515 <a href="pg_hint_plan-ja.html">pg_hint_plan</a> &gt;
1616 <a href="hint_list-ja.html">Appendix A. ヒント句一覧</a>
@@ -72,7 +72,7 @@ PostgreSQL 9.2以降で動作します。</td></tr>
7272 <td nowrap>Leading(テーブル テーブル[ テーブル...])</td>
7373 <td>指定したテーブルを指定した順番通りに結合します。</td></tr>
7474 <tr><td nowrap>Leading((テーブル集合<Sup>注1</Sup> テーブル集合<Sup>注1</Sup>))</td>
75- <td>1つ目に指定したテーブル集合を外部表として、2つ目に指定したテーブル集合を内部表として結合します。</td></tr>
75+ <td>1つ目に指定したテーブル集合を外部表として、2つ目に指定したテーブル集合を内部表として結合します。書式中のテーブル集合はテーブルもしくは別のテーブル集合です。</td></tr>
7676
7777 <tr><td>見積もり件数補正</td>
7878 <td nowrap>Rows(テーブル テーブル[ テーブル...] 件数補正)</td>
--- a/doc/pg_hint_plan-ja.html
+++ b/doc/pg_hint_plan-ja.html
@@ -1,5 +1,5 @@
11 <!DOCTYPE HTML PUBLIC "-//W3C//DTD html 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2-<html>
2+<html lang="ja">
33 <head>
44 <title>pg_hint_plan</title>
55 <!-- Uncoment after the tool has been hosted somewhere.
@@ -33,7 +33,7 @@
3333 <p>pg_hint_plan -- 実行計画を示すヒントをクエリに指定することで、SQL文やGUCパラメータを変えずに実行計画を制御します。</p>
3434
3535 <h2 id="synopsis">概要</h2>
36-<p>PostgreSQLはコストベースオプティマイザを採用しており、SQL文と統計情報を元に可能な実行計画のコストを見積もり、最もコストの低い実行計画を選択します。オプティマイザは可能な限りよい実行計画を作成しようとしますが、カラム間の相関関係などは考慮しないため、複雑なクエリでは常に最適なプランを選択するとは限りません。</p>
36+<p>PostgreSQLのプランナははコストベースでのオプティマイズを行なっており、SQL文と統計情報を元に可能な実行計画のコストを見積もり、最もコストの低い実行計画を選択します。プランナは可能な限りよい実行計画を作成しようとしますが、例えばカラム間の相関関係などは考慮しないため、複雑なクエリでは常に最適なプランを選択するとは限りません。</p>
3737 <p>pg_hint_planを用いると、ヒントでスキャン方式や結合方式を指定することで、SQL文やGUCパラメータを変更することなく実行計画を制御することができます。</p>
3838
3939 <h2 id="description">機能説明</h2>
@@ -272,7 +272,12 @@ postgres-# JOIN table table3 t3 ON (t2.key = t3.key);
272272 ...
273273 </pre>
274274 </div>
275-
275+<h4>結合方向</h4>
276+<p>上記の結合順序の指定を行なった際にはプランナの都合により結合方向(外部表/内部表もしくは駆動表/被駆動表の別)が期待とは異なるものになる場合があります。このような状況に対して結合方向を固定したい場合はもうひとつの書式を使う必要があります。</p>
277+<pre>
278+postgres=# /*+ Leading((t1 (t2 t3))) */ SELECT...
279+</pre>
280+<p>この書式では2つの要素を丸括弧で囲ったものがネストする形になっており、一つの括弧内では1つ目の要素が外部/駆動表、2番めの要素が内部/被駆動表として結合されます。</p>
276281 <h4>見積もり件数補正</h4>
277282 <p>あるオブジェクトの結合結果の件数を補正できるヒント句のグループです。「Rows」のみを含みます。</p>
278283 <p>見積もり件数補正対象として指定できるオブジェクトは結合方式と同じです。補正できるのは結合結果の見積もり件数だけで、スキャンの見積もり件数を補正することはできません。</p>
@@ -677,9 +682,9 @@ postgres=#
677682 <h2 id="requirement">動作環境</h2>
678683 <dl>
679684 <dt>PostgreSQL</dt>
680- <dd>バージョン 9.1.4、9.2.1</dd>
681-<dt>動作検証済みOS</dt>
682- <dd>RHEL 6.1</dd>
685+ <dd>バージョン 9.1, 9.2, 9.3, 9.4</dd>
686+<dt>動作確認済みOS</dt>
687+ <dd>RHEL 6.5</dd>
683688 </dl>
684689
685690 <h2 id="seealso">関連項目</h2>
旧リポジトリブラウザで表示