Oracle数据库的优化.ppt
Oracle数据库的优化,目标,了解影响数据库服务性能的主要因素熟悉Oracle数据库优化的参数及配置初步掌握系统数据库调优的常用方法,概要,一、性能问题二、参数设置,一、性能问题,1.1 状态表现处理器(CPU)内存(Memory)读写访问(IO)1.2 影响因素硬件环境配置软件参数设置,二、参数设置(软件),2.1 操作系统2.2 Oracle数据库,2.1.操作系统,系统允许的用户最大进程数 Maximum number of PROCESSES allowed per user(Num.):1024,2.2.Oracle数据库,内存参数查看方法用脚本select*from v$parameter order by name用OEM,ORACLE内存分配表,2.2.1 SGA_MAX_SIZE,SGA所占用的最大内存空间SGA_MAX_SIZE应该大于等于SGA的值,即DB_CACHE_SIZE、SHARED_POOL_SIZE、LARGE_POOL_SIZE与JAVA_POOL_SIZE的和 如果只有ORACLE应用服务,SGA的值可以设置为物理内存的50%在OEM中调整,2.2.2 DB_CACHE_SIZE,说明决定数据库SGA中的数据库块缓冲的数量,是Oracle最重要的一个内存参数调优检查数据缓存命中率 利用建议视图,检查数据缓存命中率,如果命中率在95%以下,通常必须增大DB_CACHE_SIZE的值select sum(decode(name,physical reads,value,0)phys,sum(decode(name,db block gets,value,0)gets,sum(decode(name,consistent gets,value,0)con_gets,(1-sum(decode(name,physical reads,value,0)/(sum(decode(name,db block gets,value,0)+sum(decode(name,consistent gets,value,0)*100 hitratio from v$sysstat,2.2.3 SHARED_POOL_SIZE,说明定义系统中由所有用户共享的池,包括 SQL 区域和数据字典缓存 监测检查数据字典缓存命中率 检查库缓存命中率,检查数据字典缓存命中率,保证数据字典缓存命中率高于95%。如果达不到这个值,通常需要增大SHARED_POOL_SIZE的大小 select(1-(sum(getmisses)/(sum(gets)+sum(getmisses)*100)Hit Ratio from v$rowcache where gets+getmisses 0,检查库缓存命中率,保证库缓存命中率在95%以上。如果达不到这个值,通常需要增大SHARED_POOL_SIZE的大小 select sum(pins)Hits,sum(reloads)Misses,(sum(pins)/(sum(pins)+sum(reloads)*100 Hit Ratio from v$librarycache,2.2.5 LARGE_POOL_SIZE,说明分配给大的PL/SQL的内存 调优在本系统的应用中,通常大小为100M左右即可。可根据实际情况波动,2.2.6 PROCESSES,说明ORACLE的最大进程数调优在用户量较小的地区,可设为200在用户量较大的地区,可设为300或更大,2.2.7 SESSIONS,说明ORACLE的最大会话数调优原则:sessions数processes数*1.15,2.2.8 OPEN_CURSORS,说明ORACLE分配的最大游标数调优与用户量相关推荐值:1024,2.2.9 PGA_AGGREGATE_TARGET,说明所有连接用户可用的排序内存 调优对我们的系统来说,一般需要保证一个session至少能有1M的内存,因此PGA的推荐值是350M500M使用ORACLE的建议视图,利用建议视图调整PGA,可根据需要选择命中率高的PGA值select a.ESTD_PGA_CACHE_HIT_PERCENTAGE,a.PGA_TARGET_FOR_ESTIMATE from v$pga_target_advice a where a.ESTD_PGA_CACHE_HIT_PERCENTAGE 95,数据表空间大小建议,查看Oracle表空间使用比例;正常要保留有30%的空闲度;如果使用率达到80以上,考虑要增加表空间大小;select df.tablespace_name 表空间名,totalspace 总空间M,freespace 剩余空间M,round(1-freespace/totalspace)*100,2)使用率%from(select tablespace_name,round(sum(bytes)/1024/1024)totalspace from dba_data_files group by tablespace_name)df,(select tablespace_name,round(sum(bytes)/1024/1024)freespace from dba_free_space group by tablespace_name)fs where df.tablespace_name=fs.tablespace_name;,临时表空间大小建议,查看Temp表空间大小,将其改为300M500M;,总结,性能问题引题状态表现:CPU、Memory、IO影响因素:环境配置(硬)、参数设置(软)参数设置操作系统资料ORACLE图表、资料,参考,Oracle 9i Performance Tuning Tips&Techniques Richard J.Niemiec著,谢谢大家!,