VERTRIEB: 1-800-867-1380

Abfragetimeout und Paginierung

Letzte Aktualisierung: Februar 2014

Der Tabellendienst unterstützt die folgenden beiden Arten von Abfrageoperationen:

  • Der Vorgang Query Tables (REST-API) gibt die Liste der Tabellen im angegebenen Speicherkonto zurück. Die Liste der Tabellen wird gemäß den in der Anforderung angegebenen Kriterien gefiltert.

  • Der Vorgang Query Entities (REST-API) gibt einen Satz von Entitäten aus der angegebenen Tabelle zurück. Die Abfrageergebnisse können gemäß den in der Anforderung angegebenen Kriterien gefiltert werden.

Eine Abfrage für den Tabellendienst kann maximal 1.000 Elemente gleichzeitig zurückgeben und für maximal fünf Sekunden ausgeführt werden. Wenn das Resultset mehr als 1.000 Elemente enthält, die Abfrage nicht innerhalb von fünf Sekunden abgeschlossen wurde oder die Abfrage die Partitionsbegrenzung überschreitet, enthält die Antwort Header, die dem Entwickler Fortsetzungstoken zur Verfügung stellen, um die Abfrage mit dem nächsten Element im Resultset fortzusetzen. Header von Fortsetzungstoken können für den Vorgang Query Tables (REST-API) oder Query Entities (REST-API) zurückgegeben werden.

Beachten Sie, dass die zugewiesene Gesamtzeit für die Anforderung zum Planen und Verarbeiten der Abfrage 30 Sekunden beträgt, einschließlich der fünf Sekunden für die Abfrageausführung.

Eine Abfrage kann u. U. keine Ergebnisse, aber einen Fortsetzungsheader zurückgeben.

Die Header von Fortsetzungstoken sind in der folgenden Tabelle dargestellt.

 

Header des Fortsetzungstokens Beschreibung

x-ms-continuation-NextTableName

Dieser Header wird für den Vorgang Query Tables (REST-API) zurückgegeben. Wenn die zurückgegebene Liste der Tabellen nicht vollständig ist, wird in den Header des Fortsetzungstokens ein Hash des mit dem Namen der folgenden Tabelle in der Liste eingefügt.

x-ms-continuation-NextPartitionKey

Dieser Header wird für den Vorgang Query Entities (REST-API) zurückgegeben. Der Header enthält einen Hash des nächsten Partitionsschlüssels, der in einer nachfolgenden Abfrage für die Tabelle zurückgegeben werden soll.

x-ms-continuation-NextRowKey

Dieser Header wird für den Vorgang Query Entities (REST-API) zurückgegeben. Der Header enthält einen Hash des nächsten Zeilenschlüssels, der in einer nachfolgenden Abfrage für die Tabelle zurückgegeben werden soll.

In manchen Fällen kann x-ms-continuation-NextRowKeyNULL sein.

Um die Fortsetzungstoken abzurufen und eine nachfolgende Abfrage auszuführen, um die nächste Ergebnisseite zurückzugeben, prüfen Sie zunächst die Antwortheader auf Fortsetzungstoken. Wenn keine Header vorhanden oder die Headerwerte NULL sind, können keine weiteren Entitäten zurückgegeben werden. Wenn Sie Fortsetzungstoken manuell mit der Microsoft .NET-Client-Bibliothek behandeln, wandeln Sie zuerst das Abfrageergebnis in ein QueryOperationResponse-Objekt um. Auf die Header der Fortsetzungstoken können Sie in der Eigenschaft Header des QueryOperationResponse-Objekts zugreifen.

Wenn Sie die Fortsetzungstoken abgerufen haben, können Sie an ihrer Werte eine Abfrage erstellen, um die nächste Ergebnisseite zurückzugeben. Ein Abfrageanforderungs-URI kann folgende Parameter akzeptieren, die den in der Antwort zurückgegebenen Headern des Fortsetzungstokens entsprechen:

  • NextTableName

  • NextPartitionKey

  • NextRowKey

noteHinweis
Auf einem Client kann über die Timeout-Eigenschaft der DataServiceContext-Klasse ein Timeout für die Abfrageausführung festgelegt werden. Die zugewiesene Gesamtzeit für die Anforderung zum Einplanen und Verarbeiten der Abfrage beträgt 30 Sekunden, einschließlich fünf Sekunden für die Abfrageausführung.

Wenn es sich um einen Einfüge- oder Löschvorgang handelt, kann der Vorgang auf dem Server trotz eines vom Client zurückgegebenen Fehlers erfolgreich gewesen sein. Dies kann der Fall sein, wenn das Clienttimeout auf weniger als 30 Sekunden festgelegt ist, d. h. den maximalen Timeoutwert für einen Einfüge-, Update- oder Löschvorgang.

Im folgenden Codebeispiel wird eine Gruppe von Beispielantwortheadern aus einer Entitätsabfrage für eine Tabelle Kunden veranschaulicht, die Fortsetzungsheader zurückgibt. Es werden x-ms-continuation-NextPartitionKey und x-ms-continuation-NextRowKey zurückgegeben.

Date: Mon, 25 Nov 2013 20:11:08 GMT
Content-Type: application/atom+xml;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: 2013-08-15
x-ms-continuation-NextPartitionKey: 1!8!U21pdGg-
x-ms-continuation-NextRowKey: 1!8!QmVuOTk5
Content-Length: 880298

Die Anforderung für die nächste Datenseite kann wie der folgende URI erstellt werden:

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

Siehe auch

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.
Anzeigen:
© 2014 Microsoft