[pgsql-jp: 40517] ご質問m(_ _)m

額田 正一郎 kyu-0705 @ pstc.jp.panasonic.com
2010年 11月 8日 (月) 19:45:56 JST


はじめましてm(_ _)m

Oracle ⇒ PostgreSQLへの移行準備で
検証作業を行っております。
PostgreSQLの環境設定まわりに
知識が皆無の為、困っております。

どうか、お力添えの程お願いいたします。

検証中のJavaプログラムにて更新画面の表示にやたらと
時間(約10〜15秒)がかかります。
Oracle環境では約2〜3秒で表示されます。

実際プログラムでは更新画面を表示するまでに
下記、回数のDBアクセスを行っております。
(情報量によってことなりますが)
  SELECTで15〜20回程
  UPDATEで1回〜3回程、
  INSERTで2回程

Javaで遅いのか、PostgreSQLで遅いのかの調査を行ったところ
どうも、PostgreSQLのSELECTの解析(パース)にて時間がかかっている
ことがわかりました。

  平均で500ミリ秒程度
  バインド、実行には殆ど時間を要していません。
  (0.10〜0.80ミリ秒)

SELECTの解析(パース)に時間がかかると言うことはSQL文の
構成がまずいと言うことになるのでしょうか?
(SQL文はOracle環境で動作していたものを
 PostgreSQLで動作する様に修正をかけたもの)

もし、環境設定等で対応することは可能なのでしょうか?

【検証環境】
  OS :WindowsXP (SP3)
  CPU:Inter(R) Core(TM)2 1.57GHz
  RAM:0.97GB
  使用言語:Java(JDBC)、JDK1.4.2
  PostgreSQL Ver9.0.1(Windows版)

【PostgreSQL環境変更点】
  shared_buffers = 32MB ⇒ 128MB
  work_mem = 1MB ⇒ 8MB
  temp_buffers = 8MB ⇒ 16MB
  以上3箇所のみ

【テーブル構成】
  詳細には記述できませんが
   最大レコード長     ・・ 18,863バイト(列数:108)
   最大インデックス数 ・・ 98個
  と言ったテーブルがあります。




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