Estadísticas de los tamaños de las tablas

Spanner proporciona las siguientes tablas integradas:

  • SPANNER_SYS.TABLE_SIZES_STATS_1HOUR: Enumera los tamaños de tus tablas e índices dentro de tus bases de datos.
  • SPANNER_SYS.TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR: Enumera los tamaños de tus tablas e índices dentro de tus bases de datos para cada grupo de localidades.

El tamaño de la tabla está en bytes. Los tamaños de las tablas incluyen las versiones de los datos. Puedes usar estas tablas integradas para supervisar los tamaños de tus tablas e índices a lo largo del tiempo. También puedes supervisar los tamaños de tus índices a medida que los creas, borras y modificas (cuando insertas más filas en el índice o cuando le agregas columnas nuevas). Además, también puedes consultar los tamaños de las tablas de tu 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 las tablas

Spanner proporciona las estadísticas de tamaño de la tabla en el esquema SPANNER_SYS. Puedes acceder a los datos de SPANNER_SYS de las siguientes maneras:

  • La página de Spanner Studio de una base de datos en la consola de Google Cloud

  • El comando gcloud spanner databases execute-sql.

  • El método executeSql o el método executeStreamingSql.

Los siguientes métodos de lectura única que proporciona Spanner no son compatibles con 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. Internamente, 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 Es el final 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 que usa la tabla en bytes.
USED_HDD_BYTES FLOAT64 Almacenamiento en HDD que usa la tabla, en bytes.

Consultas de ejemplo

En esta sección, se incluyen varias instrucciones de SQL de ejemplo que recuperan estadísticas agregadas sobre los tamaños de las tablas. Puedes ejecutar estas instrucciones de SQL con las bibliotecas cliente, gcloud spanner o la consola deGoogle Cloud .

Consultar las 4 tablas y los 4 índices más grandes para el intervalo más reciente

La siguiente consulta devuelve las 4 tablas e índices más grandes para el 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

Tendencia del tamaño de las consultas para 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_name debe 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_name debe 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. Internamente, 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, se promedian los datos 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 localidades 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 Es el final 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 Es el nombre del grupo de localidades.
USED_BYTES FLOAT64 Tamaño de la tabla en bytes.
USED_SSD_BYTES FLOAT64 Almacenamiento SSD que usa la tabla en bytes.
USED_HDD_BYTES FLOAT64 Almacenamiento en HDD que usa la tabla, en bytes.

Retención de datos

Como mínimo, Spanner conserva los datos de SPANNER_SYS.TABLE_SIZES_STATS_1HOUR durante los intervalos que abarcan los 30 días anteriores.

¿Qué sigue?