li
  当前位置:主页 > 性能优化 > 文章内容
li
oracle 性能调优:调整共享池之理解共享池
来源: www.ixdba.net  作者: IXDBA.NET官方    时间:2008-04-26   阅读:16  


理解共享池
共享池是SGA的一部分,用来缓存SQL和PL/SQL语句,共享池用LRU算法来管理。

语句缓存的好处
• ORACLE执行SQL语句时,先将SQL语句的字串通过一个哈希算法得出一个哈希值,然后检查共享池中是否已存在这个哈希值,若有就用已缓存的执行计划来执行这个语句(CACHE HIT 缓存命中),若没有(CACHE MISS 缓存缺失)则需进行解析,解析需要完成下面的工作:
Ø 语法检查;
Ø 语义检查,看参考对象是否存在,类型是否正确;
Ø (如果是CBO优化模式)收集参考对象的统计;
Ø 检查用户的权限是否足够;
Ø 从许多可能的执行路径中选择一条作为执行计划;
Ø 生成语句的编译版本(P-CODE)。
• 解析是一个昂贵的操作,因为过程中需要消耗许多资源;
• 最大化CACHE HIT是调整共享池的目标

共享池的组件
Library Cache (库缓存)
• 库缓存用来存放最近执行过的SQL和PL/SQL(包括过程,函数,包,触发器,匿名块和JAVA类),包括以下组件:语句文本,哈希值,P-CODE,相关的统计,执行计划;
• 与库缓存相关的动态性能视图如下表:
视图名 描述
V$SQL 缓存SQL的统计(IO,内存等),是根椐SQL文本和执行计划来分组的
V$SQLAREA 缓存SQL的统计(IO,内存等),是根椐SQL文本来分组的
V$SQLTEXT 缓存SQL的完整文本,可能包括多行
V$SQL_PLAN 缓存SQL执行计划的详细内容,相同的SQL文本可能有不同的执行计划

Data Dictionary Cache (数据字典缓存)
• 在处理SQL或PL/SQL语句时,系统要检查数据字典以确定需要的表是否存在,栏位名与数据类型是否正确,用户是否有足够的权限,这部分数据缓存在共享池的数据字典缓存中,这块内存区域同样用LRU算法来管理;
• Oracle将数据字典缓存与库缓存分开的原因是:
Ø 用与库缓存独立的LRU算法来管理字典数据,可以使得这部分数据在内存中保持更长的时间;
Ø 后续用户发出与以前用户类似的语句时,也能在数据字典缓存中找到需要的数据。

User Global Area (用户全局域)
• 只有在共享服务器选项下,共享池中才存在UGA;
• UGA用来缓存会话信息(在共享服务器选项下,一个会话的多条SQL或者PL/SQL语往往是由不同的服务器进程来完成的,因此有必要将会话信息存放在共享的位置;在专用服务器配置下,用户会话信息存放在PGA中)。




  上一篇: oracle SQL性能调整之七: 关于簇   下一篇: oracle 性能调优:调整共享池之测...
li
 §相关评论  
 热点文章

·Resize datafile导致ASM Crash
·在Oracle10g RAC下新增ASM磁盘
·ORACLE SQL性能优化系列 (一)
·oracle性能调优:管理oracle日志
·oracle RAC环境中系统时钟的调
·why:Rac的心跳线不支持交叉线?
·RAC的VIP及实例依赖关系:版本O
·如何启动DataGuard的备用数据库
·系统表空间IO错误 数据损坏处理
·不幸中的万幸:遭遇ORA-00600 [
·用ORACLE的高级复制实现内外网
li
 编辑推荐
·Resize datafile导致ASM Crash
·在Oracle10g RAC下新增ASM磁盘
·ORACLE SQL性能优化系列 (一)
·oracle性能调优:管理oracle日志
·oracle RAC环境中系统时钟的调
·why:Rac的心跳线不支持交叉线?
·RAC的VIP及实例依赖关系:版本O
·如何启动DataGuard的备用数据库
·系统表空间IO错误 数据损坏处理
·不幸中的万幸:遭遇ORA-00600 [
·用ORACLE的高级复制实现内外网
li
 相关篇章
·oracle SQL性能调整之七: 关于簇
·oracle SQL性能调整之六: 关于分...
·oracle SQL性能调整之五: 关于索...
·oracle SQL性能调整之四: 关于物...
·oracle SQL性能调整之三: 稳定执...
·oracle SQL性能调整之二:深入理解...
·oracle SQL性能调整之一:SQL性能...
·如何有效的关闭生产数据库?
·oracle OCA知识考点
·ORA-12560: TNS: 协议适配器错误
·oracle 性能调优:调整共享池之测...
·oracle 性能调优:调整共享池之改...
·oracle 性能调优:调整数据缓存之...
·oracle 性能调优:调整数据缓存之...
·oracle 性能调优:调整数据缓存之...
·oracle 性能调优:调整数据缓存之...
·oracle 性能调优:调整数据缓存之...
·oracle 性能调优:调整SGA之共享服...
·oracle 性能调优:调整SGA之共享服...
·oracle 性能调优:调整SGA之配置共...
 
li
设为首页 | 关于我们 | 技术服务 | 收藏本站 | 网站地图 | 联系方式 | 本站友情连接