Spanner proporciona las siguientes tablas integradas:
SPANNER_SYS.TABLE_SIZES_STATS_1HOUR: Enumera los tamaños de tus tablas y los índices dentro de tus bases de datos.SPANNER_SYS.TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR: Enumera los tamaños de tus tablas y los índices dentro de tus bases de datos para cada grupo de localidad.
El tamaño de la tabla está en bytes. Los tamaños de las tablas incluyen versiones de datos. Puedes usar estas tablas integradas para supervisar los tamaños de tus tablas y los índices a lo largo del tiempo. También puedes supervisar los tamaños de tus índices a medida que los creas, borras y modificas (a medida que insertas más filas en el índice o cuando le agregas columnas nuevas). Además, también puedes consultar los tamaños de tus tablas de transmisión de cambios.
El almacenamiento de la base de datos se puede supervisar con la métrica Almacenamiento total de la base de datos.
Puedes ver el desglose del almacenamiento de la base de datos con SPANNER_SYS.TABLE_SIZES_STATS_1HOUR y SPANNER_SYS.TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR.
Accede a las estadísticas de tamaños de tablas
Spanner proporciona las estadísticas de tamaños de tablas en el esquema SPANNER_SYS. Puedes usar las siguientes formas para acceder a los datos de SPANNER_SYS:
La página de Spanner Studio de una base de datos en la Google Cloud console.
El comando
gcloud spanner databases execute-sql.El método
executeSqloexecuteStreamingSql.
Los siguientes métodos de lectura única que proporciona Spanner no admiten SPANNER_SYS:
- Realizar una lectura sólida desde una o varias filas de una tabla
- Realizar una lectura inactiva desde una o varias filas en una tabla
- Leer desde una o varias filas en un índice secundario
TABLE_SIZES_STATS_1HOUR
SPANNER_SYS.TABLE_SIZES_STATS_1HOUR contiene los tamaños de todas las tablas de tu base de datos, ordenados por interval_end. Los intervalos se basan en tiempos de reloj y finalizan en la hora. De forma interna, cada 5 minutos, Spanner recopila datos de todos los servidores y, luego, los pone a disposición en la tabla TABLE_SIZES_STATS_1HOUR poco después. Luego, los datos se promedian por cada hora del reloj. Por ejemplo, a las 11:59:30 a.m., TABLE_SIZES_STATS_1HOUR muestra los tamaños promedio de las tablas del intervalo de 10:00:00 a.m. a 10:59:59 a.m.
Esquema de la tabla
| Nombre de la columna | Tipo | Descripción |
|---|---|---|
INTERVAL_END |
TIMESTAMP |
Fin del intervalo en el que se recopilaron los tamaños de las tablas. |
TABLE_NAME |
STRING |
Nombre de la tabla o el índice. |
USED_BYTES |
FLOAT64 |
Tamaño de la tabla en bytes. |
USED_SSD_BYTES |
FLOAT64 |
Almacenamiento SSD usado por la tabla en bytes. |
USED_HDD_BYTES |
FLOAT64 |
Almacenamiento HDD usado por la tabla en bytes. |
Consultas de ejemplo
En esta sección, se incluyen varias instrucciones de SQL de ejemplo que recuperan estadísticas agregadas de tamaños de tablas. Puedes ejecutar estas instrucciones de SQL con las bibliotecas cliente, gcloud spannero la Google Cloud consola.
Consulta las 4 tablas y los índices más grandes del intervalo más reciente
La siguiente consulta muestra las 4 tablas y los índices más grandes del intervalo más reciente:
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;
Resultado de la consulta
| 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 |
Consulta la tendencia de tamaño de una tabla o un índice específicos durante las últimas 24 horas
La siguiente consulta muestra el tamaño de la tabla durante las últimas 24 horas:
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;
Aquí:
table_namedebe ser una tabla o un índice existente en la base de datos.
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;
Aquí:
table_namedebe ser una tabla o un índice existente en la base de datos.
Resultado de la consulta
| 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 contiene los tamaños de todas las tablas de tu base de datos, ordenados por interval_end, para cada grupo de localidad. Los intervalos se basan en tiempos de reloj y finalizan en la hora. De forma interna, cada 5 minutos, Spanner recopila datos de todos los servidores y, luego, los pone a disposición en la tabla TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR poco después. Luego, los datos se promedian por cada hora del reloj. Por ejemplo, a las 11:59:30 a.m., TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR muestra los tamaños promedio de las tablas para cada grupo de localidad del intervalo de 10:00:00 a.m. a 10:59:59 a.m.
Esquema de la tabla
| Nombre de la columna | Tipo | Descripción |
|---|---|---|
INTERVAL_END |
TIMESTAMP |
Fin del intervalo en el que se recopilaron los tamaños de las tablas. |
TABLE_NAME |
STRING |
Nombre de la tabla o el índice. |
LOCALITY_GROUP |
STRING |
Nombre del grupo de localidad. |
USED_BYTES |
FLOAT64 |
Tamaño de la tabla en bytes. |
USED_SSD_BYTES |
FLOAT64 |
Almacenamiento SSD usado por la tabla en bytes. |
USED_HDD_BYTES |
FLOAT64 |
Almacenamiento HDD usado por la tabla en bytes. |
Retención de datos
Como mínimo, Spanner conserva los datos de SPANNER_SYS.TABLE_SIZES_STATS_1HOUR para intervalos que abarcan los últimos 30 días.
¿Qué sigue?
- Obtén más información sobre otras herramientas de introspección.
- Obtén información sobre qué otra información Spanner almacena para cada base de datos en las tablas de esquema de información de la base de datos.
- Obtén más información sobre las prácticas recomendadas de SQL para Spanner.
- Obtén más información sobre la investigación del uso alto de CPU.