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

http://tech.ddvip.com   2007年05月12日    社区交流

本文详细介绍Oracle 10G数据库自动内存管理分析

  再循环数据库,使这些值生效。这个人工过程还可以通过 Enterprise Manager 10g 实施。从数据库主页中,选择 "Administration" 选项卡,然后选择 "Memory Parameters"。对于人工配置的内存参数,将显示标记为 "Enable" 的按钮,以及所有人工配置的池的值。单击 "Enable" 按钮,启用自动共享内存管理特性。企业管理器将完成剩下的工作。

  在配置了自动内存分配之后,您可以利用以下命令检查它们的大小:

  SQL> select current_size from v$buffer_pool;
  
  CURRENT_SIZE
  ------------
  340
  
  SQL> select pool, sum(bytes)/1024/1024
  Mbytes from v$sgastat group by pool;
  
  POOL       MBYTES
  ------------ ----------
  java pool       4
  large pool      4
  shared pool     148

  正如您所看到的,所有的池都从 500MB 的总目标大小中自动进行分配。(参见图 1。)缓冲高速缓存大小是 340MB,Java 池是 4MB,大型池是 4MB,共享池是 148MB。它们合起来总的大小为 (340+4+4+148=) 496MB,近似与 500MB 的目标 SGA 的大小相同。

  图 1:池的初始分配

  现在假定提供给 Oracle 的主机内存从 500MB 减少为 300MB,这意味着我们必须减少总 SGA 的大小。我们可以通过减小目标 SGA 大小来反映这种变化。  alter system set sga_target = 300M scope=both;

  现在查看各个池,我们可以看到:

责编:豆豆技术应用

正在加载评论...