Время ожидания запроса и разбиение на страницы

Служба таблиц поддерживает следующие два типа операций запросов.

  • Операция "Таблицы запроса" возвращает список таблиц в указанной учетной записи хранения. Список таблиц может быть отфильтрован согласно критериям, указанным в запросе.

  • Операция Query Entities возвращает набор сущностей из указанной таблицы. Результаты запроса могут быть отфильтрованы согласно критериям, указанным в запросе.

Запрос к службе таблиц может возвратить самое большее 1000 элементов одновременно и выполняться не более 5 секунд. Если результирующий набор содержит более 1000 элементов, если запрос не завершен в течение 5 секунд или если запрос пересекает границу секции, то ответ включает заголовки, которые предоставляют разработчику токены продолжения, чтобы продолжить запрос в следующем элементе результирующего набора. Заголовки маркера продолжения могут возвращаться для операций таблиц запросов или сущностей запроса .

Обратите внимание, что общее время, отводимое запросу на планирование и обработку запроса, составляет 30 секунд, включая 5 секунд для выполнения запроса.

Возможна ситуация, когда запрос не возвращает результатов, но все равно возвращает заголовок продолжения.

Заголовки токенов продолжения показаны в следующей таблице.

Заголовок токена продолжения Описание
x-ms-continuation-NextTableName Этот заголовок возвращается в контексте операции запросов таблиц . Если список возвращенных таблиц неполон, в заголовок токена продолжения включается хэш имени следующей таблицы.
x-ms-continuation-NextPartitionKey Этот заголовок возвращается в контексте операции "Сущности запроса ". Заголовок содержит хэш следующего ключа секции для возврата в последующем запросе к таблице.
x-ms-continuation-NextRowKey Этот заголовок возвращается в контексте операции "Сущности запроса ". Заголовок содержит хэш следующего ключа строки для возврата в последующем запросе к таблице.

Обратите внимание, что в некоторых случаях x-ms-continuation-NextRowKey может принимать значение null.

Чтобы получить токены продолжения и выполнить последующий запрос для получения следующей страницы результатов, сначала следует проверить заголовки ответа на предмет наличия дополнительных токенов. Если заголовков нет или значения заголовков равны null, дополнительные сущности, которые нужно вернуть, отсутствуют.

Примечание

При выполнении последующих запросов, включающих маркеры продолжения, обязательно передайте исходный универсальный код ресурса (URI) в запросе. Например, если вы указали $filterпараметр запроса , $selectили $top как часть исходного запроса, вам потребуется включить этот параметр в последующие запросы. В противном случае последующие запросы могут возвращать непредвиденные результаты.

Обратите внимание, что $top параметр запроса в этом случае указывает максимальное количество результатов на странице, а не максимальное количество результатов во всем наборе ответов.

Дополнительные сведения см. в разделе Запросы к таблицам и сущностям .

Если вы обрабатываете маркеры продолжения вручную с помощью клиентской библиотеки Microsoft .NET, сначала приведите результат операции запроса к объекту QueryOperationResponse . Затем можно получить доступ к заголовкам маркера продолжения в свойствеQueryOperationResponse Headers объекта .

После получения токенов продолжения их значения можно использовать для создания запроса, который должен вернуть следующую страницу результатов. URI запроса может принимать эти параметры, которые соответствуют заголовкам токенов продолжения, возвращенным запросом:

  • NextTableName

  • NextPartitionKey

  • NextRowKey

Примечание

Общее время, отведенное запросу на планирование и обработку запроса, составляет 30 секунд, включая пять секунд на выполнение запроса.

Если операция является операцией вставки, обновления или удаления, возможно, она успешно выполнена на сервере, несмотря на ошибку, возвращенную клиентом. Это может произойти, если время ожидания клиента установлено в значение меньше 30 секунд — максимального времени ожидания для операции вставки, обновления или удаления.

Примеры заголовков ответа и последующего запроса

В следующем примере кода показан набор примеров заголовков ответа от запроса сущности к таблице с именем Customers, в котором были возвращены заголовки продолжения. Возвращаются и x-ms-continuation-NextPartitionKey, и x-ms-continuation-NextRowKey.

Date: Mon, 27 Jun 2016 20:11:08 GMT  
Content-Type: application/json;charset=utf-8  
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0  
Cache-Control: no-cache  
x-ms-request-id: f9b2cd09-4dec-4570-b06d-4fa30179a58e  
x-ms-version: 2015-12-11  
x-ms-continuation-NextPartitionKey: 1!8!U21pdGg-  
x-ms-continuation-NextRowKey: 1!8!QmVuOTk5  
Content-Length: 880298  

Запрос для следующей страницы данных можно построить по образцу следующего URI:

http://myaccount.table.core.windows.net/Customers?NextPartitionKey=1!8!U21pdGg-&NextRowKey=1!12!QmVuMTg5OA--  

См. также:

Адресация ресурсов службы таблиц
Операции с таблицами
Операции с сущностями