Spanner bietet integrierte Tabellen, in denen die Statistiken der Lese- (oder Abfrage-), Schreib- und Löschvorgänge für Ihre Tabellen (einschließlich Änderungsstreamtabellen) und Indexe aufgezeichnet werden. Mit Statistiken zu Tabellenvorgängen können Sie Folgendes tun:
Identifizieren Sie Tabellen mit erhöhtem Schreibtraffic, der einer Speichererweiterung entspricht.
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 unabhängig von der Anzahl der aufgerufenen Zeilen um 1 erhöht.
Die Gesamtmesswerte der Vorgänge pro Sekunde einer Datenbank können mit Operations per second
, Operations per second by API method
und anderen zugehörigen Messwerten in Ihren System Insights-Diagrammen überwacht werden.
Verfügbarkeit
Spanner stellt die Statistiken für Tabellenvorgänge im SPANNER_SYS
-Schema bereit. 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 Methoden für einzelne Leseaufrufe unterstützen SPANNER_SYS
nicht.
Statistiken zu Tabellenvorgängen
Die folgenden Tabellen verfolgen die Lese- (oder Abfrage-), Schreib- und Löschstatistiken zu Ihren Tabellen und Indexen während eines bestimmten Zeitraums:
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 in der Länge, die der Tabellenname angibt.
Die Intervalle basieren auf der Uhrzeit. 1-Minuten-Intervalle beginnen minutengenau, 10-Minuten-Intervalle beginnen alle 10 Minuten ab der vollen Stunde und 1-Stunden-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 wurden. |
DELETE_COUNT |
INT64 |
Anzahl der Abfragen, bei denen Löschvorgänge für die Tabelle durchgeführt werden. |
Wenn Sie Daten mithilfe von Mutationen in Ihre Datenbank einfügen, erhöht sich write_count
für jede Tabelle, auf die durch die Insert-Anweisung zugegriffen wird, um 1. Darüber hinaus erhöht eine Abfrage, die auf einen Index zugreift, ohne die zugrunde liegende Tabelle zu scannen, nur den read_query_count
für den Index.
Datenaufbewahrung
Spanner speichert die Daten für jede Tabelle mindestens für die folgenden Zeiträume:
SPANNER_SYS.TABLE_OPERATIONS_STATS_MINUTE
: Intervalle der letzten 6 Stunden.SPANNER_SYS.TABLE_OPERATIONS_STATS_10MINUTE
: Intervalle der letzten 4 Tage.SPANNER_SYS.TABLE_OPERATIONS_STATS_HOUR
: Intervalle der letzten 30 Tage.
Beispielabfragen
Dieser Abschnitt enthält mehrere Beispiel-SQL-Anweisungen, mit denen statistische Daten zu zusammengefassten Tabellenvorgängen abgerufen werden. Sie können diese SQL-Anweisungen mit den Clientbibliotheken oder mit gcloud spanner ausführen.
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 Index in der Datenbank sein.
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 Index in der Datenbank sein.
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 Statistiken zur Tabellengröße, um die Größe Ihrer Tabellen und Indexe zu bestimmen.
Weitere Informationen zu Tools zur Selbstbeobachtung
Weitere Informationen zu Best Practices für SQL für Spanner.