Tempo limite e paginação de consultas

O serviço Tabela suporta os dois tipos seguintes de operações de consulta:

  • A operação Tabelas de Consulta devolve a lista de tabelas na conta de armazenamento especificada. A lista de tabelas pode ser filtrada de acordo com os critérios especificados no pedido.

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

Uma consulta no serviço Tabela pode devolver um máximo de 1000 itens de uma só vez e pode ser executada durante um máximo de cinco segundos. Se o conjunto de resultados contiver mais de 1000 itens, se a consulta não tiver sido concluída no prazo de cinco segundos ou se a consulta atravessar o limite de partição, a resposta inclui cabeçalhos que fornecem ao programador tokens de continuação a utilizar para retomar a consulta no item seguinte no conjunto de resultados. Os cabeçalhos de tokens de continuação podem ser devolvidos para uma operação de Tabelas de Consultas ou para uma operação entidades de consulta.

Tenha em atenção que o tempo total atribuído ao pedido de agendamento e processamento da consulta é de 30 segundos, incluindo os cinco segundos para a execução da consulta.

É possível que uma consulta não devolva resultados, mas que continue a devolver um cabeçalho de continuação.

Os cabeçalhos do token de continuação são apresentados na tabela seguinte.

Cabeçalho do token de continuação Description
x-ms-continuation-NextTableName Este cabeçalho é devolvido no contexto de uma operação Tabelas de Consulta . Se a lista de tabelas devolvidas não estiver completa, um Hash do nome da tabela seguinte na lista está incluído no cabeçalho de símbolo de continuação.
x-ms-continuation-NextPartitionKey Este cabeçalho é devolvido no contexto de uma operação Entidades de Consulta . O cabeçalho contém um Hash da próxima chave de partição a ser devolvida numa consulta subsequente contra a mesa.
x-ms-continuation-NextRowKey Este cabeçalho é devolvido no contexto de uma operação Entidades de Consulta . O cabeçalho contém um Hash da tecla da próxima linha a ser devolvido numa consulta subsequente contra a mesa.

Tenha em atenção que, em alguns casos, x-ms-continuation-NextRowKey pode ser null.

Para obter os tokens de continuação e executar uma consulta subsequente para devolver a página seguinte dos resultados, inspecione primeiro os cabeçalhos de resposta para obter tokens de continuação. Se não existirem cabeçalhos ou os valores dos cabeçalhos forem null, não existem entidades adicionais a devolver.

Nota

Ao fazer pedidos subsequentes que incluam tokens de continuação, certifique-se de que transmite o URI original no pedido. Por exemplo, se tiver especificado uma $filteropção de consulta , $selectou $top como parte do pedido original, deverá incluir essa opção nos pedidos subsequentes. Caso contrário, os seus pedidos subsequentes poderão devolver resultados inesperados.

Tenha em atenção que a opção $top de consulta neste caso especifica o número máximo de resultados por página e não o número máximo de resultados em todo o conjunto de respostas.

Veja Consultar Tabelas e Entidades para obter mais detalhes.

Se estiver a processar tokens de continuação manualmente com a Biblioteca de Cliente .NET da Microsoft, primeiro cast o resultado da operação de consulta num objeto QueryOperationResponse . Em seguida, pode aceder aos cabeçalhos do token de continuação na propriedade Cabeçalhos do QueryOperationResponse objeto.

Depois de obter os tokens de continuação, utilize os respetivos valores para construir uma consulta para devolver a página seguinte dos resultados. Um URI de pedido de consulta pode utilizar estes parâmetros, que correspondem aos cabeçalhos do token de continuação devolvidos com a resposta:

  • NextTableName

  • NextPartitionKey

  • NextRowKey

Nota

O tempo total atribuído ao pedido de agendamento e processamento de uma consulta é de 30 segundos, incluindo cinco segundos para a execução de consultas.

Se a operação for uma operação de inserção, atualização ou eliminação, a operação poderá ter sido bem-sucedida no servidor, apesar de ter sido devolvido um erro pelo cliente. Isto pode acontecer quando o tempo limite do cliente está definido para menos de 30 segundos, que é o tempo limite máximo para uma operação de inserção, atualização ou eliminação.

Cabeçalhos de Resposta de Exemplo e Pedido Subsequente

O seguinte exemplo de código mostra um conjunto de cabeçalhos de resposta de exemplo de uma consulta de entidade numa tabela denominada Clientes que devolve cabeçalhos de continuação. Ambos x-ms-continuation-NextPartitionKey e x-ms-continuation-NextRowKey são devolvidos.

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  

O pedido para a próxima página de dados pode ser construído como o seguinte URI:

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

Consulte também

Endereçar Recursos do Serviço de Tabela
Operações em Tabelas
Operações em Entidades