21、Oracle数据库内存管理:从手动到自动的转变

Oracle数据库:从手动到自动PGA内存管理

Oracle数据库内存管理:从手动到自动的转变

1. 手动内存管理及 *_AREA_SIZE 参数

1.1 内存使用观察

在进行排序操作时,尽管设置了 SORT_AREA_SIZE 上限为 1GB,但实际仅使用了约 9MB。这表明 SORT_AREA_SIZE 只是一个上限,并非默认和唯一的分配大小。在不同版本的 Oracle 或不同操作系统上运行相同测试,可能会有不同表现,但总体趋势是:随着允许的排序区域大小增加并执行大型排序操作,会话使用的内存量会增加。例如,在 Oracle 8i 中,PGA 内存不会缩小,因为 8i 版本中 PGA 作为堆进行管理,通过 malloc() 分配内存;而在 9i 及以上版本,会根据需要使用特定于操作系统的内存分配调用附加和释放工作区。

1.2 *_AREA_SIZE 参数要点

  • 控制操作内存上限 :这些参数控制 SORT、HASH 或 BITMAP MERGE 操作使用的最大内存量。
  • 多操作与多区域 :单个查询可能有多个使用此内存的操作,可能会创建多个排序/哈希区域。若设置排序区域大小为 10MB,会话可能使用 10MB、100MB、1000MB 或更多的 RAM。这些设置是单个操作的限制,而非会话限制。
  • 按需分配内存 :设置排序区域大小为 1GB,并不意味着会分配 1GB 的 RAM,只是允许 Oracle 进程为排序/哈希操作分配该数量的内存。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值