[pgsql-jp: 40362] ODBCドライバの設定についてわかりません

toshihideka4316 @ zenrin.co.jp toshihideka4316 @ zenrin.co.jp
2010年 9月 3日 (金) 17:10:17 JST


こんにちは。片山と申します。

「エラー時のロールバック発行」という項目があるのですが、これらの違いがわから
ないので教えていただけないでしょうか。

具体的に困っていること経緯については以下の通りです。
現在サーバ、クライアント共にPostgreSQL8.2.4を使用しており、ODBCドライバ
(ver8.2.4)の設定項目「エラー時のロールバック発行」を「無し」を指定した場合、
サーバのメモリ不足が発生しました。
原因調査を進める上でODBCドライバのログを見ましたところ、insert文ごとに
savepointが発行されており、これがメモリ不足の原因であると考えています。

メモリ不足になるAP使用時におけるODBCドライバの設定項目「エラー時のロールバッ
ク発行」を「全キャンセル」に変更したところ、以下のようにサーバメモリ使用量、
実行時間共に改善されました。
■サーバメモリ使用量
7.4:実メモリ450MB 仮想メモリ550MB
↓  ↓  ↓
7.4-1:実メモリ17MB 仮想メモリ150MB
(大幅低下)

■実行時間
7.4:22分8秒
↓  ↓  ↓
7.4-1:17分31秒
(3割減少)

この結果により、このAPについてはODBCの設定項目(「エラー時のロールバック発
行」)を「全キャンセル」に設定することで解決しそうですが、全体的なパフォーマ
ンス改善の為システム全体的に変更したいと考えています。
しかし設定項目の「無し」と「全キャンセル」の違いがわからない為、システム全体
の動作確認観点がつかめない状況です。(システム規模が大きい為全機能を動作検証
するのは非常に困難な状況です)
そこでODBCドライバの設定項目「エラー時のロールバック発行」における設定の違い
について何か情報等ご存知でしたら教えていただけないでしょうか。

よろしくお願いいたします。

片山 年秀




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