Questão nº 69
Questão de Tecnologia da Informação · FGV TCE-GO 2024 (nº 69)
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
- Aexibe informações sobre o histórico de execução de consultas no banco de dados, incluindo detalhes sobre transações anteriores.
- 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. (alternativa correta)
- 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.
- 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.
- Eoferece uma interface gráfica para criar e modificar tabelas no banco de dados PostgreSQL escritas utilizando a sublinguagem DDL.
Resposta comentada
Gabarito Alternativa B
O comando EXPLAIN no PostgreSQL é uma ferramenta essencial que mostra o plano de execução que o banco de dados pretende usar para uma consulta SQL. Ele detalha os passos que o sistema dará para buscar os dados, estimando os custos (tempo e recursos) de cada operação.
- (A) Incorreta: O
EXPLAINnão exibe histórico de execução de consultas ou detalhes de transações anteriores. Ele foca no plano de execução de uma consulta específica, seja ela futura ou recém-executada (comANALYZE). - (B) Correta: Para consultas que utilizam a cláusula
EXISTS, o planejador do PostgreSQL frequentemente prioriza o custo inicial (startup cost) – o tempo para obter a primeira linha – em detrimento do custo total (total cost). Isso ocorre porqueEXISTSsó precisa encontrar uma ocorrência para retornar verdadeiro. O comandoEXPLAINrevela essa decisão do planejador, mostrando os custos estimados para cada etapa do plano, incluindo o custo inicial e o custo total, evidenciando quando o planejador escolhe um plano otimizado para a obtenção rápida do primeiro resultado. - (C) Incorreta: O
EXPLAINé uma ferramenta de análise e não modifica a estrutura física dos arquivos de dados.ANALYZEatualiza estatísticas, e WAL (Write-Ahead Log) é para durabilidade e recuperação, não para modificação estrutural direta viaEXPLAIN. - (D) Incorreta: O
EXPLAINnão monitora espaço em disco nem gerencia a reconstrução de índices. Essas são funções de monitoramento e manutenção do DBA, utilizando outras ferramentas e comandos específicos. - (E) Incorreta: O
EXPLAINé um comando SQL para análise de planos de execução, não uma interface gráfica para DDL (Data Definition Language). DDL é a sublinguagem para criar, modificar e excluir objetos do banco de dados (tabelas, índices, etc.).
Fonte: FGV TCE-GO 2024 Analista de Controle Externo - Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.