[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 メーリングリストの案内