教程学院
图像设计 多媒体类 机械制图 办公软件 操作系统 系统编程 网站编程 网页制作 数据库类 网络路由 网络工程 网络安全 考试认证
firefox火狐浏览器下载
酷网学院
CAD
AutoCad Cam350 ProEngineer GCcam MATLAB Unigraphics SolidWorks CAXA Solid3000 Cimatron EdgeCAM
系统
安全 防火墙 病毒 WinXP Win2003 Vista
数据库
编程
网络
精彩图库
  当前位置: 库库中文网 · 数据库类教程 · Oracle教程 · Oracle综合技巧

读书归纳:Oracle 软件结构

学院最新推荐文章
教程推荐
『读书归纳:Oracle 软件结构』如果文章有大量图片,显示会较慢,请等待图片下载完成
 
点击数: 更新时间:2005-4-4 


 
Oracle数据库服务器主要由两个部分组成:数据库和实例。

实例
.实例的内存结构:SGA(system global areas)和PGA(program global areas)
.实例的进程结构:服务进程和后台进程

内存结构:
SGA(system global areas)
1、数据库缓存 db_cach_size
.keep缓存池 buffer_pool_keep
.recycle缓存池 buffer_pool_recycle
.default缓存池 db_cache_size-(buffer_pool_keey+buffer_pool_recycle)
2、重做日志缓存 log_buffer
3、共享池 shared_pool_size
库缓存:用于缓存已经解析并执行过的SQL和PL/SQL程序代码
.享SQL工作区:存放有SQL语句的语法分析结果和执行计划。如果共享SQL工作区已经没有空闲空间,Oracle将利用LRU算法换出最近很少使用过的SQL语句----->SGA
.有SQL工作区:SQL语句的另一部分被保存到私有SQL工作区中,包括SQL语句中的绑定变量、环境和会话参数等信息,这些信息是属于执行该语句的用户所私有的,其他用户即使执行相同的SQL语句也不能使用这些信息。只有在共享服务器(servers=shared)时,私有SQL工作区才会在SGA中创建。一般情况下私有SQL工作区位于PGA中。
#库缓存的大小与open_cursors密切相关。open_cursors参数用于指定数据库中能够同时打开的游标数量,每条查询语句都需要一个游标。
数据库字典缓存:这是一种“行缓存”,即在其中保存的是一条条的记录,而不像其他缓存那样保存的是缓存块。
4、Java池
5、大型池 large_pool_size
.进行数据库备份和恢复操作
.执行具有大量排序操作的SQL语句
.招待并行化的数据库操作
#如果没有在SGA区中创建大型池,上述操作所需的缓存空间将在共享池或PGA中分配。

PGA(program global areas)
保存服务进程的数据和控制信息的内存结构,这个内存结构是非共享的,只有服务进程本身才能够访问它自已的PGA区。每个服务进程都有它自已的PGA区,各个服务进程PGA的总和即为实例的PGA区的大小。
1、私有SQL工作区
在执行比较复杂的查询时(比如决策支持系统中的查询语句),经常会需要在PGA中创建一个比较大的动态缓存区,用来专门执行如下一些必须在内存中进行的操作:
.排序(order by,group by)
sort_area_size
sort_area_retained_size
.连接(inner join )
hash_area_size
.集合运算(union,interset,minus)
create_bitmap_area_size

#servers=dedicated
私有SQL工作区将保存在服务进程的PGA中
#servers=shared
私有SQL工作区的一部分将保存在SGA区中

2、会话内存区
用于保存用户会话的变量(登录信息)以及其他与会话相关的信息
#servers=dedicated
会话内存区将保存在为这个会话提供服务的专用服务进程的PGA中。这时只有这个服务进程需要使用该会话的会话信息。
#servers=shared
会话内存区将位于SGA区中而不是PGA区中,因为会话信息被所有的共享服务进程使用。

workarea_size_policy=auto
pga_aggregate_target=XXX

进程结构

服务进程:
1、专用服务进程:一个专用服务进程只能为一个用户提供服务
2、共享服务进程:一个共享服务进程可以为多个用户提供服务
.解析并执行用户所提交的SQL语句。
.在SGA区的数据库缓存中搜索用户进程所访问的数据,如果数据不在缓存中,则需要从硬盘数据文件中读取所需的数据,而将它们复制到缓存中。
.将数据返回给用户进程。

后台进程
DBWn
db_writer_processes
.当用户执行insert或update等操作时,会首先将插入的数据写入数据库缓存。在这个过程中,如果Oracle在数据库缓存的LRU列表中搜索了一定数据(db_block_max_scan)的缓存块后,仍然没有找到可用的空闲缓存块,DBWR进程将启动,由DBWR进程将脏缓存块写入数据文件之后,数据库缓存将获得更多的空闲缓存块。
.当检查点发生时,将启动DWBR进程
.当数据库缓存LRU列表的长度达到db_block_write_batch指定值的一半时,DBWR进程将启动。
.若发生超时(大约3秒内未被启动),DBWR进程被启动。
LGWR
.用户通过commit语句提交当前事务
.重做日志缓存写满三分之一
.DBWR进程开始将脏缓存块写入数据文件
.若发生超时(大约3秒),此时会启动LGWR
CKPT
log_checkpoint_timeout
log_checkpoint_interval
log_checkpoint_to_alert

SMON
PMON
ARCn
archive_log_start

RECO
Dnnn

[1] [2] 下一页  

作者:无 来源:无
】【关闭窗口
·上页:
·下页:
相关文章
     数据库类教程 - Oracle综合技巧
普通教程Oracle 11g R1中大小写敏感地口
普通教程SQL Server与Oracle数据库在安全
普通教程Oracle 11g R1中AWR基线增强(1)
普通教程Oracle学习地一些建议
普通教程一步完成封装编译
普通教程Oracle Warehouse Builder 自动
普通教程Oracle 11gR1中表压缩增强
普通教程Oracle只希望红帽存在 其余Linu
普通教程Oracle中SQL语句执行效率地查询
普通教程Oracle 11gR1中地表空间加密
普通教程Oracle Wait Event:Data file i
普通教程Oracle 11gR1中地SecureFile(1)
精彩图片汇集
advertisement
关于站点 - 广告服务 - 联系我们 - 版权隐私 - 免责声明 - 合作伙伴 - 程序支持 - 网站地图 - 返回顶部
网站文本地图
版权所有:库库中文 2005-2007 欢迎各种媒体转载我们的原创作品[转载请注明出处]
copyright © 2005-2008 www.QQGB.com online services. all rights reserved. 蜀ICP备05015578
Template designed by Virus. Optimized for 1024x768 to Firefox,Opera and MS-IE6. Site powered by EQL.
红盾
热爱电脑,热爱生活
拥有电脑,拥有生命
让我们享受拥有电脑的时光