[pgsql-jp: 41055] Re: PostgreSQL 9.1.2 でSql が遅くなることがある

MauMau maumau307 @ gmail.com
2012年 2月 22日 (水) 22:36:29 JST


Mame24さん


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バッファが性能劣化の原因ではないと思われます。

数時間かかるようになったSQL文は、8.4ではどのくらいの時間で終了していたのでしょうか。
何十倍もの時間がかかるのであれば、EXPLAIN ANALYZEやcontrib/auto_explainで
問合わせ計画を見てみるのがよいでしょう。
もしかすると、統計情報が正しくないために、インデックスが使われていないことも考えられます。
マニュアルの次の部分に記されているように、アップグレード後には、
ANALYZEやVACUUM ANALYZEで統計情報を収集する必要があります。

14.4.9. pg_dumpに関するいくつかの注意
http://www.postgresql.jp/document/pg910doc/html/populate.html#POPULATE-ANALYZE

pg_upgrade
http://www.postgresql.jp/document/pg910doc/html/pgupgrade.html


以上です。

----- Original Message ----- 
From: "Mane24" <mane24jp @ yahoo.co.jp>
To: "PostgreSQL Japanese Mailing List" <pgsql-jp @ ml.postgresql.jp>
Sent: Wednesday, February 22, 2012 7:32 PM
Subject: [pgsql-jp: 41054] PostgreSQL 9.1.2 でSql が遅くなることがある


> お世話になります。Mame24 です。
>
>
> PostgreSQL 8.4.2 Windows版(32bit)を
> Windows 2003 で動かしていました。
> Windows 2003 では色々とタスクが動いています。
>
>
> これを、
> PostgreSQL 9.1.2 Windows版(32bit)
> にバージョンアップし、運用させて頂いています。
>
> このアップデート後、Sqlの処理が、たまに数時間
> たっても処理が終わらないものが出ていました。
> ※データ件数及び、処理的にこんなに時間はかからない。
>
> 調べているうちに、wal_buffers で -1 が、以前と異なっ
> ていることがわかりました。
>
> 自動的に算出されることになったようなのですが、
> Windows の場合、この算出はどのようになるのかがわかりません。
>
> 「PostgreSQL 9.1から、wal_buffersはデフォルトでshared_buffers
> の容量の1/32になり・・・。」
>
> 「windowsの場合、代わりオペレーティングシステムのキャッシュを
> 使用するのでshared_buffers は小さめに設定」
>
> このように、shared_buffers は小さめにし、これに関連するものは
> どのように影響があるのでしょうか。
> ※shared_buffers を元に算出しているパラメータが意外とある。



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