Časový limit dotazu a stránkování

Služba Table Service podporuje následující dva typy operací dotazů:

  • Operace Dotazovat tabulky vrátí seznam tabulek v rámci zadaného účtu úložiště. Seznam tabulek může být filtrován podle kritérií zadaných v požadavku.

  • Operace Dotazovat entity vrátí sadu entit ze zadané tabulky. Výsledky dotazu se můžou filtrovat podle kritérií zadaných v požadavku.

Dotaz na službu Table service může vrátit maximálně 1 000 položek najednou a může se spouštět maximálně pět sekund. Pokud sada výsledků obsahuje více než 1 000 položek, pokud se dotaz nedokončil během pěti sekund nebo pokud dotaz překročí hranici oddílu, bude odpověď obsahovat hlavičky, které vývojáři poskytnou tokeny pro pokračování, které použije k obnovení dotazu u další položky v sadě výsledků. Hlavičky pokračovacího tokenu mohou být vráceny pro operaci Tabulky dotazů nebo operace Entity dotazu .

Všimněte si, že celková doba přidělená požadavku na plánování a zpracování dotazu je 30 sekund, včetně pěti sekund pro provádění dotazu.

Je možné, že dotaz nevrátí žádné výsledky, ale přesto vrátí hlavičku pokračování.

Hlavičky pokračovacího tokenu jsou uvedené v následující tabulce.

Hlavička pokračovacího tokenu Description
x-ms-continuation-NextTableName Tato hlavička se vrátí v kontextu operace Tabulky dotazů . Pokud seznam vrácených tabulek není úplný, je v hlavičce pokračovacího tokenu zahrnuta hodnota hash názvu další tabulky v seznamu.
x-ms-continuation-NextPartitionKey Tato hlavička se vrátí v kontextu operace Entity dotazu . Hlavička obsahuje hodnotu hash dalšího klíče oddílu, který se má vrátit v následném dotazu na tabulku.
x-ms-continuation-NextRowKey Tato hlavička se vrátí v kontextu operace Entity dotazu . Hlavička obsahuje hodnotu hash klíče dalšího řádku, která se má vrátit v následném dotazu na tabulku.

Všimněte si, že v některých případech x-ms-continuation-NextRowKey může být null.

Pokud chcete načíst pokračovací tokeny a spustit následný dotaz, který vrátí další stránku výsledků, nejprve zkontrolujte hlavičky odpovědi, jestli neobsahuje tokeny pokračování. Pokud neexistují žádná záhlaví nebo hodnoty záhlaví jsou null, neexistují žádné další entity, které by bylo možné vrátit.

Poznámka

Při vytváření následných požadavků, které zahrnují tokeny pro pokračování, nezapomeňte na požadavek předat původní identifikátor URI. Pokud jste například jako součást původního požadavku zadali $filtermožnost dotazu , $selectnebo $top , budete ji chtít zahrnout do dalších požadavků. V opačném případě můžou vaše následné požadavky vrátit neočekávané výsledky.

Všimněte si $top , že možnost dotazu v tomto případě určuje maximální počet výsledků na stránku, nikoli maximální počet výsledků v celé sadě odpovědí.

Další podrobnosti najdete v tématu Dotazování tabulek a entit .

Pokud zpracováváte tokeny pokračování ručně pomocí klientské knihovny Microsoft .NET, nejprve přetypujte výsledek operace dotazu na objekt QueryOperationResponse . Potom můžete získat přístup k hlavičkám pokračovacího tokenu ve vlastnosti Headers objektu QueryOperationResponse .

Po načtení pokračovacího tokenu použijte jejich hodnoty k vytvoření dotazu, který vrátí další stránku výsledků. Identifikátor URI požadavku dotazu může obsahovat tyto parametry, které odpovídají hlavičkám pokračovacího tokenu vráceným s odpovědí:

  • NextTableName

  • NextPartitionKey

  • NextRowKey

Poznámka

Celková doba přidělená požadavku na plánování a zpracování dotazu je 30 sekund, včetně pěti sekund pro provádění dotazu.

Pokud se jedná o operaci vložení, aktualizace nebo odstranění, je možné, že operace byla na serveru úspěšná, i když klient vrátil chybu. K tomu může dojít, pokud je časový limit klienta nastavený na méně než 30 sekund, což je maximální časový limit pro operaci vložení, aktualizace nebo odstranění.

Ukázkové hlavičky odpovědi a následný požadavek

Následující příklad kódu ukazuje sadu ukázkových hlaviček odpovědi z dotazu na entitu s tabulkou s názvem Customers, která vrací hlavičky pokračování. Vrátí se obojí i x-ms-continuation-NextPartitionKeyx-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  

Požadavek na další stránku dat je možné vytvořit jako následující identifikátor URI:

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

Viz také

Adresování prostředků služby Table Service
Operace s tabulkami
Operace s entitami