原文:http://jonathanlewis.wordpress.com/2006/12/27/analysing-statspack-4/

作者:Jonathan Lewis

使用statspack的一个方式是从数据中抽取出来趋势信息,两年前在我的网站上发布了一些样例的sql,这些sql用来完成这样的任务。

一种方式是生成一个快照,就执行一下spreport.sql脚本,然后使用grep(unix)或者find(windows)从产生的结果文件结合中抽取数据,举个例子,系统当前有过度的I/O和cpu尖刺,我会检查一下系统当前有哪些正在进行 table scans 或者scattered read。如果我已经积累了statspack报告的归档,你们我就可以很容易的得到趋势报告:

grep "table scan rows gotten" sp*.txt      

Statistic                                  Total      per Second      per Trans
sp_17011430.txt:table scan rows gotten 67,522,182 75,024.7 166.0
sp_17011445.txt:table scan rows gotten 60,288,793 66,987.6 168.3
sp_17011500.txt:table scan rows gotten 68,181,066 75,672.7 154.8
sp_17011515.txt:table scan rows gotten 68,845,922 76,580.6 207.2
sp_17011530.txt:table scan rows gotten 132,836,448 147,432.2 422.4
sp_17011545.txt:table scan rows gotten 134,103,072 149,003.4 430.5
sp_17011600.txt:table scan rows gotten 454,254,201 504,726.9 1,381.8
sp_17011615.txt:table scan rows gotten 218,650,324 243,215.0 577.1
sp_17011630.txt:table scan rows gotten 76,841,570 85,379.5 208.6
sp_17011645.txt:table scan rows gotten 66,468,544 73,853.9 199.4

在这个报告中,我插入了头信息,来清楚的看到数字的意思,如果仅仅使用grep的话是没有这部分信息的。

我已经设置了这个系统按照月/天/小时/分钟来作为文件名称的格式,可以看出结果是从15分钟快照的集合中产生的,按照命名的习惯,grep命令刚好按照正确的顺序得出结果。

在这个例子中,可以看到在3:15 pm到4:15 pm中有一些异常,峰值在4:00pm左右,平均下来 每个事物的table scan的量迅速的上升。在这个时间上可以看下statspack的其他信息是否和这部分一致,仔细检查一下在4:00 pm时间的statspack的整体报告,看看是否有一些特殊的任务在执行。

  定时的自动调用spreport.sql, 并产生合适的文件名,可以使用下面的脚本。

execute statspack.snap(5)    

column  begin_snap  new_value   begin_snap
column end_snap new_value end_snap
column report_name new_value report_name column instance_number new_value instance_number
column dbid new_value dbid select dbid from v$database;
select instance_number from v$instance; select begin_snap, end_snap, 'sp_' || snap_time || '.txt' report_name
from (
select
lag(snap_id,1) over(order by snap_id) begin_snap,
snap_id end_snap,
lead(snap_id,1) over(order by snap_id) next_snap,
to_char(snap_time,'mmddhh24mi') snap_time
from stats$snapshot
where dbid = &dbid
and instance_number = &instance_number
)
where
next_snap is null
;
start ?/rdbms/admin/spreport

这个脚本执行一个snapshot,然后找到相邻的两个snapshot的id,根据后面的snapshot的时间戳建立文件名称,这个脚本命名为spreport.sql。

很明显,不能通过dbms_job来执行这个脚本,可以选择其他的方式,如果使用10g,可以选择dbms_scheduler。

