[pgsql-jp: 40560] Re: 処理時間が極端に変わることはありえますか?

Itagaki Takahiro itagaki.takahiro @ gmail.com
2010年 11月 25日 (木) 20:21:11 JST


2010/11/24 額田 正一郎 <kyu-0705 @ pstc.jp.panasonic.com>:
> そこで気になっていることが、OracleでINDEXヒント等でINDEX検索のキーを
> 絞り込んだりしているので、走行計画は一定した動作をしていると思っております、
> PostgerSQLの場合、走行計画が変わってしまい処理時間が極端に遅くなると言うことが
> 起こりえるのか?

プランの変更により、処理時間が遅くなることは、確かにあり得ます。
# ただ、同じケースで、速くなる場合もあることはお忘れなく。


プランを強制したい / 固定したいのであれば、一般的には
http://www.postgresql.jp/document/current/html/runtime-config-query.html
あたりのパラメータに関して、環境に合わせてチューニングしたり、
SQL単位で on/off 切り替えるのが、良く使われる方法です。

他に、SQLを小分けに書き換えて、明示的に処理順を指定する
場合もあります。このケースでは、WITH やサブクエリも利用されます。

また、確実ではありませんが、良い感じのプランになったら、
それ以降は ANALYZE しない (autoanalyze も止める) ような運用も
あるかもしれません。(もちろん VACUUM は止めてはダメですが。)


# ちなみに、ヒント機能は下記の「いらないモノ」リストに入っているので、
# 新機能として追加される可能性は、残念ながらほぼゼロです。
# http://wiki.postgresql.org/wiki/Todo#Features_We_Do_Not_Want

-- 
Itagaki Takahiro


pgsql-jp メーリングリストの案内