在oracle中,可以利用“alter system set pga_aggregate_target=数值...”命令修改pga的大小;pga是“Program Global Area”的缩写,是程序缓存区,是一块包含服务进程数据以及控制信息的内存区域。
本教程操作环境:windows10系统、Oracle 12c版、Dell G3电脑。
修改pga大小的语法为:
alter system set pga_aggregate_target=数值...
示例如下
在ORACLE中, PGA(Program Global Area,也叫做程序缓存区) 是一块包含服务进程数据以及控制信息的内存区域。具体特点如下:
PGA 由固定 PGA 和可变 PGA (也称为PGA Heap或PGA堆)。固定 PGA容量大小是固定的,包含了大量原子变量、小的数据结构和指向可变 PGA 的指针。
PGA是Oracle 在一个服务进程启动时创建的,是非共享的。
一个 Oracle 进程拥有一个 PGA 。一个 PGA 也只能被拥有它的那个服务进程所访问,只有这个进程中的 Oracle 代码才能读写它。
PGA 中包含了关于进程使用到的操作系统资源的信息,以及一些关于进程状态的信息。而关于进程使用的 Oracle共享资源的信息则是在 SGA ( 系统全局区 ) 中。这样做可以使在进程以外中止时,能够及时释放和清除这些资源。
PGA与 SGA 类似,都是 Oracle 数据库系统为会话在服务器内存中分配的区域。
两者的作用和共享程度也不相同。 SGA 对系统内的所有进程都是共享的。当多个用户同时连接到一个例程时,所有的用户进程、服务进程都可以共享使用这个 SGA 区。SGA 的主要用途就是为不同用户之间的进程与服务进程提供交流的平台。
扩展知识
PGA与SGA的区别
PGA(程序缓存区)与SGA (系统全局区)类似,都是Oracle数据库系统为会话在服务器内存中分配的区域。不过两者的作用不同,共享程度也不同。
SGA 系统全局区,顾名思义,是对系统内的所有进程都是共享的。当多个用户同时连接到一个例程时,所有的用户进程、服务进程都可以共享使用这个SGA区。为此这个SGA的主要用途就是为不同用户之间的进程与服务进程提供一个交流的平台。除了这个作用,另外有一个重要的作用就是各种数据库的操作主要就是在这个SGA区内完成。
而PGA程序缓冲区,则主要是为了某个用户进程所服务的。这个内存区不是共享的,只有这个用户的服务进程本身才能够访问它自己的PGA区。做个形象的比喻,SGA就好像是操作系统上的一个共享文件夹,不同用户可以以此为平台进行数据方面的交流。而PGA就好像是操作系统上的一个私有文件夹,只有这个文件夹的所有者才能够进行访问,其他用户都不能够访问。虽然程序缓存区不向其他用户的进程开放,但是这个内存区仍然肩负着一些重要的使命,如数据排序、权限控制等等都离不开这个内存区。
推荐教程:《Oracle视频教程》
以上是oracle怎么修改pga的详细内容。更多信息请关注PHP中文网其他相关文章!