首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Oracle频道
中国IT教育
Google
首页 入门基础 安装配置 体系架构 PLSQL 备份恢复 性能调优 开发技术 资讯动态 考试认证 下载 专题 讨论
您现在的位置: 中国IT实验室 >> Oracle >> 考试认证 >> 正文

OCP 033自制讲稿—调整共享池pdf完整版


22. 怎样测量数据词典性能
   /V$rowcache
   /比较重要的每行的丢失率应该小于2%, 整体丢失率应该小于15%
   --单个/每行
     select parameter, getmisses, gets, (getmisses/gets)*100 "miss ratio %" from v$rowcache;
   --整体丢失率和命中率
     select sum(getmisses)/sum(gets)*100 "miss ratio %",
            (1-sum(getmisses)/sum(gets))*100 "Hit ratio %"
     from v$rowcache;
   --如果丢失率高,说明共享池小,需要调整共享池大小
   /statspack报告中的 dictinary cache stats 部分,丢失率应该比较低,高说明有性能瓶颈
   例  cache                   get     Pct      ........         Pct
                          requests    Miss                       SGA
       -------------------------------------------------------------
       dc_free_extent            4     0.0                        88
       .............
       dc_usernames             28     3.6                        81
       dc_users                 45     0.0                        86
     Pct Miss表示丢失率,pct SGA表示为对应cache分配的内存空间的使用率
     如果pct SGA和pct Miss都大的话,说明请求数高,并且丢失率也高,也就是暗示共享池太小。
   /调整,如果丢失率高的话,我们就需要考虑增加共享池的大小了
   alter system set shared_pool_size = 更大的值 scope=both|memeory|spfile;
   /由于实例刚起来的时候缓冲中没有数据,所以丢失率不可能等于0,随着持续稳定的运行,我们希望他趋近于0
   /oem工具:performace manager-->shared pool statistic
      --memory: SGA Overview
      --Database Instance: libary cache Hit %
      --top sessions: top session

23. UGA和ORACLE共享服务器
   前面我们讨论了库缓存和数据词典缓存,下面我们来了解一下UGA和oracle共享服务器
   /专用服务器下,我门知道每个用户进程都有一个PGA, PGA用于存放:
      用户会话信息,游标State, 私有SQL区域/Sort Area,堆栈
   /共享服务器,PGA依然存在,但只有堆栈数据了,其他的几个内容都被放到UGA区域了,
    UGA对server process来说是共享的,不是为那个单独服务的,而PGA是一个server process一个单独的
    --UGA到底放在那里呢,如果配置了大池则放在大池里,如果没有配置大池,就会在共享池中抢一块空间出来
   /使用共享服务器时,能够节省内存空间,UGA+所有PGA的大小要小于专用服务器下所有PGA的大小

24. 计算UGA使用的大小
    /计算你的连接的UGA大小
    SELECT SUM(value) ||'bytes' "Total session memory"
    FROM v$mystat, v$statname
    WHERE name = 'session uga memory'
    AND v$mystat.statistic# = v$statname.statistic#;
    --mystat 仅只有你自己当前会话的信息
    /计算共享服务下所有用户使用的UGA大小
    SELECT SUM(value) ||'bytes' "Total session memory"
    FROM v$sesstat, v$statname
    WHERE name = 'session uga memory'
    AND v$sesstat.statistic# = v$statname.statistic#;
    /计算UGA曾经用到的最大空间
    SELECT SUM(value) ||'bytes' "Total max memory"
    FROM v$sesstat, v$statname
    WHERE name = 'session uga memory max'
    AND v$sesstat.statistic# = v$statname.statistic#;

25. 大池 large pool
    这一讲的最后我们来说说大池,其实我们前面已经有很多地方提到过了他,相信大家还记得。
    /什么时候用大池呢
     --OS不支持异步I/O,为了提高DBWn的速度,使用IO奴隶(DBWR_IO_SLAVES),不过现在的操作系统基本上都支持异步I/O,所以很少使用
     --使用RMAN备份和恢复操作
     --共享服务器的UGA(session memory)
     --并行查询
    /由参数large_pool_size参数来调整大小,也是动态参数
    /在共享服务器模式下,设置大池,UGA会从Shared pool中移到大池中,这样可以把共享池的内存留给库池和数据词典用,这样可以避免
      共享的SQL由于空间不够而被赶出去和额外的空间争用。

上一页  [1] [2] [3] [4] 

【责编:Peng】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 ·Java入门 Tomcat的配置技巧精华专题…
 ·Oracle RMAN物理备份技术详解…
 今日更新
 社区讨论
 博客论点
 频道精选
 Oracle频道相关导航