Statspack

首先查询安装所需的参数

浅谈Statspack与AWR_第1张图片

确定job_queue_processes大于0并且timed_statistics为TRUE。

clip_image002

创建安装所需表空间

clip_image003

执行创建脚本

浅谈Statspack与AWR_第2张图片

设定perfstat用户密码

浅谈Statspack与AWR_第3张图片

选择perfstat用户工作表空间

浅谈Statspack与AWR_第4张图片

选择临时表空间

浅谈Statspack与AWR_第5张图片

出现如上图所示,证明创建完成。

浅谈Statspack与AWR_第6张图片

检测是否有错误,如果有错误,可以执行@ ?/rdbms/admin/spdrop.sql脚本删除并重建

浅谈Statspack与AWR_第7张图片

建立snap level为7的snapshot

浅谈Statspack与AWR_第8张图片

执行一些脚本

浅谈Statspack与AWR_第9张图片

再次执行一次快照

clip_image012

执行报告生成脚本

clip_image013

执行上图所示脚本可以自动设置job通过系统时间定时收集报告(默认为1个小时)

clip_image014

脚本中主要内容如上图所示,我们可以根据自己需求拷贝修改这个命令(这里不再详细演示)。

Statspack分析报告详解:

statspack 输出结果中必须查看的十项内容

1、负载间档(Load profile)

2、实例效率点击率(Instance efficiency hit ratios)

3、首要的5个等待事件(Top 5 wait events)

4、等待事件(Wait events)

5、闩锁等待

6、首要的SQL(Top sql)

7、实例活动(Instance activity)

8、文件I/O(File I/O)

9、内存分配(Memory allocation)

10、缓冲区等待(Buffer waits)

这个很多大牛都详细解释过,Oracle的官方文档也有详细解释,限于篇幅不再详解。

AWR报告

AWR(Automatic Workload Repository)报告是Oracle 10g之后推出的重要性能诊断工具。AWR是作为Statspack报告的一种有力延伸。借助AWR,我们可以方便的对Oracle数据库的特定工作时间段进行性能分析评价,最终达到发现瓶颈调优的目标。作为DBA,手工生成AWR报告是工作基本功之一。

浅谈Statspack与AWR_第10张图片

首先创建AWR所需快照

clip_image016

产生awr report

浅谈Statspack与AWR_第11张图片

默认为html格式

浅谈Statspack与AWR_第12张图片

我们来统计7天的报告

浅谈Statspack与AWR_第13张图片

确认初始与结束快照ID

clip_image020

如果中途数据库有关闭或重启操作,则会报上图所示错误,两个快照间的报告不能有断档(statspack也一样)。

浅谈Statspack与AWR_第14张图片

确认报告名称

浅谈Statspack与AWR_第15张图片

报告演示一览

clip_image023

产生addm report

浅谈Statspack与AWR_第16张图片

确认初始与结束快照ID

浅谈Statspack与AWR_第17张图片

确认报告名称

clip_image026

产生ash report

浅谈Statspack与AWR_第18张图片

默认为html格式

浅谈Statspack与AWR_第19张图片

确认周期与时间

clip_image029

确认报告名称

浅谈Statspack与AWR_第20张图片

报告演示一览

clip_image031

产生对比报告

浅谈Statspack与AWR_第21张图片

演示一览(这个报告一般是进行了性能调优以后才看的,像我这样没有实际意义)

在10gR2中,awr报表实际上是statpack报表的延伸,当然10gR2中还是保留了statpack,并且statpack也增加了对stream_pool的监控,awr与statpack的区别就是awr的快照的收集与维护更加自动化,默认的保留七天的快照,并且可以通过dbms_workload_repository表修改快照的收集频率与快照的保留时间,dba要干预的已经很少了,比statpack维护更简单。


awr与ash的最主要的区别在于:awr是平面的,全面的,ash是立体的,更侧重于session的event跟踪,由于业务量大的数据库的event wait是瞬息万变,awr很可能会监控不到,为了弥补这个不足,ash才可以对session的event进行跟踪。
ash与addm的区别在于:addm偶重于基于对当据库当前状态的分析,对存在的问题提供指导性的意见,可以说ash,addm是awr的补充,awr全面地收集数据库的状态,但ash/addm是侧重要对收集的数据进行分析,并提供一些有益的建议。