Statspack初步学和用第二篇 使用初步

原创 2007年09月22日 21:54:00


以perfstat用户连接,如果你刚执行完@spcreate,则oracle默认将当前用户切换为perfstat。
首先生成两次采样。

SQL>execute statspack.snap

PL/SQL procedure successfully completed.

SQL>execute statspack.snap

PL/SQL procedure successfully completed.

执行@spreport生成报告(该文件物理存放路径与spcreate相同)。

SQL> @spreport

Current Instance
~~~~~~~~~~~~~~~~
   DB Id    DB Name     Inst Num Instance
----------- ------------ -------- ------------
 3398983194 JSSWEB              1 jssweb

 

Instances in this Statspack schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   DB Id    Inst Num DB Name      Instance     Host
----------- -------- ------------ ------------ ------------
 3398983194        1 JSSWEB       jssweb       JSS

Using 3398983194 for database Id
Using          1 for instance number


Specify the number of days of snapshots to choose from
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Entering the number of days (n) will result in the most recent
(n) days of snapshots being listed.  Pressing <return> without
specifying a number lists all completed snapshots.

 

Listing all Completed Snapshots

                                                       Snap
Instance     DB Name        Snap Id   Snap Started    Level Comment
------------ ------------ --------- ----------------- ----- --------------------
jssweb       JSSWEB               1 05 9月  2007 12:5     5
                                    9
                                  2 05 9月  2007 13:0     5
                                    2


输入采样的起始值和结束值,注意在生成报告的时候所选择的采样不能跨越一次停机(即stats$snapshot中STARTUP_TIME相同),不然会报错。


Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
输入 begin_snap 的值:  1
Begin Snapshot Id specified: 1

输入 end_snap 的值:  2
End   Snapshot Id specified: 2

 

Specify the Report Name
~~~~~~~~~~~~~~~~~~~~~~~
The default report file name is sp_1_2.  To use this name,
press <return> to continue, otherwise enter an alternative.

输入 report_name 的值:  d:/report.txt
报告文件的输出路径。


................
................
................

undo_tablespace               UNDOTBS1
user_dump_dest                F:/ORACLE/PRODUCT/10.2.0/ADMIN/JS
          -------------------------------------------------------------

End of Report ( d:/report.txt )

从生成采样到生成报告的大致操作步骤就是这样,当然我们这样操作在实际业务过程中是不现实的,主要的问题有以下几条:
采样生成间隔时间太短,未必能真正体现出服务器在业务实际运行中的状态,并且时间太短的情况下,可能statspack运行本身都会对分析结果的生成造成影响,毕竟statspack也是在运行一堆sql,也会被计入统计范围内。
采样的频度太低,以上述为例仅执行两次,以此为基准生成的报告恐怕也真的是仅供参考。

解决上述问题,我们按照如下步骤实施:
1、创建一个job,我们设定其每个小时自动收集一次采样。

Variable job number;
begin
  dbms_job.submit(:job,'statspack.snap;',trunc(sysdate+1/24,'hh24'),'trunc(sysdate+1/24,''hh24'')');
  commit;
end;
/

查看当前job
SQL> select job,schema_user,next_date,interval,what from user_jobs

       JOB SCHEMA_USE NEXT_DATE      INTERVAL                       WHAT
---------- ---------- -------------- ------------------------------ -----------------------
        44 PERFSTAT   11-9月 -07     trunc(SYSDATE+1/24,'HH')       statspack.snap;


2、考虑到采样结果还是相当占空间,不能让其一直执行下去,我们再创建一个job,让它在明天凌晨自动停止采样job的执行。


Variable job number;
begin
  dbms_job.submit(:job,'dbms_job.broken(44,true);',trunc(sysdate+1),'null');
  commit;
end;
/
Ok,竣工,等上几个小时,看看采样生成的怎么样了。

SQL> select snap_id,snap_time,startup_time from stats$snapshot;

   SNAP_ID SNAP_TIME           STARTUP_TIME
---------- ------------------- -------------------
        11 2007-09-11 11:00:03 2007-09-11 09:16:05
        12 2007-09-11 12:00:03 2007-09-11 09:16:05
        13 2007-09-11 13:00:04 2007-09-11 09:16:05
         1 2007-09-10 12:59:56 2007-09-10 09:04:22
         2 2007-09-10 13:02:01 2007-09-10 09:04:22


重新执行@spreport,再生成一份报告看看吧。

如果你想删除某些statspack收集的历史采样,直接通过delete,指定snap_id即可:
SQL> delete stats$snapshot where snap_id=1;

已删除 1 行。

SQL> select snap_id,snap_time,startup_time from stats$snapshot;

   SNAP_ID SNAP_TIME           STARTUP_TIME
