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的数量

你可能感兴趣的:(oracle,sql,cache)