FetchSize
このプロパティは、1回のデータベース・ラウンドトリップでフェッチしたデータをプロバイダがキャッシュするために割り当てる合計メモリー・サイズをバイト単位で指定します。これは、結果セット・データを格納するためにOracleDataReader
の内部キャッシュによって使用されます。
宣言
// C# public long FetchSize { get; set;}
プロパティ・タイプ
System.Int64 (long)
例外
InvalidArgument
- 指定された値が0
未満であるか、System.Int64.MaxValue
を超えています。
System.ObjectDisposedException
- OracleConnection
オブジェクトがすでに破棄されている場合は、このプロパティにアクセスできません。
備考
デフォルト値は131072
です。
FetchSize
プロパティは、OracleDataReader
、OracleCommand
、OracleConnection
およびOracleConfiguration
オブジェクトで構成できます。デフォルトでは、OracleConnection
FetchSize
プロパティ値は構成時にOracleConfiguration
FetchSize
プロパティ値を継承し、OracleCommand
FetchSize
プロパティ値は構成時にOracleConnection
FetchSize
プロパティ値を継承し、OracleDataReader
FetchSize
プロパティ値はコマンド実行時にOracleCommand
FetchSize
プロパティ値を継承します。OracleDataReader
FetchSize
の値により、OracleDataReader
がデータベース・ラウンドトリップごとに内部キャッシュにフェッチするデータ量が決定されます。
OracleCommand
XmlCommandType
プロパティがNone
以外の値に設定されている場合、このプロパティは無視されます。
OracleCommand
RowSize
およびOracleCommand
FetchSize
プロパティは、他のスカラー・データ型とは異なる方法でUDT
およびXMLType
データを処理します。ODP.NETの内部キャッシュにはUDT
およびXMLType
データへの参照のみが格納されているため、OracleCommand
RowSize
プロパティは、UDT
およびXMLType
データの実際のサイズではなく、参照に必要なメモリー(非常に少量)のみを算定します。その結果、アプリケーションは1回のデータベース・ラウンドトリップで多数のUDT
またはXMLType
インスタンスをデータベースからフェッチしてしまう可能性があります。これは、UDT
およびXMLType
データの実際のサイズがFetchSize
に対するものではなく、デフォルトのキャッシュ・サイズである131072
バイトを満たすには非常に多くのUDT
およびXMLType
参照が必要になるためです。したがって、UDT
またはXMLType
データをフェッチする際は、フェッチする実際のUDT
およびXMLType
データの量ではなく、フェッチするUDT
およびXMLType
インスタンスの数を制御するように、FetchSize
プロパティを適切に構成する必要があります。
ノート:
LOB
およびLONG
データ型の場合、選択リストの各LOB
のキャッシュによって保持されたメタデータおよび参照情報に加えて、OracleCommand
InitialLOBFetchSize
およびOracleCommand
InitialLONGFetchSize
プロパティで指定されたサイズのみがRowSize
プロパティによって算定されます。