oracle 性能分析工具statpack安装使用

 Statspack是一款功能强大的,免费的,oracle自带的性能分析工具。需要用具有sysdba权限的用户登陆进行安装。

通过Statspack我们可以很容易的确定Oracle数据库的瓶颈所在,记录数据库性能状态,也可以使远程技术支持人员迅速了解你的数据库运行状况。
如果想要开启自动收集数据库的参数信息需要修改两个参数:

实验环境:

OS:redhat 5.5

DB:oracle11g

参数设置:

job_queue_processes和timed_statistics

查询job_queue_processes是否大于0:

show parameter job_queue_processes;

如果=0,我们需要修改

alter system set job_queue_processes=10;

查看timed_statistics是否为true

修改:

alter system set timed_statistics=true;

安装statpack:

需要拥有sysdba权限的用户操作,首先创建用户表空间,这需要看我们收集的信息量的大小来设置,一般设置成500M既可

create tablespace perfstat '/home/oracle/perfstat.dbf' size 500m extent management local;

@$ORACLE_HOME/rdbms/admin/spcreate.sql

为用户perfstat设置密码

输入表空间和临时表空间

SPCPKG complete. Please check spcpkg.lis for any errors.
--需要出现上述语句才算成功,否则请查看.lis文件并执行,进行重建
如果在创建的时候出错,我们可以删除重新建立:

@$ORACLE_HOME/rdbms/admin/spdrop.sql

在重新建立即可。

生成调查报告,切换到perfstat用户:

收集系统信息:execute statspack.snap;

查看收集统计信息的情况:

SQL> select snap_id,snap_time,startup_time from stats$snapshot;
   SNAP_ID SNAP_TIME STARTUP_T
---------- --------- ---------
         1 14-AUG-11 14-AUG-11
         2 14-AUG-11 14-AUG-11
         5 14-AUG-11 14-AUG-11
         3 14-AUG-11 14-AUG-11
         4 14-AUG-11 14-AUG-11

我们也可以使他自动统计系统的情况:

@$ORACLE_HOME/rdbms/admin/spauto.sql

我们看一下文件的主要内容:

variable jobno number;
variable instno number;
begin
 select instance_number into :instno from v$instance;
 dbms_job.submit(:jobno,'statspack.snap;',trunc(sysdate+1/24,'HH'), 'trunc(SYSDATE+1/24,''HH'')', TRUE, :instno);
 commit;
end;
/
可以通过修改这个值设置采集时间
1/24 HH 每小时一次
1/48 MI 每半小时一次
1/144 MI 每十分钟一次
1/288 MI 每五分钟一次

移除自动收集:

查看job号:

select job,job_user,priv_user,last_date,next_date,interval from user_jobs;

执行:

execute dbms_jobs.remove('job');

清除统计资料:

@$ORACLE_HOME/rdbms/admin/sptrunc.sql;

statpack的收集类型:

level级别:控制收集数据的类型
threshold门限:设置收集的数据的乏值

默认的收集类型是5,我们可以更改她的收集类型;

execute statpack.snap(i_snap_level=>10,i_modify_parameter=>'true');

只修改本次收集方式:

execute statpack.snap(i_snap_level=>10);

threshold门限

快照门限只应用于stat$sql_summary表中获取sql语句。

生成系统报告:

@$ORACLE_HOME/rdbms/admin/spreport.sql

输入我们查询的snap值,以及我存放的路径。

分析报告:

Statspack报告分为如下部分:

 1. 数据库总体信息含实例、版本、是否RAC、CPU、物理内存、oracle内存设置等等

2. 每秒每事务的资源消耗情况

3. 实例的各组件的命中率

4. 共享池总体情况(Shared Pool Statistics)

5. 等待时间最长的前

5个等待事件(Top 5 Timed Events)含前5等待事件,两次采样间cpu占用,内存分配等信息。Oracle各版本等待事件并不完全相同,数量依版本升高而增加,关于各项等待事情的说明,三思之前的"学习动态性能表"系列文章中有过介绍,有心的朋友可以去搜搜看。

6. DB所有等待事件(Wait Events)Total wait time>=0.001的事件。

7. 后台等待事件(Background Wait Events)Total wait time>=0.001的事件。

8. 柱状显示的等待事件(Wait Event Histogram)显示各等待事件不同响应时间的比例

9. 根据CPU开销进行排序的SQL(SQL ordered by CPU)

10. 根据执行时间进行排序的SQL(SQL ordered by Elapsed)

11. 根据BufferGets进行排序的SQL(SQL ordered by Gets)

12. 根据物理读进行排序的SQL(SQL ordered by Reads)

13. 根据执行次数排序的SQL(SQL ordered by Executions)

14. 根据解析调用次数排序的SQL(SQL ordered by Parse Calls)

15. 实例记录的各项活动的统计数据(Instance Activity Stats)

16. 表空间的IO统计(Tablespace IO Stats)17. 数据文件的IO统计(File IO Stats)

18. 数据文件读柱状图形式统计(File Read Histogram Stats)

19. Buffer池统计数据(Buffer Pool Statistics)含实例恢复的统计数据,buffer池大小设置建议等等。

20. PGA统计数据(PGA Aggr Target Stats)含PGA缓存命中率,柱状图形式的统计以及PGA设置建议等等。

21. 进程的内存占用情况(Process Memory Summary Stats)含占用内存较多的进程等。

22. undo段摘要

23. undo段统计

24. 锁存器的当前情况

25. 锁存器睡眠等待统计

26. 锁存器失败情况

27. 数据字典cache性能统计(Dictionary Cache Stats)

28. 库缓存的活动情况(Library Cache Activity)

29. Rule集(Rule Sets)

30. 共享池设置建议(Shared Pool Advisory)

31. SGA摘要(SGA Memory Summary)

32. SGA统计信息(SQL Memory Statistics)

33. 系统参数(init.ora Parameters)

这是我生成的一份报告:

 下载地址:http://d.download.csdn.net/down/3521171/dream19881003

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(oracle)