This chart shows SQL statements performing the most physical reads.
Improving SQL performance is usually the most effective way for improving application performance. In identifying statements with the most potential to improve performance you should probably consider the statements in the highest I/O demands. In other words, consider statements with the highest number of read requests that resulted in access to datafiles on disk.
Another factor worth considering is the frequency at which the statement is executed. A statement with the a high I/O level may only be executed once a day, far less than another statement with a lower I/O level that is executed many thousand times a day.
There are numerous reasons why a query would results in excessive disk reads; for example, a full table scan is being performed.
To help further diagnose the cause of the I/O there are number of drilldown charts available, including:
Further investigation on how to best tune a particular SQL statement can be done by selecting any one of SQL statements listed and using the SQL Analyze tool.
This chart includes the following data items:
This chart displays the full SQL text, which is truncated in some of the TOP SQL charts.
The SQL shown in some of the TOP SQL charts is a truncated value, because the truncated value is all that is available from V$SQLAREA. To get the full SQL text, the V$SQLTEXT_WITH_NEWLINES must be queried to piece together the segments of the query. For performance, this chart only displays when it is needed to display the full SQL text.
This chart includes the following data items:
This chart shows the user our best estimate of overall response time using statistics that are available from the database. Response time is defined here as overall wait time plus overall CPU time consumed by all sessions within the database, divided by the number of commits plus rollbacks to give a per-transaction value. The per-transaction value may display as 0 if the database is being accessed in a read-only mode or if TIMED_STATISTICS is not set to TRUE.
When monitoring a read-only database, a better measure of response time might be based on a per-execute basis, the average length of time per SQL statement execution. To view this statistic, look at the Elapsed time per execute chart.
Further investigation into the individiual parts of response time, CPU and Wait can be found via a drilldown to Wait or CPU Bound .
This chart includes the following data items:
This chart shows the number of transactions that were committed and rolled back during the sample period, as well as SQL execution counts. This is a good throughput overview.
This chart includes the following data items:
This chart shows a breakdown of per transaction response time on a per user basis.
CPU and Wait times are summed across all sessions for each user. This chart will be helpful for monitoring response time for applications that segregrate functionality through different users.
This chart includes the following data items:
This chart shows throughput or load statistics on a per user basis. The statistics are summed across all sessions for the user.
This chart includes the following data items:
This chart is a list of events across the instance, sorted by the summation of wait time for each event type.
This list will allow the user to quickly identify which event the instance is waiting for the most. Each event type is affected by different parameters and conditions. Further drilldown is accomplished by selecting the particular wait event of interest. Some of the wait events have specific drilldown charts to help diagnose the reason for the wait.
There are also generic drilldowns, available for all wait events. To determine how many sessions are currently waiting for a specific event, use the Sessions Waiting for this Event Chart. Similarly to view the SQL statements that are currently waiting for the event, use the SQL Statements waiting for this event Chart. This will lead you quickly to the SQL statements that are experiencing the wait and help you determine the impact this wait is having on the application.
This chart includes the following data items:
This chart shows the number of waits instance-wide that occurred during the sample period. Only events with a non-zero count will be displayed. Along with the count of waits, the number of timeouts is also displayed.
The count of waits is not as important as the actual time spent waiting. A session may request a resource and issue a wait, yet have the request immediately granted. The wait count will be incremented, although no wait time actually occurred.
This chart includes the following data items:
This chart is related to the buffer busy event. Determining the types of blocks (buffers) the database is waiting on will dictate the possible solutions to reducing the contention on those blocks. The three types of blocks we are interested in are Segment Headers Blocks, Data Blocks and Free List Blocks.
This section briefly describes the three block types.
Segment Header Block waits:
Problem: Possibly not enough transaction free lists due to a high number of inserts for the table, and therefore access to the transaction free list becomes a bottleneck. Solution: Add more free list groups. It is also possible to add more free list groups to get around any limitations of a small block size constraining the number of free lists, even in exclusive mode.
Problem: High Water Mark (HWM) for the table may be constantly increased since the table is growing and running out of blocks for new inserts on the free list. The default value for bumping up the HWM is 5, which may be too low on a busy system or for the average insert size. Solution: The HWM value can be increased up to 255 through the init.ora parameter _BUMP_HIGHWATER_MARK_COUNT. Note: this parameter will determine how many blocks to allocate per free list when bumping up the HWM. Therefore, this can grow the table very large if the number of free lists is also high. For example, if we have 100 free lists and set _BUMP_HIGHWATER_MARK_COUNT=100, this means that 10000 blocks (potentially) are added to the extent.
Problem: Extent sizes are too small, therefore the table is constantly growing. As a rule, it is better to have a small number of very large extents than to have a large number of small extents. Solution: Increase the size of each extent.
Data Blocks: Are used to store data (index or data). Problem: Multiple sessions could be reading the same block from disk (this could happen for each block class). Only one session will do the read and the other sessions will be waiting for the block to end up in the buffer cache. The other sessions will be waiting on the buffer busy wait event. Solution: The buffer cache may be too small to keep the current working set in memory. Increasing the buffer cache (db_block_buffers) can help, or using buffer pools to reduce the number of buffers an object can occupy in the buffer cache (for example, limit the number of buffers a randomly-accessed large table or a history table can occupy in the buffer cache.)
Problem: Multiple sessions are trying to access the same row in a block. This could be because there are too many rows per block (lots of small rows in a large data block). Solution: Reduce the number of rows per block (pctfree/pctuse settings need to be changed). This is a space for time optimization. The table will use more space but the wait time for buffer busy waits will decrease.
Problem: Multiple sessions trying to insert into the same block. The reason it is the same block is that there is only one free list (or not enough free lists). There is only one head of the free list. Solution: Adding multiple free lists to the object will increase the number of head of free lists. This distributes the contention point over the free lists, thereby reducing the number of buffer busy waits.
Freelist Blocks: Add more freelists. In case of Parallel Server make sure that each instance has its own freelist group(s).
Undo Header Blocks : Add more rollback segments (when running in Exclusive mode). Set transactions per rollback segment to 1 (Exclusive mode).
Undo Blocks : Consider making rollback segments larger in Exclusive mode or increase number of PCM locks (GC_ROLLBACK_LOCKS) in Parallel Server Mode only.
This chart includes the following data items:
This chart is related to the buffer busy event. Determining the types of blocks (buffers) the database is waiting on will dictate the possible solutions to reducing the contention on those blocks. The three types of blocks we are interested in are Segment Headers Blocks, Data Blocks and Free List Blocks.
This section briefly describes the three block types.
Segment Header Block waits: Problem: Possibly not enough transaction free lists due to a high number of inserts for the table, and therefore access to the transaction free list becomes a bottleneck. Solution: Add more free list groups. It is also possible to add more free list groups to get around any limitations of a small block size constraining the number of free lists even in exclusive mode.
Problem: High Water Mark (HWM) for the table may be constantly increased since the table is growing and running our of blocks for new inserts on the free list. The default value for bumping up the HWM is 5, which may be too low on a busy system or for the average insert size. Solution: The HWM value can be increased up to 255 through the init.ora parameter _BUMP_HIGHWATER_MARK_COUNT. Note: this parameter will determine how many blocks to allocate per free list when bumping up the HWM. Therefore, this can grow the table very large if the number of free lists is also high. For example, if we have 100 free lists and set _BUMP_HIGHWATER_MARK_COUNT=100, this means that 10000 blocks (potentially) are added to the extent.
Problem: Extent sizes are too small, therefore the table is constantly growing. As a rule, it is better to have a small number of very large extents than to have a large number of small extents. Solution: Increase the size of each extent.
Data Blocks: Are used to store data (index or data). Problem: multiple sessions could be reading the same block from disk (this could happen for each block class). Only one session will do the read and the other sessions will be waiting for the block to end up in the buffer cache. The other sessions will be waiting on the buffer busy wait event. Solution: It could be that the buffer cache is too small to keep the current working set in memory. Increasing the buffer cache (db_block_buffers) can help or using buffer pools to reduce the number of buffers an object can occupy in the buffer cache (for example, limit the number of buffers a randomly-accessed large table or a history table can occupy in the buffer cache).
Problem: Multiple sessions are trying to access the same row in a block. This could be because there are too many rows per block (lots of small rows in a large data block). Solution: Reduce the number of rows per block (pctfree/pctuse settings need to be changed). This is a space for time optimization. The table will use more space, but the wait time for buffer busy waits will decrease.
Problem: Multiple sessions trying to insert into the same block. The reason it is the same block is that there is only one free list (or not enough free lists). There is only one head of the free list. Solution: Adding multiple free lists to the object will increase the number of head of free lists. This distributes the contention point over the free lists, thereby reducing the number of buffer busy waits.
Problem: High Water Mark for the table may be constantly increased since the table is growing and running our of blocks for new inserts on the free list. The default value for bumping up the HWM is 5, which may be too low on a busy system or for the average insert size. Solution: The HWM value can be increased up to 255 through the init.ora parameter _BUMP_HIGHWATER_MARK_COUNT. Note: this parameter will determine how many blocks to allocate per free list when bumping up the HWM. Therefore, this can grow the table very large if the number of free lists is also high. For example, if we have 100 free lists and set _BUMP_HIGHWATER_MARK_COUNT=100, this means that 10000 blocks (potentially) are added to the extent.
Problem: Extent sizes are too small, therefore the table is constantly growing. As a rule, it is better to have a small number of very large extents than to have a large number of small extents. Solution: Increase the size of each extent.
Data Blocks: Are used to store data (index or data). Problem: Multiple sessions could be reading the same block from disk (this could happen for each block class). Only one session will do the read and the other sessions will be waiting for the block to end up in the buffer cache. The other sessions will be waiting on the buffer busy wait event. Solution: It could be that the buffer cache is too small to keep the current working set in memory. Increasing the buffer cache (db_block_buffers) can help or using buffer pools to reduce the number of buffers an object can occupy in the buffer cache (for example, limit the number of buffers a randomly-accessed large table or a history table can occupy in the buffer cache).
Problem: Multiple sessions are going after the same row in a block. This could be because there are too many rows per block (lots of small rows in a large data block). Solution: Reduce the number of rows per block (pctfree/pctuse settings need to be changed). This is a space for time optimization. The table will use more space, but the wait time for buffer busy waits will decrease.
Problem: Multiple sessions trying to insert into the same block. The reason it is the same block is that there is only one free list (or not enough free lists). There is only one head of the free list. Solution: Adding multiple free lists to the object will increase the number of head of free lists. This distributes the contention point over the free lists, thereby reducing the number of buffer busy waits.
Freelist Blocks: Add more freelists. In case of Parallel Server make sure that each instance has its own freelist group(s).
Undo Header Blocks : Add more rollback segments (when running in Exclusive mode). Set transactions per rollback segment to 1 (Exclusive mode).
Undo Blocks : Consider making rollback segments larger in Exclusive mode or increase number of PCM locks (GC_ROLLBACK_LOCKS) in Parallel Server Mode only.
This chart includes the following data items:
This chart shows SQL statements performing the most buffer gets.
Improving SQL performance is usually the most effective way for improving application performance. In identifying statements with the most potential to improve performance, you may want to consider the statements with the highest buffer gets. Buffer gets, or logical reads, is one of the contributors to CPU time, as it requires locating and retrieving buffers from the cache.
Another factor worth considering is the frequency at which the statement is executed. A statement with the a high number of buffer gets may only be executed once a day, far less than another statement with a lower number of buffer gets that is executed many thousand times a day.
There are numerous reasons why a query would result in excessive buffer gets; for example, a full table scan is being performed.
To help further diagnose a potential problem, a number of drilldown charts are available including:Further investigation on how to best tune a particular SQL statement can be done by selecting any one of SQL statements listed and using the SQL Analyze tool.
Tuning these statements will result in less CPU time for the application. Execution count is also important when determining which SQL statement should be tuned first. The statement with the highest buffer get count may be executed once a day, far less often than another statement in the list. Tuning the SQL statement with the highest count may not produce as much of an improvement for the application or system in this case as tuning the statement that is executed much more frequently.
This chart will identify the SQL statements that are performing the most buffer gets. There could be many reasons why a query is performing these buffer gets, with full table scans being a common culprit. To help further diagnose the cause of the problem there are number of drilldown charts available. The SQL shown on this chart is limited to a fixed number of characters. To see the full SQL text, use the SQL Text . To see which tables this query references and to check on the validity statistics used by the optimizer, use the Tables Referenced by this Query Chart. To see SQL sorted by Physical Reads, use the Top SQL (Physical Reads) Chart.
Further investigation on how to best tune a particular SQL statement can be done by selecting any one of SQL statements listed and using the SQL Analyze tool.
This chart includes the following data items:
This chart ranks the database files from worst to first in term of average cost of I/O. Cost of I/O is readtime/physical reads. This chart shows that a given file may be a candidate for striping, or that the stripe width, or the total number of disks involved in the striping should be increased.
If the average cost per I/O is high, this may indicate the need to increase the stripe width or the total number of disks involved in striping. Also, look at the total number of I/O’s per transaction, I/O Rates per trans , then at how many concurrent transactions are running. For example: If each transaction requires 2 reads plus 1 write and expectation is to perform 1000 transactions per second, this calculation requires that the system actually process 3000 I/O’s per second. Therefore, if one disk can perform 50-100 I/Os per second, at least 60 disks will be needed (3000/50). Now if the requirement doubles from 1000 transactions per second to 2000, it will be necessary to double the number of disks.
This chart includes the following data items:
This chart lists the data files of the database and displays the number of physical reads per second and the number of block reads per second. This chart should quickly point out files that are hot spots within the database.
This chart includes the following data items:
This chart lists the data files of the database and displays the number of physical writes per second and the number of blocks written per second. This chart should quickly point out files that are hot spots within the database.
This chart includes the following data items:
This chart shows which files are having full table scans, range scans, or single block reads performed against them. Files that are having single block reads (and the objects within them) are possible candidates for index selection.
The number of blocks that is read in a single I/O operation is determined by the init.ora parameter db_file_multi_block_read_count.
When the number of physical reads is close to the number of physical block reads for a file (that is, when the result of dividing the number of physical reads by the number of physical block reads is close to 1), then single block reads are occurring on that file. If the resulting value is not close to 1, then full table scans or range scans are being performed on that file.
For files that are experiencing single block reads, look at the objects within the file to determine whether an index may be appropriate for those objects. To reduce the cost of db file scattered read, check the file placement on each disk,the number of disks, and the stripe size per disk (this should be 2 * db_file_multi_block_read_count)
This chart helps identify the latch with the highest sleep count. Sleep count is the number of times the latch was not gotten via a spin and was forced to sleep.
With a high number of latch free waits, it is important to determine which latch is being requested. When the bottleneck is a single latch, increasing the spin count can help. In this case, it is ‘cheaper’ to spin the CPU more than to pay the cost to have a process sleep. Also, identifying the latch with the highest sleeps will point to the bottleneck in the application/database. If through further analysis you can remove this bottleneck, you will increase throughput rates.
Latches are used to synchronize access to various resources in the the database. Tuning each individual latch requires futher investigation into the individual latch.
This chart includes the following data items:
This chart shows the get and miss rates for all latches. The values here are the actual rates. Contention for these latches is calculated and displayed in the Latch Contention (>1% potential problem) Chart.
This chart includes the following data items:
This chart shows the contention ration for a latch. Contention for a latch may affect performance if either of these conditions is true:
If either of these conditions is true for a latch, then try to reduce contention for that latch. These contention thresholds are appropriate for most operating systems, though some computers with many CPUs may be able to tolerate more contention without performance reduction.
Most cases of latch contention occur when two or more Oracle processes concurrently attempt to obtain the same latch. Latch contention rarely occurs on single-CPU computers, where only a single process can be active at once.
To reduce contention for the redo allocation latch, you should minimize the time that any single process holds the latch. To reduce this time, reduce copying on the redo allocation latch. Decreasing the value of the LOG_SMALL_ENTRY_MAX_SIZE initialization parameter reduces the number and size of redo entries copied on the redo allocation latch.
On multiple-CPU computers, multiple redo copy latches allow multiple processes to copy entries to the redo log buffer concurrently. The default value of LOG_SIMULTANEOUS_COPIES is the number of CPUs available to your Oracle instance.
If you observe contention for redo copy latches, then add more latches by increasing the value of LOG_SIMULTANEOUS_COPIES. Consider having twice as many redo copy latches as CPUs available to your Oracle instance.
The LRU (least recently used) latch controls the replacement of buffers in the buffer cache. For symmetric multiprocessor (SMP) systems, Oracle automatically sets the number of LRU latches to a value equal to one half the number of CPUs on the system. For non-SMP systems, one LRU latch is sufficient.
Contention for the LRU latch can impede performance on SMP machines with a large number of CPUs. You can detect LRU latch contention by querying V$LATCH, V$SESSION_EVENT, and V$SYSTEM_EVENT. To avoid contention, consider bypassing the buffer cache or redesigning the application.
You can specify the number of LRU latches on your system with the initialization parameter DB_BLOCK_LRU_LATCHES. This parameter sets the maximum value for the desired number of LRU latches. Each LRU latch controls a set of buffers; Oracle balances allocation of replacement buffers among the sets.
To select the appropriate value for DB_BLOCK_LRU_LATCHES, consider the following:
This chart includes the following data items:
This chart displays the average number of buffers scanned to find a free buffer. If your system must scan too many buffers in the foreground to find a free buffer, then it wastes CPU resources.
To alleviate this problem, tune the DBWn process(es) to write more frequently. You can also increase the size of the buffer cache to enable the database writer process(es) to keep up. On average, you would expect to see 1 or 2 buffers scanned. If more than this number are being scanned, then increase the size of the buffer cache or tune the DBWn process(es).
This chart includes the following data items:
This chart delves into the details surrounding the "free buffer waits" event. Free buffer waits may be caused by the session scanning at the end of the LRU (Least Recently Used) list for a free buffer. If the dirty list is full, then a foreground process must wait for the dirty buffers to be written to disk. Or, free buffer waits can be caused by a session that scans too many buffers (db_block_max_scan_count). In Oracle7, it is more likely that the dirty buffer list is full than anything else, so increasing db_block_write_batch should be sufficient.
The formula 1 + (free buffers inspected /free buffers requested) will calculate the average number of buffers that a session is scanning at the end of a LRU to find a free buffer. If this number is close to 1, it means a session can find a buffer on average very quickly. If the number is very large it normally means that a lot of Consistent Read (CR) buffers are sitting at the end of the LRU.
If the average number of free buffers scanned is too large, the db_block_max_scan_count parameter may be too high or you may want to increase the db_block_write_batch parameter.
This chart includes the following data items:
This chart shows total parse count, hard parse count and execution counts. By comparing SQL statement parse counts to execution counts, we can get a picture of how often SQL statements are being reparsed. A lot of the tuning in this area is probably best done in the application, through more efficient use of cursors, bind variables, and the like.
The following should be checked if parse counts are high:
This chart includes the following data items:
This chart indicates the hit ratio for session cached cursors. The hit ratio counts the number of times a parse call found a cursor in the session cursor cache.
If an application repeatedly issues parse calls on the same set of SQL statements, then the reopening of the session cursors can affect system performance. Session cursors can be stored in a session cursor cache. This feature can be particularly useful for applications designed using Oracle Forms, because switching from one form to another closes all session cursors associated with the first form.
Oracle uses the shared SQL area to determine whether more than three parse requests have been issued on a given statement. If so, Oracle assumes the session cursor associated with the statement should be cached and moves the cursor into the session cursor cache. Subsequent requests to parse that SQL statement by the same session then find the cursor in the session cursor cache.
To enable caching of session cursors, you must set the initialization parameter SESSION_CACHED_CURSORS. The value of this parameter is a positive integer specifying the maximum number of session cursors kept in the cache. An LRU (Least Recently Used) algorithm removes entries in the session cursor cache to make room for new entries when needed.
If this statistic is a relatively low percentage of the total parse call count for the session, you should consider setting SESSION_CACHED_CURSORS to a larger value (provided it does not have a negative impact on Operating System paging and swapping activity).
This chart includes the following data items:
This chart displays some key statistics in monitoring the buffer cache pinning activity.
Oracle relies on database buffers in the SGA to store the most recently used blocks of database data read from disk. The set of database buffers in an instance is the database buffer cache. The buffer cache is organized in two lists: the dirty list and the LRU list. The dirty list contains modified buffers that have not been written to disk. The LRU list contains free buffers, pinned buffers and dirty buffers. The DBWR manages the database buffer cache so that user processes can always find free buffers.
This chart displays these key statistics in monitoring buffer cache pinning activity:
These statistics are not incremented when a client performs such a check before releasing it, because the client does not intend to use the buffer in this case.
These statistics provide a measure of how often a long consistent read pin on a buffer is beneficial. If the client is able to reuse the pinned buffer many times, then it indicates that it is useful to have the buffer pinned.
This chart includes the following data items:
This chart shows response time in the database broken down into two components, wait time and CPU time. From the percentages shown, the user should be able to quickly determine which component is consuming the largest portion of elapsed time. Further diagnosis of either component can be accomplished by selecting either wait time or CPU time and drilling down to charts tailored to the particular component
This chart includes the following data items:
Oracle relies on database buffers in the SGA to store the most recently used blocks of database data read from disk. The set of database buffers in an instance is the database buffer cache. The buffer cache is organized in two lists: the dirty list and the LRU list. The dirty list contains modified buffers that have not been written to disk. The LRU list contains free buffers, pinned buffers and dirty buffers.
The DBWR manages the database buffer cache so that user processes can always find free buffers. The buffer cache efficiency, as measured by the hit ratio, records the percentage of times the data block requested by a specific query is already in memory. Because the most recently (and often the most frequently) used data is kept in memory, effective use of the buffer cache can greatly reduce the I/O load on the database.
If the buffer cache is too small, frequently accessed data will be flushed from the buffer cache too quickly which forces the information to be re-fetched from disk. Since disk access is much slower than memory access, application performance will suffer. In addition, the extra burden imposed on the I/O subsystem could introduce a bottleneck at one or more devices which would further degrade performance.
This chart includes the following data items:
User Calls and Recursive Call Rates Per Second
This chart includes the following data items:
Percentage of recursive calls to user calls
This chart includes the following data items:
Database I/O per second
This chart includes the following data items:
Percentage of rows returned using table scan rather than index access
This chart includes the following data items:
Per second rates for various classes of table scans
This chart includes the following data items:
Number of bytes sent and/or received via network per second
This chart includes the following data items:
Number of total blocks gotten per number of tablescans
This chart includes the following data items:
This chart gives an indication of the average I/O size being requested. If this is small, it is generally due to either small transactions or high concurrency causing frequent redo_synch_writes.
This chart includes the following data items:
Redo log activity statistics
This chart includes the following data items:
This chart displays information about the amount of time your CPU spends parsing SQL statements.
When Oracle executes a SQL statement, it parses it to determine whether the syntax and its contents are correct. This process can consume significant overhead. Once parsed, Oracle does not parse the statement again unless the parsing information is aged from the memory cache and is no longer available. Ineffective memory sharing among SQL statements can result in reparsing.
This chart helps you detect the general response time on parsing. The more your application is parsing, the more contention exists, and the more time your system spends waiting. If parse time CPU represents a large percentage of the CPU time, then time is being spent parsing instead of executing statements. If this is the case, then it is likely that either the application is using literal SQL and not sharing it, or the shared pool is poorly configured. If Other is the greatest percentage, look for SQL statements that are performing the most buffer gets and physical reads.
This chart includes the following data items:
This chart represents the sort efficiency, as measured by the percentage of times sorts were performed in memory as opposed to going to disk.
For best performance, most sorts should occur in memory, because sorts to disks are expensive to perform. If the sort area is too small, extra sort runs will be required during the sort operation. This increases CPU and I/O resource consumption.
If excessive sorts are taking place on disk, consider increasing the SORT_AREA_SIZE initialization parameter to increase the size of the sort area. A larger sort area will allow the Oracle Server to keep sorts in memory, reducing the number of I/O operations required to do an equivalent amount of work using the current sort area size.
This chart includes the following data items:
This chart represents the sort efficiency, as measured by the percentage of times sorts were performed in memory as opposed to going to disk.
For best performance, most sorts should occur in memory, because sorts to disks are expensive to perform. If the sort area is too small, extra sort runs will be required during the sort operation. This increases CPU and I/O resource consumption.
If excessive sorts are taking place on disk, consider increasing the SORT_AREA_SIZE initialization parameter to increase the size of the sort area. A larger sort area will allow the Oracle Server to keep sorts in memory, reducing the number of I/O operations required to do an equivalent amount of work using the current sort area size.
This chart includes the following data items:
Initialization parameters pertaining to sorts
This chart includes the following data items:
Sort and Tablescan statistics
This chart includes the following data items:
Rows per sort metric
This chart includes the following data items:
Maximum number of blocks allocated to sorts
This chart includes the following data items:
Statistics related to the DBWR processing of free blocks
This chart includes the following data items:
Statistics describing the DBWR scans of the LRU list
This chart includes the following data items:
Number of times the DBWR was asked to mark a checkpoint
This chart includes the following data items:
Number of blocks in the SGA on a per file basis
This chart includes the following data items:
Initialization parameters pertaining to cursors
This chart includes the following data items:
Number of database blocks in the SGA
This chart includes the following data items:
Size in bytes of the redo log buffer
This chart includes the following data items:
Number of LRU latches
This chart includes the following data items:
Initialization parameters pertaining to the buffer pools
This chart includes the following data items:
This chart shows the number of datafiles for each tablespace.
Description
This chart includes the following data items:
This chart shows the tablespace status, for example, whether the tablespace is online,
offline or read-only, for each tablespace.
Description
This chart includes the following data items:
This chart shows, for each tablespace, the size in blocks for:Description
This chart includes the following data items:
This chart shows the percentage of free space, in blocks, per tablespace. As
segments within a tablespace grow, the free space within that tablespace decreases. Should
free space become insufficient, the creation of new segments or the extension of existing
segments will fail.
Description
If free space is insufficient, increase the size of the tablespace by enabling automatic extension for one of its datafiles, manually resizing one of its datafiles, or adding a new datafile.
This chart includes the following data items:
This chart shows the total amount of free space, in kilobytes, for each tablespace. As
segments within a tablespace grow, the free space within that tablespace decreases. Should
free space become insufficient, the creation of new segments or the extension of existing
segments will fail.
Description
If free space is insufficient, increase the size of the tablespace by enabling automatic extension for one of its datafiles, manually resizing one of its datafiles, or adding a new datafile.
This chart includes the following data items:
This chart shows the number of free extents for each tablespace.
Description
This chart includes the following data items:
The Data Dictionary Cache is the part of the shared pool used to hold definitions of dictionary objects in memory. Examples of dictionary objects are privileges, users, tables, columns, constraints, indexes, etc. The data dictionary cache is sized indirectly when specifying the SHARED_POOL_SIZE init.ora parameter. The dictionary is tuned automatically by Oracle. When Oracle is first started and objects are being accessed for the first time, a miss occurs because a disk read has been required to access the information. Ideally from then on, there will be no more misses because the dictionary information will be placed in memory. Unfortunately this is not always the case.
The Data Dictionary Miss chart shows the ratio of misses to gets. The chart will immediately indicate whether or not an exorbitant amount of dictionary cache misses exists.
The ratio of all get misses to gets should be between 7-10%. If the percentage is
outside the desired range, lower it by increasing the value of the SHARED_POOL_SIZE
init.ora parameter. Then shut down the database and restart it for the new
SHARED_POOL_SIZE to take effect.
This chart includes the following data items:
The Data Dictionary Cache is the part of the shared pool used to hold definitions of dictionary objects in memory. Examples of dictionary objects are privileges, users, tables, columns, constraints, indexes, etc. The data dictionary cache is sized indirectly when specifying the SHARED_POOL_SIZE init.ora parameter. The dictionary is tuned automatically by Oracle. When Oracle is first started and objects are being accessed for the first time, a miss occurs because a disk read has been required to access the information. Ideally from then on, there will be no more misses because the dictionary information will be placed in memory. Unfortunately this is not always the case.
The Dictionary Cache Hit Ratio chart shows the cache-gets in one color and cache-misses in another color. The chart will immediately indicate whether or not an exorbitant amount of dictionary cache misses exists.
The ratio of all get misses to gets should be between 7-10%. If the percentage is
outside the desired range, lower it by increasing the value of the SHARED_POOL_SIZE
init.ora parameter. Then shut down the database and restart it for the new
SHARED_POOL_SIZE to take effect.
This chart includes the following data items:
Per cache counts
This chart includes the following data items:
Number of cache misses per second per cache
This chart includes the following data items:
This chart shows the percentage of parse requests that find the cursor already present in the cache. A complete description of the meaning of this metric can be found in the description of the item in the chart.
Drilldowns from this chart will help you determine the reasons for the low hit percentage.
This chart includes the following data items:
Contention for rollback segments is reflected by contention for buffers that contain rollback segment blocks. This chart represents the percentage of times when there was no wait for accessing the rollback segment header. This value should be greater than 99%.
This chart includes the following data items:
This chart breaks down wait events on a per user basis.
This chart includes the following data items:
Number of waits for each event by user
This chart includes the following data items:
Summed total of all parse and executes for each user
This chart includes the following data items:
Per second rates
This chart includes the following data items:
CPU usage by user
This chart includes the following data items:
This chart displays information about CPU usage per user, broken down into subcomponents.
When Oracle executes a SQL statement, it parses it to determine whether the syntax and its contents are correct. This process can consume significant overhead. Once parsed, Oracle does not parse the statement again unless the parsing information is aged from the memory cache and is no longer available. Ineffective memory sharing among SQL statements can result in reparsing.
This chart helps you detect the general response time on parsing. The more your application is parsing, the more contention exists, and the more time your system spends waiting. If parse time CPU represents a large percentage of the CPU time, then time is being spent parsing instead of executing statements. If this is the case, then it is likely that either the application is using literal SQL and not sharing it, or the shared pool is poorly configured. If Other is the greatest percentage, look for SQL statements that are performing the most buffer gets and physical reads.
This chart includes the following data items:
Block and I/O rates per user
This chart includes the following data items:
Sort statistics per user per second
This chart includes the following data items:
This chart represents the sort efficiency, as measured by the percentage of times sorts were performed on disk as opposed to in memory.
For best performance, most sorts should occur in memory as sorts to disks are expensive to perform. If the sort area is too small, extra sort runs will be required during the sort operation. This increases CPU and I/O resource consumption.
If excessive sorts are taking place on disk, consider increasing the SORT_AREA_SIZE initialization parameter to increase the size of the sort area. A larger sort area will allow the Oracle Server to keep sorts in memory, reducing the number of I/O operations required to do an equivalent amount of work using the current sort area size.
This chart includes the following data items:
Number of rows per sort
This chart includes the following data items:
Peak UGA (per user) memory use
This chart includes the following data items:
Elapsed time for all parses for this user this sample period
This chart includes the following data items:
Average time spent waiting for each parse
This chart includes the following data items:
Contention for rollback segments is reflected by contention for buffers that contain rollback segment blocks. This chart represents the percentage of times when there was no wait for accessing the rollback segment header. This value should be greater than 99%.
This chart includes the following data items:
Percentage of hits when requesting rollback segment headers
This chart includes the following data items:
Rollback segment access rates
This chart includes the following data items:
Status and current number of transactions outstanding
This chart includes the following data items:
Lists all segments that may be fragmented
Lists all users and the number of large table scans per second
This chart includes the following data items:
Lists all users and the number of small table scans per second
This chart includes the following data items:
Lists per user tablescans on tables with chained or migrated rows
This chart includes the following data items:
Lists per user tablescans that bypass the buffer cache
This chart includes the following data items:
Various per user tablescan statistics
This chart includes the following data items:
Bytes available in the SGA
This chart includes the following data items:
Number of times a request to the library cache failed or resulted in a miss
This chart includes the following data items:
Sizes of components of the SGA, reported in Megabytes.
This chart includes the following data items:
Reloads/request percentage and shared pool reserved list miss/request percentage
This chart includes the following data items:
Lock Manager top level chart
This chart includes the following data items:
Size of database in megabytes
This chart includes the following data items:
Maximum size of the redo log buffer
This chart includes the following data items:
Number of schemas, users, tables, etc.
This chart includes the following data items:
Counts of total sessions, active, inactive, etc.
This chart includes the following data items:
Current count of number of concurrent sessions
Count of number of concurrent transactions
This chart includes the following data items:
This chart displays a breakdown of the types of SQL statements currently being executed. Only statements marked as active at the time of the sample will show up in the data reported. So the results of this chart may be misleading. The values reported are valid for just the instant in time that the query was performed,
This chart includes the following data items:
This chart shows the average elapsed time for a SQL statement to be executed as well as the breakdown of the elapsed time into wait and cpu time components. For these charts to be valid the TIMED_STATISTICS parameter must be set to TRUE. TIMED_STATISTICS can be enabled through a tool available on each of the charts. The two charts shown here are Wait or CPU Bound and Elapsed time per execute .
This shows the user our best estimate of overall response time, from statistics that are available in the database. Response time is defined here as overall wait time plus overall CPU time consumed by all sessions within the database, divided by the number of executes to give a per-execute value. The per-execute value is shown such that we can accurately report on read-only access as well as transactional access. For per transaction response time, see the Avg. Trans. Length in Seconds chart.
Further investigation into the individual parts of response time, CPU and Wait, can be done via a drilldown to Wait or CPU Bound .
This chart includes the following data items:
Average elapsed time per statement execution per user
This chart includes the following data items:
This chart shows response time in the database broken down into two components, wait time and CPU time. From the percentages shown, the user should be able to quickly determine which component is consuming the largest portion of elapsed time. Further diagnosis of either component can be accomplished by selecting either wait time or CPU time and drilling down to charts tailored to the particular component
This chart includes the following data items:
This chart shows CPU usage broken down into its components, catagorized by each program attached to the database. The program name is taken from the V$SESSION table and the statistics that are used to calculate these values are aggregated for all sessions that were started by users executing the named program.
When Oracle executes a SQL statement, it parses it to determine whether the syntax and its contents are correct. This process can consume significant overhead. Once parsed, Oracle does not parse the statement again unless the parsing information is aged from the memory cache and is no longer available. Ineffective memory sharing among SQL statements can result in reparsing. Now you can detect the general response time on parsing. The more your application is parsing, the more contention exists, and the more time your system spends waiting. If parse time CPU represents a large percentage of the CPU time, then time is being spent parsing instead of executing statements. If this is the case, then it is likely that the application is using literal SQL and not sharing it, or the shared pool is poorly configured. If Other is the greatest percentage, look for SQL statements that are performing the most buffer gets and physical reads.
This chart includes the following data items:
This chart is a group chart that shows summary information about Wait Events. With a chart showing the number of sessions that are currently waiting for specific events Sessions Waiting for this Event And a chart showing the top 5 wait events that have finished waiting during this sample Wait Events by Time .
This chart depicts where CPU time is being spent within the database. It contains CPU breakdowns for the database as a whole as well as individual programs, users, and remote nodes. From these charts, you should be able to quickly determine where and how your CPU is being consumed.
When Oracle executes a SQL statement, it parses it to determine whether the syntax and its contents are correct. This process can consume significant overhead. Once parsed, Oracle does not parse the statement again unless the parsing information is aged from the memory cache and is no longer available. Ineffective memory sharing among SQL statements can result in reparsing. Now you can detect the general response time on parsing. The more your application is parsing, the more contention exists, and the more time your system spends waiting. If parse time CPU represents a large percentage of the CPU time, then time is being spent parsing instead of executing statements. If this is the case, then it is likely that the application is using literal SQL and not sharing it, or the shared pool is poorly configured. If Other is the greatest percentage, look for SQL statements that are performing the most buffer gets and physical reads.
A group chart that shows the high level instance wide I/O statistics as well as the most heavily or costly accessed database files.
Sessions are displayed in descending order based upon the delta value of the statistic chosen as the sort statistic.
This chart can be used to create a customized Top Session view. All of the available statistics and identifiers for sessions are shown in a large table by default. By using the Set Options button in the toolbar the chart can be customized to show only the items of interest and the sort criteria can be changed. Customized charts can then be saved, named and accessed directly by name.
This chart includes the following data items:
Average elapsed time per transaction per session
This chart includes the following data items:
Actual values of commits, rollbacks, executes, etc. for the sample period
This chart includes the following data items:
Average elapsed time per statement execution per session
This chart includes the following data items:
The db file scattered read event usually indicates full table scans or range scans. The number of blocks that is read in a single I/O operation is determined by the init.ora parameter db_file_multi_read_count. This chart will show the files that are having scans performed on them. If phyrds is close to physical block reads, then single block reads are occurring. If that is not the case then full scans or range scans are not happening on that particular file. This chart will show which files are having single block reads and identify those files and the objects within them as possible candidates for index selection.
If physical reads/physical blocks read is close to 1, then single block reads are occurring, and scans are not occurring on the file and the. Check the objects that reside in the file. And look to see if an index may be appropriate for those objects. To reduce the cost of db file scattered read, check the file placement on each disk, the number of disks, and the stripe size per disk (this should be 2 * db_file_mutli_block_read_count)
This chart provides a comprehensive overview of Latch activity. Latch contention, latch sleeps, and overall latch statistics are presented for further investigation.
CPU and wait components of elapsed time
This chart includes the following data items:
Further investigation of CPU usage by users
This chart is related to the buffer busy event. This chart will show which blocks in which files and why the current session is waiting on them. The block could be being read by another session or being modified by another session. From this we can figured out what type of contention the session is having on specific files and the blocks within those files.
This chart includes the following data items:
Sort statistics group chart
SQL statements of applications that use the DBMS_APPLICATION_INFO package
This chart includes the following data items:
SQL statements of applications that use the DBMS_APPLICATION_INFO package
This chart includes the following data items:
List of current modules and the count of sessions using that module
This chart includes the following data items:
A list of events across the instance sorted by the number of sessions currently waiting to the particular event type. This list will allow the user to quickly identify which event the instance is waiting for the most as a whole. Each event type is affected by different parameters and conditions. Further drilldown is accomplished by selecting the particular wait event of interest. Some of the wait events have specific drilldown charts to help diagnose the reason for the wait.
There are also generic drilldowns, available for all wait events. To determine the individual sessions that are currently waiting for a specific event use the Sessions Waiting for this Event Chart. Similarly to view the SQL statements that are currently waiting for the event, use the SQL Statements waiting for this event Chart. This will lead you quickly to the SQL statements that are experiencing the wait and help you determine the impact this wait is having on the application.
This chart includes the following data items:
Parallel query chart
This chart contains statistics pertaining to the use and size of the session cursor cache. This cache is enabled via SESSION_CURSOR_CACHE parameter.
CPU time broken down into parse, recursive and other
This chart includes the following data items:
Tablespace statistics, status, percent free space, free bytes, etc.
This chart is intended to show different statistics that indicate the overall health of the Redo Log and the LGWR activity.
Most of the charts and statistics displayed or gathered for CP analyis require that the initialization parameter timed_statisics be set to TRUE. This enables the database to gather CPU and elapsed time information on operations within the server. The overhead encurred by turning on this statistic's timing is very low. The benefits gained by being able to accurately track resource and elapsed time consumption far outweigh the associated cost. If the value show in the chart is currently "FALSE" you can dynamically turn on timed_statistics by using the associated Turn On Timed Statistics Tool found in the tool pulldown associated with this chart. Tools, Drilldowns, Historical Collections and other options are viewable with a right mouse button on any chart.
This chart includes the following data items:
This chart is intended to show different Shared Pool statistics that determine whether to increase or decrease the Shared Pool Size parameter to tune the Library Cache performance.
The library cache is one of the dynamic memory structures in the Shared Pool. The library cache holds executable forms of SQL cursors, PL/SQL programs, and JAVA classes. The library cache is limited in size and is controlled by an LRU algorithm such that objects are aged out of this cache if the shared pool runs out of room. Library cache misses can occur on either the parse or the execute step in the processing of a SQL statement.
This chart shows the percentage of CPU Time used in the last sample period by sessions that originate on the listed hosts. You should be able to quickly discover which remote nodes are responsible for the bulk of the CPU consumption within the database. This chart will be especially useful for environments that dedicate middle tier servers to specific applications.
This chart includes the following data items:
This chart shows the percentage of CPU Time used in the last sample period by the listed programs. You should be able to quickly discover which programs are responsible for the bulk of the CPU consumption within the database. This chart will be especially useful for environments that have unique image names for their various applications.
This chart includes the following data items:
This chart shows the sum of dirty buffers found on the LRU buffer list and write requests during this sample period. Summed dirty queue length is the number of blocks that stay in the dirty queue after a write request is completed. If many dirty buffers exist, then possibly the DBWn process(es) cannot keep up. Increase the buffer cache size or tune the DBWn process.
This chart includes the following data items:
This chart shows if the DBWR is leaving dirty blocks in the LRU queue that are either being found after each write completes or are found by shadow processes trying to load new blocks into the cache. Values > 1 for both of these statics can point to I/O, cache sizing problems or an insufficient number of DBWR processes.
This chart includes the following data items:
Through the use of the charts displayed as a group here, you should be able to determine if the DBWR is operating at a level that is adequate for the database. From within each of the specific charts, you can investigate further into individual statistics and possible actions to correct problems.
This chart is the starting point for diagnosing performance problems with the database. Each sub chart within the group chart has drilldowns that will lead you through further analysis of the potential problem, denoted by the statistics shown on that chart.
Some of the drilldowns are context specific. If there is more than one item shown in a chart, selecting the individual item of interest before using the right mouse button to drilldown will provide the best context to the tool.
Amount of redo generated per second in bytes
This chart includes the following data items:
Average number of blocks read/write to/from each file per I/O operation
This chart includes the following data items:
This chart shows the average amount of time a I/O operation takes for the particular file.
This chart includes the following data items:
This chart will show you the tables that this query references. If the query is large, it may not be readily apparent which tables it actually accesses. If the query is performing lots of I/O, it could be doing a full table scan against one of tables. If the cost based optimizer is in use, it could be choosing a bad strategy based upon out of date statistics. Use the information in this chart to decide if the table statistics are valid. If not, use one of the analyze tool options to update the statistics for any of the tables. A high chained row percentage may indicate that the average row in this table cannot fit into a data blcok. This may be becuase of updates which increase the size of records, forcing them to be migrated to other blocks, or the row size may just exceed the db_block_size. Use the Reorg wizard to determine if tables with high row chain percentages should be reorganized.
This chart includes the following data items:
Soft parses are parses that find the SQL statement in the cache already parsed and are able to reuse the existing entry. Hard parses do not find the SQL statement in the cache and consume processing cycles to complete the parse step. If the Soft Parse percentage is low, you should look at the SQL statements in the cache. Using the Top SQL Chart you should be able to determine if bind variables are being used or not. SQL statements must match exactly for the SQL cache to be used efficiently.
This chart includes the following data items:
This chart shows the sessions which are parsing SQL statements that do not already reside in the cache. Most often, this is due to using literals and not bind variables in SQL queries. The SQL statements in use by a session can be found by drilling down to the Open Cursors for this Session chart.
This chart includes the following data items:
This chart is the starting point for figuring out which sessions and then ultimately which queries are performing the most sorting. From this chart, you can drill down to open cursors for the session, and then sort those queries by row sorts to determine which queries are causing the sorts.
This chart includes the following data items:
This chart gives you a good idea of which sessions are responsible for the bulk of the database read I/O. From this chart, you can drilldown to the open SQL for the session which, when sorted by physical reads, will give you an idea of which queries are responsible for the I/O.
This chart includes the following data items:
This chart gives you a good idea of the impact a change to this table will have on the rest of your application, whether it be through adding an index to improve a query or via updating the table's internal statistics.
This chart includes the following data items:
This chart shows all of the current cursors (SQL statements) that this session has open. The statistics shown in Top Sessions chart will include statistics from all these queries, as well previous cursors that may have been executed and closed.
This chart includes the following data items:
This chart lists SQL statements that are same within the first 50 characters. Statements that are the same except for literals that are used in the "WHERE" clause could potentially be rewritten to use bind variables. Re-parsing of basically the same SQL statement wastes time and resources. If your library cache hit rate is low, the queries listed here may be your largest offenders.
This chart includes the following data items:
This chart allows you to view the text and statistics of all statements that match the first 50 characters of a chosen query string. From the information shown on this screen the user should be able to fully identify the query and decide whether it is a valid candidate to be rewritten to help avoid hard parses and library cache aging.
This chart includes the following data items:
This chart shows the number of times that redo allocation failed.
When LGWR writes redo entries from the redo log buffer to a redo log file or disk, user processes can then copy new entries over the entries in memory that have been written to disk. LGWR normally writes fast enough to ensure that space is always available in the buffer for new entries, even when access to the redo log is heavy.
The value of REDO BUFFER ALLOCATION RETRIES should be near zero. If this value increments consistently, processes have had to wait for space in the buffer. The wait may be caused by the log buffer being too small or by checkpointing. Increase the size of the redo log buffer, if necessary, by changing the value of the initialization parameter LOG_BUFFER. The value of this parameter, expressed in bytes, must be a multiple of DB_BLOCK_SIZE. Alternatively, improve the checkpointing or archiving process.
This chart includes the following data items:
This chart gives a high level view of the efficiency of the buffer cache and the library cache. Drilldowns are available for both metrics. In both cases cache utilization should be near %95.
This chart includes the following data items:
For a selected USER detailed information, similiar to information found in the Top Sessions chart is displayed.
This chart includes the following data items:
For a selected program detailed information, similiar to information found in the Top Sessions chart is displayed.
This chart includes the following data items:
For a selected machine name detailed information, similiar to information found in the Top Sessions chart is displayed.
This chart includes the following data items:
The Top Sessions by Hard Parse Count chart will show you which sessions are incurring the most hard parses.
Hard parses happen when the server parses a query and cannot find an exact match for the query in the library cache. Hard parses can be avoided by sharing SQL statements efficiently. The use of bind variables instead of literals in queries is one method to increase sharing.
This chart, by showing you which sessions are incurring the most hard parses, may lead you to the application or programs that are the best candidates for SQL rewrites.
The Library Cache Eating SQL Chart will show you which statements are similar in the first 'n' characters and how many versions of that statement segment are in the cache. Hard parses can also be forced by aging of SQL statements out of the cache due to an insufficient size of the shared pool area. The shared pool sizes allows you to see your current shared pool allocation and potentially increase it.
This group of charts helps investigate areas that might be consuming CPU time. The moving of data between buffers and disk consumes lots of CPU time. The Top SQL by Buffer Gets shows SQL statements that require a lot of buffers from the cache. This processing takes time. Similarly, Top Sessions by Physical Reads shows sessions that are forcing I/O, which in turn results in CPU processing within the buffer cache.
This chart shows the cursors the session currently has open. If the session opens and closes cursors frequently, you may only see the current SQL statement. The SQL statements are ordered by the number of physical reads they have performed.
This chart includes the following data items:
This chart shows the cursors the session currently has open. If the session opens and closes cursors frequently, you may only see the current SQL statement. The SQL statements are ordered by the number of times they have been parsed.
This chart includes the following data items:
This chart will allow you to see the sessions that are stuck waiting on the particular event. All the standard drilldowns are available to dig further into any of the sessions.
This chart includes the following data items:
This list shows the SQL statements that are currently waiting on this particular event. From this list, you may be able to determine which ojbects are in contention and look to reorganize your application, rewrite the SQL, or reorganize the underlying objects.
This chart includes the following data items:
This chart provides an overall picture of how busy the average dispatcher and server processes are. Also, it provides an indicator current proximity to server process limit, and peak server percentage.
This chart includes the following data items:
This chart displays the current number of server, and dispatcher processes.
This chart includes the following data items:
This charts shows a how often servers are being started and stopped. The values are normalized to a per second value, such that they can be valid over a range of sample frequencies.
This chart includes the following data items:
This shows chart shows how busy the average dispatcher is for the various connection types currently configured on the system. Also reported is the amount of time the average request waits in the queue for this dispatcher class.
This chart includes the following data items:
This chart shows the various statistics available for each dispatcher.
This chart includes the following data items:
This chart shows the various statistics available for each shared server process.
This chart includes the following data items:
Group chart of interesting MTS statistics
Statistics for blocking/waiting locks
This chart includes the following data items:
Statistics for user type locks
This chart includes the following data items:
Database I/O per transaction
This chart includes the following data items:
Various classes of table scans per transaction
This chart includes the following data items:
Number of bytes sent/received via the network per transaction
This chart includes the following data items:
This chart is a drilldown from a higher level chart that lists wait events. For wait events that are waiting for a read or a write to a specific block within a file, this chart will identify the segment that contains the block.
This chart includes the following data items:
This chart lists the number of files and blocks individual sessions are waiting on. This chart is a drilldown from a higher level chart that lists wait events. For the particular wait event that was chosen, you will see the individual waits and their file and block counts. Most of the write waits are related to DBWR performance.
This chart includes the following data items:
There is high contention via the cache buffers chains latch for these blocks in the buffer cache. The segment to which these blocks belong should be identified. You should determine why these particular blocks are in demand and try to reduce the contention on them.
This chart gives you a high level view of the transaction rates, both successful and unsuccessful. It also provides insight into how often users are logging in to the system. If the logon rate is high, then perhaps a very inefficient application is doing a connect, query, disconnect for each piece of information.
This chart includes the following data items:
Block and consistent get and change rates
This chart includes the following data items:
Statistics that show database efficiency
Statistics that show activity in the database
Statistics to determine database health
Various hit ratios
This chart includes the following data items:
Top 5 Sessions ordered by % Physical Reads
This chart includes the following data items:
Top 5 wait events ordered by time waited, count
This chart includes the following data items:
Active and inactive session counts
How often latches are granted without waiting
This chart includes the following data items:
How often redo entries are allocated without having to wait
This chart includes the following data items:
This is the SQL statement the session is executing currently or the statement that was last executed.
This chart includes the following data items:
Oracle Advanced Queuing keeps statistics about the current state of the queuing system as well as time-interval statistics in the dynamic table GV$AQ. Statistics about the current state of the queuing system include the numbers of ready, waiting, and expired messages. This chart displays the number of messages in each state (ready, waiting, and expired)
This chart includes the following data items:
Oracle Advanced Queuing keeps statistics about the current state of the queuing system as well as time-interval statistics in the dynamic table GV$AQ. Statistics about the current state of the queuing system include the numbers of ready, waiting, and expired messages. This chart displays the average wait time of waiting messages and the total wait time of waiting messages.
This chart includes the following data items:
Totol Ping for an OPS database
Ping Count by Instance
Ping Count by File
Ping Count by instance for a file
Ping Count by Class
Ping count by Object
how each instance contribute to a object
most frequently pinged block
most frequently pinged block for a object
showing timeouts and waits
Request for a consistent read block and timed out.
High contention or I/O workload on the disk
usage of releasable locks
cr requests
cr requests
cr convert
cr convert by instance
System Waits
library cache locks
library cache locks by instance
row cache
Row cache by instance
Sort and Tablescan statistics
This chart includes the following data items:
This chart represents the sort efficiency, as measured by the percentage of times sorts were performed in memory as opposed to going to disk.
For best performance, most sorts should occur in memory, because sorts to disks are expensive to perform. If the sort area is too small, extra sort runs will be required during the sort operation. This increases CPU and I/O resource consumption.
If excessive sorts are taking place on disk, consider increasing the SORT_AREA_SIZE initialization parameter to increase the size of the sort area. A larger sort area will allow the Oracle Server to keep sorts in memory, reducing the number of I/O operations required to do an equivalent amount of work using the current sort area size.
This chart includes the following data items:
This chart gives you a high level view of the transaction rates, both successful and unsuccessful. It also provides insight into how often users are logging in to the system. If the logon rate is high, then perhaps a very inefficient application is doing an attach, query, detach for each piece of information.
This chart includes the following data items:
Instance-wide statistics in various call categories
This chart includes the following data items:
This chart displays some key statistics in monitoring the buffer cache pinning activity.
Oracle relies on database buffers in the SGA to store the most recently used blocks of database data read from disk. The set of database buffers in an instance is the database buffer cache. The buffer cache is organized in two lists: the dirty list and the LRU list. The dirty list contains modified buffers that have not been written to disk. The LRU list contains free buffers, pinned buffers and dirty buffers. The DBWR manages the database buffer cache so that user processes can always find free buffers.
This chart displays these key statistics in monitoring buffer cache pinning activity:
These statistics are not incremented when a client performs such a check before releasing it, because the client does not intend to use the buffer in this case.
These statistics provide a measure of how often a long consistent read pin on a buffer is beneficial. If the client is able to reuse the pinned buffer many times, then it indicates that it is useful to have the buffer pinned.
This chart includes the following data items:
This chart shows total parse count, hard parse count and execution counts. By comparing SQL statement parse counts to execution counts, we can get a picture of how often SQL statements are being reparsed. A lot of the tuning in this area is probably best done in the application, through more efficient use of cursors, bind variables, and the like.
The following should be checked if parse counts are high:
This chart includes the following data items:
This chart delves into the details surrounding the "free buffer waits" event. Free buffer waits may be caused by the session scanning at the end of the LRU (Least Recently Used) list for a free buffer. If the dirty list is full, then a foreground process must wait for the dirty buffers to be written to disk. Or, free buffer waits can be caused by a session that scans too many buffers (db_block_max_scan_count). In Oracle7, it is more likely that the dirty buffer list is full than anything else, so increasing db_block_write_batch should be sufficient.
The formula 1 + (free buffers inspected /free buffers requested) will calculate the average number of buffers that a session is scanning at the end of a LRU to find a free buffer. If this number is close to 1, it means a session can find a buffer on average very quickly. If the number is very large it normally means that a lot of Consistent Read (CR) buffers are sitting at the end of the LRU.
If the average number of free buffers scanned is too large, the db_block_max_scan_count parameter may be too high or you may want to increase the db_block_write_batch parameter.
This chart includes the following data items:
Block and consistent get and change rates
This chart includes the following data items:
Kill the selected session
html/DBACB1.htm
Enable the tracking of elapsed time and CPU time metrics
html/DBACB2.htm
Analyze Table to get statistic information.
html/DBACB3.htm
Analyze Table by sampling 10% of the data to get statistic information.
html/DBACB4.htm
Analyze Table by sampling 25% of the data to get statistic information.
html/DBACB5.htm
Turn SQL TRACE ON for this session
html/DBACB6.htm
Turn SQL TRACE OFF for this session
html/DBACB7.htm
SQL Analyze - SQL tuning tool
html/DBACB8.htm
Instance Manager - tool to modify init.ora parameters
Response time calculated across all update and insert transactions
This class includes the following charts:
Response time calculated across all update and insert transactions
This data item represents the percentage of time spent waiting, instance-wide, for
resources or objects during this sample period.
DeltaTotalWait / (DeltaTotalWait + DeltaCpuTime)
Investigate further into which specific wait events are responsible
for the bulk of the wait time. Individual wait events may identify unique
problems within the database. Diagnosis will be tailored where appropriate
through drilldowns specific to individual wait events.
This data item represents the percentage of time, instance-wide, spent executing
instructions by the CPU during this sample period.
DeltaCpuTime / (DeltaTotalWait + DeltaCpuTime)
When CPU is the largest contributor to total reponse time, it needs to be broken
down to properly understand the problem further. Basically, CPU Time is broken down
into the following categories:
Instance Response Time
% Wait Time
Description
Data Source
where:
User Action
% CPU Time
Description
Data Source
where:
User Action
Using only statistics available within the database, this data item gives the best
approximation of response time, in seconds, per transaction during this sample period.
(DeltaTotalWait + DeltaCpuTime) / (DeltaCommits + DeltaRollbacks)Description
Data Source
where:
Investigate further into which component, waits or CPU, is responsible for the majority of the response time and continue diagnosis.
This data item represents the total number of commits and rollbacks performed
during this sample period.
DeltaCommits + DeltaRollbacksDescription
Data Source
where:
This statistic is an indication of how much work is being accomplished within the database. A spike in the transaction rate may not necessarily be bad. If response times stay close to normal, it means your system can handle the added load. Actually, a drop in transaction rates and an increase in response time may be indicators of problems. Depending upon the application, transaction loads may vary widely across different times of the day.
This data item represents the number of user commits performed during the sample period.
When a user commits a transaction, the redo generated that reflects the changes made to database
blocks must be written to disk. Commits often represent the closest thing to a user transaction rate.
DeltaCommitsDescription
Data Source
where:
This statistic is an indication of how much work is being accomplished within the database. A spike in the transaction rate may not necessarily be bad. If response times stay close to normal, it means your system can handle the added load. Actually, a drop in transaction rates and an increase in response time may be indicators of problems. Depending upon the application, transaction loads may vary widely across different times of the day.
This data item represents the number of times users manually issue the ROLLBACK
statement or an error occurs during a user's transactions during the sample period.
DeltaRollbacksDescription
Data Source
where:
This statistic shows how often users are issuing the ROLLBACK statement or encountering errors in their transactions. Further investigation should be made to determine if the rollbacks are part of some faulty application logic or due to errors occuring through database access.
Using only statistics available within the database, this data item gives the best
approximation of response time, in seconds, per SQL statement execution. This statistic
may be more valid than response time per transaction as it shows accurate values even for
read-only access.
(DeltaTotalWait + DeltaCpuTime) / (DeltaUserCalls + DeltaRecursiveCalls)Description
Data Source
where:
Investigate further into which component, waits or CPU, is responsible for the majority of the response time and continue diagnosis.
This data item represents the total number of calls (user and recursive) that
executed SQL statements during the sample period. This statistic is an
indication of the number of SQL statements that are being processed per sample
period.
DeltaUserCalls + DeltaRecursiveCallsDescription
Data Source
where:
This statistic is an indication of how much work is being accomplished within the database. A spike in the execution rate may not necessarily be bad. If response times stay close to normal, it means your system can handle the added load. Actually a drop in execution rates, and an increase in response time may be indicators of problems. Depending upon the application, execution loads may vary widely across different times of the day.
Response time broken down by individual users
This class includes the following charts:
Response time broken down by individual users
This data item represents the percentage of time spent waiting by this session for
resources or objects during this sample period.
DeltaTotalWait / (DeltaTotalWait + DeltaCpuTime)Description
Data Source
where:
Investigate further into which specific wait events are responsible for the bulk of the wait time. Individual wait events may identify unique problems within the database. Diagnosis will be tailored where appropriate through drilldowns specific to individual wait events.
This data item represents the percentage of time this session spent executing
instructions by the CPU during this sample period.
DeltaCpuTime / (DeltaTotalWait + DeltaCpuTime)Description
Data Source
where:
When CPU is the largest contributor to total reponse time, it needs to be broken down to properly understand the problem further. Basically, CPU Time is broken down into the following categories:
Using only statistics available within the database, this data item gives the best
approximation of response time, in seconds, per transaction during this sample period.
(DeltaTotalWait + DeltaCpuTime) / (DeltaCommits + DeltaRollbacks)Description
Data Source
where:
Investigate further into which component, waits or CPU, is responsible for the majority of the response time and continue diagnosis.
This data item represents the total number of commits and rollbacks performed
by this session during this sample period.
DeltaCommits + DeltaRollbacksDescription
Data Source
where:
This statistic is an indication of how much work is being accomplished within the database. A spike in the transaction rate may not necessarily be bad. If response times stay close to normal, it means your system can handle the added load. Actually, a drop in transaction rates and an increase in response time may be indicators of problems. Depending upon the application, transaction loads may vary widely across different times of the day.
This data item represents the number of user commits performed by this session
during the sample period. When a user commits a transaction, the redo generated
that reflects the changes made to database blocks must be written to disk.
Commits often represent the closest thing to a user transaction rate.
DeltaCommitsDescription
Data Source
where:
This statistic is an indication of how much work is being accomplished within the database. A spike in the transaction rate may not necessarily be bad. If response times stay close to normal, it means your system can handle the added load. Actually, a drop in transaction rates and an increase in response time may be indicators of problems. Depending upon the application, transaction loads may vary widely across different times of the day.
This data item represents the number of times this session manually issued a
ROLLBACK statement or an error occurs during a session's transaction during
the sample period.
DeltaRollbacksDescription
Data Source
where:
This statistic shows how often users are issuing the ROLLBACK statement or encountering errors in their transactions. Further investigation should be made to determine if the rollbacks are part of some faulty application logic or due to errors occuring through database access.
Using only statistics available within the database, this data item gives the best
approximation of response time, in seconds, per SQL statement execution. This statistic
may be more valid than response time per transaction as it shows accurate values even for
read-only access.
(DeltaTotalWait + DeltaCpuTime) / (DeltaUserCalls + DeltaRecursiveCalls)Description
Data Source
where:
Investigate further into which component, waits or CPU, is responsible for the majority of the response time and continue diagnosis.
This data item represents the total number of calls (user and recursive) in this
session that executed SQL statements during the sample period. This statistic
is an indication of the number of SQL statements that are being processed per
sample period.
DeltaUserCalls + DeltaRecursiveCallsDescription
Data Source
where:
This statistic is an indication of how much work is being accomplished within the database. A spike in the execution rate may not necessarily be bad. If response times stay close to normal, it means your system can handle the added load. Actually a drop in execution rates, and an increase in response time may be indicators of problems. Depending upon the application, execution loads may vary widely across different times of the day.
Time spent waiting for individual events within the database
This class includes the following charts:
Time spent waiting for individual events within the database
This data item represents the amount of time, in seconds, spent waiting for the
event during the last sample period.
DeltaTimeWaitedDescription
Data Source
where:
Time spent waiting is time that could have been spent processing. Attacking the wait event with the largest wait time will probably produce the largest gain. Drilldowns are available to charts that are tailored to help diagnose and improve the performance of individual wait events.
This data item represents the number of waits for each event during the last sample period.
The number of waits is not as important as the amount of time spent waiting. The wait count
for an event will be updated even if the request for the event completed immediately.
DeltaWaitCountsDescription
Data Source
where:
This data item represents the number of timeouts for each event during the last sample period.
DeltaWaitTimeOutsDescription
Data Source
where:
Time spent waiting for individual events within the database
This class includes the following charts:
Time spent waiting for individual events within the database
This data item represents time spent waiting for the specific class of block during
sample period.
DeltaWaitDescription
Data Source
where:
This data item represents the number of times the specific class of block was waited
for per second during the sample period.
DeltaWait / SecondsDescription
Data Source
where:
AQ Queue statistics
This class includes the following charts:
AQ Queue statistics
Queue Table Name
the number of messages in the state 'WAITING'
the number of messages in state 'READY'
the number of messages in state 'EXPIRED'
the number of seconds for which messages in the queue have been waiting in state 'READY'
the average number of seconds a message in state 'READY' has been waiting to be dequeued
Top N SQL statements ordered by a particular resource
This class includes the following charts:
Top N SQL statements ordered by a particular resource
This data item contains the first eighty characters of the SQL text for the
current cursor.
select sql_text from v$sqlarea
Description
Data Source
This data item represents the number of physical reads. In other words,
its value is the number of read requests that were not satisfied by buffers in the cache and
resulted in access to datafiles on disk.
select disk_reads from v$sqlarea
Description
Data Source
This data item represents the number of read requests that were satisfied by buffers
in the cache. In other words, its value is the total number of blocks read by all executions of
this statement.
select buffer_gets from v$sqlarea
Description
Data Source
This data item represents the number of times this statement was executed per second
during this sample period.
DeltaExecutions / SecondsDescription
Data Source
where:
This data item represents the total number of times this statement was parsed per second
during this sample period.
DeltaParseCalls / SecondsDescription
Data Source
where:
This data item represents the number of physical reads performed by this statement per
second during the sample period. In other words, its value is the number of read requests that
were not satisfied by buffers in the cache and resulted in access to datafiles on disk.
DeltaPhysicalReads / SecondsDescription
Data Source
where:
This data item represents the number of read requests for this statement that were
satisfied by buffers in the cache per second during this sample period.
DeltaBufferGets / SecondsDescription
Data Source
where:
This data item represents the total number of rows processed to complete this statement
per second during the sample period.
DeltaRowsProcessed / SecondsDescription
Data Source
where:
This data item represents the sum of all shareable memory, in bytes, used by this
statement.
select sharable_mem from v$sqlarea
Description
Data Source
This data item represents the sum of all persistent memory, in bytes, used by this
statement.
select persistent_mem from v$sqlarea
Description
Data Source
This data item represents the sum of all memory, in bytes, currently in use by this
statement.
select runtime_mem from v$sqlarea
Description
Data Source
This data item represents the name of the application module that first executed
this statement. This name can be optionally set by using DMBS_APPLICATION_INFO.SET_MODULE.
select module from v$sqlarea
Description
Data Source
This data item represents the name of the action being performed by the application module that
first executed this statement. This name can be optionally set by using
DMBS_APPLICATION_INFO.SET_ACTION.
select action from v$sqlarea
Description
Data Source
This data item represents the percentage of total physical reads that were
attributed to this statement during the sample period.
DeltaPhysicalReads / DeltaTotalReadsDescription
Data Source
where:
This data item represents the percentage of total buffer gets that were
attributed to this statement during the sample period.
DeltaBufferGets / DeltaTotalGetsDescription
Data Source
where:
This class breaks down I/O activity on a per file basis
This class includes the following charts:
This class breaks down I/O activity on a per file basis
This data item represents the number of physical reads from this datafile per
second during the sample period.
DeltaPhysicalReads / SecondsDescription
Data Source
where:
This data item represents the number of physical writes to this datafile per
second during the sample period.
DeltaPhysicalWrites / SecondsDescription
Data Source
where:
This data item represents the number of physical blocks read from this datafile per
second during the sample period.
DeltaPhysicalBlockReads / SecondsDescription
Data Source
where:
This data item represents the number of physical blocks written to this datafile per
second during the sample period.
DeltaPhysicalBlockWrites / SecondsDescription
Data Source
where:
This data item represents the time spent doing reads from this datafile during
the sample period. This value will always be 0 unless the TIMED_STATISTICS
parameter is TRUE.
DeltaReadTimeDescription
Data Source
where:
This data item represents the time spent doing writes to this datafile during
the sample period. This value will always be 0 unless the TIMED_STATISTICS
parameter is TRUE.
DeltaWriteTimeDescription
Data Source
where:
This data item represents the average time spent performing a read from this
datafile during the sample period. This value will always be 0 unless the
TIMED_STATISTICS parameter is TRUE.
DeltaReadTime / DeltaPhysicalReadsDescription
Data Source
where:
This data item represents the average time spent performing a write to this
datafile during the sample period. This value will always be 0 unless the
TIMED_STATISTICS parameter is TRUE.
DeltaWriteTime / DeltaPhysicalWritesDescription
Data Source
where:
This data item represents the number of blocks read per read from this
datafile during the sample period. A value close to 1 denotes the fact
that single block reads are occurring.
DeltaPhysicalBlockReads / DeltaPhysicalReadsDescription
Data Source
where:
This data item represents the number of blocks written per write to this
datafile during the sample period. A value close to 1 denotes the fact
that single block writes are occurring.
DeltaPhysicalBlockWrites / DeltaPhysicalWritesDescription
Data Source
where:
Latch statistics - only latches with sleeps,spins,waiters,misses > 0 shown
This class includes the following charts:
Latch statistics - only latches with sleeps,spins,waiters,misses > 0 shown
If the latch is requested with a willing-to-wait request and that latch is
not available, the requesting process waits a short time and requests the latch
again. The process continues waiting and requesting until the latch is
available.
This data item represents the number of successful willing-to-wait requests
for the latch per second during this sample period.
DeltaGets / SecondsDescription
Data Source
where:
If a process is not able to obtain a latch right away, it must wait for the latch.
This causes a slowdown to occur and results in additional CPU usage, until a latch
is available. The CPU usage is a consequence of the "spinning" of the process.
"Spinning" means that the process continues to look for the availability of that latch
after fixed intervals of time, during which it sleeps. It continues to spin until a
latch is available.
This data item represents the number of times per second during this sample period
where an attempt to obtain a specific latch failed on the first attempt but succeeded
after a spin.
DeltaSpinGets / SecondsDescription
Data Source
where:
If the latch is requested with a willing-to-wait request and that latch is
not available, the requesting process waits a short time and requests the latch
again. The process continues waiting and requesting until the latch is
available.
This data item represents the number of times an initial willing-to-wait request
for the latch was unsuccessful per second during this sample period.
DeltaMisses / SecondsDescription
Data Source
where:
If the latch is requested with a willing-to-wait request and that latch is
not available, the requesting process waits a short time and requests the latch
again. The process continues waiting and requesting until the latch is
available.
This data item represents the number of times per second during this sample period
where a process waited for the requested latch after an initial willing-to-wait
request.
DeltaMisses / SecondsDescription
Data Source
where:
This data item represents the number of times this latch's wait was awakened
per second during this sample period.
DeltaWaitersWoken / SecondsDescription
Data Source
where:
This data item represents the number of times this latch waited while holding a different
latch per second during this sample period
DeltaWaitersWoken / SecondsDescription
Data Source
where:
If the latch requested with an immediate request and that latch is not available,
the requesting process does not wait, but continues processing.
This data item represents the number of successful immediate requests for this
latch per second for this sample period.
DeltaImmediateGets / SecondsDescription
Data Source
where:
If the latch requested with an immediate request and that latch is not available,
the requesting process does not wait, but continues processing.
This data item represents the number of unsuccessful immediate requests for this
latch per second for this sample period.
DeltaImmediateMisses / SecondsDescription
Data Source
where:
If the latch is requested with a willing-to-wait request and that latch is
not available, the requesting process waits a short time and requests the latch
again. The process continues waiting and requesting until the latch is
available.
This data item represents the percentage of times during this sample period an attempt
a willing-to-wait request for this latch failed on first try.
(DeltaMisses / DeltaGets) * 100Description
Data Source
where:
If the latch requested with an immediate request and that latch is not available,
the requesting process does not wait, but continues processing.
This data item represents the percentage of times during this sample period an
immediate request for this latch failed on first try.
(DeltaImmediateMisses / (DeltaImmediateGets + DeltaImmediateMisses)) * 100Description
Data Source
where:
A latch is a type of a lock that can be very quickly aquired and freed. Latches are
typically used to prevent more than one process from executing the same piece of code
at a given time. Latches have an associated level that is used
to prevent deadlocks. Once a process acquires a latch at a certain level it cannot
subsequently acquire a latch at a level that is equal to or less than that level (unless
it acquires it nowait).
This data item represents the latch level.
select level# from v$latch
Description
Data Source
If the latch is requested with a willing-to-wait request and that latch is
not available, the requesting process waits a short time and requests the latch
again. The process continues waiting and requesting until the latch is
available.
This data item represents the number of times during this sample period
where a process waited 1 time for the requested latch after an initial willing-to-wait
request.
select sleep1 from v$latch
Description
Data Source
If the latch is requested with a willing-to-wait request and that latch is
not available, the requesting process waits a short time and requests the latch
again. The process continues waiting and requesting until the latch is
available.
This data item represents the number of times during this sample period
where a process waited 2 times for the requested latch after an initial willing-to-wait
request.
select sleep2 from v$latch
Description
Data Source
If the latch is requested with a willing-to-wait request and that latch is
not available, the requesting process waits a short time and requests the latch
again. The process continues waiting and requesting until the latch is
available.
This data item represents the number of times during this sample period
where a process waited 3 times for the requested latch after an initial willing-to-wait
request.
select sleep3 from v$latch
Description
Data Source
If the latch is requested with a willing-to-wait request and that latch is
not available, the requesting process waits a short time and requests the latch
again. The process continues waiting and requesting until the latch is
available.
This data item represents the number of times during this sample period
where a process waited 4 times for the requested latch after an initial willing-to-wait
request.
select sleep4 from v$latch
Description
Data Source
Instance-wide statistics
This class includes the following charts:
Instance-wide statistics
This data item represents the percentage of times a parse call found a cursor in the
session cursor cache.
(DeltaCursorHits / (DeltaParseCount)) * 100Description
Data Source
where:
If this statistic is a relatively low percentage of the total parse call count for the session, consider setting SESSION_CACHED_CURSORS to a larger value, provided it does not have a negative impact on Operating System paging and swapping activity.
This data item represents the data block buffer cache efficiency, as measured
by the percentage of times the data block requested by the query is in memory.
Effective use of the buffer cache can greatly reduce the I/O load on the database.
If the buffer cache is too small, frequently accessed data will be flushed
from the buffer cache too quickly which forces the information to be re-fetched
from disk. Since disk access is much slower than memory access, application
performance will suffer. In addition, the extra burden imposed on the I/O subsystem
could introduce a bottleneck at one or more devices which would further degrade
performance.
((DeltaLogicalGets - (DeltaPhysicalReads - DeltaPhysicalReadsDirect)) / DeltaLogicalGets) * 100Description
Data Source
where:
The DB_BLOCK_BUFFERS initialization parameter determines the number of database buffers available in the buffer cache. It is one of the primary parameters which contribute to the total memory requirements of the SGA on the instance. The DB_BLOCK_BUFFERS parameter, together with the DB_BLOCK_SIZE parameter, controls the total size of the buffer cache. Since DB_BLOCK_SIZE can only be specified when the database is first created, normally the size of the buffer cache size is controlled using the DB_BLOCK_BUFFERS parameter.
Consider increasing the DB_BLOCK_BUFFERS initialization parameter to increase the size of the buffer cache. This increase allows the Oracle Server to keep more information in memory, thus reducing the number of I/O operations required to do an equivalent amount of work using the current cache size.
This data item represents the percentage of recursive calls to user calls.
Sometimes, to execute a SQL statement issued by a user, the Oracle Server must issue
additional statements. Such statements are called recursive calls or recursive SQL statements.
For example, if you insert a row into a table that does not have enough space to hold that
row, the Oracle Server makes recursive calls to allocate the space dynamically if dictionary
managed tablespaces are being used. Recursive calls are also generated:
Description
DeltaRecursiveCalls / DeltaUserCalls
where:
If the Oracle Server appears to be making excessive recursive calls while your application is running, determine what activity is causing these recursive calls. If you determine that the recursive calls are caused by dynamic extension, either reduce the frequency of extension by allocating larger extents or, if you are using Oracle 8.I, considering taking advantage of locally managed tablespaces.
A hard parse occurs when a SQL statement has to be loaded into the shared pool.
In this case, the Oracle Server has to allocate memory in the shared pool and
parse the statement. 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.
This data item represents the percentage of parse requests where the cursor
was already in the cursor cache; in other words, the percentage of soft parses.
((DeltaParseCountTotal - DeltaParseCountHard) / DeltaParseCountTotal) * 100Description
Data Source
where:
This data item represents the percentage of CPU time spent parsing SQL statements.
Parse time CPU can be a strong indication that an application has not been well
tuned. High parse time CPU usually indicates that the application may be spending
too much time opening and closing cursors or is not using bind variables.
(DeltaParseTime / DeltaTotalTime) * 100Description
Data Source
where:
If there appears to be excessive time spent parsing, evaluate SQL statements to determine which can be modified to optimize shared SQL pool memory use and avoid unnecessary statement reparsing. This type of problem is commonly caused when similar SQL statements are written which differ in space, case, or some combination of the two. You may also consider using bind variables rather than explicitly specified constants in your statements whenever possible.
This data item represents the percentage of time spent performing recursive calls.
Sometimes, to execute a SQL statement issued by a user, the Oracle Server must issue
additional statements. Such statements are called recursive calls or recursive SQL statements.
For example, if you insert a row into a table that does not have enough space to hold that
row, the Oracle Server makes recursive calls to allocate the space dynamically if dictionary
managed tablespaces are being used. Recursive calls are also generated:
Description
(DeltaRecursiveTime / DeltaTotalTime) * 100
where:
If the Oracle Server appears to be making excessive recursive calls while your application is running, determine what activity is causing these recursive calls. If you determine that the recursive calls are caused by dynamic extension, either reduce the frequency of extension by allocating larger extents or, if you are using Oracle 8.I, considering taking advantage of locally managed tablespaces.
This data item represents the percentage of time spent looking for buffers, fetching rows
or index keys, etc. Generally, "Other" CPU should represent the highest percentage of
CPU time out of the total CPU time used.
((DeltaTotalTime - (DeltaParseTime + DeltaRecursiveTime)) / DeltaTotalTime) * 100Description
Data Source
where:
It may be possible to reduce "Other" CPU time by investigating SQL statements that have a high number of buffer_gets and/or a high number of physical reads.
This data item represents the library cache efficiency, as measured by the
percentage of times the fully parsed or compiled representation of PL/SQL blocks
and SQL statements are already in memory.
The shared pool is an area in the SGA that contains the library cache of shared
SQL requests, the dictionary cache and the other cache structures that are
specific to a particular instance configuration.
The shared pool mechanism can greatly reduce system resource consumption in
at least three ways:
Description
If the shared pool is too small, users will consume additional resources to complete a database operation. For library cache access, the overhead is primarily the additional CPU resources required to re-parse the SQL statement.
(DeltaPinHits / DeltaPins) * 100
where:
The SHARED_POOL_SIZE initialization parameter controls the total size of the shared pool. Consider increasing the SHARED_POOL_SIZE to decrease the frequency in which SQL requests are being flushed from the shared pool to make room for new requests.
To take advantage of the additional memory available for shared SQL areas, you may also need to increase the number of cursors permitted per session. You can increase this limit by increasing the value of the initialization parameter OPEN_CURSORS.
Also, examine SQL statements which can be modified to optimize shared SQL pool memory use and avoid unnecessary statement reparsing. This type of problem is commonly caused when similar SQL statements are written which differ in space, case, or some combination of the two. You may also consider using bind variables rather than explicitly specified constants in your statements whenever possible.
This data item represents the sort efficiency as measured by the percentage of
times sorts were performed in memory as opposed to going to disk.
For best performance, most sorts should occur in memory, because sorts to disks are
expensive to perform. If the sort area is too small, extra sort runs will be
required during the sort operation. This increases CPU and I/O resource consumption.
(DeltaMemorySorts / (DeltaDiskSorts + DeltaMemorySorts)) * 100Description
Data Source
where:
If excessive sorts are taking place on disk, consider increasing the SORT_AREA_SIZE initialization parameter to increase the size of the sort area. A larger sort area will allow the Oracle Server to keep sorts in memory, reducing the number of I/O operations required to do an equivalent amount of work using the current sort area size.
This data item represents the average number of rows per sort during this
sample period.
(DeltaSortRows / (DeltaDiskSorts + DeltaMemorySorts)) * 100Description
Data Source
where:
This data item represents the maximum amount of space, in blocks, allocated to
all sorts.
select sum(max_used_blocks) from v$sort_segment
Description
Data Source
Redo log entries contain a record of changes that have been made to the database block
buffers. The log writer (LGWR) process writes redo log entries from the log buffer to
a redo log file. The log buffer should be sized so that space is available in the log
buffer for new entries, even when access to the redo log is heavy. When the log buffer
is undersized, user process will be delayed as they wait for the LGWR to free space in
the redo log buffer.
This data item represents the redo log buffer efficiency, as measured by the percentage
of times users did not have to wait for the log writer to free space in the
redo log buffer.
((DeltaRedoEntries - DeltaRedoLogSpaceRequests) / DeltaRedoEntries) * 100Description
Data Source
where:
The LOG_BUFFER initialization parameter determines the amount of memory that is used when buffering redo entries to the redo log file.
Consider increasing the LOG_BUFFER initialization parameter to increase the size of the redo log buffer should waiting be a problem. Redo log entries contain a record of the changes that have been made to the database block buffers. The log writer process (LGWR) writes redo log entries from the log buffer to a redo log. The redo log buffer should be sized so space is available in the log buffer for new entries, even when a ccess to the redo log is heavy.
If the latch is requested with a willing-to-wait request and that latch is
not available, the requesting process waits a short time and requests the latch
again. The process continues waiting and requesting until the latch is
available.
This data item represents the percentage of times during this sample period an attempt
a willing-to-wait request for this latch failed on first try.
(DeltaMisses / DeltaGets) * 100Description
Data Source
where:
This data item represents the number of active sessions.
select count(*) from v$session where status = 'ACTIVE'
Description
Data Source
This data item represents the number of inactive sessions.
TotalSessions - ActiveSessionsDescription
Data Source
where:
I/O statistics that are summarized for the entire instance
This class includes the following charts:
I/O statistics that are summarized for the entire instance
This data item represents the number of data blocks read from disk per second
during this sample period.
DeltaPhysicalReads / SecondsDescription
Data Source
where:
This data item represents the number of disk writes per second during the sample period.
DeltaWrites / SecondsDescription
Data Source
where:
This data item represents the number of logical reads per second during the
sample period.
DeltaReads / SecondsDescription
Data Source
where:
Blocks_gotten / (short_scans + long_scans)
Average number of buffers scanned when looking for a free buffer
Row scan / (row scan + rowid scan)
This data item represents the number of long table scans per second during
sample period. A table is considered 'long' if the table is not cached and
if its high-water mark is greater than 5 blocks.
DeltaScans / SecondsDescription
Data Source
where:
This data item represents the number of short table scans per second during
sample period. A table is considered 'short' if the table is cached or
if its high-water mark is less than 5 blocks.
DeltaScans / SecondsDescription
Data Source
where:
(Rowid scan) / (row scan + rowid scan)
During scanning operations, each row is retrieved sequentialy by the Oracle
Server. This data item represents the number of rows scanned per second
during this sample period.
select s.value from v$sysstat s, v$statname n
where n.name='table scan rows gotten' and n.statistic#=s.statistic#
Description
Data Source
All network read/write per second
This item represents the sum of dirty buffers found on the LRU buffer list and write
requests during this sample period. Summed dirty queue length is the number of
blocks that stay in the dirty queue after a write request is completed.
select s.value from v$sysstat s, v$statname n
where n.name='summed dirty queue length' and n.statistic#=s.statistic#
Description
Data Source
If many dirty buffers exist, then possibly the DBWn process(es) cannot keep up. Increase the buffer cache size or tune the DBWn process.
Number of I/O requests generated by the DBWR process
Average number of dirty blocks left on the LRU list per write request
Number of dirty buffers found per free request
This data item represents the number of changes, per second during
sample period, that were made to all blocks in the SGA as a result of
an update or delete operation. This value is a rough indication of
total database work as it indicates the rate at which buffers are
being dirtied.
DeltaBlockChanges / SecondsDescription
Data Source
where:
This data item represents the number of times, per second during
sample period, a user prcoess applied rollback entries to perform a
consistent read on a block.
DeltaConsistentChanges / SecondsDescription
Data Source
where:
This data item represents the number of disk reads per transaction during the sample period.
DeltaReads / TransactionsDescription
Data Source
where:
This data item represents the number of disk writes per transaction during the sample period.
DeltaWrites / TransactionsDescription
Data Source
where:
This data item represents the number of logical reads per transaction during the
sample period.
DeltaReads / TransactionsDescription
Data Source
where:
This data item represents the number of long table scans per transaction during
sample period. A table is considered 'long' if the table is not cached and
if its high-water mark is greater than 5 blocks.
DeltaScans / TransactionsDescription
Data Source
where:
This data item represents the number of short table scans per transaction during
sample period. A table is considered 'short' if the table is cached or
if its high-water mark is less than 5 blocks.
DeltaScans / TransactionsDescription
Data Source
where:
Table scans per transaction
This data item represents the number of changes, per transaction during
sample period, that were made to all blocks in the SGA as a result of
an update or delete operation. This value is a rough indication of
total database work as it indicates the rate at which buffers are
being dirtied.
DeltaBlockChanges / TransactionsDescription
Data Source
where:
This data item represents the number of times, per transaction during
sample period, a user prcoess applied rollback entries to perform a
consistent read on a block.
DeltaConsistentChanges / TransactionsDescription
Data Source
where:
All network read/write per transaction
Data blocks direct read from disk per second
Data blocks direct read from disk per transaction
This data item represents the amount of redo, in bytes generated per second during
this sample period.
The redo log buffer is a circular buffer in the SGA that holds information about
changes made to the database. This information is stored in redo entries. Redo
entries contain the information necessary to reconstruct, or redo, changes made to
the database by INSERT, UPDATE, DELETE, CREATE, ALTER or DROP operations. Redo
entries are used for database recovery, if necessary.
DeltaRedoSize / SecondsDescription
Data Source
where:
Statistics pertaining to the handling of changed data blocks
This class includes the following charts:
Statistics pertaining to the handling of changed data blocks
This data item represents the average number of redo blocks written to disk per redo write
operation during this sample period.
The redo log buffer is a circular buffer in the SGA that holds information about
changes made to the database. This information is stored in redo entries. Redo
entries contain the information necessary to reconstruct, or redo, changes made to
the database by INSERT, UPDATE, DELETE, CREATE, ALTER or DROP operations. Redo
entries are used for database recovery, if necessary.
The log writer processes (LGWR) is responsible for redo log buffer management; that
is, writing the redo log buffer to a redo log file on disk.
DeltaRedoBlocksWritten / DeltaRedoWritesDescription
Data Source
where:
This data item represents the average number of redo entries copied into
the redo log buffer per second during this sample period.
The redo log buffer is a circular buffer in the SGA that holds information about
changes made to the database. This information is stored in redo entries. Redo
entries contain the information necessary to reconstruct, or redo, changes made to
the database by INSERT, UPDATE, DELETE, CREATE, ALTER or DROP operations. Redo
entries are used for database recovery, if necessary.
DeltaRedoEntries / SecondsDescription
Data Source
where:
This data item represents the number of times per second when the active redo log file became full and the Oracle Server had to wait for disk space to be allocated for the redo log entries. This space is created by performing a log switch.
The redo log buffer is a circular buffer in the SGA that holds information about
changes made to the database. This information is stored in redo entries. Redo
entries contain the information necessary to reconstruct, or redo, changes made to
the database by INSERT, UPDATE, DELETE, CREATE, ALTER or DROP operations. Redo
entries are used for database recovery, if necessary.
The log writer processes (LGWR) is responsible for redo log buffer management; that
is, writing the redo log buffer to a redo log file on disk.
Small log files in relation to the size of the SGA or the commit rate of the workload
can cause problems. When the log switch occurs, the Oracle Server must ensure that
all committed dirty buffers are written to disk before switching to a new log file.
If you have a large SGA full of dirty buffers and small redo log files, a log switch
must wait for the database writer process (DBWR) to write dirty buffers to disk
before continuing. This can decrease throughput.
DeltaRedoLogSpaceRequests / SecondsDescription
Data Source
where:
This data item represents the number of times a change was written out to
disk, per second during this sample period, as a result of a COMMIT. When a user issues a COMMIT statement, the log writer process (LGWR) puts a commit record in the redo log buffer and writes it to disk immediately, along with the transaction's redo entries.
DeltaRedoLogSpaceRequests / SecondsDescription
Data Source
where:
This data item represents the average number of blocks written to the redo log files per
second during this sample period.
The redo log buffer is a circular buffer in the SGA that holds information about
changes made to the database. This information is stored in redo entries. Redo
entries contain the information necessary to reconstruct, or redo, changes made to
the database by INSERT, UPDATE, DELETE, CREATE, ALTER or DROP operations. Redo
entries are used for database recovery, if necessary.
The log writer processes (LGWR) is responsible for redo log buffer management; that
is, writing the redo log buffer to a redo log file on disk.
DeltaBlocksWritten / SecondsDescription
Data Source
where:
This data item represents the number redo write operations per second during this sample period.
The redo log buffer is a circular buffer in the SGA that holds information about
changes made to the database. This information is stored in redo entries. Redo
entries contain the information necessary to reconstruct, or redo, changes made to
the database by INSERT, UPDATE, DELETE, CREATE, ALTER or DROP operations. Redo
entries are used for database recovery, if necessary.
The log writer processes (LGWR) is responsible for redo log buffer management; that
is, writing the redo log buffer to a redo log file on disk.
DeltaRedoWrites / SecondsDescription
Data Source
where:
This data item represents the amount of redo, in bytes generated per second during
this sample period.
The redo log buffer is a circular buffer in the SGA that holds information about
changes made to the database. This information is stored in redo entries. Redo
entries contain the information necessary to reconstruct, or redo, changes made to
the database by INSERT, UPDATE, DELETE, CREATE, ALTER or DROP operations. Redo
entries are used for database recovery, if necessary.
DeltaRedoSize / SecondsDescription
Data Source
where:
This data item represents number of times processes need to wait for redo allocation.
select value from v$sysstat where name='redo buffer allocation retries'
Description
Data Source
SQL statement use and misuse
SQL statement use and misuse
Session statistics for sessions waiting for a particular event
This class includes the following charts:
Session statistics for sessions waiting for a particular event
This data item represents the total number of parse calls (hard and soft) for
this session.
select s.value from v$sesstat s, v$statname n
where n.name='parse count (total)' and n.statistic#=s.statistic#
Description
Data Source
This data item represents the total number of calls (user and recursive) that
executed SQL statements for this session.
UserCalls + RecursiveCallsDescription
Data Source
where:
This data item represents the number of hits in the session cursor cache during this
sample period.
DeltaCursorCacheHitsDescription
Data Source
where:
This data item represents the total number of cursors cached during this
sample period. This value is only incremented if SESSION_CACHED_CURSORS is
greater than 0.
DeltaCursorCacheHitsDescription
Data Source
where:
This data item represents the percentage of CPU time being used by this session.
(DeltaCpuTime / DeltaTotalCpuTime) * 100Description
Data Source
where:
This data item represents the percentage of this session's CPU time that
is being used for parsing (hard and soft). Parse time CPU can be a strong
indication that an application has not been well tuned. High parse time
CPU usually indicates that the application may be spending too much time
opening and closing cursors or is not using bind variables.
(DeltaParseTime / DeltaCpuTime) * 100Description
Data Source
where:
If excessive parsing is taking place, examine SQL statements. Look for statements that can be modified to optimize shared SQL pool memory use and avoid unnecessary statement reparsing. This type of problem is commonly caused when similar SQL statements are written which differ in space, case, or some combination of the two. You may also consider using bind variables rather than explicitly specified constants in your statements whenever possible.
Sometimes, to execute a SQL statement issued by a user, the Oracle Server must issue
additional statements. Such statements are called recursive calls or recursive SQL statements.
For example, if you insert a row into a table that does not have enough space to hold that
row, the Oracle Server makes recursive calls to allocate the space dynamically if dictionary
managed tablespaces are being used. Recursive calls are also generated:
Description
This data item represents the percentage of this session's CPU time that is being used for recursive calls.
(DeltaRecursiveTime / DeltaCpuTime) * 100
where:
If the Oracle Server appears to be making excessive recursive calls while your application is running, determine what activity is causing these recursive calls. If you determine that the recursive calls are caused by dynamic extension, either reduce the frequency of extension by allocating larger extents, or, if you are using Oracle 8i, consider taking advantage of locally managed tablespaces.
This data item represents the percentage of time spent looking for buffers, fetching rows
or index keys, etc. Generally, "other" CPU should represent the highest percentage of
CPU time out of the total CPU time used.
((DeltaCpuTime - (DeltaParseTime + DeltaRecursiveTime)) / DeltaCpuTime) * 100Description
Data Source
where:
It may be possible to reduce "other" CPU time by investigating SQL statements that have a high number of buffer_gets and/or a high number of physical reads.
This data item represents the number of blocks obtained in CURRENT mode per second
during this sample period.
DeltaBlockGets / SecondsDescription
Data Source
where:
This data item represents the number of times a consistent read was requested for a block per second
during this sample period.
DeltaBlockGets / SecondsDescription
Data Source
where:
This data item represents the number of data blocks read from disk per second
during this sample period.
DeltaPhysicalReads / SecondsDescription
Data Source
where:
This data item represents the percentage of reads that were directly read from disk,
bypassing the buffer cache, during this sample period. For example, in high bandwidth,
data-intensive operations such as parallel query, reads of disk blocks bypass the
buffer cache to maximize transfer rates and to prevent the premature aging of
shared data blocks resident in the buffer cache.
DeltaDirectReads / DeltaPhysicalReadsDescription
Data Source
where:
This data item represents the number of times changes were made to blocks in the SGA as
part of an update or delete. These are changes that are generating redo log entries and
hence will be permanent changes to the database if the transaction is committed.
This statistic is a rough indication of the total database work. This statistic indicates
the rate at which buffers are being dirtied.
DeltaBlockChanges / SecondsDescription
Data Source
where:
This data item represents the number of times changes were made to blocks in the SGA as
part of an update or delete. Workloads that produce a great deal of consistent changes
can consume a great deal of resources.
DeltaConsistentChanges / SecondsDescription
Data Source
where:
This data item represents the number of sorts going to disk per second
for this sample period.
For best performance, most sorts should occur in memory, because sorts to disks are
expensive to perform. If the sort area is too small, extra sort runs will be
required during the sort operation. This increases CPU and I/O resource consumption.
DeltaDiskSorts / SecondsDescription
Data Source
where:
If excessive sorts are taking place on disk, consider increasing the SORT_AREA_SIZE initialization parameter to increase the size of the sort area. A larger sort area will allow the Oracle Server to keep sorts in memory, reducing the number of I/O operations required to do an equivalent amount of work using the current sort area size.
This data item represents the number of sorts performed in memory as opposed to on
disk per second for this sample period.
For best performance, most sorts should occur in memory, because sorts to disks are
expensive to perform. If the sort area is too small, extra sort runs will be
required during the sort operation. This increases CPU and I/O resource consumption.
DeltaDiskSorts / SecondsDescription
Data Source
where:
If excessive sorts are taking place on disk, consider increasing the SORT_AREA_SIZE initialization parameter to increase the size of the sort area. A larger sort area will allow the Oracle Server to keep sorts in memory, reducing the number of I/O operations required to do an equivalent amount of work using the current sort area size.
This data item represents the average number of rows sorted per second during
this sample period.
DeltaSortRows / SecondsDescription
Data Source
where:
This data item represents the percentage of sorts performed on disk as opposed to in
memory for this sample period.
For best performance, most sorts should occur in memory, because sorts to disks are
expensive to perform. If the sort area is too small, extra sort runs will be
required during the sort operation. This increases CPU and I/O resource consumption.
DeltaDiskSorts / DeltaMemorySortsDescription
Data Source
where:
If excessive sorts are taking place on disk, consider increasing the SORT_AREA_SIZE initialization parameter to increase the size of the sort area. A larger sort area will allow the Oracle Server to keep sorts in memory, reducing the number of I/O operations required to do an equivalent amount of work using the current sort area size.
Percentage of sorts performed to disk
This data item represents the number of parses per second during this sample
period.
DeltaParseCount / SecondDescription
Data Source
where:
If there appears to be excessive time spent parsing, evaluate SQL statements to determine which can be modified to optimize shared SQL pool memory use and avoid unnecessary statement reparsing. This type of problem is commonly caused when similar SQL statements are written which differ in space, case, or some combination of the two. You may also consider using bind variables rather than explicitly specified constants in your statements whenever possible.
This data item represents the number of parse calls (hard and soft) per second
during this sample period.
DeltaParseCount / SecondDescription
Data Source
where:
This data item represents the number of parse calls (hard and soft) per second
during this sample period.
DeltaParseElapsedTimeDescription
Data Source
where:
This data item represents the current UGA size for this session.
select s.value from v$sesstat s, v$statname n
where n.name='session uga memory' and n.statistic#=s.statistic#'
between sample end and start
Description
Data Source
This data item represents the average time waited per parse, in seconds,
during this sample period.
((DeltaParseElapsedTime - DeltaParseCpuTime) / Seconds) / DeltaParseCountDescription
Data Source
where:
This data item represents the number of statement executions (user and recursive)
per second during this sample period.
DeltaExecutes / SecondsDescription
Data Source
where:
Session serial number
Statistics that show the health of the Database Writer process
This class includes the following charts:
Statistics that show the health of the Database Writer process
This data item represents the number of times DBWn was requested to make free
buffers per second during this sample period.
The database writer process (DBWn) writes the contents of buffers to datafiles.
The DBWn processes are responsible for writing modified (dirty) buffers
in the database buffer cache to disk.
When a buffer in the database buffer cache is modified, it is marked "dirty".
The primary job of the DBWn process is to keep the buffer cache "clean" by
writing dirty buffers to disk. As buffers are dirtied by user processes, the
number of free buffers diminishes. If the number of free buffers drops too low,
user processes that must read blocks from disk into the cache are not able to
find free buffers. DBWn manages the buffer cache so that user processes can
always find free buffers.
When the Oracle Server process cannot find a clean reusable buffer after
scanning a threshold of buffers, it signals DBWn to write. When this request to
make free buffers is received, DBWn writes the least recently used (LRU) buffers
to disk. By writing the least recently used dirty buffers to disk, DBWn improves
the performance of finding free buffers while keeping recently used buffers
resident in memory. For example, blocks that are part of frequently accessed
small tables or indexes are kept in the cache so that they do not need to be read
in again from disk. The LRU algorithm keeps more frequently accessed blocks in
the buffer cache so that when a buffer is written to disk, it is unlikely to
contain data that may be useful soon.
In addition, DBWn periodically writes buffers to advance the checkpoint, which is
the position in the redo log from which crash or instance recovery would need to
begin.
DeltaMakeFreeRequests / SecondsDescription
Data Source
where:
Starting with Oracle 8.0, the DB_WRITER_PROCESSES parameter provides a means of alleviating I/O bottlenecks at the DBWn process. The DB_WRITER_PROCESSES parameter specifies the number of DBWn (DBW0 through DBW9) processes to start for an instance. Each is a completely separate process that performs both the "gather" phase as well as the "write" phase. Each additional DBWn process writes buffers from its own private portion of the database buffer cache. Thus, from a throughout standpoint, multiple DBWn process should be capable of delivering more I/O than one DBWn process with multiple I/O slaves. However, using the DB_WRITER_PROCESSES parameter is only beneficial on multiprocessor machines.
Another way is to start DBWn I/O slave processes to spread the load of writing database buffers across multiple slave processes, with a single master DBWn process doing the data "gathering" and multiple slaves processes doing the writing. Since I/O slaves do not write serially, even when there is only one CPU, it can be useful to have multiple I/O slaves on single CPU systems.
In general, DBWR_IO_SLAVES or DB_WRITER_PROCESSES should not be used unless there is clear evidence of a database writer bottleneck.
This data item represents the number of buffers, per second during this sample period,
that DBWn found to be clean when requested to make free buffers.
The database writer process (DBWn) writes the contents of buffers to datafiles.
The DBWn processes are responsible for writing modified (dirty) buffers
in the database buffer cache to disk.
When a buffer in the database buffer cache is modified, it is marked "dirty".
The primary job of the DBWn process is to keep the buffer cache "clean" by
writing dirty buffers to disk. As buffers are dirtied by user processes, the
number of free buffers diminishes. If the number of free buffers drops too low,
user processes that must read blocks from disk into the cache are not able to
find free buffers. DBWn manages the buffer cache so that user processes can
always find free buffers.
When the Oracle Server process cannot find a clean reusable buffer after
scanning a threshold of buffers, it signals DBWn to write. When this request to
make free buffers is received, DBWn writes the least recently used (LRU) buffers
to disk. By writing the least recently used dirty buffers to disk, DBWn improves
the performance of finding free buffers while keeping recently used buffers
resident in memory. For example, blocks that are part of frequently accessed
small tables or indexes are kept in the cache so that they do not need to be read
in again from disk. The LRU algorithm keeps more frequently accessed blocks in
the buffer cache so that when a buffer is written to disk, it is unlikely to
contain data that may be useful soon.
In addition, DBWn periodically writes buffers to advance the checkpoint, which is
the position in the redo log from which crash or instance recovery would need to
begin.
DeltaFreeBuffers / SecondsDescription
Data Source
where:
This data item represents the number of times, per second during this sample period,
that DBWn scanned LRU queue looking for buffers to write. This value also includes
times when the scan is to fill a batch being written for another purpose such as
a checkpoint.
The database writer process (DBWn) writes the contents of buffers to datafiles.
The DBWn processes are responsible for writing modified (dirty) buffers
in the database buffer cache to disk.
When a buffer in the database buffer cache is modified, it is marked "dirty".
The primary job of the DBWn process is to keep the buffer cache "clean" by
writing dirty buffers to disk. As buffers are dirtied by user processes, the
number of free buffers diminishes. If the number of free buffers drops too low,
user processes that must read blocks from disk into the cache are not able to
find free buffers. DBWn manages the buffer cache so that user processes can
always find free buffers.
When the Oracle Server process cannot find a clean reusable buffer after
scanning a threshold of buffers, it signals DBWn to write. When this request to
make free buffers is received, DBWn writes the least recently used (LRU) buffers
to disk. By writing the least recently used dirty buffers to disk, DBWn improves
the performance of finding free buffers while keeping recently used buffers
resident in memory. For example, blocks that are part of frequently accessed
small tables or indexes are kept in the cache so that they do not need to be read
in again from disk. The LRU algorithm keeps more frequently accessed blocks in
the buffer cache so that when a buffer is written to disk, it is unlikely to
contain data that may be useful soon.
In addition, DBWn periodically writes buffers to advance the checkpoint, which is
the position in the redo log from which crash or instance recovery would need to
begin.
DeltaLRUScans / SecondsDescription
Data Source
where:
This data item represents the summed scan depth, per second during
this sample period, for every time DBWn scanned the LRU for
dirty blocks.
The database writer process (DBWn) writes the contents of buffers to datafiles.
The DBWn processes are responsible for writing modified (dirty) buffers
in the database buffer cache to disk.
When a buffer in the database buffer cache is modified, it is marked "dirty".
The primary job of the DBWn process is to keep the buffer cache "clean" by
writing dirty buffers to disk. As buffers are dirtied by user processes, the
number of free buffers diminishes. If the number of free buffers drops too low,
user processes that must read blocks from disk into the cache are not able to
find free buffers. DBWn manages the buffer cache so that user processes can
always find free buffers.
When the Oracle Server process cannot find a clean reusable buffer after
scanning a threshold of buffers, it signals DBWn to write. When this request to
make free buffers is received, DBWn writes the least recently used (LRU) buffers
to disk. By writing the least recently used dirty buffers to disk, DBWn improves
the performance of finding free buffers while keeping recently used buffers
resident in memory. For example, blocks that are part of frequently accessed
small tables or indexes are kept in the cache so that they do not need to be read
in again from disk. The LRU algorithm keeps more frequently accessed blocks in
the buffer cache so that when a buffer is written to disk, it is unlikely to
contain data that may be useful soon.
In addition, DBWn periodically writes buffers to advance the checkpoint, which is
the position in the redo log from which crash or instance recovery would need to
begin.
DeltaSumScanDepth / SecondsDescription
Data Source
where:
This data item represents the number of buffers (clean and dirty), per
second during this sample period, that were examined by DBWn when DBWn scanned
the LRU for dirty blocks.
The database writer process (DBWn) writes the contents of buffers to datafiles.
The DBWn processes are responsible for writing modified (dirty) buffers
in the database buffer cache to disk.
When a buffer in the database buffer cache is modified, it is marked "dirty".
The primary job of the DBWn process is to keep the buffer cache "clean" by
writing dirty buffers to disk. As buffers are dirtied by user processes, the
number of free buffers diminishes. If the number of free buffers drops too low,
user processes that must read blocks from disk into the cache are not able to
find free buffers. DBWn manages the buffer cache so that user processes can
always find free buffers.
When the Oracle Server process cannot find a clean reusable buffer after
scanning a threshold of buffers, it signals DBWn to write. When this request to
make free buffers is received, DBWn writes the least recently used (LRU) buffers
to disk. By writing the least recently used dirty buffers to disk, DBWn improves
the performance of finding free buffers while keeping recently used buffers
resident in memory. For example, blocks that are part of frequently accessed
small tables or indexes are kept in the cache so that they do not need to be read
in again from disk. The LRU algorithm keeps more frequently accessed blocks in
the buffer cache so that when a buffer is written to disk, it is unlikely to
contain data that may be useful soon.
In addition, DBWn periodically writes buffers to advance the checkpoint, which is
the position in the redo log from which crash or instance recovery would need to
begin.
DeltaSumScanDepth / SecondsDescription
Data Source
where:
This data item represents the number of times, per second during this sample period,
DBWn was asked to scan the cache and write all blocks marked for a checkpoint.
The database writer process (DBWn) writes the contents of buffers to datafiles.
The DBWn processes are responsible for writing modified (dirty) buffers
in the database buffer cache to disk.
When a buffer in the database buffer cache is modified, it is marked "dirty".
The primary job of the DBWn process is to keep the buffer cache "clean" by
writing dirty buffers to disk. As buffers are dirtied by user processes, the
number of free buffers diminishes. If the number of free buffers drops too low,
user processes that must read blocks from disk into the cache are not able to
find free buffers. DBWn manages the buffer cache so that user processes can
always find free buffers.
When the Oracle Server process cannot find a clean reusable buffer after
scanning a threshold of buffers, it signals DBWn to write. When this request to
make free buffers is received, DBWn writes the least recently used (LRU) buffers
to disk. By writing the least recently used dirty buffers to disk, DBWn improves
the performance of finding free buffers while keeping recently used buffers
resident in memory. For example, blocks that are part of frequently accessed
small tables or indexes are kept in the cache so that they do not need to be read
in again from disk. The LRU algorithm keeps more frequently accessed blocks in
the buffer cache so that when a buffer is written to disk, it is unlikely to
contain data that may be useful soon.
In addition, DBWn periodically writes buffers to advance the checkpoint, which is
the position in the redo log from which crash or instance recovery would need to
begin.
DeltaCheckpoints / SecondsDescription
Data Source
where:
Number of blocks currently within the SGA
This class includes the following charts:
Number of blocks currently within the SGA
Number of blocks
Number of blocks with different file# or block#
Initialization parameters for the instance
This class includes the following charts:
Initialization parameters for the instance
DB_BLOCK_BUFFERS specifies the number of database buffers available in the buffer
cache. It is one of the primary parameters which contribute to the total memory
requirements of the SGA on the instance.
The DB_BLOCK_BUFFERS parameter, together with the DB_BLOCK_SIZE parameter, determines
the total size of the buffer cache. Effective use of the buffer cache can greatly
reduce the I/O load on the database. Since DB_BLOCK_SIZE can be specified only when
the database is first created, use DB_BLOCK_BUFFERS to control the size of the buffer
cache.
This parameter affects the probability that a data block will be pinged when Parallel
Server is enabled: the more buffers, the more chance of pings.
select value from v$parameter where name='db_block_buffers'
Description
Data Source
BUFFER_POOL_KEEP is used to define the KEEP buffer pool. The KEEP buffer pool is
used to maintain objects in the buffer cache. Two attributes are specified for
the KEEP pool: the number of buffers in the buffer pool and the number of LRU latches
allocated to the buffer pool.
The goal of the KEEP buffer pool is to retain objects in memory, thus avoiding I/O
operations. The size of the KEEP buffer pool therefore depends on the objects that
you wish to keep in the buffer cache. You can compute an approximate size for the
KEEP buffer pool by adding together the sizes of all objects dedicated to this pool.
A good candidate for a segment to put into the KEEP pool is a segment that is smaller
than 10% of the size of the DEFAULT buffer pool and has incurred at least 1% of the
total I/Os in the system.
select value from v$parameter where name='buffer_pool_keep'
Description
Data Source
DB_BLOCK_LRU_LATCHES specifies the upper bound of the number of LRU latch sets.
Set this parameter to a value equal to the desired number of LRU latch sets. The
Oracle Server decides whether to use this value or reduce it based on a number
of internal checks. If the parameter is not set, Oracle calculates a value for
the number of sets. The value calculated by the Oracle Server is
usually adequate. Increase this only if misses are higher than 3% in V$LATCH.
select value from v$parameter where name='db_block_lru_latches'
Description
Data Source
BUFFER_POOL_RECYCLE is used to define the RECYCLE buffer pool. The RECYCLE buffer pool is
used to prevent objects from consuming unnecessary space in the cache. Two attributes
are specified for the RECYCLE pool: the number of buffers in the buffer pool and the
number of LRU latches allocated to the buffer pool.
The goal of the RECYCLE buffer pool is to eliminate blocks from memory as soon as they are
no longer needed. If an application accesses the blocks of a very large object in a random
fashion, there is little chance of reusing a block stored in the buffer pool before it is
aged out. This is true regardless of the size of the buffer pool. Because of this, the
object's blocks should not be cached; those cache buffers can be allocated to other objects.
However, be careful not to discard blocks from memory too quickly. If the buffer pool is
too small, blocks may age out of the cache before the transaction or SQL statement has
completed evaluation.
A good candidate for a segment to put into the RECYCLE buffer pool is a segment
that is at least twice the size of the DEFAULT buffer pool and has incurred at least a
few percent of the total I/Os in the system.
select value from v$parameter where name='buffer_pool_recycle'
Description
Data Source
LOG_BUFFER specifies the size, in bytes, of the redo log buffer. The redo log buffer
is a circular buffer in the SGA that holds information about changes made to the
database. This information is stored in redo entries. Redo entries contain the
information necessary to reconstruct, or redo, changes made to the database by
INSERT, UPDATE, DELETE, CREATE, ALTER or DROP operations. Redo entries are
used for database recovery, if necessary.
In general, larger LOG_BUFFER values reduce redo log file I/O, particularly if
transactions are long or numerous.
select value from v$parameter where name='log_buffer'
Description
Data Source
CURSOR_SPACE_FOR_TIME specifies whether a shared SQL area can be deallocated from
the library cache to make room for a new SQL satement.
If this parameter is false, a shared SQL area can be deallocated from the library
cache regardless of whether application cursors associated with its SQL statement
are open. In this case, the Oracle Server must verify that a shared SQL area
containing the statement is in the library cache.
If this parameter is true, a shared SQL area can be deallocated only when all
application cursors associated with its statement are closed. In this case, the
Oracle Server need not verify that a shared SQL area is in the cache,
becaue the shared SQL area can never be deallocated while an application cursor
associated with it is open.
Setting the value of this parameter to true saves the Oracle Server a small amount
of time and may slightly improve the performance of execution calls.
However, it should not be set to true if you have found library cache misses on
execution calls. Such library cache misses indicate that the shared pool is not
large enough to hold the shared SQL areas of all concurrently open cursors. If
the value is true and the shared pool has no space for a new SQL statement, the
statement cannot be parsed and the Oracle Server returns an error saying that
there is no more shared memory. If the value is false and there is no space for
a new statement, the Oracle Server deallocates an existing shared SQL area.
Although deallocating a shared SQL area results in a library cache miss later,
it is preferable to an error halting the application because a SQL statement
could not be parsed.
Furthermore, do not set CURSOR_SPACE_FOR_TIME to true if the amount of memory
available to each user for private SQL area is scarce. This value also prevents
the deallocation of private SQL areas associated with open cursors. If the
private SQL areas for all concurrently open cursors fills the user's available
memroy so that there is no space to allocate a private SQL area for a new
SQL statement, the statement cannot be parsed and the Oracle Server returns an
error indicating there is not enough memory.
select value from v$parameter where name='cursor_space_for_time'
Description
Data Source
If an application repeatedly issues parse calls on the same set of SQL
statements, the reopening of the session cursors can affect system
performance. Session cursors can be stored in a session cursor cache.
This feature can be particularly useful for applications designed using
Oracle Forms, because switching from one form to another closes all
session cursors associated with the first form.
The Oracle Server uses the shared SQL area to determine whether more than
three parse requests have been issued on a given statement. If so, the Oracle
Server assumes the session cursor associated with the statement should be
cached and moves the cursor into the session cursor cache. Subsequent requests
to parse that SQL statement by the same session will then find the cursor in the
session cursor cache.
To enable caching of session cursors, use SESSION_CACHED_CURSORS to specify the
maximum number of session cursors kept in the cache. An Least Recently Used (LRU)
algorithm removes entries in the session cursor cache to make room for new
entries when needed.
To determine whether the session cursor cache is sufficiently large for your instance,
you can examine the session statistic "session cursor cache hits" in the V$SESSTAT
view. This statistic counts the number of times a parse call found a cursor in the
session cursor cache. If this statistic is a relatively low percentage of the total
parse call count for the session, you should consider setting SESSION_CACHED_CURSORS
to a larger value.
select value from v$parameter where name='session_cached_cursors'
Description
Data Source
OPEN_CURSORS defines the maximum number of open cursors a session can have
at once. If a session reaches this limit, a MAX OPEN CURSORS EXCEEDED error
message is returned.
OPEN_CURSORS also determines the size of the PL/SQL cursor cache for the instance.
PL/SQL keeps a cache of open cursors that were executed from within PL/SQL. If
the cursor is still in the cache the next time the users say to execute it, then it
can be directly used. Otherwise, it must be reparsed, etc. The size of the PL/SQL
cursor cache is equal to OPEN_CURSORS minus the number of cursors the user has
opened directly.
select value from v$parameter where name='open_cursors'
Description
Data Source
TIMED_STATISTICS enables the collection of timed statistics.
select value from v$parameter where name='timed_statistics'
Description
Data Source
SORT_AREA_SIZE defines the size, in bytes, of memory that is available to a user
process during sorting. It is allocated on a per user basis from available memory.
When a user performs a database operation which requires a sort, the information
to be sorted is loaded into the user's PGA memory. When the total amount of
data to be sorted is less than SORT_AREA_SIZE, the sort is performed completely
in memory.
If the total amount of data exceeds SORT_AREA_SIZE, a disk sort is performed.
Disk sorts process SORT_AREA_SIZE subsets of the data to be sorted in sort
runs. Each sort run is written to disk as a temporary segment.
select value from v$parameter where name='sort_area_size'
Description
Data Source
SORT_AREA_RETAINED_SIZE determines the size, in bytes, to which the Oracle Server will
reduce the sort area memory allocation after the final sort run completes. The retained
size parameter controls the size of the read buffer which is used to maintain a
portion of the sorted information in memory. If a process needs to perform multiple,
concurrent sorts, each sort is given a memory allocation of SORT_AREA_RETAINED_SIZE.
The Oracle Server uses an amount of memory determined by SORT_AREA_SIZE during sort
processing. Once all the information has been sorted and the first fetch has
completed, if the retained size is less than the sort area size, the Oracle Server
merges all the sort runs into a single run and sort memory is reduced to the
retained size.
select value from v$parameter where name='sort_area_retained_size'
Description
Data Source
Overview of free space in all tablespaces
This class includes the following charts:
Overview of free space in all tablespaces
This data item represents the number of datafiles in this tablespace.
select count(*) from dba_data_files where tablespace_name='name'
Description
Data Source
This data item represents the total size, in blocks, of this tablespace.
select sum(blocks) from dba_data_files where tablespace_name='name'
Description
Data Source
This data item represents the total amount of free space, in blocks, in this tablespace. As
segments within a tablespace grow, the free space within that tablespace decreases. Should
free space become insufficient, the creation of new segments or the extension of existing
segments will fail.
select sum(blocks) from dba_free_space where tablespace_name='name'
Description
Data Source
If free space is insufficient, increase the size of the tablespace by enabling automatic extension for one of its datafiles, manually resizing one of its datafiles, or adding a new datafile.
This data item represents the total amount of free space, in kilobytes, in this tablespace. As segments within a tablespace grow, the free space within that tablespace decreases. Should free space become insufficient, the creation of new segments or the extension of existing segments will fail.
select sum(bytes)/1024 from dba_free_space where tablespace_name='name'
Description
Data Source
If free space is insufficient, increase the size of the tablespace by enabling automatic extension for one of its datafiles, manually resizing one of its datafiles, or adding a new datafile.
This data item represents the percentage of free space, in blocks, in this tablespace. As
segments within a tablespace grow, the free space within that tablespace decreases. Should
free space become insufficient, the creation of new segments or the extension of existing
segments will fail.
(FreeBlocks / TotalBlocks) * 100Description
Data Source
where:
If free space is insufficient, increase the size of the tablespace by enabling automatic extension for one of its datafiles, manually resizing one of its datafiles, or adding a new datafile.
This data item represents the total number of blocks in this tablespace that are currently
being used by all users.
select sum(blocks) from dba_ts_quotas where tablespace_name='name'
Description
Data Source
This data item indicates this tablespace's status; for example, if the tablespace is
online, offline or read-only.
select status from dba_tablespaces where tablespace_name='name'
Description
Data Source
This data item represents the number of free extents in this tablespace.
select count(*) from dba_free_space where tablespace_name='name'
Description
Data Source
This data item represents the total number of used blocks in this tablespace.
(TotalBlocks - FreeBlocks)Description
Data Source
where:
Shows miss percentage of dictionary cache.
This class includes the following charts:
Shows miss percentage of dictionary cache.
This data item represents dictionary cache efficiency as measured by the percentage
of requests against the dictionary data that were not already in memory. It is
important to determine whether the misses on the data dictionary are actually affecting
the performance of the Oracle Server.
The shared pool is an area in the SGA that contains the library cache of shared
SQL requests, the dictionary cache and the other cache structures that are specific
to a particular instance configuration.
Misses on the data dictionary cache are to be expected in some cases. Upon instance
startup, the data dictionary cache contains no data, so any SQL statement issued is
likely to result in cache misses. As more data is read into the cache, the likelihood
of cache misses should decrease. Eventually the database should reach a "steady state"
in which the most frequently used dictionary data is in the cache. At this point, very
few cache misses should occur. To tune the cache, examine its activity only after your
application has been running.
(Misses / Gets) * 100Description
Data Source
where:
If the percentage of misses exceeds 10% to 15%, consider increasing SHARED_POOL_SIZE to decrease the frequency in which dictionary data is being flushed from the shared pool to make room for new. To increase the memory available to the cache, increase the value of the initialization parameter SHARED_POOL_SIZE.
This data item represents the total number of requests for information
from data dictionary objects per second for this sample period.
DeltaGets / SecondsDescription
Data Source
where:
This data item represents the total number of requests, per second for
this sample period, for information from data dictionary objects that
resulted in a cache miss.
DeltaMisses / SecondsDescription
Data Source
where:
Detailed data dictionary statistics
This class includes the following charts:
Detailed data dictionary statistics
This data item represents the total number of entries in the data dictonary cache.
select count from v$rowcache
Description
Data Source
This data item represents the total number of requests, per second for
this sample period, for information from data dictionary objects that
resulted in a cache miss.
DeltaMisses / SecondsDescription
Data Source
where:
This data item represents the total number of entries in the data dictonary cache
that contain valid data.
select usage from v$rowcache
Description
Data Source
This data item represents the total number of requests for information
from data dictionary objects per second for this sample period.
DeltaGets / SecondsDescription
Data Source
where:
This data item represents the number of scan requests per second during this
sample period.
DeltaScans / SecondsDescription
Data Source
where:
This data item represents the number of scan requests, per second during this
sample period, that failed to find data in cache.
DeltaScanMisses / SecondsDescription
Data Source
where:
This data item represents the number of times, per second during this
sample period, the list was completely scanned.
DeltaScanCompletes / SecondsDescription
Data Source
where:
This data item represents the number of inserts, updates and deletions
per second for this sample period.
DeltaModifications / SecondsDescription
Data Source
where:
This data item represents the number of times data was flushed to disk per second
for this sample period.
DeltaFlushes / SecondsDescription
Data Source
where:
This data item represents the number of DLM requests per second
for this sample period.
DeltaRequests / SecondsDescription
Data Source
where:
This data item represents the number of DLM conflicts per second
for this sample period.
DeltaConflicts / SecondsDescription
Data Source
where:
This data item represents the number of DLM releases per second
for this sample period.
DeltaReleases / SecondsDescription
Data Source
where:
SQL currently waiting on an event
This class includes the following charts:
SQL currently waiting on an event
This data item contains the first eighty characters of the SQL text for the
current cursor.
select sql_text from v$sqlarea
Description
Data Source
This data item represents the number of physical reads. In other words, its value is
the number of read requests that were not satisfied by buffers in the cache and
resulted in access to datafiles on disk.
select disk_reads from v$sqlarea
Description
Data Source
This data item represents the number of read requests that were satisfied by buffers
in the cache. In other words, its value is the total number of blocks read by all executions of
this statement.
select buffer_gets from v$sqlarea
Description
Data Source
This data item represents the number of times this statement was executed per second
during this sample period.
DeltaExecutions / SecondsDescription
Data Source
where:
This data item represents the total number of times this statement was parsed per second
during this sample period.
DeltaParseCalls / SecondsDescription
Data Source
where:
This data item represents the number of physical reads performed by this statement per
second during the sample period. In other words, its value is the number of read requests that were not satisfied by buffers in the cache and resulted in access to datafiles on disk.
DeltaPhysicalReads / SecondsDescription
Data Source
where:
This data item represents the number of read requests for this statement that were
satisfied by buffers in the cache per second during this sample period.
DeltaBufferGets / SecondsDescription
Data Source
where:
This data item represents the total number of rows processed to complete this statement
per second during the sample period.
DeltaRowsProcessed / SecondsDescription
Data Source
where:
This data item represents the sum of all shareable memory, in bytes, used by this
statement.
select sharable_mem from v$sqlarea
Description
Data Source
This data item represents the sum of all persistent memory, in bytes, used by this
statement.
select persistent_mem from v$sqlarea
Description
Data Source
This data item represents the sum of all memory, in bytes, currently in use by this
statement.
select runtime_mem from v$sqlarea
Description
Data Source
This data item represents the name of the application module that first executed
this statement. This name can be optionally set by using DMBS_APPLICATION_INFO.SET_MODULE.
select module from v$sqlarea
Description
Data Source
This data item represents the name of the action being performed by the application module that
first executed this statement. This name can be optionally set by using
DMBS_APPLICATION_INFO.SET_ACTION.
select action from v$sqlarea
Description
Data Source
This data item represents the percentage of total physical reads that were
attributed to this statement during the sample period.
DeltaPhysicalReads / DeltaTotalReadsDescription
Data Source
where:
This data item represents the percentage of total buffer gets that were
attributed to this statement during the sample period.
DeltaBufferGets / DeltaTotalGetsDescription
Data Source
where:
Rollback segment header access statistics.
This class includes the following charts:
Rollback segment header access statistics.
Contention for rollback segments is reflected by contention for buffers that contain
rollback segment blocks. This data item represents the percentage of times when there was no wait for accessing the rollback segment header. This value should be greater than 99%.
Rollback segments are portions of the database that record the actions of transactions
in case a transaction is rolled back. Rollback segments are used to provide read
consistency, support rollback transactions and recover a database.
Proper allocation of rollback segments make for optimal database performance. Using
a sufficient number of rollback segments distributes rollback segment contention
across many segments and improves performance.
((DeltaGets - DeltaWaits) / DeltaGets) * 100Description
Data Source
where:
To reduce contention for buffers containing rollback segment blocks, create additional rollback segments. The general guidelines for choosing how many rollback segments to allocate is based on the number and type of concurrently active transactions on your database. Allocate one rollback segment for each 10 concurrent OLTP (online transaction processing) transactions and one rollback segment for each concurrent batch job.
In addition, when creating a rollback segment, keep extents within a rollback the same size by specifying STORAGE parameters where NEXT=INITIAL.
It is also recommended that you set the MINEXTENTS parameter value to 20. Because rollback segments are logically regarded as a circular queue of extents, they are required to have MINEXTENTS value of at least 2. The probability that a rollback segment will require a new extent allocation depends on how likely the next extents are to contain active undo. The more extents the rollback segment has, the less likely that a rollback segment will require an extent allocation that could be avoided. Administrators should create rollback segments with many extents. Naturally, there is a point of diminishing returns. There is a rapid decline of a rollback segment's probability of extending as the number of extents increases. Beyond 20 extents, the incremental decrease in the segment's probability of extending fails to justify the cost of the additional extent.
The list of events being waited for by each active user
This class includes the following charts:
The list of events being waited for by each active user
This data item represents the amount of time, in seconds, that was spent waiting for
this event during this sample period.
DeltaWaitTimeDescription
Data Source
where:
This data item represents the number of times this event was waited for during
this sample period.
DeltaWaitsDescription
Data Source
where:
This data item represents the number of timeouts for this event for during
this sample period.
DeltaTimeoutsDescription
Data Source
where:
Users currently attached to the server and their statistics
This class includes the following charts:
Users currently attached to the server and their statistics
This data item represents the total number of parse calls (hard and soft) for
this session.
select s.value from v$sesstat s, v$statname n
where n.name='parse count (total)' and n.statistic#=s.statistic#
Description
Data Source
This data item represents the total number of calls (user and recursive) that
executed SQL statements for this session.
UserCalls + RecursiveCallsDescription
Data Source
where:
This data item represents the number of hits in the session cursor cache during this
sample period.
DeltaCursorCacheHitsDescription
Data Source
where:
This data item represents the total number of cursors cached during this
sample period. This value is only incremented if SESSION_CACHED_CURSORS is
greater than 0.
DeltaCursorCacheHitsDescription
Data Source
where:
This data item represents the percentage of CPU time being used by this session.
(DeltaCpuTime / DeltaTotalCpuTime) * 100Description
Data Source
where:
This data item represents the percentage of this session's CPU time that
is being used for parsing (hard and soft). Parse time CPU can be a strong
indication that an application has not been well tuned. High parse time
CPU usually indicates that the application may be spending too much time
opening and closing cursors or is not using bind variables.
(DeltaParseTime / DeltaCpuTime) * 100Description
Data Source
where:
If excessive parsing is taking place, examine SQL statements. Look for statements that can be modified to optimize shared SQL pool memory use and avoid unnecessary statement reparsing. This type of problem is commonly caused when similar SQL statements are written which differ in space, case, or some combination of the two. You may also consider using bind variables rather than explicitly specified constants in your statements whenever possible.
Sometimes, to execute a SQL statement issued by a user, the Oracle Server must issue
additional statements. Such statements are called recursive calls or recursive SQL statements.
For example, if you insert a row into a table that does not have enough space to hold that
row, the Oracle Server makes recursive calls to allocate the space dynamically if dictionary
managed tablespaces are being used. Recursive calls are also generated:
Description
This data item represents the percentage of this session's CPU time that is being used for recursive calls.
(DeltaRecursiveTime / DeltaCpuTime) * 100
where:
If the Oracle Server appears to be making excessive recursive calls while your application is running, determine what activity is causing these recursive calls. If you determine that the recursive calls are caused by dynamic extension, either reduce the frequency of extension by allocating larger extents, or, if you are using Oracle 8i, consider taking advantage of locally managed tablespaces.
This data item represents the percentage of time spent looking for buffers, fetching rows
or index keys, etc. Generally, "other" CPU should represent the highest percentage of CPU
time out of the total CPU time used.
((DeltaCpuTime - (DeltaParseTime + DeltaRecursiveTime)) / DeltaCpuTime) * 100Description
Data Source
where:
It may be possible to reduce "other" CPU time by investigating SQL statements that have a high number of buffer_gets and/or a high number of physical reads.
This data item represents the number of blocks obtained in CURRENT mode per second
during this sample period.
DeltaBlockGets / SecondsDescription
Data Source
where:
This data item represents the number of times a consistent read was requested for a block per second
during this sample period.
DeltaBlockGets / SecondsDescription
Data Source
where:
This data item represents the number of data blocks read from disk per second
during this sample period.
DeltaPhysicalReads / SecondsDescription
Data Source
where:
This data item represents the percentage of reads that were directly read from disk,
bypassing the buffer cache, during this sample period. For example, in high bandwidth,
data-intensive operations such as parallel query, reads of disk blocks bypass the
buffer cache to maximize transfer rates and to prevent the premature aging of
shared data blocks resident in the buffer cache.
DeltaDirectReads / DeltaPhysicalReadsDescription
Data Source
where:
This data item represents the number of times changes were made to blocks in the SGA as
part of an update or delete. These are changes that are generating redo log entries and
hence will be permanent changes to the database if the transaction is committed.
This statistic is a rough indication of the total database work. This statistic indicates
the rate at which buffers are being dirtied.
DeltaBlockChanges / SecondsDescription
Data Source
where:
This data item represents the number of times changes were made to blocks in the SGA as
part of an update or delete. Workloads that produce a great deal of consistent changes
can consume a great deal of resources.
DeltaConsistentChanges / SecondsDescription
Data Source
where:
This data item represents the number of sorts to disk as opposed to being performed
in memory per second for this sample period.
For best performance, most sorts should occur in memory, because sorts to disks are
expensive to perform. If the sort area is too small, extra sort runs will be
required during the sort operation. This increases CPU and I/O resource consumption.
DeltaDiskSorts / SecondsDescription
Data Source
where:
If excessive sorts are taking place on disk, consider increasing the SORT_AREA_SIZE initialization parameter to increase the size of the sort area. A larger sort area will allow the Oracle Server to keep sorts in memory, reducing the number of I/O operations required to do an equivalent amount of work using the current sort area size.
This data item represents the number of sorts performed in memory as opposed to on
disk per second for this sample period.
For best performance, most sorts should occur in memory, because sorts to disks are
expensive to perform. If the sort area is too small, extra sort runs will be
required during the sort operation. This increases CPU and I/O resource consumption.
DeltaMemorySorts / SecondsDescription
Data Source
where:
If excessive sorts are taking place on disk, consider increasing the SORT_AREA_SIZE initialization parameter to increase the size of the sort area. A larger sort area will allow the Oracle Server to keep sorts in memory, reducing the number of I/O operations required to do an equivalent amount of work using the current sort area size.
This data item represents the average number of rows sorted per second during
this sample period.
DeltaSortRows / SecondsDescription
Data Source
where:
This data item represents the percentage of sorts performed on disk as opposed to in
memory for this sample period.
For best performance, most sorts should occur in memory, because sorts to disks are
expensive to perform. If the sort area is too small, extra sort runs will be
required during the sort operation. This increases CPU and I/O resource consumption.
DeltaDiskSorts / DeltaMemorySortsDescription
Data Source
where:
If excessive sorts are taking place on disk, consider increasing the SORT_AREA_SIZE initialization parameter to increase the size of the sort area. A larger sort area will allow the Oracle Server to keep sorts in memory, reducing the number of I/O operations required to do an equivalent amount of work using the current sort area size.
Percentage of sorts performed to disk
This data item represents the number of parses per second during this sample
period.
DeltaParseCount / SecondDescription
Data Source
where:
If there appears to be excessive time spent parsing, evaluate SQL statements to determine which can be modified to optimize shared SQL pool memory use and avoid unnecessary statement reparsing. This type of problem is commonly caused when similar SQL statements are written which differ in space, case, or some combination of the two. You may also consider using bind variables rather than explicitly specified constants in your statements whenever possible.
This data item represents the number of parse calls (hard and soft) per second
during this sample period.
DeltaParseCount / SecondDescription
Data Source
where:
This data item represents the number of parse calls (hard and soft) per second
during this sample period.
DeltaParseElapsedTimeDescription
Data Source
where:
This data item represents the current UGA size for this session.
select s.value from v$sesstat s, v$statname n
where n.name='session uga memory' and n.statistic#=s.statistic#'
between sample end and start
Description
Data Source
This data item represents the average time waited per parse, in seconds,
during this sample period.
((DeltaParseElapsedTime - DeltaParseCpuTime) / Seconds) / DeltaParseCountDescription
Data Source
where:
This data item represents the number of statement executions (user and recursive)
per second during this sample period.
DeltaExecutes / SecondsDescription
Data Source
where:
Rollback segment header access statistics
This class includes the following charts:
Rollback segment header access statistics
This data item represents the number of rollback segment header gets
per second during this sample period.
DeltaGets / SecondsDescription
Data Source
where:
This data item represents the number of rollback segment header waits
per second during this sample period.
DeltaWaits / SecondsDescription
Data Source
where:
Rollback segments are portions of the database that record the actions of transactions
in case a transaction is rolled back. Rollback segments are used to provide read
consistency, support rollback transactions and recover a database.
Proper allocation of rollback segments make for optimal database performance. Using
a sufficient number of rollback segments distributes rollback segment contention
across many segments and improves performance.
Contention for rollback segments is reflected by contention for buffers that contain
rollback segment blocks. This data item represents the percentage of times when there
was no wait for accessing the rollback segment header. This value should be greater
than 99%.
((DeltaGets - DeltaWaits) / DeltaGets) * 100Description
Data Source
where:
To reduce contention for buffers containing rollback segment blocks, create additional rollback segments. The general guidelines for choosing how many rollback segments to allocate is based on the number and type of concurrently active transactions on your database. Allocate one rollback segment for each 10 concurrent OLTP (online transaction processing) transactions and one rollback segment for each concurrent batch job.
In addition, when creating a rollback segment, keep extents within a rollback the same size by specifying STORAGE parameters where NEXT=INITIAL.
It is also recommended that you set the MINEXTENTS parameter value to 20. Because rollback segments are logically regarded as a circular queue of extents, they are required to have MINEXTENTS value of at least 2. The probability that a rollback segment will require a new extent allocation depends on how likely the next extents are to contain active undo. The more extents the rollback segment has, the less likely that a rollback segment will require an extent allocation that could be avoided. Administrators should create rollback segments with many extents. Naturally, there is a point of diminishing returns. There is a rapid decline of a rollback segment's probability of extending as the number of extents increases. It has been determined that beyond 20 extents, the incremental decrease in the segment's probability of extending fails to justify the cost of the additional extent.
This data item represents the total number of active transactions.
select xacts from v$rollstat
Description
Data Source
This data item represents the number of times, per second during this sample period,
extents were freed from the rollback segment.
DeltaShrinks / SecondsDescription
Data Source
where:
The OPTIMAL parameter specifies the optimal size for a rollback segment. The value for this parameter should be carefully chosen according to the kinds of transactions that the system runs to avoid frequent shrinks and extensions. For a system that executes long-running transactions or long queries, OPTIMAL should be large. OPTIMAL should be smaller for a system that mainly executes short transactions and short queries.
Assuming an instance has equally sized rollback segments with comparably sized extents, the OPTIMAL parameter for a given rollback segment should be set slightly higher than the average number of bytes in active extents in the rollback segment.
Furthermore, OPTIMAL should not be set to a value less than the number of bytes required for MINEXTENTS extents.
If the number of shrinks is greater than 1% of the total number of rollback segment uses (gets), shrinks may be happening too frequent. In this case, you may consider increasing the OPTIMAL setting to reduce the time spent shrinking.
This data item represents the number of times, per second during this sample period,
a transaction continued writing from one extent in a rollback segment to another
existing extent.
DeltaWraps / SecondsDescription
Data Source
where:
This data item represents the number of times, per second during this sample period,
extents were allocated from the rollback segment.
DeltaExtents / SecondsDescription
Data Source
where:
If the number of times the rollback segment extended is greater than 1% of the total number of rollback segment uses (gets), excessive allocations may be taking place. Excessive allocations can occur as a result of one of two problems:
When the extent size is too small, the rollback segment should be recreated with a larger extent size. When the OPTIMAL value is too small, the rollback segment should be altered to use a larger OPTIMAL value.
This data item represents the status of the rollback segment. A rollback segment
is always in one of several status. The state of the rollback segment determines
whether it can be used in a transaction, as well as which administrative procedures
a DBA can perform on it.
Description
select status from v$rollstat
((DeltaLogReads - DeltaWaits) / DeltaLogReads) * 100Description
Data Source
where:
This data item represents the size, in bytes, of the rollback segment.
select rssize from v$rollstat
Description
Data Source
This data item represents the number of bytes written to the rollback segment.
select rssize from v$rollstat
Description
Data Source
This data item represents the OPTIMAL size, in bytes, of the rollback segment.
The OPTIMAL parameter specifies the optimal size for a rollback segment. The value for this
parameter should be carefully chosen according to the kinds of transactions that the system
runs to avoid frequent shrinks and extensions. For a system that executes long-running
transactions or long queries, OPTIMAL should be large. OPTIMAL should be smaller for a system
that mainly executes short transactions and short queries.
Assuming an instance has equally sized rollback segments with comparably sized extents,
the OPTIMAL parameter for a given rollback segment should be set slightly higher than the
average number of bytes in active extents in the rollback segment.
Furthermore, OPTIMAL should not be set to a value less than the number of bytes required
for MINEXTENTS extents.
If the number of shrinks is greater than 1% of the total number of rollback segment uses (gets),
shrinks may be happening too frequent. In this case, you may consider increasing the
OPTIMAL setting to reduce the time spent shrinking.
select optsize from v$rollstat
Description
Data Source
This data item represents the most space, in bytes, ever allocated for the rollback
segment.
select hwmsize from v$rollstat
Description
Data Source
This data item represents the average size, in bytes, of the space Oracle
truncated from the rollback segment.
select aveshrink from v$rollstat
Description
Data Source
If the number of shrinks taking place is low and the average size shrunk is large, then OPTIMAL is set correctly.
If the number of shrinks taking place is high and the average size shrunk is small, then OPTIMAL is too small as too many shrinks are taking place. You should alter the rollback segment increasing the OPTIMAL setting.
This data item represents the average number of bytes in active extents in
the rollback segment measured over time.
select aveactive from v$rollstat
Description
Data Source
This data item represents the number of extents in the rollback segment.
select extents from v$rollstat
Description
Data Source
Summary information of top sessions as ordered by the selected sort statistic
This class includes the following charts:
Summary information of top sessions as ordered by the selected sort statistic
This data item represents either the Oracle username of the current session or
the name of the background process.
select NVL(s.username, b.name) from v$session s, v$bgprocess b
Description
Data Source
This data item represents the name of the operating system client user.
select osuser from v$session
Description
Data Source
This data item contains the value for the sort statistic which was used
to order the sessions for display.
Description
Data Source
This data item represents the status of this session.
Description
select status from v$session
This data item represents the operating system machine name.
select machine from v$session
Description
Data Source
This data item represents the operating system terminal name.
select terminal from v$session
Description
Data Source
This data item represents the name of the client program.
select program from v$session
Description
Data Source
This data item represents the name of the application module that first executed
this statement. This name can be optionally set by using
DMBS_APPLICATION_INFO.SET_MODULE.
select module from v$session
Description
Data Source
This data item represents the name of the action being performed by the
application module that first executed this statement. This name can be
optionally set by using DMBS_APPLICATION_INFO.SET_ACTION.
select action from v$session
Description
Data Source
This data item represents the session serial number. This value is used to
uniquely identify a session's objects. It guarantees that session-level
commands are applied to the correct session objects if the session ends and
another session begins with the same session ID.
select serial# from v$session
Description
Data Source
This data item represents the Oracle process identifier.
select p.spid from v$process p, v$session s
where s.paddr = p.addr
Description
Data Source
This data item represents the number of user commits performed by this session
during the sample period. When a user commits a transaction, the redo generated
that reflects the changes made to database blocks must be written to disk.
Commits often represent the closest thing to a user transaction rate.
DeltaCommitsDescription
Data Source
where:
This statistic is an indication of how much work is being accomplished within the database. A spike in the transaction rate may not necessarily be bad. If response times stay close to normal, it means your system can handle the added load. Actually, a drop in transaction rates and an increase in response time may be indicators of problems. Depending upon the application, transaction loads may vary widely across different times of the day.
This data item represents the number of times this session manually issued a
ROLLBACK statement or an error occurs during a session's transaction during
the sample period.
DeltaRollbacksDescription
Data Source
where:
This statistic shows how often users are issuing the ROLLBACK statement or encountering errors in their transactions. Further investigation should be made to determine if the rollbacks are part of some faulty application logic or due to errors occuring through database access.
This data item represents the total number of calls (user and recursive) that
executed SQL statements for this session.
UserCalls + RecursiveCallsDescription
Data Source
where:
This data item represents the total number of parse calls (hard and soft) for
this session.
select s.value from v$sesstat s, v$statname n
where n.name='parse count (total)' and n.statistic#=s.statistic#
Description
Data Source
This data item represents the number of hits in the session cursor cache during this
sample period.
DeltaCursorCacheHitsDescription
Data Source
where:
This data item represents the total number of cursors cached during this
sample period. This value is only incremented if SESSION_CACHED_CURSORS is
greater than 0.
DeltaCursorCacheHitsDescription
Data Source
where:
This data item represents the total amount of CPU time, in seconds, used by
this session.
DeltaTotalCpuTimeDescription
Data Source
where:
This data item represents the amount of this session's CPU time that
is being used for parsing (hard and soft). Parse time CPU can be a strong
indication that an application has not been well tuned. High parse time
CPU usually indicates that the application may be spending too much time
opening and closing cursors or is not using bind variables.
DeltaParseTimeDescription
Data Source
where:
If excessive parsing is taking place, examine SQL statements. Look for statements that can be modified to optimize shared SQL pool memory use and avoid unnecessary statement reparsing. This type of problem is commonly caused when similar SQL statements are written which differ in space, case, or some combination of the two. You may also consider using bind variables rather than explicitly specified constants in your statements whenever possible.
Sometimes, to execute a SQL statement issued by a user, the Oracle Server must issue
additional statements. Such statements are called recursive calls or recursive SQL statements.
For example, if you insert a row into a table that does not have enough space to hold that
row, the Oracle Server makes recursive calls to allocate the space dynamically if dictionary
managed tablespaces are being used. Recursive calls are also generated:
Description
This data item represents the amount of this session's CPU time that is being used for recursive calls.
DeltaRecursiveTime
where:
If the Oracle Server appears to be making excessive recursive calls while your application is running, determine what activity is causing these recursive calls. If you determine that the recursive calls are caused by dynamic extension, either reduce the frequency of extension by allocating larger extents, or, if you are using Oracle 8i, consider taking advantage of locally managed tablespaces.
This data item represents the number of blocks obtained in CURRENT mode.
DeltaBlockGetsDescription
Data Source
where:
This data item represents the number of times a consistent read was requested for a block.
DeltaConsistentGetsDescription
Data Source
where:
This data item represents the number of data blocks read from disk
during this sample period.
DeltaPhysicalReads Description
Data Source
where:
number of changes that were made to all blocks in the SGA that were part of an update or delete operation
The number of times a database block has applied rollback entries to perform a consistent read on the block
Number of sorts with disk writes
Number of sorts with no disk writes
The total number of rows sorted
The total number of parse calls (real parses).
Total number of parse calls (hard and soft).
Total elapsed time for parsing, in seconds
Current UGA size for the session
This data item represents the time of logon by this session.
select logon from v$session s
Description
Data Source
This data item represents the percentage of total physical reads that were
attributed to this session during the sample period.
DeltaPhysicalReads / DeltaTotalReadsDescription
Data Source
where:
This data item represents the percentage of total buffer gets that were
attributed to this session during the sample period.
DeltaBufferGets / DeltaTotalGetsDescription
Data Source
where:
Table scan statistics by user
This class includes the following charts:
Table scan statistics by user
This data item represents the number of long table scans per second during
this sample period. A table is considered 'long' if the table is not cached and
if its high-water mark is greater than 5 blocks.
select s.value from v$sesstat s, v$statname n
where n.name='table scans (long tables)' and n.statistic#=s.statistic#
Description
Data Source
This data item represents the number of short table scans per second during
this sample period. A table scan is considered 'short' if the table is cached or
if its high-water mark is less than 5 blocks.
select s.value from v$sesstat s, v$statname n
where n.name='table scans (short tables)' and n.statistic#=s.statistic#
Description
Data Source
During scanning operations, each row is retrieved sequentialy by the Oracle
Server. This data item represents the number of rows scanned per second
during this sample period.
select s.value from v$sesstat s, v$statname n
where n.name='table scan rows gotten' and n.statistic#=s.statistic#
Description
Data Source
In two circumstances the data for a row in a table may be too large to fit into a
single data block. This results in row fragmentation.
In the first case, the row is too large to fit into one data block when it is first
inserted. In this case, the Oracle Server stores the data for the row in a chain of
data blocks reserved for that segment. Row chaining most often
occurs with large rows, such as rows that contain a column of datatype LONG or
LONG RAW. Row continuation in these cases is unavoidable without using a larger
DB_BLOCK_SIZE.
In the second case, however, a row that originally fit into one data block is
updated so that the overall row length increases and the block's free space is
already completely filled. In this case, Oracle migrates the data for the entire
row to a new data block, assuming the entire row can fit into a new block.
Oracle preserves the original row piece of a migrated row to point to the
new block containing the migrated row.
When a row is chained or migrated, I/O performance associated with this row
decreases because Oracle must scan more than one data block to retrieve the
information for the row.
This data item represents the number of chained row retrievals per second during the
sample period.
select se.username,s.value from v$sesstat s, v$statname n, v$session se
where n.name='table fetch continued row' and n.statistic#=s.statistic# and s.sid=se.sid
Description
Data Source
During scanning operations, each row is retrieved sequentially by Oracle.
This data item represents the number of blocks retrieved from the buffer
cache per second during the sample period.
select se.username,s.value from v$sesstat s, v$statname n, v$session se
where n.name='table scan blocks gotten' and n.statistic#=s.statistic# and s.sid=se.sid
Description
Data Source
This data item represents the number of full table scans, per second during the sample period, on
tables using the CACHE option. The CACHE option specifies that the blocks retrieved for the
table are placed at the most recently used end of the LRU list in the buffer cache when a
full scan is performed. This option is useful for small lookup tables that are accessed
frequently.
select se.username,s.value from v$sesstat s, v$statname n, v$session se
where n.name='table scans (cache partitions)' and n.statistic#=s.statistic# and s.sid=se.sid
Description
Data Source
This data item represents the number of full tables scans, per second during the sample period,
that were performed with direct read thus bypassing the buffer cache.
select se.username,s.value from v$sesstat s, v$statname n, v$session se
where n.name='table scans (direct reads)' and n.statistic#=s.statistic# and s.sid=se.sid
Description
Data Source
This data item represents the number of full tables scans with specified ROWID
endpoints per second during the sample period,
select se.username,s.value from v$sesstat s, v$statname n, v$session se
where n.name='table scans (rowid ranges)' and n.statistic#=s.statistic# and s.sid=se.sid
Description
Data Source
Shows statistics about the shared pool
This class includes the following charts:
Shows statistics about the shared pool
This data item represents size, in megabytes, of available free memory in the shared
pool.
select bytes/1024/1024 from v$sgastat where name = 'free memory'
Description
Data Source
This data item represents the number of times the reserved list did not have a
free piece of memory to statisfy the request and needed to begin flushing
objects from the LRU list.
This value is only valid when the initialization parameter SHARED_POOL_RESERVED_SIZE
is set to a valid value.
select request_misses from v$shared_pool_reserved
Description
Data Source
This data item represents the number of times no memory was found to
satisfy a shared pool request; that is, the number of times an ORA-4031
occurred.
select request_failures from v$shared_pool_reserved
Description
Data Source
Request failures is a very clear indicator that the size of the shared pool is not sufficient.
The shared pool portion of the SGA contains three major areas: library cache,
dictionary cache and various control structures. The total size of the shared pool
is determined by the initialization parameter SHARED_POOL_SIZE.
This data item represents the size, in megabytes, of the shared pool.
If the shared pool is not large enough, users will consume additional resources to
complete a database operation. For the library cache, the overhead will primarily be
the additional CPU resources used to reparse the SQL statement. The overhead for the
dictionary cache will show up as additional I/O, since dictionary references that
have been displaced from the cache will need to be refetched from disk. The impact to
user response times will vary depending on whether there is a bottlenect on the resource
charged for the overhead.
If the shared pool is too large, memory resources are wasted that could be utilized
elsewhere in the database environment. This can contribute to performance degradation in
database environments where memory is already a scarce resource. In addition, the extra
memory used for the shared pool will not be available for use by other processes on the
system, nor could it be utilized for other caches, such as the buffer cache.
select value from v$parameter where name='shared_pool_size'
Description
Data Source
The shared pool portion of the SGA contains three major areas: library cache,
dictionary cache and various control structures.
This data item represents the size, in megabytes, of the shared pool space which is
reserved for large contiguous requests for shared pool memory. This parameter,
along with the SHARED_POOL_RESERVED_MIN_ALLOC parameter, can be used to avoid
performance degradation in the shared pool from situations where pool fragmentation
forces Oracle to search and free chunks of unused pool to compile the current
request.
select value from v$parameter where name='shared_pool_reserved_size'
Description
Data Source
This data item represents the current UGA size for a session.
select se.username,s.value from v$sesstat s, v$statname n, v$session se
where n.name='session uga memory' and n.statistic#=s.statistic# and s.sid=se.sid
Description
Data Source
This data item represents the peak UGA size for a session.
select se.username,s.value from v$sesstat s, v$statname n, v$session se
where n.name='session uga memory max' and n.statistic#=s.statistic# and s.sid=se.sid
Description
Data Source
This data item represents the shared pool reserved list hit ratio. This value
gives an indication of how well the reserved list is operating and should be
between 95 to 100 percent.
((Requests - Misses) / Requests) * 100Description
Data Source
where:
This data item represents the size, in megabytes, of the Java pool.
select value from v$parameter where name='java_pool_size'
Description
Data Source
This data item represents the size, in megabytes, of the database block buffers.
select sum(decode(name,'db_block_buffers',bytes)) from v$sgasta
Description
Data Source
This data item represents the size, in megabytes, of the log buffer.
select sum(decode(name,'log_buffer',bytes)) from v$sgasta
Description
Data Source
This data item represents the size, in megabytes, of the fixed portion of the SGA.
select sum(decode(name,'fixed_sga',bytes)) from v$sgasta
Description
Data Source
Statistics that indicate the current size of the database and its objects
This class includes the following charts:
Statistics that indicate the current size of the database and its objects
This data item represents the size, in megabytes, of the database.
select sum(bytes)/(1024*1024) from sys.dba_data_files where status = 'AVAILABLE'
Description
Data Source
This data item represents the number of tablespaces in the database,
select count(*) from sys.dba_tablespaces where status != 'OFFLINE'
Description
Data Source
This data item represents the number of schemas in the database,
select count(*) from sys.user$ u where exists
(select null from sys.obj$ o where o.owner# = u.user# and o.type# in (1,2,3,19,20,21,34,35,40,41))
Description
Data Source
This data item represents the number of datafiles in the database,
select count(*) from sys.dba_data_files where status = 'AVAILABLE'
Description
Data Source
This data item represents the number of users in the database,
select count(*) from sys.dba_users
Description
Data Source
This data item represents the maximum size, in megabytes, of the log buffer.
select max(bytes)/(1024*1024) from v$log
Description
Data Source
Locks currently held by the Oracle server and outstanding requests for a lock or latch
This class includes the following charts:
Locks currently held by the Oracle server and outstanding requests for a lock or latch
Session holding or acquiring the lock
Session serial number of session holding or acquiring the lock
Enqueues are shared memory structures (locks) that serialize access to database resources.
They can be associated with a session or transaction. Enqueue names are
displayed in the LOCK_TYPE column of the DBA_LOCKS and DBA_LOCK_INTERNAL data dictionary views.
A resource uniquely identifies an object that can be locked by different sessions within an instance (local resource) or between instances (global resource). Each session that tries to lock the resource will have an
enqueue on the resource.
Note:
The names of enqueues and their definitions may change from release to release.
The Oracle enqueues are:
Description
LOCK_TYPE column from V$LOCK table.
Determine the cause for the lock contention and try to remove it. Although drastic, a session can be killed by selecting a session and using the kill session tool. This should be used as a last resort to remove the blocking lock if it has been determined that it won't be freed up any time soon.
Lock mode in which the session holds the lock
Lock mode in which the process requests the lock
Name of the object being locked
The current ROWID being locked
User name of the owner of the object
Type of object
Lock identifier #1 (depends on type)
Lock identifier #2 (depends on type)
Operating System Process Id
Counts of sessions that are active, waiting, logged on, etc.
This class includes the following charts:
Counts of sessions that are active, waiting, logged on, etc.
This data item represents the number of sessions currently marked with the
associated status. The status of the session can be:
Description
select status from v$session group by status
Current number of transactions by action type at this instant
This class includes the following charts:
Current number of transactions by action type at this instant
This data item represents the number of active sessions.
select sum(decode(command,0,0,1)) from v$session where status = 'ACTIVE'
Description
Data Source
This data item represents the number of SELECT statements being
performed at time of sampling.
select sum(decode(command,3,1,0)) from v$session where status = 'ACTIVE'
Description
Data Source
This data item represents the number of UPDATE statements being
performed at time of sampling.
select sum(decode(command,6,1,0)) from v$session where status = 'ACTIVE'
Description
Data Source
This data item represents the number of INSERT statements being
performed at time of sampling.
select sum(decode(command,2,1,0)) from v$session where status = 'ACTIVE'
Description
Data Source
This data item represents the number of DELETE statements being
performed at time of sampling.
select sum(decode(command,7,1,0)) from v$session where status = 'ACTIVE'
Description
Data Source
Load Container Class
Load Container Class
Statistics of user connections to the database through dispatchers and servers
Statistics of user connections to the database through dispatchers and servers
Name of shared server
Session id.
Session serial number
Status of the circuit
Queue the circuit is currently on
Total number of messages that have gone through this circuit
Total number of bytes that have gone through this circuit
Dispatcher process statistics
This class includes the following charts:
Dispatcher process statistics
Dispatcher status
Whether this dispatcher is accepting new connections
Number of messages processed by this dispatcher
Size in bytes of messages processed by this dispatcher
Number of circuits owned by this dispatcher
Time spent idle, in seconds
Percentage of time spent busy this sample period
Busy/(busy+idle)
Idle/(busy+idle)
Amount of time spent waiting for each response on the queue, in seconds
Dispatcher contention statistics
This class includes the following charts:
Dispatcher contention statistics
Busy/(busy+idle)*100
Average wait per item in the queue
Shared server processes statistics
This class includes the following charts:
Shared server processes statistics
Server status
Number of requests taken from the common queue per second
Total idle time, in seconds
Total busy time, in seconds
Busy / (Idle+Busy) * 100
Address of circuit currently being serviced
Statistics of multi-threaded server
This class includes the following charts:
Statistics of multi-threaded server
Number of dedicated servers
Number of shared servers
Number of dispatchers
Minimum number of shared servers allowed
The highest number of servers running at one time since the instance started
Maximum number of shared server processes allowed to be running simultaneously
Number of shared server processes that Oracle started
Number of shared server processes that Oracle terminated
Average load across all servers
Average load across all dispatchers
(Current shared servers/max servers * 100) how close is the current count to the maximum number of servers
High watermark/max servers * 100 how close has the high watermark come to servers limit
Total max block ping for all instances
Total max block ping for all instances
Sum of max block pings.
Block ping by tablespace statistics.
Block ping by tablespace statistics.
Max block ping for each tablespace
Max block ping for each instance
Max block ping for each instance
Max block ping for each instance
File read/write statistics for all instances
File read/write statistics for all instances
Number of physical reads / second
Number of times DBWR is required to write
File read/write statistics for each datafile
File read/write statistics for each datafile
Number of physical reads / second
Number of times DBWR is required to write
File read/write statistics for each instance
File read/write statistics for each instance
Number of physical reads / second
Number of times DBWR is required to write
Displays the DLM lock operation activity of all instances
Displays the DLM lock operation activity of all instances
PCM lock initial state: NULL; S; X; SSX
PCM lock initial state: NULL; S; X; SSX
Number of times the lock operation executed
Current session statistics
Current session statistics
Session serial number
Oracle process identifier
Status of the session
Oracle username
Address of lock this session is waiting for
Command in progress (last statement parsed)
Number of users for all instances.
Number of users for all instances.
Number of users that have logged on to OPS server
Number of active users
Number of users for each instance
Number of users for each instance
Number of users that have logged on for each instance
Number of active users for each instance
Redo latch statistics
Redo latch statistics
The full SQL text
This class includes the following charts:
The full SQL text
This data item represents the complete SQL text.
select piece, sql_text from v$sqltext_with_newlines order by piece ASC
Description
Data Source
Parallel Server instance statistics
Parallel Server instance statistics
Instance number used for instance registration
Name of the host machine
YES/NO in parallel server mode
Redo thread opened by the instance
Usernames
Usernames
User number
Performance overview charts
Performance overview charts
Summary information of top sessions as measured by the selected sort statistic
Summary information of top sessions as measured by the selected sort statistic
This data item represents either the Oracle username of the current session or
the name of the background process.
select NVL(s.username, b.name) from v$session s, v$bgprocess b
Description
Data Source
This data item represents the name of the operating system client user.
select osuser from v$session
Description
Data Source
This data item contains the value for the sort statistic which was used
to order the sessions for display.
select value from v$sesstat where statistic#=:1
Description
Data Source
This data item represents the status of this session.
Description
select status from v$session
This data item represents the operating system machine name.
select machine from v$session
Description
Data Source
This data item represents the operating system terminal name.
select terminal from v$session
Description
Data Source
This data item represents the name of the client program.
select program from v$session
Description
Data Source
This data item represents the name of the application module that first executed
this statement. This name can be optionally set by using
DMBS_APPLICATION_INFO.SET_MODULE.
select module from v$session
Description
Data Source
This data item represents the name of the action being performed by the
application module that first executed this statement. This name can be
optionally set by using DMBS_APPLICATION_INFO.SET_ACTION.
select action from v$session
Description
Data Source
This data item represents the session serial number. This value is used to
uniquely identify a session's objects. It guarantees that session-level
commands are applied to the correct session objects if the session ends and
another session begins with the same session ID.
select serial# from v$session
Description
Data Source
This data item represents the Oracle process identifier.
select p.spid from v$process p, v$session s
where s.paddr = p.addr
Description
Data Source
This data item represents the number of user commits performed by this session
during the sample period. When a user commits a transaction, the redo generated
that reflects the changes made to database blocks must be written to disk.
Commits often represent the closest thing to a user transaction rate.
DeltaCommitsDescription
Data Source
where:
This statistic is an indication of how much work is being accomplished within the database. A spike in the transaction rate may not necessarily be bad. If response times stay close to normal, it means your system can handle the added load. Actually, a drop in transaction rates and an increase in response time may be indicators of problems. Depending upon the application, transaction loads may vary widely across different times of the day.
This data item represents the number of times this session manually issued a
ROLLBACK statement or an error occurs during a session's transaction during
the sample period.
DeltaRollbacksDescription
Data Source
where:
This statistic shows how often users are issuing the ROLLBACK statement or encountering errors in their transactions. Further investigation should be made to determine if the rollbacks are part of some faulty application logic or due to errors occuring through database access.
This data item represents the total number of calls (user and recursive) that
executed SQL statements for this session.
UserCalls + RecursiveCallsDescription
Data Source
where:
This data item represents the total number of parse calls (hard and soft) for
this session.
select s.value from v$sesstat s, v$statname n
where n.name='parse count (total)' and n.statistic#=s.statistic#
Description
Data Source
This data item represents the number of hits in the session cursor cache during this
sample period.
DeltaCursorCacheHitsDescription
Data Source
where:
This data item represents the total number of cursors cached during this
sample period. This value is only incremented if SESSION_CACHED_CURSORS is
greater than 0.
DeltaCursorCacheHitsDescription
Data Source
where:
This data item represents the total amount of CPU time, in seconds, used by
this session.
DeltaTotalCpuTimeDescription
Data Source
where:
This data item represents the amount of this session's CPU time that
is being used for parsing (hard and soft). Parse time CPU can be a strong
indication that an application has not been well tuned. High parse time
CPU usually indicates that the application may be spending too much time
opening and closing cursors or is not using bind variables.
DeltaParseTimeDescription
Data Source
where:
If excessive parsing is taking place, examine SQL statements. Look for statements that can be modified to optimize shared SQL pool memory use and avoid unnecessary statement reparsing. This type of problem is commonly caused when similar SQL statements are written which differ in space, case, or some combination of the two. You may also consider using bind variables rather than explicitly specified constants in your statements whenever possible.
Sometimes, to execute a SQL statement issued by a user, the Oracle Server must issue
additional statements. Such statements are called recursive calls or recursive SQL statements.
For example, if you insert a row into a table that does not have enough space to hold that
row, the Oracle Server makes recursive calls to allocate the space dynamically if dictionary
managed tablespaces are being used. Recursive calls are also generated:
Description
This data item represents the percentage of this session's CPU time that is being used for recursive calls.
DeltaRecursiveTime
where:
If the Oracle Server appears to be making excessive recursive calls while your application is running, determine what activity is causing these recursive calls. If you determine that the recursive calls are caused by dynamic extension, either reduce the frequency of extension by allocating larger extents, or, if you are using Oracle 8i, consider taking advantage of locally managed tablespaces.
This data item represents the number of blocks obtained in CURRENT mode.
DeltaBlockGetsDescription
Data Source
where:
This data item represents the number of times a consistent read was requested for a block.
DeltaConsistentGetsDescription
Data Source
where:
This data item represents the number of data blocks read from disk
during this sample period.
DeltaPhysicalReads Description
Data Source
where:
Number of changes that were made to all blocks in the SGA that were part of an update or delete operation
Number of times a database block has applied rollback entries to perform a consistent read on the block
Number of sorts with disk writes
Number of sorts with no disk writes
Total number of rows sorted
Total number of parse calls (real parses)
Total number of parse calls (hard and soft).
Total elapsed time for parsing, in seconds
Current UGA size for the session
This data item represents the time of logon by this session.
select logon from v$session s
Description
Data Source
This data item represents the total number of logical reads this
session has made.
select s.value from v$sesstat s, v$statname n
where n.name='session logical reads' and n.statistic#=s.statistic#
Description
Data Source
Response time broken down by individual users, then session
This class includes the following charts:
Response time broken down by individual users, then session
This data item represents the percentage of time spent waiting, instance-wide, for
resources or objects.
TotalWait / (TotalWait + CpuTime)Description
where:
Investigate further into which specific wait events are responsible for the bulk of the wait time. Individual wait events may identify unique problems within the database. Diagnosis will be tailored where appropriate through drilldowns specific to individual wait events.
This data item represents the percentage of time, instance-wide, spent executing
instructions by the CPU.
CpuTime / (TotalWait + CpuTime)Description
Data Source
where:
When CPU is the largest contributor to total reponse time, it needs to be broken down to properly understand the problem further. Basically, CPU Time is broken down into 3 categories:
Using only statistics available within the database, this data item gives the best
approximation of response time, in seconds, per transaction.
(DeltaTotalWait + DeltaCpuTime) / (DeltaCommits + DeltaRollbacks)Description
Data Source
where:
Investigate further into which component, waits or CPU, is responsible for the majority of the response time and continue diagnosis.
This data item represents the total number of commits and rollbacks performed
during this sample period.
DeltaCommits + DeltaRollbacksDescription
Data Source
where:
This statistic is an indication of how much work is being accomplished within the database. A spike in the transaction rate may not necessarily be bad. If response times stay close to normal, it means your system can handle the added load. Actually, a drop in transaction rates and an increase in response time may be indicators of problems. Depending upon the application, transaction loads may vary widely across different times of the day.
This data item represents the number of user commits performed during the sample period.
When a user commits a transaction, the redo generated that reflects the changes made to database
blocks must be written to disk. Commits often represent the closest thing to a user transaction rate.
DeltaCommitsDescription
Data Source
where:
This statistic is an indication of how much work is being accomplished within the database. A spike in the transaction rate may not necessarily be bad. If response times stay close to normal, it means your system can handle the added load. Actually, a drop in transaction rates and an increase in response time may be indicators of problems. Depending upon the application, transaction loads may vary widely across different times of the day.
This data item represents the number of times users manually issue the ROLLBACK
statement or an error occurs during a user's transactions during the sample period.
DeltaRollbacksDescription
Data Source
where:
This statistic shows how often users are issuing the ROLLBACK statement or encountering errors in their transactions. Further investigation should be made to determine if the rollbacks are part of some faulty application logic or due to errors occuring through database access.
Using only statistics available within the database, this data item gives the best
approximation of response time, in seconds, per SQL statement execution. This statistic
may be more valid than response time per transaction as it shows accurate values even for
read-only access.
(DeltaTotalWait + DeltaCpuTime) / (DeltaUserCalls + DeltaRecursiveCalls)Description
Data Source
where:
Investigate further into which component, waits or CPU, is responsible for the majority of the response time and continue diagnosis.
This data item represents the total number of calls (user and recursive) that
executed SQL statements during the sample period. This statistic is an
indication of the number of SQL statements that are being processed per sample
period.
DeltaUserCalls + DeltaRecursiveCallsDescription
Data Source
where:
This statistic is an indication of how much work is being accomplished within the database. A spike in the execution rate may not necessarily be bad. If response times stay close to normal, it means your system can handle the added load. Actually a drop in execution rates, and an increase in response time may be indicators of problems. Depending upon the application, execution loads may vary widely across different times of the day.
Show session wait on file and block#
This class includes the following charts:
Show session wait on file and block#
Data file name
Block number
Type of wait
Name of the segment that contains the block being waited on
Owner of segment
Classes that display response time and its breakdown
Classes that display response time and its breakdown
Classes related to wait events and their diagnosis
Classes related to wait events and their diagnosis
Classes that break down statistics by user
Classes that break down statistics by user
Statistics that are database wide (v$systat in origin)
Statistics that are database wide (v$systat in origin)
I/O classes
I/O classes
SGA utilization, various cache statistics, etc.
SGA utilization, various cache statistics, etc.
Redo log, DBWR, and other statistics related to background processes
Redo log, DBWR, and other statistics related to background processes
Tablespace and other storage-related information
Tablespace and other storage-related information
SQL for applications that utilize the DBMS_APPLICATION_INFO package
This class includes the following charts:
SQL for applications that utilize the DBMS_APPLICATION_INFO package
This data item contains the first eighty characters of the SQL text for the current cursor.
select sql_text from v$sqlarea
Description
Data Source
This data item represents the number of physical reads performed by this statement
during the sample period. In other words, its value is the number of read requests that
were not satisfied by buffers in the cache and resulted in access to datafiles on disk.
DeltaPhysicalReadsDescription
Data Source
where:
This data item represents the number of read requests for this statement that were
satisfied by buffers in the cache during this sample period.
DeltaBufferGetsDescription
Data Source
where:
This data item represents the number of times this statement was executed per second
during this sample period.
DeltaExecutions / SecondsDescription
Data Source
where:
This data item represents the total number of times this statement was parsed per second
during this sample period.
DeltaParseCalls / SecondsDescription
Data Source
where:
This data item represents the number of physical reads performed by this statement per
second during the sample period. In other words, its value is the number of read requests that
were not satisfied by buffers in the cache and resulted in access to datafiles on disk.
DeltaPhysicalReads / SecondsDescription
Data Source
where:
This data item represents the number of read requests for this statement that were
satisfied by buffers in the cache per second during this sample period.
DeltaBufferGets / SecondsDescription
Data Source
where:
This data item represents the total number of rows processed to complete this statement
per second during the sample period.
DeltaRowsProcessed / SecondsDescription
Data Source
where:
This data item represents the sum of all shareable memory, in bytes, used by this
statement.
select sharable_mem from v$sqlarea
Description
Data Source
This data item represents the sum of all persistent memory, in bytes, used by this
statement.
select persistent_mem from v$sqlarea
Description
Data Source
This data item represents the sum of all memory, in bytes, currently in use by this
statement.
select runtime_mem from v$sqlarea
Description
Data Source
Classes of data that report on applications using the DBMS_APPLICATION_INFO package
This class includes the following charts:
Classes of data that report on applications using the DBMS_APPLICATION_INFO package
This data item represents the number of sessions that are currently executing
under a particular module.
select count(module) from v$session where module_hash != 0
Description
Data Source
The count of SQL statements in the cache that have this module set
Count of sessions currently waiting for particular events
This class includes the following charts:
Count of sessions currently waiting for particular events
This data item represents the number of sessions currently waiting on this
event.
select count(*) from v$session_wait where wait_time = 0
Description
Data Source
Multi-Threaded Server Classes
Multi-Threaded Server Classes
Oracle Parallel Server Classes
Oracle Parallel Server Classes
Hosts (nodes) currently attached to the server and their statistics
This class includes the following charts:
Hosts (nodes) currently attached to the server and their statistics
This data item represents the total number of parse calls (hard and soft) for
this session.
select s.value from v$sesstat s, v$statname n
where n.name='parse count (total)' and n.statistic#=s.statistic#
Description
Data Source
This data item represents the total number of calls (user and recursive) that
executed SQL statements for this session.
UserCalls + RecursiveCallsDescription
Data Source
where:
This data item represents the number of hits in the session cursor cache during this
sample period.
DeltaCursorCacheHitsDescription
Data Source
where:
This data item represents the total number of cursors cached during this
sample period. This value is only incremented if SESSION_CACHED_CURSORS is
greater than 0.
DeltaCursorCacheHitsDescription
Data Source
where:
This data item represents the percentage of CPU time being used by this session.
(DeltaCpuTime / DeltaTotalCpuTime) * 100Description
Data Source
where:
This data item represents the percentage of this session's CPU time that
is being used for parsing (hard and soft). Parse time CPU can be a strong
indication that an application has not been well tuned. High parse time
CPU usually indicates that the application may be spending too much time
opening and closing cursors or is not using bind variables.
(DeltaParseTime / DeltaCpuTime) * 100Description
Data Source
where:
If excessive parsing is taking place, examine SQL statements. Look for statements that can be modified to optimize shared SQL pool memory use and avoid unnecessary statement reparsing. This type of problem is commonly caused when similar SQL statements are written which differ in space, case, or some combination of the two. You may also consider using bind variables rather than explicitly specified constants in your statements whenever possible.
Sometimes, to execute a SQL statement issued by a user, the Oracle Server must issue
additional statements. Such statements are called recursive calls or recursive SQL statements.
For example, if you insert a row into a table that does not have enough space to hold that
row, the Oracle Server makes recursive calls to allocate the space dynamically if dictionary
managed tablespaces are being used. Recursive calls are also generated:
Description
This data item represents the percentage of this session's CPU time that is being used for recursive calls.
(DeltaRecursiveTime / DeltaCpuTime) * 100
where:
If the Oracle Server appears to be making excessive recursive calls while your application is running, determine what activity is causing these recursive calls. If you determine that the recursive calls are caused by dynamic extension, either reduce the frequency of extension by allocating larger extents, or, if you are using Oracle 8i, consider taking advantage of locally managed tablespaces.
This data item represents the percentage of time spent looking for buffers, fetching rows
or index keys, etc. Generally, "other" CPU should represent the highest percentage of CPU
time out of the total CPU time used.
((DeltaCpuTime - (DeltaParseTime + DeltaRecursiveTime)) / DeltaCpuTime) * 100Description
Data Source
where:
It may be possible to reduce "other" CPU time by investigating SQL statements that have a high number of buffer_gets and/or a high number of physical reads.
This data item represents the number of blocks obtained in CURRENT mode per second
during this sample period.
DeltaBlockGets / SecondsDescription
Data Source
where:
This data item represents the number of times a consistent read was requested for a block per second
during this sample period.
DeltaConsistentGets / SecondsDescription
Data Source
where:
This data item represents the number of data blocks read from disk per second
during this sample period.
DeltaPhysicalReads / SecondsDescription
Data Source
where:
This data item represents the percentage of reads that were directly read from disk,
bypassing the buffer cache, during this sample period. For example, in high bandwidth,
data-intensive operations such as parallel query, reads of disk blocks bypass the
buffer cache to maximize transfer rates and to prevent the premature aging of
shared data blocks resident in the buffer cache.
DeltaDirectReads / DeltaPhysicalReadsDescription
Data Source
where:
This data item represents the number of times changes were made to blocks in the SGA as
part of an update or delete. These are changes that are generating redo log entries and
hence will be permanent changes to the database if the transaction is committed.
This statistic is a rough indication of the total database work. This statistic indicates
the rate at which buffers are being dirtied.
DeltaBlockChanges / SecondsDescription
Data Source
where:
This data item represents the number of times changes were made to blocks in the SGA as
part of an update or delete. Workloads that produce a great deal of consistent changes
can consume a great deal of resources.
DeltaConsistentChanges / SecondsDescription
Data Source
where:
This data item represents the number of sorts to disk as opposed to being performed
in memory per second for this sample period.
For best performance, most sorts should occur in memory, because sorts to disks are
expensive to perform. If the sort area is too small, extra sort runs will be
required during the sort operation. This increases CPU and I/O resource consumption.
DeltaDiskSorts / SecondsDescription
Data Source
where:
If excessive sorts are taking place on disk, consider increasing the SORT_AREA_SIZE initialization parameter to increase the size of the sort area. A larger sort area will allow the Oracle Server to keep sorts in memory, reducing the number of I/O operations required to do an equivalent amount of work using the current sort area size.
This data item represents the number of sorts performed in memory as opposed to on
disk per second for this sample period.
For best performance, most sorts should occur in memory, because sorts to disks are
expensive to perform. If the sort area is too small, extra sort runs will be
required during the sort operation. This increases CPU and I/O resource consumption.
DeltaDiskSorts / SecondsDescription
Data Source
where:
If excessive sorts are taking place on disk, consider increasing the SORT_AREA_SIZE initialization parameter to increase the size of the sort area. A larger sort area will allow the Oracle Server to keep sorts in memory, reducing the number of I/O operations required to do an equivalent amount of work using the current sort area size.
This data item represents the average number of rows sorted per second during
this sample period.
DeltaSortRows / SecondsDescription
Data Source
where:
This data item represents the percentage of sorts performed on disk as opposed to in
memory for this sample period.
For best performance, most sorts should occur in memory, because sorts to disks are
expensive to perform. If the sort area is too small, extra sort runs will be
required during the sort operation. This increases CPU and I/O resource consumption.
DeltaDiskSorts / DeltaMemorySortsDescription
Data Source
where:
If excessive sorts are taking place on disk, consider increasing the SORT_AREA_SIZE initialization parameter to increase the size of the sort area. A larger sort area will allow the Oracle Server to keep sorts in memory, reducing the number of I/O operations required to do an equivalent amount of work using the current sort area size.
Percentage of sorts performed to disk
This data item represents the number of hard parses per second during this sample
period.
DeltaParseCount / SecondDescription
Data Source
where:
If there appears to be excessive time spent parsing, evaluate SQL statements to determine which can be modified to optimize shared SQL pool memory use and avoid unnecessary statement reparsing. This type of problem is commonly caused when similar SQL statements are written which differ in space, case, or some combination of the two. You may also consider using bind variables rather than explicitly specified constants in your statements whenever possible.
This data item represents the number of parse calls (hard and soft) per second
during this sample period.
DeltaParseCount / SecondDescription
Data Source
where:
This data item represents the number of parse calls (hard and soft) per second
during this sample period.
DeltaParseElapsedTimeDescription
Data Source
where:
This data item represents the current UGA size for this session.
select s.value from v$sesstat s, v$statname n
where n.name='session uga memory' and n.statistic#=s.statistic#'
between sample end and start
Description
Data Source
This data item represents the average time waited per parse, in seconds,
during this sample period.
((DeltaParseElapsedTime - DeltaParseCpuTime) / Seconds) / DeltaParseCountDescription
Data Source
where:
This data item represents the number of statement executions (user and recursive)
per second during this sample period.
DeltaExecutes / SecondsDescription
Data Source
where:
Programs currently attached to the server and their statistics
This class includes the following charts:
Programs currently attached to the server and their statistics
This data item represents the total number of parse calls (hard and soft) for
this session.
select s.value from v$sesstat s, v$statname n
where n.name='parse count (total)' and n.statistic#=s.statistic#
Description
Data Source
This data item represents the total number of calls (user and recursive) that
executed SQL statements for this session.
UserCalls + RecursiveCallsDescription
Data Source
where:
This data item represents the number of hits in the session cursor cache during this
sample period.
DeltaCursorCacheHitsDescription
Data Source
where:
This data item represents the total number of cursors cached during this
sample period. This value is only incremented if SESSION_CACHED_CURSORS is
greater than 0.
DeltaCursorCacheHitsDescription
Data Source
where:
This data item represents the percentage of CPU time being used by this session.
(DeltaCpuTime / DeltaTotalCpuTime) * 100Description
Data Source
where:
This data item represents the percentage of this session's CPU time that
is being used for parsing (hard and soft). Parse time CPU can be a strong
indication that an application has not been well tuned. High parse time
CPU usually indicates that the application may be spending too much time
opening and closing cursors or is not using bind variables.
(DeltaParseTime / DeltaCpuTime) * 100Description
Data Source
where:
If excessive parsing is taking place, examine SQL statements. Look for statements that can be modified to optimize shared SQL pool memory use and avoid unnecessary statement reparsing. This type of problem is commonly caused when similar SQL statements are written which differ in space, case, or some combination of the two. You may also consider using bind variables rather than explicitly specified constants in your statements whenever possible.
Sometimes, to execute a SQL statement issued by a user, the Oracle Server must issue
additional statements. Such statements are called recursive calls or recursive SQL statements.
For example, if you insert a row into a table that does not have enough space to hold that
row, the Oracle Server makes recursive calls to allocate the space dynamically if dictionary
managed tablespaces are being used. Recursive calls are also generated:
Description
This data item represents the percentage of this session's CPU time that is being used for recursive calls.
(DeltaRecursiveTime / DeltaCpuTime) * 100
where:
If the Oracle Server appears to be making excessive recursive calls while your application is running, determine what activity is causing these recursive calls. If you determine that the recursive calls are caused by dynamic extension, either reduce the frequency of extension by allocating larger extents, or, if you are using Oracle 8i, consider taking advantage of locally managed tablespaces.
This data item represents the percentage of time spent looking for buffers, fetching rows
or index keys, etc. Generally, "other" CPU should represent the highest percentage of CPU
time out of the total CPU time used.
((DeltaCpuTime - (DeltaParseTime + DeltaRecursiveTime)) / DeltaCpuTime) * 100Description
Data Source
where:
It may be possible to reduce "other" CPU time by investigating SQL statements that have a high number of buffer_gets and/or a high number of physical reads.
This data item represents the number of blocks obtained in CURRENT mode per second
during this sample period.
DeltaBlockGets / SecondsDescription
Data Source
where:
This data item represents the number of times a consistent read was requested for a block per second
during this sample period.
DeltaConsistentGets / SecondsDescription
Data Source
where:
This data item represents the number of data blocks read from disk per second
during this sample period.
DeltaPhysicalReads / SecondsDescription
Data Source
where:
This data item represents the percentage of reads that were directly read from disk,
bypassing the buffer cache, during this sample period. For example, in high bandwidth,
data-intensive operations such as parallel query, reads of disk blocks bypass the
buffer cache to maximize transfer rates and to prevent the premature aging of
shared data blocks resident in the buffer cache.
DeltaDirectReads / DeltaPhysicalReadsDescription
Data Source
where:
This data item represents the number of times changes were made to blocks in the SGA as
part of an update or delete. These are changes that are generating redo log entries and
hence will be permanent changes to the database if the transaction is committed.
This statistic is a rough indication of the total database work. This statistic indicates
the rate at which buffers are being dirtied.
DeltaBlockChanges / SecondsDescription
Data Source
where:
This data item represents the number of times changes were made to blocks in the SGA as
part of an update or delete. Workloads that produce a great deal of consistent changes
can consume a great deal of resources.
DeltaConsistentChanges / SecondsDescription
Data Source
where:
This data item represents the number of sorts to disk as opposed to being performed
in memory per second for this sample period.
For best performance, most sorts should occur in memory, because sorts to disks are
expensive to perform. If the sort area is too small, extra sort runs will be
required during the sort operation. This increases CPU and I/O resource consumption.
DeltaDiskSorts / SecondsDescription
Data Source
where:
If excessive sorts are taking place on disk, consider increasing the SORT_AREA_SIZE initialization parameter to increase the size of the sort area. A larger sort area will allow the Oracle Server to keep sorts in memory, reducing the number of I/O operations required to do an equivalent amount of work using the current sort area size.
This data item represents the number of sorts performed in memory as opposed to on
disk per second for this sample period.
For best performance, most sorts should occur in memory, because sorts to disks are
expensive to perform. If the sort area is too small, extra sort runs will be
required during the sort operation. This increases CPU and I/O resource consumption.
DeltaDiskSorts / SecondsDescription
Data Source
where:
If excessive sorts are taking place on disk, consider increasing the SORT_AREA_SIZE initialization parameter to increase the size of the sort area. A larger sort area will allow the Oracle Server to keep sorts in memory, reducing the number of I/O operations required to do an equivalent amount of work using the current sort area size.
This data item represents the average number of rows sorted per second during
this sample period.
DeltaSortRows / SecondsDescription
Data Source
where:
This data item represents the percentage of sorts performed on disk as opposed to in
memory for this sample period.
For best performance, most sorts should occur in memory, because sorts to disks are
expensive to perform. If the sort area is too small, extra sort runs will be
required during the sort operation. This increases CPU and I/O resource consumption.
DeltaDiskSorts / DeltaMemorySortsDescription
Data Source
where:
If excessive sorts are taking place on disk, consider increasing the SORT_AREA_SIZE initialization parameter to increase the size of the sort area. A larger sort area will allow the Oracle Server to keep sorts in memory, reducing the number of I/O operations required to do an equivalent amount of work using the current sort area size.
Percentage of sorts performed to disk
This data item represents the number of parses per second during this sample
period.
DeltaParseCount / SecondDescription
Data Source
where:
If there appears to be excessive time spent parsing, evaluate SQL statements to determine which can be modified to optimize shared SQL pool memory use and avoid unnecessary statement reparsing. This type of problem is commonly caused when similar SQL statements are written which differ in space, case, or some combination of the two. You may also consider using bind variables rather than explicitly specified constants in your statements whenever possible.
This data item represents the number of parse calls (hard and soft) per second
during this sample period.
DeltaParseCount / SecondDescription
Data Source
where:
This data item represents the number of parse calls (hard and soft) per second
during this sample period.
DeltaParseElapsedTimeDescription
Data Source
where:
This data item represents the current UGA size for this session.
select s.value from v$sesstat s, v$statname n
where n.name='session uga memory' and n.statistic#=s.statistic#'
between sample end and start
Description
Data Source
This data item represents the average time waited per parse, in seconds,
during this sample period.
((DeltaParseElapsedTime - DeltaParseCpuTime) / Seconds) / DeltaParseCountDescription
Data Source
where:
This data item represents the number of statement executions (user and recursive)
per second during this sample period.
DeltaExecutes / SecondsDescription
Data Source
where:
Parallel Query activity
Parallel Query activity
Oracle process identifier
Operating system process identifier
Instance ID
The logical group of servers to which this parallel server process belongs
The logical set of servers to which this parallel server process belongs
Degree of parallelism being used by the server set
Degree of parallelism that was requested by the user
Event name this session is waiting for
Tables that cannot extend because next_extent is larger than available space
Tables that cannot extend because next_extent is larger than available space
Tablespace name
Owner of the table
Next extend
Size of the largest free chunk in the tablespace
Session statistics for host
This class includes the following charts:
Session statistics for host
This data item represents the total number of parse calls (hard and soft) for
this session.
select s.value from v$sesstat s, v$statname n
where n.name='parse count (total)' and n.statistic#=s.statistic#
Description
Data Source
This data item represents the total number of calls (user and recursive) that
executed SQL statements for this session.
UserCalls + RecursiveCallsDescription
Data Source
where:
This data item represents the number of hits in the session cursor cache during this
sample period.
DeltaCursorCacheHitsDescription
Data Source
where:
This data item represents the total number of cursors cached during this
sample period. This value is only incremented if SESSION_CACHED_CURSORS is
greater than 0.
DeltaCursorCacheHitsDescription
Data Source
where:
This data item represents the percentage of CPU time being used by this session.
(DeltaCpuTime / DeltaTotalCpuTime) * 100Description
Data Source
where:
This data item represents the percentage of this session's CPU time that
is being used for parsing (hard and soft). Parse time CPU can be a strong
indication that an application has not been well tuned. High parse time
CPU usually indicates that the application may be spending too much time
opening and closing cursors or is not using bind variables.
(DeltaParseTime / DeltaCpuTime) * 100Description
Data Source
where:
If excessive parsing is taking place, examine SQL statements. Look for statements that can be modified to optimize shared SQL pool memory use and avoid unnecessary statement reparsing. This type of problem is commonly caused when similar SQL statements are written which differ in space, case, or some combination of the two. You may also consider using bind variables rather than explicitly specified constants in your statements whenever possible.
Sometimes, to execute a SQL statement issued by a user, the Oracle Server must issue
additional statements. Such statements are called recursive calls or recursive SQL statements.
For example, if you insert a row into a table that does not have enough space to hold that
row, the Oracle Server makes recursive calls to allocate the space dynamically if dictionary
managed tablespaces are being used. Recursive calls are also generated:
Description
This data item represents the percentage of this session's CPU time that is being used for recursive calls.
(DeltaRecursiveTime / DeltaCpuTime) * 100
where:
If the Oracle Server appears to be making excessive recursive calls while your application is running, determine what activity is causing these recursive calls. If you determine that the recursive calls are caused by dynamic extension, either reduce the frequency of extension by allocating larger extents, or, if you are using Oracle 8i, consider taking advantage of locally managed tablespaces.
This data item represents the percentage of time spent looking for buffers, fetching rows
or index keys, etc. Generally, "other" CPU should represent the highest percentage of CPU
time out of the total CPU time used.
((DeltaCpuTime - (DeltaParseTime + DeltaRecursiveTime)) / DeltaCpuTime) * 100Description
Data Source
where:
It may be possible to reduce "other" CPU time by investigating SQL statements that have a high number of buffer_gets and/or a high number of physical reads.
This data item represents the number of blocks obtained in CURRENT mode per second
during this sample period.
DeltaBlockGets / SecondsDescription
Data Source
where:
This data item represents the number of times a consistent read was requested for a block per second
during this sample period.
DeltaConsistentGets / SecondsDescription
Data Source
where:
This data item represents the number of data blocks read from disk per second
during this sample period.
DeltaPhysicalReads / SecondsDescription
Data Source
where:
This data item represents the percentage of reads that were directly read from disk,
bypassing the buffer cache, during this sample period. For example, in high bandwidth,
data-intensive operations such as parallel query, reads of disk blocks bypass the
buffer cache to maximize transfer rates and to prevent the premature aging of
shared data blocks resident in the buffer cache.
DeltaDirectReads / DeltaPhysicalReadsDescription
Data Source
where:
This data item represents the number of times changes were made to blocks in the SGA as
part of an update or delete. These are changes that are generating redo log entries and
hence will be permanent changes to the database if the transaction is committed.
This statistic is a rough indication of the total database work. This statistic indicates
the rate at which buffers are being dirtied.
DeltaBlockChanges / SecondsDescription
Data Source
where:
This data item represents the number of times changes were made to blocks in the SGA as
part of an update or delete. Workloads that produce a great deal of consistent changes
can consume a great deal of resources.
DeltaConsistentChanges / SecondsDescription
Data Source
where:
This data item represents the number of sorts to disk as opposed to being performed
in memory per second for this sample period.
For best performance, most sorts should occur in memory, because sorts to disks are
expensive to perform. If the sort area is too small, extra sort runs will be
required during the sort operation. This increases CPU and I/O resource consumption.
DeltaDiskSorts / SecondsDescription
Data Source
where:
If excessive sorts are taking place on disk, consider increasing the SORT_AREA_SIZE initialization parameter to increase the size of the sort area. A larger sort area will allow the Oracle Server to keep sorts in memory, reducing the number of I/O operations required to do an equivalent amount of work using the current sort area size.
This data item represents the number of sorts performed in memory as opposed to on
disk per second for this sample period.
For best performance, most sorts should occur in memory, because sorts to disks are
expensive to perform. If the sort area is too small, extra sort runs will be
required during the sort operation. This increases CPU and I/O resource consumption.
DeltaDiskSorts / SecondsDescription
Data Source
where:
If excessive sorts are taking place on disk, consider increasing the SORT_AREA_SIZE initialization parameter to increase the size of the sort area. A larger sort area will allow the Oracle Server to keep sorts in memory, reducing the number of I/O operations required to do an equivalent amount of work using the current sort area size.
This data item represents the average number of rows sorted per second during
this sample period.
DeltaSortRows / SecondsDescription
Data Source
where:
This data item represents the percentage of sorts performed on disk as opposed to in
memory for this sample period.
For best performance, most sorts should occur in memory, because sorts to disks are
expensive to perform. If the sort area is too small, extra sort runs will be
required during the sort operation. This increases CPU and I/O resource consumption.
DeltaDiskSorts / DeltaMemorySortsDescription
Data Source
where:
If excessive sorts are taking place on disk, consider increasing the SORT_AREA_SIZE initialization parameter to increase the size of the sort area. A larger sort area will allow the Oracle Server to keep sorts in memory, reducing the number of I/O operations required to do an equivalent amount of work using the current sort area size.
Percentage of sorts performed to disk
This data item represents the number of parses per second during this sample
period.
DeltaParseCount / SecondDescription
Data Source
where:
If there appears to be excessive time spent parsing, evaluate SQL statements to determine which can be modified to optimize shared SQL pool memory use and avoid unnecessary statement reparsing. This type of problem is commonly caused when similar SQL statements are written which differ in space, case, or some combination of the two. You may also consider using bind variables rather than explicitly specified constants in your statements whenever possible.
This data item represents the number of parse calls (hard and soft) per second
during this sample period.
DeltaParseCount / SecondDescription
Data Source
where:
This data item represents the number of parse calls (hard and soft) per second
during this sample period.
DeltaParseElapsedTimeDescription
Data Source
where:
This data item represents the current UGA size for this session.
select s.value from v$sesstat s, v$statname n
where n.name='session uga memory' and n.statistic#=s.statistic#'
between sample end and start
Description
Data Source
This data item represents the average time waited per parse, in seconds,
during this sample period.
((DeltaParseElapsedTime - DeltaParseCpuTime) / Seconds) / DeltaParseCountDescription
Data Source
where:
This data item represents the number of statement executions (user and recursive)
per second during this sample period.
DeltaExecutes / SecondsDescription
Data Source
where:
Session serial number
Session statistics for program
This class includes the following charts:
Session statistics for program
This data item represents the total number of parse calls (hard and soft) for
this session.
select s.value from v$sesstat s, v$statname n
where n.name='parse count (total)' and n.statistic#=s.statistic#
Description
Data Source
This data item represents the total number of calls (user and recursive) that
executed SQL statements for this session.
UserCalls + RecursiveCallsDescription
Data Source
where:
This data item represents the number of hits in the session cursor cache during this
sample period.
DeltaCursorCacheHitsDescription
Data Source
where:
This data item represents the total number of cursors cached during this
sample period. This value is only incremented if SESSION_CACHED_CURSORS is
greater than 0.
DeltaCursorCacheHitsDescription
Data Source
where:
This data item represents the percentage of CPU time being used by this session.
(DeltaCpuTime / DeltaTotalCpuTime) * 100Description
Data Source
where:
This data item represents the percentage of this session's CPU time that
is being used for parsing (hard and soft). Parse time CPU can be a strong
indication that an application has not been well tuned. High parse time
CPU usually indicates that the application may be spending too much time
opening and closing cursors or is not using bind variables.
(DeltaParseTime / DeltaCpuTime) * 100Description
Data Source
where:
If excessive parsing is taking place, examine SQL statements. Look for statements that can be modified to optimize shared SQL pool memory use and avoid unnecessary statement reparsing. This type of problem is commonly caused when similar SQL statements are written which differ in space, case, or some combination of the two. You may also consider using bind variables rather than explicitly specified constants in your statements whenever possible.
Sometimes, to execute a SQL statement issued by a user, the Oracle Server must issue
additional statements. Such statements are called recursive calls or recursive SQL statements.
For example, if you insert a row into a table that does not have enough space to hold that
row, the Oracle Server makes recursive calls to allocate the space dynamically if dictionary
managed tablespaces are being used. Recursive calls are also generated:
Description
This data item represents the percentage of this session's CPU time that is being used for recursive calls.
(DeltaRecursiveTime / DeltaCpuTime) * 100
where:
If the Oracle Server appears to be making excessive recursive calls while your application is running, determine what activity is causing these recursive calls. If you determine that the recursive calls are caused by dynamic extension, either reduce the frequency of extension by allocating larger extents, or, if you are using Oracle 8i, consider taking advantage of locally managed tablespaces.
This data item represents the percentage of time spent looking for buffers, fetching rows
or index keys, etc. Generally, "other" CPU should represent the highest percentage of CPU
time out of the total CPU time used.
((DeltaCpuTime - (DeltaParseTime + DeltaRecursiveTime)) / DeltaCpuTime) * 100Description
Data Source
where:
It may be possible to reduce "other" CPU time by investigating SQL statements that have a high number of buffer_gets and/or a high number of physical reads.
This data item represents the number of blocks obtained in CURRENT mode per second
during this sample period.
DeltaBlockGets / SecondsDescription
Data Source
where:
This data item represents the number of times a consistent read was requested for a block per second
during this sample period.
DeltaConsistentGets / SecondsDescription
Data Source
where:
This data item represents the number of data blocks read from disk per second
during this sample period.
DeltaPhysicalReads / SecondsDescription
Data Source
where:
This data item represents the percentage of reads that were directly read from disk,
bypassing the buffer cache, during this sample period. For example, in high bandwidth,
data-intensive operations such as parallel query, reads of disk blocks bypass the
buffer cache to maximize transfer rates and to prevent the premature aging of
shared data blocks resident in the buffer cache.
DeltaDirectReads / DeltaPhysicalReadsDescription
Data Source
where:
This data item represents the number of times changes were made to blocks in the SGA as
part of an update or delete. These are changes that are generating redo log entries and
hence will be permanent changes to the database if the transaction is committed.
This statistic is a rough indication of the total database work. This statistic indicates
the rate at which buffers are being dirtied.
DeltaBlockChanges / SecondsDescription
Data Source
where:
This data item represents the number of times changes were made to blocks in the SGA as
part of an update or delete. Workloads that produce a great deal of consistent changes
can consume a great deal of resources.
DeltaConsistentChanges / SecondsDescription
Data Source
where:
This data item represents the number of sorts to disk as opposed to being performed
in memory per second for this sample period.
For best performance, most sorts should occur in memory, because sorts to disks are
expensive to perform. If the sort area is too small, extra sort runs will be
required during the sort operation. This increases CPU and I/O resource consumption.
DeltaDiskSorts / SecondsDescription
Data Source
where:
If excessive sorts are taking place on disk, consider increasing the SORT_AREA_SIZE initialization parameter to increase the size of the sort area. A larger sort area will allow the Oracle Server to keep sorts in memory, reducing the number of I/O operations required to do an equivalent amount of work using the current sort area size.
This data item represents the number of sorts performed in memory as opposed to on
disk per second for this sample period.
For best performance, most sorts should occur in memory, because sorts to disks are
expensive to perform. If the sort area is too small, extra sort runs will be
required during the sort operation. This increases CPU and I/O resource consumption.
DeltaDiskSorts / SecondsDescription
Data Source
where:
If excessive sorts are taking place on disk, consider increasing the SORT_AREA_SIZE initialization parameter to increase the size of the sort area. A larger sort area will allow the Oracle Server to keep sorts in memory, reducing the number of I/O operations required to do an equivalent amount of work using the current sort area size.
This data item represents the average number of rows sorted per second during
this sample period.
DeltaSortRows / SecondsDescription
Data Source
where:
This data item represents the percentage of sorts performed on disk as opposed to in
memory for this sample period.
For best performance, most sorts should occur in memory, because sorts to disks are
expensive to perform. If the sort area is too small, extra sort runs will be
required during the sort operation. This increases CPU and I/O resource consumption.
DeltaDiskSorts / DeltaMemorySortsDescription
Data Source
where:
If excessive sorts are taking place on disk, consider increasing the SORT_AREA_SIZE initialization parameter to increase the size of the sort area. A larger sort area will allow the Oracle Server to keep sorts in memory, reducing the number of I/O operations required to do an equivalent amount of work using the current sort area size.
Percentage of sorts performed to disk
This data item represents the number of parses per second during this sample
period.
DeltaParseCount / SecondDescription
Data Source
where:
If there appears to be excessive time spent parsing, evaluate SQL statements to determine which can be modified to optimize shared SQL pool memory use and avoid unnecessary statement reparsing. This type of problem is commonly caused when similar SQL statements are written which differ in space, case, or some combination of the two. You may also consider using bind variables rather than explicitly specified constants in your statements whenever possible.
This data item represents the number of parse calls (hard and soft) per second
during this sample period.
DeltaParseCount / SecondDescription
Data Source
where:
This data item represents the number of parse calls (hard and soft) per second
during this sample period.
DeltaParseElapsedTimeDescription
Data Source
where:
This data item represents the current UGA size for this session.
select s.value from v$sesstat s, v$statname n
where n.name='session uga memory' and n.statistic#=s.statistic#'
between sample end and start
Description
Data Source
This data item represents the average time waited per parse, in seconds,
during this sample period.
((DeltaParseElapsedTime - DeltaParseCpuTime) / Seconds) / DeltaParseCountDescription
Data Source
where:
This data item represents the number of statement executions (user and recursive)
per second during this sample period.
DeltaExecutes / SecondsDescription
Data Source
where:
Session serial number
Session statistics for user
This class includes the following charts:
Session statistics for user
This data item represents the total number of parse calls (hard and soft) for
this session.
select s.value from v$sesstat s, v$statname n
where n.name='parse count (total)' and n.statistic#=s.statistic#
Description
Data Source
This data item represents the total number of calls (user and recursive) that
executed SQL statements for this session.
UserCalls + RecursiveCallsDescription
Data Source
where:
This data item represents the number of hits in the session cursor cache during this
sample period.
DeltaCursorCacheHitsDescription
Data Source
where:
This data item represents the total number of cursors cached during this
sample period. This value is only incremented if SESSION_CACHED_CURSORS is
greater than 0.
DeltaCursorCacheHitsDescription
Data Source
where:
This data item represents the percentage of CPU time being used by this session.
(DeltaCpuTime / DeltaTotalCpuTime) * 100Description
Data Source
where:
This data item represents the percentage of this session's CPU time that
is being used for parsing (hard and soft). Parse time CPU can be a strong
indication that an application has not been well tuned. High parse time
CPU usually indicates that the application may be spending too much time
opening and closing cursors or is not using bind variables.
(DeltaParseTime / DeltaCpuTime) * 100Description
Data Source
where:
If excessive parsing is taking place, examine SQL statements. Look for statements that can be modified to optimize shared SQL pool memory use and avoid unnecessary statement reparsing. This type of problem is commonly caused when similar SQL statements are written which differ in space, case, or some combination of the two. You may also consider using bind variables rather than explicitly specified constants in your statements whenever possible.
Sometimes, to execute a SQL statement issued by a user, the Oracle Server must issue
additional statements. Such statements are called recursive calls or recursive SQL statements.
For example, if you insert a row into a table that does not have enough space to hold that
row, the Oracle Server makes recursive calls to allocate the space dynamically if dictionary
managed tablespaces are being used. Recursive calls are also generated:
Description
This data item represents the percentage of this session's CPU time that is being used for recursive calls.
(DeltaRecursiveTime / DeltaCpuTime) * 100
where:
If the Oracle Server appears to be making excessive recursive calls while your application is running, determine what activity is causing these recursive calls. If you determine that the recursive calls are caused by dynamic extension, either reduce the frequency of extension by allocating larger extents, or, if you are using Oracle 8i, consider taking advantage of locally managed tablespaces.
This data item represents the percentage of time spent looking for buffers, fetching rows
or index keys, etc. Generally, "other" CPU should represent the highest percentage of CPU
time out of the total CPU time used.
((DeltaCpuTime - (DeltaParseTime + DeltaRecursiveTime)) / DeltaCpuTime) * 100Description
Data Source
where:
It may be possible to reduce "other" CPU time by investigating SQL statements that have a high number of buffer_gets and/or a high number of physical reads.
This data item represents the number of blocks obtained in CURRENT mode per second
during this sample period.
DeltaBlockGets / SecondsDescription
Data Source
where:
This data item represents the number of times a consistent read was requested for a block per second
during this sample period.
DeltaConsistentGets / SecondsDescription
Data Source
where:
This data item represents the number of data blocks read from disk per second
during this sample period.
DeltaPhysicalReads / SecondsDescription
Data Source
where:
This data item represents the percentage of reads that were directly read from disk,
bypassing the buffer cache, during this sample period. For example, in high bandwidth,
data-intensive operations such as parallel query, reads of disk blocks bypass the
buffer cache to maximize transfer rates and to prevent the premature aging of
shared data blocks resident in the buffer cache.
DeltaDirectReads / DeltaPhysicalReadsDescription
Data Source
where:
This data item represents the number of times changes were made to blocks in the SGA as
part of an update or delete. These are changes that are generating redo log entries and
hence will be permanent changes to the database if the transaction is committed.
This statistic is a rough indication of the total database work. This statistic indicates
the rate at which buffers are being dirtied.
DeltaBlockChanges / SecondsDescription
Data Source
where:
This data item represents the number of times changes were made to blocks in the SGA as
part of an update or delete. Workloads that produce a great deal of consistent changes
can consume a great deal of resources.
DeltaConsistentChanges / SecondsDescription
Data Source
where:
This data item represents the number of sorts to disk as opposed to being performed
in memory per second for this sample period.
For best performance, most sorts should occur in memory, because sorts to disks are
expensive to perform. If the sort area is too small, extra sort runs will be
required during the sort operation. This increases CPU and I/O resource consumption.
DeltaDiskSorts / SecondsDescription
Data Source
where:
If excessive sorts are taking place on disk, consider increasing the SORT_AREA_SIZE initialization parameter to increase the size of the sort area. A larger sort area will allow the Oracle Server to keep sorts in memory, reducing the number of I/O operations required to do an equivalent amount of work using the current sort area size.
This data item represents the number of sorts performed in memory as opposed to on
disk per second for this sample period.
For best performance, most sorts should occur in memory, because sorts to disks are
expensive to perform. If the sort area is too small, extra sort runs will be
required during the sort operation. This increases CPU and I/O resource consumption.
DeltaDiskSorts / SecondsDescription
Data Source
where:
If excessive sorts are taking place on disk, consider increasing the SORT_AREA_SIZE initialization parameter to increase the size of the sort area. A larger sort area will allow the Oracle Server to keep sorts in memory, reducing the number of I/O operations required to do an equivalent amount of work using the current sort area size.
This data item represents the average number of rows sorted per second during
this sample period.
DeltaSortRows / SecondsDescription
Data Source
where:
This data item represents the percentage of sorts performed on disk as opposed to in
memory for this sample period.
For best performance, most sorts should occur in memory, because sorts to disks are
expensive to perform. If the sort area is too small, extra sort runs will be
required during the sort operation. This increases CPU and I/O resource consumption.
DeltaDiskSorts / DeltaMemorySortsDescription
Data Source
where:
If excessive sorts are taking place on disk, consider increasing the SORT_AREA_SIZE initialization parameter to increase the size of the sort area. A larger sort area will allow the Oracle Server to keep sorts in memory, reducing the number of I/O operations required to do an equivalent amount of work using the current sort area size.
Percentage of sorts performed to disk
This data item represents the number of parses per second during this sample
period.
DeltaParseCount / SecondDescription
Data Source
where:
If there appears to be excessive time spent parsing, evaluate SQL statements to determine which can be modified to optimize shared SQL pool memory use and avoid unnecessary statement reparsing. This type of problem is commonly caused when similar SQL statements are written which differ in space, case, or some combination of the two. You may also consider using bind variables rather than explicitly specified constants in your statements whenever possible.
This data item represents the number of parse calls (hard and soft) per second
during this sample period.
DeltaParseCount / SecondDescription
Data Source
where:
This data item represents the number of parse calls (hard and soft) per second
during this sample period.
DeltaParseElapsedTimeDescription
Data Source
where:
This data item represents the current UGA size for this session.
select s.value from v$sesstat s, v$statname n
where n.name='session uga memory' and n.statistic#=s.statistic#'
between sample end and start
Description
Data Source
This data item represents the average time waited per parse, in seconds,
during this sample period.
((DeltaParseElapsedTime - DeltaParseCpuTime) / Seconds) / DeltaParseCountDescription
Data Source
where:
This data item represents the number of statement executions (user and recursive)
per second during this sample period.
DeltaExecutes / SecondsDescription
Data Source
where:
Session serial number
SQL view usage
SQL view usage
This data item represents the text for the view.
select text from dba_views
Description
Data Source
Lists tables being used by a SQL statement
This class includes the following charts:
Lists tables being used by a SQL statement
This data item represents the date of the most recent time this
table was analyzed.
select analyzetime from sys.tab$
Description
Data Source
Because the cost-based optimizer relies on statistics, it is important to ensure these statistics are valid. If the size and the data distribution of tables change frequently, these statistics should be generated regularly to ensure their accuracy. Cost-based optimizer statistics can be generated using the ANALYZE command or with the DBMS_STATS package.
When you generate statistics for a table, if the dictionary already contains statistics for the analyzed object, Oracle updates the existing statistics. Oracle also invalidates any currently parsed SQL statement that access the analyzed object.
The next time such a statement executes, the optimizer automatically chooses a new execution plan based on the new statistics.
This data item represents the number of rows returned during
the generation of cost-based optimizer statistics.
Because the cost-based optimizer relies on statistics, it is important
to ensure these statistics are valid. If the size and the data distribution
of tables change frequently, these statistics should be generated regularly
to ensure their accuracy. Cost-based optimizer statistics can be generated
using the ANALYZE command or with the DBMS_STATS package.
Because of the time and space required for computing statistics, in many cases
it is possible to use estimation rather than computation.
select rowcnt from sys.tab$
Description
Data Source
This data item represents the percentage of rows that are chained or migrated.
select (chncnt/rowcnt)*100 from sys.tab$
Description
Data Source
In two circumstances, the data for a row in a table may be too large to fit into a single data block. This results in row fragmentation.
In the first case, the row is too large to fit into one data block when it is first inserted. In this case, the Oracle Server stores the data for the row in a chain of data blocks reserved for that segment. Row chaining most often occurs with large rows, such as rows that contain a column of datatype LONG or LONG RAW. Row chaining in these cases is unavoidable without using a larger DB_BLOCK_SIZE.
In the second case, however, a row that originally fit into one data block is updated so that the overall row length increases and the block's free space is already completely filled. In this case, Oracle migrates the data for the entire row to a new data block, assuming the entire row can fit into a new block. Oracle preserves the original row piece of a migrated row to point to the new block containing the migrated row.
When a row is continued or migrated, I/O performance associated with this row decreases because Oracle must scan more than one data block to retrieve the information for the row.
You can identify migrated and chained rows by using the analyze list chained rows command. This command collects information about each migrated and chained row and placed this information into a specified output table; for example, CHAINED_ROWS. The collected information includes the head rowid of any migrated and chained row. Once this has been identified, the following steps can be used to focus your efforts on reducing migrated and chained rows instead of rebuilding the entire table:Correcting row fragmentation is more expensive than proper prevention. Often, row migration problems can be minimized by correctly setting the table’s pctfree value. Setting pctfree high can waste some space but will more or less guarantee no row migration, while being too conservative may result in excessive row migration and reduced performance. Oracle recommends erring on the side of setting pctfree high rather than low, because in most cases this probably will be only a difference of about 5%. For tables that don’t have varying width columns and/or don’t get updated, this parameter can be safely ignored or set to a low value.
If the percentage of chained and/or migrated rows is greater than 5% and the maximum row length is less than the database block size then consider increasing the current pctfree setting to reduce the potential for rows which would have to be migrated in the future.
SQL statements that access the table
This class includes the following charts:
SQL statements that access the table
This data item contains the first eighty characters of the SQL text for the current cursor.
select sql_text from v$sqlarea
Description
Data Source
This data item represents the number of physical reads. In other words, its value is the
number of read requests that were not satisfied by buffers in the cache and resulted in access
to datafiles on disk.
select disk_reads from v$sqlarea
Description
Data Source
This data item represents the number of read requests that were satisfied by buffers
in the cache. In other words, its value is the total number of blocks read by all executions of
this statement.
select buffer_gets from v$sqlarea
Description
Data Source
This data item represents the number of times this statement was executed per second
during this sample period.
DeltaExecutions / SecondsDescription
Data Source
where:
This data item represents the total number of times this statement was parsed per second
during this sample period.
DeltaParseCalls / SecondsDescription
Data Source
where:
This data item represents the number of physical reads performed by this statement per
second during the sample period. In other words, its value is the number of read requests that
were not satisfied by buffers in the cache and resulted in access to datafiles on disk.
DeltaPhysicalReads / SecondsDescription
Data Source
where:
This data item represents the number of read requests for this statement that were
satisfied by buffers in the cache per second during this sample period.
DeltaBufferGets / SecondsDescription
Data Source
where:
This data item represents the total number of rows processed to complete this statement
per second during the sample period.
DeltaRowsProcessed / SecondsDescription
Data Source
where:
This data item represents the sum of all shareable memory, in bytes, used by this
statement.
select sharable_mem from v$sqlarea
Description
Data Source
This data item represents the sum of all persistent memory, in bytes, used by this
statement.
select persistent_mem from v$sqlarea
Description
Data Source
This data item represents the sum of all memory, in bytes, currently in use by this
statement.
select runtime_mem from v$sqlarea
Description
Data Source
This data item represents the name of the application module that first executed
this statement. This name can be optionally set by using DMBS_APPLICATION_INFO.SET_MODULE.
select module from v$sqlarea
Description
Data Source
This data item represents the name of the action being performed by the application module that
first executed this statement. This name can be optionally set by using
DMBS_APPLICATION_INFO.SET_ACTION.
select action from v$sqlarea
Description
Data Source
This data item represents the percentage of total physical reads that were
attributed to this statement during the sample period.
DeltaPhysicalReads / DeltaTotalReadsDescription
Data Source
where:
This data item represents the percentage of total buffer gets that were
attributed to this statement during the sample period.
DeltaBufferGets / DeltaTotalGetsDescription
Data Source
where:
SQL statement that the current session is executing
This class includes the following charts:
SQL statement that the current session is executing
This data item contains the first eighty characters of the SQL text for the current cursor.
select sql_text from v$sqlarea
Description
Data Source
This data item represents the number of physical reads. In other words, its value is the
number of read requests that were not satisfied by buffers in the cache and resulted in access
to datafiles on disk.
select disk_reads/greatest(executions,1) from v$sqlarea
Description
Data Source
This data item represents the number of read requests that were satisfied by buffers
in the cache. In other words, its value is the total number of blocks read by all executions of
this statement.
select buffer_gets/greatest(executions,1) from v$sqlarea
Description
Data Source
This data item represents the number of times this statement was executed per second
during this sample period.
DeltaExecutions / SecondsDescription
Data Source
where:
This data item represents the total number of times this statement was parsed per second
during this sample period.
DeltaParseCalls / SecondsDescription
Data Source
where:
This data item represents the number of physical reads performed by this statement per
second during the sample period. In other words, its value is the number of read requests that
were not satisfied by buffers in the cache and resulted in access to datafiles on disk.
DeltaPhysicalReads / SecondsDescription
Data Source
where:
This data item represents the number of read requests for this statement that were
satisfied by buffers in the cache per second during this sample period.
DeltaBufferGets / SecondsDescription
Data Source
where:
This data item represents the total number of rows processed to complete this statement
per second during the sample period.
DeltaRowsProcessed / SecondsDescription
Data Source
where:
This data item represents the sum of all shareable memory, in bytes, used by this
statement.
select sharable_mem from v$sqlarea
Description
Data Source
This data item represents the sum of all persistent memory, in bytes, used by this
statement.
select persistent_mem from v$sqlarea
Description
Data Source
This data item represents the sum of all memory, in bytes, currently in use by this
statement.
select runtime_mem from v$sqlarea
Description
Data Source
This data item represents the name of the application module that first executed
this statement. This name can be optionally set by using DMBS_APPLICATION_INFO.SET_MODULE.
select module from v$sqlarea
Description
Data Source
This data item represents the name of the action being performed by the application module that
first executed this statement. This name can be optionally set by using
DMBS_APPLICATION_INFO.SET_ACTION.
select action from v$sqlarea
Description
Data Source
This data item represents the percentage of total physical reads that were
attributed to this statement during the sample period.
DeltaPhysicalReads / DeltaTotalReadsDescription
Data Source
where:
This data item represents the percentage of total buffer gets that were
attributed to this statement during the sample period.
DeltaBufferGets / DeltaTotalGetsDescription
Data Source
where:
This class lists SQL statements found in the cache that are the same for the first 50 characters
This class includes the following charts:
This class lists SQL statements found in the cache that are the same for the first 50 characters
This data item represents the times a similiar SQL fragment was found in the
shared SQL area.
select count(*) from v$sqlDescription
Data Source
group by substr(sql_text,1,50) having count(*) > 5
Examine SQL statements which can be modified to optimize shared SQL pool memory use and avoid unnecessary statement reparsing. This type of problem is commonly caused when similar SQL statements are written which differ in space, case, or some combination of the two. You may also consider using bind variables rather than explicitly specified constants in your statements whenever possible.
SQL statements that appear to be the same
This class includes the following charts:
SQL statements that appear to be the same
This data item contains the first eighty characters of the SQL text for the current cursor.
select sql_text from v$sqlarea
Description
Data Source
This data item represents the number of physical reads. In other words, the
number of read requests that were not satisfied by buffers in the cache and resulted in access
to datafiles on disk.
select disk_reads/greatest(executions,1) from v$sqlarea
Description
Data Source
This data item represents the number of read requests that were satisfied by buffers
in the cache. In other words, its value is the total number of blocks read by all executions of
this statement.
select buffer_gets/greatest(executions,1) from v$sqlarea
Description
Data Source
This data item represents the number of times this statement was executed per second
during this sample period.
DeltaExecutions / SecondsDescription
Data Source
where:
This data item represents the total number of times this statement was parsed per second
during this sample period.
DeltaParseCalls / SecondsDescription
Data Source
where:
This data item represents the number of physical reads performed by this statement per
second during the sample period. In other words, its value is the number of read requests that
were not satisfied by buffers in the cache and resulted in access to datafiles on disk.
DeltaPhysicalReads / SecondsDescription
Data Source
where:
This data item represents the number of read requests for this statement that were
satisfied by buffers in the cache per second during this sample period.
DeltaBufferGets / SecondsDescription
Data Source
where:
This data item represents the total number of rows processed to complete this statement
per second during the sample period.
DeltaRowsProcessed / SecondsDescription
Data Source
where:
This data item represents the sum of all shareable memory, in bytes, used by this
statement.
select sharable_mem from v$sqlarea
Description
Data Source
This data item represents the sum of all persistent memory, in bytes, used by this
statement.
select persistent_mem from v$sqlarea
Description
Data Source
This data item represents the sum of all memory, in bytes, currently in use by this
statement.
select runtime_mem from v$sqlarea
Description
Data Source
This data item represents the name of the application module that first executed
this statement. This name can be optionally set by using DMBS_APPLICATION_INFO.SET_MODULE.
select module from v$sqlarea
Description
Data Source
This data item represents the name of the action being performed by the application module that
first executed this statement. This name can be optionally set by using
DMBS_APPLICATION_INFO.SET_ACTION.
select action from v$sqlarea
Description
Data Source
This data item represents the percentage of total physical reads that were
attributed to this statement during the sample period.
DeltaPhysicalReads / DeltaTotalReadsDescription
Data Source
where:
This data item represents the percentage of total buffer gets that were
attributed to this statement during the sample period.
DeltaBufferGets / DeltaTotalGetsDescription
Data Source
where:
Statistics that are summarized for the entire instance per second
This class includes the following charts:
Statistics that are summarized for the entire instance per second
This data item represents the number of buffers skipped over from the end of
the LRU queue to find a reusable buffer per second during this
sample period. The difference between this statistic and 'dirty buffers
inspected' is the number of buffers that could not be used because they
were busy, needed to be written after rapid aging out, or they have a user,
a waiter, or are being read/written.
DeltaFreeBuffersInspected / SecondsDescription
Data Source
where:
This data item represents the count of the number of times, per second during this
sample period, a reusable buffer or a free buffer was requested to create or load
a block.
DeltaFreeBuffersRequested / SecondsDescription
Data Source
where:
This data item represents the the number of dirty buffers found, per second during this
sample period, by the foreground while the foreground was looking for a buffer to reuse.
DeltaFreeBuffersRequested / SecondsDescription
Data Source
where:
This data item represents the total number of parse calls (hard and soft) per
second during this sample period.
DeltaParses / SecondsDescription
Data Source
where:
This data item represents the number of hard parses per second during this sample
period.
DeltaParses / SecondsDescription
Data Source
where:
If there appears to be excessive time spent parsing, evaluate SQL statements to determine which can be modified to optimize shared SQL pool memory use and avoid unnecessary statement reparsing. This type of problem is commonly caused when similar SQL statements are written which differ in space, case, or some combination of the two. You may also consider using bind variables rather than explicitly specified constants in your statements whenever possible.
This data item represents the number of statement executions (user and recursive)
per second during this sample period.
DeltaExecutes / SecondsDescription
Data Source
where:
This data item represents the total number of cursors cached per second during this
sample period. This is only incremented if SESSION_CACHED_CURSORS is greater than 0.
DeltaCursorCacheCount / SecondsDescription
Data Source
where:
This data item represents the count of the number of hits in the session cursor
cache per second during the sample period. A hit means the SQL statement did not have to
be reparsed. By subtracting this value from 'parse count (total)' you can
determine the real number of parses that happened.
DeltaCursorCacheHits / SecondsDescription
Data Source
where:
This data item represents the number of times a consistent read was requested
for a block per second during the sample period.
DeltaConsistentGets / SecondsDescription
Data Source
where:
This data item represents the number of times, per second during the sample period,
a buffer was already pinned by a client when a client checked to determine if
the desired buffer was already pinned.
DeltaPinned / SecondsDescription
Data Source
where:
This data item represents the number of times, per second during the sample period, the buffer
was not pinned by the client when a client checks to determine if the buffer it wants is
already pinned.
DeltaNotPinned / SecondsDescription
Data Source
where:
This data item represents the number of logins, parses, or execute calls
per second during the sample period,
DeltaUserCalls / SecondsDescription
Data Source
where:
This data item represents the number of calls, per second during the sample period,
that resulted in a change to an internal table.
DeltaRecursiveCalls / SecondsDescription
Data Source
where:
This data item represents the number of logons per second during the sample period.
DeltaLogons / SecondsDescription
Data Source
where:
This data item represents the number of sorts going to disk per second for this
sample period.
For best performance, most sorts should occur in memory, because sorts to disks are
expensive to perform. If the sort area is too small, extra sort runs will be
required during the sort operation. This increases CPU and I/O resource consumption.
DeltaDiskSorts / SecondsDescription
Data Source
where:
If excessive sorts are taking place on disk, consider increasing the SORT_AREA_SIZE initialization parameter to increase the size of the sort area. A larger sort area will allow the Oracle Server to keep sorts in memory, reducing the number of I/O operations required to do an equivalent amount of work using the current sort area size.
This data item represents the number of sorts performed in memory, as opposed to on
disk, per second for this sample period.
For best performance, most sorts should occur in memory, because sorts to disks are
expensive to perform. If the sort area is too small, extra sort runs will be
required during the sort operation. This increases CPU and I/O resource consumption.
DeltaMemorySorts / SecondsDescription
Data Source
where:
If excessive sorts are taking place on disk, consider increasing the SORT_AREA_SIZE initialization parameter to increase the size of the sort area. A larger sort area will allow the Oracle Server to keep sorts in memory, reducing the number of I/O operations required to do an equivalent amount of work using the current sort area size.
This data item represents the average number of rows sorted per second during
this sample period.
DeltaSortRows / SecondsDescription
Data Source
where:
This data item represents the number of waits, per second during this sample period,
that happened during an enqueue convert or get because the enqueue could not be
granted right away.
DeltaWaits / SecondsDescription
Data Source
where:
This data item represents the number of requests for blocks per second during
sample period.
DeltaGets / SecondsDescription
Data Source
where:
This data item represents the number of changes, per second during
sample period, that were made to all blocks in the SGA as a result of
an update or delete operation. This value is a rough indication of
total database work as it indicates the rate at which buffers are
being dirtied.
DeltaBlockChanges / SecondsDescription
Data Source
where:
This data item represents the number of times, per second during
sample period, a user prcoess applied rollback entries to perform a
consistent read on a block.
DeltaConsistentChanges / SecondsDescription
Data Source
where:
This data item represents the number of times, per second during the sample period,
that users manually issue the ROLLBACK statement or an error occured during a
user's transactions.
DeltaRollbacks / SecondsDescription
Data Source
where:
This value shows how often users are issuing the ROLLBACK statement or encountering errors in their transactions. Further investigation should be made to determine if the rollbacks are part of some faulty application logic or due to errors occuring through database access.
This data item represents the number of user commits performed, per second during
the sample period. When a user commits a transaction, the redo generated that
reflects the changes made to database blocks must be written to disk. Commits
often represent the closest thing to a user transaction rate.
DeltaCommits / SecondsDescription
Data Source
where:
This statistic is an indication of how much work is being accomplished within the database. A spike in the transaction rate may not necessarily be bad. If response times stay close to normal, it means your system can handle the added load. Actually, a drop in transaction rates and an increase in response time may be indicators of problems. Depending upon the application, transaction loads may vary widely across different times of the day.
This data item represents the number of long table scans per second during
sample period. A table is considered 'long' if the table is not cached and
if its high-water mark is greater than 5 blocks.
DeltaScans / SecondsDescription
Data Source
where:
This data item represents the number of short table scans per second during
sample period. A table is considered 'short' if the table is cached or
if its high-water mark is less than 5 blocks.
DeltaScans / SecondsDescription
Data Source
where:
This data item represents the amount of redo, in bytes, generated per second during this
sample period.
DeltaRedo / SecondsDescription
Data Source
where:
This data item represents the number of disk reads per second during the sample period.
DeltaReads / SecondsDescription
Data Source
where:
This data item represents the number of disk writes per second during the sample period.
DeltaWrites / SecondsDescription
Data Source
where:
This data item represents the number of logical reads per second during the
sample period.
DeltaReads / SecondsDescription
Data Source
where:
Statistics that are summarized for the entire instance per transaction
This class includes the following charts:
Statistics that are summarized for the entire instance per transaction
This data item represents the number of buffers skipped over from the end of
the LRU queue to find a reusable buffer per transaction during this
sample period. The difference between this statistic and 'dirty buffers
inspected' is the number of buffers that could not be used because they
were busy, needed to be written after rapid aging out, or they have a user,
a waiter, or are being read/written.
DeltaFreeBuffersInspected / TransactionsDescription
Data Source
where:
This data item represents the count of the number of times, per transaction during this
sample period, a reusable buffer or a free buffer was requested to create or load
a block.
DeltaFreeBuffersRequested / TransactionsDescription
Data Source
where:
This data item represents the the number of dirty buffers found, per transaction during this
sample period, by the foreground while the foreground was looking for a buffer to reuse.
DeltaFreeBuffersRequested / TransactionsDescription
Data Source
where:
This data item represents the total number of parse calls (hard and soft) per
transaction during this sample period.
DeltaParses / TransactionsDescription
Data Source
where:
This data item represents the number of hard parses per transaction during this sample
period.
DeltaParses / TransactionsDescription
Data Source
where:
If there appears to be excessive time spent parsing, evaluate SQL statements to determine which can be modified to optimize shared SQL pool memory use and avoid unnecessary statement reparsing. This type of problem is commonly caused when similar SQL statements are written which differ in space, case, or some combination of the two. You may also consider using bind variables rather than explicitly specified constants in your statements whenever possible.
This data item represents the number of statement executions (user and recursive)
per transaction during this sample period.
DeltaExecutes / TransactionsDescription
Data Source
where:
This data item represents the total number of cursors cached per transaction during this
sample period. This is only incremented if SESSION_CACHED_CURSORS is greater than 0.
DeltaCursorCacheCount / TransactionsDescription
Data Source
where:
This data item represents the count of the number of hits in the session cursor
cache per transaction during the sample period. A hit means the SQL statement did not have to
be reparsed. By subtracting this value from 'parse count (total)' one can
determine the real number of parses that happened.
DeltaCursorCacheHits / TransactionsDescription
Data Source
where:
This data item represents the number of times a consistent read was requested
for a block per transaction during the sample period.
DeltaConsistentGets / TransactionsDescription
Data Source
where:
This data item represents the number of times, per transaction during the sample period,
a buffer was already pinned by a client when a client checked to determine if
the desired buffer was already pinned.
DeltaPinned / TransactionsDescription
Data Source
where:
This data item represents the number of times, per transaction during the sample period, the buffer
was not pinned by the client when a client checks to determine if the buffer it wants is
already pinned.
DeltaNotPinned / TransactionsDescription
Data Source
where:
This data item represents the number of logins, parses, or execute calls
per transaction during the sample period,
DeltaUserCalls / TransactionsDescription
Data Source
where:
This data item represents the number of calls, per transaction during the sample period,
that resulted in a change to an internal table.
DeltaRecursiveCalls / TransactionsDescription
Data Source
where:
This data item represents the number of logons per transaction during the sample period.
DeltaLogons / TransactionsDescription
Data Source
where:
This data item represents the number of sorts going to disk per transactions for this
sample period.
For best performance, most sorts should occur in memory, because sorts to disks are
expensive to perform. If the sort area is too small, extra sort runs will be
required during the sort operation. This increases CPU and I/O resource consumption.
DeltaDiskSorts / TransactionsDescription
Data Source
where:
If excessive sorts are taking place on disk, consider increasing the SORT_AREA_SIZE initialization parameter to increase the size of the sort area. A larger sort area will allow the Oracle Server to keep sorts in memory, reducing the number of I/O operations required to do an equivalent amount of work using the current sort area size.
This data item represents the number of sorts performed in memory, as opposed to on
disk, per transaction for this sample period.
For best performance, most sorts should occur in memory, because sorts to disks are
expensive to perform. If the sort area is too small, extra sort runs will be
required during the sort operation. This increases CPU and I/O resource consumption.
DeltaMemorySorts / TransactionsDescription
Data Source
where:
If excessive sorts are taking place on disk, consider increasing the SORT_AREA_SIZE initialization parameter to increase the size of the sort area. A larger sort area will allow the Oracle Server to keep sorts in memory, reducing the number of I/O operations required to do an equivalent amount of work using the current sort area size.
This data item represents the average number of rows sorted per transaction during
this sample period.
DeltaSortRows / TransactionsDescription
Data Source
where:
This data item represents the number of waits, per transaction during this sample period,
that happened during an enqueue convert or get because the enqueue could not be
granted right away.
DeltaWaits / TransactionsDescription
Data Source
where:
This data item represents the number of requests for blocks per transactions during
sample period.
DeltaGets / TransactionsDescription
Data Source
where:
This data item represents the number of changes, per transaction during
sample period, that were made to all blocks in the SGA as a result of
an update or delete operation. This value is a rough indication of
total database work as it indicates the rate at which buffers are
being dirtied.
DeltaBlockChanges / TransactionsDescription
Data Source
where:
This data item represents the number of times, per transaction during
sample period, a user prcoess applied rollback entries to perform a
consistent read on a block.
DeltaConsistentChanges / TransactionsDescription
Data Source
where:
This data item represents the number of times, per transaction during the sample period,
that users manually issue the ROLLBACK statement or an error occured during a
user's transactions.
DeltaRollbacks / TransactionsDescription
Data Source
where:
This value shows how often users are issuing the ROLLBACK statement or encountering errors in their transactions. Further investigation should be made to determine if the rollbacks are part of some faulty application logic or due to errors occuring through database access.
This data item represents the number of user commits performed, per transaction during
the sample period. When a user commits a transaction, the redo generated that
reflects the changes made to database blocks must be written to disk. Commits
often represent the closest thing to a user transaction rate.
DeltaCommits / TransactionsDescription
Data Source
where:
This statistic is an indication of how much work is being accomplished within the database. A spike in the transaction rate may not necessarily be bad. If response times stay close to normal, it means your system can handle the added load. Actually, a drop in transaction rates and an increase in response time may be indicators of problems. Depending upon the application, transaction loads may vary widely across different times of the day.
This data item represents the number of long table scans per transaction during
sample period. A table is considered 'long' if the table is not cached and
if its high-water mark is greater than 5 blocks.
DeltaScans / TransactionsDescription
Data Source
where:
This data item represents the number of short table scans per transaction during
sample period. A table is considered 'short' if the table is cached or
if its high-water mark is less than 5 blocks.
DeltaScans / TransactionsDescription
Data Source
where:
This data item represents the amount of redo, in bytes, generated per transaction during this
sample period.
DeltaRedo / TransactionsDescription
Data Source
where:
This data item represents the number of disk reads per transaction during the sample period.
DeltaReads / TransactionsDescription
Data Source
where:
This data item represents the number of disk writes per transaction during the sample period.
DeltaWrites / TransactionsDescription
Data Source
where:
This data item represents the number of logical reads per transaction during the
sample period.
DeltaReads / TransactionsDescription
Data Source
where:
Current running transactions, sorted by duration
Current running transactions, sorted by duration
This data item represents the current SQL.
select sql_text from v$sqlarea
Description
Data Source
This data item represents the logical I/O per second since the transaction started.
select log_io from v$transaction
Description
Data Source
This data item represents the physical I/O per second since the transaction started.
select phy_io from v$transaction
Description
Data Source
This data item represents the consistent gets per second since the transaction started.
select cr_get from v$transaction
Description
Data Source
This data item represents the consistent changes per second since the transaction started.
select cr_change from v$transaction
Description
Data Source
This data item represents the duration, in seconds, since the transaction started.
select (sysdate - to_date(START_TIME,'mm/dd/yy hh24:mi:ss')) * 86400
from v$transaction
Description
Data Source
Segments that are currently being waited on by sessions
This class includes the following charts:
Segments that are currently being waited on by sessions
This data item represents the name of the segment containing the block that
is being waited on.
select segment_name from sys.dba_extents
where file_id = p1
and p2 between block_id and block_id+blocks-1Description
Data Source
where:
None
This data item represent the block number within a file of the extent being waited
on.
select p2 from v$session_wait
Description
Data Source
This block id, in conjunction with the file id can be used to figure out the segment and object that is being waited on. If the same segment is waited on repeatedly, you have identified a bottleneck.
This data item represents the name of the database file containing the block
that the current wait event is waiting on.
select p1 from v$session_wait
Description
Data Source
This identifies the file that is causing the wait. If the same file is causing the wait repeatedly, you have identfied the bottleneck. You should investigate further how to best spread the I/O or the applications access to objects within this file.
This data item represents the name of the owner of the segment containing
the block that is being waited on.
select owner from sys.dba_extents
where file_id = p1
and p2 between block_id and block_id+blocks-1Description
Data Source
where:
This data item represents the name of the tablespace that contains the
block being waited on.
select tablespace_name from sys.dba_extents
where file_id = p1
and p2 between block_id and block_id+blocks-1Description
Data Source
where:
Count of files and blocks being waited for
This class includes the following charts:
Count of files and blocks being waited for
This data item represents the number of files being read or written to.
select p1 from v$session_wait
Description
Data Source
This data item represents the number of files being read or written to.
select p2 from v$session_wait
Description
Data Source
File and block id's of high contention blocks within the database
File and block id's of high contention blocks within the database
Block Id that is under contention
Locks currently held by the Oracle server and outstanding requests for a lock or latch
This class includes the following charts:
Locks currently held by the Oracle server and outstanding requests for a lock or latch
Session holding or acquiring the lock
Session serial number of session holding or acquiring the lock
Enqueues are shared memory structures (locks) that serialize access to database resources.
They can be associated with a session or transaction. Enqueue names are
displayed in the LOCK_TYPE column of the DBA_LOCKS and DBA_LOCK_INTERNAL data dictionary views.
A resource uniquely identifies an object that can be locked by different sessions within an instance (local resource) or between instances (global resource). Each session that tries to lock the resource will have an
enqueue on the resource.
Note: The names of enqueues and their definitions may change from release to release.
The Oracle enqueues are:
Description
LOCK_TYPE column from V$LOCK table.
Determine the cause for the lock contention and try to remove it. Although drastic, a session can be killed by selecting a session and using the kill session tool. This should be used as a last resort to remove the blocking lock if it has been determined that it won't be freed up any time soon.
Lock mode in which the session holds the lock
Lock mode in which the process requests the lock
Name of the object being locked
The current ROWID being locked
User name of the owner of the object
Type of object
Lock identifier #1 (depends on type)
Lock identifier #2 (depends on type)
Operating system process id
The current SQL statement for a session
This class includes the following charts:
The current SQL statement for a session
This data item contains the first eighty characters of the SQL text for the
current cursor.
select sql_text from v$sqlarea
Description
Data Source
This data item represents the number of physical reads. In other words, its value is
the number of read requests that were not satisfied by buffers in the cache and
resulted in access to datafiles on disk.
select disk_reads from v$sqlarea
Description
Data Source
This data item represents the number of read requests that were satisfied by buffers
in the cache. In other words, its value is the total number of blocks read by all executions of
this statement.
select buffer_gets from v$sqlarea
Description
Data Source
This data item represents the number of times this statement was executed per second
during this sample period.
DeltaExecutions / SecondsDescription
Data Source
where:
This data item represents the total number of times this statement was parsed per second
during this sample period.
DeltaParseCalls / SecondsDescription
Data Source
where:
This data item represents the number of physical reads performed by this statement per
second during the sample period. In other words, its value is the number of read requests that
were not satisfied by buffers in the cache and resulted in access to datafiles on disk.
DeltaPhysicalReads / SecondsDescription
Data Source
where:
This data item represents the number of read requests for this statement that were
satisfied by buffers in the cache per second during this sample period.
DeltaBufferGets / SecondsDescription
Data Source
where:
This data item represents the total number of rows processed to complete this statement
per second during the sample period.
DeltaRowsProcessed / SecondsDescription
Data Source
where:
This data item represents the sum of all shareable memory, in bytes, used by this
statement.
select sharable_mem from v$sqlarea
Description
Data Source
This data item represents the sum of all persistent memory, in bytes, used by this
statement.
select persistent_mem from v$sqlarea
Description
Data Source
This data item represents the sum of all memory, in bytes, currently in use by this
statement.
select runtime_mem from v$sqlarea
Description
Data Source
This data item represents the name of the application module that first executed
this statement. This name can be optionally set by using DMBS_APPLICATION_INFO.SET_MODULE.
select module from v$sqlarea
Description
Data Source
This data item represents the name of the action being performed by the application module that
first executed this statement. This name can be optionally set by using
DMBS_APPLICATION_INFO.SET_ACTION.
select action from v$sqlarea
Description
Data Source
This data item represents the percentage of total physical reads that were
attributed to this statement during the sample period.
DeltaPhysicalReads / DeltaTotalReadsDescription
Data Source
where:
This data item represents the percentage of total buffer gets that were
attributed to this statement during the sample period.
DeltaBufferGets / DeltaTotalGetsDescription
Data Source
where:
This data item represents the session identifier.
select sid from v$session
Description
Data Source
Instance wide statistic for an OPS database
Instance wide statistic for an OPS database
Total number of OPS pings for all instances per second
Global Cache CR Timeout for all instances per second
Global Cache Convert Timeouts for all instances per second
Global Cache Freelist Waits for all instances per second
avarage CR request time in msec
avarage serve time in msec
avarage convert time in msec
avarage get time in msec
Instance wide statistic for an OPS database
Instance wide statistic for an OPS database
Total number of OPS pings for an instances per second
Global Cache CR Timeout for an instances per second
Global Cache Convert Timeouts for an instances per second
Global Cache Freelist Waits for an instances per second
avarage CR request time in msec
avarage serve time in msec
avarage convert time in msec
avarage get time in msec
ratio of 'DBWR cross instance writes' to 'physical writes'
Ping by File
Ping by File
Ping count per second for this file
Invisible
Invisible
Ping count per second for this file
Invisible
Invisible
Ping count per second for this file of
How pings are distributed over blocks of different classes
How pings are distributed over blocks of different classes
Ping count per second for this file
Ping count percentage
Invisible
Invisible
Ping count per second for this file
Ping count percentage
How pings are distributed over objects.
How pings are distributed over objects.
Ping count per second for this object
Type of database Object
Invisible
Invisible
Ping count per second for this object
Type of database Object
Invisible
Invisible
Ping count per second for this object
maximum pinged block#
maximum pinged block#
name of the object
Type of the object
file number
block number
Ping count per second for this object
invisible
invisible
Ping count per second for this object
System waits
System waits
wait time for this event
percentage of the wait
Library cache
Library cache
dlm lock requests
dlm pin requests
dlm invalidation
Library cache by Istance
Library cache by Istance
dlm lock requests
dlm pin requests
dlm invalidation
Row cach
Row cach
dlm request
dlm conflocts
dlm conflicts percentage
Row cach by instance
Row cach by instance
dlm request
dlm conflocts
dlm conflicts percentage