Oracle数据库内存结构
内存结构分为:
SGA区(系统全局区):位于系统的共享内存段中,其中的数据可以被所有的服务和后台进程共享。
PGA区(程序全局区):保存的是某个服务器进程私有的数据和控制信息,非共享内存。每个服务进程都拥有自己的PGA区。
SGA区(系统全局区)
系统全局区SGA是由一组内存结构组成,它是所有服务器进程共享的一块内存区域。
数据库实例启动时,SGA的内存被自动分配;当数据库实例关闭时,SGA被回收。
查看SGA信息
方法一:使用数据字典
select * from v$sga
方法二:使用sqlplus命令
show sga
SGA区包含的内存结构
SGA区包含以下内存结构:
共享池(shared pool)
数据库高速缓冲区(database buffer cache)
重做日志缓冲区(redo log buffer)
java池
大型池(large pool)
程序全局区PGA
当oracle创建一个服务器进程的同时要为改服务器进程 分配一个内存区,该内存区称为程序全局区(Program Global Area ,PGA)。
PGA是保持特定服务进程的数据和控制信息的内存结构,这个内存结构是私有的内存区,不能共享,只有服务进程本身才能够访问它自己的PGA区。
PGA随着服务器进程的创建而被分配,随着服务器进程的终止而被回收。
查看PGA信息
方法一:使用数据字典
select * from v$pgastat;
在专用服务器进程的配置情况下,PGA区包括以下结构:
排序区:用于处理sql语句所需的排序。
Cursor状态区:用于指示会话当前所使用的sql语句的处理状态。
会话信息区:包括会话的用户权限和优化统计信息。
堆栈区:包括其他的会话变量。