Adjusting the Oracle Database 10g Shared Pool
Adjusting the Oracle Database 10g Shared Pool
Many DBAs know that there are several queries for determining when the Oracle shared pool is too small. The library cache miss ratio tells the DBA whether to add space to the shared pool, and it represents the ratio of the sum of library cache reloads to the sum of pins.
In general, if the library cache ratio is over 1, you should consider adding to the shared_pool_size. Library cache misses occur during the parsing and preparation of the execution plans for SQL statements.
The compilation of a SQL statement consists of two phases: the parse phase and the execute phase. When the time comes to parse an SQL statement, Oracle checks to see if the parsed representation of the statement already exists in the library cache. If not, Oracle will allocate a shared SQL area within the library cache and then parse the SQL statement. At execution time, Oracle checks to see if a parsed representation of the SQL statement already exists in the library cache. If not, Oracle will reparse and execute the statement.
The following STATSPACK script will compute the library cache miss ratio. Note that the script sums all of the values for the individual components within the library cache and provides an instance-wide view of the health of the library cache.
← rpt_lib_miss.sql
-- *************************************************
-- Copyright © 2003 by Rampant TechPress
-- This script is free for non-commercial purposes
-- with no warranties. Use at your own risk.
--
-- To license this script for a commercial purpose,
-- contact info@
-- *************************************************
set lines 80;
set pages 999;
column mydate heading 'Yr. Mo Dy Hr.' format a16
column c1 heading "execs" format 9,999,999
column c2 heading "Cache Misses|While Executing" format 9,999,999
column c3 heading "Library Cache|Miss Ratio" format 999.99999
break on mydate skip 2;
select
to_char(snap_time,'yyyy-mm-dd HH24') mydate,
sum(new.pins-old.pins) c1,
sum(new.reloads-old.reloads) c2,
sum(new.reloads-old.reloads)/
sum(new.pins-old.pins) library_cache_miss_ratio
from
stats$librarycache old,
stats$librarycache new,
stats$snapshot sn
where
new.snap_id = sn.snap_id
and
old.snap_id = new.snap_id-1
and
old.namespace = new.namespace
group by
to_char(snap_time,'yyyy-mm-dd HH24')
;
Here is the output. This report can easily be customized to alert the DBA when there are excessive executions or library cache misses.
Cache Misses Library Cache
Yr. Mo Dy Hr. execs While Executing Miss Ratio
---------------- ---------- --------------- ---------------
2001-12-11 10 10,338 3 .00029
2001-12-12 10 182,477 134 .00073
2001-12-14 10 190,707 202 .00106
2001-12-16 10 2,803 11 .00392
Once this report identifies a time period where there may be a problem, STATSPACK provides the ability to run detailed reports to show the behavior of the objects within the library cache.
In the preceding example, you see a clear RAM shortage in the shared pool between 10:00 a.m. and 11:00 a.m. each day. In this case, you could dynamically reconfigure the shared pool with additional RAM memory from the db_cache_size during this period. However, when Oracle Database 10g has the sga_target parameter set, it will automatically re-allocate space as needed, up to the value of sga_target, by dynamically removing space for other components who aren't experiencing stress and reallocating to the stressed shared pool.
The Oracle Database 10g workload manager promises to do this type of monitoring and anticipates upcoming RAM shortages, allocating additional RAM just in time for the anticipated event. Let’s take a look at how Oracle Database 10g monitors the shared pool.
Oracle9i release 2 introduced a new advice utility called v$shared_pool_advice. This utility is the mechanism used by Oracle Database 10g to determine a RAM shortage in the shared pool.
Starting in Oracle9i release 2, the v$shared_pool_advice view shows the marginal difference in SQL parses as the shared pool changes in size from 10% of the current value to 200% of the current value.
The Oracle documentation contains a complete description for the setup and use of shared pool advice, and it is very simple to configure. Once it is installed, you can run a simple script to query the v$shared_pool_advice view and see the marginal changes in SQL parses for different shared_pool sizes.
← shared_pool_advice.sql
-- *************************************************
-- Copyright © 2003 by Rampant TechPress
-- This script is free for non-commercial purposes
-- with no warranties. Use at your own risk.
--
-- To license this script for a commercial purpose,
-- contact info@
-- *************************************************
set lines 100
set pages 999
column c1 heading 'Pool |Size(M)'
column c2 heading 'Size|Factor'
column c3 heading 'Est|LC(M) '
column c4 heading 'Est LC|Mem. Obj.'
column c5 heading 'Est|Time|Saved|(sec)'
column c6 heading 'Est|Parse|Saved|Factor'
column c7 heading 'Est|Object Hits' format 999,999,999
SELECT
shared_pool_size_for_estimate c1,
shared_pool_size_factor c2,
estd_lc_size c3,
estd_lc_memory_objects c4,
estd_lc_time_saved c5,
estd_lc_time_saved_factor c6,
estd_lc_memory_object_hits c7
FROM
v$shared_pool_advice;
Est Est
Time Parse
Pool Size Est Est LC Saved Saved Est
Size(M) Factor LC(M) Mem. Obj. (sec) Factor Object Hits
---------- ---------- ---------- ---------- ---------- ---------- ------------
48 .5 48 20839 1459645 1 135,756,032
64 .6667 63 28140 1459645 1 135,756,101
80 .8333 78 35447 1459645 1 135,756,149
96 1 93 43028 1459645 1 135,756,253
112 1.1667 100 46755 1459646 1 135,756,842
128 1.3333 100 46755 1459646 1 135,756,842
144 1.5 100 46755 1459646 1 135,756,842
160 1.6667 100 46755 1459646 1 135,756,842
176 1.8333 100 46755 1459646 1 135,756,842
192 2 100 46755 1459646 1 135,756,842
Here we see the statistics for the shared pool in a range from 50% of the current size to 200% of the current size. These statistics can give you a great idea about the proper size for the shared_pool_size.
If you are using AMM, Oracle Database 10g will adjust the shared_pool_size area with automated “alter system” commands, always ensuring that there is an optimal balance between the SGA RAM regions.
[pic]
The above is an excerpt from the bestselling Oracle10g book Oracle Database 10g New Features by Mike Ault, Madhu Tumma and Daniel Liu, published by Rampant TechPress.
[pic]
Mike Ault, one of the world's top Oracle experts, has finally consented to release his complete collection of more than 450 Oracle scripts, covering every possible area of Oracle administration and management.
This is the definitive collection of Oracle monitoring and tuning scripts, and it would take thousands of hours to re-create this vast arsenal of scripts from scratch.
Mike has priced his collection of 465 scripts at $39.95, less than a dime per script. You can download them immediately at this link:
................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.
Related download
- download and installation of oracle10g by naveed baqir
- web services in oracle database 10g and beyond
- oracle database 10g pl sql programming
- oracle database sql quick reference
- oracle database 10g on windows architecture for performance
- adjusting the oracle database 10g shared pool
- oracle database 10g performance overview
- how to install oracle database 10g release2 on widows xp
- useful web links chapter 10
- download and unzip the 10
Related searches
- oracle database examples download
- oracle database 11g download free
- oracle database 11g sql pdf
- sample oracle database download
- testing oracle database examples
- oracle database xe
- oracle database 10g express edition download
- oracle database online practice
- oracle database 11g xe express download
- download oracle database 11
- oracle database 19c
- oracle database pdf