OData performance improvements

Note

These release notes describe functionality that may not have been released yet. To see when this functionality is planned to release, please review What's new and planned for Dynamics 365 Business Central. Delivery timelines and projected functionality may change or may not ship (see Microsoft policy).

Looking at telemetry, we realized that our OData stack in Business Central server was not performing optimally. First of all, OData's $top query option was not passed on to the TOP clause in SQL Server queries, which meant that the database did not benefit from the $top query option. Second, we noticed that many OData queries in total returned many more rows than the default 1,000 rows defined in the Business Central server OData stack. Therefore, we have changed the default number of rows to 20,000.

OData resource constraints

From telemetry, we also noticed that a few tenants used more than a fair amount of resources on the Business Central clusters. Therefore, we have implemented settings in the Business Central server OData stack to limit the amount of concurrent calls to OData on a server and also control per-tenant governance of resources used.

The following new server settings have been added:

ODataServicesOperationTimeout Specifies the maximum amount of time that the server instance can allocate to a single OData request.
ODataMaxConnections Specifies the maximum number of simultaneous OData requests on the server instance (for all tenants).
ODataMaxConnectionsPerTenant Specifies the maximum number of simultaneous OData requests per tenant.

Tell us what you think

Help us improve Dynamics 365 Business Central by discussing ideas, providing suggestions, and giving feedback. Use the Business Central forum at https://aka.ms/businesscentralideas.