Statistiche sulle dimensioni delle tabelle

Spanner fornisce le seguenti tabelle predefinite:

  • 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 delle tabelle e degli indici nel tempo. Puoi anche monitorare le dimensioni degli indici durante la loro creazione, eliminazione e modifica (quando inserisci altre righe nell'indice o quando aggiungi nuove colonne). Inoltre, puoi anche esaminare le dimensioni delle tabelle degli stream 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.

Disponibilità

I dati di SPANNER_SYS sono disponibili solo tramite interfacce SQL. 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 singola forniti da Spanner non supportanoSPANNER_SYS.

TABLE_SIZES_STATS_1HOUR

SPANNER_SYS.TABLE_SIZES_STATS_1HOUR contiene le dimensioni di tutte le tabelle del tuo database, ordinate in base a interval_end. Gli intervalli si basano sull'ora, e terminano alle ore piene. 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 mediati per ogni ora. Ad esempio, alle 11:59:30, TABLE_SIZES_STATS_1HOUR mostra le dimensioni medie delle tabelle nell'intervallo compreso tra le 10:00:00 e le 10:59:59.

Schema tabella

Nome colonna Tipo Descrizione
INTERVAL_END TIMESTAMP Fine dell'intervallo di tempo in cui sono state raccolte le dimensioni delle tabelle.
TABLE_NAME STRING 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 console Google Cloud.

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
    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 nome_tabella 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 specifici per le 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 alle ore piene. 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 mediati per ogni ora del giorno. Ad esempio, alle 11:59:30, TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR mostra le dimensioni medie delle tabelle per ciascun gruppo di località nell'intervallo compreso tra le 10:00:00 e le 10:59:59.

Schema tabella

Nome colonna Tipo Descrizione
INTERVAL_END TIMESTAMP Fine dell'intervallo di tempo in cui sono state raccolte le dimensioni delle tabelle.
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