关于OLTP和OLAP分配不同PGA,和SGA内存比例不明白原因

[复制链接]
查看11 | 回复9 | 2014-7-11 07:56:59 | 显示全部楼层 |阅读模式
oracle有一个经验值,就是DSS或者说OLAP的PGA和SGA分别分配总内存的80%的50%和50%,就是ORACLE占用总内存的80%,然后PGA和SGA各半
OLTP就是ORACLE占总内存的80%,然后再分配20%给PGA,80%给SGA,就不是各半了
请问这样的差别究竟是为什么,我自己问自己,但是却答不上来
回复

使用道具 举报

千问 | 2014-7-11 07:56:59 | 显示全部楼层
olap经常会有大量的sort,所以需要比较大的PGA
oltp对性能要求高一些,就是对shared_pool和data buffer的性能要求高一些,sga大一些是应该的
回复

使用道具 举报

千问 | 2014-7-11 07:56:59 | 显示全部楼层
最初由 alantany 发布
[B]olap经常会有大量的sort,所以需要比较大的PGA
oltp对性能要求高一些,就是对shared_pool和data buffer的性能要求高一些,sga大一些是应该的 [/B]


是因为这个啊,SORT 区是在PGA中吗,我怎么记得是在SGA中啊
回复

使用道具 举报

千问 | 2014-7-11 07:56:59 | 显示全部楼层
最初由 wabjtam123 发布
[B]

是因为这个啊,SORT 区是在PGA中吗,我怎么记得是在SGA中啊 [/B]

排序区当然是在PGA了


回复

使用道具 举报

千问 | 2014-7-11 07:56:59 | 显示全部楼层
OLAP由于有着大量的全表扫描等操作,这样的环境中SGA的作用就不太大,因为可能一张表的数据量都比DB CACHE大,一个FTS的就需要反复几次数据经过SGA再转到PGA进行处理;至于共享池的存在意义就更不大了,因为很少有语句需要共享的。将PGA设置大一些就是因为OLAP里面的很多操作是需要到PGA来处理的,比如大数据量的排序、连接等操作,通过并行处理,通常是发生direct path read,这样数据通常是直接从数据文件读取到PGA进行处理,因此需要PGA大一些。我们测试RAC时每个节点32G的内存曾经分给PGA 24G,SGA只给了4G,效果很明显


回复

使用道具 举报

千问 | 2014-7-11 07:56:59 | 显示全部楼层
OLAP一般都是一次性的查询,sga分太大意义不是很大。而且大部分涉及排序操作,pga是应该大一些。
回复

使用道具 举报

千问 | 2014-7-11 07:56:59 | 显示全部楼层
楼上都说的差不多了,主要就是业务的需求不一样,导致对各区的要求也不一样。
回复

使用道具 举报

千问 | 2014-7-11 07:56:59 | 显示全部楼层

回复

使用道具 举报

千问 | 2014-7-11 07:56:59 | 显示全部楼层
oltp 在线事务处理
olap 在线事务分析
一个要求相应时间快。
另外一个吞吐量大。
回复

使用道具 举报

千问 | 2014-7-11 07:56:59 | 显示全部楼层
谢谢各位,明白了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行