Unità richiesta in Azure Cosmos DBRequest units in Azure Cosmos DB

Azure Cosmos DB è il database multimodello distribuito a livello globale di Microsoft.Azure Cosmos DB is the Microsoft globally distributed multimodel database. Con Azure Cosmos DB non è necessario affittare macchine virtuali, distribuire software o monitorare database.With Azure Cosmos DB, you don't have to rent virtual machines, deploy software, or monitor databases. Azure Cosmos DB è gestito e monitorato costantemente dai migliori tecnici Microsoft, in modo da offrire disponibilità, prestazioni e protezione dei dati di elevata qualità.Azure Cosmos DB is operated and continuously monitored by Microsoft top engineers to deliver world-class availability, performance, and data protection. È possibile accedere ai dati tramite le API di propria scelta, come le API SQL, MongoDB e tabella e il grafo tramite l'API Gremlin.You can access your data by using APIs of your choice, like the SQL, MongoDB, and Table APIs, and graph via the Gremlin API. Tutte le API sono supportate in modo nativo.All APIs are all natively supported.

La valuta di Azure Cosmos DB è costituita dall'unità richiesta (UR).The currency of Azure Cosmos DB is the request unit (RU). Con le unità richiesta, non è necessario riservare capacità di lettura/scrittura né effettuare il provisioning di CPU, memoria e operazioni di I/O al secondo.With request units, you don't need to reserve read/write capacities or provision CPU, memory, and IOPS. Azure Cosmos DB supporta varie API che dispongono di operazioni diverse, che vanno dalla semplice lettura e scrittura alle query per grafi più complesse.Azure Cosmos DB supports various APIs that have different operations, ranging from simple reads and writes to complex graph queries. Poiché non tutte le richieste sono uguali, viene loro assegnata una quantità normalizzata di unità richiesta in base alla quantità di calcolo necessaria per servire la richiesta.Because not all requests are equal, requests are assigned a normalized quantity of request units based on the amount of computation required to serve the request. Il numero di unità richiesta per un'operazione è deterministico.The number of request units for an operation is deterministic. È possibile tenere traccia del numero di unità richiesta usate da qualsiasi operazione nel database di Azure Cosmos tramite un'intestazione di risposta.You can track the number of request units that are consumed by any operation in Azure Cosmos DB via a response header.

Per prestazioni prevedibili, riservare una velocità effettiva in unità di 100 UR/secondo.To provide predictable performance, reserve throughput in units of 100 RU/second. È possibile eseguire una stima delle esigenze di velocità effettiva usando il calcolatore di unità richiesta di Azure Cosmos DB.You can estimate your throughput needs by using the Azure Cosmos DB request unit calculator.

Calcolatore della velocità effettiva

Alla fine della lettura, si avranno le risposte alle domande seguenti:After reading this article, you'll be able to answer the following questions:

  • Cosa sono le unità richiesta e gli addebiti richiesta in Azure Cosmos DB?What are request units and request charges in Azure Cosmos DB?
  • Come è possibile specificare la capacità delle unità richiesta per un contenitore o un set di contenitori in Azure Cosmos DB?How do I specify request unit capacity for a container or set of containers in Azure Cosmos DB?
  • Come si possono stimare le esigenze relative alle unità richiesta per l'applicazione?How do I estimate my application's request unit needs?
  • Cosa succede se si supera la capacità delle unità richiesta per un contenitore o un set di contenitori in Azure Cosmos DB?What happens if I exceed request unit capacity for a container or set of containers in Azure Cosmos DB?

Poiché Azure Cosmos DB è un database multimodello, è importante tenere presente che questo articolo è applicabile a tutti i modelli di dati e alle API di Azure Cosmos DB.Because Azure Cosmos DB is a multimodel database, it's important to note that this article is applicable to all data models and APIs in Azure Cosmos DB. Questo articolo usa termini generici quali contenitore per fare riferimento in modo generico a una raccolta o un grafico e elemento per fare riferimento in modo generico a una tabella, documento, nodo o entità.This article uses generic terms like container to refer generically to a collection or graph and item to refer generically to a table, document, node, or entity.

