`

Oracle 10g 中sga_max_size 和sga_target用法

阅读更多

一、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的值。

 

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

 

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

 

3.如果参数(如db_cache_size)和sga_target参数同时设置,那么参数db_cache_size是保底的值,需要超过这个值时由数据库动态分配.如果db_cache_size设置,而sga_target不设置,表示不使用oracle自动调整,db_cache_size就是设置的值,不再动态分配。

分享到:
评论

相关推荐

    更改ORACLE SGA的详细步骤

    注意:在 Oracle 11g 中,`sga_max_size` 不能大于 `memory_max_size`。 3. **重启数据库实例**: 修改参数后,需要立即关闭并重新启动数据库实例以应用更改: ``` shutdown immediate; start up; ``` 4. **...

    oracle sga设置

    - 从Oracle 10g开始引入,通过设置SGA_TARGET,可以实现SGA的自动调整。 - Oracle会根据当前负载情况动态调整SGA的各个部分大小,使得总大小尽量接近SGA_TARGET。 - 可以在线修改SGA_TARGET的值,而不需要重启...

    SGA - ORACLE

    如果没有显式指定SGA_MAX_SIZE,Oracle将会使用各组件已指定大小的总和或默认值的总和作为上限。 4. **自动共享内存管理(Automatic Shared Memory Management, ASMM):** - 如果设置了SGA_TARGET参数为非零值,则...

    oracle11G调整物理内存提示ORA-00845 MEMORY_TARGET

    "Oracle 11g调整物理内存提示...我们还讨论了 Oracle 11g 中的内存管理机制,包括 MEMORY_TARGET、MEMORY_MAX_TARGET 和 SGA_TARGET 三个参数的作用。通过正确地设置这些参数,可以提高 Oracle 数据库的性能和稳定性。

    windows_server_2012下安装oracle11G_2_0_1且升级到11G_2_0_4实施文档.docx

    在Windows Server 2012环境下安装Oracle 11g并进行版本升级,涉及的关键知识点主要包括Oracle内存管理、参数文件的管理和数据泵的使用。以下是对这些知识点的详细解释: **1. Oracle内存管理** Oracle数据库内存...

    Oracle SGA

    在Oracle 10g中,引入了动态内存分配特性,使得创建一个自调整的Oracle SGA成为可能。这一特性允许数据库根据实际的处理需求动态地调整内存区域的大小,如sort_area_size、pga_aggregate_target、large_pool_size、...

    原创文档详细说明ORACLE10G参数文件PFILE与SPFILE

    在示例中,`sga_target`和`sga_max_size`是控制SGA总大小的参数。`sga_target`用于自动管理SGA各个组件的大小,而`sga_max_size`限制了SGA的总大小。如果`sga_target`设置为0,意味着自动管理功能未启用,SGA大小由...

    Oracle_SGA

    SGA是Oracle数据库性能的关键组成部分,通过合理配置和优化SGA中的各个组件,可以显著提高数据库的运行效率和响应速度。特别是共享池的管理和优化,对于减少重复工作、提升并发处理能力至关重要。同时,利用Oracle...

    SGA学习笔记

    ### SGA学习笔记 #### 一、System Global Area (SGA) 概述 系统全局区域(System Global Area, SGA)是Oracle...通过合理设置SGA_MAX_SIZE和SGA_TARGET等参数,并启用ASMM,可以显著提高数据库的响应速度和稳定性。

    ORACLE-SGA.docx

    从Oracle 9i开始,可以在运行时动态修改SGA参数,而在Oracle 10g及更高版本中,可以直接修改SGA的当前内存值。 了解和正确管理SGA对于优化Oracle数据库的性能至关重要。通过监控SGA的使用情况,适时调整相关参数,...

    Oracle 10g的内存调整报告

    ### Oracle 10g的内存调整报告 #### 内存配置的重要性 Oracle 数据库的内存配置对于数据库的整体性能至关重要。不恰当的内存设置不仅会导致性能下降,还可能引发各种难以定位的问题。因此,在进行Oracle 10g的内存...

    oracle 内存优化

    在Oracle 10g及以上版本,引入了SGA_TARGET参数,可以设置SGA的总上限,替代了各个组件的独立设置。Oracle会自动分配和调整这些组件的大小,无需手动干预。但需要注意,如果未设置SGA_MAX_SIZE或设置值小于SGA_...

    oracle学习(内存参数设置)

    SGA_MAX_SIZE和SGA_TARGET是两个重要的参数,SGA_MAX_SIZE指定了SGA可以使用的最大内存大小,而SGA_TARGET指定了SGA可以使用的最大内存大小,并可以自动调节各个区域的大小,使之达到系统性能最佳状态的最合理大小。...

    Solaris的DISM–被忽略的重要特性

    在10g及以上的版本中,设置SGA_MAX_SIZE=SGA_TARGET,以及在11g版本中确保MEMORY_TARGET和MEMORY_MAX_TARGET未设置,这样才能确保数据库启动时不使用DISM。 文章还提供了一个案例,描述了在某省BOSS系统中发生的...

    Oracle 10g 内存 调整报告

    **SGA (Shared Global Area)** 和 **PGA (Program Global Area)** 是Oracle 10g实例的核心内存区域。它们分别用于存储共享数据和私有数据。 - **SGA**: 包括多个子区域,如Shared Pool、Buffer Cache、Large Pool、...

    linux下的Oracle数据库安装,卸载和静默安装

    sga_max_size=500M job_queue_processes=10 undo_management=auto undo_tablespace=undotbs audit_file_dest=$ORACLE_BASE/admin/orcl/adump background_dump_dest=$ORACLE_BASE/admin/orcl/bdump core_dump_dest=$...

    oracle自动内存管理

    当设置了`MEMORY_TARGET`时,Oracle会自动管理SGA和PGA的内存分配,以确保整个实例的内存使用效率最大化。 2. **`MEMORY_MAX_TARGET`**:该参数定义了数据库实例可以使用的最大物理内存上限,其值应大于或等于`...

    oracle memory manage 1

    Oracle 10g及以后版本引入了自动内存管理(AMM),它允许数据库动态地分配和调整内存结构,从而提高了系统性能并减少了管理员的手动干预。AMM主要通过两个参数来控制:`MEMORY_TARGET` 和 `MEMORY_MAX_TARGET`。 ##...

Global site tag (gtag.js) - Google Analytics