Quote e limiti

Questa pagina descrive le quote e i limiti di produzione per Spanner. Quota e limite potrebbero essere utilizzati in modo intercambiabile nella console Google Cloud .

I valori di quote e limiti sono soggetti a modifiche.

Autorizzazioni per controllare e modificare le quote

Per visualizzare le quote, devi disporre dell'autorizzazione serviceusage.quotas.get Identity and Access Management (IAM).

Per modificare le quote, devi disporre dell'autorizzazione IAM serviceusage.quotas.update. che è già inclusa per impostazione predefinita per i seguenti ruoli predefiniti: Proprietario, Editor e Amministratore quota.

Queste autorizzazioni sono incluse per impostazione predefinita nei ruoli IAM di base Proprietario ed Editor, nonché nel ruolo Amministratore quota predefinito.

Verifica le tue quote

Per controllare le quote attuali per le risorse nel tuo progetto, utilizza la consoleGoogle Cloud :

Vai a Quote

Per controllare il limite di nodi per una configurazione dell'istanza personalizzata, controlla il limite di nodi della configurazione dell'istanza di base. Per ottenere la configurazione di base della configurazione dell'istanza personalizzata, vedi Mostra i dettagli delle configurazioni dell'istanza.

Aumentare le quote

Man mano che il tuo utilizzo di Spanner aumenta nel tempo, le tue quote possono aumentare di conseguenza. Se prevedi un aumento imminente e consistente dell'utilizzo, devi inviare la richiesta con qualche giorno di anticipo per verificare che le quote siano dimensionate in modo adeguato.

Per richiedere un aumento della quota (incluso il limite dei nodi), consulta Gestisci le quote utilizzando la console Google Cloud .

Se hai una configurazione dell'istanza personalizzata e hai bisogno di un limite di nodi superiore a 85, compila il modulo Richiedi un aumento della quota per i nodi Spanner. Specifica l'ID della tua configurazione dell'istanza personalizzata nel modulo.

Limiti di nodi

Valore Limite
Configurazione dei nodi per istanza

I limiti predefiniti variano in base alla configurazione del progetto e dell'istanza. Per modificare i limiti di quota del progetto o richiedere un aumento del limite, consulta Aumentare le quote.

Limiti per le istanze

Valore Limite
Lunghezza ID istanza Da 2 a 64 caratteri

Limiti delle istanze di prova senza costi

Un'istanza di prova senza costi di Spanner presenta i seguenti limiti aggiuntivi. Per aumentare o rimuovere questi limiti, esegui l'upgrade dell'istanza di prova senza costi a un'istanza a pagamento.

Valore Limite
Capacità dello spazio di archiviazione 10 GB
Limite del database Crea fino a cinque database
Funzionalità non supportate Backup e ripristino
SLA Nessuno SLA
Periodo di prova Periodo di prova senza costi di 90 giorni

Limiti del partizionamento geografico

Valore Limite
Numero massimo di partizioni per istanza 20
Numero massimo di posizionamenti per database 50
Numero massimo di righe di posizionamento per nodo nella partizione 100 milioni

Limiti delle query salvate

Valore Limite
Numero massimo di query salvate per progetto (incluse le query salvate per altri Google Cloud prodotti) 10.000
Dimensione massima per ogni query 1 MiB

Limiti di configurazione dell'istanza

Valore Limite
Numero massimo di configurazioni di istanze personalizzate per progetto 100
Lunghezza dell'ID configurazione istanza personalizzata

Da 8 a 64 caratteri

Un ID configurazione dell'istanza personalizzata deve iniziare con custom-

Limiti per i database

Valore Limite
Database per istanza
  • Per istanze di 1 nodo (1000 unità di elaborazione) e superiori: 100 database
  • Per istanze di dimensioni inferiori a 1 nodo: 10 database ogni 100 unità di elaborazione
Ruoli per database 100
Lunghezza ID database Da 2 a 30 caratteri
Dimensioni dello spazio di archiviazione1
  • Per istanze di 1 nodo (1000 unità di elaborazione) e più grandi: 10 TiB per nodo
  • Per istanze più piccole di 1 nodo: 1024,0 GiB per 100 unità di elaborazione

