oracle笔记--SGA总结(二)

重做日志缓存区

  用户每一次对数据的修改均会在重做日志缓存区生成一条相关记录。重做日志缓存区是一个循环缓存区,依次记录用户修改操作的重做条目。LGWR将redolog buffer缓存区中的重做条目缓存到数据库中的redolog file中。redolog文件对于维护数据库的数据的完整性十分重要,在数据库实例每次启动时都会去检查是否需要通过redolog文件中记录的数据,对数据文件进行恢复和回滚操作。由于redolog文件中数据的分布式顺序不想数据文件中的数据分布是离散的,所以LGWR数据的同步速度比DBWn要快得多。一旦数数据被同步到了redolog文件中则可以认为对数据的该操作已经永久保存。

  触发同步条件如下:

  1.每隔3秒一次

  2.有提交请求

  3.LGWR切换日志

  4.重做去满了1/3或者缓存的数据超过了1M

Redo Log Buffer的大小由初始化参数LOG_BUFFER定义,该参数的缺省值为Max(512KB,128KB*CPU_COUNT)。通常这一缺省值是足够的。

  
 共享池

  共享池缓存各类型的程序数据,如执行计划,已解析的sql,系统参数和数据字典等信息。结构如下图所示:

  

  Library cache:

  用户在执行一条sql语句以后往往会在share sql area中会对这个条sql语句进行缓存。当用户再次执行sql语句是,oracle会去这个共享区域检索。如果存在已经解析的sql语句,将会利用已经解析的结果,避免硬解析来提升性能。通过v$sql可以查询缓存的sql,v$sql_plan缓存着对应的执行计划。

  出现以下情况时会使library中缓存的sql信息无效:

  1.为表,簇,索引等重新进行信息统计,这将会使sql区中的信息重新生成以反映相关的统计信息

  2.使用DDL语句修改了表结构信息

  3.更改了全局数据库名称。

  4.使用alter system flush share_pool

  Data dictitionary:

  数据字典是表和视图元数据的集合,其中包含有关数据库结构以及其结构,用户等参考信息。oracle解析sql语句期间将会频繁访问该区域。

  Result cache:

  结果缓存区分为sql查询结果过缓存和pl/sql函数缓存。

  sql查询结果过缓存缓存的sql执行的查询结果,当下次再次执行时该查询是将会直接从结果缓存区中将查询结果返回。当然如果缓存的数据和表中的数据不一致即表中的数据被修改时,将会自动是缓存的结果失效然后重新缓存结果数据。由RESULT_CACHE_MODE来控制是将所有的查询结果记性缓存还是只缓存添加了RESULT_CACHE注释的缓存。

  pl/sql函数结果缓存缓存每一次函数执行的结果,避免对相同入参产生相同结果函数进行再次调用。
 流池

存储缓冲的队列信息,并为oracle的流捕获进程和应用进程提供内存。
固定SGA

oracle用管理内部事务信息的内存区域。包括数据库以及实例的状态信息,进程间的通讯信息。如锁等。

时间: 2024-10-03 08:48:44

oracle笔记--SGA总结(二)的相关文章

Oracle笔记(十二) 集合、序列

Oracle笔记(十二) 集合.序列 一.集合 在数学的操作之中存在交.差.并.补的概念,而在数据的查询中也存在此概念,有如下几个连接符号: UNION:连接两个查询,相同的部分不显示: UNION ALL:连接两个查询,相同的部分显示: INTERSECT:返回两个查询中的相同部分: MINUS:返回两个查询中的不同部分: 为了验证以上的操作,下面创建一张只包含20部门雇员信息的表: CREATE TABLE emp20 AS SELECT * FROM emp WHERE deptno=20

oracle笔记---SGA之高速缓存区

SGA(system global area)系统全局区域,在内存中分配一份共享内存区域为oracle的一些关联进程运行所共享.如DBWn,PMON.SGA分为有以下几部分组成: 1.高速缓存区 2.重做日志缓存区 3.共享池 4.大池 5.java池 6.流池 7.固定SGA 高速缓存区高速缓存区的主要作用于缓存从数据文件中读取的数据块.当用户请求数据时,oracle会从高速缓存区中检索,如果检索到了对应的数据块即缓存命中,oracle便会直接从缓存区中读取数据.如果没有命中,oracle的读