Unità richiesta e addebiti richiestaRequest units and request charges

Azure Cosmos DB offre prestazioni veloci e prevedibili, riservando risorse per soddisfare le esigenze a livello di velocità effettiva dell'applicazione.Azure Cosmos DB delivers fast, predictable performance by reserving resources to satisfy the throughput needs of your application. Il carico dell'applicazione e i modelli di accesso cambiano nel tempo.Application load and access patterns change over time. Azure Cosmos DB consente di aumentare o diminuire agevolmente la quantità di velocità effettiva disponibile per l'applicazione.Azure Cosmos DB can help you easily increase or decrease the amount of reserved throughput available to your application.

Con Azure Cosmos DB, la velocità effettiva riservata è specificata in termini di unità richiesta elaborata al secondo.With Azure Cosmos DB, reserved throughput is specified in terms of request unit processing per second. Le unità richiesta possono essere considerate come valuta effettiva.You can think of request units as throughput currency. Si riservano diverse unità richiesta garantite perché siano disponibili al secondo per l'applicazione.You reserve a number of guaranteed request units to be available to your application on a per-second basis. Ogni operazione in Azure Cosmos DB, tra cui scrittura di un documento, esecuzione di una query e aggiornamento di un documento, usa CPU, memoria e operazioni di I/O al secondo.Each operation in Azure Cosmos DB, including writing a document, performing a query, and updating a document, consumes CPU, memory, and IOPS. In altre parole, ogni operazione comporta un addebito richiesta espresso in unità richiesta.That is, each operation incurs a request charge, which is expressed in request units. Quando si riconoscono i fattori che influiscono sugli addebiti delle unità richiesta e i requisiti di velocità effettiva dell'applicazione, è possibile eseguire l'applicazione nel modo più economicamente conveniente possibile.When you understand the factors that affect request unit charges and your application's throughput requirements, you can run your application as cost effectively as possible.

Per aiutare gli utenti a iniziare, Andrew Liu, Program Manager di Azure Cosmos DB, illustra le unità richiesta nel video seguente (nell'esempio delle unità di richiesta del video c'è un piccolo refuso:To help you get started, Azure Cosmos DB Program Manager Andrew Liu discusses request units in the following video (there is a minor typo in the request units example of the video. quando si usa 1 kB di dati cin 100.000 record, lo spazio di archiviazione totale è 100 MB e non 100 GB):When 1KB data with 100,000 records is used, the total storage is 100MB and not 100GB):

Isolamento della velocità effettiva nei database distribuiti a livello globaleThroughput isolation in globally distributed databases

Se si replica il database in più di un'area, Azure Cosmos DB implementa l'isolamento della velocità effettiva per assicurare che l'uso delle unità richiesta in un'area non abbia ripercussioni sull'uso delle unità richiesta in un'altra area.If you replicate your database to more than one region, Azure Cosmos DB provides throughput isolation to ensure that request unit usage in one region doesn't affect request unit usage in another region. Ad esempio, se si eseguono un'operazione di scrittura di dati in un'area e un'operazione di lettura di dati in un'altra area, le unità richiesta usate per eseguire l'operazione di scrittura nell'area A non vengono detratte dalle unità richiesta usate per l'operazione di lettura eseguita nell'area B. Le unità richiesta non vengono suddivise tra le aree in cui è stata eseguita la distribuzione del database.For example, if you write data to one region and read data from another region, the request units that are used to perform the write operation in region A don't take away from the request units that are used for the read operation in region B. Request units aren't split across the regions in which you've deployed your database. Ogni area in cui il database viene replicato dispone di tutte le unità richiesta per le quali è stato eseguito il provisioning.Each region in which the database is replicated has the full number of request units provisioned. Per altre informazioni sulla replica globale, vedere Come distribuire i dati a livello globale con Azure Cosmos DB.For more information about global replication, see How to distribute data globally with Azure Cosmos DB.

