Oracle
Allen 2009-11-24 11:51:08 45147 13 0 0 0


  一、在Oracle10g中使用SGA_TARGET参数自动管理SGA
  在Oracle10g中,可以设置自动管理SGA,设置条件:
  1)sga_target不为零(参数文件中设置)
  2)statistics_level=TYPICAL(默认值)或ALL

  这样就可以不必再如从前一样用分别指定SGA的每个部分的大小,并且在init<SID>.ora初始参数文件中分别指定了.(当然某些组件如果不不使用是可以不指定的.比如java_pool_size)。
  如:
  shared_pool_size
  java_pool_size
  large_pool_size
  db_cache_size

  在10g中可用一个新参数SGA_TARGET来设定实列所需的SGA最大值,并替代以上参数。

  假设,将SGA_TARGET设置为152M,则表明SGA最大为152M. 所有SGA组件如shared pool, buffer cache,large pool, java pool都需从其中分配。
  Oracle会自动为各组件指定初始值,并在运行过程中动态地调整各组件的大小.毋须人工干预。
  这样,只要设置了SGA_TARGET, 就毋须显式地定义其它各部分的大小。

  例如:定义SGA_TARGET=152M(block size为8k).
  SQL> show parameter db_block_size
  NAME TYPE VALUE
  ------------------------------------ ----------- ------------------------------
  db_block_size integer 8192
  SQL> show parameter sga_target
  NAME TYPE VALUE
  ------------------------------------ ----------- ------------------------------
  sga_target big integer 152M

  Oracle会自动将内存分配给各组件:
  SQL> show sga
  Total System Global Area 159383552 bytes
  Fixed Size 1218268 bytes
  Variable Size 67111204 bytes
  Database Buffers 88080384 bytes
  Redo Buffers 2973696 bytes

  二、oracle 10g中的SGA_MAX_SIZE与SGA_TARGET参数

  sga_target是自动管理内存时使用的,这样你就不用设置DB_CACHE_SIZE,SHARED_POOL_SIZE等参数,他们会根据需要自动的进行调整的。

  SGA_MAX_SIZE是从oracle9i以来一直存在﹐是不可动态修改的。
  SGA_TARGET是oracle10g中用于实现自动SGA内存管理而新增加的。

  SGA_MAX_SIZE指的是可动态分配的最大值﹐而SGA_TARGET是当前已分配的最大sga。
  SGA_MAX_SIZE是不可以动态修改的﹔而SGA_TARGET是可动态修改﹐直到SGA_MAX_SIZE的值(当然这是在实例启动前已设定SGA_MAX_SIZE>SGA_TARGET的情况)

  如果在实例启动时﹐SGA_MAX_SIZE < SGA_TARGET或SGA_MAX_SIZE没设定﹐则启动后SGA_MAX_SIZE的值会等于SGA_TARGET的值。可以看出SGA_TARGET优先于SGA_MAX_SIZE。

  三、使用sga_target参数有几点需要注意:

  1. 当使用sga_target时, 若未设置sga_max_size,或设置了小于sga_target,则sga_max_size将等于sga_target.

  SQL> show parameter sga
  NAME TYPE VALUE
  ------------------------------------ ----------- ------------------------------
  lock_sga boolean FALSE
  pre_page_sga boolean FALSE
  sga_max_size big integer 152M
  sga_target big integer 152M

  2. 当sga_target是可动态调整的,但其值不能大于sga_max_size.

  SQL> alter system set sga_target=160M;
  alter system set sga_target=160M
  * ERROR at line 1: ORA-02097: parameter cannot be
  modified because specified value is invalid
  ORA-00823: Specified value of sga_target greater than sga_max_size

 


Tag: Oracle Oracle优化 Oracle内存 TTTBLOG
我也要发一个   ·   返回首页   ·   返回[Oracle]   ·   前一个   ·   下一个
评论
Allen#11Allen 2014-11-02 16:54:13(N) 链接地址
| 2885 | 专用车厂家 | 2014-11-02 16:54:13 | [email protected] | http://www.xgcszqgw.com |
-----
搅拌车,随车吊,清障车,扫路车,LED车平板运输车等等咨询电话:13908668976 www.xgcszqgw.comet2pL
Allen#12Allen 2014-11-12 12:37:25(N) 链接地址
| 2936 | FNMzYS | 2014-11-12 12:37:25 | [email protected] | http://www.1314385.com |
-----
写的实在是太好了,一定要支持一下bEepd
Allen#13Allen 2014-11-20 20:56:53(N) 链接地址
| 2962 | F62DHd | 2014-11-20 20:56:53 | [email protected] | |
-----
路过看看 学习了,谢谢分享 http://www.zywhm.com
首页     顶部     前页  ·   2/2 
欢迎评论
未登录,
请先 [ 注册 ] or [ 登录 ]
(一分钟即可完成注册!)
返回首页     ·   返回[Oracle]   ·   返回顶部