首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > Oracle实例的内存结构 yorking
【标  题】:Oracle实例的内存结构 yorking
【关键字】:Oracle,yorking
【来  源】:http://www.cublog.cn/u/23246/showart.php?id=174115

Oracle实例的内存结构 yorking

Oracle实例的内存结构

[摘自《Oracle数据库的体系结构》]在Oracle数据库系统中内存结构主要分为系统全局区(SGA)和程序全局区(PGA),SGA随着数据库实例的启动向操作系统申请分配一块内存结构,随着数据库实例的关闭释放,每一个Oracle数据库实例有且只有一个SGA。PGA随着Oracle服务进程启动的时候申请分配的一块内存结构。如果在共享服务结构中PGA存在SGA中。

[图片无法显示] 
Oracle的内存结构图
 
系统全局区(SGA)

 重要提示,提高SGA的大小可以在一定程度上提高Oracle数据库系统的性能,但你设置SGA的值如果不能锁定在内存物理页上,有些部分可能被交换到系统的交换文件中。这样你的Oracle数据库系统将变慢。

系统全局区是一组包含数据和控制信息的共享内存结构,允许Oracle服务的众多后台进程同时访问或修改其中的数据,所以有些时候也被称为“全局共享区”,参数文件中的SGA_MAX_SIZE指定SGA动态大小。
系统全局区由以下主要几个部分组成:
 § 共享池Shared Pool
 § 数据高速缓存Database Buffer Cache
 § 重做日志缓存RedoLog Buffer Cache
 § Java池(可选)Java Pool
 § 大池(可选)Lager Pool

共享池
共享池存储了最近多数使用的执行SQL语句和最近使用的数据定义。它包含库高速缓存器和数据字典缓存器这两个与性能相关的内存结构。共享池的大小可以通过初始化参数文件(通常为init.ora)中的SHARED_POOL_SIZE决定。共享池是活动非常频繁的内存结构,会产生大量的内存碎片,所以你要确保它尽可能足够大。
库高速缓存器,他又包含共享SQL区和共享PL/SQL区两个组件区。为了提高SQL语句的性能,在提交SQL语句或PL/SQL程序块时Oracle服务器将先利用最近最少使用(LRU)算法检查库高速缓存中是否存在相同的SQL语句或PL/SQL程序块,若有则使用原有的分析树和执行路径。
数据字典缓存器,它收集最近使用的数据库中的数据定义信息。它包含数据文件、表、索引、列、用户、访问权限、其他数据库对象等信息。在分析阶段决定数据库对象的可访问信息。利用数据字典缓存器有效的改善了响应时间。它的大小由共享池的大小决定。

数据高速缓存
它存储数据文件中数据块的拷贝。利用这种结构使数据的更新操作性能大大的提高。数据高速缓存中的数据交换同样采用最近最少使用算法(LRU)。它的大小主要受到DB_BLOCK_SIZE决定。数据高速缓存它由DB_CACHE_SIZE、DB_KEEP_CACHE_SIZE、DB_RECYCLE_CACHE_SIZE这些独立的子缓存器构成,同时它能动态的增长或收缩。

重做日志缓存
重做日志缓存器是个环状的缓存器,它记载所有数据的改变,主要目的用于恢复。改变后的记录内部称为重做条目,重做条目包含重构或重做信息。它的大小由初始化参数中的LOG_BUFFER决定。
重做日志缓存尺寸若太小会导致进程竞争,并引起写日志进程之间的竞争。

Java池
Java池是在安装使用Java后,才在SGA中出现的一个组件,它的大小由JAVA_POOL_SIZE初始化参数决定。Java池为执行Java命令提供分析与执行内存空间。

大池
数据库管理员可以可选配置被称为大池的内存区,它主要用于存储为共享服务器保存会话信息、I/O服务进程、Oracle备份与恢复操作、并行的消息缓存等内容。
值得一提的是大池不像其他内存组件中存在LRU列表。

程序全局区(PGA)
程序全局区用于保存每一个用户连接到数据库的信息。连接到数据库的信息主要有回话信息、排序信息和游标信息等三方面。

 

http://www.blogcn.com/u2/56/59/yorking/index.html?filelist=1&fpage=5#md



两个比较有用的捞取性能差的语句 yorking:【上一篇】
exp&imp的常用参数 yorking:【下一篇】
【相关文章】
  • 两个比较有用的捞取性能差的语句 yorking
  • 免费学习oracle数据库管理
  • ORACLE性能优化--调整共享池
  • ORACLE存储过程加密方法
  • SQL与ORACLE常用函数比较
  • ORACLE性能优化--调整缓冲区高速缓存
  • ORACLE 面试问题-技术篇
  • [精华] 如何保持Oracle数据库的优良性能
  • 编译ORACLE中状态为INVALID的对象
  • oracle 10g 学习手册(4)SQL函数的运用与解析
  • 【随机文章】
  • [转载]媒体评论:KDE 3.5与GNOME 2.12各有所长
  • 《MySQL管理员指南》之五--MySQL用户管理
  • 网络安全方面中英对照的专业词汇大全
  • 安装和使用Glassfish
  • oracle-内存表
  • 文件描述符(fd)
  • 创建不规则窗口
  • 有个人的短信舍不得删
  • JoyChat AJAX Chatroom
  • 重新认识NTFS文件系统的妙处
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.