Share via


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, $selectvagy $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