系统全局区--System global area(SGA) 是一组共享的内存结构,它里面存储了oracle数据库实例(instance)的数据和控制文件信息。如果有多个用户同时连接到数据库,他们会共享这一区域,因此SGA也称之为Shared Global Area。当数据库实例启动时,SGA的内存被自动分配;当数据库实例关闭时,SGA内存被回收。
SGA是占用内存最大的一个区域,同时也是影响数据库性能的重要因素。
SGA主要包括以下几部分:
² 共享池
² 数据缓冲区
² 大型池
² Java池
² 日志缓冲区
上面几部分内存加起来,就是SGA内存的总和。其中比较重要的是共享池和数据缓冲区,后面将会重点讲解它们。
SGA是可以动态调整大小的,也就是说调整其大小是不用shutdown数据库的。在初始化参数中设置可以设置sga_max_size这个参数,当SGA的各部分的和要大于设置的sga_max_size的参数的时候,设置的sga_max_size将会被忽略掉,而是将各部分的大小相加。当sga_max_size的大小大于各部分的大小相加时,会使用sga_max_size的参数。
SGA是占用内存最大的一个区域,同时也是影响数据库性能的重要因素。
通过下面的命令来查看SGA:
show parameter sga;
结果如下图:
sga_max_size的值就是SGA的大小,从上图可以看出sga_max_size的大小是256M。