Delen via


Time-out en paginering van query's

De Table-service ondersteunt de volgende twee typen querybewerkingen:

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

  • De bewerking Query Entities retourneert een set entiteiten uit de opgegeven tabel. Queryresultaten kunnen worden gefilterd op basis van criteria die zijn opgegeven in de aanvraag.

Een query op de Tabelservice 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 overschrijdt, bevat het antwoord headers die de ontwikkelaar vervolgtokens bieden die kunnen worden gebruikt om de query te hervatten bij het volgende item in de resultatenset. Vervolgtokenheaders kunnen worden geretourneerd voor een querytabelbewerking of een queryentiteitenbewerking .

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.

Het is mogelijk dat een query geen resultaten retourneert, maar wel een vervolgheader retourneert.

De vervolgtokenheaders worden weergegeven in de volgende tabel.

Koptekst vervolgtoken Beschrijving
x-ms-continuation-NextTableName Deze header wordt geretourneerd in de context van een querytabelbewerking . Als de lijst met geretourneerde tabellen niet volledig is, wordt een hash van de naam van de volgende tabel in de lijst opgenomen in de vervolgtokenheader.
x-ms-continuation-NextPartitionKey Deze header wordt geretourneerd in de context van een bewerking Query Entities . De header bevat een hash van de volgende partitiesleutel die moet worden geretourneerd in een volgende query voor de tabel.
x-ms-continuation-NextRowKey Deze header wordt geretourneerd in de context van een bewerking Query Entities . 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 kan x-ms-continuation-NextRowKey zijn null.

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 voor vervolgtokens. Als er geen headers zijn of als de headerwaarden dat zijn null, zijn er geen extra entiteiten die moeten worden geretourneerd.

Notitie

Wanneer u volgende aanvragen met vervolgtokens maakt, moet u ervoor zorgen dat u de oorspronkelijke URI voor de aanvraag doorgeeft. Als u bijvoorbeeld een $filterqueryoptie , $selectof $top hebt opgegeven als onderdeel van de oorspronkelijke aanvraag, wilt u deze optie opnemen in volgende aanvragen. Anders kunnen uw volgende aanvragen onverwachte resultaten retourneren.

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

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

Als u vervolgtokens handmatig verwerkt met behulp van de Microsoft .NET-clientbibliotheek, cast dan eerst het resultaat van de querybewerking naar een QueryOperationResponse-object . U hebt vervolgens toegang tot de vervolgtokenheaders in de eigenschap Headers van het QueryOperationResponse object.

Nadat u de vervolgtokens hebt opgehaald, gebruikt u de bijbehorende waarden om een query samen te stellen om de volgende pagina met resultaten te retourneren. Een queryaanvraag-URI kan deze parameters gebruiken, die overeenkomen met de vervolgtokenheaders 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-, update- of verwijderbewerking is, is de bewerking mogelijk geslaagd op de server, ondanks dat er een fout is 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 voorbeeldantwoordheaders van een entiteitsquery op basis van een tabel met de naam Klanten die vervolgheaders retourneert. Zowel als x-ms-continuation-NextPartitionKeyx-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

Resources voor tabelservice adresseren
Bewerkingen op tabellen
Bewerkingen op entiteiten