1.在ORACLE中实现分布式快速存取和充实内存是很重要的。
要不惜任何代价避免页面调度和交换﹐每次都必须把系统全局区(SGA)放到内存。
将SGA放到内存中﹐在INIT.ORA中设置参数 PRE_PAGE_SGA
PRE_PAGE_SGA=YES
2.回卷段的竟争会降低系统的性能。
SELECT GETS,WAITS from V$ROLLSTAT;
GETS代表回卷段被访问的次数
WAITS代表进程等待回卷段中哪个进程的次数
如果GETS与WAITS的比大于2%表示存在竟争问题
解决办法是创建更多的回卷段。
有两种类型的锁存竟争会产生严重的后果﹕立即锁存(IMMEDIATE)和等待(WAIT)锁存。
等待锁存的计算公式﹕
WAIT CONTENTION=(MISSES/(GETS+MISSES))*100
立即锁存的计算公式﹕
IMMEDIATE CONNECTION=(IMMEDIATE_MISSES/(IMMEDIATE_GETS+IMMEDIATE_MISSES))*100
如果任何一个值>0则就存在对锁存的竟争
如果发生恢复分配锁存的竟争﹐可以减小INIT.ORA中的LOG_SMALL_ENTRY_MAX_SIZE的参数值。如果发生恢复复制竟争﹐可以增大INIT.ORA中的LOG_SIMULATANOUS_COPIES的参数值。 中国网管联盟www_bitscn_com
任何回卷段的OPTIMAL参数的设置不能太小﹐如果OPTIMAL
SELECT CLASS,COUNT from V$WAITSTAT WHERE UPPER(CLASS) IN ('SYSTEM UNDO HEADER)','SYSTEM UNDO BLOCK',
'UNDO HEADER','UNDO BLOCK');
SELECT SUM(VALUE) from V$SYSSTAT WHERE UPPER(NAME)
IN ('DB BLOCK GETS','CONSISTENT GETS');
第一条查询中的每一类与第二条查询中的比率最好<0.01
3.提高缓冲区的效率。
SELECT RELOADS,PINS from V$LIBRARYCACHE;
RELOADS存入SQL命令被加载和分解的次数
PINS存入数据库对SQL高速缓冲区查找一条语句的次数
如果RELOADS与PINS的比率大于1%则应增加INIT.ORA中的SHARED_POOL_SIZE的参数值。
SELECT GETMISSES,GETS from V$ROWCACHE;
如果RELOADS与PINS的比率大于10%则应增加INIT.ORA中的
SHARED_POOL_SIZE的参数值。
4.用户任何时点拥有的打开光标的最大数
修改INIT.ORA中的OPEN_