oracle+sga+pga用途,Oracle 内存设置 SGA PGA

本文介绍了Oracle数据库中SGA(系统全局区)和PGA(程序全局区)的作用,以及如何进行内存设置和调优。在Oracle 11g中,自动内存管理(AMM)通过MEMORY_TARGET参数简化了内存分配。文章提供了手动和自动内存管理的指导,包括内存分配比例建议,并提到了几个有用的查询视图来获取内存管理建议和PGA最大分配值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

oracle的内存一直是DBA比较关注的部分。今天总结一下设置及调优原则。

Oracle使用两种类型的内存结构,一种为共享的,而另一种为进程专有的。SGA(系统全局区)是所有服务器进程(包括后台进程)可共享的内存部分;进程专有的内存部分称为PGA(程序全局区)。

当启动Oracle数据库时,系统会先在内存内规划一个固定区域,用来储存用户需要的数据,以及Oracle运行时必备的系统信息。我们称此区域为系统全局区(System Global Area),简称SGA。SGA是Oracle实例中最重要的内存部件。SGA的目的是提高查询性能,允许大量的并发数据库活动。

调整SGA并不总是很容易。在Oracle 11g中,用户可以使用自动内存管理(Automatic Memory Management)来将共享内存管理问题完全自动化。使用AMM,Oracle将根据变化的数据库负荷为SGA和PGA自动分配内存或回收内存,重新分配,Oracle使用内部视图和统计数据来决定为SGA组件中分配内存的最好办法。

为了切换到AMM,必须设置MEMORY_TARGET参数。设置MEMORY_TARGET参数后,数据库将根据数据库负荷的要求,把内存分配给SGA和PGA的组件。MEMORY_TARGET参数是动态的,因此在数据库运行时改变内存数量很容易。及时在启动自动内存分配后,也可以通过设置MEMORY_TARGET参数设置SGA_TARGET和或PAG_AGGREGATE_TARGET参数。

事实上,除了MEMORY_TARGET参数,还有MEMORY_MAX_TARGET参数,它是静态参数,代表内存(SGA+PGA)的最大值。如果指定了MEMORY_TARGET而没有指定MEMORY_MAX_TARGET,重启后MEMOR

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值