oracle11g sga自动管理,oracle11g自动内存如何管理呢?

Oracle对内存的管理的 优化从未间断,从8i到11g不断地提出新的管理概念。每个本版都对内存管理进行了简化:

8i->9i:PGA的自动管理;

9i->10g:SGA的自动管理;

10g->11g:MEMORY(SGA+PGA)的自动管理。

在11g中oracle引入了自动化内存管理(Automatic Memory Management)概念,仅用两个参数就能完成oracle的内存管理工作。DBA的工作看来又要轻松不少了,看看两个参数:

view sourceprint?1 MEMORY_TARGET:oracle所能使用的最大内存,该参数可以动态调整。

MEMORY_MAX_TARGET:MEMORY_TARGET参数所能动态设定的最大值,不能动态调整,需要重启数据库。

注:oracle的内存管理方式可以根据本版向下兼容的,11g可以实现10g,9i,8i时的管理方式。

oracle环境:

下面通过一个小测试来看看oracle的内存分配(没有对PGA测试)。

view sourceprint?01 SQL> select component,current_size,min_size,max_size from v$memory_dynamic_components;

02

03 COMPONENT

CURRENT_SIZE

MIN_SIZE

MAX_SIZE

04 ------------------------------ ------------ ---------- ----------

05 shared pool

130023424

109051904

130023424

06 large pool

4194304

4194304

4194304

07 java pool

4194304

4194304

4194304

08 streams pool

0

0

0

09 SGA Target

322961408

322961408

322961408

10 DEFAULT buffer cache

176160768

176160768

197132288

11 KEEP buffer cache

0

0

0

12 RECYCLE buffer cache

0

0

0

13 DEFAULT 2K buffer cache

0

0

0

14 DEFAULT 4K buffer cache

0

0

0

15 DEFAULT 8K buffer cache

0

0

0

16

17 COMPONENT

CURRENT_SIZE

MIN_SIZE

MAX_SIZE

18 ------------------------------ ------------ ---------- ----------

19 DEFAULT 16K buffer cache

0

0

0

20 DEFAULT 32K buffer cache

0

0

0

21 Shared IO Pool

0

0

0

22 PGA Target

218103808

213909504

218103808

23 ASM Buffer Cache

0

0

0

24

25 已选择16行。

26

27 SQL> show parameter memory_target

28

29 NAME

TYPE

VALUE

30 ------------------------------------ ----------- ------------------------------

31 memory_target

big integer 516M

32

33 SQL> run

34

1* select (322961408+218103808)/1024/1024||'M' "SGA+PGA" from dual

35

36 SGA+

37 ----

38 516M

在此可以看出memory_target参数管理的内存是PGA与SGA之和。

单独计算SGA,通过shared pool,streams pool,java pool,large pool,buffer cache,

ASM Buffer Cache参数求和,计算得出当前SGA使用的大小(314572800)。

view sourceprint?1 SQL> select (130023424+4194304+4194304+176160768) SGA from dual

2

2

;

3

4

SGA

5 ----------

6

314572800

通过SGA的目标值减去当前SGA的动态消耗。

view sourceprint?1 SQL> select 322961408-314572800 "sga target-sga" from dual;sga target-sga--------------

8388608SQL> select * from v$sgastat where pool is null;POOL

NAME

BYTES

------------ -------------------------- ----------

fixed_sga

1375792

buffer_cache

167772160

log_buffer

5804032

SQL> select 1375792+5804032 "fixed_sga+log_buffer" from dual;fixed_sga+log_buffer

--------------------

7179824

在SGA中的包括LOG BUFFER,fixed_sga部分,在最开始的v$memory_dynamic_components视图中

并没有包括这两部分,也说明这两个部分是固定的值,不会动态的改变。

出去SGA动态消耗后,再减去固定消耗,得到当前SGA还剩余多少。

view sourceprint?1 SQL> select 8388608-7179824 from dual;8388608-7179824

---------------

1208784

在动态分配视图的查询结果中包含Shared IO pool部分,以下是对该参数的说明:

Shared IO Pool Memory

Wait until a shared I/O pool buffer becomes available。

This happens when processes are

using these buffers for I/O and the current process needs to wait for the release

of any one of the buffers to the shared I/O pool。

Wait Time: 10msec

Parameters: None

说明:shared IO pool参数设置是为了尽量减小进程IO的等待而专门配置的参数。

从分析角度看应该是属于PGA部分。

全部

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值