|Oracle9i Database Performance Guide and Reference
Release 1 (9.0.1)
Part Number A87503-02
This section describes new performance features of Oracle9i release and provides pointers to additional information. The features and enhancements described in this section comprise the overall effort to optimize server performance.
You can now set the
OPTIMIZER_MODE initialization parameter to this value. With this, the optimizer uses a cost-based approach, regardless of the presence of statistics, and optimizes with a goal of best response time to return first n number of rows (where n can equal 1, 10, 100, or 1000). There is also a new
FIRST_ROWS(n) hint (where n can be any positive integer).
FIRST_ROWS is available for backward compatibility and plan stability.
The CBO now peeks at the values of user-defined bind variables on the first invocation of a cursor. This lets the optimizer determine the selectivity of any
WHERE clause condition, as well as if literals had been used instead of bind variables. When bind variables are used in a statement, it is assumed that cursor sharing is intended and that different invocations are supposed to use the same execution plan.
CURSOR_SHARING parameter can now be set to
SIMILAR to force similar statements to share SQL by replacing literals with system-generated bind variables. Replacing literals with bind variables improves cursor sharing with reduced memory usage, faster parses, and reduced latch contention. The difference between
FORCE is that
SIMILAR forces similar statements to share the SQL area without deteriorating execution plans. There is also a new hint:
You can find indexes that are not being used by using the
USAGE functionality over a period of time that is representative of your workload.
You can now gather system statistics, which allow the optimizer to consider a system's I/O and CPU performance and utilization. For each plan candidate, the optimizer computes estimates for I/O and CPU costs. It is important to know the system characteristics to pick the most efficient plan with optimal proportion between I/O and CPU cost.
The following hints are new with 9i:
You can now edit private outlines. While the optimizer usually chooses optimal plans for queries, there are times when users know things about the execution environment that are inconsistent with the heuristics that the optimizer follows. By editing outlines directly, you can tune the SQL query without having to alter the application.
DBMS_OUTLN package (synonym for
OUTLN_PKG) and the new
DBMS_OUTLN_EDIT package provides procedures used for managing stored outlines and their outline categories.
The optimizer now calculates the cost of access paths and join orders based on the estimated computer resources, including I/O, CPU, and memory.
This new chapter describes how to design and create a database for the intended needs.
For systems where a file system can be used to contain all Oracle data, database administration is simplified by using Oracle-managed files. Oracle internally uses standard file system interfaces to create and delete files as needed for tablespaces, tempfiles, online logs, and controlfiles.
You can now specify in seconds the expected "mean time to recover" (MTTR), which is the expected amount of time Oracle takes to perform recovery for an instance. The
FAST_START_IO_TARGET parameter has been deprecated and should not be used.
The Statspack package builds off the traditional
UTLESTAT tuning scripts. Statspack automates the gathering of data, stores data and statistics, and generates performance reports. Statspack takes "snapshots" of data to work with, letting you choose the snapshot levels and thresholds to be used.
There are new sections describing Oracle Trace events, event sets, data items specific to the Oracle9i server, and Oracle Trace troubleshooting. The section on methods available for collecting Oracle Trace data has been reorganized. Oracle Trace Manager is no longer shipped, and the Data Viewer GUI tool is now described in Enterprise Manager documents.
With release 9i, it is now possible to simplify and improve the way the PGA is allocated in DSS systems. There is an automatic mode to adjust the size of the tunable portion of the PGA memory allocated by an instance dynamically. The size of that tunable portion is adjusted based on an overall PGA memory target explicitly set by the DBA.
It is now possible to resize the buffer cache and shared pool dynamically, while the instance is running.
This chapter is new in this book. It provides detailed information on the most important dynamic performance views that can help you tune your system and investigate performance problems.