Una maggiore capacità di archiviazione di 10 TiB per nodo è disponibile nella maggior parte delle configurazioni di istanze Spanner regionali, a due regioni e multiregionali. Per saperne di più, vedi Miglioramenti di prestazioni e spazio di archiviazione.

Se utilizzi l'archiviazione a più livelli, puoi utilizzare uno spazio di archiviazione combinato (SSD e HDD) fino a 10 TiB per nodo.

I backup vengono archiviati separatamente e non vengono conteggiati ai fini di questo limite. Per saperne di più, consulta Metriche di utilizzo dello spazio di archiviazione.

Tieni presente che Spanner fattura lo spazio di archiviazione effettivo utilizzato all'interno di un'istanza e non lo spazio di archiviazione totale disponibile.

Limiti di backup e ripristino

Valore Limite
Numero di operazioni di creazione di backup in corso per database 1 (si applica solo ai backup on demand). Le pianificazioni di backup hanno vincoli di frequenza propri e non sono soggette a questo limite.
Numero di operazioni di ripristino del database in corso per istanza per il database ripristinato, non per il backup. 10
Periodo massimo di conservazione del backup 1 anno, incluso il giorno aggiuntivo di un anno bisestile.

Limiti per gli schemi

Oggetti di schema

Valore Limite
Il numero totale di oggetti schema in tutti i database della stessa istanza I limiti predefiniti variano in base alla configurazione dell'istanza2

Istruzioni DDL

Valore Limite
Dimensioni dell'istruzione DDL per una singola modifica dello schema 10 MiB
Dimensioni dell'istruzione DDL per l'intero schema di un database, come viene restituita da GetDatabaseDdl 10 MiB

Grafici

Valore Limite
Grafici delle proprietà per database 250
Lunghezza del nome del grafico delle proprietà Da 1 a 128 caratteri

Tabelle

Valore Limite
Tabelle per database 5000
Lunghezza nome tabella Da 1 a 128 caratteri
Colonne per tabella 1024
Lunghezza nome colonna Da 1 a 128 caratteri
Dimensione massima dei dati per cella 10 MiB
Dimensione di una cella STRING 2.621.440 caratteri Unicode
Numero di colonne in una chiave di tabella

16

Include le colonne chiave condivise con qualsiasi tabella principale.

Profondità interfoliazione tabelle

7

Una tabella di primo livello con tabelle figlio ha profondità 1.

Una tabella di primo livello con tabelle secondarie ha profondità 2 e le tabelle nidificate successive aumentano la profondità di conseguenza.

Dimensione massima di una chiave primaria o di una chiave di indice per riga

8 KiB

Includono le dimensioni di tutte le colonne che compongono la chiave.

Dimensione totale delle colonne non chiave per riga

1600 MiB

Include le dimensioni di tutte le colonne non chiave per riga di una tabella

Indici

Valore Limite
Indici per database 10.000
Indici per tabella 128
Lunghezza nome indice Da 1 a 128 caratteri
Numero di colonne in una chiave di indice

16

Il numero di colonne indicizzate (eccetto le colonne STORING) più il numero di colonne di chiave primaria nella tabella di base.

Visualizzazioni

Valore Limite
Visualizzazioni per database 5000
Lunghezza del nome della vista Da 1 a 128 caratteri
Profondità di nidificazione

10

Una visualizzazione che fa riferimento a un'altra visualizzazione ha una profondità di nidificazione pari a 1. Una vista che fa riferimento a un'altra vista che a sua volta fa riferimento a un'altra vista ancora ha una profondità di nidificazione pari a 2 e così via.

Gruppi di località

Valore Limite
Numero massimo di gruppi di località per database 16 (1 gruppo di località predefinito e 15 gruppi di località aggiuntivi facoltativi)
Quantità minima di tempo richiesta nell'opzione ssd_to_hdd_spill_timespan 1 ora
Quantità massima di tempo consentita nell'opzione ssd_to_hdd_spill_timespan 365 giorni

Limiti per le query

