向大师致敬,向大师学习!!!

Statspack基础知识

上一篇 / 下一篇  2008-02-04 13:33:36 / 个人分类:数据库(oracle)

Statspack基础知识

Statspackoracle提供的一个强大性能统计分析工具,通过连续的收集数据库的性能统计数据,记录系统的性能趋势数据,从而使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建立statspackspcreate调用spcusrspctabspcpkg建立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的详细介绍。

 


TAG: statspack

引用 删除 aki   /   2008-05-22 17:16:05
可以联系我么?
qq107066042 谢谢。
引用 删除 aki   /   2008-05-22 17:14:10
你好。
我执行到这一步Specify PERFSTAT user's default  tablespace

输入default_tablespace的值:
就失败了。输入的密码不正确怎么办?
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar