Przekroczenie limitu czasu zapytania i stronicowanie

Usługa Table Service obsługuje następujące dwa typy operacji zapytań:

  • Operacja Tabele zapytań zwraca listę tabel na określonym koncie magazynu. Lista tabel może być filtrowana zgodnie z kryteriami określonymi w żądaniu.

  • Operacja Wykonywanie zapytań o jednostki zwraca zestaw jednostek z określonej tabeli. Wyniki zapytania mogą być filtrowane zgodnie z kryteriami określonymi w żądaniu.

Zapytanie względem usługi Table Service może zwrócić maksymalnie 1000 elementów jednocześnie i może zostać wykonane przez maksymalnie pięć sekund. Jeśli zestaw wyników zawiera więcej niż 1000 elementów, jeśli zapytanie nie zostało ukończone w ciągu pięciu sekund lub jeśli zapytanie przekracza granicę partycji, odpowiedź zawiera nagłówki, które zapewniają deweloperowi tokeny kontynuacji do użycia w celu wznowienia zapytania w następnym elemencie w zestawie wyników. Nagłówki tokenu kontynuacji mogą być zwracane dla operacji Tabele zapytań lub operacji Jednostki zapytania .

Należy pamiętać, że łączny czas przydzielony do żądania planowania i przetwarzania zapytania wynosi 30 sekund, w tym pięć sekund na potrzeby wykonywania zapytania.

Zapytanie nie zwraca żadnych wyników, ale nadal zwraca nagłówek kontynuacji.

Nagłówki tokenu kontynuacji są wyświetlane w poniższej tabeli.

Nagłówek tokenu kontynuacji Opis
x-ms-continuation-NextTableName Ten nagłówek jest zwracany w kontekście operacji Tabele zapytań . Jeśli lista zwróconych tabel nie zostanie ukończona, skrót nazwy następnej tabeli na liście znajduje się w nagłówku tokenu kontynuacji.
x-ms-continuation-NextPartitionKey Ten nagłówek jest zwracany w kontekście operacji jednostki zapytania . Nagłówek zawiera skrót następnego klucza partycji, który ma zostać zwrócony w kolejnym zapytaniu względem tabeli.
x-ms-continuation-NextRowKey Ten nagłówek jest zwracany w kontekście operacji jednostki zapytania . Nagłówek zawiera skrót następnego klucza wiersza, który ma zostać zwrócony w kolejnym zapytaniu względem tabeli.

Należy pamiętać, x-ms-continuation-NextRowKey że w niektórych przypadkach może to być null.

Aby pobrać tokeny kontynuacji i wykonać kolejne zapytanie, aby zwrócić następną stronę wyników, najpierw sprawdź nagłówki odpowiedzi pod kątem tokenów kontynuacji. Jeśli nie ma nagłówków lub wartości nagłówka to null, nie ma żadnych dodatkowych jednostek do zwrócenia.

Uwaga

Podczas wysyłania kolejnych żądań, które zawierają tokeny kontynuacji, pamiętaj o przekazaniu oryginalnego identyfikatora URI żądania. Jeśli na przykład określono opcję , $selectlub $top kwerendy $filterw ramach oryginalnego żądania, należy dołączyć tę opcję do kolejnych żądań. W przeciwnym razie kolejne żądania mogą zwracać nieoczekiwane wyniki.

Należy pamiętać, że $top opcja zapytania w tym przypadku określa maksymalną liczbę wyników na stronę, a nie maksymalną liczbę wyników w całym zestawie odpowiedzi.

Aby uzyskać więcej informacji, zobacz Wykonywanie zapytań dotyczących tabel i jednostek .

Jeśli obsługujesz tokeny kontynuacji ręcznie przy użyciu biblioteki klienta platformy Microsoft .NET, najpierw rzutuj wynik operacji zapytania na obiekt QueryOperationResponse . Następnie możesz uzyskać dostęp do nagłówków tokenu kontynuacji we właściwości QueryOperationResponseHeaders obiektu.

Po pobraniu tokenów kontynuacji użyj ich wartości, aby utworzyć zapytanie, aby zwrócić następną stronę wyników. Identyfikator URI żądania zapytania może przyjmować te parametry, które odpowiadają nagłówkom tokenu kontynuacji zwróconym z odpowiedzią:

  • NextTableName

  • NextPartitionKey

  • NextRowKey

Uwaga

Łączny czas przydzielony do żądania planowania i przetwarzania zapytania wynosi 30 sekund, w tym pięć sekund na potrzeby wykonywania zapytania.

Jeśli operacja jest operacją wstawiania, aktualizowania lub usuwania, operacja mogła zakończyć się pomyślnie na serwerze pomimo błędu zwróconego przez klienta. Może się to zdarzyć, gdy limit czasu klienta jest ustawiony na mniej niż 30 sekund, co jest maksymalnym limitem czasu operacji wstawiania, aktualizacji lub usuwania.

Przykładowe nagłówki odpowiedzi i kolejne żądanie

Poniższy przykład kodu przedstawia zestaw przykładowych nagłówków odpowiedzi z zapytania jednostki względem tabeli o nazwie Customers, która zwraca nagłówki kontynuacji. Oba x-ms-continuation-NextPartitionKey i x-ms-continuation-NextRowKey są zwracane.

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  

Żądanie na następnej stronie danych można skonstruować tak, jak następujący identyfikator URI:

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

Zobacz też

Adresowanie zasobów usługi Table Service
Operacje na tabelach
Operacje na jednostkach