As técnicas de otimização embasadas em heurísticas permitem ...
desempenho e otimização de consultas SQL em banco de dados.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: E - errado
A questão aborda a compreensão das técnicas de otimização de consultas SQL em bancos de dados. Para entender a questão, é necessário saber que existem principalmente duas abordagens de otimização: baseada em heurísticas e baseada em custos.
A otimização de consultas heurística envolve a aplicação de regras gerais que tendem a melhorar o desempenho sem a necessidade de uma análise profunda do custo das diferentes estratégias de execução. Essas regras podem incluir práticas como a reescrita de consultas para uma forma mais eficiente, a utilização de índices, e a redução do tamanho de conjuntos de dados intermediários.
Por outro lado, a otimização baseada em custos faz exatamente o que a questão sugere não ser feito pela heurística: ela estima o custo de diversas estratégias de execução de consultas e escolhe o plano com o menor custo estimado. Esse custo pode levar em consideração fatores como o número de operações de E/S (entrada/saída), a complexidade da computação, a quantidade de dados a serem transferidos e processados, entre outros.
O erro da afirmação está em dizer que as heurísticas permitem estimar sistematicamente o custo de estratégias de execução diferentes, o que é uma característica da otimização baseada em custos, não da heurística. As heurísticas são mais uma série de "regras de ouro" que podem melhorar o desempenho, mas não envolvem uma estimativa de custo sistemática e detalhada.
Portanto, a alternativa correta é a letra E, pois a afirmação mistura conceitos de duas abordagens distintas de otimização de consultas SQL.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
http://www.inf.unioeste.br/~clodis/BDI/BDI_2007_Modulo6.pdf
Só complementando, como o Leonardo Marcelino Teixeira explicou existem duas técnicas gerais para escolher o melhor plano de execução para uma consulta: Otimização baseada em custo e Otimização baseada em heurística. Otimizadores de consultas práticos incorporam elementos das duas técnicas.
(1) Otimização baseada em custo gera uma série de planos de execução de consulta e escolhe aquela que tiver o menor custo. Uma desvantagem dessa técnica é o próprio custo gasto na otimização. Note que se uma consulta for muito complexa, podem ser gerados muitos planos de execução e encontrar aquele com menor custo pode requerer muito esforço.
(2) Otimizadores baseados em heurística servem exatamente para reduzir esse custo de otimização. Elas definem um conjunto de regras (heurísticas) e usam para gerar um plano de execução. Essas regras poderiam ser "Realize operações de seleção o mais cedo possível" ou "Realize projeções mais cedo". Desse modo, a otimização da consulta depende da heurística utilizada. Note que a otimização usa essas regras sem saber se o custo da consulta está mesmo sendo reduzido. Isso quer dizer que a otimização baseada em heurística nem sempre ajuda a reduzir o custo de uma consulta.
A questão está definindo o conceito de otimização baseada em custo e por isso está errada.
(Fonte: Sistema de Banco de Dados, Silberchatz, 5ed, pg 394)
Gabarito Errado
Se fosse a técnica de otimização baseada em custo, a questão estaria correta.
Vamos na fé !
"Retroceder Nunca Render-se Jamais !"
Força e Fé !
Fortuna Audaces Sequitur !
heuristica = funciona, mas não me pergunte como.
É uma aproximação.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo