09:20:47 sys@cgidb1(cgidb1)> select * from v$sga;
NAME VALUE
------------------------------------------------------------ --------------
Fixed Size 2284104==>固定大小,比如oracle软件的运行代码等
Redo Buffers 12124160
Database Buffers 50331648
Variable Size 8489338296
09:20:53 sys@cgidb1(cgidb1)> select * from v$sgainfo;
NAME BYTES RES
------------------------------------------------------------ ---------- ---
Fixed SGA Size 2284104 No
Redo Buffers 12124160 No
Buffer Cache Size 50331648 Yes
Shared Pool Size 973078528 Yes
Large Pool Size 0 Yes
Java Pool Size 16777216 Yes
Streams Pool Size 0 Yes
Shared IO Pool Size 0 Yes
Granule Size 16777216 No ==>shared pool颗粒度为16M,这里redo buffers和fixed sga size不一致。
Maximum SGA Size 8554078208 No
Startup overhead in Shared Pool 701807000 No ==>启动共享池的开销
Free SGA Memory Available 7499415552
如上,可见如下公式:
Maximum SGA Size =Variable Size+Database Buffers+Redo Buffers+Fixed Size
Variable Size=Free SGA Memory Available+Shared Pool Size+Large Pool Size+Java Pool Size+Streams Pool Size+Shared IO Pool Size
如果memory_target=0 且 sga_target=0,则为手动sga管理,此时指定sga组件大小即为固定大小。比如shared_pool_size=928M(16M的倍数),则该组件一直为928M,不增不减。
如果memory_target!=0 或 sga_target!=0 ,则为自动内存管理或者自动sga管理,此时指定sga组件大小即为最小大小。比如shared_pool_size=928M(16M的倍数),则该组件最小为928M。
可通过如下视图查看某个组件,至实例启动以来的最大值和最小值和当前值。
10:27:53 sys@cgidb1(cgidb1)> select COMPONENT,CURRENT_SIZE,MIN_SIZE,MAX_SIZE from V$SGA_DYNAMIC_COMPONENTS;
COMPONENT CURRENT_SIZE MIN_SIZE MAX_SIZE
---------------------------------------------------------------- ------------ ---------- ----------
shared pool 973078528 973078528 973078528
java pool 16777216 16777216 16777216
DEFAULT buffer cache 50331648 50331648 50331648
另外,alter system set shared pool=928M,这条sql只是修改当前实例的动态内存,并未写进spfile或pfile中。
可以通过sid和scope参数调整实例和对象。
NAME VALUE
------------------------------------------------------------ --------------
Fixed Size 2284104==>固定大小,比如oracle软件的运行代码等
Redo Buffers 12124160
Database Buffers 50331648
Variable Size 8489338296
09:20:53 sys@cgidb1(cgidb1)> select * from v$sgainfo;
NAME BYTES RES
------------------------------------------------------------ ---------- ---
Fixed SGA Size 2284104 No
Redo Buffers 12124160 No
Buffer Cache Size 50331648 Yes
Shared Pool Size 973078528 Yes
Large Pool Size 0 Yes
Java Pool Size 16777216 Yes
Streams Pool Size 0 Yes
Shared IO Pool Size 0 Yes
Granule Size 16777216 No ==>shared pool颗粒度为16M,这里redo buffers和fixed sga size不一致。
Maximum SGA Size 8554078208 No
Startup overhead in Shared Pool 701807000 No ==>启动共享池的开销
Free SGA Memory Available 7499415552
如上,可见如下公式:
Maximum SGA Size =Variable Size+Database Buffers+Redo Buffers+Fixed Size
Variable Size=Free SGA Memory Available+Shared Pool Size+Large Pool Size+Java Pool Size+Streams Pool Size+Shared IO Pool Size
如果memory_target=0 且 sga_target=0,则为手动sga管理,此时指定sga组件大小即为固定大小。比如shared_pool_size=928M(16M的倍数),则该组件一直为928M,不增不减。
如果memory_target!=0 或 sga_target!=0 ,则为自动内存管理或者自动sga管理,此时指定sga组件大小即为最小大小。比如shared_pool_size=928M(16M的倍数),则该组件最小为928M。
可通过如下视图查看某个组件,至实例启动以来的最大值和最小值和当前值。
10:27:53 sys@cgidb1(cgidb1)> select COMPONENT,CURRENT_SIZE,MIN_SIZE,MAX_SIZE from V$SGA_DYNAMIC_COMPONENTS;
COMPONENT CURRENT_SIZE MIN_SIZE MAX_SIZE
---------------------------------------------------------------- ------------ ---------- ----------
shared pool 973078528 973078528 973078528
java pool 16777216 16777216 16777216
DEFAULT buffer cache 50331648 50331648 50331648
另外,alter system set shared pool=928M,这条sql只是修改当前实例的动态内存,并未写进spfile或pfile中。
可以通过sid和scope参数调整实例和对象。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31441616/viewspace-2148338/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/31441616/viewspace-2148338/
本文详细介绍了Oracle数据库系统中的SGA(系统全局区)内存管理机制,包括SGA各组成部分的具体含义及其占用的字节数,展示了如何通过SQL查询获取SGA组件的当前大小、最小值和最大值。此外,还解释了手动管理和自动内存管理两种模式下SGA组件大小的不同设定方式。
911

被折叠的 条评论
为什么被折叠?