Valore Limite
Colonne in una clausola GROUP BY 1000
Valori in un operatore IN 10.000
Chiamate di funzione 1000
Unioni 20
Chiamate delle funzioni nidificate 75
Clausole GROUP BY nidificate 35
Espressioni sottoquery nidificate 25
Istruzioni selezione secondaria nidificate 60
Unioni prodotte da una query del grafico 100
Parametri 950
Lunghezza istruzione query 1 milione di caratteri
STRUCT campi 1000
Espressione sottoquery secondaria 50
Unioni in una query 200
Profondità dell'attraversamento del percorso quantificato del grafico 100

Limiti per la creazione, la lettura, l'aggiornamento e l'eliminazione di dati

Valore Limite
Dimensioni del commit (inclusi indici e modifiche in tempo reale) 100 MiB
Letture simultanee per sessione 100
Mutazioni per commit (per l'API Mutation) (inclusi gli indici)3,10 80.000
Modifiche per istruzione DML (inclusi gli indici)3,10 80.000
Mutazioni per gruppo di mutazioni in una richiesta di scrittura batch 80.000
Istruzioni DML partizionate simultanee per database 20.000

Limiti amministrativi

Valore Limite
Dimensioni della richiesta di azioni amministrative4 1 MiB
Limite di frequenza per le azioni amministrative5

5 al secondo per progetto per utente

(su una media di 100 secondi)

Limiti per le richieste

Valore Limite
Dimensioni delle richieste diverse da quelle per i commit6 10 MiB

Limiti dei flussi di modifiche

Valore Limite
Modifiche in tempo reale per database 10
Modifiche in tempo reale che guardano una determinata colonna non chiave7 3
Lettori simultanei per partizione di dati dello stream di modifiche8 20

Limiti di Data Boost

Valore Limite
Richieste Data Boost simultanee per progetto in us-central1 1000 9
Richieste Data Boost simultanee per progetto per regione in altre regioni 400 9
Richieste Data Boost simultanee in millisecondi per progetto per regione 1.000.000 9

Limiti della coda

Valore Limite
Code per istanza 10 code per 100 unità di elaborazione, fino a 100 code
TVF riceventi queue simultanee per progetto per regione 2000

Limiti dell'API pre-splitting

Valore Limite
Punti di divisione aggiunti per richiesta API 100
Dimensioni della richiesta API del punto di divisione 1 MiB
Punti di divisione aggiunti per nodo per tutti i database nell'istanza 50
Punti di suddivisione aggiunti o aggiornati al minuto per nodo 10
Punti suddivisi aggiunti o aggiornati al giorno per nodo 200

Note

1. Per fornire alta affidabilità e bassa latenza per l'accesso a un database, Spanner definisce i limiti di archiviazione in base alla capacità di calcolo dell'istanza:

  • Per le istanze più piccole di 1 nodo (1000 unità di elaborazione), Spanner assegna 1024,0 GiB di dati per ogni 100 unità di elaborazione nel database.
  • Per le istanze con 1 nodo o più, Spanner assegna 10 TiB di dati per ogni nodo.

Ad esempio, per creare un'istanza per un database da 1500 GiB, devi impostare la capacità di calcolo su 200 unità di elaborazione. Questa quantità di capacità di calcolo manterrà l'istanza al di sotto del limite finché il database non supererà 2048,0 GiB. Una volta raggiunta questa dimensione, devi aggiungere altre 100 unità di elaborazione per consentire al database di crescere. In caso contrario, le operazioni di scrittura nel database potrebbero essere rifiutate. Per saperne di più, consulta Suggerimenti per l'utilizzo dello spazio di archiviazione del database.

Per un'esperienza di crescita fluida, aggiungi capacità di calcolo prima che venga raggiunto il limite per il tuo database.

2. Gli oggetti schema contabilizzati includono tutti i tipi di oggetti descritti in DDL come tabelle, colonne, indici, sequenze e così via. Il limite degli oggetti schema viene applicato a livello di istanza e dipende dalle unità di elaborazione disponibili per la tua istanza.

  • Per le istanze di uno o più nodi, il limite predefinito è di un milione di oggetti.
  • Per le istanze più piccole di un nodo (1000 unità di elaborazione), il limite diminuisce proporzionalmente alle dimensioni dell'istanza. Ad esempio, il limite è di 100.000 oggetti schema per le istanze con 100 unità di elaborazione.

Per controllare il conteggio degli oggetti dello schema per i tuoi database e il limite di oggetti per la tua istanza, cerca le metriche spanner.googleapis.com/instance/schema_objects e spanner.googleapis.com/instance/schema_object_count_limit in Esplora metriche. Per saperne di più sul monitoraggio, consulta Monitorare le istanze con Cloud Monitoring.

Se raggiungi il limite, Spanner ti impedisce di eseguire operazioni che lo superano, ad esempio:

  • Modifica dello schema del database (ad esempio, aggiunta di un indice).
  • Creazione di un nuovo database nell'istanza.
  • Ripristino di un database da un backup nella stessa istanza. In questo caso, puoi ripristinare il backup in un'altra istanza con la stessa configurazione o creare una nuova istanza con la stessa configurazione e ripristinare il backup nella nuova istanza.

3. Le operazioni di inserimento e aggiornamento vengono conteggiate in base alla molteplicità del numero di colonne interessate e le colonne della chiave primaria sono sempre interessate. Ad esempio, l'inserimento di un nuovo record può essere conteggiato come cinque mutazioni, se i valori vengono inseriti in cinque colonne. L'aggiornamento di tre colonne in un record può essere conteggiato anche come cinque mutazioni se il record ha due colonne di chiave primaria. Le operazioni di eliminazione e di eliminazione dell'intervallo vengono conteggiate come una mutazione, indipendentemente dal numero di colonne interessate. Anche l'eliminazione di una colonna da una tabella principale che include l'annotazione ON DELETE CASCADE conta come una modifica, indipendentemente dal numero di righe figlio con interfoliazione presenti. Costituisce un'eccezione la presenza di indici secondari definiti nelle righe da eliminare: in tal caso, le modifiche agli indici secondari saranno contate individualmente. Ad esempio, se una tabella ha due indici secondari, l'eliminazione di un intervallo di righe nella tabella verrà conteggiata come una mutazione per la tabella, più due mutazioni per ogni riga eliminata perché le righe nell'indice secondario potrebbero essere sparse nello spazio delle chiavi, rendendo impossibile per Spanner chiamare una singola operazione di eliminazione dell'intervallo sugli indici secondari. Gli indici secondari includono gli indici di supporto delle chiavi esterne.

Per trovare il conteggio delle mutazioni per una transazione, vedi Recupero delle statistiche dei commit per una transazione.

Gli stream di modifiche in tempo reale non aggiungono mutazioni che vengono conteggiate ai fini di questo limite.

4. Il limite per una richiesta di azione amministrativa esclude i commit, le richieste elencate nella nota 9 e le modifiche allo schema.

5. Questo limite di frequenza include tutte le chiamate all'API Admin, che include le chiamate per eseguire il polling di operazioni a lunga esecuzione su un'istanza, un database o un backup.

6. Questo limite include richieste di creazione e aggiornamento di un database, letture, flussi di letture, esecuzione di query SQL ed esecuzione di flussi di query SQL.

7. Un flusso di modifiche che monitora una tabella o un database intero monitora implicitamente ogni colonna della tabella o del database e pertanto viene conteggiato ai fini di questo limite.

8. Questo limite si applica ai lettori simultanei della stessa partizione delle modifiche in tempo reale, indipendentemente dal fatto che si tratti di pipeline Dataflow o query API dirette.

9. I limiti predefiniti variano in base al progetto e alle regioni. Per saperne di più, consulta Monitora e gestisci l'utilizzo della quota Data Boost.

10. Quando scrivi in una tabella che contiene colonne generate o colonne con valori predefiniti, il numero di mutazioni per la scrittura viene calcolato come segue per ogni riga:

  • Mutazioni totali = (Numero di colonne scritte esplicitamente) + (Numero di colonne generate o colonne con valori predefiniti) + (Numero di colonne della chiave primaria)

Ad esempio, se hai una tabella con 2 colonne di chiave primaria e 1 colonna generata, l'inserimento di una singola riga (fornendo valori per le 2 colonne di chiave primaria) conta come 5 mutazioni:

  • 2 (per le colonne scritte in modo esplicito) + 1 (per la colonna generata) + 2 (per le chiavi primarie).