O Spanner fornece as seguintes tabelas incorporadas:
SPANNER_SYS.TABLE_SIZES_STATS_1HOUR
: lista os tamanhos das tabelas e dos índices nas bases de dados.SPANNER_SYS.TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR
: apresenta os tamanhos das suas tabelas e índices nas bases de dados de cada grupo de localidades.
O tamanho da tabela está em bytes. Os tamanhos das tabelas incluem versões de dados. Pode usar estas tabelas incorporadas para monitorizar os tamanhos das tabelas e dos índices ao longo do tempo. Também pode monitorizar os tamanhos dos seus índices à medida que os cria, elimina e modifica (à medida que insere mais linhas no índice ou quando lhe adiciona novas colunas). Além disso, também pode consultar os tamanhos das tabelas do fluxo de alterações.
O armazenamento da base de dados pode ser monitorizado com a métrica de armazenamento total da base de dados.
Pode ver a discriminação do armazenamento da base de dados com
SPANNER_SYS.TABLE_SIZES_STATS_1HOUR
e
SPANNER_SYS.TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR
.
Aceda às estatísticas de tamanhos das tabelas
O Spanner fornece as estatísticas de tamanhos das tabelas no esquema SPANNER_SYS
. Pode usar as seguintes formas para aceder aos dados do SPANNER_SYS
:
A página do Spanner Studio de uma base de dados na Google Cloud consola.
O comando
gcloud spanner databases execute-sql
.O método
executeSql
ou o métodoexecuteStreamingSql
.
Os seguintes métodos de leitura única fornecidos pelo Spanner não suportam o SPANNER_SYS
:
- Executar uma leitura forte a partir de uma única linha ou de várias linhas numa tabela.
- Executar uma leitura desatualizada de uma única linha ou várias linhas numa tabela.
- Leitura de uma única linha ou várias linhas num índice secundário.
TABLE_SIZES_STATS_1HOUR
SPANNER_SYS.TABLE_SIZES_STATS_1HOUR
contém os tamanhos de todas as tabelas na sua base de dados, ordenados por interval_end
. Os intervalos baseiam-se nas horas do relógio e terminam à hora exata. Internamente, a cada 5 minutos, o Spanner recolhe dados de todos os servidores e, em seguida, disponibiliza os dados na tabela TABLE_SIZES_STATS_1HOUR
pouco depois. Os dados são, em seguida, calculados em média
por cada hora. Por exemplo, às 11:59:30, TABLE_SIZES_STATS_1HOUR
mostra os tamanhos médios das tabelas do intervalo das 10:00:00 às 10:59:59.
Esquema da tabela
Nome da coluna | Tipo | Descrição |
---|---|---|
INTERVAL_END |
TIMESTAMP |
Fim do intervalo de tempo em que os tamanhos das tabelas foram recolhidos. |
TABLE_NAME |
STRING |
Nome da tabela ou do índice. |
USED_BYTES |
FLOAT64 |
Tamanho da tabela em bytes. |
USED_SSD_BYTES |
FLOAT64 |
Armazenamento SSD usado pela tabela em bytes. |
USED_HDD_BYTES |
FLOAT64 |
Armazenamento de HDD usado pela tabela em bytes. |
Consultas de exemplo
Esta secção inclui vários exemplos de declarações SQL que obtêm estatísticas agregadas de tamanhos de tabelas. Pode executar estas declarações SQL através das bibliotecas de cliente, do gcloud spanner ou da Google Cloud consola.
Consultar as 4 maiores tabelas e índices para o intervalo mais recente
A consulta seguinte devolve as 4 tabelas e índices maiores para o intervalo mais recente:
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 da 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 |
Tendência do tamanho da consulta para uma tabela ou um índice específico durante as últimas 24 horas
A seguinte consulta devolve o tamanho da tabela nas ú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;
Onde:
table_name
tem de ser uma tabela ou um índice existente na base de dados.
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;
Onde:
table_name
tem de ser uma tabela ou um índice existente na base de dados.
Resultado da 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
contém os tamanhos de todas as tabelas na sua base de dados, ordenados por interval_end
, para cada grupo de localidades. Os intervalos baseiam-se nas horas do relógio e terminam à hora. Internamente, a cada 5 minutos, o Spanner recolhe dados de todos os servidores e, em seguida, disponibiliza os dados na tabela pouco depois.TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR
Em seguida, é calculada a média dos dados por cada hora. Por exemplo, às 11:59:30, TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR
mostra os tamanhos médios das tabelas para cada grupo de localidades do intervalo das 10:00:00 às 10:59:59.
Esquema da tabela
Nome da coluna | Tipo | Descrição |
---|---|---|
INTERVAL_END |
TIMESTAMP |
Fim do intervalo de tempo em que os tamanhos das tabelas foram recolhidos. |
TABLE_NAME |
STRING |
Nome da tabela ou do índice. |
LOCALITY_GROUP |
STRING |
Nome do grupo de localidades. |
USED_BYTES |
FLOAT64 |
Tamanho da tabela em bytes. |
USED_SSD_BYTES |
FLOAT64 |
Armazenamento SSD usado pela tabela em bytes. |
USED_HDD_BYTES |
FLOAT64 |
Armazenamento de HDD usado pela tabela em bytes. |
Retenção de dados
No mínimo, o Spanner mantém os dados durante
SPANNER_SYS.TABLE_SIZES_STATS_1HOUR
para intervalos que abrangem os 30
dias anteriores.
O que se segue?
- Saiba mais acerca de outras ferramentas de introspeção.
- Saiba mais sobre outras informações que o Spanner armazena para cada base de dados nas tabelas do esquema de informações da base de dados.
- Saiba mais sobre as práticas recomendadas de SQL para o Spanner.
- Saiba mais sobre a investigação da utilização elevada da CPU.