Pular para o conteúdo principal

Questão de Banco de Dados — SGBD - Sistema de Gerenciamento de Banco de Dados — FGV 2024

Banco de DadosSGBD - Sistema de Gerenciamento de Banco de Dados
Código
fg096692
Banca
FGV
Órgão
TCE-GO
Ano
2024
Nível
Superior
Cargo
Analista de Controle Externo - Tecnologia da Informação
O comando EXPLAIN no sistema PostgreSQL, versão 16, desempenha um papel crucial na análise e otimização do desempenho das consultas SQL. Compreender o funcionamento e a saída desse comando é essencial para otimizar o desempenho do sistema.Neste contexto, o comando EXPLAIN
  1. Aexibe informações sobre o histórico de execução de consultas no banco de dados, incluindo detalhes sobre transações anteriores.
  2. Bindica ao planejador que escolha como custo estimado de execução de consultas que utilizam a cláusula EXISTS o menor custo inicial em vez do menor custo total.
  3. Cmodifica, em conjunto com a cláusula ANALYZE e WAL, a estrutura física dos arquivos de dados no disco para otimizar o desempenho das consultas.
  4. Dmonitora o espaço em disco utilizado por tabelas e índices no banco de dados, permitindo a otimização do armazenamento e reconstrução de índices CLUSTERED.
  5. Eoferece uma interface gráfica para criar e modificar tabelas no banco de dados PostgreSQL escritas utilizando a sublinguagem DDL.
Revelar gabarito e comentário

GabaritoB — indica ao planejador que escolha como custo estimado de execução de consultas que utilizam a cláusula EXISTS o menor custo inicial em vez do menor custo total.

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”.

Comando EXPLAIN no PostgreSQL

Gabarito: letra B. O comando EXPLAIN no PostgreSQL exibe o plano de execução de uma consulta, detalhando as etapas e os custos estimados. Para consultas que utilizam a cláusula EXISTS, o planejador costuma selecionar um plano que minimize o custo inicial (primeira linha) em vez do custo total, pois EXISTS pode interromper ao encontrar a primeira ocorrência. A saída do EXPLAIN reflete essa escolha, mostrando os custos inicial e total de cada operação.

EXPLAIN (PostgreSQL)
  • 1Exibe plano de execução
    • Etapas da consulta
    • Custos estimados
  • 2Com EXISTS
    • Custo total (não prioriza)
    • Custo inicial (prioriza)
      • Estratégia: nested loop
      • Pode interromper na 1ª ocorrência
  • 3Não faz
    • Histórico de execuções
    • Modificação física (WAL)
    • Monitoramento de disco
    • Interface gráfica (DDL)
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

EXPLAIN não exibe histórico de execuções passadas, nem detalhes de transações anteriores. Ele mostra apenas o plano estimado para a consulta atual.

Alternativa B — ✅ Correta ⟵ GABARITO

Em consultas com EXISTS, o otimizador do PostgreSQL tende a adotar estratégias de baixo custo inicial (como nested loop), e o EXPLAIN exibe essa escolha no plano de execução, contrastando o custo inicial e o custo total.

Alternativa C — ❌ Incorreta

EXPLAIN (mesmo com ANALYZE) não modifica a estrutura física dos arquivos de dados. WAL (Write-Ahead Log) é usado para recuperação, não para otimização via EXPLAIN.

Alternativa D — ❌ Incorreta

Monitoramento de espaço em disco e reconstrução de índices são feitos por comandos como VACUUM, ANALYZE ou pg_total_relation_size, não pelo EXPLAIN.

Alternativa E — ❌ Incorreta

EXPLAIN é um comando textual, não oferece interface gráfica. A criação/modificação de tabelas (DDL) usa comandos como CREATE TABLE e ALTER TABLE.

Conclusão: A única alternativa que descreve corretamente uma funcionalidade do EXPLAIN no contexto do PostgreSQL é a letra B.

Link permanente: /questoes/fg096692