11G内存设置一例

时间:2023-03-10 02:09:52
11G内存设置一例

11G的内存设置参数有memory_target、memory_max_target、sga_target、pga_aggregate_target等。

一个特别繁忙的数据库,前期内存设置较低,物理内存256G,memory_target设置了85G,而sga_max_size设置了20多G,前天晚上将sga_target设置了50G,这样,pga使用了30G。运行一天后,数据库性能有改善,第三天下午检查数据库的内存情况,如下。

memory总体情况如下:

SQL> select * from v$memory_dynamic_components;

COMPONENT                 CURRENT_SIZE     MIN_SIZE     MAX_SIZE USER_SPECIFIED_SIZE   OPER_COUNT LAST_OPER_TYPE  LAST_OPER_MODE  LAST_OPER_TIME     GRANULE_SIZE
------------------------- ------------ ------------ ------------ ------------------- ------------ --------------- --------------- ------------------ ------------
shared pool GROW IMMEDIATE -DEC-
large pool SHRINK DEFERRED -DEC-
java pool SHRINK DEFERRED -DEC-
streams pool STATIC
SGA Target STATIC
DEFAULT buffer cache SHRINK IMMEDIATE -DEC-
KEEP buffer cache STATIC
RECYCLE buffer cache STATIC
DEFAULT 2K buffer cache STATIC
DEFAULT 4K buffer cache STATIC
DEFAULT 8K buffer cache STATIC
DEFAULT 16K buffer cache STATIC
DEFAULT 32K buffer cache STATIC
Shared IO Pool STATIC
PGA Target STATIC
ASM Buffer Cache STATIC rows selected.

SGA建议如下:

SQL> select * from v$sga_target_advice;

    SGA_SIZE SGA_SIZE_FACTOR ESTD_DB_TIME ESTD_DB_TIME_FACTOR ESTD_PHYSICAL_READS
------------ --------------- ------------ ------------------- -------------------
. 4.031
. 1.7718
. 1.2699
. 1.1063
. 1.0355 1.125 .
1.25 .
1.375 .
1.5 .
1.625 .
1.75 .
1.875 .
. rows selected.

根据如上建议,增大SGA至80G,预计的物理读可降到198222985,比258136456减少20%,值得增大。

PGA建议如下:

SQL> select * from v$pga_target_advice;

PGA_TARGET_FOR_ESTIMATE PGA_TARGET_FACTOR ADVICE_ST BYTES_PROCESSED    ESTD_TIME ESTD_EXTRA_BYTES_RW ESTD_PGA_CACHE_HIT_PERCENTAGE ESTD_OVERALLOC_COUNT
----------------------- ----------------- --------- --------------- ------------ ------------------- ----------------------------- --------------------
. ON 3.529844E+12
. ON 3.529844E+12
. ON 3.529844E+12
. ON 3.529844E+12
ON 3.529844E+12
1.2 ON 3.529844E+12
1.4 ON 3.529844E+12
1.6 ON 3.529844E+12
1.8 ON 3.529844E+12
ON 3.529844E+12
ON 3.529844E+12
ON 3.529844E+12
ON 3.529844E+12
ON 3.529844E+12 rows selected.

解读如上建议,目前的pga设置30G,其cachehitpercentage已经达到99%,满足需要,即使降到16G甚至8G,也没有太大关系。

同时观察shared_pool_advice,如下:

SQL> select SHARED_POOL_SIZE_FOR_ESTIMATE spsfe,
SHARED_POOL_SIZE_FACTOR spsf,
ESTD_LC_SIZE,
ESTD_LC_MEMORY_OBJECTS elmo,
ESTD_LC_TIME_SAVED elts,
ESTD_LC_TIME_SAVED_FACTOR eltsf,
ESTD_LC_MEMORY_OBJECT_HITS emoh
from v$shared_pool_advice; SPSFE SPSF ESTD_LC_SIZE ELMO ELTS ELTSF EMOH
------------ ------------ ------------ ------------ ------------ ------------ ------------
. .
. .
. .
. .
. .
. . 1.0189
1.0377
1.0566
1.0755
1.0943
1.1132
1.1321
1.1509
1.1698
1.2264
1.3396
1.4528
1.566
1.6792
1.7925
1.9057
2.0189 rows selected.

可见oracle基于目前SGA大小自动设置的13G是可以的,但是随着SGA大小的变化,应该会有更加的大小设置,待设置更大SGA以后验证。

综上,此数据库需如下设置:【增大memory_target,增大sga_target,pga保持不变】

ALTER SYSTEM SET memory_max_target= 110g SCOPE=spfile SID='*';

ALTER SYSTEM SET memory_target= 110g SCOPE=spfile SID='*';

ALTER SYSTEM SET sga_target = 80g SCOPE=spfile SID='*';

如果操作系统shm不支持110G大小,则降低pga设置,不改变memory_target,增大sga至65G。