Timeout di query e la paginazione
Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Timeout di query e la paginazione

 

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

  • L'operazione Query Tables 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 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 o Query Entities.

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. 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. 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. 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.

System_CAPS_noteNota

Quando si effettuano le richieste successive che includono i token di continuazione, assicurarsi di passare l'URI originale nella richiesta. Ad esempio, se è stato specificato un $filter, $select, o $top opzione di query come parte della richiesta originale, si potrebbe voler includere questa opzione per le richieste successive. In caso contrario, le richieste successive possono restituire risultati imprevisti.

Si noti che il $top query opzione specifica in questo caso il numero massimo di risultati per pagina, non imposta il numero massimo di risultati nell'intera risposta.

Vedere Query di tabelle ed entità Per ulteriori dettagli.

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

System_CAPS_noteNota

Il tempo totale assegnato alla richiesta per la pianificazione e l'elaborazione di una query è 30 secondi, tra cui cinque secondi per l'esecuzione della query.

Se l'operazione insert, update o operazione di eliminazione, l'operazione siano riusciti 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--
Mostra:
© 2016 Microsoft