`
aa8945163
  • 浏览: 276211 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Statspack

阅读更多
Statspack是Oracle自带的强大的性能分析工具。他可以对当前数据库的运行状况作出全面的分析(包括实例信息、PGA顾问信息、命中率、top sql、top 5 wait event等等),是个好东西吧!下面切入正题:



1.以sysdba身份登陆,查看数据文件路径

   

Sql代码 
 

C:\Documents and Settings\Administrator>sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 4月 14 10:51:41 2010

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

sys@AAA>show user;
USER 为 "SYS"
sys@AAA>select file_name from dba_data_files;

FILE_NAME
--------------------------------------------------
D:\ORACLE\PRODUCT\10.2.0\ORADATA\AAA\USERS01.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\AAA\SYSAUX01.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\AAA\UNDOTBS01.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\AAA\SYSTEM01.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\AAA\BBB.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\AAA\PERFSTAT.DBF

已选择6行。

2.创建statspack存储数据的表空间,(注:statspack往往会产生大量的分析数据,所以表空间还是大点为好)。

  

Sql代码 
1.create tablespace perfstat datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\AAA\PERFSTAT.DBF' size 2G; 

create tablespace perfstat datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\AAA\PERFSTAT.DBF' size 2G;

3.运行statspack安装脚本。默认位置在$oracle_home\rdbms\admin\spcreate.sql

  

   



sys@AAA> @D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\spcreate.sql

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

输入 perfstat_password 的值:  perfstat

...

输入 default_tablespace 的值:  perfstat
..........
..........
输入 temporary_tablespace 的值: temp
..........
..........




安装完之后 会自动切换用户到perfstat下:

  

Sql代码 


PERFSTAT@AAA> show user;

USER is "PERFSTAT"


安装完毕!



4.接下来采样分析,设定一个job,每小时执行一次采样。

   首先查看当前DB中有没有正在运行的JOB:

  



perfstat@AAA>select job,schema_user,next_date,interval,what from user_jobs;

未选定行

创建statspack采样的job,没每个小时采样一次。

  



perfstat@AAA>variable job number;
perfstat@AAA>begin
  2  dbms_job.submit(:job,'statspack.snap;',trunc(sysdate+1/24,'hh24'),'trunc(sysdate+1/24,''hh24'')');
  3  commit;
  4  end;
  5  /

PL/SQL 过程已成功完成。

查看当前正在运行的job有哪些?

  

Sql代码 

perfstat@AAA>select job as j,schema_user,next_date,interval,what from user_jobs;
        J SCHEMA_USER                    NEXT_DATE      INTERVAL   WHAT
---------- ------------------------------ -------------- ---------- ----------
         1 PERFSTAT                       14-4月 -10     trunc(sysd statspack.
                                                         ate+1/24,' snap;
                                                         hh24')



5.由于statspack的采集和分析会做很多DB的分析,产生大量的分析数据,所以频繁的采样肯定会消耗系统性能,特别是在生产库中,所以当你建立了上面每小时执行一次的那个job,请务必在不需要的时候停止它。不然的话,这个失误可能会是致命的( statspack job每小时都会跑,永不停的跑下去,呵呵。),尤其在生产库中。



明天凌晨,系统比较清闲,采样已经没多大意义(采样分析的最终目的是分析高峰时段的系统瓶颈),所以停止这个job.

   



perfstat@AAA>variable job number;
perfstat@AAA>begin
  2  dbms_job.submit(:job,'dbms_job.broken(1,true);',trunc(sysdate+1),'null');
  3  commit;
  4  end;
  5  /

PL/SQL 过程已成功完成。



6.几个小时候后,看看生成的哪些快照。

Sql代码 

perfstat@AAA>select snap_id,snap_time,startup_time from stats$snapshot;

   SNAP_ID SNAP_TIME      STARTUP_TIME
---------- -------------- --------------
         1 14-4月 -10     14-4月 -10
         2 14-4月 -10     14-4月 -10


7.设定任意两个快照,产生这段时间内的性能分析报告(此时需要跑spreport脚本,路径和刚才那个脚本一致)。

Sql代码 
perfstat@AAA>@D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\spreport.sql

Current Instance
~~~~~~~~~~~~~~~~
   DB Id    DB Name     Inst Num Instance
----------- ------------ -------- ------------
1858440386 AAA                 1 aaa



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

   DB Id    Inst Num DB Name      Instance     Host
----------- -------- ------------ ------------ ------------
1858440386        1 AAA          aaa          6979580041BD
                                               490

Using 1858440386 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
------------ ------------ --------- ----------------- ----- -------------
aaa          AAA                  1 14 4月  2010 09:5     5
                                    2
                                  2 14 4月  2010 09:5     5
                                    3
                                  3 14 4月  2010 11:0     5
                                    0



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:\myreport.txtSql代码 
1....回车 

...回车



8.完成后,会产生一个分析报告(d:\myreport.txt)。

附件:报告的截取片段:

Sql代码 
STATSPACK report for

Database    DB Id    Instance     Inst Num Startup Time    Release     RAC
~~~~~~~~ ----------- ------------ -------- --------------- ----------- ---
          1858440386 aaa                 1 14-4月 -10 09:2 10.2.0.1.0  NO
                                           2

Host  Name:   6979580041BD490  Num CPUs:    2        Phys Memory (MB):    3,326
~~~~

Snapshot       Snap Id     Snap Time      Sessions Curs/Sess Comment
~~~~~~~~    ---------- ------------------ -------- --------- -------------------
Begin Snap:          1 14-4月 -10 09:52:22      15       4.3
  End Snap:          2 14-4月 -10 09:53:20      15       5.8
   Elapsed:                0.97 (mins)

Cache Sizes                       Begin        End
~~~~~~~~~~~                  ---------- ----------
               Buffer Cache:       184M             Std Block Size:         8K
           Shared Pool Size:       380M                 Log Buffer:     6,860K

Load Profile                            Per Second       Per Transaction
~~~~~~~~~~~~                       ---------------       ---------------
                  Redo size:             10,075.66            584,388.00
              Logical reads:                 58.41              3,388.00
              Block changes:                 18.81              1,091.00
             Physical reads:                  0.22                 13.00
            Physical writes:                  0.00                  0.00
                 User calls:                  0.52                 30.00
                     Parses:                  2.83                164.00
                Hard parses:                  0.72                 42.00
                      Sorts:                  1.76                102.00
                     Logons:                  0.02                  1.00
                   Executes:                 10.88                631.00
               Transactions:                  0.02

  % Blocks changed per Read:   32.20    Recursive Call %:    99.69
Rollback per transaction %:    0.00       Rows per Sort:    70.69

Instance Efficiency Percentages
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            Buffer Nowait %:  100.00       Redo NoWait %:  100.00
            Buffer  Hit   %:   99.62    In-memory Sort %:  100.00
            Library Hit   %:   90.06        Soft Parse %:   74.39
         Execute to Parse %:   74.01         Latch Hit %:  100.00
Parse CPU to Parse Elapsd %:   14.29     % Non-Parse CPU:   98.41

Shared Pool Statistics        Begin   End
                               ------  ------
             Memory Usage %:   21.05   20.98
    % SQL with executions>1:   54.05   60.06
  % Memory for SQL w/exec>1:   80.51   83.00

Top 5 Timed Events                                                    Avg %Total
~~~~~~~~~~~~~~~~~~                                                   wait   Call
Event                                            Waits    Time (s)   (ms)   Time
----------------------------------------- ------------ ----------- ------ ------
CPU time                                                         1          70.7
control file sequential read                       189           0      1   23.6
db file sequential read                              8           0      3    2.5
control file parallel write                         27           0      1    1.9
log file sync                                        1           0      5     .6

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

9.若想删除某个快照,制定snapid直接delete

Sql代码 

delete stats$snapshot where snap_id=1;

若想删除所有快照 ,只保留statspack结构,执行@sptrunc。脚本路径也在rdbms/admin下。若想连statspack一起干掉,也可以,请执行下面的脚本:@spdrop




从此你也可以利用statspack来了解当前数据库的运行状况了。
分享到:
评论

相关推荐

    oracle statspack安装配置

    Oracle Statspack是一个强大的数据库性能分析工具,它为DBA提供了深入洞察Oracle数据库性能的能力。Statspack可以帮助用户收集和分析数据库的运行状况,从而快速定位性能问题,并为优化提供依据。以下将详细介绍...

    statspack安装与分析

    Statspack是Oracle数据库中的一种性能分析工具,它可以帮助DBA(数据库管理员)快速识别系统性能瓶颈,从而进行相应的优化工作。在本篇文章中,我们将详细探讨如何安装Statspack以及如何利用它来进行性能分析。 首先...

    STATSPACK数据分析

    STATSPACK是Oracle数据库系统中的一种性能分析工具,主要用于收集和分析数据库的运行统计信息,帮助DBA(数据库管理员)诊断性能问题、优化查询效率以及规划数据库资源的使用。STATSPACK报告是其核心功能之一,它...

    Statspack分析报告详解

    Statspack是Oracle数据库中的一种性能分析工具,它用于收集数据库的统计信息,帮助DBA(数据库管理员)识别和解决性能问题。本篇文章将深入探讨如何分析和生成Statspack报告,以及如何利用这些报告来定位并解决性能...

    Oracle STATSPACK高性能调整

    Oracle STATSPACK是一种强大的性能分析工具,主要用于诊断和优化Oracle数据库的运行效率。它提供了详细的统计信息,帮助DBA(数据库管理员)理解数据库的工作负载,识别性能瓶颈,并采取相应的调整措施,以实现高...

    oracle中的高级运用statspack

    Oracle中的Statspack是一种强大的性能分析工具,尤其在大型企业如电信运营商的BSS(Business Support Systems)系统中,它在BOSS(Business Operation Support Systems)开发中扮演着至关重要的角色。Statspack是...

    Oracle9i STATSPACK 高性能调整

    Oracle9i STATSPACK 是一个强大的性能分析工具,专为Oracle数据库系统提供高效能的调优支持。在Oracle 9i版本中,STATSPACK扮演了至关重要的角色,帮助DBAs(数据库管理员)识别和解决性能瓶颈,确保系统的稳定运行...

    详解oracle9i Statspack安装&使用

    Oracle 9i Statspack 是一个强大的性能分析工具,它提供了对数据库性能的深入洞察,帮助DBA们诊断和优化数据库的运行效率。Statspack 的安装和使用是数据库管理中的重要环节,尤其对于监控和问题排查至关重要。以下...

    session级别的statspack

    在Oracle数据库管理中,Statspack是一个强大的性能分析工具,它为DBAs提供了深入的数据库性能监控和诊断功能。"session级别的statspack"指的是利用Statspack来收集特定会话(session)的性能数据,这对于理解单个...

    如何解读oracle_statspack 报告

    Oracle StatsPack 是Oracle数据库系统中一个强大的性能分析工具,它为DBA提供了详细的数据库性能统计数据,帮助诊断和优化系统的性能问题。StatsPack 报告包含了丰富的信息,可以帮助我们理解数据库的运行状态,找出...

    细化解析oracle 10g statspack

    ### 细化解析Oracle 10g Statspack #### 引言 随着Oracle数据库技术的不断进步和发展,Statspack作为一款历史悠久的性能监控工具,在Oracle 10g中仍然扮演着重要的角色。尽管Oracle 10g引入了诸如自动工作负荷存储...

    oracle+statspack+高性能调整技术

    Oracle Statspack是Oracle数据库系统中一个强大的性能分析工具,它为数据库管理员提供了深入的性能监控和诊断能力。本文将详细探讨Oracle Statspack的使用、功能以及如何利用它进行高性能数据库调整。 首先,Oracle...

    Oracle STATSPACK高性能调整技术

    Oracle STATSPACK是一种强大的性能分析工具,主要用于诊断和优化Oracle数据库的运行效率。它由Oracle在9i版本中引入,后来在10g及更高版本中被Automatic Workload Repository (AWR)所取代,但即便如此,STATSPACK...

    statspack安装

    Statspack 安装 Statspack 是 Oracle 提供的一个性能分析工具,用于收集和分析数据库性能数据。下面是 Statspack 安装的详细步骤和相应的知识点。 一、准备 1. 检查部分参数值:在安装 Statspack 之前,需要检查...

    statspack下载

    知识点:Statspack在Oracle数据库中的应用与优势 一、Statspack概述 Statspack是Oracle数据库提供的一款性能监控和调优工具,它通过收集系统运行时的统计信息,帮助数据库管理员(DBA)诊断和解决数据库性能问题。...

    Oracle High-Performance Tuning with STATSPACK 中文版

    Oracle High-Performance Tuning with STATSPACK 是一本专注于优化Oracle数据库性能的专业书籍,中文版的出现使得更多中国用户能够理解并应用这些优化技巧。STATSPACK是Oracle数据库早期的一个性能分析工具,它提供...

    oracle statspack

    ### Oracle Statspack详解 #### 一、Statspack简介 Statspack是Oracle自8.1.6版本开始提供的一款性能诊断工具,在8.1.7版本得到了进一步增强。尽管该工具随Oracle 8.1.6一同发布,但通过特定脚本可以使其在运行...

    STATSPACK 报告详细分析

    STATSPACK 报告是Oracle数据库性能分析的重要工具,它能提供关于数据库活动的详细信息,帮助管理员识别性能瓶颈和优化数据库配置。本篇文章将深入探讨STATSPACK报告的几个关键方面,包括报表头信息、实例负载档信息...

    详细解读 STATSPACK 报告.doc

    STATSPACK 报告是 Oracle 数据库性能分析的重要工具,它提供了一种全面了解数据库运行状态的方法。在本文中,我们将深入探讨 STATSPACK 报告的各项内容,帮助你更好地理解并利用这些信息来优化数据库性能。 1、报表...

    ORACLE STATSPACK

    ### ORACLE STATSPACK:深入理解与应用 #### 一、概述 Statspack是一款功能强大的性能分析工具,它由Oracle官方提供,免费且内置在Oracle数据库中。通过使用Statspack,DBA(数据库管理员)可以收集数据库运行时的...

Global site tag (gtag.js) - Google Analytics