Considerazioni sulle unità richiestaRequest unit considerations

Quando si stima il numero di unità richiesta di cui eseguire il provisioning, è importante considerare le variabili seguenti:When you estimate the number of request units to provision, it's important to consider the following variables:

  • Dimensioni dell'elemento.Item size. Con l'aumento delle dimensioni, aumenta anche il numero di unità richiesta usate per leggere o scrivere i dati.As size increases, the number of request units consumed to read or write the data also increases.
  • Numero di proprietà dell'elemento.Item property count. Supponendo l'indicizzazione predefinita di tutte le proprietà, le unità usate per scrivere un documento, un nodo o un'entità aumentano man mano che aumenta il numero delle proprietà.Assuming default indexing of all properties, the units consumed to write a document, node, or entity increase as the property count increases.
  • Coerenza dei dati.Data consistency. Se si usano modelli di coerenza dei dati come Assoluta o Decadimento ristretto, verranno usate unità richiesta aggiuntive per leggere gli elementi.When you use data consistency models like Strong or Bounded Staleness, additional request units are consumed to read items.
  • Proprietà indicizzate.Indexed properties. I criteri di indicizzazione in ogni contenitore determinano le proprietà che vengono indicizzate per impostazione predefinita.An index policy on each container determines which properties are indexed by default. È possibile ridurre l'utilizzo di unità richiesta per operazioni di scrittura limitando il numero di proprietà indicizzate o abilitando l'indicizzazione differita.You can reduce your request unit consumption for write operations by limiting the number of indexed properties or by enabling lazy indexing.
  • Indicizzazione del documento.Document indexing. Per impostazione predefinita, ogni elemento viene automaticamente indicizzato.By default, each item is automatically indexed. Se si sceglie di non indicizzare alcuni elementi, è possibile usare un numero inferiore di unità richiesta.You consume fewer request units if you choose to not index some of your items.
  • Modelli di query.Query patterns. La complessità di una query influisce sulla quantità di unità richiesta usate per un'operazione.The complexity of a query affects how many request units are consumed for an operation. Il numero di risultati di query, il numero di predicati, la natura dei predicati, il numero di funzioni definite dall'utente, le dimensioni dei dati di origine e le proiezioni sono tutti fattori che incidono sul costo delle operazioni di query.The number of query results, the number of predicates, the nature of the predicates, the number of user-defined functions, the size of the source data, and projections all affect the cost of query operations.
  • Utilizzo di script.Script usage. Come le query, le stored procedure e i trigger utilizzano le unità richiesta in base alla complessità delle operazioni da eseguire.As with queries, stored procedures and triggers consume request units based on the complexity of the operations being performed. Quando si sviluppa l'applicazione, controllare l'intestazione per l'addebito delle richieste per comprendere meglio il modo in cui ciascuna operazione usa la capacità delle unità di richiesta.As you develop your application, inspect the request charge header to better understand how each operation consumes request unit capacity.

Stima delle esigenze di velocità effettivaEstimating throughput needs

Un'unità di richiesta è una misura normalizzata del costo di elaborazione della richiesta.A request unit is a normalized measure of request processing cost. Una singola unità richiesta rappresenta la capacità di elaborazione necessaria per leggere, tramite collegamento automatico o ID, un singolo elemento da 1 KB costituito da 10 valori di proprietà univoci, escluse le proprietà di sistema.A single request unit represents the processing capacity that's required to read (via self link or ID) a single 1-KB item that consists of 10 unique property values (excluding system properties). Una richiesta di creazione (inserimento), sostituzione o eliminazione dello stesso elemento userà più capacità di elaborazione del servizio e quindi richiederà più unità richiesta.A request to create (insert), replace, or delete the same item consumes more processing from the service and thereby requires more request units.

