《深入解析Oracle》第五章,内存管理

本章内容主要是讲解Oracle的PGA,SGA的内存分配问题
整体上和自己以前了解的相一致
当然,程度更加深入
简单记录一些

PGA,程序全局区,可分为固定、可变两部分
而可变PGA区是DBA更关心的
其中包括会话内存(存放session登录相关信息)和私有SQL区(SQL执行状态、游标等信息)
其中,每个用户可打开游标数受到OPEN_CURSORS参数的限制

UGA,用户全局区,主要是用户会话,游标状态等相关数据
CGA,调用全局区,用于分析、执行SQL,获取结果集
两者默认情况包含在PGA中,也可由Oracle自行单独划分内存

V$PGASTST视图可用于查询PGA相关信息
而10g之后的V$PROCESS视图也提供了关于进程消耗PGA的相关字段
SQL工作区分为三种模式(optimal,onepass,multipass)
一般情况,属于optimal的操作越多表示数据库性能越好
可通过V$SYSSTAT视图查询相关,以此作为PGA性能参考
V$PAG_TARGET_ADVICE,V$PGA_TARGET_ADVICE_HISTOGRAM
会给用户提出一些用于调整PGA的参考数值

SGA,系统全局区
可分为固定区,缓冲缓存,共享池,重做日志缓冲等子区(以前了解过)
V$SGASTST视图可查询相关信息(但书上说因为bug等因素,数值不太准……)
SGA的设定,尽量小于操作系统的shmmax,最大共享内存(Windows系统无需特别注意)
V$DB_CACHE_ADVICE,V$SHARED_POOL_ADVICE
为用户提供SGA设置参考数值

当Oracle发展到现在,对于内存管理已经可以完全自动化了
以个人接触最多的10g来说
PGA,SGA都有各自的参数用来指定是否由Oracle自动分配,并可设定内存额度
另外,Oracle也给出不同数据库环境的设定建议
OLTP系统中,Oracle应使用不大于系统总内存80%的内存数
其中PGA使用份额大约是Oracle使用内存总数的20%
而对于DSS系统,总内存数不变,PGA使用量大约为50%
不正确的内存参数设置,将可能导致无法连接Oracle,CPU占有率过高等问题
书中还介绍了很多隐含参数以及细节原理,就不一一记录了

总的说来,本周进度还算可以接受
希望下周可以继续保持这种状态
不过……第六章是个比较难啃的骨头,近100页
大概进度要受到不少影响了 ◎◎

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

转载于:http://blog.itpub.net/556359/viewspace-580551/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值