Statistiken zu Tabellengrößen

Spanner bietet die folgenden vordefinierten Tabellen:

  • SPANNER_SYS.TABLE_SIZES_STATS_1HOUR: Hier werden die Größen Ihrer Tabellen und Indexe in Ihren Datenbanken aufgelistet.
  • SPANNER_SYS.TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR: Hier sehen Sie die Größe Ihrer Tabellen und Indexe in Ihren Datenbanken für jede Standortgruppe.

Die Tabellengröße wird in Byte angegeben. Die Tabellengrößen umfassen Datenversionen. Mit diesen integrierten Tabellen können Sie die Größe Ihrer Tabellen und Indexe im Zeitverlauf beobachten. Sie können die Größe Ihrer Indexe auch beim Erstellen, Löschen und Ändern beobachten, z. B. wenn Sie dem Index weitere Zeilen oder neue Spalten hinzufügen. Außerdem können Sie sich die Größe Ihrer Änderungsstreams ansehen.

Der Datenbankspeicher kann mit dem Messwert Gesamtdatenbankspeicher überwacht werden. Mit SPANNER_SYS.TABLE_SIZES_STATS_1HOUR und SPANNER_SYS.TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR können Sie sich eine Aufschlüsselung des Datenbankspeichers ansehen.

Verfügbarkeit

SPANNER_SYS-Daten sind nur über SQL-Schnittstellen verfügbar. Beispiel:

  • Die Spanner Studio-Seite einer Datenbank in der Google Cloud Console

  • Befehl gcloud spanner databases execute-sql

  • Mit der executeQuery API

Andere von Spanner bereitgestellte Einzellesemethoden unterstützen SPANNER_SYS nicht.

TABLE_SIZES_STATS_1HOUR

SPANNER_SYS.TABLE_SIZES_STATS_1HOUR enthält die Größe aller Tabellen in Ihrer Datenbank, sortiert nach interval_end. Die Intervalle beziehen sich auf die Uhrzeit. Intern erfasst Spanner alle 5 Minuten Daten von allen Servern und stellt die Daten danach in der Tabelle TABLE_SIZES_STATS_1HOUR bereit. Die Daten werden dann stündlich gemittelt. Um 11:59:30 Uhr zeigt TABLE_SIZES_STATS_1HOUR beispielsweise die durchschnittlichen Tabellengrößen aus dem Intervall von 10:00:00 bis 10:59:59 Uhr an.

Tabellenschema

Spaltenname Typ Beschreibung
INTERVAL_END TIMESTAMP Ende des Zeitintervalls, in dem die Tabellengrößen erfasst wurden.
TABLE_NAME STRING Name der Tabelle oder des Index.
USED_BYTES FLOAT64 Die Größe der Tabelle in Byte.
USED_SSD_BYTES FLOAT64 Von der Tabelle genutzter SSD-Speicher in Byte.
USED_HDD_BYTES FLOAT64 Von der Tabelle genutzter HDD-Speicher in Byte.

Beispielabfragen

Dieser Abschnitt enthält mehrere Beispiel-SQL-Anweisungen, die zusammengefasste Statistiken zur Tabellengröße abrufen. Sie können diese SQL-Anweisungen mit den Clientbibliotheken, gcloud spanner oder der Google Cloud Console ausführen.

Die vier größten Tabellen und Indexe für das letzte Intervall abfragen

Die folgende Abfrage gibt die vier größten Tabellen und Indexe für das letzte Intervall zurück:

    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;
  

Screenshot: Ausgabe der Abfrage
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

Trend der Abfragegröße für eine bestimmte Tabelle oder einen bestimmten Index in den letzten 24 Stunden

Die folgende Abfrage gibt die Größe der Tabelle in den letzten 24 Stunden zurück:

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;

Wobei:

  • table_name muss eine vorhandene Tabelle oder ein vorhandener Index in der Datenbank sein.

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;

Wobei:

  • table_name muss eine vorhandene Tabelle oder ein vorhandener Index in der Datenbank sein.
Screenshot: Ausgabe der Abfrage
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 enthält die Größe aller Tabellen in Ihrer Datenbank, sortiert nach interval_end, für jede Standortgruppe. Die Intervalle beziehen sich auf die Uhrzeit und enden zu jeder vollen Stunde. Intern erfasst Spanner alle 5 Minuten Daten von allen Servern und stellt die Daten danach in der Tabelle TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR bereit. Die Daten werden dann pro Stunde gemittelt. Beispiel: Um 11:59:30 Uhr werden in TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR die durchschnittlichen Tabellengrößen für jede Standortgruppe aus dem Intervall von 10:00:00 bis 10:59:59 Uhr angezeigt.

Tabellenschema

Spaltenname Typ Beschreibung
INTERVAL_END TIMESTAMP Ende des Zeitintervalls, in dem die Tabellengrößen erfasst wurden.
TABLE_NAME STRING Name der Tabelle oder des Index.
LOCALITY_GROUP STRING Name der Ortsgruppe.
USED_BYTES FLOAT64 Die Größe der Tabelle in Byte.
USED_SSD_BYTES FLOAT64 Von der Tabelle genutzter SSD-Speicher in Byte.
USED_HDD_BYTES FLOAT64 Von der Tabelle genutzter HDD-Speicher in Byte.

Datenaufbewahrung

Spanner speichert die Daten für SPANNER_SYS.TABLE_SIZES_STATS_1HOUR mindestens für Intervalle der letzten 30 Tage.

Nächste Schritte