Spanner proporciona las siguientes tablas integradas:
SPANNER_SYS.TABLE_SIZES_STATS_1HOUR
: muestra los tamaños de las tablas y los índices de tus bases de datos.SPANNER_SYS.TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR
: muestra los tamaños de las tablas y los índices de tus bases de datos de cada grupo de configuración regional.
El tamaño de la tabla se indica en bytes. Los tamaños de las tablas incluyen versiones de datos. Puede usar estas tablas integradas para monitorizar el tamaño de sus tablas e índices a lo largo del tiempo. También puedes monitorizar el tamaño de tus índices a medida que los creas, eliminas y modificas (por ejemplo, cuando insertas más filas en el índice o cuando le añades nuevas columnas). Además, también puedes consultar los tamaños de tus tablas de flujo de cambios.
El almacenamiento de la base de datos se puede monitorizar con la métrica de 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
.
Acceder a las estadísticas de tamaños de tablas
.Spanner proporciona las estadísticas de tamaño de las tablas en el esquema SPANNER_SYS
. Puedes acceder a los datos de SPANNER_SYS
de las siguientes formas:
La página de Spanner Studio de una base de datos en la Google Cloud consola.
El comando
gcloud spanner databases execute-sql
.El método
executeSql
o el métodoexecuteStreamingSql
.
Los siguientes métodos de lectura única que proporciona Spanner no admiten SPANNER_SYS
:
- Realizar una lectura fuerte desde una sola fila o varias filas en una tabla.
- Realizar una lectura inactiva de una sola fila o varias filas en una tabla.
- Leer desde una sola fila 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, ordenadas por interval_end
. Los intervalos se basan en horas en punto. Internamente, cada 5 minutos, Spanner recoge datos de todos los servidores y, poco después, los pone a disposición en la tabla TABLE_SIZES_STATS_1HOUR
. A continuación, se calcula la media de los datos por cada hora del reloj. Por ejemplo, a las 11:59:30, TABLE_SIZES_STATS_1HOUR
muestra los tamaños medios de las tablas del intervalo de 10:00:00 a 10:59:59.
Esquema de tabla
Nombre de la columna | Tipo | Descripción |
---|---|---|
INTERVAL_END |
TIMESTAMP |
Hora de finalización del intervalo en el que se recogieron los tamaños de las tablas. |
TABLE_NAME |
STRING |
Nombre de la tabla o del í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 |
Espacio de almacenamiento en HDD usado por la tabla en bytes. |
Consultas de ejemplo
En esta sección se incluyen varios ejemplos de instrucciones SQL que obtienen estadísticas de tamaños de tablas agregadas. Puedes ejecutar estas instrucciones SQL mediante las bibliotecas de cliente, gcloud spanner o la Google Cloud consola.
Consultar las 4 tablas e índices más grandes del intervalo más reciente
La siguiente consulta devuelve las 4 tablas e í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;
Salida 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 |
Tendencia del tamaño de las consultas de una tabla o un índice concretos durante las últimas 24 horas
La siguiente consulta devuelve 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;
Donde:
table_name
debe ser una tabla o un índice que ya exista 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;
Donde:
table_name
debe ser una tabla o un índice que ya exista en la base de datos.
Salida 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 su base de datos, ordenadas por interval_end
, para cada grupo de localidades. Los intervalos se basan en horas en punto. Internamente, cada 5 minutos, Spanner recoge datos de todos los servidores y, a continuación, pone los datos a disposición en la tabla TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR
poco después. A continuación, se calcula la media de los datos por cada hora. Por ejemplo, a las 11:59:30, TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR
muestra el tamaño medio de las tablas de cada grupo de localidades del intervalo de 10:00:00 a 10:59:59.
Esquema de tabla
Nombre de la columna | Tipo | Descripción |
---|---|---|
INTERVAL_END |
TIMESTAMP |
Hora de finalización del intervalo en el que se recogieron los tamaños de las tablas. |
TABLE_NAME |
STRING |
Nombre de la tabla o del índice. |
LOCALITY_GROUP |
STRING |
Nombre del grupo de localidades. |
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 |
Espacio de almacenamiento en HDD usado por la tabla en bytes. |
Conservación de datos
Como mínimo, Spanner conserva los datos de
SPANNER_SYS.TABLE_SIZES_STATS_1HOUR
durante los intervalos de los últimos 30 días.
Siguientes pasos
- Consulta información sobre otras herramientas de introspección.
- Consulta otra información que almacena Spanner sobre cada base de datos en las tablas del esquema de información de la base de datos.
- Consulta más información sobre las prácticas recomendadas de SQL para Spanner.
- Consulta más información sobre cómo investigar el uso elevado de la CPU.