statspack系列4的更多相关文章

  1. statspack系列8

    原文:http://jonathanlewis.wordpress.com/2006/12/27/analysing-statspack-8/ 作者:Jonathan Lewis 在前面的关于stat ...

  2. statspack系列7

    原文:http://jonathanlewis.wordpress.com/2006/12/27/analysing-statspack-7/ 作者:Jonathan Lewis 这是一段Oracle ...

  3. statspack系列3

    原文:http://jonathanlewis.wordpress.com/2006/12/27/analysing-statspack-3/ 作者:Jonathan Lewis 下面的例子中的结果并 ...

  4. statspack系列2

    Analysing Statspack 2       命中率陷阱 原文:http://jonathanlewis.wordpress.com/2006/12/27/analysing-statspa ...

  5. statspack系列6

    原文:http://jonathanlewis.wordpress.com/2006/12/27/analysing-statspack-6/ 作者:Jonathan Lewis 下面是一段时间以前网 ...

  6. statspack系列5

    原文:http://jonathanlewis.wordpress.com/2006/12/27/analysing-statspack-5/ 作者:Jonathan Lewis 前些天,有人给我发了 ...

  7. 蓝色的成长记录——追逐DBA(8):为了夺回SP报告,回顾oracle的STATSPACK实验

    ***********************************************声明*************************************************** ...

  8. .Net程序员学用Oracle系列(30):零碎补充、最后总结(The End)

    1.同义词 2.Flashback 技术 3.连接字符串的写法 4.转义字符 & 特殊运算符 5.文件类型 6.查看参数 & 修改参数 7.AWR 工具 8.学习方法 & 学习 ...

  9. 【等待事件】等待事件系列(5.1)--Enqueue(队列等待)

    [等待事件]等待事件系列(5.1)--Enqueue(队列等待)   1  BLOG文档结构图   2  前言部分   2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可 ...

随机推荐

  1. 用友U8按BOM计算销售订单物料需求SQL代码 第一稿

    drop table #tmp1999 drop table #tmp2999 drop table #tmp3999 drop table #tmp4999 drop table #tmp5999 ...

  2. MVC小系列(一)【制作表格】

    在Razor引擎中,对于在表格中进行遍历时,一般会这样写 复制代码 <table border="> @{ ; i < ; i++) { <tr> <td ...

  3. ios 可变参数(va_list,va_start,va_end)

    例如:UIAlertView的init方法中的otherButtonTitles:(NSString *)otherButtonTitles, ...等多个可变参数. ios实现传递不定长的多个参数的 ...

  4. C语言之指针1.1数组

    void main() { ]={,,,,,}; ;i++) { printf("%d\n",*(arr+i)); } } 输出结果时候123456

  5. c#安全性、稳定性、高性能需要注重的点

    1.弱事件 2.类型安全(包括类型转换时可能的异常) 3.线程安全 5.装箱和拆箱 6.闭包传递局部变量时可能遇到的问题. 7.用于dictionary的键,要同时实现GetHashCode和Equa ...

  6. Javascript 数组自定义排序,并获取排序后的保存原索引的同序数组(堆排序实现)

    比如数组A: [ 0: 5, 1: 2, 2: 4, 3: 3, 4: 1 ] 排序后的结果为:[1, 2, 3, 4, 5],但是有时候会有需求想要保留排序前的位置到一个同位数组里,如前例则为:[4 ...

  7. 用java制作日历,想休息的时候看一看离周末还有几天!

    呀!忙碌的每一天,都忘记了明天就是我们愉快周末了.今天没有朋友的闲聊的话,明天处在绷紧的状态呢!还有朋友提到,所有今天来跟大家分享一下用java来编写日历表,累了想休息了的时候,打开看看,还有几天到周 ...

  8. [001] winnie the pooh - 读后记

    winnie the pooh 我是在伍君仪透析英语视频培训班,获得这本书的,PDF格式的(排版不是很好,和当当上的相比有部分章节缺失) 这是我第一本采用透析法读完的英文书. 今天(2015年10月2 ...

  9. 这样写JS的方式对吗?

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. 02_使用WebMagic爬虫获取CSDN推荐专家的个人博客信息

    本来是想抓取博客园的博客推荐的页面的,但由于一些博客进去的页面格式都不太相同,一时不想花时间去寻找规律,发现CSDN上面的格式较为单一,就决定以CSDN推荐专家的个人博客信息作为爬虫抓取的目标. [首 ...