WEB开发网
开发学院数据库Oracle Oracle 10G数据库自动内存管理分析 阅读

Oracle 10G数据库自动内存管理分析

 2007-05-12 12:27:06 来源:WEB开发网   
核心提示: SQL> select current_size from v$buffer_pool;CURRENT_SIZE244SQL> select pool, sum(bytes)/1024/1024Mbytes from v$sgastat group by pool;POOL M
  SQL> select current_size from v$buffer_pool;
  
  CURRENT_SIZE
  ------------
  244
  
  SQL> select pool, sum(bytes)/1024/1024
  Mbytes from v$sgastat group by pool;
  
  POOL       MBYTES
  ------------ ----------
  java pool       4
  large pool      4
  shared pool     44

占用的总大小是 240+4+4+44 = 296MB,接近于目标的 300MB。注意如图 2 所示,当 SGA_TARGET 改变时,如何自动重新分配池。

图 2:在将 SGA 大小减少到 300MB 之后重新分配池

这些池的大小是动态的。池将根据工作负载扩展,以容纳需求的增长,或缩小以容纳另一个池的扩展。这种扩展或缩小自动发生,无需 DBA 的干预,这与本文开头的示例不同。让我们暂时返回到那个场景,假定在初始分配后,RMAN 作业启动,指示需要一个更大的大型池,大型池将从 4MB 扩展到 40MB,以容纳需求。这个额外的 36MB 将从数据库缓冲中划出,数据库块缓冲将缩小,如图 3 所示。

图 3:在对大型池的需求增长之后经过重新分配的池

池的大小变化基于系统上的工作负载,因此不需要为最坏的情况调整池的大小 — 它们将根据需求的增长自动调整。此外,SGA 的总大小始终在由 SGA_TARGET 指定的最大值之内,因此不存在使内存需求的增长比例失调(这将导致分页和交换)的风险。您可以动态地将 SGA_TARGET 增加至绝对最大值,这个绝对最大值是通过调整参数 SGA_MAX_SIZE 指定的。

上一页  1 2 3 4 5 

Tags:Oracle 数据库 自动

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接