Oracle数据库SGA的一些笔记

数据库 Oracle
本文主要介绍了Oracle数据库SGA的一些知识的总结,希望能够对您有所帮助。

SGA Oracle的每一个实例对应,实例启用则系统分配一个SGA,在实例关闭的时候回收。服务器端所有的历程以及Oracle的后台历程均可拜会SGA,局部的历程有写SGA的权限。 SGA中有一局部的内存,叫做Fixed SGA,其中包括了数据库实例的事态。

SGA 包括以下几个局部:

Buffer Cache

重要储藏block数据的拷贝,对所有用户分享。 在这个cache中所有的block重要以两个队列的数据构造保留。

Write List: 储藏一些曾经被修正的数据(dirty data)。

LRU List: 保留三局部消息: 空block, pinned buffer(猜该当是没修正的,正处理的),dirty buffer(还未曾被迁移到Write List-- 这里就能够看出把buffer从LRU List到Write List的挪动并不是实时的,而是有一个引发的过程1)。

流程描写如下:一个DB的process试图读取一个block的内容,率先会查询buffer cache看里面是否有对应的block, 万一有则直接读取(cache hit),万一未曾的话,就会在LRU List里面从LRU端开始寻找轻便的空buffer,万一碰到了Dirty Buffer,则移到Write List(解释了上标1),然后继续寻找。万一找到轻便的free buffer,就将block装载到buffer cache中,万一最后未曾找到,就动身DBW0事件,将dirty buffer写入到磁盘中。

等闲理况下buffer cahce会将新的block储藏的LRU的MRU端(最新拜会),然而万一是全表扫描,则会将新读入的blocks纳入到LRU端(全表扫都是多个blocks同时读取,而非单block读取--参见书COB第19页)。万一想要全表扫时放到MRU端,则需在select语句中指定利用'cache'。例如:SELECT last_name FROM employees hr_emp;

Redo Log Buffer

储藏一些redo的消息,这些消息能够redo语句insert/update/delete/alter/create/drop,redo buffer是由db process从用户内存中拷贝到redo log buffer,这个buffer挪借了继续的空间,redo log buffer由LGWR写到redo log中。

Share Pool

重要包括Library cache,Data cache,result cache(11g新出来的)。

Library cache 包括Shared SQL areas,Private SQL areas (万一是利用shared server),pl/sql的procedure和package,以及一些扼制消息例如锁,最后还有library cache的handle。

Share SQL Area是针对所有用户,而Private SQL Area对每一个用户都有一个独自的copy.华擎在Shared SQL Area中,Oracle存储sql的分析树和厉行计划,当一个新的sql被分析时,Oracle从Share SQL Area中分配一个空间,空间大小随sql的混杂度而改变,万一空间不足www.d1am.com的话,Oracle会依据LRU算法释放本来挪借的空间而分配给新的sql.

对于一些plsql过程段,oracle也是一样看待,在Share SQL Area中分析,在Private SQL Area中存储相干的变量及SQL的厉行空间。在PLSQL过程段中的sql,也会分配一个自力更生的Share SQL Area 和Private SQL Area.

刷新share sql area的几个措施:

1.利用analyze 语句。

2.sql中引用的对象被改换。

3.database 的 global name被改换。

4.alter system flush shared_pool。

关于Oracle数据库SGA的知识的总结就介绍这么多,希望能够带给您一些收获吧。

【编辑推荐】

  1. 浅析Oracle 10g isqlplus使用DBA账户的方法
  2. Oracle数据库中如何检查索引碎片并重建索引
  3. Oracle数据库定时器Job在各个时间的写法总结篇
  4. 简单介绍一下Oracle数据库PL/SQL异常处理代码
  5. Oracle数据库中各种类型的文件损坏与修复过程详解
责任编辑:赵鹏 来源: 新浪博客
相关推荐

2011-03-10 13:19:47

Oracle数据库

2011-08-01 13:59:22

Oracle数据库命名空间

2009-06-30 14:23:02

ORACLE数据库JSP

2017-04-19 11:15:01

Oracle数据库备份恢复

2011-07-22 09:58:18

Oracle数据库优化策略

2020-08-07 08:04:03

数据库MySQL技术

2021-09-15 09:51:36

数据库架构技术

2010-09-07 16:16:04

DB2数据库

2011-07-22 09:09:52

Oracle数据库SQL效率

2011-03-21 13:41:20

数据库开发规范

2010-05-21 13:34:53

MySQL数据库

2011-08-25 14:50:42

SQL Server数常用操作

2021-09-07 10:12:25

分布式数据库集群

2018-06-21 14:50:00

2011-09-01 15:39:43

QT数据库

2010-08-12 09:41:06

DB2数据库恢复

2010-08-27 14:48:22

DB2like

2009-06-30 00:45:54

Oracle数据库

2011-08-15 14:52:07

数据库登录名数据库用户名

2010-05-12 15:41:21

MySQL数据库
点赞
收藏

51CTO技术栈公众号