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 Lokalitätsgruppe aufgeführt.
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 überwachen. Sie können auch die Größe Ihrer Indexe im Blick behalten, wenn Sie sie erstellen, löschen und ändern (z. B. wenn Sie dem Index weitere Zeilen hinzufügen oder neue Spalten einfügen). Außerdem können Sie sich die Größen Ihrer Änderungsstreamtabellen ansehen.
Der Datenbankspeicher kann mit dem Messwert „Gesamtdatenbankspeicher“ überwacht werden.
Die Aufschlüsselung des Datenbankspeichers können Sie mit SPANNER_SYS.TABLE_SIZES_STATS_1HOUR
und SPANNER_SYS.TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR
aufrufen.
Statistiken zur Tabellengröße aufrufen
Spanner stellt die Statistiken zur Tabellengröße im Schema SPANNER_SYS
bereit. Sie haben folgende Möglichkeiten, auf SPANNER_SYS
-Daten zuzugreifen:
Die Spanner Studio-Seite einer Datenbank in der Google Cloud Console.
Mit dem Befehl
gcloud spanner databases execute-sql
.Die Methode
executeSql
oderexecuteStreamingSql
.
Die folgenden von Spanner bereitgestellten Einzellesemethoden unterstützen SPANNER_SYS
nicht:
- Starken Lesevorgang aus einer einzelnen Zeile oder mehreren Zeilen in einer Tabelle durchführen
- Veralteten Lesevorgang aus einer einzelnen Zeile oder mehreren Zeilen in einer Tabelle durchfü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 der Uhrzeit und enden zur vollen Stunde. Intern erfasst Spanner alle 5 Minuten Daten von allen Servern und stellt die Daten kurz darauf in der Tabelle TABLE_SIZES_STATS_1HOUR
bereit. Die Daten werden dann pro Stunde gemittelt. Um 11:59:30 Uhr zeigt TABLE_SIZES_STATS_1HOUR
beispielsweise die durchschnittlichen Tabellengrößen aus dem Intervall von 10:00:00 Uhr bis 10:59:59 Uhr.
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 |
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. |
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, mit gcloud spanner oder mit der Google Cloud -Konsole 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 abfragen
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ößen aller Tabellen in Ihrer Datenbank, sortiert nach interval_end
, für jede Ortsgruppe. Die Intervalle basieren auf der Uhrzeit und enden zur vollen Stunde. Intern erfasst Spanner alle 5 Minuten Daten von allen Servern und stellt die Daten kurz darauf in der Tabelle TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR
bereit. Die Daten werden dann pro Stunde gemittelt. Um 11:59:30 Uhr zeigt TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR
beispielsweise die durchschnittlichen Tabellengrößen für jede Ortsgruppe 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. |
LOCALITY_GROUP |
STRING |
Name der Ortsgruppe. |
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 die Daten für SPANNER_SYS.TABLE_SIZES_STATS_1HOUR
mindestens für Intervalle der letzten 30 Tage.
Nächste Schritte
- Weitere Informationen zu Tools zur Selbstbeobachtung
- Weitere Informationen zu den anderen Informationen, die Spanner für jede Datenbank in den Informationsschematabellen der Datenbank speichert
- SQL-Best-Practices für Spanner
- Hohe CPU-Auslastung untersuchen