该等待事件说明你的日志组过少或者日志文件过小。 你可能需要增加你的日志组或日志文件大小。
Log File Switch: 日志文件转换 所有的提交请求都需要等待"日志文件转换(必要的归档)"或"日志文件转换(chkpt.不完全)"。确保归档磁盘未满,并且速度不太慢。 DBWR 可能会因为输入/输出(I/O)操作而变得很慢。你可能需要增加更多或更大的重做日志,而且如果DBWxR 是问题症结所在的话,可能需要增加数据库书写器。
log file sync: 日志文件同步 当一个用户提交或回滚数据时,LGWR 将session 会话的重做由redo buffer 写入到重做日志中。 log file sync 必须等待这一过程成功完成(Oracle 通过写redo log file 保证commit 成功的数据不丢失),这个事件说明提交可能过于频繁,批量提交可以最大化LGWR 的效率,过分频繁的提交会引起LGWR频繁的激活,扩大了LGWR 的写代价。 为了减少这种等待事件,可以尝试每次提交更多的记录。 将重做日志置于较快的磁盘上,或者交替使用不同物理磁盘上的重做日志,以降低归档对LGWR的影响。 对于软RAID,一般来说不要使用RAID 5,RAID5 对于频繁写入得系统会带来较大的性能损失,可以考虑使用文件系统直接输入/输出,或者使用裸设备(raw device),这样可以获得写入的性能提高。
log file single write 该事件仅与写日志文件头块相关,通常发生在增加新的组成员和增进序列号时。头块写单个进行,因为头块的部分信息是文件号,每个文件不同。更新日志文件头这个操作在后台完成,一般很少出现等待,无需太多关注。
log file parallel write 从log buffer 写redo 记录到redo log 文件,主要指常规写操作(相对于log file sync)。 如果你的Log group 存在多个组成员,当flush log buffer 时,写操作是并行的,这时候此等待事件可能出现。 尽管这个写操作并行处理,直到所有I/O 操作完成该写操作才会完成(如果你的磁盘支持异步IO或者使用IO SLAVE,那么即使只有一个redo log file member,也有可能出现此等待)。 这个参数和log file sync 时间相比较可以用来衡量log file 的写入成本。通常称为同步成本率。
control file parallel write: 控制文件并行写 当server 进程更新所有控制文件时,这个事件可能出现。 如果等待很短,可以不用考虑。如果等待时间较长,检查存放控制文件的物理磁盘I/O 是否存在瓶颈。 多个控制文件是完全相同的拷贝,用于镜像以提高安全性。对于业务系统,多个控制文件应该存放在不同的磁盘上,一般来说三个是足够的,如果只有两个物理硬盘,那么两个控制文件也是可以接受的。在同一个磁盘上保存多个控制文件是不具备实际意义的。 减少这个等待,可以考虑如下方法: 减少控制文件的个数(在确保安全的前提下) 如果系统支持,使用异步IO 转移控制文件到IO 负担轻的物理磁盘
control file sequential read/ control file single write 控制文件连续读/控制文件单个写 对单个控制文件I/O 存在问题时,这两个事件会出现。 如果等待比较明显,检查单个控制文件,看存放位置是否存在I/O 瓶颈。 使用查询获得控制文件访问状态: select P1 from V$SESSION_WAIT where EVENT like 'control file%' and STATE='WAITING'; 解决办法: 移动有问题的控制文件到快速磁盘 如果系统支持,启用异步I/O
direct path write: 直接路径写 该等待发生在,等待确认所有未完成的异步I/O 都已写入磁盘。 你应该找到I/O 操作频繁的数据文件,调整其性能。 也有可能存在较多的磁盘排序,临时表空间操作频繁,可以考虑使用Local 管理表空间,分成多个小文件,写入不同磁盘或者裸设备。
SQL*Net message from dblink 该等待通常指与分布式处理(从其他数据库中SELECT)有关的等待。 这个事件在通过DBLINKS 联机访问其他数据库时产生。如果查找的数据多数是静态的,可以考虑移动这些数据到本地表并根据需要刷新,通过快照或者物化视图来减少跨数据库的访问,会在性能上得到很大的提高。
slave wait: 从属进程等 Slave Wait 是Slave I/O 进程等待请求,是一个空闲参数,一般不说明问题。
2.2.4 High Load SQL 分析 对于一个特定的应用程序或者系统来讲,要调整优化其性能,最好的方法是检查程序的代码和用户使用的SQL语句。 如果使用了 level 5 级别的 snapshot ,那么statspack生成的报告中就会显示系统中高负荷SQL语句(High Load SQL)的信息,而其详细信息可以在 stats$sql_summary 表中查到。缺省情况下 snapshot 的级别是 level 5。 按照 buffer gets, physical reads, executions, memory usage and version count 等参数的降序排列顺序,把SQL语句分为几个部分罗列在报告中。
2.2.5 报告的其他部分
复制本页网址和标题,发送给你QQ/Msn的好友一起分享
上一篇:Recordset.Open方法参数介绍
下一篇:很有用的oracle 函数