Rule-based query optimizers are recognized as particularly valuable for extensible and object-oriented database management systems by providing a high flexibility in adapting query optimization strategies to nonstandard application needs. On the other hand rule-based optimizers are problematic with regard to run-time behavior for more complex queries as the generation of query plans based on a declarative rule base tends to be difficult to control. In this paper we show that this is not a fundamental problem of rule-based optimizers, but rather a question of careful design of the rule system. We exemplify this for one fundamental optimization problem, namely join enumeration for linear queries. There, a rule-based optimization strategy can achieve the theoretically optimal complexity. The design principles used to achieve this have been derived from and are used in the design of the VODAK query optimizer developed at GMD-IPSI.
展开▼