5.1.1 数据库统计信息
数据库统计信息提供了数据库的各种负载信息,以及数据库使用的内部和外部资源。这部分描述了一些非常重要的统计信息:
--等待事件
--事件模型
--活动会话历史(ASH)
--系统和会话统计信息
5.1.1.1 等待事件
等待事件是 被一个服务器进程或者线程增加出来的统计信息,标志它在能继续处理之前不得不等待一个事件的完成,等待事件揭示了可能会影响性能的不同的问题的症状。比如闩争用,buffer争用,或者I/O争用。
为了使得高水平的等待事件分析更加容易,这些等待事件被归成几类。等待事件的类别包括:管理性的,应用,集群,提交,并行,配置,空闲,网络,其它,调度程序,系统IO,用户IO.
等待事件的分类是基于使用等待事件结决问题的一个一般的方案。例如,排他TX锁是很普遍的应用层次上的问题,HW锁一般是结构问题。
下面的列表包括一些类中的普遍例子:
--应用:由行级锁或者明确的锁命令引起的锁等待
--提交:提交后等待redo log写的确认
--空闲:标志会话非活跃的等待时间
--网络:等待数据通过网络发送。
--用户IO:等待数据块从磁盘上的读
5.1.1.2 时间模型统计信息
当优化一个oracle系统,每个组件都有自己的统计信息的集合。将系统看做一个整体,有必要做一个一般规模的对比,因此大多数的oracle 建议和报告在一定时间段描述统计信息。再加上V$SESS_TIME_MODEL V$SYS_TIME_MODELS视图提供了时间模型的统计信息。使用一般的时间测量有助于在数据库操作上识别一定量的好处。
最重要的时间模型的统计信息是DB time,这个统计信息代表了花费在数据库调用上的总时间,并且记录了总的实例负载。通过汇集cpu和所有会话的等待时间除了空闲等待事件计算出来。
DBtime从实例启动开始累积计算。但是DB time计算了非空闲用户session的总和。有可能DB time会超过实际实例启动之后所经过的时间。例如,一个实例运行了30分钟有4个活跃用户但是DB TIME可能会有将近120分钟。
调优一个oracle 系统的目标是规定的减少用户在数据库上执行一些动作的时间,或者简单的降低DBtime。其它的时间模型统计数据在特定的动作上提供了一定量的时间效益,比如登录操作或者硬解析软解析。
5.1.1.3 活跃会话历史 ASH
V$ACTIVE_SESSION_HISTORY视图提供了实例中样本会话活动。活跃会话是每秒钟做抽样并且存储在SGA一循环的buffer中。任意连接到数据库的会话的等待事件如果不属于空闲等待事件的话,就不是一个活跃的会话。这包括了在抽样时候在CPU上的任意会话。
每个会话样本是行的集合,并且V$ACTIVE_SESSION_HISTORY视图返回每个会话每个会话每个样本的一行,会首先返回最新会话的样本。因为活跃会话样本存储在SGA中的循环buffer中。系统活动越多,能存储在循环buffer中的美妙的活跃会话的数量就越小。这意味着一段时间内那个会话样本出现在V$视图中,或者出现在V$视图中活跃会话的秒数是完全依赖于数据库活动的。
作为自动负载报告镜像的一部分,V$ACTIVE_SESSION_HISTORY的内容也被存到了磁盘上。因为V$视图的内容在系统很活跃的时候会很多。只有一部分的会话样本写到磁盘了。
通过捕获活跃会话,一个易于处理的数据的集合 是代表 直接关系到工作已经执行的大小 而不是 系统允许的会话的数量。使用活跃会话历史使你可以对V$ACTIVE_SESSION_HISTORY视图进行当前数据和DBA_HIST_ACTIVE_SESS_HISTORY视图中历史数据进行检查和细节分析,常常避免重现负载来获取性能追踪信息的必要。ASH中的数据能够在其获取的不同的范围进行累计,包括如下:
--sql语句的sql描述符
--对象号 文件号 和块号
--等待事件标志和参数
--会话标志和会话序列数
--模型和行动名字
--会话的客户标志
--服务哈希标志
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24799772/viewspace-681337/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24799772/viewspace-681337/