数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
ORACLE性能诊断―学习statspack笔记(一) [安装与测试]

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

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

 

作者:刘颖博

时间:2004-3-2

mail[email protected],请指正

 

转载请注明出处及作者

 

说明:oracle8.1.6开始引进statspackstatspack是诊断oracle性能的强有力的工具

 

安装前准备

 

A.首先是系统参数的确认:

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

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

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

 

安装

A.安装脚本

安装的脚本所在目录是$ORACLE_HOME/rdbms/admin,在oracle8.1.6版本安装脚本是statscre.sql,之后8.1.7版本开始就是spcreate.sql,安装所需用户在9i之前的需要internal或者拥有sysdba权限的用户,9i需要的用户是sys9i已经不存在internal用户了)

 

执行安装脚本如下:

SQL> @$ORACLE_HOME/rdbms/admin/spcreate

 

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

 

测试

最简单的statspack报告生成,运行两次statspack.snap,然后运行spreport.sql生成一个基于两个时间点的报告。如果是8.1.7.3之前版本的Oracle,需要修改spcpkg.sql,要将substr修改为substrb,如下位置:

       select l_snap_id

            , p_dbid

            , p_instance_number

            , substr(sql_text,1,31) à substrb(sql_text,1,31)

 

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

 

SQL> execute statspack.snap

 

PL/SQL procedure successfully completed.

 

SQL> execute statspack.snap

 

PL/SQL procedure successfully completed.

 

SQL> @$ORACLE_HOME/rdbms/admin/spreport

 

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

 

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

 

自动收集statspack快照

正常在真正的环境下,我们是需要连续的采样一段时间,这样生成的statspack才能更好的反映系统的现状,我们是可以通过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这个值,目前是一个小时自动收集一次数据,如果要改动为半个小时收集一次数据就修改为1/48,同理,进行或大或小的修改。

 

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

 

 

(待续)

……………………………………………………………………………………

感谢 eygle 和他的《statspack使用指南》一文

 

 

 




相关文章

相关软件