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à.
La dimensione della tabella è espressa in byte. Le dimensioni delle tabelle includono le versioni dei dati. Puoi utilizzare queste tabelle integrate per monitorare le dimensioni delle tabelle e degli indici nel tempo. Puoi anche monitorare le dimensioni degli indici man mano che li crei, li elimini e li modifichi (quando inserisci più righe nell'indice o quando aggiungi nuove colonne). Inoltre, puoi anche esaminare le dimensioni delle tabelle delle modifiche in tempo reale.
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.
Accedi alle statistiche sulle dimensioni delle tabelle
Spanner fornisce le statistiche sulle dimensioni delle tabelle nello schema SPANNER_SYS. Puoi utilizzare i seguenti modi per accedere ai dati di SPANNER_SYS:
Una pagina Spanner Studio del database nella console Google Cloud .
Il comando
gcloud spanner databases execute-sql.Il metodo
executeSqloexecuteStreamingSql.
I seguenti metodi di lettura singola forniti da Spanner
non supportano SPANNER_SYS:
- Esecuzione di una lettura forte da una o più righe di una tabella.
- Esecuzione di una lettura di dati obsoleti da una o più righe di una tabella.
- Lettura da una o più righe in un indice secondario.
TABLE_SIZES_STATS_1HOUR
SPANNER_SYS.TABLE_SIZES_STATS_1HOUR contiene le dimensioni di tutte le tabelle del database, ordinate per interval_end. Gli intervalli si basano sugli orari,
che terminano 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. Viene quindi calcolata la media dei dati per ogni ora. Ad esempio, alle 11:59:30, TABLE_SIZES_STATS_1HOUR
mostra le dimensioni medie delle tabelle 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 |
Nome della tabella o dell'indice. |
USED_BYTES |
FLOAT64 |
Spazio di archiviazione basato su righe utilizzato dalla tabella o dall'indice in byte. |
USED_SSD_BYTES |
FLOAT64 |
Spazio di archiviazione basato su righe SSD utilizzato dalla tabella o dall'indice in byte. |
USED_HDD_BYTES |
FLOAT64 |
Spazio di archiviazione basato su righe HDD utilizzato dalla tabella o dall'indice in byte. |
COLUMNAR_USED_BYTES |
FLOAT64 |
Spazio di archiviazione colonnare utilizzato dalla tabella o dall'indice in byte. |
COLUMNAR_USED_SSD_BYTES |
FLOAT64 |
Spazio di archiviazione SSD colonnare utilizzato dalla tabella o dall'indice in byte. |
COLUMNAR_USED_HDD_BYTES |
FLOAT64 |
Spazio di archiviazione HDD colonnare utilizzato dalla tabella o dall'indice in byte. |
COLUMNAR_COVERAGE_RATIO |
FLOAT64 |
Il rapporto tra i dati formattati in colonne e i dati totali per una tabella o un indice con la policy per le colonne attivata. I valori sono compresi tra 0.0 e 1.0. |
COLUMNAR_SSD_COVERAGE_RATIO |
FLOAT64 |
Il rapporto tra i dati SSD formattati in colonne e i dati SSD totali per una tabella o un indice con il criterio di archiviazione a colonne abilitato. I valori sono compresi tra 0.0 e 1.0. |
COLUMNAR_HDD_COVERAGE_RATIO |
FLOAT64 |
Il rapporto tra i dati HDD formattati in colonne e i dati HDD totali per una tabella o un indice con il criterio colonnare abilitato. I valori sono compresi tra 0.0 e 1.0. |
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 quattro tabelle e sugli indici più grandi per l'intervallo più recente
La seguente query restituisce le quattro tabelle e gli indici più grandi per l'intervallo più recente:
SELECT interval_end,
table_name,
used_bytes + columnar_used_bytes AS total_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 total_used_bytes DESC
LIMIT 4;
Output della query
| interval_end | table_name | total_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 |
Andamento 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 + columnar_used_bytes AS total_used_bytes
FROM spanner_sys.table_sizes_stats_1hour
WHERE interval_end > TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL -24 HOUR)
AND table_name = "<var>table_name</var>"
ORDER BY interval_end DESC;
Dove:
table_namedeve essere una tabella o un indice esistente nel database.
PostgreSQL
SELECT interval_end,
used_bytes + columnar_used_bytes AS total_used_bytes
FROM spanner_sys.table_sizes_stats_1hour
WHERE interval_end > spanner.timestamptz_subtract(now(), '24 HOUR')
AND table_name = '<var>table_name</var>'
ORDER BY interval_end DESC;
Dove:
table_namedeve essere una tabella o un indice esistente nel database.
Output della query
| interval_end | total_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 |
Utilizzo e copertura dello spazio di archiviazione colonnare delle query per l'intervallo più recente
La seguente query restituisce le dimensioni dello spazio di archiviazione basato su righe, le dimensioni dello spazio di archiviazione colonnare e il rapporto di copertura colonnare per tabelle e indici nell'intervallo più recente:
GoogleSQL
SELECT interval_end,
table_name,
used_bytes,
columnar_used_bytes,
columnar_coverage_ratio
FROM spanner_sys.table_sizes_stats_1hour
WHERE interval_end = (
SELECT MAX(interval_end)
FROM spanner_sys.table_sizes_stats_1hour)
ORDER BY columnar_used_bytes DESC;
PostgreSQL
SELECT interval_end,
table_name,
used_bytes,
columnar_used_bytes,
columnar_coverage_ratio
FROM spanner_sys.table_sizes_stats_1hour
WHERE interval_end = (
SELECT MAX(interval_end)
FROM spanner_sys.table_sizes_stats_1hour)
ORDER BY columnar_used_bytes DESC;
Output della query
| interval_end | table_name | used_bytes | columnar_used_bytes | columnar_coverage_ratio |
|---|---|---|---|---|
2022-11-15 13:00:00-07:00 |
order_item |
45371664 |
15123888 |
0.95 |
2022-11-15 13:00:00-07:00 |
orders |
10012500 |
3337500 |
0.85 |
2022-11-15 13:00:00-07:00 |
item_inventory |
2094549 |
0 |
0 |
2022-11-15 13:00:00-07:00 |
customer |
870000 |
0 |
0 |
Esegui query sull'archiviazione colonnare e sulla tendenza della copertura per una tabella o un indice specifico nelle ultime 24 ore
La seguente query restituisce le dimensioni dello spazio di archiviazione colonnare e il rapporto di copertura per una tabella o un indice specifico nelle ultime 24 ore:
GoogleSQL
SELECT interval_end,
columnar_used_bytes,
columnar_coverage_ratio
FROM spanner_sys.table_sizes_stats_1hour
WHERE interval_end > TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL -24 HOUR)
AND table_name = "<var>table_name</var>"
ORDER BY interval_end DESC;
Dove:
table_namedeve essere una tabella o un indice esistente nel database.
PostgreSQL
SELECT interval_end,
columnar_used_bytes,
columnar_coverage_ratio
FROM spanner_sys.table_sizes_stats_1hour
WHERE interval_end > spanner.timestamptz_subtract(now(), '24 HOUR')
AND table_name = '<var>table_name</var>'
ORDER BY interval_end DESC;
Dove:
table_namedeve essere una tabella o un indice esistente nel database.
Output della query
| interval_end | columnar_used_bytes | columnar_coverage_ratio |
|---|---|---|
2022-11-15 13:00:00-07:00 |
3337500 |
0.85 |
2022-11-15 12:00:00-07:00 |
3337500 |
0.85 |
2022-11-15 11:00:00-07:00 |
3140000 |
0.8 |
2022-11-15 10:00:00-07:00 |
2945000 |
0.75 |
2022-11-15 09:00:00-07:00 |
2750000 |
0.7 |
2022-11-15 08:00:00-07:00 |
2355000 |
0.6 |
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 piena. Internamente, ogni 5 minuti, Spanner raccoglie i dati da tutti i server e li rende disponibili nella tabella TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR poco dopo. Viene quindi calcolata la media dei dati 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 |
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 altri strumenti di introspezione.
- Scopri altre informazioni archiviate da Spanner per ogni database nelle tabelle dello schema di informazioni del database.
- Scopri di più sulle best practice per SQL per Spanner.
- Scopri di più su come esaminare l'utilizzo elevato della CPU.
- Scopri di più sul motore colonnare.
- Scopri come monitorare il motore colonnare.