Questão de Banco de Dados — SQL — CESPE / CEBRASPE 2024
Banco de Dados›SQL
Código
ce178292
Banca
CESPE / CEBRASPE
Órgão
MPO
Ano
2024
Nível
Superior
Cargo
Analista de Planejamento e Orçamento - Especialidade: Gestão de Infraestrutura de TI
Considerando aspectos da análise de desempenho e otimização de consultas SQL, julgue o próximo item.A consultaé mais eficiente que a consulta a seguir.
CCerto
EErrado
Revelar gabarito e comentário▾
GabaritoE — Errado
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”.
Otimização de consultas SQL: equivalência e eficiência
Gabarito: Errado (E). A afirmação de que uma consulta é mais eficiente que outra, sem considerar o plano de execução gerado pelo otimizador do SGBD, é uma generalização indevida. A eficiência de uma consulta SQL não é uma propriedade intrínseca da sua sintaxe, mas sim do plano de execução escolhido pelo otimizador, que depende de fatores como estatísticas, índices e distribuição dos dados. O texto de apoio sobre otimização de consultas (Capítulo 19) reforça que o SGBD deve processar consultas equivalentes da mesma maneira, mas que, na prática, cada SGBD possui métodos diferentes, e a eficiência pode variar conforme a especificação.
A otimização de consultas é o processo pelo qual o SGBD transforma uma consulta SQL em um plano de execução eficiente. Esse processo envolve várias etapas, como a conversão da consulta em uma forma canônica e a escolha de procedimentos de baixo nível, considerando a existência de índices e a distribuição dos dados. O otimizador busca encontrar a forma mais eficiente de executar uma consulta, mas essa eficiência é relativa ao estado do banco de dados e às estatísticas disponíveis.
A questão apresenta duas consultas SQL (representadas nas imagens) e afirma que uma é mais eficiente que a outra. No entanto, sem conhecer o plano de execução gerado pelo otimizador, não é possível afirmar categoricamente que uma é mais eficiente. Consultas sintaticamente diferentes podem ser equivalentes e o otimizador pode gerar o mesmo plano de execução para ambas. Além disso, a eficiência pode variar dependendo do SGBD e das condições específicas do banco de dados.
A pegadinha da questão está em assumir que a forma como a consulta é escrita determina diretamente sua eficiência. Na prática, o otimizador de consultas é responsável por encontrar o plano de execução mais eficiente, e a sintaxe da consulta é apenas um dos fatores considerados. Portanto, a afirmação de que uma consulta é mais eficiente que outra, sem considerar o plano de execução, é uma generalização indevida.
NÃO CAIA NESSA!
A banca explora a ideia de que a eficiência de uma consulta SQL é determinada pela sua sintaxe. Na realidade, o otimizador do SGBD decide o plano de execução, e consultas equivalentes podem ter o mesmo desempenho. A eficiência depende de fatores como índices, estatísticas e distribuição dos dados, não apenas da forma como a consulta é escrita.
1Consulta SQL escrita
2Otimizador gera plano
3Considera índices/estatísticas
4Executa plano eficiente
LEVEL · soulevel.com.br
Item — ❌ Errado
A afirmação de que uma consulta é mais eficiente que outra, sem considerar o plano de execução gerado pelo otimizador, é incorreta. A eficiência de uma consulta SQL não é uma propriedade intrínseca da sua sintaxe, mas sim do plano de execução escolhido pelo otimizador, que depende de fatores como estatísticas, índices e distribuição dos dados. O texto de apoio sobre otimização de consultas (Capítulo 19) reforça que o SGBD deve processar consultas equivalentes da mesma maneira, mas que, na prática, cada SGBD possui métodos diferentes, e a eficiência pode variar conforme a especificação.