| Measurement |
Description |
Measurement Unit |
Interpretation |
| Library_cache_hit_ratio |
The library cache is a buffer that contains the shared SQL and PL/SQL
areas. The library cache hit ratio indicates the percentage of shared SQL statements being reparsed. |
Percent |
For a well-tuned database, this ratio is 90% or more. A lower hit ratio may indicate that the memory allocation to the library cache is insufficient. A low value can significantly degrade the database performance. Increasing the value of the SHARED_POOL_SIZE initialization parameter will help in improving the hit ratio. |
| Data_buffer_cache_hit_ratio |
Indicates the percentage of time that the database server is able to satisfy a request with information that is already available in the memory. |
Percent |
Physical I/O takes a significant amount of time, and also increases the CPU resources required. The database configuration should be tuned to ensure that a required block will most likely be in memory. The extent to which this is achieved is measured using the buffer cache hit ratio. For a well-tuned database, this ratio should be 80% or higher. A lower value indicates insufficient memory allocation to the database buffer cache. Increasing the value of the DB_BLOCK_BUFFERS initialization parameter will help in improving the hit ratio. If you are monitoring Oracle 9i or higher, then, note that the DB_BLOCK_BUFFERS parameter is not supported in Oracle 9i or above. It is therefore recommended that you use the equivalent DB_CACHE_SIZE parameter instead. |
| Dictionary_cache_hit_ratio |
Indicates the percentage of data dictionary information pertaining to the database, file space availability and object privileges being readily available in the memory. |
Percent |
As with the case of the library cache, the dictionary cache hit ratio should be at least 90%. A lower value may be due to the insufficient memory allocation to the dictionary cache. Increasing the value of the SHARED_POOL_SIZE parameter will help in improving the hit ratio. |
| Redolog_buffer_miss_ratio |
Indicates the percentage of requests that had to wait before the redolog buffer is allocated to it. |
Percent |
Before any transaction could occur, the before image of the data will be stored in the redo log buffer.
It is crucial to make the redo log buffer available immediately to the transactions without any wait. The above is crucial to improve the overall performance. This measure indicates how many percentage of times it had to wait for a redo log buffer to be allocated. This can be improved by increasing the LOG_BUFFER parameter. |
| Pct_sorts_on_disk |
Indicates the percentage of sorts that is happening on the secondary storage disk.
| Percent |
For best performance, most sorts should occur in memory; sorts written to disk adversely affect performance. If more than 10% of sorts happen on disk, the database performance could degrade. To improve the sorting performance of a database, consider tuning the parameters SORT_AREA_SIZE and SORT_AREA_RETAINED_SIZE. The dynamically modifiable initialization parameter called SORT_AREA_SIZE specifies the maximum amount of memory to use for each sort. If a significant number of sorts require disk I/O to temporary segments, an application's performance may benefit from increasing the size of the sort area. Oracle 9i (or above) supports the SORT_AREA_SIZE and the SORT_AREA_RETAINED_SIZE parameters only to ensure backward compatibility with previous versions of Oracle. Therefore, while monitoring Oracle 9i or higher, it is recommended that you use the equivalent PGA_AGGREGATE_TARGET parameter instead. |
| Dictionary_cache_hit_ratio |
Indicates the percentage of data dictionary information pertaining to the database, file space availability and object privileges being readily available in the memory. |
Percent |
As with the case of the library cache, the dictionary cache hit ratio should be at least 90%. A lower value may be due to the insufficient memory allocation to the dictionary cache. Increasing the value of the SHARED_POOL_SIZE parameter will help in improving the hit ratio. |
| Sga_curr_usage |
Indicates the amount of space allocated to the SGA that is currently in use. |
MB |
A consistent and significant increase in the value of this measure is a cause for concern, as it indicates that SGA components are over-utilizing the available memory resources.
In such a scenario, you can use the detailed diagnosis of the Sga_curr_usage measure to know the memory usage of the individual SGA components. In the process, you can identify the exact SGA component that is over-utilizing the memory resources. |
| Buffer_nowait_pct |
Indicates the percentage of requests a server process makes for a specific buffer where the buffer was available immediately. |
Percent |
If this ratio falls below 90%, it indicates that the server process has to wait for something before obtaining the buffer. In this case, determine which type of block is being contended for by examining the Buffer Waits Section of Statspack/ AWR report. |
| Soft_parse_ratio |
Indicates the percentage of parse requests where the cursor was already in the cursor cache compared to the number of total parses. |
Percent |
A soft parse is recorded when the Oracle Server checks the shared pool for a SQL statement and finds a version of the statement that it can reuse.
If the value of this measure falls below 90%, it indicates that very often server processes are unable to find SQL statements in the shared pool and are forced to perform hard parses for these statements.
Soft parses consume less resources than hard parses, so the larger the value for this item, the better. |
| Execute_parse_ratio |
Is a measure of how many times you execute a sql statement versus parse it. |
Percent |
If this value is too low, it indicates that an application is parsing statements highly, but not executing properly. This could result in excessive CPU usage, increased shared pool latches, and serious performance degradations in the Oracle database server.
The execute to parse ratio takes a hit when an application does not use shareable SQL or if the database has sub-optimal parameters that are reducing the effectiveness of cursor sharing. A problem like excessive parsing is likely to manifest itself as additional network traffic between the application server and clients. The additional parse activity may also show up as a marked increase in CPU consumption on the database server. |
| Cpu_parse_ratio |
Indicates the percentage of CPU time used when parsing. |
Percent |
Parse CPU time means amount of CPU time used for parsing. Parse Elapsed time means amount of clock time used for parsing – this is actually the sum of Parse CPU time and Parse Wait time.
The Cpu_parse_ratio ratio is calculated using the formula:
(Parse CPU time /Parse elapsed time)*100
Ideally, Parse elsapsed must be equal to Parse CPU - i.e., only CPU time should be used for parsing. In that case the ratio will be 100%. However, if wait time is more then this ratio will be less.
A low value for this ratio is an indicator of latching problems. Investigate the latch sections in AWR and Statspack report for contention on library cache and shared pool latches. |
| Non_parse_cpu_ratio |
Indicates the percentage of CPU time spent for activities other than parsing the SQLs. |
Percent |
The closer the value of this measure is to 100, better will be the performance of the server. This is because, such a value means that your CPU works on executing your queries instead of parsing them. |
| Hard_parse_ratio |
Indicates the percentage of hard parses. |
Percent |
Hard parsing happens when the oracle server parses a query and cannot find an exact match for the query in the library cache. A hard parse is a very expensive operation both in terms of CPU used and in the number of latches that gets performed. This is why, the value of this measure should be very low.
One of the common reasons for high hard parse ratio is the inefficient sharing of SQL statements. |
| Target_size_pct |
Indicates the percentage of the target SGA size that is in use currently. |
Percent |
The SGA_TARGET_SIZE is the total size of all SGA components. You can use this measure to know how much of the configured target SGA size is being used.
If this value is close to 100%, it is a cause for concern, as it indicates that the SGA is about to run out of memory. This in turn can slow down user accesses and query execution. In such a scenario, you can use the detailed diagnosis of the Current size measure to know the memory usage of the individual SGA components. In the process, you can identify the exact SGA component that is over-utilizing the memory resources. |