Spanner fornisce le seguenti tabelle integrate:
SPANNER_SYS.TABLE_SIZES_STATS_1HOUR
: elenca le dimensioni delle tabelle e degli indici all'interno dei database.SPANNER_SYS.TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR
: elenca le dimensioni delle tabelle e degli indici all'interno dei database per ogni gruppo di località.
Le dimensioni della tabella sono espresse in byte. Le dimensioni delle tabelle includono le versioni dei dati. Puoi utilizzare queste tabelle integrate per monitorare le dimensioni di tabelle e indici nel tempo. Puoi anche monitorare le dimensioni degli indici mentre li crei, li elimini e li modifichi (ad esempio quando inserisci altre righe nell'indice o quando aggiungi nuove colonne). Inoltre, puoi anche esaminare le dimensioni delle tabelle del flusso di modifiche.
Lo spazio di archiviazione del database può essere monitorato con la metrica Spazio di archiviazione totale del database.
Puoi visualizzare la suddivisione dello spazio di archiviazione del database con
SPANNER_SYS.TABLE_SIZES_STATS_1HOUR
e
SPANNER_SYS.TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR
.
Accedere alle statistiche sulle dimensioni delle tabelle
Spanner fornisce le statistiche sulle dimensioni delle tabelle nello schema SPANNER_SYS
. Puoi utilizzare i seguenti metodi per accedere ai dati di SPANNER_SYS
:
La pagina Spanner Studio di un database nella console Google Cloud .
Il comando
gcloud spanner databases execute-sql
.Il metodo
executeSql
oexecuteStreamingSql
.
I seguenti metodi di lettura singola forniti da Spanner
non supportano SPANNER_SYS
:
- Esecuzione di una lettura coerente da una o più righe di una tabella.
- Esecuzione di una lettura obsoleta da una o più righe di una tabella.
- Lettura da una singola riga o da più righe in un indice secondario.
TABLE_SIZES_STATS_1HOUR
SPANNER_SYS.TABLE_SIZES_STATS_1HOUR
contiene le dimensioni di tutte le tabelle nel
tuo database, ordinate per interval_end
. Gli intervalli si basano sull'orologio,
terminando all'ora. Internamente, ogni 5 minuti Spanner raccoglie
i dati da tutti i server e li rende disponibili nella
tabella TABLE_SIZES_STATS_1HOUR
poco dopo. I dati vengono poi calcolati
in media ogni ora. Ad esempio, alle 11:59:30, TABLE_SIZES_STATS_1HOUR
mostra le dimensioni medie delle tabelle dell'intervallo 10:00:00 - 10:59:59.
Schema tabella
Nome colonna | Tipo | Descrizione |
---|---|---|
INTERVAL_END |
TIMESTAMP |
Fine dell'intervallo di tempo in cui sono state raccolte le dimensioni della tabella. |
TABLE_NAME |
STRING |
Il nome della tabella o dell'indice. |
USED_BYTES |
FLOAT64 |
Dimensioni della tabella in byte. |
USED_SSD_BYTES |
FLOAT64 |
Spazio di archiviazione SSD utilizzato dalla tabella in byte. |
USED_HDD_BYTES |
FLOAT64 |
Spazio di archiviazione HDD utilizzato dalla tabella in byte. |
Esempi di query
Questa sezione include diversi esempi di istruzioni SQL che recuperano le statistiche aggregate delle dimensioni delle tabelle. Puoi eseguire queste istruzioni SQL utilizzando le librerie client, gcloud spanner o la Google Cloud console.
Esegui query sulle 4 tabelle e sui 4 indici più grandi per l'intervallo più recente
La seguente query restituisce le 4 tabelle e i 4 indici più grandi per l'intervallo più recente:
SELECT interval_end, table_name, used_bytes FROM spanner_sys.table_sizes_stats_1hour WHERE interval_end = ( SELECT MAX(interval_end) FROM spanner_sys.table_sizes_stats_1hour) ORDER BY used_bytes DESC LIMIT 4;
Output della query
interval_end | table_name | used_bytes |
---|---|---|
2022-11-15 13:00:00-07:00 |
order_item |
60495552 |
2022-11-15 13:00:00-07:00 |
orders |
13350000 |
2022-11-15 13:00:00-07:00 |
item_inventory |
2094549 |
2022-11-15 13:00:00-07:00 |
customer |
870000 |
Tendenza delle dimensioni delle query per una tabella o un indice specifico nelle ultime 24 ore
La seguente query restituisce le dimensioni della tabella nelle ultime 24 ore:
GoogleSQL
SELECT interval_end, used_bytes FROM spanner_sys.table_sizes_stats_1hour WHERE interval_end > TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL -24 HOUR) AND table_name = "table_name" ORDER BY interval_end DESC;
Dove:
table_name
deve essere una tabella o un indice esistente nel database.
PostgreSQL
SELECT interval_end, used_bytes FROM spanner_sys.table_sizes_stats_1hour WHERE interval_end > spanner.timestamptz_subtract(now(), '24 HOUR') AND table_name = 'table_name' ORDER BY interval_end DESC;
Dove:
table_name
deve essere una tabella o un indice esistente nel database.
Output della query
interval_end | used_bytes |
---|---|
2022-11-15 13:00:00-07:00 |
13350000 |
2022-11-15 12:00:00-07:00 |
13350000 |
2022-11-15 11:00:00-07:00 |
13350000 |
2022-11-15 10:00:00-07:00 |
13350000 |
2022-11-15 09:00:00-07:00 |
13350000 |
2022-11-15 08:00:00-07:00 |
12350000 |
2022-11-15 07:00:00-07:00 |
12350000 |
2022-11-15 06:00:00-07:00 |
12350000 |
2022-11-15 05:00:00-07:00 |
11350000 |
2022-11-15 04:00:00-07:00 |
11350000 |
2022-11-15 03:00:00-07:00 |
11350000 |
2022-11-15 02:00:00-07:00 |
11350000 |
2022-11-15 01:00:00-07:00 |
11350000 |
2022-11-15 00:00:00-07:00 |
10350000 |
2022-11-14 23:00:00-07:00 |
10350000 |
2022-11-14 22:00:00-07:00 |
10350000 |
2022-11-14 21:00:00-07:00 |
10350000 |
2022-11-14 20:00:00-07:00 |
10350000 |
2022-11-14 19:00:00-07:00 |
10350000 |
2022-11-14 18:00:00-07:00 |
10350000 |
2022-11-14 17:00:00-07:00 |
10350000 |
2022-11-14 16:00:00-07:00 |
10350000 |
2022-11-14 15:00:00-07:00 |
10350000 |
2022-11-14 14:00:00-07:00 |
10350000 |
2022-11-14 13:00:00-07:00 |
10350000 |
TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR
SPANNER_SYS.TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR
contiene le dimensioni di
tutte le tabelle del database, ordinate per interval_end
, per ogni gruppo di località. Gli intervalli si basano sull'orologio e terminano all'ora esatta. Internamente,
ogni 5 minuti, Spanner raccoglie i dati da tutti i server e poi
li rende disponibili nella tabella TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR
poco dopo. I dati vengono poi calcolati in media per ogni ora. Ad esempio, alle 11:59:30, TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR
mostra le dimensioni medie delle tabelle per ogni gruppo di località nell'intervallo dalle 10:00:00 alle 10:59:59.
Schema tabella
Nome colonna | Tipo | Descrizione |
---|---|---|
INTERVAL_END |
TIMESTAMP |
Fine dell'intervallo di tempo in cui sono state raccolte le dimensioni della tabella. |
TABLE_NAME |
STRING |
Il nome della tabella o dell'indice. |
LOCALITY_GROUP |
STRING |
Nome del gruppo di località. |
USED_BYTES |
FLOAT64 |
Dimensioni della tabella in byte. |
USED_SSD_BYTES |
FLOAT64 |
Spazio di archiviazione SSD utilizzato dalla tabella in byte. |
USED_HDD_BYTES |
FLOAT64 |
Spazio di archiviazione HDD utilizzato dalla tabella in byte. |
Conservazione dei dati
Come minimo, Spanner conserva i dati per
SPANNER_SYS.TABLE_SIZES_STATS_1HOUR
per intervalli che coprono i 30 giorni precedenti.
Passaggi successivi
- Scopri di più su altri strumenti di introspezione.
- Scopri di più sulle altre informazioni archiviate da Spanner per ogni database nelle tabelle dello schema informativo del database.
- Scopri di più sulle best practice per SQL per Spanner.
- Scopri di più su come analizzare l'utilizzo elevato della CPU.