[pgsql-jp: 40548] Re: トランザクションの結果反映遅延についてご質問
toshihideka4316 @ zenrin.co.jp
toshihideka4316 @ zenrin.co.jp
2010年 11月 19日 (金) 13:46:12 JST
片山です。
> > ■トランザクションの結果反映に遅延が生じるパターン
> > 処理前レコードのフィールドの値を「テスト」とすると
> > 1)接続、トランザクション開始
> > 2)Update文を発行してレコードを変更(「テスト」⇒「テスト2」)
> > 3)select文にて大容量のデータを取得した結果「out of memory」となった
> > 4)コミット
> > 5)接続の切断
> > 6)切断直後に別接続でSelect文を発行⇒update、コミットされたが結果レ
コード
> > は「テスト」(更新内容が反映されていない)
> > 7)約1分後のSelect文で更新内容が反映された⇒結果レコード「テスト2」⇒
トラ
> > ンザクションの結果が遅延して反映されている
> > #5)にて接続を切断しない場合、20分後のselect文でもトランザクションの結果
が反
> > 映されない
> > (selectしても結果は「テスト」のまま)
> これらすべて(6,7の再接続後の確認含む)、APから行っているのでしょうか?
> それともAPとは違う、例えばpsqlで別ターミナルから直接確認しているのでしょ
> うか?
6,7については別接続でupdate等を行ったAPからの確認ではなく黒猫SQLstdioという
SQLコンソールソフトを使用しております。
↓
黒猫SQLstdioのページ
<http://kuronekosoft.ewinds.net/sqlstudio.aspx>
> # 確認はSELECTで1レコード程度みるだけにしてください。
> #ここでOutOfmemory起こしては元も子もないので。
2)で試しにupdateを行っているのは1レコードのみなので、確認も1レコードのみ取得
するSQLを使用しています。
以上です。
pgsql-jp メーリングリストの案内