Time-out en paginering van query's

De Tabelservice ondersteunt de volgende twee typen querybewerkingen:

  • De bewerking Querytabellen retourneert de lijst met tabellen binnen het opgegeven opslagaccount. De lijst met tabellen kan worden gefilterd op basis van criteria die zijn opgegeven voor de aanvraag.

  • De bewerking Query entities retourneert een set entiteiten uit de opgegeven tabel. Queryresultaten kunnen worden gefilterd volgens criteria die zijn opgegeven in de aanvraag.

Een query op de Table-service kan maximaal 1000 items tegelijk retourneren en kan maximaal vijf seconden worden uitgevoerd. Als de resultatenset meer dan 1000 items bevat, als de query niet binnen vijf seconden is voltooid of als de query de partitiegrens passeert, bevat het antwoord headers waarmee de ontwikkelaar vervolgtokens kan gebruiken om de query bij het volgende item in de resultatenset te hervatten. Vervolg tokenheaders kunnen worden geretourneerd voor een querytabellen bewerking of een query entiteiten bewerking.

Houd er rekening mee dat de totale tijd die is toegewezen aan de aanvraag voor het plannen en verwerken van de query 30 seconden is, inclusief de vijf seconden voor het uitvoeren van de query.

Een query kan geen resultaten retourneren, maar wel een vervolgheader retourneren.

De vervolg-tokenheaders worden weergegeven in de volgende tabel.

Vervolg tokenheader Beschrijving
x-ms-continuation-NextTableName Deze header wordt geretourneerd in de context van een querytabellen-bewerking. Als de lijst met geretourneerde tabellen niet is voltooid, wordt een hash van de naam van de volgende tabel in de lijst opgenomen in de vervolg-tokenheader.
x-ms-continuation-NextPartitionKey Deze header wordt geretourneerd in de context van een query-entiteitsbewerking. De header bevat een hash van de volgende partitiesleutel die moet worden geretourneerd in een volgende query op de tabel.
x-ms-continuation-NextRowKey Deze header wordt geretourneerd in de context van een query-entiteitsbewerking. De header bevat een hash van de volgende rijsleutel die moet worden geretourneerd in een volgende query voor de tabel.

Houd er rekening mee dat in sommige gevallen x-ms-continuation-NextRowKey kan null zijn.

Als u de vervolgtokens wilt ophalen en een volgende query wilt uitvoeren om de volgende pagina met resultaten te retourneren, controleert u eerst de antwoordheaders op vervolgtokens. Als er geen headers zijn of als de headerwaarden null zijn, zijn er geen aanvullende entiteiten om te retourneren.

Notitie

Wanneer u volgende aanvragen indient die vervolgtokens bevatten, moet u de oorspronkelijke URI voor de aanvraag doorgeven. Als u bijvoorbeeld een queryoptie , of hebt opgegeven als onderdeel van de oorspronkelijke aanvraag, moet u die optie opnemen $filter $select in volgende $top aanvragen. Anders kunnen de volgende aanvragen onverwachte resultaten retourneren.

Houd er rekening mee dat met de queryoptie in dit geval het maximum aantal resultaten per pagina wordt opgegeven, niet het maximum aantal resultaten $top in de hele antwoordset.

Zie Query's uitvoeren op tabellen en entiteiten voor meer informatie.

Als u vervolgtokens handmatig afhandelt met behulp van de Microsoft .NET-clientbibliotheek, cast dan eerst het resultaat van de querybewerking naar een QueryOperationResponse-object. Vervolgens hebt u toegang tot de vervolg-tokenheaders in de eigenschap Headers van het QueryOperationResponse object.

Nadat u de vervolgtokens hebt opgehaald, gebruikt u de waarden ervan om een query te maken om de volgende pagina met resultaten te retourneren. Een queryaanvraag-URI kan deze parameters nemen, die overeenkomen met de vervolg-tokenheaders die worden geretourneerd met het antwoord:

  • NextTableName

  • NextPartitionKey

  • NextRowKey

Notitie

De totale tijd die is toegewezen aan de aanvraag voor het plannen en verwerken van een query is 30 seconden, inclusief vijf seconden voor het uitvoeren van de query.

Als de bewerking een invoeg-, bij- of verwijderbewerking is, is de bewerking mogelijk geslaagd op de server, ondanks dat er een fout wordt geretourneerd door de client. Dit kan gebeuren wanneer de time-out van de client is ingesteld op minder dan 30 seconden. Dit is de maximale time-out voor een invoeg-, update- of verwijderbewerking.

Voorbeeld van antwoordheaders en volgende aanvraag

In het volgende codevoorbeeld ziet u een set voorbeeldreactieheaders van een entiteitsquery voor een tabel met de naam Klanten die vervolgheaders retourneert. Zowel x-ms-continuation-NextPartitionKey als x-ms-continuation-NextRowKey worden geretourneerd.

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  

De aanvraag voor de volgende pagina met gegevens kan worden samengesteld als de volgende URI:

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

Zie ook

Adressering van Table Service-resources
Bewerkingen op tabellen
Bewerkingen op entiteiten