This paper concerns our experiences in developing a query optimizer for the Cyrano prototype federated database system developed at Virginia Tech. We used a bottom-up evaluation method commonly seen in deductive systems. In Cyrano, queries and stored information is represented in classes, as in object-oriented systems. Consequently, the optimizer evaluates a query by repeatedly cycling through all base classes, and the base classes of the base classes. Experiments showed that in the processing of recursive queries, the implementation of a semi-naive algorithm produced considerable improvements. We concluded that the performance of the optimizer, based on the implementation of the semi-naive algorithm, is adequate for most typical queries, but that it could be improved further by rewriting classes using a magic-sets rewrite algorithm.
展开▼