---------- ------------------- -------------------
        11 2007-09-11 11:00:03 2007-09-11 09:16:05
        12 2007-09-11 12:00:03 2007-09-11 09:16:05
        13 2007-09-11 13:00:04 2007-09-11 09:16:05
         2 2007-09-10 13:02:01 2007-09-10 09:04:22
SQL>

如果你想删除所有的采样数据但保留statspack的库结构,oracle也提供了脚本,执行@sptrunc即可。该脚本是通过truncate删除各表记录,效率比delete高很多。
如果你想彻底干掉本机安装的statspack的话,那就更简单了,执行@spdrop,干净不留痕:)。


注:如果你在执行@spxxx的时候报SP-0310错误,可能是SQLPATH路径未设,你可以通过三种方式解决:
本地设置SQLPATH:
F:/> SET SQLPATH=F:/oracle/product/10.2.0/db_1/RDBMS/ADMIN
如果用这种方式的话,本次会话结束SQLPATH就失效了,下次打开还得再次设置。

设置注册表(linux环境的话就设置环境变量):
开始->运行->regedit
HKEY_LOCAL_MACHINE->SOFTWARE->ORACLE->KEY_ORADB10G->新建字符串值SQLPATH,数值数据:F:/oracle/product/10.2.0/db_1/RDBMS/ADMIN

指定全路径:
SQL> @F:/oracle/product/10.2.0/db_1/RDBMS/ADMIN/spreport.sql

SQL> @%ORACLE_HOME%/RDBMS/ADMIN/spreport.sql


 

HTML初步认识

HTML初步认识本篇博客给大家带来html最基础的东西,也就是初步认识html,打算从以下几个方面给大家介绍: 认识什么是纯文本文件txt HTML是负责描述文档语义的语言 HTML骨架和基本语法 可...
  • u010624986
  • u010624986
  • 2016年12月16日 23:46
  • 518

计算机专业初学者推荐书籍

以下这些书都是经典的经典的经典,每一本都值得细读、多读、读烂,特别是基础的书。 语言和编程基础: 1. 《C专家编程》  学C语言进阶的经典之作 http://item.jd.com...
  • dear_to_be
  • dear_to_be
  • 2014年05月19日 17:07
  • 894

java语言基础实验报告 第二个实验

package njtcstudent.com; import java.util.Scanner; public class Seond { public static void main(...
  • puhaiyang
  • puhaiyang
  • 2014年09月30日 22:41
  • 622

H - 计算几何初步

Description 我会给你N 个点 的坐标,你来判断这 N个 点最多能 组成 多少个 完全不同 的锐角三角形。 Input 第一行给出T(T≤10),代表有T组数据。 每组数据首先给...
  • xiangchengshishuiguo
  • xiangchengshishuiguo
  • 2016年11月16日 11:37
  • 114

U-BOOT-2016.07移植 (第二篇) 添加单板

U-BOOT-201607移植 第二篇 添加单板 1. 在board中创建单板目录 2. 创建单板相关头文件 3. 创建defconfig文件 4. 修改arch/arm/Kconfig文件 5. 尝...
  • funkunho
  • funkunho
  • 2016年09月08日 01:46
  • 2152

day 1:对Java的初步认识(对于环境变量的理解等)

Java后端方向的基本就业方向如下几部分:移动互联网、互联网金融、智能家居、互联网教育等等 Java的最大特性:一次编译,到处运行。原因归功于虚拟机JVM机制,JVM虚拟机保证了在不同的平台上可以使用...
  • qq_37366958
  • qq_37366958
  • 2018年01月02日 19:32
  • 58

Cardboard虚拟现实开发初步(二)

Google Cardboard 虚拟现实眼镜开发初步(二) Cardboard SDK for Unity的使用 上一篇文章作为系列的开篇,主要是讲了一些虚拟现实的技术和原理,本篇就会带领大家去...
  • sunmc1204953974
  • sunmc1204953974
  • 2015年08月02日 09:06
  • 9451

初步认识linux与入门

习惯了使用windows以后接触另外一个操作系统似乎不太习惯,考虑到linux众多优越性,首先就说说为什么学习linux。在接触linux之前先来说说我对linux的理解。1. linux完全开源,免...
  • cai2016
  • cai2016
  • 2016年07月10日 18:27
  • 825

webvr 的初步认识

webvr 的初步认识
  • qq_16090117
  • qq_16090117
  • 2016年05月11日 20:15
  • 724

[从头学数学] 第205节 初等数论初步

剧情提要: [机器小伟]在[工程师阿伟]的陪同下进入了[九转金丹]之第七转的修炼。 这次要研究的是[初等数论初步]。 正剧开始: 星历2016年05月08日 10:05:37, 银河系厄尔斯星球...
  • mwsister
  • mwsister
  • 2016年05月08日 10:31
  • 816
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Statspack初步学和用第二篇 使用初步
举报原因:
原因补充:

(最多只允许输入30个字)