Tidsgräns för frågor och sidnumrering
Tabelltjänsten stöder följande två typer av frågeåtgärder:
Åtgärden Frågetabeller returnerar listan över tabeller i det angivna lagringskontot. Listan över tabeller kan filtreras enligt de kriterier som anges i begäran.
Åtgärden Fråga entiteter returnerar en uppsättning entiteter från den angivna tabellen. Frågeresultat kan filtreras enligt kriterier som anges i begäran.
En fråga mot Table-tjänsten kan returnera högst 1 000 objekt samtidigt och kan köras i högst fem sekunder. Om resultatuppsättningen innehåller fler än 1 000 objekt, om frågan inte slutfördes inom fem sekunder, eller om frågan korsar partitionsgränsen, innehåller svaret rubriker som ger utvecklaren fortsättningstoken att använda för att återuppta frågan vid nästa objekt i resultatuppsättningen. Fortsättningstokenrubriker kan returneras för en åtgärd för frågetabeller eller en åtgärd för frågeentiteter .
Observera att den totala tid som tilldelats begäran för schemaläggning och bearbetning av frågan är 30 sekunder, inklusive de fem sekunderna för frågekörning.
Det är möjligt för en fråga att inte returnera några resultat men ändå returnera ett fortsättningshuvud.
Fortsättningstokenrubrikerna visas i följande tabell.
Rubrik för fortsättningstoken | Description |
---|---|
x-ms-continuation-NextTableName |
Det här huvudet returneras i kontexten för en frågetabellåtgärd . Om listan över tabeller som returneras inte är fullständig inkluderas en hash för namnet på nästa tabell i listan i fortsättningstokenrubriken. |
x-ms-continuation-NextPartitionKey |
Det här huvudet returneras i kontexten för en åtgärd för frågeentiteter . Rubriken innehåller en hash för nästa partitionsnyckel som ska returneras i en efterföljande fråga mot tabellen. |
x-ms-continuation-NextRowKey |
Det här huvudet returneras i kontexten för en åtgärd för frågeentiteter . Rubriken innehåller en hash för nästa radnyckel som ska returneras i en efterföljande fråga mot tabellen. Observera att i vissa fall x-ms-continuation-NextRowKey kan vara null . |
Om du vill hämta fortsättningstoken och köra en efterföljande fråga för att returnera nästa sida med resultat kontrollerar du först svarshuvudena efter fortsättningstoken. Om det inte finns några rubriker eller om rubrikvärdena är null
finns det inga ytterligare entiteter att returnera.
Anteckning
När du gör efterföljande begäranden som innehåller fortsättningstoken måste du skicka den ursprungliga URI:n på begäran. Om du till exempel har angett ett $filter
frågealternativ för , $select
eller $top
som en del av den ursprungliga begäran, vill du inkludera det alternativet i efterföljande begäranden. Annars kan dina efterföljande begäranden returnera oväntade resultat.
Observera att frågealternativet $top
i det här fallet anger det maximala antalet resultat per sida, inte det maximala antalet resultat i hela svarsuppsättningen.
Mer information finns i Köra frågor mot tabeller och entiteter .
Om du hanterar fortsättningstoken manuellt med hjälp av Microsoft .NET-klientbiblioteket skickar du först resultatet av frågeåtgärden till ett QueryOperationResponse-objekt . Du kan sedan komma åt fortsättningstokenrubrikerna i objektets rubrikegenskapQueryOperationResponse
.
När du har hämtat fortsättningstoken använder du deras värden för att skapa en fråga för att returnera nästa sida med resultat. En URI för frågebegäran kan ta dessa parametrar, som motsvarar fortsättningstokenrubrikerna som returneras med svaret:
NextTableName
NextPartitionKey
NextRowKey
Anteckning
Den totala tid som tilldelats begäran för schemaläggning och bearbetning av en fråga är 30 sekunder, inklusive fem sekunder för frågekörning.
Om åtgärden är en infognings-, uppdaterings- eller borttagningsåtgärd kan åtgärden ha slutförts på servern trots att ett fel returnerades av klienten. Detta kan inträffa när klientens tidsgräns är inställd på mindre än 30 sekunder, vilket är den maximala tidsgränsen för en infognings-, uppdaterings- eller borttagningsåtgärd.
Exempel på svarshuvuden och efterföljande begäran
I följande kodexempel visas en uppsättning exempel på svarshuvuden från en entitetsfråga mot en tabell med namnet Customers som returnerar fortsättningsrubriker. Både x-ms-continuation-NextPartitionKey
och x-ms-continuation-NextRowKey
returneras.
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
Begäran om nästa sida med data kan konstrueras som följande URI:
http://myaccount.table.core.windows.net/Customers?NextPartitionKey=1!8!U21pdGg-&NextRowKey=1!12!QmVuMTg5OA--
Se även
Hantera table service-resurser
Åtgärder i tabeller
Åtgärder på entiteter