oracle数据库性能优化之sga调整

一.概念:Sga(System Global Area):Oracle Instance的 基本组成部分,在实例启动时分配。是一组包含一个Oracle实例的数据和控制信息的共享内存结构。主要是用于存储数据库信息的内存区,该信息为数据库进程所共享.
  1.查询sga  select * from v$sga;
  2.alter system set sga_target=1024m scope=both; (oracle自动分配sga)
  3.所有区域大小的分配,需要根据各个区域的命中率来进行动态的调整
二:Sga的组成: 共享池和数据缓存区,日志缓冲区
  1.共享池(share pool):用于缓存 最近被执行的sql语句和最近使用的数据定义,共享池活动信息都保存在v$libarycache系统表中 
      1.1:查询共享池命中率:select  sum(pins-reloads)/sum(pins) from v$librarycache
      1.2:命中数过低说明共享池过小 就会消耗cpu资源,过高就消耗内存 一般控制在80-90%
      1.3:调节共享池的语句为:(热修改)alter system set shared_pool_size='200M'
      1.4:刷新共享池 alter system flush shared_pool
  2.数据缓存区(database buffer cache):用户缓存从文件中检索出来的数据块,可以大大提高查询和更新数据的性能
       2.1:数据缓存区活动信息都保存在 v$sysstat 中
       2.2:该表中name列中值 dbblock gets表示数据请求的总数,consistent gets缓存区满足请求的数据,physical reads 请求在磁盘中读取的数据
       3.3:查询缓存区命中率
select(select value from v$sysstat where name ='consistent gets')/(select sum(value) from v$sysstat where name in('consistent gets','physical reads')) from dual
       3.4:通过调整DB_CACHE_SIZE的值,修改数据缓存区的大小
     alter system set DB_CACHE_SIZE='200M'

猜你喜欢

转载自yuande-sheng.iteye.com/blog/2184033
今日推荐