PostgreSQL – Inspeção do Catálogo do Sistema
Gabarito: letra A. A consulta SELECT relpages FROM pg_class WHERE relname = 'mytable' é a forma correta de obter o número de páginas em disco ocupadas por uma tabela no PostgreSQL, pois a coluna relpages da tabela do catálogo pg_class armazena exatamente essa informação. As demais alternativas fazem referência a colunas ou tabelas que não existem no catálogo padrão do PostgreSQL.
Alternativa A – ✅ Correta ⟵ GABARITO
A consulta utiliza a coluna relpages da tabela pg_class, que contém o número de páginas (cada página tem 8 KB por padrão) ocupadas pela relação. Esse é o método direto e correto para monitorar o espaço em disco de uma tabela através do catálogo do sistema.
Alternativa B – ❌ Incorreta
A tabela pg_database não possui coluna relsize nem coluna relname; ela contém informações sobre bancos de dados, não sobre tabelas individuais. A consulta é inválida.
Alternativa C – ❌ Incorreta
Não existe uma tabela de catálogo chamada pg_relations no PostgreSQL. A coluna tabsize também não existe. O usuário deve consultar pg_class ou funções como pg_table_size().
Alternativa D – ❌ Incorreta
pg_table_size é uma função, não uma tabela. A sintaxe correta para usá-la seria SELECT pg_table_size('mytable'), e não um SELECT * FROM pg_table_size WHERE .... Não existe uma tabela de catálogo com esse nome.
Alternativa E – ❌ Incorreta
pg_data não é uma tabela do catálogo do PostgreSQL. Não há coluna relation que armazene o tamanho de uma tabela. A tabela de catálogo que armazena informações sobre relações é pg_class.
Gabarito: letra A.