statspack系列4
原文: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的更多相关文章
- statspack系列8
原文:http://jonathanlewis.wordpress.com/2006/12/27/analysing-statspack-8/ 作者:Jonathan Lewis 在前面的关于stat ...
- statspack系列7
原文:http://jonathanlewis.wordpress.com/2006/12/27/analysing-statspack-7/ 作者:Jonathan Lewis 这是一段Oracle ...
- statspack系列3
原文:http://jonathanlewis.wordpress.com/2006/12/27/analysing-statspack-3/ 作者:Jonathan Lewis 下面的例子中的结果并 ...
- statspack系列2
Analysing Statspack 2 命中率陷阱 原文:http://jonathanlewis.wordpress.com/2006/12/27/analysing-statspa ...
- statspack系列6
原文:http://jonathanlewis.wordpress.com/2006/12/27/analysing-statspack-6/ 作者:Jonathan Lewis 下面是一段时间以前网 ...
- statspack系列5
原文:http://jonathanlewis.wordpress.com/2006/12/27/analysing-statspack-5/ 作者:Jonathan Lewis 前些天,有人给我发了 ...
- 蓝色的成长记录——追逐DBA(8):为了夺回SP报告,回顾oracle的STATSPACK实验
***********************************************声明*************************************************** ...
- .Net程序员学用Oracle系列(30):零碎补充、最后总结(The End)
1.同义词 2.Flashback 技术 3.连接字符串的写法 4.转义字符 & 特殊运算符 5.文件类型 6.查看参数 & 修改参数 7.AWR 工具 8.学习方法 & 学习 ...
- 【等待事件】等待事件系列(5.1)--Enqueue(队列等待)
[等待事件]等待事件系列(5.1)--Enqueue(队列等待) 1 BLOG文档结构图 2 前言部分 2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可 ...
随机推荐
- 直播类送礼动画<豪华礼物+小礼物>
直播类送礼动画<豪华礼物+小礼物>:代码会持续更新,现直播的app里内有太多的动画,由于时间关系不能一次共享所有动画聘为,这次先共享几个比较火爆的动画. 支持真机和模拟器上运行,最低支持i ...
- Swift 语法须知
什么是swift? swift是 2014 WWDC 发布的一款脚本语言. 使用Swift的好处: OC ARC 最大的困难 内存管理 而 swift 不用担心内存方面. 简洁 ,功能 ...
- 解决VirtualBox错误:“FATAL:No bootable medium found!”
VirtualBox错误:“FATAL:No bootable medium found!” 用VirtualBox安装系统出现这个错误的几率极高,因为当哥出现同样问题的时候股沟了下”FATAL:No ...
- 引用传递&值传递
下面的程序阐述了值传递与应用传递的区别. package com.liaojianya.chapter1; /** * This program demonstrates the use of arr ...
- c++primer复习(六)—面向对象编程
1 C++中,通过基类的引用(或指针)调用虚函数时,发生动态绑定,两个条件(基类引用或指针.虚函数)缺一不可 虚函数的默认实参将发生静态绑定 2 继承层次的根类一般都需要定义虚析构函数 3 任意非st ...
- HttpHandler与HttpModule及实现文件下载
HttpHandler:处理请求(Request)的信息和发送响应(Response).HttpModule:通过Http Module向Http请求输出流中写入文字,httpmodule先执行 它们 ...
- YII 开启URL伪静态
1.开启apache的mode_rewrite模块 去掉LoadModule rewrite_module modules/mod_rewrite.so前的“#”符号 确保<Directory ...
- MVC中Area的使用
1.Area是什么? MVC 2 中引进了区域的概念,它允许将模型,视图和控制器分成单独的功能节点,换句话说,可以在大型复杂的网站中建立几个区域(模块),每一个区域都有Model,View,Contr ...
- juery mobile select下来菜单选项提交form问题
注意: data-native-menu="false" 虽然具有渲染作用,但是无法进行js提交. <script type="text/javascript&q ...
- NET Core 整合Autofac和Castle
NET Core 整合Autofac和Castle 阅读目录 前言: 1.ASP.NET Core中的Autofac 2.整合Castle的DynamicProxy 3.注意事项 回到目录 前言: 除 ...