2010年11月10日

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

2010/11/9 額田 正一郎 <kyu-0705@xxxxx>:
> 実際、Javaソースで該当する場合を「PreparedStatement」に書換えを行い
> 実施しましたが然程効果がでませんでした。(;_;)
> 約2?3秒程度は、速くなりましたがまだ10秒前後はかかってしまいます。

勘違いしているような気がするんですが、PreparedStatement は
パースを高速化する機能ではなく、パースの結果をキャッシュし、
2回目以降のパースをスキップするためのものです。そのため、

似たようなクエリを複数回使うようなパターンでないと効果がありません。
また、JDBC のデフォルトだと5回以上使ったクエリだけ
PREPARE するので、パラメータを調整する必要があるかもしれません。

ところで、それにしてもパースだけで 500ms というのは、めったに
無いほど遅いです。何か特殊なスキーマ構成をしているのでしょうか?
……と思ったら、最初のメールに少し気になることがありました。

> 最大インデックス数 ・・ 98個

もし1つのテーブルに98個もインデックスがあるならば、本件との
関係が疑えます。使われないインデックスを間引くと速くなるかも
しれません。その他、テーブル数(特にSQL中のテーブル数や
継承テーブル数)や、SQLの文字数など、何か特徴的な使い方があれば
そこから解析できるかもしれません。

--
Itagaki Takahiro

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




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