O Spanner fornece as seguintes tabelas integradas:
SPANNER_SYS.TABLE_SIZES_STATS_1HOUR
: lista os tamanhos das tabelas e índices nos bancos de dados.SPANNER_SYS.TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR
: lista os tamanhos das tabelas e índices nos bancos de dados para cada grupo de localidades.
O tamanho da tabela é em bytes. Os tamanhos de tabela incluem versões de dados. É possível usar essas tabelas integradas para monitorar a tabela e os tamanhos de índice ao longo do tempo. Você também pode monitorar os tamanhos dos índices conforme os cria, exclui e modifica, como ao inserir mais linhas no índice ou ao adicionar novas colunas a ele. Além disso, você também pode conferir os tamanhos das suas tabelas de fluxo de mudanças.
O armazenamento do banco de dados pode ser monitorado com a métrica "Armazenamento total do banco de dados".
É possível conferir o detalhamento do armazenamento do banco de dados com
SPANNER_SYS.TABLE_SIZES_STATS_1HOUR
e
SPANNER_SYS.TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR
.
Disponibilidade
Os dados de SPANNER_SYS
estão disponíveis apenas por interfaces SQL. Exemplo:
Página do Spanner Studio de um banco de dados no console do Google Cloud
O comando
gcloud spanner databases execute-sql
A API
executeQuery
Outros métodos de leitura única fornecidos pelo Spanner não são compatíveis com
SPANNER_SYS
.
TABLE_SIZES_STATS_1HOUR
SPANNER_SYS.TABLE_SIZES_STATS_1HOUR
contém os tamanhos de todas as tabelas no
seu banco de dados, classificados por interval_end
. Os intervalos são baseados em horários,
terminando na hora. Internamente, a cada 5 minutos, o Spanner coleta
dados de todos os servidores e os disponibiliza na tabela
TABLE_SIZES_STATS_1HOUR
logo depois. Em seguida, os dados são calculados em média por hora. Por exemplo, às 11h59min30s, TABLE_SIZES_STATS_1HOUR
mostra os tamanhos médios de tabelas do intervalo de 10h00min00s a 10h59min59s.
Esquema de tabela
Nome da coluna | Tipo | Descrição |
---|---|---|
INTERVAL_END |
TIMESTAMP |
Fim do intervalo de tempo em que os tamanhos das tabelas foram coletados. |
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. |
Exemplo de consultas
Esta seção inclui vários exemplos de instruções SQL que recuperam estatísticas de tamanhos de tabelas agregadas. É possível executar essas instruções SQL usando as bibliotecas de cliente, o gcloud spanner ou o console do Google Cloud.
Consultar as quatro tabelas e índices mais grandes do intervalo mais recente
A consulta a seguir retorna as quatro 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;
Saída 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 de uma tabela ou índice específico nas últimas 24 horas
A consulta a seguir retorna 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;
Em que:
table_name
precisa ser uma tabela ou um índice no banco 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;
Em que:
table_name
precisa ser uma tabela ou um índice no banco de dados.
Saída 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 no seu banco de dados, classificadas por interval_end
, para cada grupo de
localidades. Os intervalos são baseados em horários de relógio e terminam na hora. Internamente,
a cada cinco minutos, o Spanner coleta dados de todos os servidores e os
disponibiliza na tabela TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR
logo em seguida. Em seguida, os dados são calculados em média por hora. Por
exemplo, às 11h59min30s, TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR
mostra os
tamanhos médios de tabela para cada grupo de localidades no intervalo de 10h00min00s a
10h59min59s.
Esquema de tabela
Nome da coluna | Tipo | Descrição |
---|---|---|
INTERVAL_END |
TIMESTAMP |
Fim do intervalo de tempo em que os tamanhos das tabelas foram coletados. |
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
O Spanner mantém dados para
SPANNER_SYS.TABLE_SIZES_STATS_1HOUR
por intervalos que abrangem os últimos 30
dias.
A seguir
- Saiba mais sobre outras ferramentas de introspecção.
- Saiba mais sobre outras informações que o Spanner armazena para cada banco de dados nas tabelas de esquema de informações do banco de dados.
- Saiba mais sobre as práticas recomendadas de SQL para o Spanner.
- Saiba mais sobre como investigar a alta utilização da CPU.