Prévia do material em texto
License-515154-60824-0-4 BANCO DE DADOS Heurística Conceito de heurística Segundo o dicionário Aurélio (Ferreira, 2010), a palavra heurística significa “método que pretende levar a inventar, descobrir ou a resolver problemas”. Através do método heurístico, podemos desenvolver ferramentas ou procedimentos para tornar possível uma descoberta ou resolução de problemas. Fonte: Shutterstock, 2016. License-515154-60824-0-4 BANCO DE DADOS No caso dos bancos de dados, entenda que a heurística é usada como otimização algébrica. Aplicando as regras da álgebra relacional, podemos transformar sequências de operações de forma a reduzir os resultados intermediários. Para isto, usamos as regras de transformação definidas no livro de Elmasri e Navathe (2011). Através do uso destas regras, é possível otimizar e reduzir o tempo de consulta ao banco de dados. Técnicas heurísticas de otimização de consulta Tenha em mente que um SGBD pode gerar várias árvores com diferentes estruturas para uma mesma consulta. A consulta, por sua vez, pode ser relacionada a várias expressões de álgebra relacional. É importante que você saiba que as técnicas heurísticas buscam criar uma reordenação da árvore, no intuito de que a estrutura final obtida seja otimizada. Cada expressão corresponde a uma árvore de consulta diferente. Assim, podemos afirmar que há diversas técnicas que permitem alterar a representação interna de uma consulta, com o objetivo de melhorar sua performance. Saiba que a heurística usa ferramentas ou procedimentos que possibilitam uma descoberta. O termo foi utilizado pela primeira vez por Albert Einstein, na época com 26 anos, em uma publicação chamada “Heurística da geração e conversão da luz” em 1905 (KLEIN; KOX; SCHULMANN, 1987). License-515154-60824-0-4 BANCO DE DADOS Fonte: Shutterstock, 2016. Uma das principais regras heurísticas é aplicar as operações SELECT e PROJECT antes de aplicar o JOIN ou outras operações binárias. Ao escolher a opção de efetuar consultas unárias (como SELECT e PROJECT) antes de consultas binárias (como JOIN), haverá uma significativa redução do tamanho do arquivo resultante de uma operação binária. Saiba que isso ocorre porque as operações binárias em geral são uma função multiplicativa dos tamanhos dos arquivos de entrada. As operações SELECT e PROJECT são operações restritivas, isto é, reduzem o tamanho de um arquivo e, por isso, devem ser aplicadas antes de uma junção ou outra operação binária. Segundo Elmasri e Navathe (2011, cap. 19, p. 474-478), para conseguir esta melhoria existem algumas condições que podem ajudar. Confira! License-515154-60824-0-4 BANCO DE DADOS As operações que diminuem os resultados intermediários de uma consulta devem ser executadas em primeiro lugar. As operações de seleção e projeção devem ser aplicadas antes de operação de junção e outras operações binárias. Executar primeiramente as operações de seleção e projeção. Operações de seleção e junção mais restritivas também devem ser feitas em primeiro lugar, se possível. Custo de execução de uma consulta Saiba que toda execução de consulta tem um custo envolvido. Este custo, em geral, é uma estimativa média por conta do tempo. É isso mesmo! Acontece que o tempo que o SGBD gastaria para estimar a melhor estratégia possível seria muito alto. Fonte: Shutterstock, 2016. Lembre-se de que existem várias técnicas que podem melhorar uma consulta. Por exemplo, executar as operações de seleção e projeção em primeiro lugar, assim como as operações que reduzam os resultados intermediários de uma consulta. License-515154-60824-0-4 BANCO DE DADOS Alguns cuidados devem ser tomados ao avaliarmos os custos de uma consulta. Devemos, por exemplo, fazer uma análise global dos itens descritos a seguir! Custo computacional - que é o quanto será gasto em processamento pela CPU. Quantidade e custo de memória que será necessária para utilizar a execução da consulta. Quantidade e custo do acesso aos discos e a memória RAM. Custo do envio de uma consulta ao banco de dados e retorno da consulta a quem fez a solicitação. Tempo e custo do armazenamento dos arquivos que foram gerados na consulta. Toda consulta tem um custo computacional seja ele de tempo, de memória RAM, de comunicação, de armazenamento entre outros. Estes custos devem ser levados em consideração na escolha da melhor estratégia de consulta.