ORACLE性能诊断―学习statspack笔记(一) [安装与测试]

oracle|笔记|性能

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

 

作者:刘颖博

时间:2004-3-2

mail:liuyingbo@126.com,请指正

 

转载请注明出处及作者

 

说明:oracle8.1.6开始引进statspack,statspack是诊断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需要的用户是sys(9i已经不存在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使用指南》一文

 

 

 

时间: 2024-10-30 13:32:01

ORACLE性能诊断―学习statspack笔记(一) [安装与测试]的相关文章

ORACLE性能诊断―学习statspack笔记(二)[概述]

oracle|笔记|性能 ORACLE性能诊断―学习statspack笔记(二)[概述]   作者:刘颖博 时间:2004-3-3 mail:liuyingbo@126.com,请指正   转载请注明出处及作者   ORACLE性能诊断涉及对象   A.      服务器.网络以及磁盘(外部的环境) B.      实例(SGA,后台进程) C.      对象(表,索引,段--) D.     SQL E.      设计(指的是应用的设计,这部分一般说来是很难改变了)   ORACLE性能诊

ORACLE性能诊断―学习statspack笔记(三)[表的分类]

oracle|笔记|性能 ORACLE性能诊断―学习statspack笔记(三)[表的分类]   作者:刘颖博 时间:2004-3-10 mail:liuyingbo@126.com,请指正   转载请注明出处及作者   说明:STATSPACK并不能获取全面分析性能问题所需要的所有信息.特别是问题出在DISK,RAM,CPU以及NETWORK等数据库外部.   STATSPACK表的分类 A:控制表:stats$database_instance ,stats$snapshot B:参数表:s

ORACLE性能诊断―学习statspack笔记(四)[扩展statspack收集服务器统计]

oracle|笔记|服务器|统计|性能 ORACLE性能诊断―学习statspack笔记(四)[扩展statspack收集服务器统计]   作者:刘颖博 时间:2004-3-22 mail:liuyingbo@126.com,请指正   转载请注明出处及作者   说明:由于STATSPACK并不能获取全面分析性能问题所需要的所有信息,所以需要扩展其收集服务器的统计信息.(本文环境REDHAT Linux7.2)   VMSTAT介绍 通过STATSPACK收集服务器信息,主要通过收集VMSTAT

Oracle性能优化学习笔记之共享Sql语句

       为了不重复解析相同的SQL语句,在第一次解析之后,Oracle将SQL语句存放在内存中.这块位于系统全局区域SGA(systemglobal area)的共享池(shared buffer pool中的内存可以被所有的数据库用户共享.因此,当你执行一个SQL语句(有时被称为一个游标)时,如果它和之前执行过的语句完全相同,Oracle就能很快获得已经被解析的语句以及最好的执行方案.Oracle的这个功能大大地提高了SQL的执行性能并节省了内存的使用.        可惜的是ORACL

Oracle性能优化学习笔记之选择最有效率的表名顺序

        选择最有效率的表名顺序(只在基于规则的优化器中有效)         ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,因此FROM子句中写在最后的表(基础表 driving table)将被最先处理. 在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表.当ORACLE处理多个表时, 会运用排序及合并的方式连接它们.首先,扫描第一个表(FROM子句中最后的那个表)并对记录进行派序,然后扫描第二个表(FROM子句中最后第二个表),最后将所有从第二

Oracle性能优化学习笔记之WHERE子句中的连接顺序

        ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾.         例如:        (低效,执行时间156.3秒) SELECT - FROM EMP E WHERE SAL > 50000 AND JOB = 'MANAGER' AND 25 < (SELECT COUNT(*) FROM EMP WHERE MGR=E.EMPNO);      

一个执行计划异常变更引发的Oracle性能诊断优化

最近有一个OLTP应用使用的Oracle数据库突然出现性能问题,DBA发现有一些delete语句执行时间骤长,消耗大量系统资源,导致应用响应时间变长积Q.   辅助信息: 应用已经很久未做过更新上线了. 据开发人员反馈,从之前的应用日志看,未出现处理时间逐步变长的现象. 这是一套RAC+DG的环境,11g的版本. 这次突然出现大量执行时间超长的SQL语句,是一条删除语句,delete from table where key1=:1 and key2=:2 and ...(省略此案例不会用到的其

Oracle ADDM性能诊断利器及报告解读

性能优化是一个永恒的话题,性能优化也是最具有价值,最值得花费精力深入研究的一个课题,因为资源是有限的,时间是有限的.在Oracle数据库中,随着Oracle功能的不断强大和完善,Oralce数据库在性能方面实现自我诊断及优化的功能也越来智能化,这大大的简花了人工优化的脑力和体力的开销,尤其是借助ADDM自动诊断并给出调整建议.本文主要描述ADDM功能及特性. 一.ADDM的主要功能 ADDM全称是Automatic Database Diagnostic Monitor,是Oracle一个实现性

《Oracle性能优化与诊断案例精选》导读

前言 Oracle性能优化与诊断案例精选数据驱动,成就未来最近两年来,很多朋友经常会问我,接下来会不会继续写书,会写一本什么样的书. 其实我也一直在思考,什么样的作品能够以最小的篇幅带来超越时间的价值,尽可能地帮助那些准备进入和刚刚进入这个领域的广大技术人员. 本书缘起2015年年底,我在成都和老熊聊天的时候,忽然有了一个想法,如果我能够将云和恩墨的专家团队聚集起来,让每个人都把自己最宝贵的经验方法.经典案例呈现出来,那累计超过100年的从业经验一定可以帮助很多人更深层次地了解数据库技术. 于是