Use estas funções para verificar o consumo de armazenamento de bancos de dados e tabelas. Elas auxiliam no planejamento de capacidade, no acompanhamento de custos e na investigação de crescimentos inesperados de armazenamento.
|
Função |
Assinatura |
Descrição |
|
|
|
Retorna o tamanho total de armazenamento de um banco de dados, incluindo todas as tabelas e logs de write-ahead logging (WAL). |
|
|
|
Retorna o tamanho combinado de memória e disco de uma tabela. |
|
|
|
Detalha o armazenamento da tabela por componente: dados, binary logs ou materialized views. Requer Hologres V2.1 ou superior. |
A função PG_SIZE_PRETTY converte uma contagem bruta de bytes em um formato legível, como kB, MB ou GB. As unidades seguem potências de 2: 1 kB = 1.024 bytes, 1 MB = 1.048.576 bytes. Combine-a com qualquer uma das funções acima para formatar a saída.
PG_DATABASE_SIZE
Retorna o tamanho total de armazenamento do banco de dados atual. Use esta função para obter uma visão geral do consumo de armazenamento no nível do banco de dados.
Sintaxe
SELECT PG_DATABASE_SIZE('database_name');
Parâmetros
|
Parâmetro |
Obrigatório |
Descrição |
|
|
Sim |
Nome do banco de dados a ser consultado. |
Valor de retorno
Retorna a soma dos seguintes itens:
Tamanhos de armazenamento de todas as tabelas no banco de dados
Tamanhos dos logs WAL gerados no banco de dados
Exemplo
Obtenha o tamanho do banco de dados atual em um formato legível:
SELECT PG_SIZE_PRETTY(PG_DATABASE_SIZE(CURRENT_DATABASE()));
PG_RELATION_SIZE
Retorna o tamanho total de armazenamento de uma tabela, abrangendo tanto o espaço de memória quanto o espaço físico em disco. Use esta função para identificar quais tabelas mais consomem armazenamento.
Sintaxe
SELECT PG_RELATION_SIZE('table_name');
Parâmetros
|
Parâmetro |
Obrigatório |
Descrição |
|
|
Sim |
Nome da tabela a ser consultada. |
Valor de retorno
Retorna um valor do tipo STRING indicando o tamanho total do espaço de memória e do espaço físico em disco ocupados atualmente pela tabela.
Retorna
0se você consultar uma tabela pai particionada sem especificar uma partição filha.Retorna null caso o tamanho de armazenamento da tabela seja 0.
Limitações
Apenas tabelas internas são suportadas. Para verificar uma tabela particionada, consulte uma tabela filha específica — não consulte a tabela pai diretamente.
Consultar o tamanho de armazenamento de uma tabela com binary logging ativado requer Hologres V1.3.24 ou superior. Para atualize sua instância ou obter ajuda, consulte Atualize instâncias ou Obter suporte online para Hologres.
As métricas de armazenamento coletadas do diretório do Apsara Distributed File System incluem tabelas, arquivos de metadados e arquivos temporários gerados por operações de escrita, atualização e exclusão. Consequentemente, os valores das métricas são ligeiramente superiores aos valores retornados por PG_RELATION_SIZE .
Exemplos
Os exemplos a seguir utilizam os dados de amostra para funções agregadas de uso geral.
Consulte o tamanho de armazenamento de uma única tabela:
SELECT PG_SIZE_PRETTY(PG_RELATION_SIZE('example_table'));
Liste os tamanhos de armazenamento de todas as tabelas em um banco de dados, ordenados do maior para o menor:
SELECT table_schema || '.' || table_name AS table_full_name,
PG_SIZE_PRETTY(PG_RELATION_SIZE(QUOTE_IDENT(table_schema) || '.' || QUOTE_IDENT(table_name))) AS table_size,
PG_RELATION_SIZE(QUOTE_IDENT(table_schema) || '.' || QUOTE_IDENT(table_name)) AS order_size
FROM information_schema.tables
WHERE table_schema NOT IN ('pg_catalog', 'information_schema', 'hologres')
ORDER BY order_size DESC;
HOLOGRES.HG_RELATION_SIZE
Retorna o tamanho de armazenamento de uma tabela detalhado por componente: dados, binary logs ou materialized views. Use esta função quando precisar de visibilidade granular sobre o que está impulsionando o consumo de armazenamento — por exemplo, para determinar se os binary logs são os principais responsáveis pelo tamanho da tabela.
Requer Hologres V2.1 ou superior. Para atualize sua instância ou obter ajuda, consulte Atualize instâncias ou Obter suporte online para Hologres.
Sintaxe
SELECT HOLOGRES.HG_RELATION_SIZE('schema.table'[, 'type']);
Parâmetros
|
Parâmetro |
Obrigatório |
Descrição |
|
|
Sim |
Nome totalmente qualificado da tabela. |
|
|
Não |
Componente de armazenamento a ser consultado. Valores válidos: |
Valores válidos para type:
|
Valor |
Descrição |
|
|
Tamanho de armazenamento dos dados da tabela. |
|
|
Tamanho de armazenamento dos binary logs da tabela. |
|
|
Tamanho de armazenamento da materialized view criada para a tabela, se houver. |
|
|
Tamanho total de armazenamento da tabela (data + binlog + mv). |
Exemplos
Os exemplos a seguir utilizam os dados de amostra para funções agregadas de uso geral.
Consulte o tamanho de armazenamento de dados de uma tabela:
SELECT HOLOGRES.HG_RELATION_SIZE('public.example_table', 'data');
Verifique o tamanho de armazenamento de binary logs de uma tabela:
SELECT HOLOGRES.HG_RELATION_SIZE('public.example_table', 'binlog');
Liste os tamanhos de armazenamento de dados de todas as tabelas em um banco de dados, ordenados do maior para o menor:
SELECT table_schema || '.' || table_name AS table_full_name,
pg_size_pretty(hologres.hg_relation_size(quote_ident(table_schema) || '.' || quote_ident(table_name), 'data')) AS data_size,
hologres.hg_relation_size(quote_ident(table_schema) || '.' || quote_ident(table_name), 'data') AS order_size
FROM information_schema.tables
WHERE table_schema NOT IN ('pg_catalog', 'information_schema', 'hologres', 'hologres_statistic')
ORDER BY order_size DESC;