技术开发 频道

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() 过程可以重置最大的值,以便让这个字段显示与测量周期更紧密的值。

0
相关文章