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 $filter
opción de consulta , $select
o $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