As técnicas de otimização embasadas em heurísticas permitem ...

Próximas questões
Com base no mesmo assunto
Q80544 Banco de Dados
Julgue os itens a seguir acerca de técnicas de análise de
desempenho e otimização de consultas SQL em banco de dados.

As técnicas de otimização embasadas em heurísticas permitem estimar, sistematicamente, o custo de estratégias de execução diferentes e escolher o plano de execução com o menor custo estimado.
Alternativas

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

A questão mistura os conceitos das 2 técnicas de otimização.
Existem  2 técnicas básicas para otimização de consultas:
 
As baseadas em heurísticas para a ordenação de acesso ao banco de dados,que participarão da estratégia de acesso;
 
As que estimam sistematicamente o custo de estratégias de execução diferentes e escolhem o plano de execução com o menor custo estimado.

http://www.inf.unioeste.br/~clodis/BDI/BDI_2007_Modulo6.pdf
As pesquisas por heurísticas são realizadas por meio da quantificação de proximidade a um determinado objetivo. Diz-se que se tem uma boa heurística se o objeto de avaliação estiver próximo ao objetivo a ser alcançado.
Heurística significa "um conjunto de regras e métodos que conduzem à descoberta, à invenção e à resolução de problemas (...) Diz-se que se tem uma boa (ou alta) heurística se o objeto de avaliação está muito próximo do objetivo; diz-se de má (ou baixa) heurística se o objeto avaliado estiver muito longe do objetivo"
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