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 $filter
queryoptie , $select
of $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-NextPartitionKey
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
Resources voor tabelservice adresseren
Bewerkingen op tabellen
Bewerkingen op entiteiten