[pgsql-jp: 41639] Re: V8.4 から V9.3 変更時にJDBCアプリがスローダウン

MauMau maumau307 @ gmail.com
2014年 5月 18日 (日) 15:53:00 JST


\\種田さん


MauMauといいます。

From: "Masahide Oida" <MOIDA @ jp.ibm.com>
> 日本IBM 種田と申します
> 異常に遅くなる原因についてDBを64bitにした事が考えられるのですが、
> 問題の切り分け・調査方法について、ご教示頂ければ幸いです

64ビットのSPARCを搭載したSolarisマシンでは、64ビット版のPostgreSQLより32ビット版のほうが速いというのを見たことがあります。
理由は、64ビットのSPARCは、同時に32ビットの2つのCPU命令を実行できるからということです。
これがIntelのCPUでもいえることなのかはわかりません。

しかし、40分と10時間とでは、15倍もの開きがあります。
32ビットと64ビットとの違い以上のものがあるように思います。

このような大きな差を生むものとしては、問い合わせ計画の違いが考えられます。
そこで、32ビットと64ビットのPostgreSQL 9.3それぞれで、
遅いSQLとその問い合わせ計画を比較されてみてはいかがでしょうか。
具体的には、postgresql.confに次を設定します。

shared_preload_libraries = 'auto_explain'
auto_explain.log_min_duration = 0
auto_explain.log_analyze = on
auto_explain.log_verbose = on
auto_explain.log_buffers = on
auto_explain.log_nested_statements = on

これで、実行したすべてのSQL文とその実行時間、問い合わせ計画がサーバログに出力されます。
サーバログを採取するには、たとえばpostgresql.confに次を設定します。

logging_collector = on
log_destination = 'stderr'
log_directory = 'd:\\log'
log_filename = 'postgresql.txt'

ちなみに、PostgreSQL 9.3とは、9.3の最新である9.3.4でしょうか。
また、もし9.3でなくてもよければ、9.2.8をためしてみるのもよいかもしれません。
情報が不確かで申し訳ありませんが、9.3はときどき以前の版に比べて性能の低下が報告されているようだからです。


以上です。



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