1.背景

1.1.Linux 服务器情况

# cat /etc/issue
Red Hat Enterprise Linux Server release 6.1 (Santiago)
Kernel \r on an \m

1.2.Win7 客户端情况

Win7 旗舰版 sp1,4G内存,双核 CPU 主频 3.0G。

1.3.Oracle 服务器情况

10.2.0,部署在上述 RedHat 上。

2.AWR 报告的生成

2.1.手工刷出快照

默认情况下 Oracle 的快照每一小时生成一次,也就是说 AWR 分析的是一小时以内这一段时间的负载情况。
用这个默认的不够灵活,而且浪费调试时间——我们总不能压一小时才能看结果吧?一般取压力高峰时的两个快照之间的几分钟就可以了。
数据库 DBA 用户登录 SQL shell(或者直接用 Oracle 客户端打开 sql 执行窗,如 SQL Developer),执行以下 sql:
SQL> exec dbms_workload_repository.create_snapshot();
匿名块已完成
隔几分钟后再执行一次,生成俩快照。
这个间隔时间越长约好,越能说明问题。

2.2.以系统 DBA 登录 SQL shell

SSH 登录远程 Oracle 所在 Redhat 主机,依次执行以下命令以登录 SQL shell:
# export ORACLE_HOME=/u01/oracle/product/10.2.0/db_1
# export oracle_sid=defonds
# cd /u01/oracle/product/10.2.0/db_1/bin
# ./sqlplus sys/sysdefonds@defonds as sysdba
SQL>
登录 SQL shell 成功。
注: /u01/oracle/product/10.2.0/db_1/ 是为 Oracle 安装路径。

2.3.生成 AWR 报告

SQL> @/u01/oracle/product/10.2.0/db_1/rdbms/admin/awrrpt.sql
进入 AWR 操作步骤:

Enter value for report_type 输入 html:

我们看当天的, Enter value for num_days 输入 1:

如上图所示,列出的是当天生成的所有快照,可以看到:ID 为 27810 和 27811 的两个是我们刚才手工生成的,我们就用 AWR 采集这两个快照之间的数据了。因此 Enter value for begin_snap 我们输入 27810:

Enter value for end_snap 我们输入 27811:

报告名字我们就用默认的 awrrpt_1_27810_27811.html 即可,直接回车,awr 报告生成:

生成的文件就在 /u01/oracle/product/10.2.0/db_1/bin/ 目录下:

3.AWR报告分析

可以直接跳到 SQL ordered by Elapsed Time 查看 SQL 排行榜:

Elapsed Time (s) CPU Time (s) Executions Elap per Exec (s) % Total DB Time SQL Id SQL Module SQL Text
51,510 9 991 51.98 99.98 8jj6zhxbk0fhm JDBC Thin Client update T_DFON_SINOPAY_STATDAY ...
3 3 948 0.00 0.01 gcmm5zzw0rfdn JDBC Thin Client select count(*) from T_DFON_SI...
2 2 37 0.04 0.00 bv1s464t92bxr Spotlight on Oracle SELECT KSLLTNUM INDX, SUM(NVL(...
1 1 1 1.00 0.00 bc7gjv3ppdtbz sqlplus@psfpsh (TNS V1-V3) BEGIN dbms_workload_repository...
1 1 990 0.00 0.00 77dz3cvdtnsj8 JDBC Thin Client insert into T_DFON_TRADE (TRD_...
1 0 947 0.00 0.00 6z98fw5jsxy8g JDBC Thin Client insert into T_DFON_ORDER (ORD_...
1 1 2,871 0.00 0.00 40cwkqqbjn3z8 JDBC Thin Client select ORD_BILLNO, ORD_PRDCODE...
1 1 36 0.02 0.00 6fmr9b8vxw54j Spotlight on Oracle SELECT event, quest_soo_pkg.ev...
1 1 0   0.00 a23whc5rsjt5a JDBC Thin Client select TRD_BILLNO, ORD_BILLNO,...
1 1 1 0.55 0.00 bunssq950snhf   insert into wrh$_sga_target_ad...

如上表所示,top1 是 T_DFON_SINOPAY_STATDAY 表的修改操作,它占据了 99.98% 的数据库时间;
top2 是针对 T_DFON_SINOPAY_STATDAY 表的一个统计操作。
据此基本可以判定发生了行锁定,导致性能提不上去,Top 5 Timed Events 证实了这一点:

Event Waits Time(s) Avg Wait(ms) % Total Call Time Wait Class
enq: TX - row lock contention 93,526 51,258 548 99.5 Application
CPU time   32   .1  
log file sync 2,846 1 0 .0 Commit
db file sequential read 769 1 2 .0 User I/O
log file parallel write

Oracle AWR 报告的生成和分析相关推荐

  1. Oracle AWR报告详细分析

    Oracle AWR报告详细分析  (文档 ID 1523048.1) AWR 是 Oracle  10g 版本 推出的新特性, 全称叫Automatic Workload Repository-自动 ...

  2. 【性能调优】Oracle AWR报告指标全解析

    [性能调优]Oracle AWR报告指标全解析 啥是AWR? ===================================================================== ...

  3. Oracle AWR报告指标全解析-11011552

    1-5 Top 5 Timed Events Waits : 该等待事件发生的次数, 对于DB CPU此项不可用 Times : 该等待事件消耗的总计时间,单位为秒, 对于DB CPU 而言是前台进程 ...

  4. Oracle AWR报告指标全解析

    1-5 Top 5 Timed Events Waits : 该等待事件发生的次数, 对于DB CPU此项不可用 Times : 该等待事件消耗的总计时间,单位为秒, 对于DB CPU 而言是前台进程 ...

  5. oracle awr报告生成_分享AWR报告的生成和简单分析方法

    生成AWR报告方法: 第一步:数据库压力测试卡开始时:生成第一个快照: Sql>exec dbms_workload_repository.create_snapshot(); 第二步:数据库压 ...

  6. oracle awr报告生成_oracle11g awr报告分析—WORKLOAD REPOSITORY report

    概述 关于生产环境的一份awr报告分析,之前闲着无聊整理了100页,后面拆分下各个模块介绍下怎么看awr报告. 我们在看性能指标的时候,需要知道数据库出现性能问题,一般都在三个地方,io,内存,cpu ...

  7. Oracle AWR报告生成步骤

    1.手工刷出快照 开始压测前执行 SQL> exec dbms_workload_repository.create_snapshot();  结束压测后执行 SQL> exec dbms ...

  8. Oracle AWR报告提取方法

    本文旨在用来指导项目人员自行提取Oracle数据库的AWR报告. 1.当前连接实例的AWR报告提取:@?/rdbms/admin/awrrpt 2.RAC的其他实例AWR报告提取:@?/rdbms/a ...

  9. linux数据库awr报告,手动生成AWR报告

    有时候数据库中为安装EM,无法图形化生成AWR报告,此时需要手工生成AWR报告,Oracle提供了以个sql,可以手工生成AWR报告,首先创建生成报告的目录,这里为/home/oracle/AWR $ ...

最新文章

  1. python抠图_python和opencv实现抠图
  2. [技术文档] 一劳永逸,用USB设备制作多系统引导
  3. 011_JavaScript数据类型
  4. CC2530-Zstack 协议栈MAC层中的mac_rx.c程序解读
  5. 一份数据挖掘入门指南!!!
  6. linux下使用python3_Linux上python3的安装和使用
  7. 数据结构---prim最小生成树
  8. 剑指 Offer 01-----20
  9. 前端学习(2882):实现视图初始化
  10. tensorflow 读取cifar_对tensorflow中cifar-10文档的Read操作详解
  11. 怎样查找某个sp中哪条sql语句存在性能问题。
  12. 多态和C++多态的实现(汇总)
  13. SpringCloud微服务(01):Eureka组件,管理服务注册与发现
  14. C#集成FastDFS断点续传
  15. Un*、IdL分别突变情况下双闭环直流调速系统仿真
  16. Linux内核内存压缩技术
  17. ftp服务器文件保存位置,ftp服务器和文件保存路径
  18. Excel分列小技巧
  19. 手把手教您用虹科MatrikonOPC UA数据平台掌握您所有的UA服务器
  20. ESP8266-NodeMCU驱动TFT-SPI彩屏(驱动芯片ILI9341)- 第一个例程【1】

热门文章

  1. dlib简便下载方法
  2. 学习Pushlet(二):看源码了解pushlet
  3. python clr createinstance_Python System.Byte方法代码示例
  4. CCTV-TIME特别关注:首届医药港国际健康美食文化嘉年华
  5. 家园防线 | 全栈物联网灌溉系统技术指南
  6. 编程用莱布尼茨级数公式计算π值,输入一个小数作为阈值,当最后一项的绝对值小于给定阈值时停止计算并输出得到的π值。...
  7. springboot影视评论小程序毕业设计毕设作品开题报告开题答辩PPT
  8. 使用go pprof进行golang程序内存分析
  9. Linux设备驱动程序第三版源码
  10. AndroidStudio实现拨打电话和发短信(kotlin)