Nota

La base di 1 unità richiesta per un elemento da 1 KB corrisponde a una semplice operazione GET tramite collegamento automatico o ID dell'elemento.The baseline of 1 request unit for a 1-KB item corresponds to a simple GET by self link or ID of the item.

La tabella riportata di seguito mostra il numero di unità richiesta di cui effettuare il provisioning per elementi con tre dimensioni diverse, ovvero 1 KB, 4 KB e 64 KB, e due livelli di prestazioni diversi, ovvero 500 letture al secondo + 100 scritture al secondo e 500 letture al secondo + 500 scritture al secondo.For example, here's a table that shows how many request units to provision for items with three different sizes (1 KB, 4 KB, and 64 KB) and at two different performance levels (500 reads/second + 100 writes/second and 500 reads/second + 500 writes/second). In questo esempio, la coerenza dei dati è impostata come Sessione e i criteri di indicizzazione sono impostati su Nessuno.In this example, the data consistency is set to Session, and the indexing policy is set to None.

Dimensioni dell'elementoItem size Letture al secondoReads/second Scritture al secondoWrites/second Unità richiestaRequest units
1 KB1 KB 500500 100100 (500 * 1) + (100 * 5) = 1.000 UR/sec(500 * 1) + (100 * 5) = 1,000 RU/s
1 KB1 KB 500500 500500 (500 * 1) + (500 * 5) = 3.000 UR/sec(500 * 1) + (500 * 5) = 3,000 RU/s
4 KB4 KB 500500 100100 (500 * 1,3) + (100 * 7) = 1.350 UR/sec(500 * 1.3) + (100 * 7) = 1,350 RU/s
4 KB4 KB 500500 500500 (500 * 1,3) + (500 * 7) = 4.150 UR/sec(500 * 1.3) + (500 * 7) = 4,150 RU/s
64 KB64 KB 500500 100100 (500 * 10) + (100 * 48) = 9.800 UR/sec(500 * 10) + (100 * 48) = 9,800 RU/s
64 KB64 KB 500500 500500 (500 * 10) + (500 * 48) = 29.000 UR/sec(500 * 10) + (500 * 48) = 29,000 RU/s

Usare il calcolatore di unità richiestaUse the request unit calculator

Per ottimizzare le stime della velocità effettiva, è possibile usare una calcolatrice di unità richiesta basata sul web.To help you fine-tune your throughput estimations, you can use a web-based request unit calculator. La calcolatrice può aiutare a stimare i requisiti dell'unità richiesta per operazioni tipiche, tra cui:The calculator can help your estimate the request unit requirements for typical operations, including:

  • Creazione di elementi (scrittura)Item creates (writes)
  • Lettura di elementiItem reads
  • Eliminazione di elementiItem deletes
  • Aggiornamento di elementiItem updates

Lo strumento include anche il supporto per la stima delle esigenze di archiviazione dei dati in base agli elementi di esempio specificati.The tool also includes support for estimating data storage needs based on the sample items that you provide.

