知识大全 关于SGA设置的一点总结

Posted 假定

篇首语:弱龄寄事外,委怀在琴书。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 关于SGA设置的一点总结相关的知识,希望对你有一定的参考价值。

关于SGA设置的一点总结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  本总结不针对特例 仅对服务器只存在OS + ORACLE 为例 如果存在其他应用请酌情考虑

  写这个也是因为近来这种重复性的问题发生的太多所导致的

  首先不要迷信STS SG OCP EXPERT 等给出的任何建议 内存百分比的说法

  基本掌握的原则是 data buffer 通常可以尽可能的大 shared_pool_size 要适度 log_buffer 通常大到几百K到 M就差不多了

  设置之前 首先要明确 个问题

   除去OS和一些其他开销 能给ORACLE使用的内存有多大

   oracle是 bit or bit bit 通常 SGA有 G 的限制(某些OS的处理或者WINDOWS上有特定设定可以支持到 G以上甚至达到 G 本人无这方面经验)

  下面是我的windows 下的oracle :

  SQL> select * from v$version;

  BANNER        Oracle i Enterprise Edition Release Production    PL/SQL Release Production    CORE Production    TNS for bit Windows: Version Production    NLSRTL Version Production

  SQL>

  windows上存在 bit的限制 如AIX HP UNIX 等有明确的 BIT OS and ORACLE的版本 bit oracle可以装在 bit os 上 bit oracle不能装在 bit OS上

  不管oracle是 bit ORACLE还是 bit 的 假定应用存在没有很好的使用bind var 的情况 也不能设置 shared_pool_size 过大 通常应该控制在 M M 如果是 ORACLE ERP 一类的使用了很多存储过程函数 包 或者很大的系统 可以考虑增大shared_pool_size 但是如果超过 M可能是危险的 达到 G可能会造成CPU的严重负担 系统甚至瘫痪 所以shared_pool_size 如果超过 M还命中率不高 那么应该从应用上找原因而不是一味的增加内存 shared_pool_size 过大主要增加了管理负担和latch 的开销

  log_buffer : K M 之间通常问题不大 不应该太大

  large_pool_size :如果不设置MTS 通常在 RMAN OPQ 会使用到 但是在 M M 应该差不多了 假如设置 MTS 则由于 UGA 放到large_pool_size 的缘故 这个时候依据 session最大数量和 sort_ares_size 等参数设置 必须增大large_pool_size 的设置 可以考虑为 session * (sort_area_size + M) 这里要提醒一点 不是必须使用MTS 我们都不主张使用MTS 尤其同时在线用户数小于 的情况下

  java_pool_size : 若不使用java 给 M通常就够了

  data buffer 在做了前面的设置后 凡可以提供给oracle的内存 都应该给data buffer = (db_block_size * db_block_buffers)

  在 i 中可以是 db_cache_size

  还有 个重要参数我们需要注意

  sort_area_size and hash_area_size

  这两个参数在非MTS下都是属于PGA 不属于SGA 是为每个session单独分配的 在我们的服务器上除了OS + SGA 一定要考虑这两部分

  (****) : OS 使用内存+ SGA + session*(sort_area_size + hash_area_size + M) < 总物理RAM 为好

  这样归结过来 假定oracle是 bit 服务器RAM大于 G 注意你的PGA的情况 则建议

  shared_pool_size + data buffer +large_pool_size + java_pool_size < G

  再具体化 注意满足上面(****) 的原则的基础上可以参考如下设置

  如果 M RAM    建议 shared_pool_size = M data buffer = M

  如果 G RAM    shared_pool_size = M data buffer = M

  如果 G    shared_pool_size = M data buffer = G

  物理内存再大已经跟参数没有关系了

  假定 bit ORACLE

  内存 G    shared_pool_size = M data buffer = G

  内存 G    shared_pool_size = M data buffer = G

  内存 G    shared_pool_size = M M data buffer = G

  以上仅为参考值 不同系统可能差异比较大 需要根据具体情况调整 建议在设置参数的同时 init中使用 lock_sga 在不同的平台上可能有不同的方式 使得SGA锁定在物理内存中而不被放入 SWAP 中 这样对效率有好处

cha138/Article/program/Oracle/201311/17593

相关参考

知识大全 关于数据结构导论的几点心得和建议[1]

  关于数据结构导论的几点心得和建议  我想在自考将要来临之际为各位正在忙碌复习当中的自考学友们提供一点复习思路以便能顺利通过考试下面就是我的一点复习心得和总结希望能对你有所帮助!  如果你想通过数据

知识大全 解析关于SQL语句Count的一点细节

解析关于SQL语句Count的一点细节  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!复制代码代码如

知识大全 关于C#中Thread.Join()的一点理解

关于C#中Thread.Join()的一点理解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  今

知识大全 关于MVC&Model2&Struts的一点看法

关于MVC&Model2&Struts的一点看法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 oracle 使用杂记二

  下面的是关于sql*loader的使用的一点总结有些是来自itpub上的一些网友的总结    大部分是oracle专家高级编程上的实例只是我实践以后写的结果    sqlldruserid=lgo

关于玉米的合理施肥的一点看法

在很多种植玉米的农民看来,施肥越多越好,其实这种观念是错误的,如果施肥超标,会让种子甚至是成熟的玉米“烧死”,每个地方的光照、温度、湿度等情况有所差别,所以施肥应该结合当地的气候环境来进行。对于阳高地

关于玉米的合理施肥的一点看法

在很多种植玉米的农民看来,施肥越多越好,其实这种观念是错误的,如果施肥超标,会让种子甚至是成熟的玉米“烧死”,每个地方的光照、温度、湿度等情况有所差别,所以施肥应该结合当地的气候环境来进行。对于阳高地

知识大全 关于面试的一点建议

从一个市场部经理眼中看到的应征者,刚在新一踏糊涂上看到的:来面试。各方面条件都还行。我问了三个问题:第一个:做个自我介绍第二个:期望薪水第三个:你想做什么工作她回答:1.blablabla,结结巴巴。

知识大全 关于java学习的一点感言

早在年月日发表了一篇小小的感想关于java的初学第一课但实际上在那之后我并没有真正去学习这门语言因为当时的工作环境也因为自己的懒    现在大不同了工作当中的主要工具就是java我用JBuilder很

知识大全 关于面试服装的一点建议

最近版面上对大家对于面试服装的问题很多,因为我为一位香港商务礼仪培训师做过培训助理,曾经也在公司做过hr兼职。所以想和大家一起分享一下面试的着装,算是给大家一些建议吧。大家都在问,面试要不要穿得正式一