SQL> show sga;
Total System Global Area 209715200 bytes
Fixed Size 1248164 bytes
Variable Size 104858716 bytes
Database Buffers 100663296 bytes
Redo Buffers 2945024 bytes
SQL> alter system set sga_max_size=150M scope=spfile;
系统已更改。
SQL> alter system set sga_target=150M scope=both;
系统已更改。
SQL> select pool,sum(bytes) sgasize from v$sgastat group by pool;(这可以看出SGA是变了)
POOL SGASIZE
------------ ----------
54524836 (这个值是db_cache的大小吧)
java pool 4194304
shared pool 96473688
large pool 4194304
SQL> alter system set shared_pool_size=50M;
系统已更改。
SQL> select pool,sum(bytes) sgasize from v$sgastat group by pool;(改了小shared_pool后再查询其大小并没变。。)
POOL SGASIZE
------------ ----------
54524836
java pool 4194304
shared pool 96473688
large pool 4194304
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup open orcl
ORACLE 例程已经启动。
Total System Global Area 159383552 bytes
Fixed Size 1247876 bytes
Variable Size 104859004 bytes
Database Buffers 50331648 bytes
Redo Buffers 2945024 bytes
数据库装载完毕。
数据库已经打开。
SQL> select pool,sum(bytes) sgasize from v$sgastat group by pool;(重起后发现shared pool还是没变。)
POOL SGASIZE
------------ ----------
54524548
java pool 4194304
shared pool 96473688
large pool 4194304
SQL> show parameter shared pool(这样看是变成52M了)
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address integer 0
max_shared_servers integer
shared_memory_address integer 0
shared_pool_reserved_size big integer 4823449
shared_pool_size big integer 52M
shared_server_sessions integer
shared_servers integer 1
过了一会又查询:
SQL> select pool,sum(bytes) sgasize from v$sgastat group by pool;
POOL SGASIZE
------------ ----------
83884676
java pool 4194304
shared pool 66739976
large pool 4194304
SQL> select pool,sum(bytes) sgasize from v$sgastat group by pool;
POOL SGASIZE
------------ ----------
75496068
java pool 4194304
shared pool 75201160
large pool 4194304
网上一个兄弟的问题
[@more@]这与共享池的粒度有关的.
粒度的大小取决于估算SGA的大小:
如果估算SGA<=128M,那么粒度大小为4M;否则粒度大小为16M。
内存分配时,大小都是粒度的整数倍(四舍五入)
2、数据库启动时的粒度分配
a、请求获取SGA_MAX_SIZE指定的内存大小
b、每个组件得到被分配的粒度
c、最少sga配置使用3个粒度:1、用于fixed SGA (includes redo buffers);2、用于缓存;3、用于共享池
3、给组件增加粒度
show parameter db_cache_size;
alter system set db_cache_size=8M;
db_cache_size的大小不能设置为0;
db_cache_size大小与SHARED_POOL_SIZE大小互斥,相加小于SGA_MAX_SIZE。
注意:修改大小时要以M为单位,否则会进行四舍五入。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/564597/viewspace-980905/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/564597/viewspace-980905/