Spanner bietet integrierte Tabellen, die den Lesevorgang (oder Abfrage) Statistiken zu Schreib- und Löschvorgängen für Ihre Tabellen (einschließlich Änderungs- streamt Tabellen) und Indexe. Mit den Statistiken zu Tabellenvorgängen können Sie Folgendes:
Identifizieren Sie Tabellen mit erhöhtem Schreibtraffic, bis zur Speichererweiterung.
Identifizieren Sie Tabellen mit unerwartetem Lese-, Schreib- und Löschtraffic.
Stark verwendete Tabellen identifizieren.
Wenn Sie eine Tabelle abfragen oder schreiben, wird die Anzahl der entsprechenden Vorgänge für die Tabelle wird um 1 erhöht, unabhängig von der Anzahl der Zeilen, auf die zugegriffen wird.
Die Gesamtmesswerte der Vorgänge pro Sekunde einer Datenbank können mit
Operations per second
, Operations per second by API method
und andere
zugehörige Messwerte in den Systemstatistiken
Diagramme.
Verfügbarkeit
Spanner stellt die Statistiken zu Tabellenvorgängen in der
SPANNER_SYS
-Schema. SPANNER_SYS
-Daten sind nur über SQL verfügbar
Schnittstellen. 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 Methoden für einzelne Leseaufrufe werden nicht unterstützt
SPANNER_SYS
Statistiken zu Tabellenvorgängen
In den folgenden Tabellen werden Lese- (oder Abfrage-), Schreib- und Löschstatistiken zu Ihren Tabellen und Indexe in einem bestimmten Zeitraum:
SPANNER_SYS.TABLE_OPERATIONS_STATS_MINUTE
: Vorgänge in Intervallen von 1 MinuteSPANNER_SYS.TABLE_OPERATIONS_STATS_10MINUTE
: Vorgänge in Intervallen von 10 MinutenSPANNER_SYS.TABLE_OPERATIONS_STATS_HOUR
: Vorgänge in Intervallen von 1 Stunde
Diese Tabellen haben folgende Attribute:
Jede Tabelle enthält Daten für nicht überlappende Zeitintervalle der Länge, der Tabellenname angibt.
Die Intervalle basieren auf der Uhrzeit. 1-Minuten-Intervalle beginnen minutengenau, 10 Minutenintervalle beginnen alle 10 Minuten ab der vollen Stunde und 1 Stunde Intervalle beginnen zur vollen Stunde.
Beispielsweise sind die neuesten, für SQL-Abfragen verfügbaren Intervalle um 11:59:30 Uhr:
- 1 Minute: 11:58:00–11:58:59 Uhr
- 10 Minuten: 11:40:00–11:49:59 Uhr
- 1 Stunde: 10:00:00–10:59:59 Uhr
Schema für alle Statistiktabellen zu Tabellenvorgängen
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. |
READ_QUERY_COUNT |
INT64 |
Anzahl der Abfragen oder Lesevorgänge, die aus der Tabelle gelesen werden. |
WRITE_COUNT |
INT64 |
Anzahl der Abfragen, die in die Tabelle geschrieben werden. |
DELETE_COUNT |
INT64 |
Anzahl der Abfragen, mit denen Daten aus der Tabelle gelöscht wurden. |
Wenn Sie Daten mithilfe von Mutationen in Ihre Datenbank einfügen, gibt der write_count
wird für jede Tabelle, auf die über die insert-Anweisung zugegriffen wird, um 1 erhöht. Außerdem
eine Abfrage, die auf einen Index zugreift, ohne die zugrunde liegende Tabelle zu scannen,
erhöht den read_query_count
für den Index.
Datenaufbewahrung
Spanner speichert Daten für jede Tabelle zumindest für Folgendes: Zeiträumen:
SPANNER_SYS.TABLE_OPERATIONS_STATS_MINUTE
: Intervalle der letzten 6 Stunden.SPANNER_SYS.TABLE_OPERATIONS_STATS_10MINUTE
: Intervalle für den vorherigen Zeitraum 4 Tage.SPANNER_SYS.TABLE_OPERATIONS_STATS_HOUR
: Intervalle für die letzten 30 Tage.
Beispielabfragen
Dieser Abschnitt enthält mehrere Beispiel-SQL-Anweisungen, die zusammengefasste Statistiken zu Tabellenvorgängen abrufen. Sie können diese SQL-Anweisungen mit der Methode Clientbibliotheken oder die gcloud spanner:
Tabellen und Indexe mit den meisten Schreibvorgängen für das letzte Intervall abfragen
SELECT interval_end, table_name, write_count FROM spanner_sys.table_operations_stats_minute WHERE interval_end = ( SELECT MAX(interval_end) FROM spanner_sys.table_operations_stats_minute) ORDER BY write_count DESC;
Tabellen und Indexe mit den meisten Löschvorgängen im letzten Intervall abfragen
SELECT interval_end, table_name, delete_count FROM spanner_sys.table_operations_stats_minute WHERE interval_end = ( SELECT MAX(interval_end) FROM spanner_sys.table_operations_stats_minute) ORDER BY delete_count DESC;
Tabellen und Indexe mit den meisten Lese- und Abfragevorgängen im letzten Intervall abfragen
SELECT interval_end, table_name, read_query_count FROM spanner_sys.table_operations_stats_minute WHERE interval_end = ( SELECT MAX(interval_end) FROM spanner_sys.table_operations_stats_minute) ORDER BY read_query_count DESC;
Nutzung einer Tabelle in den letzten 6 Stunden abfragen
SELECT interval_end, read_query_count, write_count, delete_count FROM spanner_sys.table_operations_stats_minute WHERE table_name = table_name ORDER BY interval_end DESC;
Wobei:
table_name
muss eine vorhandene Tabelle oder ein vorhandener Index sein in der Datenbank.
Nutzung einer Tabelle in den letzten 14 Tagen abfragen
GoogleSQL
SELECT interval_end, read_query_count, write_count, delete_count FROM spanner_sys.table_operations_stats_hour WHERE interval_end > TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL -14 DAY) AND table_name = table_name ORDER BY interval_end DESC;
Wobei:
table_name
muss eine vorhandene Tabelle oder ein vorhandener Index sein in der Datenbank.
Tabellen und Indexe ohne Verwendung in den letzten 24 Stunden abfragen
GoogleSQL
(SELECT t.table_name FROM information_schema.tables AS t WHERE t.table_catalog = "" AND t.table_schema = "" AND t.table_type = "BASE TABLE" UNION ALL SELECT cs.change_stream_name FROM information_schema.change_streams cs WHERE cs.change_stream_catalog = "" AND cs.change_stream_schema = "" UNION ALL SELECT idx.index_name FROM information_schema.indexes idx WHERE idx.index_type = "INDEX" AND idx.table_catalog = "" AND idx.table_schema = "") EXCEPT ALL (SELECT DISTINCT(table_name) FROM spanner_sys.table_operations_stats_hour WHERE interval_end > TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL -24 HOUR));
Nächste Schritte
Verwenden Sie die Statistiken zur Tabellengröße, um die Größe Ihrer Tabellen und Indexe zu ermitteln.
Weitere Informationen zu Tools zur Selbstbeobachtung
Best Practices für SQL für Spanner.