oracle内存参数调整

前端之家收集整理的这篇文章主要介绍了oracle内存参数调整前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Oracle 9i引入pga_aggregate_target,可以自动对PGA进行调整; Oracle 10g引入sga_target,可以自动对SGA进行调整; Oracle 11g则对这两部分进行综合,引入memory_target,可以自动调整所有的内存,这就是新引入的自动内存管理特性。 查看每个内存组件的配置与实际占用内存的大小,可以查看下面的v$视图 v$memory_dynamic_components alter system set memory_max_target=6g scope=spfile; alter system set memory_target=5g scope=spfile; alter system set sga_target=0 scope=spfile; alter system set pga_aggregate_target=0 scope=spfile; shutdown immediate; startup; / 设置memory_target参数后,实际上Oracle会自动设置并调整以下下两个参数来分配SGA和PGA的内存,这和Oracle10g自动设置sga_target后分配db_cache_size和shared_pool_size的机制是一样的。 sql> col ksppinm for a20; sql> col ksppstvl for a20; sql> select a.ksppinm name,b.ksppstvl value from x$ksppi a,x$ksppcv b where a.indx = b.indx and (a.ksppinm like '%sga_target%' or a.ksppinm like '%pga_aggregate_target%'); 3.2、讨论一下11g中memory_target设置和不设置对SGA/PGA的影响: 3.2.1、如果memory_target设置为非0值 (下面有四种情况来对SGA和PGA的大小进行分配) 3.2.1.1、sga_target和pga_aggregate_target已经设置大小 如果Oracle中已经设置了参数sga_target和pga_aggregate_target,则这两个参数将各自被分配为最小值为他们的目标值。 memory_target = sga_target + pga_aggregate_target,大小和memory_max_size一致。 3.2.1.2、sga_target设置大小,pga_aggregate_target没有设置大小 那么pga_aggregate_target初始化值=memory_target-sga_target 3.2.1.3、sga_target没有设置大小,pga_aggregate_target设置大小 那么sga_target初始化值=memory_target-pga_aggregate_target 3.2.1.4、sga_target和pga_aggregate_target都没有设置大小 Oracle 11g中对这种sga_target和pag_aggregate_target都没有设定大小的情况下,Oracle将对这两个值没有最小值和默认值。Oracle将根据数据库运行状况进行分配大小。但在数据库启动是会有一个固定比例来分配: sga_target = memory_target*60% pga_aggregate_target = memory_target*40% 3.2.2、如果memory_target没有设置或 = 0(在11g中默认为0) 11g中默认为0则初始状态下取消了memory_target的作用,完全和10g在内存管理上一致,完全向下兼容。(也有三种情况来对SGA和PGA的大小进行分配) 3.2.2.1、sga_target设置值,则自动调节SGA中的shared pool,buffer cache,redo log buffer,java pool,larger pool等内存空间的大小。PGA则依赖pga_aggregate_target的大小。sga和pga不能自动增长和自动缩小。 3.2.2.2、sga_target和pga_aggregate_target都没有设置 SGA中的各组件大小都要明确设定,不能自动调整各组件大小。PGA不能自动增长和收缩。 3.2.2.3、memory_max_target设置而memory_target = 0这种情况先和10g一样,不做说明。 --以下内容来自oracle官方文档,但是实际测试却得不到验证 On 64-bit platforms and non-Windows 32-bit platforms,when either MEMORY_TARGET or MEMORY_MAX_TARGET is specified,the default value of SGA_MAX_SIZE is set to the larger of the two parameters. This causes more address space to be reserved for expansion of the SGA. 原文链接:/oracle/207458.html

猜你在找的Oracle相关文章