Oracle自诊断工具对日常性能诊断作用很大。从Oracle 8开始,Oracle就在不断地推进综合性的自诊断工具包发展。从最早的Statspack到现在的AWR、ADDM,Oracle正向着自诊断、智能化的方向发展。
Statspack作为Oracle早期推出的工具包,最早出现在Oracle 8,在9i版本中获得广泛的应用。从发展历程上,Statspack奠定了现有AWR的基本工作原理和指标方式。AWR是在Statspack的基础上进行的完善发展。
在一些老系统中,9i依然是数据库主要环境系统,Statspack的诊断功能是需要的。本篇介绍9i环境下Statspack工具安装使用,以及执行计划抽取等常用方法。
--------------------------------------分割线 --------------------------------------
相关阅读:
--------------------------------------分割线 --------------------------------------
1、Statspack安装卸载
默认情况下,Statspack是不会作为默认选项安装的。由于10g版本下AWR的存在,一般情况下我们也不需要额外安装过时的Statspack包。我们着重介绍一下如何实现9i环境的安装。
SQL> select * from v$version;
BANNER
----------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
PL/SQL Release 9.2.0.1.0 - Production
CORE 9.2.0.1.0 Production
TNS for 32-bit Windows: Version 9.2.0.1.0 - Production
NLSRTL Version 9.2.0.1.0 – Production
简单的说,statspack工具包就是PL/SQL存储过程包和一系列Snapshot基础信息表构成的小程序。保留的Snapshot运行数据需要额外的存储空间进行保存,所以建议创建额外的表空间存储进行数据保留。
SQL> create tablespace stptbl datafile 'C:\ORACLE\ORADATA\ORA9I\STPTBL01.dbf' size 500m autoextend on
2 extent management local uniform size 1m
3 segment space management auto;
Tablespace created
注意:同AWR自动的存储管理不同,Statspack的snapshot是没有自动删除的机制的。也就是说,如果我们放任不管,手工收集的镜像数据会一直保存在数据库中。所以,如果经常使用Statspack进行性能数据收集工作,一定不能忽视空间问题。
在9i中,我们需要调用服务器端的脚本来完成创建。注意:这里面我们尽量到服务器端执行,调用服务器端脚本,来防止由于版本不同带来的问题。
SQL> show user
USER 为"SYS"
SQL> @?\rdbms\admin\spcreate
... Installing Required Packages
同义词已创建。
... Creating PERFSTAT user ...
Choose the PERFSTAT user's password.
Not specifying a password will result in the installation FAILING
Specify PERFSTAT password
输入 perfstat_password 的值: perfstat
perfstat
PL/SQL 过程已成功完成。
用户已创建
授权成功。
Below are the list of online tablespaces in this database.
Decide which tablespace you wish to create the STATSPACK tables and indexes. This will also be the PERFSTAT user's default tablespace.
Specifying the SYSTEM tablespace will result in the installation
FAILING, as using SYSTEM for performance data is not supported.
TABLESPACE_NAME CONTENTS
------------------------------------------------------------ -----------------
CWMLITE
PERMANENT
已选择12行。
Specify PERFSTAT user's default tablespace
输入 default_tablespace 的值: STPTBL
Using STPTBL for the default tablespace
PL/SQL 过程已成功完成。
Choose the PERFSTAT user's temporary tablespace.
Specifying the SYSTEM tablespace will result in the installation
FAILING, as using SYSTEM for the temporary tablespace is not recommended.
Specify PERFSTAT user's temporary tablespace.
输入 temporary_tablespace 的值: TEMP
同义词已创建。
NOTE:
SPCPKG complete. Please check spcpkg.lis for any errors.
脚本spcreate的过程是一个交互式过程。执行过程中我们需要确认三个参数项目:创建用户perfstat的密码、数据表空间和临时表空间。
这个过程设置中,要注意一点:单独使用一个数据表空间作为statspack存储,不要将其放在system里面。
卸载Statspack是比较简单的,相同目录中的脚本spdrop就可以了,本文不进行累述了。
2、Statspack使用