Per usare lo strumento:To use the tool:

  1. Caricare uno o più elementi rappresentativi, ad esempio un documento JSON.Upload one or more representative items (for example, a sample JSON document).

    Caricare elementi nel calcolatore di unità richiesta

  2. Per stimare i requisiti di archiviazione, immettere il numero totale di elementi (ad esempio, documenti, righe o vertici) che si prevede di archiviare.To estimate the data storage requirements, enter the total number of items (for example, documents, rows, or vertices) that you expect to store.
  3. Immettere il numero di operazioni di creazione, lettura, aggiornamento ed eliminazione necessarie (al secondo).Enter the number of create, read, update, and delete operations that you require (on a per-second basis). Per stimare gli addebiti delle unità richiesta per le operazioni di aggiornamento di elementi, caricare una copia dell'elemento di esempio usato nel passaggio 1 che include aggiornamenti di campi tipici.To estimate the request unit charges of item update operations, upload a copy of the sample item from step 1 that includes typical field updates. Ad esempio, se gli aggiornamenti di elementi modificano in genere due proprietà denominate lastLogin e userVisits, copiare un elemento di esempio, aggiornare i valori per queste due proprietà e successivamente caricare l'elemento copiato.For example, if item updates typically modify two properties named lastLogin and userVisits, copy a sample item, update the values for those two properties, and then upload the copied item.

    Immettere i requisiti relativi alla velocità effettiva nel calcolatore di unità richiesta

  4. Selezionare Calcola, quindi esaminare i risultati.Select Calculate, and then examine the results.

    Risultati del calcolatore di unità richiesta

Nota

Se sono presenti tipi di elementi che variano notevolmente in termini di dimensioni e numero di proprietà indicizzate, caricare un campione di ogni tipo di elemento tipico nello strumento e quindi calcolare i risultati.If you have item types that differ dramatically in terms of size and the number of indexed properties, upload a sample of each type of typical item to the tool, and then calculate the results.

Usare l'intestazione della risposta di addebito della richiesta di Azure Cosmos DBUse the Azure Cosmos DB request charge response header

Ogni risposta dal servizio Azure Cosmos DB include un'intestazione personalizzata (x-ms-request-charge) che contiene le unità richiesta usate per una determinata richiesta.Every response from the Azure Cosmos DB service includes a custom header (x-ms-request-charge) that contains the request units consumed for a given request. È possibile accedere a questa intestazione anche tramite gli SDK di Azure Cosmos DB.You can also access this header through the Azure Cosmos DB SDKs. In .NET SDK, RequestCharge è una proprietà dell'oggetto ResourceResponse.In the .NET SDK, RequestCharge is a property of the ResourceResponse object. Per quanto riguarda le query, Esplora dati di Azure Cosmos DB disponibile nel portale di Azure offre informazioni sugli addebiti per le richieste relative alle query eseguite.For queries, the Azure Cosmos DB Data Explorer in the Azure portal provides request charge information for executed queries. Per informazioni su come ottenere e impostare la velocità effettiva usando diverse API multimodello, vedere l'articolo Impostare e ottenere la velocità effettiva per i contenitori di Azure Cosmos DB.To learn about how to get and set throughput by using different multi-model APIs see set and get throughput in Azure Cosmos DB article.

Un metodo per stimare la quantità di velocità effettiva riservata richiesta dall'applicazione consiste nel registrare l'addebito delle unità richiesta associato all'esecuzione di operazioni tipiche rispetto a un elemento rappresentativo usato dall'applicazione.One method for estimating the amount of reserved throughput required by your application is to record the request unit charge associated with running typical operations against a representative item that's used by your application. Quindi, stimare il numero di operazioni che si prevede di eseguire ogni secondo.Then, estimate the number of operations you anticipate to perform each second. Assicurarsi di misurare e includere anche le query tipiche e l'utilizzo di script di Azure Cosmos DB.Be sure to also measure and include typical queries and Azure Cosmos DB script usage.

Nota

Se sono presenti tipi di elementi che variano notevolmente in termini di dimensioni e numero di proprietà indicizzate, registrare l'addebito delle unità richiesta per le operazioni applicabili associato a ogni tipo di elemento tipico.If you have item types that differ dramatically in terms of size and the number of indexed properties, record the applicable operation request unit charge associated with each type of typical item.

