暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

基于Oracle的数据仓库/OLAP中的PGA Vs SGA

ASKTOM 2020-03-18
986

问题描述

首先,在Oracle数据库的上下文中,什么是PGA和SGA?PGA和SGA的作用是什么?东西是如何工作的?

数据仓库需要更多的PGA和更少的SGA是真的吗?
如果为真,那么背后的理由是什么?


专家解答

“数据库概念” 指南是Oracle所有工作的绝佳资源。

这里覆盖了内存

https://docs.oracle.com/en/database/oracle/oracle-database/19/cncpt/memory-architecture.html#GUID-913335DF-050A-479A-A653-68A064DCCA41

但简而言之...

1) SGA

存储通用结构和数据的地方。在事务系统中,当 * I * 读取 (例如) 产品列表时,我希望将其存储在内存中,以便其他人不必从磁盘读取它。在事务系统中,我们通常有很多小表,* 每个人 * 都想一直读取。然后我们将行插入到更大的表中。但是,即使是那些较大的表,通常也有很多人阅读最新数据。“向我显示最后一个小时的销售情况” 等。所以我们希望最大限度地利用SGA,因为它对于那些常见的结构和数据。

比较一下数据仓库。我要查询销售2019。您将查询销售2018。通常,我们正在运行巨大的查询 (a) 通常很少或没有数据重叠,并且 (b) 无论如何都无法将数据完全存储到内存中。SGA在这里给我的好处较少,因为我们没有很多共同点。

2) PGA

仅存储用户会话的信息的位置。每个用户获得他们的PGA (或PGA总分配的块)。不共享。因此,当我查询排序或需要临时数据时,除了我之外,没有人可以从中受益,它存储在PGA中。在事务系统上,我可能不会对大量数据进行排序或排序。每笔交易我到处都只有几行。我需要 * 一些 * PGA,但不是很多。

在数据仓库上,我总结了过去10年的所有销售额。这可能是 * 巨大 * 数量的排序。聚合大量数据的查询将受益于大量的PGA,因为理想情况下,我不想在磁盘上进行排序。


文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论