Overview of Query Optimization in Oracle
The Oracle DBMS provides two
different approaches to query optimization: rule-based and cost-based. With the
rule-based approach, the optimizer chooses execution plans based on
heuristically ranked operations. Oracle maintains a table of 15 ranked access
paths, where a lower ranking implies a more efficient approach. The access
paths range from table access by ROWID (the most efficient)—where ROWID specifies the record’s physical address that includes the data
file, data block, and row offset within the block—to a full table scan (the
least efficient)—where all rows in the table are searched by doing multiblock
reads. However, the rule-based approach is being phased out in favor of the
cost-based approach, where the optimizer examines alternative access paths and
operator algorithms and chooses the execution plan with the lowest estimated
cost. The estimated query cost is proportional to the expected elapsed time
needed to execute the query with the given execution plan.
The Oracle optimizer calculates this cost based
on the estimated usage of resources, such as I/O, CPU time, and memory needed.
The goal of cost-based optimization in Oracle is to minimize the elapsed time
to process the entire query.
An interesting addition to the Oracle query
optimizer is the capability for an appli-cation developer to specify hints to the optimizer.23
The idea is that an application developer might know more information about the
data than the optimizer. For example, consider the EMPLOYEE table shown in Figure 3.6. The Sex column of that table has only two distinct
values. If there are 10,000 employees, then the optimizer would estimate that
half are male and half are female, assuming a uniform data dis-tribution. If a
secondary index exists, it would more than likely not be used. However, if the
application developer knows that there are only 100 male employ-ees, a hint
could be specified in an SQL query whose WHERE-clause condition is Sex = ‘M’ so that the associated index would be used in processing the
query. Various hints can be specified, such as:
The
optimization approach for an SQL statement
The
access path for a table accessed by the statement
The join
order for a join statement
A
particular join operation in a join statement
The cost-based optimization of Oracle 8 and
later versions is a good example of the sophisticated approach taken to
optimize SQL queries in commercial RDBMSs.
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.