Ad esempio, di seguito vengono riportate le operazioni che è possibile eseguire:For example, these are the steps you might take:

  1. Registrare l'addebito delle unità richiesta di creazione (inserimento) di un elemento tipico.Record the request unit charge of creating (inserting) a typical item.
  2. Registrare l'addebito delle unità richiesta di lettura di un elemento tipico.Record the request unit charge of reading a typical item.
  3. Registrare l'addebito delle unità richiesta di aggiornamento di un elemento tipico.Record the request unit charge of updating a typical item.
  4. Registrare l'addebito delle unità richiesta di query tipiche su elementi comuni.Record the request unit charge of typical, common item queries.
  5. Registrare l'addebito delle unità richiesta di tutti gli script personalizzati (stored procedure, trigger, funzioni definite dall'utente) usati dall'applicazione.Record the request unit charge of any custom scripts (stored procedures, triggers, user-defined functions) that the application uses.
  6. Calcolare le unità richiesta necessarie in base al numero stimato di operazioni che si prevede di eseguire al secondo.Calculate the required request units given the estimated number of operations you anticipate to run each second.

Esempio di stima delle unità richiestaA request unit estimate example

Si consideri il seguente documento, delle dimensioni approssimative di 1 kB:Consider the following document, which is approximately 1 KB in size:

{
 "id": "08259",
  "description": "Cereals ready-to-eat, KELLOGG, KELLOGG'S CRISPIX",
  "tags": [
    {
      "name": "cereals ready-to-eat"
    },
    {
      "name": "kellogg"
    },
    {
      "name": "kellogg's crispix"
    }
  ],
  "version": 1,
  "commonName": "Includes USDA Commodity B855",
  "manufacturerName": "Kellogg, Co.",
  "isFromSurvey": false,
  "foodGroup": "Breakfast Cereals",
  "nutrients": [
    {
      "id": "262",
      "description": "Caffeine",
      "nutritionValue": 0,
      "units": "mg"
    },
    {
      "id": "307",
      "description": "Sodium, Na",
      "nutritionValue": 611,
      "units": "mg"
    },
    {
      "id": "309",
      "description": "Zinc, Zn",
      "nutritionValue": 5.2,
      "units": "mg"
    }
  ],
  "servings": [
    {
      "amount": 1,
      "description": "cup (1 NLEA serving)",
      "weightInGrams": 29
    }
  ]
}

Nota

I documenti sono minimizzati in Azure Cosmos DB, quindi le dimensioni del documento precedente calcolate dal sistema sono leggermente inferiori a 1 kB.Documents are minified in Azure Cosmos DB, so the system-calculated size of the document above is slightly less than 1 KB.

La tabella seguente mostra gli addebiti dell'unità richiesta approssimativi per le operazioni tipiche su questo elemento.The following table shows approximate request unit charges for typical operations on this item. (L'addebito di unità richiesta approssimativo presuppone che il livello di coerenza account sia impostato su Sessione e che tutti gli elementi siano indicizzati automaticamente.)(The approximate request unit charge assumes that the account consistency level is set to Session and that all items are automatically indexed.)

OperazioneOperation Addebito delle unità richiestaRequest unit charge
Creare elementoCreate item ~15 unità richiesta~15 RU
Leggere l'elementoRead item ~1 unità richiesta~1 RU
Eseguire query sull'elemento in base all'IDQuery item by ID ~2,5 unità richiesta~2.5 RU

La tabella seguente mostra gli addebiti approssimativi delle unità richiesta per le query tipiche usate nell'applicazione:The following table shows approximate request unit charges for typical queries used in the application:

QueryQuery Addebito delle unità richiestaRequest unit charge Numero di elementi restituiti# of returned items
Selezionare alimenti in base all'IDSelect food by ID ~2,5 unità richiesta~2.5 RU 11
Selezionare alimenti in base al produttoreSelect foods by manufacturer ~7 unità richiesta~7 RU 77
Selezionare per gruppo di alimenti e ordinare in base al pesoSelect by food group and order by weight ~70 unità richiesta~70 RU 100100
Selezionare i primi 10 alimenti in un gruppo di alimentiSelect top 10 foods in a food group ~10 unità richiesta~10 RU 1010

Nota

