Spanner fornisce tabelle integrate che registrano la lettura (o query), scrivere ed eliminare le statistiche relative alle operazioni per le tabelle (incluse le variazioni flussi di tabelle) e indici. Con le statistiche sulle operazioni sulle tabelle puoi:
Identifica le tabelle con un aumento del traffico di scrittura corrispondente all'aumento dello spazio di archiviazione.
Identifica le tabelle con traffico di lettura, scrittura ed eliminazione imprevisti.
Identifica le tabelle di uso intensivo.
Quando esegui una query o scrivi in una tabella, le operazioni corrispondenti contano per il di 1, a prescindere dal numero di righe a cui si accede.
Le metriche generali delle operazioni al secondo di un database possono essere monitorate con
Operations per second
, Operations per second by API method
e altro
metriche correlate negli approfondimenti sul sistema.
grafici.
Disponibilità
Spanner fornisce le statistiche delle operazioni tabella
Schema SPANNER_SYS
. I dati di SPANNER_SYS
sono disponibili solo tramite SQL
interfacce. Ad esempio:
Pagina Spanner Studio di un database nella console Google Cloud
Il comando
gcloud spanner databases execute-sql
L'API
executeQuery
Gli altri metodi di lettura singoli forniti da Spanner non supportano
SPANNER_SYS
.
Statistiche sulle operazioni della tabella
Le seguenti tabelle monitorano le statistiche di lettura (o query), scrittura ed eliminazione sul tuo di tabelle e indici durante un periodo di tempo specifico:
SPANNER_SYS.TABLE_OPERATIONS_STATS_MINUTE
: operazioni durante intervalli di 1 minutoSPANNER_SYS.TABLE_OPERATIONS_STATS_10MINUTE
: operazioni durante intervalli di 10 minutiSPANNER_SYS.TABLE_OPERATIONS_STATS_HOUR
: operazioni a intervalli di 1 ora
Queste tabelle hanno le seguenti proprietà:
Ogni tabella contiene dati per intervalli di tempo non sovrapposti della durata specificata dal nome della tabella.
Gli intervalli si basano sull'ora dell'orologio. Gli intervalli di 1 minuto iniziano al minuto, quelli di 10 minuti ogni 10 minuti a partire dall'ora e quelli di 1 ora a partire dall'ora.
Ad esempio, alle 00:59:30, gli intervalli più recenti disponibili per le query SQL sono:
- 1 minuto: dalle 00:58:00 alle 00:58:59
- 10 minuti: 11:40:00-11:49:59
- 1 ora: dalle 10:00:00 alle 10:59:59 AM
Schema per tutte le tabelle delle statistiche delle operazioni sulle tabelle
Nome colonna | Tipo | Descrizione |
---|---|---|
INTERVAL_END |
TIMESTAMP |
Fine dell'intervallo di tempo in cui sono state raccolte le dimensioni della tabella. |
TABLE_NAME |
STRING |
Nome della tabella o dell'indice. |
READ_QUERY_COUNT |
INT64 |
Numero di query o letture che vengono lette dalla tabella. |
WRITE_COUNT |
INT64 |
Numero di query che scrivono nella tabella. |
DELETE_COUNT |
INT64 |
Numero di query che eseguono eliminazioni nella tabella. |
Se inserisci dati nel database utilizzando le mutazioni, write_count
incrementi di 1 per ogni tabella a cui accede l'istruzione di inserimento. Inoltre,
una query che accede a un indice, senza eseguire la scansione della tabella sottostante, incrementa solo
read_query_count
nell'indice.
Conservazione dei dati
Come minimo, Spanner conserva i dati per ogni tabella per i seguenti periodi di tempo:
SPANNER_SYS.TABLE_OPERATIONS_STATS_MINUTE
: intervalli che coprono le 6 ore precedenti.SPANNER_SYS.TABLE_OPERATIONS_STATS_10MINUTE
: intervalli che coprono i 4 giorni precedenti.SPANNER_SYS.TABLE_OPERATIONS_STATS_HOUR
: intervalli che coprono gli ultimi 30 giorni.
Esempi di query
Questa sezione include diversi esempi di istruzioni SQL che recuperano le statistiche aggregate delle operazioni sulle tabelle. Puoi eseguire queste istruzioni SQL utilizzando le librerie client o gcloud spanner.
Esegui query sulle tabelle e sugli indici con il maggior numero di operazioni di scrittura per l'intervallo più recente
SELECT interval_end, table_name, write_count FROM spanner_sys.table_operations_stats_minute WHERE interval_end = ( SELECT MAX(interval_end) FROM spanner_sys.table_operations_stats_minute) ORDER BY write_count DESC;
Esegui query su tabelle e indici con il maggior numero di operazioni di eliminazione per l'intervallo più recente
SELECT interval_end, table_name, delete_count FROM spanner_sys.table_operations_stats_minute WHERE interval_end = ( SELECT MAX(interval_end) FROM spanner_sys.table_operations_stats_minute) ORDER BY delete_count DESC;
Esegui query sulle tabelle e sugli indici con le operazioni di lettura e query più frequenti per l'intervallo più recente
SELECT interval_end, table_name, read_query_count FROM spanner_sys.table_operations_stats_minute WHERE interval_end = ( SELECT MAX(interval_end) FROM spanner_sys.table_operations_stats_minute) ORDER BY read_query_count DESC;
Esegui una query sull'utilizzo di una tabella nelle ultime 6 ore
SELECT interval_end, read_query_count, write_count, delete_count FROM spanner_sys.table_operations_stats_minute WHERE table_name = table_name ORDER BY interval_end DESC;
Dove:
table_name
deve essere una tabella o un indice esistente nel database.
Esegui una query sull'utilizzo di una tabella negli ultimi 14 giorni
GoogleSQL
SELECT interval_end, read_query_count, write_count, delete_count FROM spanner_sys.table_operations_stats_hour WHERE interval_end > TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL -14 DAY) AND table_name = table_name ORDER BY interval_end DESC;
Dove:
table_name
deve essere una tabella o un indice esistente nel database.
Esegui query sulle tabelle e sugli indici che non sono stati utilizzati nelle ultime 24 ore
GoogleSQL
(SELECT t.table_name FROM information_schema.tables AS t WHERE t.table_catalog = "" AND t.table_schema = "" AND t.table_type = "BASE TABLE" UNION ALL SELECT cs.change_stream_name FROM information_schema.change_streams cs WHERE cs.change_stream_catalog = "" AND cs.change_stream_schema = "" UNION ALL SELECT idx.index_name FROM information_schema.indexes idx WHERE idx.index_type = "INDEX" AND idx.table_catalog = "" AND idx.table_schema = "") EXCEPT ALL (SELECT DISTINCT(table_name) FROM spanner_sys.table_operations_stats_hour WHERE interval_end > TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL -24 HOUR));
Passaggi successivi
Utilizza le statistiche sulle dimensioni delle tabelle per determinare le dimensioni delle tabelle e degli indici.
Scopri altri strumenti di introspezione.
Scopri di più sulle best practice per SQL per Spanner.