O Spanner fornece as seguintes tabelas integradas:
SPANNER_SYS.TABLE_SIZES_STATS_1HOUR: lista os tamanhos das tabelas e dos índices nos bancos de dados.SPANNER_SYS.TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR: lista os tamanhos das tabelas e dos índices nos bancos de dados de cada grupo de localidade.
O tamanho da tabela está em bytes. Os tamanhos das tabelas incluem versões de dados. Você pode usar essas tabelas integradas para monitorar os tamanhos da tabela e do índice ao longo do tempo. Você também pode monitorar os tamanhos dos seus índices à medida que os cria, exclui e modifica (ao inserir mais linhas no índice ou adicionar novas colunas a ele). Além disso, você também pode conferir os tamanhos das tabelas de fluxo de mudanças.
O armazenamento do banco de dados pode ser monitorado com a métrica de 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.
Acessar estatísticas de tamanhos de tabelas
O Spanner fornece as estatísticas de tamanho da tabela no esquema SPANNER_SYS. Você pode usar as seguintes maneiras para acessar os dados do SPANNER_SYS:
A página do Spanner Studio de um banco de dados no console Google Cloud .
O comando
gcloud spanner databases execute-sql.O método
executeSqlouexecuteStreamingSql.
Os seguintes métodos de leitura única fornecidos pelo Spanner
não são compatíveis com SPANNER_SYS:
- realizar uma leitura forte de uma única linha ou de várias linhas em uma tabela;
 - realizar uma leitura desatualizada de uma única linha ou várias linhas em uma tabela;
 - ler uma única linha ou várias linhas em um índice secundário.
 
TABLE_SIZES_STATS_1HOUR
SPANNER_SYS.TABLE_SIZES_STATS_1HOUR contém os tamanhos de todas as tabelas no banco de dados, classificadas por interval_end. Os intervalos são baseados em horários, terminando na hora. Internamente, a cada cinco minutos, o Spanner coleta
dados de todos os servidores e os disponibiliza na tabela
TABLE_SIZES_STATS_1HOUR pouco tempo depois. Em seguida, os dados são calculados por hora. Por exemplo, às 11h59min30s, TABLE_SIZES_STATS_1HOUR mostra os tamanhos médios das 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 da tabela 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 por tabela em bytes. | 
USED_HDD_BYTES | 
    FLOAT64 | 
    Armazenamento de HDD usado por tabela em bytes. | 
Exemplo de consultas
Nesta seção, há várias instruções SQL de exemplo que recuperam estatísticas agregadas de tamanho da tabela. É possível executar essas instruções SQL usando as bibliotecas de cliente, o gcloud spanner ou o consoleGoogle Cloud .
Consultar as quatro maiores tabelas e índices do intervalo mais recente
A consulta a seguir retorna as quatro maiores tabelas e índices do 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 de tamanho da consulta para uma tabela ou um í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_nameprecisa ser uma tabela ou um índice existente 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_nameprecisa ser uma tabela ou um índice existente 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 banco de dados, classificadas por interval_end, para cada grupo de localidade. Os intervalos são baseados em horas, terminando 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 pouco tempo depois. Em seguida, os dados são calculados por hora. Por exemplo, às 11h59min30, TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR mostra os tamanhos médios das tabelas de cada grupo de localidade do intervalo de 10h00min00 a 10h59min59.
Esquema de tabela
| Nome da coluna | Tipo | Descrição | 
|---|---|---|
INTERVAL_END | 
    TIMESTAMP | 
    Fim do intervalo de tempo em que os tamanhos da tabela 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 por tabela em bytes. | 
USED_HDD_BYTES | 
    FLOAT64 | 
    Armazenamento de HDD usado por tabela em bytes. | 
Retenção de dados
No mínimo, o Spanner mantém dados para SPANNER_SYS.TABLE_SIZES_STATS_1HOUR em 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.