Gli addebiti delle unità richiesta variano in base al numero di elementi restituiti.Request unit charges vary based on the number of items returned.

Con queste informazioni è possibile stimare i requisiti relativi alle unità richiesta per questa applicazione, dato il numero di operazioni e query previste al secondo:With this information, you can estimate the request unit requirements for this application given the number of operations and queries that you expect per second:

Operazione/queryOperation/query Numero stimato al secondoEstimated number per second Unità richiesta desiderateRequired request units
Creare elementoCreate item 1010 150150
Leggere l'elementoRead item 100100 100100
Selezionare alimenti in base al produttoreSelect foods by manufacturer 2525 175175
Selezionare per gruppo di alimentiSelect by food group 1010 700700
Selezionare i primi 10Select top 10 1515 Totale 150150 Total

Si prevede in questo caso un requisito di velocità effettiva medio di 1.275 unità richiesta al secondo.In this case, you expect an average throughput requirement of 1,275 RU/second. Arrotondando a 100 unità più vicine, si dovrà effettuare il provisioning di 1300 unità richiesta al secondo per il contenitore dell'applicazione o per un set di contenitori.Rounding up to the nearest 100, you would provision 1,300 RU/second for this application's container (or set of containers).

Superamento dei limiti della velocità effettiva riservata in Azure Cosmos DBExceeding reserved throughput limits in Azure Cosmos DB

L'utilizzo di unità richiesta viene valutato con una tariffa al secondo.Request unit consumption is evaluated at a per-second rate. Per le applicazioni che superano la frequenza di unità richiesta con provisioning, la frequenza delle richieste viene limitata fino al ritorno della frequenza sotto il livello di velocità effettiva con provisioning.For applications that exceed the provisioned request unit rate, requests are rate-limited until the rate drops below the provisioned throughput level. Quando la frequenza di una richiesta è limitata, il server la chiude in modo preventivo con RequestRateTooLargeException (codice di stato HTTP 429) e restituisce l'x-ms-retry-after-ms intestazione.When a request is rate-limited, the server preemptively ends the request with RequestRateTooLargeException (HTTP status code 429) and returns the x-ms-retry-after-ms header. L'intestazione indica il tempo, in millisecondi, che l'utente deve attendere prima di riprovare la richiesta.The header indicates the amount of time, in milliseconds, that the user must wait before retrying the request.

HTTP Status 429
Status Line: RequestRateTooLarge
x-ms-retry-after-ms :100

Se si usano le query .NET Client SDK e LINQ, la maggior parte delle volte non è necessario gestire questa eccezione.If you use the .NET Client SDK and LINQ queries, most of the time, you never have to deal with this exception. La versione corrente del Software Development Kit .NET Client cattura implicitamente questa risposta, rispetta l'intestazione retry-after specificata dal server e riprova automaticamente la richiesta.The current version of the .NET Client SDK implicitly catches this response, respects the server-specified retry-after header, and automatically retries the request. A meno che all'account non accedano contemporaneamente più client, il tentativo successivo riuscirà.Unless your account is being accessed concurrently by multiple clients, the next retry will succeed.

Se più client operano collettivamente al di sopra della frequenza delle richieste, il comportamento di ripetizione dei tentativi predefinito potrebbe essere insufficiente e il client genererà una DocumentClientException con codice di stato 429 per l'applicazione.If you have more than one client cumulatively operating above the request rate, the default retry behavior might be insufficient, and the client throws a DocumentClientException with status code 429 to the application. In casi come questo, si può valutare la possibilità di gestire la logica e il comportamento di ripetizione dei tentativi nelle routine di gestione degli errori dell'applicazione o di aumentare la velocità effettiva di cui è stato eseguito il provisioning per il contenitore o per il set di contenitori.In cases like this, you might want to consider handling the retry behavior and logic in your application's error-handling routines or increase the throughput provisioned for the container (or set of containers).

Passaggi successiviNext steps