oracle的动态内存管理

SGA(SYSTEM GLOBAL AREA)
是一组为系统分配的共享的内存结构,可包含一个数据库实例的数据或控制信息。
如果多个用户同时连接到同一个实例时,在实例的SGA中的数据可为多个用户所共享,所以又成为共享全局区。当数据库实例启动时,SGA的内存被自动分配;
当数据库实例关闭时,SGA被回收。
SGA按其作用不同,可以分为数据缓冲区、日志缓冲区以及共享池
1.数据缓冲区
数据缓冲区用于存储从磁盘数据文件中读入的数据,所有用户共享。
数据被修改时,首先要从数据文件中取出,存储于数据缓冲区。

修改的数据、插入的数据被存储于数据缓冲区中,修改完成或DBWR进程的其他条件引发时,数据被写入数据文件。

LRU:是LEAST RECENTLY USED(最近最少使用原则)的缩写,是数据缓冲区的一种管理机制,只保留最近数据,不保留旧数据。
DIRTY:是脏列表,或叫弄脏了的数据,表示修改了但还没有写到数据文件的数据。

2。日志缓冲区

日志缓冲区用于存储数据库的修改信息。日志信息首先产生于日志缓冲区。
当日志写入进程LGWR将日志数据写入日志文件组,再经过切换,由归档进程ARCH
将日志数据写入归档介质。
相对于数据缓冲区而言,日志缓冲区大小的数据性能较小。

3.共享池
SGA中的第3个组成部分是共享池。共享池是对SQL,PL/SQL程序进行语法分析、编译、执行的内存区域。共享池包括库缓冲(LIBRARY CACHE)、数据词典缓冲(DATA DICTIONARY CACHE)以及用户全局区(USER GLOBAL AREA)3个部分。其中,
库缓冲区含有SQL语句的分析码、执行计划;数据字典缓冲区含有从数据字典中得到的表、列定义、权限。用户会话区包含用户的MTS会话信息。
共享池主要用于对SQL,PL/SQL程序进行语法分析、编译、执行,所以,如果应用中要运行大量的存储过程或包,则要增加共享池的尺寸。共享池大小由参数SHARED_POOL_SIZE确定。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值