Oracle笔记(二) SQLPlus命令

Oracle笔记(二) SQLPlus命令 对于Oracle数据库操作主要使用的是命令行方式,而所有的命令都使用sqlplus完成,对于sqlplus有两种形式. 一种是dos风格的sqlplus:sqlplus.exe; 另一种是windows风格的sqlplus:sqlplusw.exe; 在Oracle 10g之中主要使用的是sqlplusw命令,因为其可以进行一些显示数据的调整. 此时会找到默认的已经可以使用的数据库实例. 范例:输入查询指令 SELECT * FROM emp; 此时的

Oracle笔记 目录索引

Oracle笔记 一.oracle的安装.sqlplus的使用 Oracle笔记 二.常用dba命令行 Oracle笔记 三.function .select Oracle笔记 四.增删改.事务 Oracle笔记 五.创建表.约束.视图.索引.序列.同义词.表空间 Oracle笔记 六.PL/SQL简单语句块.变量定义 Oracle笔记 七.PL/SQL 异常处理 Oracle笔记 八.PL/SQL跳转/判断/循环语句块 Oracle笔记 九.PL/SQL 游标的使用 Oracle笔记 十.PL

Oracle内存管理理论篇二

目标 了解oracle内存管理方式 掌握ASMM管理方式 掌握AMM管理方式 监控内存使用 学习一个知识点时,最好先了解其历史.ORACLE近期的版本都对内存管理做了简化,从9i通过PGA_AGGREGATE_TARGET参数实现PGA的自动管理,10g通过Automatic Shared Memory Management(ASMM)实现SGA的自动管理,到11g通过Automatic Memory Management(AMM)实现内存(SGA+PGA)的自动管理.目前的11G版本,DBA只

纸质笔记整理(二)

若你的应用需要进行分布式部署,如果你的分布式对象需要支持事务.如果你的关键业务逻辑需要能够支持多种不同类型的客户端,那么EJB将会是一个很好的选择. java虚拟机运行时数据区:                                         需要同时满足下面3个条件才能算是"无用的类": 1,该类的所有实例都已被回收,也就是JAVA堆中不存在该类的任何实例. 2,加载该类的ClassLoader已被回收. 3,该类的java.lang.Class对象没有在任何地方被引

转:oracle笔记

oracle笔记1 卸载oracle developer server的方法: 1-1 oracle卸载工具中卸载对应的oracleds项目:在注册表中搜索ORACLEDS HOME对应的别名,删除对应的项:重新启动计算机:删除对应的ORACLEDS的安装目录: 2jinitiator的相关问题: 2-1 jinitiator是oracle自己的applet viewer工具: 2-2 在第一次打开web应用程序时会自动提示安装该程序,如果不安装则无法打开程序: 2-3 jinitiator是在

Oracle笔记(六) 多表查询

Oracle笔记(六) 多表查询 本次预计讲解的知识点 1. 多表查询的操作.限制.笛卡尔积的问题: 2. 统计函数及分组统计的操作: 3. 子查询的操作,并且结合限定查询.数据排序.多表查询.统计查询一起完成各个复杂查询的操作: 一.多表查询的基本概念 在之前所使用的查询操作之中,都是从一张表之中查询出所需要的内容,那么如果现在一个查询语句需要显示多张表的数据,则就必须应用到多表查询的操作,而多表查询的语法如下: SELECT [DISTINCT] * | 字段 [别名] [,字段 [别名]

Oracle笔记(十一) 建表、更新、查询综合练习

Oracle笔记(十一) 建表.更新.查询综合练习 有某个学生运动会比赛信息的数据库,保存了如下的表: 运动员sporter(运动员编号sporterid,运动员姓名name,运动员性别sex,所属系号department) 项目item(项目编号itemid,项目名称itemname,项目比赛地点location) 成绩grade(运动员编号id,项目编号itemid,积分mark) 请用SQL语句完成如下功能: 1.  建表,并在相应字段上增加约束: 定义各个表的主键和外键约束: 运动员的姓