您现在的位置是:首页 >

荣耀9i呼吸灯怎么设置 Oracle9i自动PGA管理的新特性

火烧 2022-08-25 21:15:57 1043
Oracle9i自动PGA管理的新特性   在Oracle i之前 PGA的计算和控制都是比较复杂的事情 从Oracle i开始 Oracle提供了一种SQL内存管理的新方法 自动化SQL执行内存管理

Oracle9i自动PGA管理的新特性  

  在Oracle i之前 PGA的计算和控制都是比较复杂的事情 从Oracle i开始 Oracle提供了一种SQL内存管理的新方法 自动化SQL执行内存管理(Automated SQL Execution Memory Management) 使用这个新特性 Oracle可以自动调整S Q L内存区 而不用关闭数据库 这一改进大大简化了DBA的工作 同时也提高了Oracle数据库的性能

  为实现自动的PGA管理 Oracle引入了几个新的初始化参数

   PGA_AGGREGATE_TARGET 此参数用来指定所有session总计可以使用最大PGA内存 这个参数可以被动态的更改 取值范围从 M —— ( G )bytes WORKAREA_SIZE_POLICY 此参数用于开关PGA内存自动管理功能 该参数有两个选项 AUTO 和 MANUAL 当设置为AUTO时 数据库使用Oracle i提供的自动PGA管理功能 当设置为MANUAL时 则仍然使用Oracle i前手工管理的方式

  缺省的 Oracle i中WORKAREA_SIZE_POLICY被设置为AUTO

荣耀9i呼吸灯怎么设置 Oracle9i自动PGA管理的新特性

  需要注意的是 在Oracle i中 PGA_AGGREGATE_TARGET参数仅对专用服务器模式下(Dedicated Server)的专属连接有效 但是对共享服务器(Shared Server)连接无效 从Oracle g开始PGA_AGGREGATE_TARGET对专用服务器连接和共享服务器连接同时生效

  PGA_AGGREGATE_TARGET 参数同时限制全局PGA分配和私有工作区内存分配

   对于串行操作 单个SQL操作能够使用的PGA内存按照以下原则分配 MIN( % PGA_AGGREGATE_TARGET MB)

   对于并行操作 % PGA_AGGREGATE_TARGET /DOP (DOP=Degree Of Parallelism 并行度)

  要理解PGA的自动调整 还需要区分可调整内存(TUNABLE MEMORY SIZE)与不可调整内存(UNTUNABLE MEMORY SIZE) 可调整内存是由SQL工作区使用的 其余部分是不可调整内存

  启用了自动PGA调整之后 Oracle仍然需要遵循以下原则

  UNTUNABLE MEMORY SIZE + TUNABLE MEMORY SIZE <= PGA_AGGREGATE_TARGET

  数据库系统只能控制可调整部分的内存分配 如果可调整的部分过小 则Oracle永远也不会强制启用这个等式

  另外 PGA_AGGREGATE_TARGET参数在CBO优化器模式下 对于SQL的执行计划会产生影响 Oracle在评估执行计划时会根据PGA_AGGREGATE_TARGET参数评估在Sort HASH JOIN或Bitmap操作时能够使用的最大或最小内存 从而选择最优的执行计划

  对于PGA_AGGREGATE_TARGET参数的设置 Oracle提供这样一个建议方案 对于OLTP系统PGA_AGGREGATE_TARGET  = (<Total Physical Memory > * %) * % 对于DSS系统PGA_AGGREGATE_TARGET  = (<Total Physical Memory > * %) * %

  也就是说 对于一个单纯的数据库服务器 通常我们需要保留 %的物理内存给操作系统使用 剩余 %可以分配给Oracle使用 Oracle使用的内存分为两部分SGA和PGA 那么PGA可以占用Oracle消耗总内存的 %(OLTP系统)至 %(DSS系统)

lishixinzhi/Article/program/Oracle/201311/17149  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码