A General Purpose Rule Language as the Basis of a Query Optimizer
暂无分享,去创建一个
We present an overview and initial performance assessment of a rule-based query optimizer written in Venus, a general purpose rule language embedded in C++. Venus introduces a declarative form of structured rule programming that relates directly to nested transaction models. Venus includes a component for specifying the physical schema of its internal data structures'' and the equivalent of a query optimizer for optimizing the evaluation of the rule''s antecedents with respect to the schema. To date, development of rule-based query optimizers have included the definition and implementation of custom rule languages motivated by syntactic limitations and anticipated performance problems had a general purpose rule languages been used. Our experience demonstrates that a rule-based query optimizer can be well structured using Venus and that the optimizing compiler yields code that performs competitively with specialized systems. Since we did not have to develop a specialized rule language or consider application specific programming constructs, the source code for the optimizer is relatively quite small and straight-forward.