`

通过对oracle内存(SGA和PGA)进行调整,优化数据库性能

阅读更多
一、示例:
_______________________________________________________________
SGA:
     共享池:200MB          
     缓冲区高速缓存:24MB   
     大型池:9MB
     Java池:32MB

     SAG总容量:264.933
     SAG的最大大小:305.069

PGA:
     总记PGA目标:240MB     
     分配的当前PGA:8914KB
     分配的最大PGA(自启动以来)9081KB
     高速缓存命中百分比:100%

     PGA和SGA的和应小于系统内存总量前去操作系统和其他应用程序所需内存后得到的值。


_______________________________________________________________

二、名词解释:
_______________________________________________________________
SGA:System Global Area是Oracle Instance的基本组成部分,在实例启动时分配;
      系统全局域SGA主要由三部分构成:共享池、数据缓冲区、日志缓冲区。
      共享池:Shared Pool用于缓存最近被执行的SQL语句和最近被使用的数据定义,
          主要包括:Library cache(共享SQL区)和Data dictionary cache(数据字典缓冲区)
          共享SQL区是存放用户SQL命令的区域,数据字典缓冲区存放数据库运行的动态信息
      缓冲区高速缓存:Database Buffer Cache用于缓存从数据文件中检索出来的数据块,可以大大提高查询和更新数据的性能
      大型池:Large Pool是SGA中一个可选的内存区域,它只用于shared server环境
      Java池:ava Pool为Java命令的语法分析提供服务
PGA:Program Global Area是为每个连接到Oracle database的用户进程保留的内存。

_______________________________________________________________

三、分析与调整:
_______________________________________________________________
      1、系统全局域:
         SGA与操作系统、内存大小、cpu、同时登录的用户数有关。可占OS系统物理内存的1/2到1/3,当然,如果服务器上只有oracle的话,

可以分配的更大一些,如果还有其他服务,如IIS等,那就要分的小一些。
      1、共享池:
         修改共享池的大小,ALTER SYSTEM SET SHARED_POOL_SIZE = 64M;
         查看共享SQL区的使用率:
             select(sum(pins-reloads))/sum(pins) "Library cache" from v$librarycache;--动态性能表
             这个使用率应该在90%以上,否则需要增加共享池的大小。
         查看数据字典缓冲区的使用率:
             select (sum(gets-getmisses-usage-fixed))/sum(gets) "Data dictionary cache" from v$rowcache;--动态性能表
             这个使用率也应该在90%以上,否则需要增加共享池的大小。
      2、缓冲区高速缓存:
         它的大小要根据数据量来决定:
              SGA=((db_block_buffers * block size)+(shared_pool_size+large_pool_size+java_pool_size+log_buffers)+1MB
         查看数据库数据缓冲区的使用情况:
             SELECT name,value FROM v$sysstat order by name WHERE name IN('DB BLOCK GETS','CONSISTENT GETS','PHYSICAL READS');
         计算出来数据缓冲区的使用命中率=1-(physical reads/(db block gets+consistent gets)),这个命中率应该在90%以上,否则需要

增加数据缓冲区的大小。
         select sum(pins) "请求存取数",sum(reloads) "不命中数",sum(reloads)/sum(pins) from v$librarycache 
      其中,pins,显示在库高速缓存中执行的次数;reload,显示在执行阶段库高速缓存不命中的数目,一般sum(reloads)/sum(pins)的

值应接近于零.如果大于1%就应该增加shared_pool_size的值, 来提高数据字典高速缓存可用的内存数量,减少不命中数.
         通过动态性能表v$rowcache来查询数据字典高速缓存的活动: 
             select sum(gets) "请求存取数",sum(getmisses) "不命中数" from v$rowcache  
             其中,gets,显示请求相应项的总数; getmisses,显示造成高速缓存不命中的数据请求数.  
         Hit ratio与wait events:
             select value from $pgastat where name ='cache hit percentage'
             Hit ratio与wait events是此消彼涨,在执行类似于
             select col1,col2,.. from tab1 a where exists (
                select 1 from tab2 where a.col3 = b.col3
             )
             where ....
             的语句的时候,如果tab1的记录很多的话,你会发现系统的hit ratio会有很大的提高,wait events是否会改观呢.

      3、日志缓冲区
         SELECT name, value   FROM v$sysstat WHERE name IN ('redo entries','redo log space requests')查看日志缓冲区的使用情况。

查询出的结果可以计算出日志缓冲区的申请失败率:  

   
   申请失败率=requests/entries,申请失败率应该接近于0,否则说明日志缓冲区开设太小,需要增加ORACLE数据库的日志缓冲区。
      3、大型池:
         可以减轻共享池的负担
         可以为备份、恢复等操作来使用
         不使用LRU算法来管理
其大小由数据库的‘共享模式/db模式’如果是共享模式的话,要分配的大一些
         指定Large Pool的大小,ALTER SYSTEM SET LARGE_POOL_SIZE=64M
      3、Java池:
         在安装和使用Java的情况下使用
         其大小由JAVA_POOL_SIZE指定

本帖转自(http://hi.baidu.com/zhao_e893/blog/item/183185dd8aad1d345982dd98.html)
分享到:
评论

相关推荐

    oracle实例的内存(SGA和PGA)进行调整,优化数据库性

    总之,优化Oracle实例的内存配置是一个持续的过程,需要定期监控数据库性能指标,分析查询模式,并根据业务需求灵活调整SGA和PGA的配置。通过精细化管理和调整,可以显著提高Oracle数据库的响应速度和吞吐量,从而更...

    oracle中的SGA和PGA

    总之,Oracle的SGA和PGA是数据库性能的关键因素,理解它们的工作机制并进行适当的管理,是每个数据库管理员必备的技能。通过持续学习和实践,我们可以更好地驾驭这个强大的数据库系统,为企业数据管理提供强有力的...

    oracle SGA PGA UGA 内存

    Oracle数据库的内存结构主要包括三个关键部分:System Global Area (SGA), Program Global Area (PGA), 和 User Global Area (UGA)。这些区域都是用于存储和处理数据库操作的数据和信息。 1. **System Global Area ...

    浅谈Oracle 11g数据库性能调整和优化.pdf

    "浅谈Oracle 11g数据库性能调整和优化" Oracle 11g数据库性能调整和优化是关系型数据库领域中的一个重要话题。随着信息化的不断深入和推进,Oracle数据库的使用率达到了半数以上,並且还在不断增长。然而,随着存储...

    《Oracle数据库性能优化实践指南》PDF

    此外,还会涉及数据库的内存结构和参数调优,如SGA和PGA的管理,以及如何通过调整初始化参数来优化数据库性能。 在并行处理和并发控制方面,书中的内容会涵盖并行查询、并行DML操作、分布式数据库的优化策略,以及...

    Oracle数据库性能优化.pdf

    Oracle作为业界领先的数据库管理系统,其性能优化策略涵盖多个层面,包括系统配置、数据库设计、SQL语句优化、内存管理、I/O调优以及操作系统参数调整。 首先,优化策略在信息系统开发初期就需要考虑。这包括对...

    Oracle9i数据库性能调整与优化.pdf

    1. **内存参数调整**:通过对SGA和PGA的大小进行调整,可以优化数据的读取和写入速度。例如,增大数据缓冲区缓存可以减少磁盘I/O,提高数据访问效率。而合适的PGA大小则有助于减少内存竞争,提高并发处理能力。 2. ...

    PGA,SGA与内存

    在Oracle数据库管理中,了解和优化程序全局区(PGA)和系统全局区(SGA)的内存分配至关重要,这直接关系到数据库服务器性能的高效运行。以下是对PGA、SGA以及如何合理配置数据库服务器内存的深入解析。 ### PGA...

    Oracle数据库性能优化实践指南

    《Oracle数据库性能优化实践指南》是一本专注于提升Oracle数据库运行效率的专业资料,旨在帮助数据库管理员和IT专业人士解决在日常工作中遇到的各种性能问题。通过深入理解Oracle数据库的工作原理和调优技术,读者...

    Oracle数据库性能优化方案的研究

    Oracle数据库优化涉及资源的合理分配与系统参数的调整,旨在提升数据库性能。优化策略涵盖数据库参数调整、磁盘I/O效率提升、SQL语句优化及网络性能优化等多个方面。性能评价通常关注两个核心指标:数据库吞吐量与...

    Oracle数据库性能优化 盖国强著

    综上所述,盖国强的《Oracle数据库性能优化》涵盖了从SQL优化、索引管理、架构设计到内存管理、资源调度、性能监控等多个方面,是一本全面了解和实践Oracle数据库性能优化的宝贵资源。通过深入学习和实践书中的内容...

    Oracle 数据库性能优化与运维最佳实践

    Oracle提供大量的初始化参数来控制其行为,通过调整内存分配(如SGA和PGA)、并行度、缓冲区大小等,可以定制数据库以适应特定的工作负载。 运维最佳实践则包括定期备份与恢复策略、监控与警报设置、性能监控工具的...

    oracle数据库性能优化 合集 中文

    3. **内存管理**:Oracle数据库的SGA(System Global Area)和PGA(Program Global Area)内存结构对性能至关重要。了解如何合理分配内存,包括数据缓冲区、重做日志缓冲区、共享池等,以减少磁盘I/O。 4. **数据库...

    oracle数据库性能优化与内部原理解析

    通过优化内存分配,如合理配置共享池(Shared Pool)、数据库缓冲区(Database Buffer Cache)等,可以显著提高数据库的处理能力。 6. 并发和锁定优化:监控和调整数据库的并发机制,优化锁的使用策略和死锁的处理...

    更改ORACLE SGA的详细步骤

    Oracle 数据库的 System Global Area (SGA) 是一个共享内存区域,它包含了数据库运行所需的各种组件,例如数据缓冲区缓存、...此外,监控数据库的性能指标,如缓冲命中率和内存利用率,可以帮助确定 SGA 是否调整得当。

    Oracle性能优化绝版好书:高级OWI与ORACLE性能调整

    《Oracle性能优化绝版好书:高级OWI与ORACLE性能调整》这本书深入探讨了Oracle数据库性能优化的关键技术和策略,特别关注了Oracle Wait Interface (OWI)和性能调整的实践应用。OWI是Oracle数据库中用于监控和诊断...

    Oracle Database 性能调整与优化 系列书.rar

    Oracle数据库是全球广泛使用的大型企业级关系型数据库管理系统,其性能调整与优化是数据库管理员(DBA)和系统管理员的核心技能。"Oracle Database 11gR2性能调整与优化"与"Oracle Database 12cR2性能调整与优化"这...

    修改oracle初始化参数,包括Process,Session,SGA,PGA

    通过对Oracle初始化参数的调整,可以有效地管理和优化数据库的资源分配,从而提高系统的性能和稳定性。在调整过程中需要注意的是,每个参数的具体数值应根据实际的工作负载和系统资源情况来确定,以达到最佳的配置...

Global site tag (gtag.js) - Google Analytics