In the past few years there has been an increased interest in the development of DBMS's based on the relational model. These systems interface with the user via non-procedural languages in a natural way. The main strength shown by them is in their ease of use. For some time it was felt that they would not perform well when compared to existing DBMS's, especially in a transaction oriented environment. Critics of these systems pointed to the fact that their non-procedurality removed from the users the ability to navigate through the data in the way they felt to be more efficient. Developers of relational systems, on the other hand, argued that enough intelligence could be built into these systems to allow them to make the best decision on how to access the data, given a user's request. This intelligence can be implemented by complex software modules, sometimes called optimizers. One of the best known relational systems developed in the recent past is System R, an experimental DBMS developed at the San Jose Research Laboratory [2,3]. The high level non-procedural language used by System R is SQL . System R has an optimizer which selects the best strategy to retrieve the data needed by a user's request . The performance of the optimizer is critical in determining how well the system can respond to a given request. Initial studies on the behavior of the optimizer [5, 13] have shown that the choices made by it are among the best possible, when a given set of access paths is available.