摘要: 当一个用户提交(commits)或者回滚(rollback),session的redo信息需要写出到redo logfile中.用户进程将通知LGWR执行写出操作,LGWR完成任务以后会通知用户进程.这个等待事件就是指用户进程等待LGWR的写完成通知.对于回滚操作,该事件记录从用户发出rollback命令到回滚完成的时间.如果该等待过多,可能说明LGWR的写出效率低下,或者系统提交过于频繁.针对该问题,可以关注:log file parallel write等待事件user commits,user rollback等统计信息可以用于观察提交或回滚次数解决方案:1.提高LGWR性能 尽量使用快 阅读全文
posted @ 2013-03-26 17:47 Peyton 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 一、数据库死锁的现象 程序在执行的过程中,点击确定或保存按钮,程序没有响应,也没有出现报错。二、死锁的原理 当对于数据库某个表的某一列做更新或删除等操作,执行完毕后该条语句不提交,另一条对于这一列数据做更新操作的语句在执行的时候就会处于等待状态,此时的现象是这条语句一直在执行,但一直没有执行成功,也没有报错。三、死锁的定位方法通过检查数据库表,能够检查出是哪一条语句被死锁,产生死锁的机器是哪一台。1)用dba用户执行以下语句select username,lockwait,status,machine,program from v$session where sid in (select .. 阅读全文
posted @ 2013-03-26 17:40 Peyton 阅读(537) 评论(0) 推荐(0) 编辑
摘要: 在11g中,全表扫描可能使用direct path read方式,绕过buffer cache,这样的全表扫描就是物理读了。在10g中,都是通过gc buffer来读的,所以不存在direct path read的问题。 direct path read较高的可能原因有: 1. 大量的磁盘排序操作,order by, group by, union, distinct, rollup, 无法在PGA中完成排序,需要利用temp表空间进行排序。 当从临时表空间中读取排序结果时,会产生direct path read. 2. 大量的Hash Join操作,利用temp表空间保存hash区。 ... 阅读全文
posted @ 2013-03-26 16:22 Peyton 阅读(517) 评论(0) 推荐(0) 编辑