Если я попробую это:
( RowKey ge '1606780800000' )
Я получаю результаты обратно в одну секунду.
Но если я попробую с AND
, все еще используя RowKey следующим образом:
( RowKey ge '1606780800000' and RowKey le '1606784400000' )
Постоянно загружается.
Я знаю, что с ИЛИ он выполнит полное сканирование, но так ли это в случае с AND
? Есть ли способ обойти это?
@IvanYang Я имею в виду, что он продолжает ждать результатов, но, поскольку данных для сканирования слишком много, они остаются там «навсегда». Через полчаса я просто сдаюсь.
Если просто использовать оператор 2 RowKeys with AND
(без PartitionKey), он выполнит сканирование таблицы.
Вот некоторые предложения:
1. Вы можете использовать запрос диапазона, если это возможно. Затем вы можете указать фильтр, например $filter=PartitionKey eq 'xxx' and RowKey ge '1606780800000' and RowKey le '1606784400000'
. Но вам нужно написать более одного запроса, если их больше, чем PartitionKeys.
2.Если вы все еще используете этот запрос: ( RowKey ge '1606780800000' and RowKey le '1606784400000' )
. В настоящее время, если requested items
превышает 1000, запрос может одновременно возвращать не более 1000 элементов. Поэтому в этом случае вы должны использовать x-ms-continuation-NextPartitionKey
и x-ms-continuation-NextRowKey
в своем запросе. См. этот документ для более подробной информации.
Я собираюсь принять это как ответ, потому что он отвечает на мой вопрос, выполняет ли он сканирование таблицы или нет. Теперь я знаю, и это объясняет, почему это занимает так много времени. Кроме того, ваши предложения могут помочь другим. В моем конкретном случае не помогает, потому что это было бы непрактично. Мне пришлось бы выполнить запрос около 12000 раз, чтобы охватить все возможные PartitionKey. Поскольку период, который я хотел запросить, является недавним, я просто извлек все строки с определенного дня, а затем программно отбросил строки, которые мне не нужны.
сколько результатов должно быть возвращено? Что касается «Он загружается вечно», вы имеете в виду, что результаты не возвращаются?