CUDMode
Specifies whether the provider executes INSERT, UPDATE, UPSERT, and DELETE statements through the Microsoft Dataverse bulk operation messages or through OData batch requests.
Possible Values
Auto, Bulk, BatchData Type
string
Default Value
"Batch"
Remarks
The Microsoft Dataverse bulk operation messages (CreateMultiple, UpdateMultiple, UpsertMultiple, and DeleteMultiple) accept many rows in a single request. Compared to OData $batch requests, they substantially improve throughput for large INSERT, UPDATE, UPSERT, and DELETE workloads. Not every table supports these messages.
You can set this connection property to the following values:
- Auto: For INSERT, UPDATE, UPSERT, and DELETE statements, the driver detects whether the target table supports the bulk operation messages. When the table supports them, batches of rows are submitted through the bulk operation messages in parallel requests. When it does not, batched and multi-row statements fall back to OData $batch requests and single-row statements are executed as standard OData requests.
- Bulk: The driver uses the bulk operation messages for the statements that can carry their rows in a bulk request: INSERT statements, UPSERT statements, and batched UPDATE and DELETE statements. These statements fail with an error when the target table does not support the corresponding bulk operation message. A single UPDATE or DELETE statement that is not part of a batch always executes as a standard OData request, regardless of the value of this property.
- Batch: The driver never uses the bulk operation messages. Batched and multi-row statements are executed through OData $batch requests, and single-row statements are executed as standard OData requests. This value is the default.
Batched and bulk DELETE statements are executed through the DeleteMultiple bulk operation message when the target table supports it. In practice, only elastic tables support the DeleteMultiple message. When this property is set to Auto, batched DELETE statements against standard tables automatically fall back to OData $batch requests; when it is set to Bulk, they fail with an error. A single DELETE statement that is not part of a batch always uses a standard OData delete request, regardless of the value of this property.