Tempo limite e paginação de consulta

O serviço Tabela oferece suporte aos seguintes dois tipos de operações de consulta:

  • A operação Tabelas de Consultas retorna a lista de tabelas dentro da conta de armazenamento especificada. A lista de tabelas pode ser filtrada de acordo com os critérios especificados na solicitação.

  • A operação Entidades de Consulta retorna um conjunto de entidades da tabela especificada. Os resultados da consulta podem ser filtrados de acordo com os critérios especificados na solicitação.

Uma consulta no serviço Tabela pode retornar, no máximo, 1.000 itens simultaneamente e pode ser executada por até cinco segundos. Se o conjunto de resultados contiver mais de 1.000 itens, se a consulta não foi concluída dentro de cinco segundos ou se a consulta ultrapassar o limite da partição, a resposta incluirá os cabeçalhos que fornecem ao desenvolvedor os tokens de acompanhamento a serem usados para retomar a consulta no próximo item no conjunto de resultados. Cabeçalhos de token de continuação podem ser retornados para uma operação tabelas de consulta ou uma operação entidades de consulta.

Observe que o tempo total distribuído à solicitação para agendar e processar a consulta é de 30 segundos, incluindo os cinco segundos para a execução da consulta.

É possível que uma consulta não retorne nenhum resultado, mas ainda retorne um cabeçalho de acompanhamento.

Os cabeçalhos de tokens de acompanhamento são mostrados na tabela a seguir.

Cabeçalho do token de acompanhamento Descrição
x-ms-continuation-NextTableName Esse cabeçalho é retornado no contexto de uma operação tabelas de consulta. Se a lista de tabelas retornadas não estiver completa, um hash do nome da tabela seguinte na lista será incluído no cabeçalho do token de acompanhamento.
x-ms-continuation-NextPartitionKey Esse cabeçalho é retornado no contexto de uma operação entidades de consulta. O cabeçalho contém um hash da próxima chave da partição a ser retornada em uma consulta subsequente na tabela.
x-ms-continuation-NextRowKey Esse cabeçalho é retornado no contexto de uma operação entidades de consulta. O cabeçalho contém um hash da próxima chave de linha a ser retornada em uma consulta subsequente na tabela.

Observe que, em algumas instâncias, x-ms-continuation-NextRowKey pode ser null.

Para recuperar os tokens de acompanhamento e executar uma consulta subsequente para retornar a próxima página de resultados, primeiro inspecione os cabeçalhos de resposta para tokens de acompanhamento. Se não houver nenhum cabeçalho ou os valores de cabeçalho forem null, não haverá nenhuma entidade adicional a ser retornada.

Observação

Ao fazer solicitações subsequentes que incluem tokens de continuação, não deixe de passar o URI original na solicitação. Por exemplo, se você tiver especificado uma $filteropção de consulta , $selectou $top como parte da solicitação original, você desejará incluir essa opção em solicitações subsequentes. Caso contrário, suas solicitações subsequentes poderão retornar resultados inesperados.

Observe que a opção $top de consulta nesse caso especifica o número máximo de resultados por página, não o número máximo de resultados em todo o conjunto de respostas.

Consulte Consultando tabelas e entidades para obter mais detalhes.

Se você estiver manipulando tokens de continuação manualmente usando a Biblioteca de Clientes do Microsoft .NET, primeiro converta o resultado da operação de consulta em um objeto QueryOperationResponse . Em seguida, você pode acessar os cabeçalhos de token de continuação na propriedade Headers do QueryOperationResponse objeto .

Depois que recuperar os tokens de acompanhamento, use seus valores para construir uma consulta para retornar a próxima página de resultados. Um URI de solicitação de consulta pode usar esses parâmetros, que correspondem aos cabeçalhos de tokens de acompanhamento retornados com a resposta:

  • NextTableName

  • NextPartitionKey

  • NextRowKey

Observação

O tempo total alocado para a solicitação de agendamento e processamento de uma consulta é de 30 segundos, incluindo cinco segundos para execução da consulta.

Se a operação for uma operação de inserção, atualização ou exclusão, a operação poderá ter sido bem-sucedida no servidor, apesar de um erro ter sido retornado pelo cliente. Isso poderá ocorrer quando o tempo limite do cliente for definido como menos de 30 segundos, que é o tempo limite máximo para uma operação de inserção, atualização ou exclusão.

Exemplos de cabeçalhos de resposta e solicitação subsequente

O exemplo de código a seguir mostra um conjunto exemplos de cabeçalhos de resposta de uma consulta de entidade em uma tabela denominada Clientes que retorna os cabeçalhos de acompanhamento. x-ms-continuation-NextPartitionKey e x-ms-continuation-NextRowKey são retornados.

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  

A solicitação para a próxima página de dados pode ser criada como o seguinte URI:

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

Consulte Também

Endereçando recursos de serviço de tabela
Operações em tabelas
Operações em entidades