Caio recebeu, em seu departamento, um grande número de
chamados que relatavam uma lentidão demasiada na execução
das consultas no banco de dados que ele mantinha. Então, ele
iniciou a busca da solução pelo algoritmo de otimização algébrico
heurístico, intrínseco a seu banco de dados. Esse algoritmo é
executado em seis etapas e trabalha com algumas regras básicas,
que, na maioria das vezes, conseguem melhorar a performance
das consultas.
Ao analisar as etapas do algoritmo de otimização, Caio identificou
um erro na etapa de:
a) desmembramento das operações de seleção com condições
conjuntivas em uma cascata de operações de seleção;
b) movimentação das operações de seleção o mais baixo
possível na árvore de consulta que for permitido pelos
atributos envolvidos na condição de seleção;
c) reorganização dos nós folhas da árvore de consulta,
posicionando as relações com as operações de projeção mais
restritivas;
d) combinação de um produto cartesiano com uma seleção
subsequente na árvore de consulta para uma operação de
junção a ser executada;
e) desmembramento e movimentação da lista de atributos de
projeção para o mais baixo possível, criando novas operações
de projeção, conforme a necessidade.