设为首页 加入收藏

TOP

Oracle11gNew性能增强(三)
2014-11-24 08:06:53 来源: 作者: 【 】 浏览:4
Tags:Oracle11gNew 性能 增强
行手动内存管理。例如,假定会话加载了大型导入文件,因此需要较大的sort_area_size。可以使用登录触发器为正在执行导入操作的帐户设置WORK_AREA_SIZE_POLICY 。如果WORK_AREA_SIZE_POLICY 为AUTO,PGA_AGGREGATE_TARGET设置为0,则在启动时将引发外部错误ORA-04032 。
注:在Oracle 9i Database 版本2 之前,PGA_AGGREGATE_TARGET一直用于控制所有专用服务器连接的工作区大小。但是,该参数对共享服务器连接没有影响;这种情况下优先使用*_AREA_SIZE 参数。在Oracle Database 10 g 中,PGA_AGGREGATE_TARGET控制由专用连接和共享连接分配的工作区。
Oracle Database 10g 内存指导 缓冲区高速缓存建议(在9i R1 中引入): V$DB_CACHE_ADVICE 预测不同高速缓存大小的物理读取数和时间 共享池建议(在9i R2 中): V$SHARED_POOL_ADVICE 预测不同大小的共享池的解析时间 Java 池建议(在9 i R2 中): V$JAVA_POOL_ADVICE 预测Java 池大小的 Java 类加载时间 流池建议(10 g R2) V$STREAMS_POOL_ADVICE 预测不同大小的溢出和未溢出活动时间
Oracle Database 10g 内存指导 为了帮助您调整最重要的SGA 组件的大小,Oracle Database 11 g 中引入了幻灯片中的指导: V$DB_CACHE_ADVICE包含的行预测与每行对应的高速缓存大小的物理读取数和时间。 V$SHARED_POOL_ADVICE显示有关不同池大小的共享池中估计分析时间的信息。 V$JAVA_POOL_ADVICE 显示有关不同池大小的Java 池中估计类加载时间的信息。 V$STREAMS_POOL_ADVICE 显示有关估计的溢出或未溢出消息数,以及用于不同流池大小的溢出或未溢出活动的关联时间的信息。
Oracle Database 10g 内存指导 SGA 目标建议(在10g R2 中引入): V$SGA_TARGET_ADVICE 视图 根据当前大小估计不同 SGA 目标大小的 DB 时间 PGA 目标建议(在9i R1 中引入): V$PGA_TARGET_ADVICE 视图 预测不同 PGA 大小的 PGA 高速缓存命中率 11g R1 中添加了 ESTD_TIME 时间列 对于所有指导,必须至少将STATISTICS_LEVEL 设置为TYPICAL。
Oracle Database 10g 内存指导(续) 在Oracle Database 10 g 中,SGA Advisor 会显示出 DB 时间的改善(可针对特定SGA 总大小设置实现此改善)。使用此指导可以减少在设置SGA 大小时反复试验的次数。指导数据存储在V$SGA_TARGET_ADVICE 视图中。 V$PGA_TARGET_ADVICE 将预测,PGA_AGGREGATE_TARGET参数值的更改会对V$PGASTAT 性能视图显示的PGA 高速缓存命中率产生怎样的影响。预测是根据PGA_AGGREGATE_TARGET参数的多个值(围绕其当前值进行选择)来进行的。建议统计信息是通过模拟过去实例运行的工作量来生成的。11g 中新增了一列( ESTD_TIME) ,对应于处理字节所需的CPU 和I/O 时间。
自动内存管理:概览 \ 自动内存管理:概览 使用自动内存管理时,系统会导致内存发生从SGA 到PGA (或相反)的间接转移,并根据工作量自动调整PGA 和SGA 的大小。 这种间接的内存转移依赖于操作系统的共享内存释放机制。将内存释放给操作系统后,其它组件可以通过向操作系统请求内存来分配内存。 当前,Linux、Solaris 、HP-UX、AIX 和Windows 中已实现了这种功能。设置数据库实例的内存目标,将系统优化到目标内存大小,根据需要在系统全局区(SGA) 和总程序全局区(PGA) 之间重新分配内存。 此幻灯片显示了Oracle Database 10 g 机制与Oracle Database 11 g 新增的自动内存管理之间的差异。
自动内存管理:概览 \ 自动内存管理:概览(续) 最简单的内存管理方法是让数据库自动管理和优化内存。为此,在大多数平台上,需要仅设置一个目标内存大小初始化参数( MEMORY_TARGET ) 和一个最大内存大小初始化参数( MEMORY_MAX_TARGET) 。因为目标内存初始化参数是动态的,因此可以随时更改目标内存大小而不必重新启动数据库。最大内存大小相当于一个上限,以防您无意中将目标内存大小设置得太高。因为某些SGA 组件不容易收缩,或者其大小必须保持为最小,所以数据库还要防止您将目标内存大小设置得太低。
Oracle Database 11g 内存参数 \ Oracle Database 11g 内存参数 该幻灯片显示了内存初始化参数的层次结构。虽然仅需要设置MEMORY_TARGET 来触发自动内存管理,但仍可以为各种高速缓存设置下限值。因此,如果用户设置了子参数,则这些子参数将是最小值,不会自动优化低于此值的组件。
自动内存参数依赖性 \ 自动内存参数依赖性 该幻灯片展示了各个内存大小参数之间的关系。 MEMORY_TARGET 设置为非零值时: 如果设置了SGA_TARGET和PGA_AGGREGATE_TARGET,则会分别将它们当作SGA 大小和PGA 大小的最小值。MEMORY_TARGET 可以将SGA_TARGET + PGA_AGGREGATE_TARGET的值作为MEMORY_MAX_SIZE。 如果设置了SGA_TARGET但未设置PGA_AGGREGATE_TARGET,则仍会自动优化这两个参数。PGA_AGGREGATE_TARGET将初始化为以下值: (MEMORY_TARGET - SGA_TARGET) 。 如果设置了PGA_AGGREGATE_TARGET但未设置SGA_TARGET,则仍会自动优化这两个参数。SGA_TARGET将初始化为值min(MEMORY_TARGET -PGA_AGGREGATE_TARGET, SGA_MAX_SIZE(如果用户已设置)),系统将自动优化子组件。 如果未设置任何参数,则无需最小值或默认值即可自动优化这两个参数。有这样一个策略:在初始化过程中,将服务器的总内存按固定比率分配给SGA 和PGA 。该策略将在启动时分配60% 的内存给SGA ,40% 的内存给PGA 。
如果未设置MEMORY_TARGET ,或者将其显式设置为0(11g 中的默认值为0): 如果设置了SGA_TARGET,则系统仅自动优化SGA 的子组件大小。PGA 的自动优化与是否显式设置PAG 无关。但是,不会自动优化整个SGA ( SGA_TARGET) 和PGA ( PGA_AGGREGATE_TARGET) ,即SGA 和PGA 不会自动增长或收缩。如果既未设置SGA_TARGET,又未设置PGA_AGGREGATE_TARGET,则遵从当前的策略:自动优化PGA ,但不自动优化 SGA ;必须显式设置部分子组件的参数(对于SGA_TARGET)。 如果仅设置了MEMORY_MAX_TARGET,则使用文本初始化文件进行手动设置时,MEMORY_TARGET 默认为0。SGA 和PGA 的自动优化行为默认情况下
首页 上一页 1 2 3 4 5 6 下一页 尾页 3/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇诊断和解决row chained and migra.. 下一篇自动诊断工具ADDM

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·上海启源芯动力的福 (2025-12-26 20:50:23)
·为什么动力电池安全 (2025-12-26 20:50:20)
·动力电池是怎么造出 (2025-12-26 20:50:18)
·C 内存管理 | 菜鸟教 (2025-12-26 20:20:37)
·如何在 C 语言函数中 (2025-12-26 20:20:34)