db file sequential read (数据文件顺序读取): db file sequential read是个非常常见的I/O相关的等待事件,通常显示与单个数据块相关的读取操作,在大多数的情况下,读取一个索引块或者通过索引读取一个数据块时,都会记录这个等待。 这个等待事件有3个参数P1,P2,P3,其中P1代表Oracle要读取的文件的绝对文件号,P2代表Oracle从这个文件中开始读取的起始数据块号,P3代表读取的BLOCK数量,通常这个值为1,表明是道单个BLOCK被读取。 sys@CCDB> select name,parameter1,parameter2,pa[......]
顶级等待事件
顶级等待事件: 前文还提到另外一个重要视图v$system_event,该视图记录的是数据库自启动以来等待事件的汇总。通过查询该视图,就可以快速获得数据库等待事件的总体概况,了解数据库运行的基本状态: sys@CCDB> select * 2 from (select event,time_waited 3 from v$system_event 4 order by[......]
自动负载信息库:AWR的引入
自动负载信息库:AWR的引入内存中记录的ASH信息始终是有限的,为了保存历史数据,这些信息最终需要写入磁盘。这些历史信息的存储,引出了Oracle 10g的另外一个新特性:自动负载信息库(Automatic Workload Repository,AWR)。 1. AWR的采样机制:AWR收集关于该特定数据库的操作统计信息和其他统计信息,Oracle以固定的时间间隔(默认为每小时一次)为其所有重要统计信息和负载信息执行一次快照,并将这些快照存储在AWR中。这些信息在AWR中保留给定的时间(默认为一周),然后被清除。执行快照的频率及其保持时间都可以自定义,以满足不同环境的独特需要。 AWR的[......]
ASH新特性
ASH新特性: 如果说v$session_wait_history是一小步,那么ASH则是Oracle迈出根本变革的一大步。 从Oracle 10g开始,Oracle引入了ASH新特性,也就是活动session历史信息记录(Active Session History,ASH)。ASH以v$session为基础,每秒钟采样一次,记录活动会话等待的事件。因为记录所有会话的活动是非常昂贵的,所以不活动的会话不会被采样,这一点从ASH的“A”上就可以看出。采样工作由Oracle 10g新引入的一个后台进程MMNL来完成。 是否启用ASH功能,受一个内部隐含参数控制: sys@CCDB>[......]
新增v$session_wait_history视图
Oracle 10g的增强: 虽然v$session_wait记录的信息如此重要,但是这些重要的信息是随session而消逝的,如果我们希望获得数据库的历史状态及session的历史状态及session的历史等待信息等数据,是不可得的。 所以很多时候很难回答这样的问题:·这个系统昨天是什么样子的?·今天和昨天相比有什么不同?·1个小时前的那次性能下滑是哪个用户引起的?·是哪些事件使我们今天用了更多的时间来等待?你也可能一次又一次地听到Oracle Support这样问:·问题出现时系统是怎样的状况?·问题出现时系统有哪些等待?·你能否重现(Reproduce)问题以使我们判断? 很多这样[......]