Skip to content

Commit 8da76f7

Browse files
authored
Update performance-tips-query-sdk.md
added note about ODE and continuation tokens
1 parent 01f8960 commit 8da76f7

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

articles/cosmos-db/nosql/performance-tips-query-sdk.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,15 @@ To execute a query, a query plan needs to be built. This in general represents a
2828

2929
Azure Cosmos DB NoSQL has an optimization called Optimistic Direct Execution (ODE), which can improve the efficiency of certain NoSQL queries. Specifically, queries that don’t require distribution include those that can be executed on a single physical partition or that have responses that don't require [pagination](query/pagination.md). Queries that don’t require distribution can confidently skip some processes, such as client-side query plan generation and query rewrite, thereby reducing query latency and RU cost. If you specify the partition key in the request or query itself (or have only one physical partition), and the results of your query don’t require pagination, then ODE can improve your queries.
3030

31-
ODE is now available and enabled by default in the .NET SDK (preview) version 3.35.0-preview and later. When you execute a query and specify a partition key in the request or query itself, or your database has only one physical partition, your query execution can leverage the benefits of ODE. To disable ODE, set the flag `EnableOptimisticDirectExecution` to false in your QueryRequestOptions object.
31+
ODE is now available and enabled by default in the .NET SDK (preview) version 3.35.0-preview and later. When you execute a query and specify a partition key in the request or query itself, or your database has only one physical partition, your query execution can leverage the benefits of ODE.
32+
33+
>[!NOTE]
34+
> Using ODE can potentially cause a new type of continuation token to be generated. Such a token is not recognized by the older SDKs by design and this could result in a Malformed Continuation Token Exception. If you have a scenario where tokens generated from the newer SDKs are used by an older SDK, we recommend a 2 step approach to upgrade:
35+
>
36+
>- Upgrade to the new SDK and disable ODE, both together as part of a single deployment. Wait for all nodes to upgrade.
37+
> - In order to disable ODE, set EnableOptimisticDirectExecution to false in the QueryRequestOptions.
38+
>- Enable ODE as part of second deployment for all nodes.
39+
3240

3341
Single partition queries that feature GROUP BY, ORDER BY, DISTINCT, and aggregation functions (like sum, mean, min, and max) can significantly benefit from using ODE. However, in scenarios where the query is targeting multiple partitions or still requires pagination, the latency of the query response and RU cost might be higher than without using ODE. Therefore, when using ODE, we recommend to:
3442
- Specify the partition key in the call or query itself.

0 commit comments

Comments
 (0)