ITPub博客

首页 > 数据库 > Oracle > 在Oracle10g中使用SGA_TARGET参数自动管理SGA

在Oracle10g中使用SGA_TARGET参数自动管理SGA

原创 Oracle 作者:Daveluo 时间:2010-06-22 10:58:00 0 删除 编辑
在Oracle10g中使用SGA_TARGET参数自动管理SGA

在Oracle10g中,不必再如从前一样用下列各个参数分别指定SGA的每个部分的大小.也就是说不需要首先评估 SGA各组件的大小,并且在init.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, 就毋须显式地定义shared pool,buffer pool,large pool和java pool的大小.

例如:定义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

使用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

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23861776/viewspace-1034552/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-05-06

  • 博文量
    9
  • 访问量
    9902