Statistiques sur les tailles de tables

Spanner fournit une table intégrée, SPANNER_SYS.TABLE_SIZES_STATS_1HOUR, qui répertorie les tailles des tables et des index au sein de vos bases de données. La taille de la table est exprimée en octets. Les tailles des tables incluent les versions des données. Vous pouvez utiliser SPANNER_SYS.TABLE_SIZES_STATS_1HOUR pour surveiller la taille de la table et de l'index au fil du temps. Vous pouvez également surveiller la taille de vos index lorsque vous les créez, les supprimez et les modifiez (lorsque vous insérez des lignes supplémentaires dans l'index ou que vous y ajoutez des colonnes). Vous pouvez aussi examiner la taille de vos tables de flux de modifications.

L'espace de stockage de la base de données peut être surveillé à l'aide de la métrique Stockage total de la base de données. Vous pouvez voir la répartition du stockage de la base de données avec SPANNER_SYS.TABLE_SIZES_STATS_1HOUR.

Qui peut en bénéficier ?

Les données SPANNER_SYS ne sont disponibles que via des interfaces SQL. Exemple :

  • Page Spanner Studio d'une base de données dans la console Google Cloud

  • La commande gcloud spanner databases execute-sql

  • L'API executeQuery

Les autres méthodes de lecture unique fournies par Spanner ne sont pas compatibles avec SPANNER_SYS.

TABLE_SIZES_STATS_1HOUR

SPANNER_SYS.TABLE_SIZES_STATS_1HOUR contient les tailles de toutes les tables de votre base de données, triées par interval_end. Les intervalles sont basés sur l'heure et se terminent par heure. En interne, toutes les cinq minutes, Spanner collecte les données de tous les serveurs, puis les met à disposition dans la table TABLE_SIZES_STATS_1HOUR peu de temps après. La moyenne des données est ensuite calculée pour chaque heure. Par exemple, à 11:59:30, TABLE_SIZES_STATS_1HOUR affiche les tailles moyennes de tables de l'intervalle de 10:00:00 à 10:59:59.

Schéma de la table

Nom de la colonne Type Description
INTERVAL_END TIMESTAMP Fin de l'intervalle de temps au cours duquel les tailles des tables ont été collectées.
TABLE_NAME STRING Nom de la table ou de l'index.
USED_BYTES FLOAT64 Taille de la table en octets.

Exemples de requêtes

Cette section inclut plusieurs exemples d'instructions SQL qui récupèrent des statistiques sur les tailles de tables agrégées. Vous pouvez exécuter ces instructions SQL à l'aide des bibliothèques clientes, de gcloud spanner ou de la console Google Cloud.

Interroger les quatre plus grands index et tables pour l'intervalle le plus récent

La requête suivante renvoie les quatre plus grands index et tables pour l'intervalle le plus récent:

    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;
  

Sortie de la requête
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

Évolution de la taille de la requête pour une table ou un index spécifique au cours des dernières 24 heures

La requête suivante renvoie la taille de la table au cours des dernières 24 heures:

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;

Où :

  • table_name doit être une table ou un index existant dans la base de données.
Sortie de la requête
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

Conservation des données

Spanner conserve au minimum les données pour SPANNER_SYS.TABLE_SIZES_STATS_1HOUR pour les intervalles couvrant les 30 jours précédents.

Étapes suivantes