原文: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. WildFly 9.0.2 启用 SSL

    一.最近做个项目是需要在WildFly中启用https,但是由于WildFly的中文文档比较少所以google了一下,先是通过JBOSS的官方文档了解了一下,但是官方文档这块的配置介绍有些不全面.所以 ...

  2. windows下Nginx配置与测试

    1.获取 下载地址:http://nginx.org/en/download.html        参考网址:http://nginx.org/en/docs/windows.html 2.准备工作 ...

  3. C#基础总复习03

    继续更新...接下来就是面向对象的知识了 1.面向对象:概念:使用面向对象的思想进行编程可以让的程序变得扩展性更高,便于维护: 我们在现实生活中去描述一个人的时候,通过描述这个人的特征和行为. 我们在 ...

  4. C++学习指南

    转载于stackoverflow:http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list 感谢Ge ...

  5. groovy --不注意的小错误(java.lang.String.positive() is applicable)

    sql 语句拼接报错: No signature of method: java.lang.String.positive() is applicable for argument types: () ...

  6. (转) UIALertView的基本用法与UIAlertViewDelegate对对话框的事件处理方法

    首先,视图控制器必须得实现协议UIAlertViewDelegate中的方法,并指定delegate为self,才能使弹出的Alert窗口响应点击事件. 具体代码如下: #import <UIK ...

  7. IIS原理学习

    IIS 原理学习 首先声明以下内容是我在网上搜索后整理的,在此只是进行记录,以备往后查阅只用. IIS 5.x介绍 IIS 5.x一个显著的特征就是Web Server和真正的ASP.NET Appl ...

  8. erlang 编程指南 第三章-顺序编程 课后练习

    1. sum(3) => 6; sum(1,3) => 6; sum(6,6) => 6; sum(N) when is_integer(N) -> sum_acc(N,0); ...

  9. jQuery插件综合应用(四)头像设置

    一.操作流程 会员点击头像设置,弹出一个层,在层中,有上传图片的按钮,用户点击按钮上传图片,图片在服务器端按大小压缩保存(方便剪切).保存后,在前端显示,然后用户可修剪图片.选择图片区域,点击提交,保 ...

  10. 基于IAccessible接口的QQ窗口信息获取的实现

    这个技术现在已经封装成DLL免费开放给大家使用了,详情请加群221487171 可以访问官方网站下载 http://www.guihelper.com/ 主要技术(Microsoft Active A ...