[pgsql-jp: 38729] Re: ソートとインデックスの関係

ITAGAKI Takahiro itagaki.takahiro @ oss.ntt.co.jp
2007年 9月 4日 (火) 19:12:24 JST


板垣です。

"YAMANEKO/Mao" <yneko2 @ yamamaya.com> wrote:

> 諸般の事情でいまだに、PostgreSQL 7.4.7を使っているのですが・・・
> クエリプランナーをうまく手なずけられず、困っています。
> 強制的に、
>   set enable_seqscan to false
> を設定すると、両クエリともインデックススキャンになって、
> 十倍以上高速になるのですが・・・

enable_seqscan on/off の場合それぞれで、
実行プラン (EXPLAIN SELECT ...) は、どのように変わるでしょうか?
双方のプランで、cost にそれほどの差がないようならば、
パラメータチューニングで救えるかもしれません。

"effective_cache_size" にメモリの半分程度の値を設定し、
さらに "random_page_cost" を 2〜3 程度まで減らしてみてください。
また、もしデータベース全体がメモリに乗り切ってしまうようなサイズならば、
"cpu_*_cost" を大きく (初期値の10倍程度) まで増やしても良いかもしれません。

# プランナは、キャッシュヒット率を悲観的に見積もってプランを立てるようです。




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