| Lesson 8 | How do we measure Oracle performance? |
| Objective | Name the metrics of Oracle performance. |
When someone asks, “Is my Oracle database performing well?”, the answer depends on more than a single number. In Oracle 23c, performance tuning is about understanding which parts of the workload consume time and resources, and how that experience looks from the end user’s point of view. To do that, you rely on a set of well-defined performance metrics collected from the database and the underlying platform.
Oracle will almost always run faster if you give it more resources: faster CPUs, more memory, and low-latency storage all reduce waits and response time. A database that can cache almost all frequently used blocks in memory will outperform one that constantly reads from disk.
However, performance tuning is not simply “give Oracle everything.” You balance:
A well-tuned Oracle 23c database is one where:
Oracle does not run in isolation. When a user reports slow performance, the root cause might be:
If the server or cloud instance is starved for CPU or memory, no amount of SQL tuning inside Oracle will fully compensate. Performance must be evaluated end-to-end: from the moment a transaction enters Oracle until the result is returned to the user.
Oracle 23c exposes a rich set of performance views (for example, V$ views, AWR, and ASH) that help
you understand what the database is doing. The following are common metrics and metric families you should be able
to name and recognize.
These metrics appear prominently in AWR and ADDM reports and are the primary way to identify the biggest performance problems.
db file sequential read – single-block I/O (index lookups, OLTP reads).db file scattered read – multi-block I/O (full table scans, large reads).log file sync – waits for redo to be flushed during COMMIT.Waits are grouped into wait classes (User I/O, System I/O, Commit, Concurrency, Network, etc.) to help you quickly see where time is going.
A reasonable hit ratio is helpful, but it is no longer the only or primary metric. A better question is: “How much DB Time is spent waiting on I/O, and can I reduce it?”
log file sync, log file parallel write, log buffer space waits.High redo-related waits may indicate commit-heavy workloads, undersized redo logs, or I/O issues on the redo log devices.
Excessive chaining or migrated rows can increase I/O and degrade query performance.
In older releases, tuning focused on SORT_AREA_SIZE; in modern Oracle, automatic PGA memory
management (for example, PGA_AGGREGATE_TARGET and WORKAREA_SIZE_POLICY) plays the
larger role.
Excessive hard parsing can drive up CPU usage and contention. Using bind variables and avoiding unnecessary SQL text variation are key best practices.
Focusing on the small set of SQL statements that consume most of the DB Time is often the fastest way to achieve meaningful improvements.
Together, these metrics provide a structured answer to the question, “Is my database properly tuned?” Rather than guessing, you can point to concrete indicators of buffer cache efficiency, I/O latency, CPU pressure, and SQL-level behavior.
In older releases, many of these statistics were collected with utilities such as
utlbstat and utlestat. In Oracle 23c, the primary mechanisms are:
These tools summarize the metrics above and highlight where tuning effort will have the greatest impact.
Click the exercise link below to complete a matching exercise about tuning metrics.