Optimise retrieving of multiple entities across partitions
If I request multiple entities, for example with the filter
(PartitionKey=1 AND RowKey=2) OR (PartitionKey=3 AND RowKey=4)
then a full table scan is performed. Of course, it's more performant to make two queries for fast access to the specific records, but when the client is miles away, perhaps on a mobile device, the extra network traffic for two requests is itself problematic. I'd like the API to internalise the need to split this request into two, retrieve the two entities, then combine them into a single response rather than performing a full table scan. This would provide the best performance combination for both table access and network traffic.
Graham Bunce commented
Under review since 2015. Any chance of this being improved before the heat death of the universe? Especially since this is a killer for cross-partition queries.
My example, (PK = z or PK =y OR PK = z) and RK = 123 is so slow it must be performing a table scan.
It's my understanding that if you perform an OR query using both partition and row keys as you described the indexs are used to retrieve the data and there is no table scan.
However if one of the partition keys is stored on a different server then you'll get a continuation token returned which you will need to traverse to get the rest of the data requested.
If this is the case are you requesting that azure queries traverse the continuation for us automatically?