Oracle时间信息特性
X$KSQST的改变 (对应视图V$ENQUEUE_STAT)
基础表X$KSQST主要显示关于系统中队列的信息。在9i之前只能提供队列类型的get和wait数。一个队列有两种特征和两个标识组成(id1 and id2)。例如一个叫做TX队列,表示一个事务队列。从Oracle9i开始不但能够看到gets 和waits,而且等待的时间和得不到队列(中断或者超时)的失败次数都可以看到。
X$KSQST
KSQSTWTIM NUMBER 以微妙作为单位
然而这里仍不能将队列等待与Sql语句关联,也不能够得到等待队列的Sql语句到底等待了多久。下面的一个新的视图v$enqueue_stat 将提供关于队列得更多信息:
V$ENQUEUE_STAT
INST_ID NUMBER
EQ_TYPE VARCHAR2
TOTAL_REQ# NUMBER
TOTAL_WAIT# NUMBER
SUCC_REQ# NUMBER
FAILED_REQ# NUMBER
CUM_WAIT_TIME NUMBER
V$SYSSTAT的改变
实际这个视图并没有什么改变,关于时间的信息仍然在厘秒级。
V$SYSSTAT
CPU used by this session 厘秒
Parse time cpu 厘秒
Parse time 厘秒
Recursive cpu usage 厘秒
当从不同资源中比较数据时应该注意。
V$WAITSTAT的改变
这个视图显示了发生在块级的buffer busy waits的细目描述,等待时间的单位在微妙级。
V$WAITSTAT
TIME NUMBER 厘秒单位
这里无法通过视图中出现的等待找到对应的sql语句。
V$FILESTAT的改变
在这个视图中现在分成了单次块读取和累计块读取,这种分法更合理。
V$FILESTAT
MAXIORTM NUMBER 厘秒级的最大读取时间
MAXIOWTM NUMBER 厘秒级的最大写入时间
SINGLEBLKRDS NUMBER 单次块读取块数
SINGLEBLKRDTIM NUMBER 厘秒级的累计单次块读取时间
这个视图也不能找到相关的Sql语句,使用dbms_system.kcfrms()过程可以重设最大读、写时间,设置更准确的取样间隔。
V$SESSION_EVENT的改变
这个视图现在已经可以捕捉到微妙级的等待事件的持续时间了。它可以以微妙或者厘秒方式显示等待时间,因为这些改变,等待事件变得更加精确(等待时间以微妙方式捕捉,然后转换为厘秒方式)
V$SESSION_EVENT
TIME_WAITED_MICRO NUMBER 以微妙级等待的时间
TIME_WAITED NUMBER 微妙级的等待时间 / 10000
MAX_WAIT NUMBER 厘秒级的最大等待时间
当然,这个视图也不能找到相关的Sql语句。
一个被大多数DBA所感兴趣的字段是MAX_WAIT 字段,这个字段显示了一个事件的最大等待时间。这个信息只要会话一登陆就生效,将显示一个会话整个生命期中的最大等待时间。使用dbms_system.kcfrms() 过程可以重置最大的值,以便让这个字段显示与测量周期更紧密的值。
