17.1.3.1 BatchSize
このプロパティは、バッチとしてデータベースに送信される行数を指定します。
宣言
// C# public int BatchSize {get; set;}
プロパティ値
バッチとしてデータベースに送信される行数の整数値。
例外
ArgumentOutOfRangeException
- バッチ・サイズがゼロ未満です。
備考
デフォルト値はゼロで、複数のバッチでは行はデータベースに送信されないことを示します。行セット全体が1回のバッチで送信されます。
バッチ・サイズを大きくすると、データベース・ラウンドトリップは減少しますが、クライアント側のメモリーの消費量も大きくなります。メモリーを消費しすぎると、マシン全体のパフォーマンスが低下し、アクセス可能なメモリーが処理中に不足してエラーになる場合もあります。クライアント側のメモリーを過剰に消費しないように注意してください。これはバッチ・サイズを小さくして回避できます。
バッチは、BatchSize
の行数が処理されるか、データベースに送信する行がなくなると完了します。
-
BatchSize
>
0
で、UseInternalTransaction
一括コピー・オプションが指定されていると、各一括コピー操作のバッチがトランザクション内に発生します。一括コピー操作の実行に使用される接続がすでにトランザクションの一部である場合、InvalidOperationException
例外が発生します。 -
BatchSize
>
0
でUseInternalTransaction
オプションが指定されていない場合は、行はサイズBatchSize
の複数のバッチではデータベースに送信されませんが、トランザクション関連のアクションは実行されません。
BatchSize
プロパティの設定はいつでも可能です。一括コピーがすでに実行中である場合、現在のバッチ・サイズは前のバッチ・サイズによって決定されます。後続のバッチには新規のバッチ・サイズが使用されます。
BatchSize
プロパティが最初はゼロで、WriteToServer
操作の実行中に変更された場合、その操作は単一バッチとしてデータにロードされます。同じOracleBulkCopy
インスタンス上で実行される次回以降のWriteToServer
操作では、新規のBatchSize
が使用されます。