Cost-Based Optimization: Whys and Hows
One of the founding notions of relational databases is the basic concept that no one needs to define an explicit navigation path to retrieve data. This does not mean that no explicit path is used to retrieve data, but rather that the database itself will determine the optimal way to get the data requested by a query. In most production scenarios, much of the data in an Oracle database can be retrieved by a number of possible paths. The Oracle query optimizer performs the valuable task of determining which potential path should be used to execute a query.
In its history, the Oracle database has actually had two different optimizers. Oracle's first query ...