数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

ORACLE性能诊断―学习statspack笔记(一)


发布日期:2021年07月20日
 
ORACLE性能诊断―学习statspack笔记(一)

说明Oracle开始引进statspackstatspack是诊断oracle性能的强有力的工具

安装前准备

A首先是系统参数的确认

job_query_processes为了建立自动任务执行数据收集该参数要大于

time_statistics为了收集操作系统计时信息等需要将其设置为TRUE

B建议最好是单独的为perfstat用户(即安装statspack要建的用户)单独建立数据表空间和临时表空间数据表空间至少要有M的空闲空间否则创建statspack对象会失败如果打算长期使用statspack可以考虑建稍大些的数据表空间

安装

A安装脚本

安装的脚本所在目录是$ORACLE_HOME/rdbms/admin在oracle版本安装脚本是statscresql之后版本开始就是spcreatesql安装所需用户在i之前的需要internal或者拥有sysdba权限的用户i需要的用户是sys(i已经不存在internal用户了)

执行安装脚本如下

SQL> @$ORACLE_HOME/rdbms/admin/spcreate

B在安装过程中需要填写perfstat用户的密码并且选择perfstat用户的数据表空间和临时表空间安装完成之后察看相应的lis文件检查安装是否正确无误有问题可以通过spdropsql完成statspack的卸载重新运行spcreatesql完成statspack的安装

测试

最简单的statspack报告生成运行两次statspacksnap然后运行spreportsql生成一个基于两个时间点的报告如果是之前版本的Oracle需要修改spcpkgsql要将substr修改为substrb如下位置

select l_snap_id

p_dbid

p_instance_number

substr(sql_text) à substrb(sql_text)

建立简单的statspack报告过程如下

SQL> execute statspacksnap

PL/SQL procedure successfully completed

SQL> execute statspacksnap

PL/SQL procedure successfully completed

SQL> @$ORACLE_HOME/rdbms/admin/spreport

Spreport的执行过程中会列出需要选择的快照你需要填写该报告描述的开始和结束的快照序号并填写报告的文件名当然可以不填使用默认的报告文件名默认的会生成在目录$ORACLE_HOME/rdbms/admin中

这样就可以验证statspack已经正确的安装完成了

自动收集statspack快照

正常在真正的环境下我们是需要连续的采样一段时间这样生成的statspack才能更好的反映系统的现状我们是可以通过spautosql来自动收集数据的

主要可能会设计到修改如下部分的内容

variable jobno number;

variable instno number;

begin

select instance_number into :instno from v$instance;

dbms_jobsubmit(:jobno statspacksnap; trunc(sysdate+/HH) trunc(SYSDATE+/HH) TRUE :instno);

commit;

end;

/

主要是修改/这个值目前是一个小时自动收集一次数据如果要改动为半个小时收集一次数据就修改为/同理进行或大或小的修改

执行后可以在spautolis文件中看到当前自动收集数据的job号等信息当想要生成statspack报告的时候只要选择任何两个不跨越停机时间的快照序号就可以了注意statspack是不能跨越停机的

上一篇:ORACLE的TO

下一篇:ORACLE性能调优原则上篇(列表)