Spanner proporciona tablas integradas que registran las operaciones de lectura (o consulta) escribir y borrar estadísticas de operaciones de tus tablas (incluida la tablas de transmisiones) y los índices. Con las estadísticas de operaciones de tablas, puedes hacer lo siguiente: lo siguiente:
Identificar tablas con mayor tráfico de escritura correspondiente a aumentar el almacenamiento.
Identifica las tablas con tráfico de lectura, escritura y eliminación inesperado.
Identificar las tablas que se usan mucho
Cuando consultas o escribes en una tabla, el recuento de operaciones correspondiente para la la tabla se incrementa en 1, sin importar el número de filas a las que se acceda.
Las métricas generales de operaciones por segundo de una base de datos se pueden supervisar con
Operations per second
, Operations per second by API method
y otros
métricas relacionadas en la página Estadísticas del sistema
gráficos.
Disponibilidad
Spanner proporciona las estadísticas de operaciones de la tabla en la
Esquema SPANNER_SYS
. Los datos de SPANNER_SYS
solo están disponibles a través de SQL.
interfaces. Por ejemplo:
La página Spanner Studio de una base de datos en la consola de Google Cloud
El comando
gcloud spanner databases execute-sql
La API de
executeQuery
Otros métodos de lectura única que proporciona Spanner no son compatibles.
SPANNER_SYS
Estadísticas de operaciones de la tabla
En las siguientes tablas, se realiza un seguimiento de las estadísticas de lectura (o consulta), escritura y eliminación en tus tablas y índices durante un período específico:
SPANNER_SYS.TABLE_OPERATIONS_STATS_MINUTE
: Operaciones en intervalos de 1 minutoSPANNER_SYS.TABLE_OPERATIONS_STATS_10MINUTE
: Operaciones en intervalos de 10 minutosSPANNER_SYS.TABLE_OPERATIONS_STATS_HOUR
: Operaciones durante intervalos de 1 hora
Estas tablas tienen las siguientes propiedades:
Cada tabla contiene datos para intervalos de tiempo no superpuestos de la duración que que se especifica en el nombre de la tabla.
Los intervalos se basan en tiempos de reloj. Los intervalos de 1 minuto comienzan en el minuto, 10 comienzan cada 10 minutos a partir de la hora y en 1 hora comienzan en la hora.
Por ejemplo, a las 11:59:30 a.m., los intervalos más recientes disponibles para las consultas de SQL son los siguientes:
- 1 minuto: de 11:58:00 a 11:58:59 a.m.
- 10 minutos: de 11:40:00 a 11:49:59 a.m.
- 1 hora: de 10:00:00 a 10:59:59 a.m.
Esquema para todas las tablas de estadísticas de operaciones de tablas
Nombre de la columna | Tipo | Descripción |
---|---|---|
INTERVAL_END |
TIMESTAMP |
Fin del intervalo en el que se recopilaron los tamaños de la tabla. |
TABLE_NAME |
STRING |
Nombre de la tabla o del índice. |
READ_QUERY_COUNT |
INT64 |
Cantidad de consultas o lecturas que se leen de la tabla. |
WRITE_COUNT |
INT64 |
Cantidad de consultas que se escriben en la tabla. |
DELETE_COUNT |
INT64 |
Cantidad de consultas que borran datos de la tabla. |
Si insertas datos en tu base de datos mediante mutaciones, la write_count
aumenta en 1 para cada tabla a la que acceda la sentencia insert. Además,
una consulta que accede a un índice, sin analizar la tabla subyacente, solo
aumenta el read_query_count
del índice.
Retención de datos
Como mínimo, Spanner conserva los datos de cada tabla para lo siguiente: Períodos:
SPANNER_SYS.TABLE_OPERATIONS_STATS_MINUTE
: Intervalos que abarcan los 6 anteriores horas.SPANNER_SYS.TABLE_OPERATIONS_STATS_10MINUTE
: Intervalos que abarcan el anterior 4 días.SPANNER_SYS.TABLE_OPERATIONS_STATS_HOUR
: Intervalos que abarcan los 30 anteriores días.
Consultas de ejemplo
Esta sección incluye varias instrucciones de SQL de ejemplo que recuperan datos agregados estadísticas de operaciones de tablas. Puedes ejecutar estas instrucciones de SQL con las bibliotecas cliente o gcloud spanner.
Consulta las tablas y los índices con la mayor cantidad de operaciones de escritura para el intervalo más reciente
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;
Consulta las tablas y los índices con la mayor cantidad de operaciones de eliminación para el intervalo más reciente
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;
Consulta las tablas y los índices con la mayor cantidad de operaciones de lectura y consulta para el intervalo más reciente
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;
Consulta el uso de una tabla durante las últimas 6 horas
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;
Aquí:
table_name
debe ser una tabla o un índice existente en la base de datos.
Consulta el uso de una tabla durante los últimos 14 días
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;
Aquí:
table_name
debe ser una tabla o un índice existente en la base de datos.
Consultar las tablas y los índices sin uso en las últimas 24 horas
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));
¿Qué sigue?
Usa las estadísticas de tamaños de tablas para determinar los tamaños de tus tablas y tus índices.
Obtén más información sobre otras herramientas de introspección.
Obtén más información sobre las prácticas recomendadas de SQL para Spanner