[pgsql-jp: 41056] Re: PostgreSQL 9.1.2 でSql が遅くなることがある
Mane24
mane24jp @ yahoo.co.jp
2012年 2月 23日 (木) 12:53:51 JST
MauMau さん。ご回答ありがとう御座います。
> wal_buffersのデフォルト値は、9.1から-1になりました。
> 設定値が-1の場合、WALバッファの大きさはshared_buffersの1/32になります。
> ただし、実際のWALバッファの大きさは、
> もしこの計算値が64KBより小さければ64KBに、
> 16MBより大きければ16MBに補正されます。
>
> 9.0以前ではwal_buffersのデフォルト値は64KBです。
> ですので、もし8.4でもwal_buffersを設定していなかったとしたら、
> WALバッファが性能劣化の原因ではないと思われます。
8.4 では、
shared_buffers を、64MB
wal_buffers = 512kB
で設定していました。
9.1 では
shared_buffers を、64MB
wal_buffers = -1
で、計算式より、2MB で設定されていると言うことですね。
以前より、多くのメモリが割り当てられ圧迫していたのでしょうか。
「wal_buffersの値はデフォルトでshared_buffersの容量に応じて自動的
に調整されるようになりました」
となっていたのですが、以前のバージョンのデフォルト値とずいぶん差が
あるのですね。
>
> 数時間かかるようになったSQL文は、8.4ではどのくらいの時間で終了していたの
> でしょうか。
> 何十倍もの時間がかかるのであれば、EXPLAIN ANALYZEやcontrib/auto_explainで
> 問合わせ計画を見てみるのがよいでしょう。
> もしかすると、統計情報が正しくないために、インデックスが使われていないこ
> とも考えられます。
> マニュアルの次の部分に記されているように、アップグレード後には、
> ANALYZEやVACUUM ANALYZEで統計情報を収集する必要があります。
数秒程度で終了していました。
ANALYZEやVACUUM ANALYZEで統計情報を収集 は、タスクで運用開始前に行って
います。
あと、autovacuum は停止してあります。
pgsql-jp メーリングリストの案内