查詢逾時和分頁
表格服務支援下列兩種查詢作業類型:
針對表格服務的查詢,一次最多傳回 1,000 個項目,而且最多執行五秒。 如果結果集中包含超過 1,000 個項目,查詢未於五秒內完成,或者查詢跨越資料分割界限,則回應會包含為開發人員提供接續 Token 的標頭,以在結果集中的下一個項目恢復查詢。 查詢 資料表 作業或 查詢實體 作業可能會傳回接續權杖標頭。
請注意,配置給要求以進行排程和處理查詢的總時間為 30 秒,包括用來執行查詢的五秒。
查詢可能不會傳回任何結果,但是仍會傳回接續標頭。
下表顯示接續 Token 標頭。
接續 Token 標頭 | Description |
---|---|
x-ms-continuation-NextTableName |
此標頭會在 查詢表 作業的內容中傳回。 如果傳回的資料表清單不完整,接續 Token 標頭中就會包含清單中下一個資料表名稱的雜湊。 |
x-ms-continuation-NextPartitionKey |
此標頭會在 查詢實體 作業的內容中傳回。 標頭包含下一個資料分割索引鍵的雜湊,在後續查詢中會針對資料表傳回此雜湊。 |
x-ms-continuation-NextRowKey |
此標頭會在 查詢實體 作業的內容中傳回。 標頭包含下一個資料列索引鍵的雜湊,在後續查詢中會針對資料表傳回此雜湊。 請注意,在某些案例中, x-ms-continuation-NextRowKey 可能為 null 。 |
若要擷取接續 Token 以及執行後續查詢以傳回下一頁結果,請先檢查接續 Token 的回應標頭。 如果沒有標頭,或標頭值為 null
,則不會傳回額外的實體。
注意
提出包含接續權杖的後續要求時,請務必在要求上傳遞原始 URI。 例如,如果您已將 、 $select
或 $top
查詢選項指定為原始要求的一 $filter
部分,您會想要在後續要求中包含該選項。 否則,後續的要求可能會傳回非預期的結果。
請注意,在此情況下, $top
查詢選項會指定每個頁面的結果數目上限,而不是整個回應集中的結果數目上限。
如需詳細資訊,請參閱 查詢資料表和實體 。
如果您要使用 Microsoft .NET 用戶端程式庫手動處理接續權杖,請先將查詢作業的結果轉換成 QueryOperationResponse 物件。 然後,您可以在 物件的 Headers 屬性 QueryOperationResponse
中存取接續權杖標頭。
在擷取接續 Token 之後,請使用其值建構查詢,以傳回下一頁結果。 查詢要求 URI 可能會採用這些參數,這些參會與隨回應所傳回的接續 Token 標頭相對應:
NextTableName
NextPartitionKey
NextRowKey
注意
配置給排程和處理查詢要求的總時間是 30 秒,包括查詢執行的五秒。
如果作業是插入、更新或刪除作業,即使用戶端傳回錯誤,作業可能已在伺服器上成功。 當用戶端逾時設為小於 30 秒 (插入、更新或刪除作業的最大逾時) 時,就可能發生這種情形。
範例回應標頭和後續要求
下列程式碼範例會示範一組來自實體查詢的範例回應標頭,此查詢針對的是傳回接續標頭且名為 Customers 的資料表。
x-ms-continuation-NextPartitionKey
和 x-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
針對下一頁資料的要求可遵循下列 URI 的格式進行建構:
http://myaccount.table.core.windows.net/Customers?NextPartitionKey=1!8!U21pdGg-&NextRowKey=1!12!QmVuMTg5OA--