Oracle9i Statspack的相关知识、安装和使用

   相关知识
  调整STATSPACK 的收集门限,Statspack 有两种类型的收集选项:
   级别(level):控制收集数据的类型
   门限(threshold):设置收集的数据的阈值。
   1.级别(level)
  Statspack 共有三种快照级别,默认值是5
  a.level 0: 一般性能统计。包括等待事件、系统事件、系统统计、回滚段统计、行缓存、SGA、会话、锁、缓冲池统计等等。
  b.level 5: 增加SQL 语句。除了包括level0 的所有内容,还包括SQL 语句的收集,收集结果记录在stats$sql_summary 中。
  c.level 10: 增加子锁存统计。包括level5 的所有内容。并且还会将附加的子锁存存入 stats$lathc_children 中。在使用这个级别时需要慎重,建议在Oracle support 的指导下进行。
  可以通过statspack 包修改缺省的级别设置
  SQL>execute statspack.snap(i_snap_level=>0,i_modify_parameter=>’true’);
  通过这样的设置,以后的收集级别都将是0 级。
  如果你只是想本次改变收集级别,可以忽略i_modify_parameter 参数。
  SQL>execute statspack.snap(i_snap_level=>10);
   2.快照门限
  快照门限只应用于stats$sql_summary 表中获取的SQL 语句。
  因为每一个快照都会收集很多数据,每一行都代表获取快照时数据库中的一个SQL 语句,所以stats$sql_summary 很快就会成为Statspack 中最大的表。
  门限存储在stats$statspack_parameter 表中。让我们了结一下各种门限:
  a. executions_th 这是SQL 语句执行的数量(默认值是100)
  b. disk_reads_tn 这是SQL 语句执行的磁盘读入数量(默认值是1000)
  c. parse_calls_th 这是SQL 语句执行的解析调用的数量(默认值是1000)
  d. buffer_gets_th 这是SQL 语句执行的缓冲区获取的数量(默认值是10000)
  任何一个门限值超过以上参数就会产生一条记录。
  通过调用statspack.modify_statspack_parameter 函数我们可以改变门限的默认值。
  例如:
  SQL>execute statspack.modify_statspack_parameter(i_buffer_gets_th=>100000,i_disk_reads_th=>100000;
  Statspack分析报告详解:
  statspack 输出结果中必须查看的十项内容
  1、负载间档(Load profile)
  2、实例效率点击率(Instance efficiency hit ratios)
  3、首要的5个等待事件(Top 5 wait events)
  4、等待事件(Wait events)
  5、闩锁等待
  6、首要的SQL(Top sql)
  7、实例活动(Instance activity)
  8、文件I/O(File I/O)
  9、内存分配(Memory allocation)
  10、缓冲区等待(Buffer waits)

====================================================
安装及使用
  以下内容均在window Xp,oracle9.2.0.1下测试,在linux/unix下路径"\"要换成"/"
   1.Statspack的安装
  sqlplus /nolog
  conn / as sysdba
  ——创建一个Statspack表空间,要求80M以上或者使用已经存在的表空间,但必须有80M以上的空闲空间
  sql>create tablespace statspack datafile '<statspack_tbs.dbf>'
    size 100M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K
  ——执行安装脚本,在Oracle_Home rdbms\admin下
  sql>@? rdbms\admin\spcreate.sql
  ——创建过程中会让提示输入新建用户perfstat的密码、默认表空间、默认临时表空间,我在这里分别设置为: oracle   statspack  temp
  ——创建完以后,会自动用perfstat用户连接,可以检查一下sql>show user
  ——如果不是perfstat用户,可以执行下面一条
  sql>conn perfstat/oracle
   2.手动使用statspack生成性能报告
  ——抓取快照,必须2次或更过
  sql>exec statspack.snap
  ——至少两次
  sql>exec statspack.snap
  ——生成报告,会提示你输入生成报告的考试和结束的快照ID,必须是在同一个没有中断数据库的周期内的连续快照
  sql>@?dbms\admin\spreport.sql
  ——会提示您输入报告的文件名, 采用默认也可
   3.用文本编辑器等打开生成的报告,具体情况具体分析
   4.如果安装过程出错,怎么纠正
  必须先用spdrop.sql删除spcreate.sql创建的相关信息
  sql>conn / as sysdba
  sql>@?dbms\admin\spdrop.sql
   5.将statspack.snap安装成自动执行,每小时抓取一次快照
  sql>@? dbmsadminspauto.sql
  ——检查任务中是否有这个任务,并且可以看到job的ID
  sql>select * from dba_job;
  ——如果不想自动抓取快照,可以删除任务
  ——先记下job的ID,然后执行
  sql>conn perfstat/oracle
  sql>exec dbms_remove(n);

转载:原地址不详。

你可能感兴趣的:(oracle,sql,linux,unix,XP)