Enterprise Postgresで、.NETアプリケーションを実行したときのメモリ不足例外について

Enterprise Postgres の技術情報はこちら

Enterprise Postgresで、.NETアプリケーションを実行したところ、System.OutOfMemoryExceptionという例外が発生しました。原因と対処方法を教えてください。
[原因]
以下が原因の可能性があります。
  • バイナリ列データ型やその他の大きなデータ構造のテーブルに対して、ExecuteReader()を実行している
  • データベースへの接続文字列で、PreloadReader=trueを指定している
上記の実行や指定は、結果セット全体のデータをメモリに保持します。そのため、大量のメモリを消費し、メモリ不足になった可能性があります。

[対処方法]
以下の変更ができないか検討してください。
  • ExecuteReader()をExecuteReader(CommandBehavior.SequentialAccess)に変更する
  • PreloadReader=Trueを、PreloadReader=Falseに変更する

ExecuteReader(CommandBehavior.SequentialAccess)の詳細は、"Microsoft Docs"の".NETのドキュメント"で、"CommandBehavior 列挙型"を参照してください。

PreloadReaderの詳細は以下のマニュアルを参照してください。
 FUJITSU Software Enterprise Postgres 9.6
  アプリケーション開発ガイド
   第4章 .NET Data Provider
    4.3 データベースへの接続
     4.3.4 接続文字列

なお、上記以外の製品バージョン/レベルについては、該当するマニュアル箇所を参照してください。
製品・サービス区分 Enterprise Postgres
製品・サービス情報
バージョン9.5,9.6
プラットフォームWindows,Solaris,Linux
アンサー種別 設計/開発
このページの先頭へ