Questão de Banco de Dados — Otimização (Tuning) em Banco de Dados — CESPE / CEBRASPE 2024
- Código
- ce403655
- Banca
- CESPE / CEBRASPE
- Órgão
- CODEVASF
- Ano
- 2024
- Cargo
- AnDR ( )
- CCerto
- EErrado
GabaritoC — Certo
Gabarito: Certo. A análise de consultas SQL, materializada no plano de execução, é uma técnica central e amplamente utilizada para otimizar o desempenho de bancos de dados, pois permite ao DBA identificar gargalos e ajustar a forma como o SGBD executa as consultas. O plano de execução é o resultado do processo de otimização de consulta, no qual o SGBD escolhe uma estratégia de execução entre várias possíveis, visando minimizar o tempo de resposta e o consumo de recursos.
A otimização de consultas, também chamada de tuning, é o processo pelo qual o SGBD avalia sistematicamente diferentes estratégias de execução para uma consulta SQL e escolhe a mais eficiente. Esse processo é necessário porque uma consulta declarativa em SQL não especifica como os dados devem ser obtidos, apenas o que se deseja como resultado. O otimizador, então, gera um plano de execução, que é um roteiro detalhado das operações que serão realizadas (como varreduras em tabelas, uso de índices, ordenações e junções) e o custo estimado de cada uma. A análise desse plano é uma técnica fundamental de tuning, pois revela se a consulta está sendo executada de forma eficiente ou se há oportunidades de melhoria, como a criação de um índice adequado ou a reescrita da consulta.
Na prática, ferramentas como o EXPLAIN PLAN (no Oracle) ou o EXPLAIN (no PostgreSQL e MySQL) exibem o plano de execução escolhido pelo otimizador. O DBA analisa campos como OPERATION (tipo de ação, ex.: TABLE ACCESS, INDEX SCAN), OBJECT_NAME (tabela ou índice envolvido), COST (custo estimado, quanto menor melhor) e CARDINALITY (número estimado de linhas processadas). Com base nessa análise, o DBA pode identificar, por exemplo, uma varredura total desnecessária em uma tabela grande e decidir criar um índice para acelerar a consulta. Outras técnicas de tuning incluem o uso de hints (dicas para o otimizador), bind variables (para reutilização de planos) e a atualização de estatísticas do banco.
É importante distinguir a otimização de consultas de outras práticas de desempenho. Enquanto a otimização de consultas foca em como uma consulta específica é executada, outras técnicas como particionamento, uso de índices compostos, índices cobertos (covering index) e consultas parametrizadas também visam melhorar o desempenho, mas atuam em níveis diferentes (estrutura de armazenamento, projeto físico, etc.). A análise do plano de execução é a ferramenta que permite avaliar o impacto dessas técnicas e identificar o gargalo real.
A pegadinha desta questão é justamente a aparente simplicidade: o candidato pode achar que a afirmação é genérica demais ou que "plano de execução" é um termo técnico que não se encaixa na descrição. No entanto, a análise de consultas SQL por meio do plano de execução é, de fato, uma técnica consagrada e essencial para o tuning de banco de dados, sendo amplamente coberta em provas de concursos.
Guarde este ponto: a otimização de consultas (tuning) tem como objetivo escolher uma estratégia de execução eficiente, e o plano de execução é a materialização dessa escolha. É exatamente essa relação que a questão explora.
A afirmação está correta. A análise de consultas SQL, conhecida como plano de execução, é uma técnica fundamental e amplamente utilizada para otimizar o desempenho de bancos de dados. O plano de execução mostra como o SGBD pretende executar a consulta, permitindo identificar ineficiências e aplicar ajustes. O processo de otimização de consulta, que gera o plano, é uma das principais responsabilidades do SGBD para garantir desempenho, conforme descrito no conteúdo de apoio: "O SGBD precisa então idealizar uma estratégia de execução ou plano de consulta para recuperar os resultados da consulta com base nos arquivos de banco de dados" e "o processo de escolha de uma estratégia adequada para processá-la é conhecido como otimização de consulta (ou tuning)".
Gabarito: Certo
Link permanente: /questoes/ce403655