Traditionally, optimizers are “programmed” to optimize queries following a set of buildin procedures. However, optimizers should be robust to its changing environment to generate the fittest query execution plans. To realize adaptiveness, we propose and design an adaptive optimizer with two features. First, the search space and search strategy of the optimizer can be tuned by parameters to allow the optimizer to pick the one that fits best during the optimization process. Second, the optimizer features a “learning” capability for canned queries that allows existing plans to be incrementally replaced by “fitter” ones. An experimental study on large multijoin queries based on an analytical model is used to demonstrate the effectiveness of such an approach.