Oracle数据库配置中的SGA和PGA

问题描述 投票:0回答:1

我知道SGA(包含一个Oracle数据库实例的数据和控制信息)代表系统全局区域和PGA(包含专门供Oracle进程使用的数据和控制信息)代表程序全局区域但是,我不知道真正了解变量对数据库的作用。如果SGA配置为比PGA大10倍,那么在检索数据时会有什么帮助?

oracle memory
1个回答
1
投票

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

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

两者之间没有比例。 SGA根据发送到服务器的代码和数据的大小来确定大小,并且PGA根据活动的进程数量是动态的。如果有数千个进程,PGA很容易成为SGA的两倍。不过,SGA的尺寸非常小;使其更大并不一定会因性能原因而变得更好。

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

© www.soinside.com 2019 - 2024. All rights reserved.