O Hologres é compatível com PostgreSQL e oferece funções para consultar o tamanho de armazenamento de tabelas e bancos de dados. Este tópico descreve como usar instruções SQL para realizar essas consultas.
Limitações
É possível consultar apenas o tamanho de armazenamento de tabelas internas. O sistema não suporta consulta direta a uma tabela pai particionada e retorna 0. Para visualizar o tamanho de armazenamento de uma tabela particionada, consulte uma tabela filha específica. Se o tamanho de armazenamento da tabela for 0, a consulta retornará um valor nulo.
No Hologres V1.3.24 e versões posteriores, use a função
pg_relation_sizepara visualizar o tamanho de armazenamento do binlog em tabelas com o binlog do Hologres ativado.A função
pg_relation_sizecalcula o tamanho de armazenamento de uma tabela. No entanto, as métricas de monitoramento medem o tamanho total de armazenamento de arquivos da instância no diretório Pangu. Esse diretório inclui o armazenamento de tabelas, arquivos de metadados e arquivos temporários gerados por operações de escrita, atualização e exclusão. Por isso, o tamanho de armazenamento reportado pelas métricas de monitoramento é ligeiramente maior que o resultado retornado pela funçãopg_relation_size.
Visualizar o tamanho de armazenamento da tabela
-
Sintaxe
SELECT pg_relation_size('table_name');--Returns the size in bytes. -
Parâmetros
Parâmetro
Descrição
table_name
Nome da tabela a ser consultada no banco de dados atual.
-
Valor de retorno: representa o espaço que a tabela ocupa em disco e na memória no momento da consulta.
Para melhorar a legibilidade, utilize a função pg_size_pretty na consulta. A sintaxe é a seguinte:
--View the storage size of a single table SELECT pg_size_pretty(pg_relation_size('table_name')); --View the storage size of all tables 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;
Visualizar o tamanho de armazenamento do schema
-
Notas de uso
Calcule o tamanho total de armazenamento de todas as tabelas em um schema específico.
-
Sintaxe
SELECT table_schema, pg_size_pretty(SUM(pg_relation_size(quote_ident(table_schema) || '.' || quote_ident(table_name))::decimal)) AS schema_size FROM information_schema.tables WHERE table_schema = '<schema_name>' GROUP BY table_schema; -
Parâmetros
Parâmetro
Descrição
schema_name
Nome do schema a ser consultado.
Valor de retorno: a instrução retorna o tamanho total de armazenamento em bytes.
Visualizar o tamanho de armazenamento do banco de dados
-
Notas de uso
Visualize o tamanho de armazenamento apenas do banco de dados conectado atualmente.
-
Sintaxe
SELECT pg_database_size(current_database()); --Returns the size in bytes. -
Parâmetros
Parâmetro
Descrição
current_database
Representa o banco de dados atual. Não substitua este parâmetro. Execute o comando diretamente para consultar o tamanho de armazenamento do banco de dados atual.
-
Valor de retorno: a função retorna o tamanho total de armazenamento do banco de dados em bytes. Esse tamanho inclui todas as tabelas do Hologres e o log de escrita antecipada (WAL).
Para melhorar a legibilidade, utilize a função pg_size_pretty. A sintaxe é a seguinte:
SELECT pg_size_pretty(pg_database_size(current_database())); --Returns the size in a human-readable format, such as KB or MB.
Visualizar detalhes de armazenamento da tabela
No Hologres V2.1 e versões posteriores, utilize a função hologres.hg_relation_size para visualizar um detalhamento completo do armazenamento de uma tabela, incluindo dados, binlog e outros componentes.
-
Limitações
A função
hologres.hg_relation_sizeé suportada apenas em instâncias do Hologres V2.1 e posteriores. -
Sintaxe
SELECT hologres.hg_relation_size('<schema.table>','[data|binlog|mv|all]') ; -
Parâmetros
Parâmetro
Descrição
schema.table
Nome do schema e nome da tabela.
[data|binlog|mv|all]
Parâmetro opcional. Valores válidos:
data: tamanho de armazenamento dos dados da tabela.
binlog: tamanho de armazenamento do binlog da tabela.
mv: tamanho de armazenamento da visualização materializada da tabela.
all: tamanho total de armazenamento da tabela.
-
Exemplos
-
Exemplo 1: visualizar o tamanho de armazenamento de dados de uma única tabela.
SELECT hologres.hg_relation_size('<schema.table>','data') ; -
Exemplo 2: visualizar o tamanho de armazenamento do binlog de uma única tabela.
SELECT hologres.hg_relation_size('<schema.table>','binlog') ; -
Exemplo 3: visualizar o tamanho de armazenamento de todas as tabelas em um banco de dados.
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;
-