2010年11月 9日

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

お世話になります。m(_ _)m

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

>パースが遅いのであれば、PreparedStatement を使ってみてください。
>Oracle はデータベース側で自動的にSQL文をキャッシュする機能がありますが、

>PostgreSQL ではちゃんと使うように指示しないとキャッシュしてくれません。

大変、参考にさせていただきました。
実際、Javaソースで該当する場合を「PreparedStatement」に書換えを行い
実施しましたが然程効果がでませんでした。(;_;)
約2〜3秒程度は、速くなりましたがまだ10秒前後はかかってしまいます。
実施の際は、VACUUM/REINDEX等も行ってみたのですが・・・(;_;)

ログを確認したところやはりまだ、SELECT文の解析(パース)にて時間を要しております。

--ログの一部--
450.000 ミリ秒 解析S_1197 : select * from T_XXXXXX_TBL where CODE = $1 and NO = $2
435.000 ミリ秒 解析S_707 : select * from T_XXXXXX_TBL where CODE = $1
403.000 ミリ秒 解析S_1207 : select * from T_XXXXXX_TBL where CODE = $1
387.000 ミリ秒 解析S_1213 : select * from T_XXXXXX_TBL where CODE = $1
388.000 ミリ秒 解析S_717 : select * from T_XXXXXX_TBL where CODE = $1 for update
419.000 ミリ秒 解析S_719 : select * from T_XXXXXX_TBL where CODE = $1 for update
--ログの一部--

このような積み重ねで・・・思ったパフォーマンスを出せません。
やはり、SQL文の見直しやテーブル/インデックスの見直しを行うべきなのでしょうか?
はたまま、環境設定等でどうにかなるのか?
プランナメソッド設定/プランナコスト定数/遺伝的問い合わせオプティマイザ等の
 設定などを変更することで若干でも速くなることなどがあるのでしょうか?

>--
>Itagaki Takahiro


投稿者 xml-rpc : 2010年11月 9日 23:49
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/99996
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。