
Ask Oracle 社区 | www.askoracle.org
Ask Oracle 社区交流群:97403776
AWR/ASMM 等。
可以使用 EM 来配置 ASMM,当使用 EM 来配置 ASMM 和总 SGA 的值时,EM 会
自动设置 SGA_TARGET 的值,并且自动把 ASMM SGA 中包含的组件的值设置为 0.如果使
用 SQL*Plus 来设置 SGA_TARGET,必须先把 ASMM SGA 中包含的组件的值设置为 0。
可以通过 V$SGA_TARGET_ADVICE 视图来查看关于 SGA_TARGET 值的信息.
2.启用 ASMM
1.可以通过以下 SQL 来查看 SGA_TARGET 的值
SELECT (
(SELECT SUM(value) FROM V$SGA) -
(SELECT CURRENT_SIZE FROM V$SGA_DYNAMIC_FREE_MEMORY)
) "SGA_TARGET"
FROM DUAL;
2.设置 SGA_TARGET 的值,可以直接修改初始化参数文件后重启数据库,或者通过下面 SQL
命令进行修改:
ALTER SYSTEM SET SGA_TARGET=value [SCOPE={SPFILE|MEMORY|BOTH}]
3.假如你有个本地管理的数据库,实例的 SGA_MAX_SIZE=1200M,其他参数配置如下:
SHARED_POOL_SIZE = 200M
DB_CACHE_SIZE = 500M
LARGE_POOL_SIZE=200M
假如的的 SGA 查询结果如下:
SELECT SUM(value) FROM V$SGA ;
1200M
SELECT CURRENT_SIZE FROM V$SGA_DYNAMIC_FREE_MEMORY;
208M
由于当前使用的内存是 208M,MAX SIZE 为 1200M,所以可以使用如下 SQL 把 SGA 的
总大小设置为 992M:
ALTER SYSTEM SET SGA_TARGET = 992M;
ALTER SYSTEM SET SHARED_POOL_SIZE = 0;
ALTER SYSTEM SET LARGE_POOL_SIZE = 0;
评论