firtst release
Revision | 5e5bbe20d193342077c24730d7a0358600f23dd9 (tree) |
---|---|
Time | 2014-01-24 11:21:46 |
Author | Takashi Suzuki <suzuki.takashi@metr...> |
Commiter | Takashi Suzuki |
マニュアルにRowsヒント句の仕様の一部と具体例を挿入した。
記入内容
・Rowsヒント句の補正の件数や倍率をstrtodで補正していること。
理由
・16進数でも指定可能なため。
@@ -83,6 +83,7 @@ PostgreSQL 9.2以降で動作します。</td></tr> | ||
83 | 83 | <dt>-件数</dt><dd>指定した件数を本来の見積もり件数から減算します。</dd> |
84 | 84 | <dt>*倍率</dt><dd>本来の見積もり件数を指定した倍率に補正します。「*2」とすると見積もり件数が2倍になり、「*0.01」とすると見積もり件数が1/100になります。</dd> |
85 | 85 | </dl></p> |
86 | +なお、指定された件数や倍率をpg_hint_plan内部でパースするときにstrtod()を使用しています。 | |
86 | 87 | </td></tr> |
87 | 88 | |
88 | 89 | <tr><td>GUCパラメータ</td> |
@@ -276,6 +276,24 @@ postgres-# JOIN table table3 t3 ON (t2.key = t3.key); | ||
276 | 276 | <h4>見積もり件数補正</h4> |
277 | 277 | <p>あるオブジェクトの結合結果の件数を補正できるヒント句のグループです。「Rows」のみを含みます。</p> |
278 | 278 | <p>見積もり件数補正対象として指定できるオブジェクトは結合方式と同じです。補正できるのは結合結果の見積もり件数だけで、スキャンの見積もり件数を補正することはできません。</p> |
279 | +<p>以下の例では、テーブルaとテーブルbの結合結果の件数を、ヒント句で指定した値に補正しています。</p> | |
280 | +<pre> | |
281 | +postgres=# /*+ Rows(a b #10) */ | |
282 | +postgres-# EXPLAIN SELECT * | |
283 | +postgres-# FROM pgbench_branches b | |
284 | +postgres-# JOIN pgbench_accounts a ON b.bid = a.bid | |
285 | +postgres-# WHERE aid < 20 | |
286 | +postgres-# ORDER BY a.aid; | |
287 | + QUERY PLAN | |
288 | +-------------------------------------------------------------------------------------------------------- | |
289 | + Nested Loop (cost=0.29..9.92 rows=<span class="strong">10</span> width=461) | |
290 | + Join Filter: (b.bid = a.bid) | |
291 | + -> Index Scan using pgbench_accounts_pkey on pgbench_accounts a (cost=0.29. .8.62 rows=19 width=97) | |
292 | + Index Cond: (aid < 20) | |
293 | + -> Materialize (cost=0.00..1.01 rows=1 width=364) | |
294 | + -> Seq Scan on pgbench_branches b (cost=0.00..1.01 rows=1 width=364) | |
295 | +(6 行) | |
296 | +</pre> | |
279 | 297 | |
280 | 298 | <h4>GUCパラメータ</h4> |
281 | 299 | <p>そのクエリの実行計画を作成している間だけGUCパラメータを変更できるヒント句のグループです。「Set」のみを含みます。</p> |