Lekérdezés időtúllépése és lapozása
A Table szolgáltatás a következő két lekérdezési műveletet támogatja:
A Lekérdezési táblák művelet a megadott tárfiókon belüli táblák listáját adja vissza. A táblák listája a kérelemben megadott feltételek szerint szűrhető.
A Lekérdezési entitások művelet entitáskészletet ad vissza a megadott táblából. A lekérdezési eredmények a kérelemben megadott feltételeknek megfelelően szűrhetők.
A Table service-hez tartozó lekérdezések egyszerre legfeljebb 1000 elemet adhatnak vissza, és legfeljebb öt másodpercig hajthatók végre. Ha az eredményhalmaz több mint 1000 elemet tartalmaz, ha a lekérdezés öt másodpercen belül nem fejeződött be, vagy ha a lekérdezés átlépi a partíció határát, a válasz fejléceket tartalmaz, amelyek a fejlesztő számára folytatási jogkivonatokat biztosítanak a lekérdezés folytatásához az eredményhalmaz következő eleménél. A folytatási jogkivonat fejlécei lekérdezési táblák vagy lekérdezési entitások művelet esetén is visszaadhatók.
Vegye figyelembe, hogy a lekérdezés ütemezésére és feldolgozására vonatkozó kérelemhez tartozó teljes idő 30 másodperc, beleértve a lekérdezés végrehajtásához szükséges öt másodpercet is.
Előfordulhat, hogy egy lekérdezés nem ad vissza eredményt, de továbbra is visszaad egy folytatási fejlécet.
A folytatási jogkivonat fejlécei az alábbi táblázatban láthatók.
Folytatási jogkivonat fejléce | Description |
---|---|
x-ms-continuation-NextTableName |
Ezt a fejlécet egy Lekérdezéstáblák művelet kontextusában adja vissza a rendszer. Ha a visszaadott táblák listája nem teljes, a listában szereplő következő tábla nevének kivonata szerepel a folytatási jogkivonat fejlécében. |
x-ms-continuation-NextPartitionKey |
Ez a fejléc egy Lekérdezési entitások művelet kontextusában lesz visszaadva. A fejléc a következő partíciókulcs kivonatát tartalmazza, amelyet egy későbbi lekérdezésben ad vissza a táblán. |
x-ms-continuation-NextRowKey |
Ez a fejléc egy Lekérdezési entitások művelet kontextusában lesz visszaadva. A fejléc a következő sorkulcs kivonatát tartalmazza, amelyet egy későbbi lekérdezésben ad vissza a táblán. Vegye figyelembe, hogy egyes esetekben x-ms-continuation-NextRowKey a következő lehet null : . |
A folytatási jogkivonatok lekéréséhez és egy későbbi lekérdezés végrehajtásához az eredmények következő oldalának visszaadásához először vizsgálja meg a válaszfejléceket a folytatási jogkivonatok kereséséhez. Ha nincsenek fejlécek, vagy a fejlécértékek null
, akkor nem kell további entitásokat visszaadni.
Megjegyzés
A folytatási jogkivonatokat tartalmazó további kérések esetén mindenképpen adja át az eredeti URI-t a kérésen. Ha például egy $filter
, $select
vagy $top
lekérdezési beállítást adott meg az eredeti kérés részeként, akkor ezt a beállítást a későbbi kérésekhez is használnia kell. Ellenkező esetben a későbbi kérések váratlan eredményeket adhatnak vissza.
Vegye figyelembe, hogy ebben az esetben a $top
lekérdezési beállítás az eredmények maximális számát adja meg oldalanként, nem pedig a teljes válaszkészletben található találatok maximális számát.
További részletekért lásd: Táblák és entitások lekérdezése .
Ha manuálisan kezeli a folytatási jogkivonatokat a Microsoft .NET-ügyfélkódtár használatával, először a lekérdezési művelet eredményét egy QueryOperationResponse objektumra öntötte . Ezután elérheti a folytatási jogkivonat fejléceit az objektum Fejlécek tulajdonságában QueryOperationResponse
.
Miután lekérte a folytatási jogkivonatokat, az értékükkel hozzon létre egy lekérdezést az eredmények következő oldalának visszaadásához. A lekérdezési kérelem URI-ja a következő paramétereket veheti fel, amelyek megfelelnek a válaszban visszaadott folytatási jogkivonat fejléceinek:
NextTableName
NextPartitionKey
NextRowKey
Megjegyzés
A lekérdezés ütemezésére és feldolgozására vonatkozó kérelemhez tartozó teljes idő 30 másodperc, beleértve a lekérdezés végrehajtásához szükséges öt másodpercet is.
Ha a művelet beszúrási, frissítési vagy törlési művelet, előfordulhat, hogy a művelet sikeres volt a kiszolgálón annak ellenére, hogy az ügyfél hibát adott vissza. Ez akkor fordulhat elő, ha az ügyfél időtúllépése 30 másodpercnél rövidebbre van állítva, ami a beszúrási, frissítési vagy törlési műveletek maximális időtúllépése.
Mintaválaszfejlécek és az azt követő kérés
Az alábbi példakód egy entitáslekérdezés mintaválaszfejléceit mutatja be egy Customers nevű táblán, amely folytatási fejléceket ad vissza. Mind x-ms-continuation-NextPartitionKey
a, x-ms-continuation-NextRowKey
mind a visszaadott érték.
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
A következő adatoldalra vonatkozó kérés az alábbi URI-hoz hasonlóan hozható létre:
http://myaccount.table.core.windows.net/Customers?NextPartitionKey=1!8!U21pdGg-&NextRowKey=1!12!QmVuMTg5OA--
Lásd még:
A Table Service erőforrásainak kezelése
Műveletek táblákon
Műveletek entitásokon