Oracle数据库配置中的SGA和PGA

时间:2018-08-31 06:36:29

标签: oracle memory

我知道SGA(包含一个Oracle数据库实例的数据和控制信息)代表System Global Area,而PGA(包含Oracle进程专用的数据和控制信息)代表Program Global Area,但是,我不太了解变量对数据库的作用。如果将SGA配置为PGA的10倍,那么在检索数据时会有什么帮助?

1 个答案:

答案 0 :(得分:1)

SGA是服务器上的内存结构,其中包含用于保存代码,SQL,类,游标等的池以及用于保存数据的缓存。因此,当客户端向服务器发送查询时,代码和数据就位于SGA中,以由服务器上的RDBMS进行处理。

PGA是用于用户服务器进程的共享内存区域,用于临时存储区和工作区。 Oracle使用PGA和temp表空间来工作,以获取返回给客户端的结果集,然后释放该会话的PGA。

两者之间没有比例。根据要向服务器发送多少代码和数据来确定SGA的大小,并根据活动的进程数来确定PGA是动态的。如果有成千上万个进程,则PGA可以轻松地成为SGA的两倍。 SGA的尺寸非常谨慎;出于性能方面的考虑,使其变大并不一定会使其变好。

还有一个UGA(用户全局区域),它是每个客户端(非服务器)进程的存储区域。