ORACLE 数据库调优 策略参考
ORACLE调优策略参考:
工具采用了STATSPACK
安装STATSPACK
创建一个120M左右的表空间,如perfstat
在服务器端用sqlplus(登录到sys as sysdba用户)运行
@?/rdbms/admin/spcreate
运行收集的方式
exec statspack.snap
隔一段时间后再运行一遍,即可产生2个SNAP
生成REPORT
@?/rdbms/admin/spreport
按照要求输入开始和结束的ID,即前面2次说产生的ID
清除过多数据的方法
@?/rdbms/admin/sppurge
OK,查看REPORT所产生的LST文件,可根据下面的参数进行调优判断
效率方面:
1 Buffer Nowait
数值大(>95%)表示数据缓冲区足够大
否则需要增加数据缓冲区的大小,或调整数据文件IO的速度
2 Redo Nowait
数据大(>99%)表示log_buffer足够
否则调整log_buffer的大小
3 Buffer Hit
足够大(>95%)表示命中率较高
否则可以调整数据缓冲区的大小
4 In-memory Sort
数字大(>95%)表示大部分数据在内存中进行排序
否则调整sort_area_size的值,或pga_aggregate_target的值
5 Library Hit
数据大(>95%)表示SQL的命中率较高
否则需要调整shared_pool_size的值,或者需要调整SQL,使用bind variable
6 Soft Parse
数字大(>95%)表示SQL的缓冲情况比较好
否则需要增加shared_pool_size的值
7 Execute to parse
=100 * (1 - Parses/Executions)
数据大表示重新解释的次数较多,在snapshot较多的系统中值可能很低,因为完全刷新后很多SQL语句执行时需要重新解释,动态的创
建表或索引等也会增加Parse的次数.
8 Latch Hit
数字大(>99%)表示内部锁比较好
否则需要查询Oracle有关版本的bug说明
9 Parse CPU to Parse elapsed
做SQL解释时CPU的利用率
数据越大表示解释的效率高
10 Non-Parse CPU
表示用于SQL Parse的CPU的比重
数值越大越好
事件方面:
1 Buffer Busy Wait
访问的块正在读取中,其他进程正在将数据读到Cache中
访问的块正在修改中,其他进程正在修改Cache中的数据
调整思路:将数据文件放在读取速度更快的设备上
2 Checkpoint Completed
等待Checkpoint操作结束
调整思路:,减小一些log buffer的大小,增加Checkpoint的频率,将log文件放在更快的磁带设备上,如RAID
3 Control File Parallel Write
等待向所有的控制文件写数据
调整思路:减少control file的个数;将不同control file分布到不同的磁盘驱动器
4 Control File Sequential Read
从Control File中读取信息
调整思路:将Control File放在比较空闲的磁盘上;将Control File放在速度更快的磁盘上
5 DB File Scattered Read
读取大量的数据块到Cache中
调整思路:调整大表上的索引,收集更集统计信息
6 DB File Sequential Read
一般指读取索引的数据
调整思路:调整索引的设计;Rebuild索引,提高索引效率
7 Undo Segment tx slot
等待获得回滚段
调整思路: 增加回滚段的个数;增加回滚段的初始extent的数量