`
helloyesyes
  • 浏览: 1305418 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

Oracle PGA自动管理在OLAP系统中的应用

阅读更多
说明:
OLTP:联机事务处理系统,也就是我们常用的业务系统;
OLAP:联机分析处理系统,主要功能是数据查询、分析、统计、挖掘等等
Oracle从9i开始增加了PGA自动管理的功能,可以说是打开了ORACLE内存自动管理的新篇章。PGA自动管理把以前的sort_area_size,hash_area_size比较难配置的问题全解决了。一般建议OLTP系统PGA的大小为系统内存的20%左右,如一个系统2G的内存,那么通常数据库的PGA设置在400M左右。
ORACLE缺省每个session可使用的内存并不是全部PGA大小,实际上比这个小得多,普通会话可使用只有PGA的5%,并且不能超过100M,也就是说如果PGA设成400M,那一个会话可使用的排序加HASH的内存最大为400*0.05=20M。
有些OLAP或者是OLTP、OLAP混合数据库这个配置不一定能满足实际需求,因为OLAP系统一般session比较少,但一个查询要求的HASH及SORT的空间非常大,如果采用标准的5%的话,那么会有许多查询SORT及HASH内存不够,导至过多的磁盘排序或多回HASH连接的问题,这将严重影响系统性能。对于这个问题可以用四种方法处理。
1、增加PGA大小
ORACLE数据库的内存可以说主要由SGA+PGA两块组成。对于OLAP系统数据块缓冲命中率一般不会大于80%,即使增加BUFFER_SIZE作用也不明显,因为物量数据量明显大于内存。OLAP系统的共享池也不需要太大,虽然OLAP的一条SQL会比较复杂,但OLAP的SQL数量一般比OLTP系统少得多,并且SQL解析的时间不是性能的主要瓶颈。综上所述可以将减小的SGA大小用于PGA中
PGA的增大在OLAP系统中性能提升会比较明显一些,特别是发现磁盘排序及HASH多次读写的情况下。
2.对特殊会话采用手动PGA管理
这个方法就是将某个会话的PGA改为手动管理,再设置会话的sort_area_size和hash_area_size,然后再执行SQL,如下所示:
alter session set workarea_size_policy=MANUAL;
--50M
alter session set sort_area_size=52428800;
--200M
alter session set hash_area_size=209715200;
--执行处理
处理完后,根据需要将会话改为自动PGA管理
alter session set workarea_size_policy=AUTO;
这种方法一般用于OLAP系统的ETL中,ETL一般SORT及HASH比较多,并且ETL的时候一般只有一两个会话,所以手动管理不会对其它会话产生影响。
3.对查询或表设置并行处理
上面提到普通会话可使用只有PGA的5%,但是并行事务会话可使用的内存是PGA的30%,所以如果在表上设置并行度或在查询中设置并行提示可以一次使用比较多的PGA内存,如PGA=800M,那么就可以使用400*0.3=120M。
4.调整ORACLE内部隐藏参数
如果系统的并行性能不好或者调节了并行度会有其它影响的情况下,我们可以调整ORACLE内部隐藏参数来达到效果。前面提到的5%和30%两个数字其它是ORACLE的一个缺省值,我们可以通过调整ORACLE内部隐藏参数来改变这个缺省值。
这个两个隐藏参数分别为:
"_smm_max_size":PGA的默认每个用户使用的内存大小,单位为K
"_smm_px_max_size":PGA的默认并行用户使用的内存大小,单位为K
如下所示,设置"_smm_max_size"=100M,"_smm_px_max_size"=200M
alter system set "_smm_max_size"=102400 scope=both;
alter system set "_smm_px_max_size"=204800 scope=both;
注:
1.Oracle隐藏参数一般以下划线开头,所以修改时需要加上引号
2.如果调整过参数pga_aggregate_target后以上两个隐藏参数会重置为默认值
_smm_max_size=pga_aggregate_target*0.05
_smm__px_max_size=pga_aggregate_target*0.3
分享到:
评论

相关推荐

    oracle SGA PGA UGA 内存

    - 在调整SGA参数前,需要评估物理内存、操作系统需求、数据库存储方式(文件系统或裸设备)、并发连接数以及应用类型(OLTP或OLAP)。 - 文件系统可能导致操作系统级别的缓存,需要额外考虑这部分内存。 - 对于...

    Oracle 9i10g 数据库管理详细

    - **Oracle 9i** 和 **Oracle 10g** 是Oracle公司推出的两个重要的数据库管理系统版本。这些版本在企业级数据库管理领域具有重要意义。 - **Oracle 9i** 主要侧重于提高可用性、性能和安全性,并引入了一些新的特性...

    Oracle数据库基础及应用第二章.pptx

    在众多的数据库管理系统中,Oracle以其强大、稳定和高效的特点广泛应用于银行、电信、航空、保险等多个行业。 Oracle 11g提供了四个不同版本,以满足不同用户的需求和预算。标准版1是最基础的版本,适合小型企业,...

    Oracle 11g 官方中文帮助文档 PDF高清完整版

    Oracle 11g是Oracle公司推出的数据库管理系统的一个重要版本,其官方中文帮助文档为开发者、DBA(数据库管理员)和IT专业人士提供了详尽的技术指导。这份PDF高清完整版的文档涵盖了Oracle 11g的各个核心组件和技术,...

    Oracle数据库应用系统的性能优化.pdf

    Oracle数据库是全球广泛应用的关系型数据库管理系统,由甲骨文公司开发。它以其强大的功能和高稳定性闻名,尤其适用于大型企业级应用。Oracle数据库的核心特性包括分布式数据库支持、统一性和独立性。 1. **分布式...

    《Oracle经典教程》PDF

    Oracle数据库是全球广泛使用的数据库管理系统之一,尤其在企业级应用中占据重要地位。本教程旨在帮助读者从基础到高级全面掌握Oracle的相关知识,从而能够有效地设计、实施、管理和优化Oracle数据库。 在Oracle...

    Oracle9i数据库管理实务讲座

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,尤其在企业级应用中占据了重要地位。本讲座旨在帮助读者深入理解Oracle9i的管理和维护,提升数据库管理技能。 1. **Oracle9i概述**: Oracle9i是Oracle...

    Oracle 10g数据库管理源代码

    Oracle 10g数据库管理系统是Oracle公司推出的一款重要的企业级数据库解决方案,其强大的功能和稳定性在业界享有盛誉。源代码对于深入理解数据库的工作原理、优化性能以及进行二次开发至关重要。下面将详细介绍Oracle...

    Oracle数据库系统应用实例集锦与编程技巧

    Oracle数据库系统是全球广泛使用的大型关系型数据库管理系统之一,它提供了高效、稳定的数据存储和管理解决方案。本资源“Oracle数据库系统应用实例集锦与编程技巧”涵盖了Oracle数据库的多个方面,包括但不限于...

    Oracle 11g concept 中英文对照版

    Oracle 11g是Oracle公司推出的企业级数据库管理系统的一个重要版本,它提供了高效的数据存储、管理及查询功能,广泛应用于大型企业的核心业务系统。"Concepts"是Oracle数据库系列文档中的一部分,它深入介绍了Oracle...

    Oracle11g中文文档

    Oracle11g是一款由甲骨文公司开发的关系型数据库管理系统,是Oracle数据库产品线中的一个重要版本。本套中文文档全面涵盖了Oracle11g的各项特性和功能,为学习和使用Oracle11g数据库提供了详实的参考资料。以下是...

    win7系统安装oracle11g

    在Windows环境下,输入指定的数据文件位置后,系统会自动创建相应的目录。 8. **数据库组件选择**:选择默认配置,并在“标准数据库组件”中只保留Oracle XML DB组件,其他组件均不勾选。 9. **初始化参数配置**:...

    oracle概念手册中英文版

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其在企业级数据存储和管理中扮演着核心角色。"Oracle概念手册中英文版"是一份极为重要的参考资料,它详细阐述了Oracle数据库系统的基础理论、架构和操作原理...

    Oracle 11g 官方中文文档集萃

    Oracle 11g是Oracle公司推出的数据库管理系统的一个重要版本,其官方中文文档集萃涵盖了从安装配置、数据库管理、性能优化到开发接口等全方位的知识点。这个文档集萃不仅是DBA(数据库管理员)和开发人员的重要参考...

    ORACLE数据库 ORACLE数据库

    Oracle数据库是一个功能丰富的数据库管理系统,其复杂性和灵活性使得它在各种规模的企业中都占有重要地位。理解并熟练掌握Oracle数据库的相关知识,对于数据库管理员和开发者来说至关重要。通过持续学习和实践,可以...

    Oracle Concept 11g中英文版

    1. **数据库基础**:首先,你会接触到数据库的基本概念,如数据存储、数据管理以及为什么需要数据库管理系统(DBMS)。 2. **Oracle数据库结构**:Oracle采用的关系型数据库模型,包括表、索引、视图等基本对象。还...

    《oracle9i数据库管理员手册》读书笔记

    Oracle 9i引入了Real Application Clusters (RAC),允许在多台服务器上同时运行一个数据库实例,提高应用的可扩展性和可用性。此外,Data Guard技术提供了一种有效的灾难恢复解决方案,确保在主数据库发生故障时,...

    Oracle10g数据库 Windows32位+Linux32位 合集

    Oracle10g数据库是Oracle公司推出的数据库管理系统,它在2003年发布,是Oracle数据库产品线中的一个重要版本。这个合集包含了Windows 32位和Linux 32位两个平台的安装文件,适用于不同操作系统环境下的数据库部署。...

    Oracle启用大页内存.docx

    Oracle启用大页内存是针对Oracle数据库性能优化的一种技术,尤其在Oracle 19c版本中,它可以显著提高数据库系统的性能,因为大页内存(Huge Pages)减少了内存管理的开销,提供了更连续的内存分配,从而提高了内存...

    中英文对照Conceptes.chm oracle官方文档

    9. **数据库实例和内存结构**:深入剖析了Oracle的后台进程、内存结构,如SGA(System Global Area)和PGA(Program Global Area),以及它们在数据库操作中的作用。 10. **数据仓库与OLAP**:探讨了Oracle在数据...

Global site tag (gtag.js) - Google Analytics