User applications can access data without being dependent on how the data is stored or on the types of access paths available to locate the data. The optimizer determines an efficient access path to the data. This capability makes data more readily available for use by many diverse applications; however, you can experience a wide range of performance characteristics for the variety of possible application requests.
Ideally, the user of a relational database need not be concerned with how data is accessed. This is probably true for end users who write SQL queries quickly for one-time or occasional use. However, for those who plan transaction programs that may be executed thousands of times a day, some knowledge about the database manager and how it chooses among various access paths and evaluation sequences can enable them to significantly improve performance.
You can directly influence the access path to data in several ways (the first five are discussed in this chapter):