Chinaunix首页 | 论坛 | 博客
  • 博客访问: 55485
  • 博文数量: 16
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 180
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-23 18:04
文章分类

全部博文(16)

文章存档

2010年(16)

我的朋友

分类:

2010-10-23 22:06:01

系统全局区 SGA
自动SGA 内存管理
自动调优的SGA 参数: 目前这些参数包括DB_CACHE_SIZE 、SHARED_POOL_SIZE 、LARGE_POOL_SIZE 和JAVA_POOL_SIZE。
手动SGA 参数: 这些参数包括LOG_BUFFER 、STREAMS_POOL 、DB_NK_CACHE_SIZE 、DB_KEEP_CACHE_SIZE 和DB_RECYCLE_CACHE_SIZE。
Log_buffer :
In 10G R2, Oracle combines fixed SGA area and redo buffer [log buffer] together.If there is a free space after Oracle puts the combined buffers into a granule, that space is added to the redo buffer
Java 池(Java pool): Java 池是为数据库中运行的JVM 分配的一段固定大小的内存。在
Oracle10g 中,Java 池可以在数据库启动并运行时在线调整大小。
大池(Large pool):共享服务器连接使用大池作为会话内存,并行执行特性使用大池作为
消息缓冲区,另外RMAN 备份可能使用大池作为磁盘I/O 缓冲区。在Oracle 10g 和9i Release 2
中,大池都可以在线调整大小。
共享池(Shared pool):共享池包含共享游标( cursor)、存储过程、状态对象、字典缓存
和诸如此类的大量其他数据。在Oracle 10g 和9i 中,共享池都可以在线调整大小。
流池(Stream pool):这是Oracle 流(Stream)专用的一个内存池,Oracle 流是数据库中
的一个数据共享工具。这个工具是Oracle 10g 中新增的,可以在线调整大小。如果未配置流池,但是使用了流功能,Oracle 会使用共享池中至多10%的空间作为流内存。
 

进程全局区 PGA

进程全局区(PGA)是特定于进程的一段内存。换句话说,这是一个操作系统进程或线程专用的内存,
不允许系统中的其他进程或线程访问。PGA 一般通过C 语言的运行时调用malloc()或memmap()来分配,而
且可以在运行时动态扩大(甚至可以收缩)。PGA 绝对不会在Oracle 的SGA 中分配,而总是由进程或线程在本地分配。
从Oracle9i Release 1 起,有两种办法来管理PGA 中的这些非UGA 内存:
手动PGA 内存管理,采用这种方法时,你要告诉Oracle:如果一个特定进程中需要排序或散列,允许使用多少内存来完成这些排序或散列。
自动PGA 内存管理,这要求你告诉Oracle:在系统范围内可以使用多少内存。
 

自动PGA管理:

建立自动PGA 内存管理时,需要为两个实例初始化参数确定适当的值,这两个参数是:
WORKAREA_SIZE_POLICY:这个参数可以设置为MANUAL 或AUTO,如果是MANUAL,会使用排
序区和散列区大小参数来控制分配的内存量;如果是AUTO,分配的内存量会根据数据库中的当
前工作负载而变化。默认值是AUTO,这也是推荐的设置。
PGA_AGGREGATE_TARGET:这个参数会控制实例为完成数据排序/散列的所有工作区(即排序区和散列区)总共应分配多少内存。在不同的版本中,这个参数的默认值有所不同,可以用多种工具来设置,如DBCA。一般来讲,如果使用自动PGA 内存管理,就应该显式地设置这个参数。
 
PGA_AGGREGATE_TARGET 是一个上限目标,而不是启动数据库时预分配的内存大小。
 

用户全局区(User Global AreaUGA

这个内存区与特定的会话相关联。它可能在SGA中分配,也可能在PGA 中分配,这取决于是用共享服务器还是用专用服务器来连接数据库。如果使用共享服务器,UGA 就在SGA 中分配;如果使用专用服务器,UGA 就会在PGA(即进程内存区)中。
阅读(682) | 评论(0) | 转发(0) |
0

上一篇:采购接口管理

下一篇:1-10

给主人留下些什么吧!~~