自动SGA内存管理(ASMM):
要使用自动管理,需要设置参数SGA_TARGET、STATISTICS_LEVEL(=TYPICAL或ALL,因为不支持统计集合,数据库就没有必要的历史信息来确定大小)。在Oracle9i及以前版本中,只能用手动SGA内存管理,不存在参数SGA_TARGET,而且参数 SGA_MAX_SIZE只是一个上限,而不是动态目标,但10G中时SGA_TARGET设置不能超过它。
在Oracle 10g中,与内存相关的参数可以归为两类:
Ø 自动调优的SGA参数:目前这些参数包括DB_CACHE_SIZE、SHARED_POOL_SIZE、LARGE_POOL_SIZE和JAVA_POOL_SIZE。
Ø 手动SGA参数:这些参数包括LOG_BUFFER、STREAMS_POOL、DB_NK_CACHE_SIZE、DB_KEEP_CACHE_SIZE和DB_RECYCLE_CACHE_SIZE。
在Oracle 10g中,任何时候你都能查询V$SGAINFO,来查看SGA的哪些组件的大小可以调整。
采用自动SGA内存管理时,确定自动调整组件大小的主要参数是SGA_TARGET,这个参数可以在数据库启动并运行时动态调整,最大可以达到SGA_MAX_SIZE参数设置的值(默认等于SGA_TARGET,所以如果想增加SGA_TARGET,就必须在启动数据库实例之前先把SGA_MAX_SIZE设置得大一些)。数据库会使用SGA_TARGET值,再减去其他手动设置组件的大小(如DB_KEEP_CACHE_SIZE、DB_RECYCLE_CACHE_SIZE等),并使用计算得到的内存量来设置默认缓冲区池、共享池、大池和Java池的大小。在运行时,实例会根据需要动态地对这4个内存区分配和撤销内存。
随着时间的推移,当实例的内存需求越来越确定时,各个SGA组件的大小也越来越固定。即便数据库关闭后又启动,数据库还能记得组件的大小,因此不必每次都从头再来确定实例的正确大小。这是通过4个带双下划线的参数做到的:__DB_CACHE_SIZE、__JAVA_POOL_SIZE、__LARGE_POOL_SIZE和__SHARED_POOL_SIZE。如果正常或立即关闭数据库,则数据库会把这些值记录到存储参数文件(SPFILE)中,并在启动时再使用这些值来设置各个区的默认大小。
另外,如果知道4个区中某个区的最小值,那么除了设置SGA_TARGET外,还可以设置这个参数。实例会使用你的设置作为下界(即这个区可能的最小大小),但是重要的一点要记住,这样Oracle就不能缩小相应区的大小到设定的最小值以下了。
以上内容总结自:
Sybex OCP 10G 管理II Page:508、OCP Exam All-in-one 、Oracle 9i&10g 编程艺术
分享到:
相关推荐
总之,Oracle内存结构的全面分析涵盖了SGA、PGA和UGA的各个组成部分,以及如何通过参数调整和管理策略优化内存使用,以实现最佳的数据库性能。了解这些内存结构及其交互方式对于解决性能问题和预防故障至关重要。
5. **Shared Pool与Shared SQL**:Shared Pool是Oracle内存管理的重要组成部分,它存储了SQL语句的解析结果,避免了重复解析,从而提高了系统性能。在Oracle 11g中引入了Result Cache,进一步优化了SQL查询的性能,...
### ORACLE内存结构与表空间知识 #### 一、Oracle的服务方式 Oracle提供了三种不同的服务方式,每种方式都有其特定的应用场景和内存管理特点。 ##### 1. 专用服务器 (Dedicated Server) - **服务流程**:当...
PGA(Program Global Area)是 ORACLE 数据库中的一种内存结构,它用于存储会话级别的数据。PGA 的调整也需要满足两个前提条件: 1. WORKAREA_SIZE_POLICY 参数必须设置为 AUTO。 2. PGA_AGGREGATE_TARGET 参数不能...
理解Oracle的内存结构和进程结构对于数据库管理员来说至关重要,因为这些组件直接影响着数据库的性能、稳定性和资源利用效率。通过对这些区域的监控和调整,可以优化数据库的工作表现,确保系统的高效运行。
总的来说,Oracle内存结构与实例管理涉及到多个层面,包括内存分配策略、各内存区域的使用以及后台进程的协同工作。深入理解和优化这些方面,对于提升数据库性能和保证服务稳定性具有不可忽视的作用。
总的来说,Oracle内存管理涉及到多个层面,包括进程私有内存(PGA)和全局共享内存(SGA)的配置、使用和优化。深入理解这些概念并掌握相应的监控和调整技巧,是确保Oracle数据库高效稳定运行的基础。通过持续的学习...
Oracle内存结构主要分为两大部分:SGA(System Global Area)和PGA(Program Global Area)。SGA是数据库进程共享的一块内存区域,而PGA则是每个单独数据库进程的私有内存空间。 1. SGA(系统全局区) - 数据缓冲...
Oracle 10g的内存结构是数据库管理系统的关键组成部分,它决定了数据库的性能和稳定性。SGA(System Global Area)是Oracle数据库中一个重要的共享内存区域,用于存储数据库运行时的各种数据和控制信息。 1. SGA...
Oracle 12c 的内存结构图展示了数据库的内存分配和管理机制。以下是 Oracle 12c 的主要内存结构组件: 1. Shared Pool:负责管理共享SQL、存储过程和函数的执行计划。 2. Library Cache:负责管理共享的库对象。 3....
Oracle内存管理是数据库系统中的关键组成部分,它直接影响到数据库的性能和稳定性。Oracle数据库使用复杂的内存结构来存储和处理数据,这些内存结构包括共享池、数据缓冲区缓存、PGA(程序全局区)和SGA(系统全局区...
内存管理是Oracle数据库性能优化的重要方面,合理配置和调整内存结构可以显著提高数据库的响应速度和资源利用率。监控内存使用情况,分析性能指标,适时调整相关参数,是确保数据库高效运行的关键。
Oracle数据库是全球广泛使用的...通过理解Oracle内存结构,结合实际工作负载,合理调整内存分配,可以显著提升Oracle数据库的运行效率和稳定性。在实际操作中,应根据具体环境和需求,综合运用各种方法来优化内存配置。
本文将深入探讨Oracle内存结构,包括SGA(System Global Area)和PGA(Program Global Area),以及如何进行全面的内存分析。 一、Oracle内存架构 1. SGA(系统全局区) SGA是Oracle数据库运行时共享的一片内存...
总之,"Oracle内存资源分配"是一个涉及多方面知识的复杂主题,需要深入理解Oracle内存结构,熟悉各种内存参数,以及具备一定的性能监控和调优技巧。通过合理的内存分配,我们可以最大化数据库性能,满足业务需求,...
Oracle 12c数据库体系结构图文详解手册是 Oracle 12c数据库管理系统的核心组件之一,该手册详细介绍了 Oracle 12c数据库的体系结构、实例、数据库、内存结构、后台进程、控制文件、重做日志文件、数据文件等概念。...
### Oracle的内存结构与进程结构 #### 一、Oracle实例(Instance) 在Oracle数据库系统中,每一个运行的数据库实例都紧密关联着一个特定的数据库。这个实例是用户访问数据库的基础平台。实例通常由两大部分组成:...