Tiempo de espera y paginación de consultas

Table service admite los dos tipos siguientes de operaciones de consulta:

  • La operación Tablas de consulta devuelve la lista de tablas dentro de la cuenta de almacenamiento especificada. La lista de tablas se puede filtrar según los criterios especificados en la solicitud.

  • La operación Entidades de consulta devuelve un conjunto de entidades de la tabla especificada. Los resultados de la consulta se pueden filtrar según los criterios especificados en la solicitud.

Una consulta a Table service puede devolver un máximo de 1.000 elementos al mismo tiempo, y se puede ejecutar durante cinco segundos como máximo. Si el conjunto de resultados contiene más de 1.000 elementos, si la consulta no se completa en un plazo de cinco segundos o si la consulta cruza el límite de la partición, la respuesta incluirá encabezados que proporcionan al desarrollador los tokens de continuación que debe usar para reanudar la consulta en el siguiente elemento del conjunto de resultados. Los encabezados de token de continuación se pueden devolver para una operación Tablas de consulta o una operación de entidades de consulta .

Tenga presente que el tiempo total asignado a la solicitud para programar y procesar la consulta es de 30 segundos, incluidos los cinco segundos para la ejecución de la consulta.

Es posible que una consulta no devuelva ningún resultado pero que devuelva un encabezado de continuación.

Los encabezados de los tokens de continuación se muestran en la tabla siguiente.

Encabezado del token de continuación Descripción
x-ms-continuation-NextTableName Este encabezado se devuelve en el contexto de una operación Tablas de consulta . Si la lista de tablas devueltas no está completa, en el encabezado del token de continuación se incluye un hash del nombre de la tabla siguiente de la lista.
x-ms-continuation-NextPartitionKey Este encabezado se devuelve en el contexto de una operación de entidades de consulta . El encabezado contiene un hash de la siguiente clave de partición que se devolverá la próxima vez que se consulte la tabla.
x-ms-continuation-NextRowKey Este encabezado se devuelve en el contexto de una operación de entidades de consulta . El encabezado contiene un hash de la siguiente clave de fila que se devolverá la próxima vez que se consulte la tabla.

Tenga en cuenta que, en ocasiones, x-ms-continuation-NextRowKey puede ser null.

Para recuperar los tokens de continuación y ejecutar una consulta posterior para devolver la siguiente página de resultados, examine primero los encabezados de respuesta de los tokens de continuación. Si no hay encabezados o los valores de encabezado son null, no existen entidades adicionales que devolver.

Nota:

Al realizar solicitudes posteriores que incluyan tokens de continuación, asegúrese de pasar el URI original en la solicitud. Por ejemplo, si ha especificado una $filteropción de consulta , $selecto $top como parte de la solicitud original, querrá incluir esa opción en las solicitudes posteriores. De lo contrario, las solicitudes posteriores pueden devolver resultados inesperados.

Tenga en cuenta que la $top opción de consulta en este caso especifica el número máximo de resultados por página, no el número máximo de resultados en todo el conjunto de respuestas.

Consulte Consulta de tablas y entidades para obtener más información.

Si controla los tokens de continuación manualmente mediante la biblioteca cliente de Microsoft .NET, convierta primero el resultado de la operación de consulta en un objeto QueryOperationResponse . A continuación, puede acceder a los encabezados de token de continuación en la propiedad Headers del QueryOperationResponse objeto .

Una vez recuperados los tokens de continuación, utilice sus valores para crear una consulta para devolver la página siguiente de resultados. Un URI de solicitud de consulta puede tomar estos parámetros, que corresponden a los encabezados de los tokens de continuación devueltos con la respuesta:

  • NextTableName

  • NextPartitionKey

  • NextRowKey

Nota:

El tiempo total asignado a la solicitud de programación y procesamiento de una consulta es de 30 segundos, incluidos cinco segundos para la ejecución de consultas.

Si la operación es una operación de inserción, actualización o eliminación, es posible que la operación se haya realizado correctamente en el servidor a pesar de que el cliente devuelva un error. Esto puede ocurrir si el tiempo de espera del cliente se establece en un valor inferior a 30 segundos, que es el tiempo de espera máximo para una operación de inserción, actualización o eliminación.

Ejemplo de encabezados de respuesta y de la solicitud posterior

El ejemplo de código siguiente muestra un conjunto de encabezados de respuesta de ejemplo procedentes de una consulta de entidad en una tabla denominada Customers que devuelve encabezados de continuación. Se devuelven x-ms-continuation-NextPartitionKey y 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  

La solicitud de la página siguiente de datos se puede construir con el URI siguiente:

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

Consulte también

Direccionamiento de los recursos de Table Service
Operaciones con tablas
Operaciones en entidades