`

Statspack的使用

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

 

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

   

Sql代码 复制代码
  1. C:\Documents and Settings\Administrator>sqlplus / as sysdba   
  2.   
  3. SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 4月 14 10:51:41 2010   
  4.   
  5. Copyright (c) 1982, 2005, Oracle.  All rights reserved.   
  6.   
  7.   
  8. 连接到:   
  9. Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production   
  10. With the Partitioning, OLAP and Data Mining options   
  11.   
  12. sys@AAA>show user;   
  13. USER 为 "SYS"  
  14. sys@AAA>select file_name from dba_data_files;   
  15.   
  16. FILE_NAME   
  17. --------------------------------------------------   
  18. D:\ORACLE\PRODUCT\10.2.0\ORADATA\AAA\USERS01.DBF   
  19. D:\ORACLE\PRODUCT\10.2.0\ORADATA\AAA\SYSAUX01.DBF   
  20. D:\ORACLE\PRODUCT\10.2.0\ORADATA\AAA\UNDOTBS01.DBF   
  21. D:\ORACLE\PRODUCT\10.2.0\ORADATA\AAA\SYSTEM01.DBF   
  22. D:\ORACLE\PRODUCT\10.2.0\ORADATA\AAA\BBB.DBF   
  23. D:\ORACLE\PRODUCT\10.2.0\ORADATA\AAA\PERFSTAT.DBF   
  24.   
  25. 已选择6行。  

 

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

  

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

 

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

  

   

Sql代码 复制代码
  1. sys@AAA> @D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\spcreate.sql   
  2.   
  3. ...................   
  4.   
  5. 输入 perfstat_password 的值:  perfstat   
  6.   
  7. ...   
  8.   
  9. 输入 default_tablespace 的值:  perfstat   
  10. ..........   
  11. ..........   
  12. 输入 temporary_tablespace 的值: temp  
  13. ..........   
  14. ..........  

 

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

  

Sql代码 复制代码
  1. PERFSTAT@AAA> show user;   
  2.   
  3. USER is "PERFSTAT"  

 

 安装完毕!

 

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

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

  

Sql代码 复制代码
  1. perfstat@AAA>select job,schema_user,next_date,interval,what from user_jobs;   
  2.   
  3. 未选定行  

 

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

  

Sql代码 复制代码
  1. perfstat@AAA>variable job number;   
  2. perfstat@AAA>begin  
  3.   2  dbms_job.submit(:job,'statspack.snap;',trunc(sysdate+1/24,'hh24'),'trunc(sysdate+1/24,''hh24'')');   
  4.   3  commit;   
  5.   4  end;   
  6.   5  /   
  7.   
  8. PL/SQL 过程已成功完成。  

 

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

  

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

 

 

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

 

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

   

Sql代码 复制代码
  1. perfstat@AAA>variable job number;   
  2. perfstat@AAA>begin  
  3.   2  dbms_job.submit(:job,'dbms_job.broken(1,true);',trunc(sysdate+1),'null');   
  4.   3  commit;   
  5.   4  end;   
  6.   5  /   
  7.   
  8. PL/SQL 过程已成功完成。  

 

 

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

Sql代码 复制代码
  1. perfstat@AAA>select snap_id,snap_time,startup_time from stats$snapshot;   
  2.   
  3.    SNAP_ID SNAP_TIME      STARTUP_TIME   
  4. ---------- -------------- --------------   
  5.          1 14-4月 -10     14-4月 -10   
  6.          2 14-4月 -10     14-4月 -10  

 

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

Sql代码 复制代码
  1. perfstat@AAA>@D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\spreport.sql   
  2.   
  3. Current Instance   
  4. ~~~~~~~~~~~~~~~~   
  5.    DB Id    DB Name     Inst Num Instance   
  6. ----------- ------------ -------- ------------   
  7.  1858440386 AAA                 1 aaa   
  8.   
  9.   
  10.   
  11. Instances in this Statspack schema  
  12. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  13.   
  14.    DB Id    Inst Num DB Name      Instance     Host   
  15. ----------- -------- ------------ ------------ ------------   
  16.  1858440386        1 AAA          aaa          6979580041BD   
  17.                                                490   
  18.   
  19. Using 1858440386 for database Id   
  20. Using          1 for instance number   
  21.   
  22.   
  23. Specify the number of days of snapshots to choose from  
  24. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  25. Entering the number of days (n) will result in the most recent   
  26. (n) days of snapshots being listed.  Pressing <return> without   
  27. specifying a number lists all completed snapshots.   
  28.   
  29.   
  30.   
  31. Listing all Completed Snapshots   
  32.   
  33.                                                        Snap   
  34. Instance     DB Name        Snap Id   Snap Started    Level Comment   
  35. ------------ ------------ --------- ----------------- ----- -------------   
  36. aaa          AAA                  1 14 4月  2010 09:5     5   
  37.                                     2   
  38.                                   2 14 4月  2010 09:5     5   
  39.                                     3   
  40.                                   3 14 4月  2010 11:0     5   
  41.                                     0   
  42.   
  43.   
  44.   
  45. Specify the Begin and End Snapshot Ids   
  46. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  47. 输入 begin_snap 的值:  1   
  48. Begin Snapshot Id specified: 1   
  49.   
  50. 输入 end_snap 的值:  2   
  51. End   Snapshot Id specified: 2   
  52.   
  53.   
  54.   
  55. Specify the Report Name  
  56. ~~~~~~~~~~~~~~~~~~~~~~~   
  57. The default report file name is sp_1_2.  To use this name,   
  58. press <returnto continue, otherwise enter an alternative.   
  59.   
  60. 输入 report_name 的值:  d:\myreport.txt  
Sql代码 复制代码
  1. ...回车  

 

 

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

附件:报告的截取片段:

Sql代码 复制代码
  1. STATSPACK report for  
  2.   
  3. Database    DB Id    Instance     Inst Num Startup Time    Release     RAC   
  4. ~~~~~~~~ ----------- ------------ -------- --------------- ----------- ---   
  5.           1858440386 aaa                 1 14-4月 -10 09:2 10.2.0.1.0  NO  
  6.                                            2   
  7.   
  8. Host  Name:   6979580041BD490  Num CPUs:    2        Phys Memory (MB):    3,326   
  9. ~~~~   
  10.   
  11. Snapshot       Snap Id     Snap Time      Sessions Curs/Sess Comment   
  12. ~~~~~~~~    ---------- ------------------ -------- --------- -------------------   
  13. Begin Snap:          1 14-4月 -10 09:52:22      15       4.3   
  14.   End Snap:          2 14-4月 -10 09:53:20      15       5.8   
  15.    Elapsed:                0.97 (mins)   
  16.   
  17. Cache Sizes                       Begin        End  
  18. ~~~~~~~~~~~                  ---------- ----------   
  19.                Buffer Cache:       184M             Std Block Size:         8K   
  20.            Shared Pool Size:       380M                 Log Buffer:     6,860K   
  21.   
  22. Load Profile                            Per Second       Per Transaction  
  23. ~~~~~~~~~~~~                       ---------------       ---------------   
  24.                   Redo size:             10,075.66            584,388.00   
  25.               Logical reads:                 58.41              3,388.00   
  26.               Block changes:                 18.81              1,091.00   
  27.              Physical reads:                  0.22                 13.00   
  28.             Physical writes:                  0.00                  0.00   
  29.                  User calls:                  0.52                 30.00   
  30.                      Parses:                  2.83                164.00   
  31.                 Hard parses:                  0.72                 42.00   
  32.                       Sorts:                  1.76                102.00   
  33.                      Logons:                  0.02                  1.00   
  34.                    Executes:                 10.88                631.00   
  35.                Transactions:                  0.02   
  36.   
  37.   % Blocks changed per Read:   32.20    Recursive Call %:    99.69   
  38.  Rollback per transaction %:    0.00       Rows per Sort:    70.69   
  39.   
  40. Instance Efficiency Percentages   
  41. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  42.             Buffer Nowait %:  100.00       Redo NoWait %:  100.00   
  43.             Buffer  Hit   %:   99.62    In-memory Sort %:  100.00   
  44.             Library Hit   %:   90.06        Soft Parse %:   74.39   
  45.          Execute to Parse %:   74.01         Latch Hit %:  100.00   
  46. Parse CPU to Parse Elapsd %:   14.29     % Non-Parse CPU:   98.41   
  47.   
  48.  Shared Pool Statistics        Begin   End  
  49.                                ------  ------   
  50.              Memory Usage %:   21.05   20.98   
  51.     % SQL with executions>1:   54.05   60.06   
  52.   % Memory for SQL w/exec>1:   80.51   83.00   
  53.   
  54. Top 5 Timed Events                                                    Avg %Total   
  55. ~~~~~~~~~~~~~~~~~~                                                   wait   Call   
  56. Event                                            Waits    Time (s)   (ms)   Time  
  57. ----------------------------------------- ------------ ----------- ------ ------   
  58. CPU time                                                         1          70.7   
  59. control file sequential read                       189           0      1   23.6   
  60. db file sequential read                              8           0      3    2.5   
  61. control file parallel write                         27           0      1    1.9   
  62. log file sync                                        1           0      5     .6   
  63.   
  64. .....................   
  65. .........................   
  66. ...........................  

 

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

Sql代码 复制代码
  1. delete stats$snapshot where snap_id=1;  

 

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

 

从此你也可以利用statspack来了解当前数据库的运行状况了。 

分享到:
评论

相关推荐

    statspack使用指南-v2[1].1.pdf

    ### Statspack使用指南详解 #### 引言 Statspack,自Oracle 8.1.6版本引入以来,迅速成为数据库管理员(DBA)和Oracle专家诊断数据库性能问题的强大工具。通过Statspack,用户不仅能够轻松识别Oracle数据库的性能...

    STATSPACK使用指南

    以下是对"STATSPACK使用指南"的详细解读。 1. **STATSPACK的基本概念**:STATSPACK是一个统计收集器,它允许管理员定期或按需收集关于数据库性能的数据,包括SQL执行情况、缓冲区命中率、等待事件等。这些数据可以...

    Statspack使用指南

    ### Statspack使用指南 #### 一、Statspack简介 Statspack是Oracle自Oracle 8.1.6版本开始集成的一款强大的数据库性能诊断工具。通过Statspack,DBA和Oracle专家可以轻松地识别出数据库的性能瓶颈,并记录下数据库...

    Statspack使用手册

    ### Statspack使用手册:Oracle数据库性能诊断利器 #### 引言 Statspack,自Oracle 8.1.6版本引入以来,迅速成为数据库管理员(DBA)及Oracle专家诊断数据库性能的关键工具。它不仅有助于确定Oracle数据库的性能瓶颈...

    oracle性能诊断工具statspack使用指南

    Statspack 的使用涵盖了从创建、收集到解读报告等多个步骤,下面将详细介绍其核心功能和操作流程。 一、Statspack 创建与配置 在使用Statspack 前,需要先进行初始化设置。这通常包括创建统计包表空间、创建...

    session级别的statspack

    在文件“sesspack_0.04”中,可能包含了用于演示或教学的session级别Statspack使用的脚本、示例数据和解释文档。通过对这些资源的学习和实践,你可以更好地理解和掌握如何利用session级别的Statspack来优化Oracle...

    Oracle STATSPACK高性能调整

    7. **培训和文档**:对DBA团队进行STATSPACK使用的培训,确保他们能有效利用工具进行性能优化,并记录每次调整的过程和结果,以便后续参考。 总的来说,Oracle STATSPACK是数据库性能调优的重要工具,通过合理使用...

    statspack(使用指南)-v3[1][1][1].0.pdf

    ### Statspack 使用指南 #### 一、概述 Statspack 是 Oracle 数据库自 Oracle8.1.6 版本起引入的一款强大的性能诊断工具,它帮助数据库管理员 (DBA) 和 Oracle 专家快速定位数据库性能瓶颈,并记录数据库的性能...

    Statspack-v3.0.pdf

    ### Statspack 使用指南 #### 一、Statspack简介与重要性 Statspack 是 Oracle 自 Oracle 8.1.6 版本开始引入的一款强大的数据库性能诊断工具,它可以帮助数据库管理员(DBA)轻松识别和定位数据库性能瓶颈。通过 ...

    statspack完整使用手册

    statspack完整使用指南: 包括: statspack的安装; statspack的自动数据收集; statspack的门限调整; statspack的报表自动产生与邮件发送(aix环境下); statspack的报表详细解析.

    详解oracle9i Statspack安装&使用

    Statspack 的安装和使用是数据库管理中的重要环节,尤其对于监控和问题排查至关重要。以下是关于Oracle 9i Statspack的详细安装和使用步骤: 1. **Statspack的安装** 在安装Statspack之前,你需要以sysdba角色登录...

    statspack安装

    Statspack 安装 Statspack 是 Oracle 提供的一个性能分析工具,用于收集和分析数据库性能数据。...Statspack 是一个功能强大且实用的性能分析工具,通过安装和使用 Statspack,可以提高数据库性能,方便数据库管理。

Global site tag (gtag.js) - Google Analytics