[pgsql-jp: 41478] Re: AutoCommitをfalseにするとレスポンスが遅くなる
朝倉 佑貴
asakura.yuuki @ nttcom.co.jp
2013年 7月 26日 (金) 09:53:48 JST
朝倉と申します。
間違っていたらすいません。
FetchSizeの設定が入っているんですよね?
FetchSizeは、AutoCommitがfalseのときだけ、
有効に働きます。
FetchSizeを指定する→CURSORが使われるということで、
cursor_tuple_franctionで指定した割合のレコードを取得するまでの
時間が最短になるように実行計画が選択されます。
これで、CURSORの有効/無効の違いで、AutoCommitの
違いにより実行計画が異なることの説明がつきそうな気が
しますが、いかがでしょうか。
(2013/07/25 20:52), mlus wrote:
> またまた関係ないかもしれませんが・・・・
>
>
>> conn.setAutoCommit(false);
>>
>> String sql = "SELECT COUNT(*) FROM ( SELECT ・・・省略
>>
>> PreparedStatement st = conn.prepareStatement(sql);
>
>> st.setFetchSize(1000);
> これ、なくしてみたらどうですかね?
> // st.setFetchSize(1000);
>
>> st.setObject(1, "00060000");
>> st.setObject(2, "00060000");
>
> あと、
>
> PreparedStatement prepareStatement(String sql,
> int resultSetType,
> int resultSetConcurrency) prepareStatement
>
> こっちのほう使って、一方通行カーソルと、readonly指定 とか・・・。 関係なかったらすいません。
>
>
--
----------------------------------------------------
NTTコムウェア株式会社
品質生産性技術本部 技術SE部
基盤ソフトSE・OSS部門 OSS・DB技術担当
朝倉 佑貴(asakura.yuuki @ nttcom.co.jp)
〒261-0023 千葉県千葉市美浜区中瀬1-6
NTT幕張ビル 21F-EN
TEL:043-211-2318 (内線:26-8239)
----------------------------------------------------
pgsql-jp メーリングリストの案内