Statspack基础知识
Statspack是oracle提供的一个强大性能统计分析工具,通过连续的收集数据库的性能统计数据,记录系统的性能趋势数据,从而使dba可以很快的定位数据库的性能瓶颈所在,同时也为远程的数据库技术支持提供快速准确的性能信息。
下面将分二篇文章分别介绍statspack的安装配置和报告内容的详细解读
安装前的参数设置
SQL> show parameter job_queue
NAME TYPE VALUE
------------------------------------ ---------------------- ------
job_queue_processes integer 10
实际在使用statspack时,都会定时连续的收集数据库的统计信息,为了可以建立任务定时运行statspack.snap,需要参数job_queue_process的参数设定>=1
SQL> show parameter timed_sta
NAME TYPE VALUE
------------------------------------ ---------------------- ------
timed_statistics boolean TRUE
收集操作系统的计时信息,这些信息可被用来显示时间等统计信息,优化数据库和sql语句,建议把该参数设置为treu。
statspack安装
oracle_home\rdbms\admin\sp*开头的一些sql脚本,用来安装及配置statspack,其中.spcreate.sql建立statspack(spcreate调用spcusr,spctab,spcpkg建立statspack用的数据字典表,视图,statspack包,默认的perfstat用户等信息),安装过程中需要制定perfstat用户的表空间及临时表空间,密码。安装中如有任何报错信息,可以参考lis输出文件。
为配置statspack,建议新增一个statspack工作需要的表空间。
1 create tablespace sptest datafile 'C:\oracle\oradata\db9i\sptest.dbf' size 300m autoextend on
2 next 10m maxsize 400m extent management local
3* segment space management auto
SQL> /
表空间已创建。
实际的使用中,Statspack收集的统计信息可能会很大,该变空间的大小至少在100M以上,如果采样的频率很高,需要适当的再增加其大小。
以sysdba用户连入sqlplus,执行spcreate.sql
SQL> @C:\oracle\rdbms\admin\spcreate.sql
... Installing Required Packages
Specify PERFSTAT password
输入perfstat_password的值:
。。。。。。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。
Specify PERFSTAT user's default tablespace
输入default_tablespace的值:
Specify PERFSTAT user's temporary tablespace.
输入temporary_tablespace的值:
程序包已创建。
没有错误。
Creating Package Body STATSPACK...
程序包主体已创建。
没有错误。
SPCPKG complete. Please check spcpkg.lis for any errors.
如果安装过程有报错信息,请检查lis输出文件,该文件会列出具体的报错信息,如
Specify PERFSTAT user's default tablespace
输入default_tablespace的值: temp
Using temp for the default tablespace
PL/SQL过程已成功完成。
用户已更改。
alter user PERFSTAT default tablespace temp
ERROR位于第1行:
ORA-12910:无法将临时表空间指定为默认表空间
采样数据库的状态信息
SQL> exec statspack.snap;
PL/SQL过程已成功完成。
10分钟后再次采样
SQL> exec statspack.snap;
PL/SQL过程已成功完成。
可以利用spauto脚本,设置定时任务收集统计信息,spauto,该脚本实际调用dbms_job.submit,新增一个job,调用statspack.snap,可以手工编辑需要间隔的时间。(statspack结束后,注意用dbms_job.remove(:jobno)把定时的job任务删除,避免大量的统计信息带来额外的问题)
生成报告信息
SQL> @C:\oracle\rdbms\admin\spreport.sql
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
Snap Snap
Instance DB Name Id Snap Started Level Comment
------------ ------------ ----- ----------------- ----- ----------------------
dbcgb DB_CGB 124 1月 2008 16:4 5
3
224 1月 2008 16:4 5
3
Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
输入begin_snap的值: 1
Begin Snapshot Id specified: 1
输入end_snap的值: 2
End Snapshot Id specified: 2
Specify the Report Name
~~~~~~~~~~~~~~~~~~~~~~~
The default report file name is sp_1_2. To use this name,
press <return> to continue, otherwise enter an alternative.
输入report_name的值: spreport_0124.txt
查看该文件,即可得到数据库的statspack的信息资料
移除统计信息
a:调用spdrop脚本,相应的将删除spcreate所建立的包,表,视图等对象。
B:调用sptrunc脚本,可以只删除统计信息数据,相关的对象并不删除。
Statspack报告解读
Statspack包含的相当丰富的内容,快速准确的解读该报告和定位数据库的性能瓶颈,有针对性的提供改善意见。
下一篇文章中将转发itpub中网友关于statspack的详细介绍。