奇怪了,减小SGA后再减小sharee_pool_size重起后shared_pool和db_cache大小互相波动

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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值