Statistiken zur Tabellengröße

Spanner bietet die folgenden integrierten Tabellen:

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

Die Tabellengröße wird in Byte angegeben. Tabellengrößen umfassen Datenversionen. Mit diesen integrierten Tabellen können Sie die Größe Ihrer Tabellen und Indexe im Zeitverlauf überwachen. Sie können auch die Größe Ihrer Indexe überwachen, wenn Sie sie erstellen, löschen und ändern (wenn Sie weitere Zeilen in den Index einfügen oder neue Spalten hinzufügen). Sie können sich auch die Größe Ihrer Änderungsstreamtabellen ansehen.

Der Datenbankspeicher kann mit dem Messwert für den Gesamtdatenbankspeicher überwacht werden. Sie können die Aufschlüsselung des Datenbankspeichers mit SPANNER_SYS.TABLE_SIZES_STATS_1HOUR und SPANNER_SYS.TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR aufrufen.

Auf Statistiken zu Tabellengrößen zugreifen

Spanner stellt die Statistiken zu Tabellengrößen im Schema SPANNER_SYS bereit. Sie können auf folgende Weise auf SPANNER_SYS-Daten zugreifen:

  • Eine Spanner Studio-Datenbankseite in der Google Cloud Console.

  • Mit dem Befehl gcloud spanner databases execute-sql.

  • Die Methode executeSql oder executeStreamingSql.

Die folgenden von Spanner bereitgestellten Methoden für einzelne Lesevorgänge unterstützen SPANNER_SYS nicht:

  • Starken Lesevorgang aus einer einzelnen Zeile oder mehreren Zeilen in einer Tabelle durchführen
  • Lesevorgang veralteter Daten aus einer oder mehreren Zeilen in einer Tabelle ausführen.
  • Aus einer einzelnen Zeile oder mehreren Zeilen in einem sekundären Index lesen

TABLE_SIZES_STATS_1HOUR

SPANNER_SYS.TABLE_SIZES_STATS_1HOUR enthält die Größen aller Tabellen in Ihrer Datenbank, sortiert nach interval_end. Die Intervalle basieren auf Uhrzeiten und enden zur vollen Stunde. Intern erfasst Cloud Spanner alle 5 Minuten Daten von allen Servern und stellt sie kurz darauf in der Tabelle TABLE_SIZES_STATS_1HOUR zur Verfügung. Die Daten werden dann für jede Stunde gemittelt. Beispiel: Um 11:59:30 Uhr zeigt TABLE_SIZES_STATS_1HOUR die durchschnittlichen Tabellengrößen aus dem Intervall von 10:00:00 Uhr 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 Zeilenbasierter Speicher, der von der Tabelle oder dem Index verwendet wird, in Byte.
USED_SSD_BYTES FLOAT64 SSD-zeilenbasierter Speicher, der von der Tabelle oder dem Index verwendet wird, in Byte.
USED_HDD_BYTES FLOAT64 HDD-zeilenbasierter Speicher, der von der Tabelle oder dem Index in Byte verwendet wird.
COLUMNAR_USED_BYTES FLOAT64 Spaltenspeicher, der von der Tabelle oder dem Index verwendet wird, in Byte.
COLUMNAR_USED_SSD_BYTES FLOAT64 Spaltenbasierter SSD-Speicher, der von der Tabelle oder dem Index verwendet wird, in Byte.
COLUMNAR_USED_HDD_BYTES FLOAT64 Spaltenbasierter HDD-Speicher, der von der Tabelle oder dem Index verwendet wird, in Byte.
COLUMNAR_COVERAGE_RATIO FLOAT64 Das Verhältnis von spaltenbasiert formatierten Daten zu den Gesamtdaten für eine Tabelle oder einen Index mit aktivierter spaltenbasierter Richtlinie. Die Werte reichen von 0.0 bis 1.0.
COLUMNAR_SSD_COVERAGE_RATIO FLOAT64 Das Verhältnis von SSD-Daten im Spaltenformat zu den gesamten SSD-Daten für eine Tabelle oder einen Index mit aktivierter Spaltenrichtlinie. Die Werte reichen von 0.0 bis 1.0.
COLUMNAR_HDD_COVERAGE_RATIO FLOAT64 Das Verhältnis von HDD-Daten im Spaltenformat zu den gesamten HDD-Daten für eine Tabelle oder einen Index mit aktivierter Spaltenrichtlinie. Die Werte reichen von 0.0 bis 1.0.

Beispielabfragen

Dieser Abschnitt enthält mehrere SQL-Beispielanweisungen, mit denen Statistiken zur aggregierten Tabellengröße abgerufen werden. Sie können diese SQL-Anweisungen mit den Clientbibliotheken, der 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 + 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;
Screenshot: Ausgabe der Abfrage
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

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 + 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;

Wobei:

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

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;

Wobei:

  • table_name muss eine vorhandene Tabelle oder ein vorhandener Index in der Datenbank sein.
Screenshot: Ausgabe der Abfrage
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

Nutzung und Abdeckung des Spaltenspeichers für das letzte Intervall abfragen

Die folgende Abfrage gibt die zeilenbasierte Speichergröße, die spaltenbasierte Speichergröße und das spaltenbasierte Abdeckungsverhältnis für Tabellen und Indexe im letzten Intervall zurück:

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

Spaltenspeicher und Abdeckungstrend für eine bestimmte Tabelle oder einen bestimmten Index für die letzten 24 Stunden abfragen

Die folgende Abfrage gibt die Größe des spaltenbasierten Speichers und die Abdeckungsquote für eine bestimmte Tabelle oder einen bestimmten Index in den letzten 24 Stunden zurück:

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;

Wobei:

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

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;

Wobei:

  • table_name muss eine vorhandene Tabelle oder ein vorhandener Index in der Datenbank sein.
Screenshot: Ausgabe der Abfrage
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 enthält die Größen aller Tabellen in Ihrer Datenbank, sortiert nach interval_end, für jede Lokalisierungsgruppe. Die Intervalle basieren auf der Uhrzeit und enden zur vollen Stunde. Intern erfasst Cloud Spanner alle 5 Minuten Daten von allen Servern und stellt sie kurz danach in der Tabelle TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR zur Verfügung. Die Daten werden dann für jede Stunde gemittelt. Beispiel: Um 11:59:30 Uhr zeigt TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR die durchschnittlichen Tabellengrößen für jede Standortgruppe aus dem Intervall von 10:00:00 Uhr 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.
LOCALITY_GROUP STRING Name der Standortgruppe.
USED_BYTES FLOAT64 Tabellengröße in Byte.
USED_SSD_BYTES FLOAT64 Von der Tabelle verwendeter SSD-Speicher in Byte.
USED_HDD_BYTES FLOAT64 Von der Tabelle verwendeter HDD-Speicher in Byte.

Datenaufbewahrung

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

Nächste Schritte