Esporta (0) Stampa
Espandi tutto

Timeout e paginazione delle query

Aggiornamento: febbraio 2014

Il servizio tabelle supporta i due tipi di operazioni di query seguenti:

  • L'operazione Query Tables (API REST) restituisce l'elenco delle tabelle nell'account di archiviazione specificato. L'elenco delle tabelle può essere filtrato in base ai criteri specificati nella richiesta.

  • L'operazione Query Entities (API REST) restituisce un set di entità dalla tabella specificata. I risultati delle query possono essere filtrati in base ai criteri specificati nella richiesta.

Una query nel servizio tabelle può restituire un massimo di 1.000 elementi contemporaneamente e può essere eseguita per un massimo di cinque secondi. Se il set di risultati contiene più di 1.000 elementi, se la query non viene completata entro cinque secondi o se la query supera il limite della partizione, la risposta include le intestazioni che forniscono allo sviluppatore i token di continuazione da utilizzare per riprendere la query all'elemento successivo nel set di risultati. Le intestazioni dei token di continuazione possono essere restituite per un'operazione Query Tables (API REST) o Query Entities (API REST).

Si noti che il tempo totale assegnato alla richiesta per la pianificazione e l'elaborazione della query è 30 secondi, inclusi i cinque secondi per l'esecuzione della query.

È possibile che una query non restituisca risultati, ma restituisca un'intestazione di continuazione.

Le intestazioni dei token di continuazione vengono visualizzate nella tabella seguente.

 

Intestazione dei token di continuazione Descrizione

x-ms-continuation-NextTableName

Questa intestazione viene restituita nel contesto di un'operazione Query Tables (API REST). Se l'elenco di tabelle restituito non è completo, nell'intestazione dei token di continuazione viene incluso un hash della tabella successiva nell'elenco.

x-ms-continuation-NextPartitionKey

Questa intestazione viene restituita nel contesto di un'operazione Query Entities (API REST). L'intestazione contiene un hash della chiave di partizione successiva da restituire in una query successiva eseguita nella tabella.

x-ms-continuation-NextRowKey

Questa intestazione viene restituita nel contesto di un'operazione Query Entities (API REST). L'intestazione contiene un hash della chiave di riga successiva da restituire in una query successiva eseguita nella tabella.

Si noti che in alcuni casi, x-ms-continuation-NextRowKey può essere null.

Per recuperare i token di continuazione ed eseguire una query successiva per restituire la pagina successiva di risultati, analizzare le intestazioni della risposta per i token di continuazione. Se mancano le intestazioni o i valori delle intestazioni sono null, non verranno restituite entità aggiuntive. Se i token di continuazione vengono gestiti manualmente tramite la libreria client .NET Microsoft, è necessario eseguire il cast del risultato dell'operazione di query a un oggetto QueryOperationResponse. È possibile accedere alle intestazioni dei token di continuazione nella proprietà Headers dell'oggetto QueryOperationResponse.

Dopo avere recuperato i token di continuazione, utilizzare i relativi valori per creare una query per restituire la pagina successiva di risultati. Un URI della richiesta di query può accettare questi parametri, che corrispondono alle intestazioni dei token di continuazione restituite nella risposta:

  • NextTableName

  • NextPartitionKey

  • NextRowKey

noteNota
Un client può impostare un timeout per un'operazione di query utilizzando la proprietà Timeout della classe DataServiceContext. Il tempo totale assegnato alla richiesta per la pianificazione e l'elaborazione della query è 30 secondi, inclusi i cinque secondi per l'esecuzione della query.

Nel caso di operazioni di inserimento o eliminazione, è possibile che l'operazione abbia avuto esito positivo nel server malgrado l'errore restituito dal client. Questa situazione può verificarsi quando il timeout del client è impostato su un valore inferiore a 30 secondi, ovvero il timeout massimo per un'operazione di inserimento, aggiornamento o eliminazione.

Nell'esempio di codice seguente viene illustrato un set di intestazioni della risposta di esempio da una query di entità su una tabella denominata Customers che restituisce intestazioni di continuazione. Vengono restituite le intestazioni x-ms-continuation-NextPartitionKey e x-ms-continuation-NextRowKey.

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

La richiesta per la pagina successiva di dati può essere creata come l'URI seguente:

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

Vedere anche

Mostra:
© 2014 Microsoft