龙空技术网

oracle数据库级别优化分析工具之statspack

程序员VenusKong 194

前言:

今天大家对“oracle数据库性能分析”大概比较注意,我们都需要了解一些“oracle数据库性能分析”的相关文章。那么小编在网上收集了一些对于“oracle数据库性能分析””的相关文章,希望看官们能喜欢,兄弟们一起来了解一下吧!

a。安装

sql> sqlplus "/ as sysdba"

SQL> select file_name from dba_data_files;

SQL> create tablespace perfstat datafile 'e:/oracle/oradata/skate/perfstat.dbf' size 2000m;

sql> @ORACLE_HOME/rdbms/admin/spcreate.sql

b。使用

SQL> conn perfstat/passwd

收集统计信息

sql> execute statspack.snap

SQL> exec statspack.SNAP(i_snap_level =>5);

生成报告

sql> @ORACLE_HOME/rdbms/admin/spreport.sql

定时收集信息有两种方式,一种是oracle job,一种是os的crontab,我比较习惯用os级别的crontab

设定其每个小时自动收集一次采样的job

declare

Variable job number ;

begin

dbms_job.submit(:job, "statspack.snap;" ,trunc( sysdate + 1/24 , 'hh24' ), "trunc(sysdate+1/24,'hh24')" );

commit ;

end ;

/

查看job使用情况

SQL> select job,schema_user,next_date,interval,what from user_jobs

自动停止采样job

declare

Variable job number ;

begin

dbms_job.submit(:job, "dbms_job.broken(44,true);" ,trunc( sysdate + 1 ), "null" );

commit ;

end ;

/

清空所有stats统计信息表里的数据

sql> @ORACLE_HOME/rdbms/admin/sptrunc.sql

snapshot的level,这可以通过EXEC STATSPACK.MODIFY_STATSPACK_PARAMETER(i_snap_level=N)来修改,N可以为0,5,6,7,10,缺省为5。

   0 仅提供一般性能统计

5 增加了对SQL语句总体分析

6 增加了SQL计划和使用

7 增加了分段(Segments)级的统计

10增加了对闩锁(Latches)的分析

其中文档建议对10要慎重,因为代价较高。

eg:

SQL> exec statspack.SNAP(i_snap_level =>6);

oracle不仅提供生成数据库报告的脚本spreport.sql,还提供另一个statspack 报告脚本sprepsql.sql来生成SQL的报告

sql> @ORACLE_HOME/rdbms/admin/sprepsql.sql

标签: #oracle数据库性能分析