La mayoría de los optimizadores determinan el orden de “join” por medio de un algoritmo de programación dinámica impulsado por el proyecto “System R database project” de IBM, que funciona en las siguientes etapas: