Questão nº 80

Questão de Tecnologia da Informação · FGV CGE-SP 2025 (nº 80)

FGV2025Auditor Estadual de Controle - Tecnologia da InformaçãoTecnologia da Informação
Gabarito: Aver comentário ↓

Uma consulta SQL que realiza múltiplos JOINs e filtros sobre tabelas grandes está apresentando lentidão.
As opções a seguir apresentam estratégias recomendadas para otimização, à exceção de uma. Assinale-a.

Resposta comentada

Gabarito Alternativa A

Para otimizar uma consulta SQL lenta, precisamos entender como o banco de dados a executa e identificar os gargalos. As estratégias geralmente envolvem melhorar o plano de execução, o acesso aos dados ou a própria lógica da consulta.

  • (A) Correta: Normalizar ainda mais as tabelas envolvidas. A normalização excessiva (ir além do necessário, como 3FN) pode levar à criação de mais tabelas e, consequentemente, exigir mais JOINs para recuperar os dados. Como a consulta já está lenta devido a "múltiplos JOINs", adicionar mais JOINs por meio de normalização adicional provavelmente pioraria o desempenho, em vez de melhorá-lo. Esta é a armadilha: embora a normalização seja um princípio importante de design de banco de dados, "ainda mais" normalização não é uma estratégia de otimização de desempenho para este cenário específico e pode ser contraproducente.
  • (B) Incorreta: Utilizar EXPLAIN para verificar o plano de execução. O comando EXPLAIN (ou similar, dependendo do SGBD) é fundamental para entender como o otimizador do banco de dados planeja executar a consulta, mostrando quais índices serão usados, a ordem dos JOINs e os custos estimados. É o primeiro passo para identificar gargalos.
  • (C) Incorreta: Avaliar estatísticas e atualizá-las com ANALYZE. As estatísticas do banco de dados (informações sobre a distribuição dos dados nas tabelas) são usadas pelo otimizador para escolher o plano de execução mais eficiente. Estatísticas desatualizadas podem levar a planos ruins. ANALYZE (ou UPDATE STATISTICS) é essencial para manter as estatísticas precisas.
  • (D) Incorreta: Criação de índices nos campos usados em JOIN e WHERE. Índices são estruturas que aceleram a busca e a recuperação de dados. Criar índices nas colunas usadas nas cláusulas JOIN e WHERE (filtros) é uma das estratégias mais eficazes para melhorar drasticamente o desempenho de consultas lentas.
  • (E) Incorreta: Reescrever a consulta evitando subconsultas desnecessárias. Subconsultas, especialmente as correlacionadas ou mal otimizadas, podem ser ineficientes. Reescrever a consulta para usar JOINs, CTEs (Common Table Expressions) ou outras abordagens mais eficientes pode melhorar significativamente o desempenho.

Fonte: FGV CGE-SP 2025 Auditor Estadual de Controle - Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho