Pular para o conteúdo principal

Questão de Banco de Dados — PostgreSQL — FGV 2024

Banco de DadosPostgreSQL
Código
fg077425
Banca
FGV
Órgão
CVM
Ano
2024
Nível
Superior
Cargo
Analista - Perfil 9 - TI / Infraestrutura e Segurança - Tarde
Gabriela é a administradora dos bancos de dados gerenciados pelo PostgreSQL de uma instituição. Ela está monitorando o espaço em disco utilizado por algumas tabelas dos bancos de dados por meio da inspeção do catálogo do sistema, que foi recentemente atualizado por outra operação.Gabriela está usando o seguinte comando SQL:
  1. ASELECT relpagesFROM pg_classWHERE relname = 'mytable';
  2. BSELECT relsizeFROM pg_databaseWHERE relname = 'mytable';
  3. CSELECT tabsizeFROM pg_relationsWHERE tabname = 'mytable';
  4. DSELECT *FROM pg_table_sizeWHERE tabname = 'mytable';
  5. ESELECT relationFROM pg_dataWHERE relname = 'mytable'.
Revelar gabarito e comentário

GabaritoA — SELECT relpages FROM pg_class WHERE relname = 'mytable';

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

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.

Link permanente: /questoes/fg077425