日期:2014-05-16  浏览次数:20544 次

oracle内存分配与调整<转>

l???????前言

对于oracle的内存的管理,截止到9iR2,都是相当重要的环节,管理不善,将可能给数据库带来严重的性能问题。下面我们将一步一步就内存管理的各个方面进行探讨。

?

l???????概述

oracle的内存可以按照共享和私有的角度分为系统全局区和进程全局区,也就是SGAPGA(process global area or private global area)。对于SGA区域内的内存来说,是共享的全局的,在UNIX上,必须为oracle设置共享内存段(可以是一个或者多个),因为oracleUNIX上是多进程;而在WINDOWSoracle是单进程(多个线程),所以不用设置共享内存段。PGA是属于进程(线程)私有的区域。在oracle使用共享服务器模式下(MTS,PGA中的一部分,也就是UGA会被放入共享内存large_pool_size中。

对于SGA部分,我们通过sqlplus中查询可以看到:

SQL> select * from v$sga;

?

NAME??????????????????????VALUE

--------------------??????????????----------

Fixed Size???????????????????454032

Variable Size?????????????????109051904

Database Buffers??????????????385875968

Redo Buffers??????????????????667648

?

Fixed Size

oracle?的不同平台和不同版本下可能不一样,但对于确定环境是一个固定的值,里面存储了SGA各部分组件的信息,可以看作引导建立SGA的区域

?

Variable Size

包含了