Oracle 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


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3