OData - best practices and troubleshooting
Get the most out of your OData client with these best practices and troubleshooting tips.
Performance
The performance of the OData services depends on the type of data you access. For example, reading 1M data points takes about 2:30 to 3:00 minutes (6K data points per second). Each full request takes an average of 120 ms, and the OData client might add additional overhead for processing and data handling.
Follow these general best practices to make sure you get the best and most reliable performance:
- Don't use
OR
expressions or expanding tables. - Use multiple queries when possible.
- Use incremental refresh.
- Partition data sets if possible.
- Keep only the data you need. Remove unnecessary columns and data.
- Keep historical data in a separate report if you don't need it daily. Refresh the historical data report when you need it.
Write performant queries
The OData services accept multiple concurrent requests, and processes the requests in parallel. OData clients can also dispatch multiple queries concurrently when possible.
It's better to compose and use multiple queries instead of a single complex query with, for example, OR
expressions or expands. A single complex query must be iterated sequentially with the added round-trip latency for each request.
Download the data using multiple queries and join the resulting tables in your OData client to work with the tables as if they were a single table.
Use incremental refresh
Incremental refresh enables large datasets with the following benefits:
- Only changed data needs to be refreshed.
- You don't have to maintain long-running connections to source systems.
- Less data to refresh reduces the overall consumption of memory and other resources.
Each OData client might have different incremental refresh features. For Microsoft Power BI, see Incremental refresh for semantic models in Power BI.