Table 7.1 shows the rules used by the Model D for the results shown in this section. In some of the tables below, rules are disabled or modified to reduce the search space or to demonstrate the effect of the rules themselves. When these rules are disabled or modified, there will be a note at the bottom of the table. Note that of the EQJOIN transformation rules (7-10), either the first two rules (7 and 8) were used (for the complete join order search space), or the second two rules (9 and 10) were used (for the left deep join order search space). For most results in this section the left-deep only heuristic (described in sections 4 and 6.4) was used. In a few cases (e.g. in tables 7.4 and 7.5) the NOCART (No Cartesian Product) heuristic was used.

Extensibility

           Much of the material in Section 6 of this thesis demonstrates the extensibility of the Cascades Optimizer Framework. The aggregation push down rules, new types of indices, inclusion of new logical properties and the complex conditions on rules all suggest the extensibility of the Cascades Framework.

           It is hard to precisely compare the extensibility of the Cascades Framework with the extensibility of other optimizers without access to the design of these optimizers. The real measure of extensibility of an optimizer is the measurement of the other three factors over a large period of time. During this time the optimizer will have to contend with the addition of many new logical and physical operators, access paths, etc.

Efficiency

           Efficiency is some measure of resources used by the optimizer in optimizing a query. The optimizer can be compared against other optimizers, or against itself, running in different configurations (different rule-sets, etc.). By analyzing the resources used (CPU time and memory usage) in optimizing the queries, the effects of different rules, pruning techniques, etc. can be compared.

           Table 7.2 shows the efficiency of the Cascades/Model D optimizer on the 17 TPC-D queries. Efficiency is reported in terms of the seconds of user time used (as reported by the Unix time command) and the maximum (final) size of the data segment of the Unix process corresponding to the optimizer.

7. Results:    <Extensibility> <Efficiency> <Heuristics> <Accuracy> <Quality> <Agg Push Down> <Indices>
  7.1: Rules     7.2: Efficiency     7.3: Statistics     7.4: Heuristics     7.5: Search Space     7.6: Cardinalities     7.7: Costs     7.8: Agg     7.9: Indices  

 Page 3