SQL Optimization
One of the great virtues of a relational database is its ability to access data without predefining the access paths to the data. When a SQL query is submitted to an Oracle database, Oracle must decide how to access the data. The process of making this decision is called query optimization , because Oracle looks for the optimal way to retrieve the data, using the execution path. The trick behind query optimization is to choose the most efficient way to get the data, because many different options may be available.
The query optimizer has to determine which execution path will be the fastest. When you submit a rather involved query, such as one involving many tables that must be joined together efficiently, or one that has complex selection criteria and multiple levels of sorting, the query optimizer has a very complex task.
Query optimizers are one of the keys to delivering optimal performance for SQL queries. Prior to Oracle7, Oracle had only a rule-based optimizer. A cost-based optimizer was introduced with Oracle7.