使用SQL从AWR收集数据库性能变化趋势

为了对数据库一段时间的性能情况有个全面了解,显然AWR是一个非常有用的工具,

但很多人只会在数据库有性能问题时才会生成问题时段的awr报告去分析。虽然AWR

中给出的统计数据是一段时间的,对于峰值情况把握不准,但是如果把一段时间的

下列度量值做成统计趋势图,大家对系统的空闲、繁忙、异常时段可以一目了然,

也能从趋势变化中提前发现问题。

1
2
3
4
5
6
7
8
9
10
11
12
METRIC 2012-10-18 2012-10-19 DIFF
 ( % )
HOST_CPU_UTIL 7.4366666667 6.9991666667 6
USER_TXN_PER_SEC 874 639 36.8656065932
LOGFILESYNC_WAIT_MS 3.395 2.6775 21.1340206186
LOGFILESYNC_TOTAL_WAITS 2200393.58333333 1364391.08333333 37.9933165745
REDO_MBPS 1.71 1.2858333333 24.8050682261
PHYWTS_REDO_IOPS 297.2958333333 232.8616666667 21.6734173312
PHYREAD_IOPS 1,001 1,012 -1
PHYREAD_TOT_MBPS 46 44 5
PHYWRITE_TOT_MBPS 9.69 8.4008333333 13.3040935673
PHYWRITE_IOPS 528.375 439.0583333333 16.9040296507

大家可以将AVERAGE 更改为 MAXVAL 了解峰值情况,

可以参考另外SQL,从AWR 中发现异常SQL DIFF AWR TOPSQL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
select max(end_time) time,     
trunc(sum(case metric_name when                 'Host CPU Utilization (%)' then average end),2) Host_CPU_util,
trunc(sum(case metric_name when                          'Current OS Load' then average end),2) OS_LOAD, 
trunc(sum(case metric_name when                    'Database Time Per Sec' then average end),2) Database_Time,
trunc(sum(case metric_name when                 'User Transaction Per Sec' then average end),2) User_Txn_Per_Sec,
trunc(sum(case metric_name when                       'Executions Per Sec' then average end),2) Executions_ptx,
trunc(sum(case metric_name when                    'Response Time Per Txn' then average end),2) Response_Time_ptx,
trunc(sum(case metric_name when                   'Redo Generated Per Sec' then average end)/1024/1024,2) Redo_MBps,
trunc(sum(case metric_name when                      'Redo Writes Per Sec' then average end),2) PhyWts_redo_IOPS,
trunc(sum(case metric_name when  'Physical Read Total IO Requests Per Sec' then average end),2) PhyRead_IOPS,
trunc(sum(case metric_name when 'Physical Write Total IO Requests Per Sec' then average end),2) Phywrite_IOPS,
trunc(sum(case metric_name when       'Physical Write Total Bytes Per Sec' then average end)/1024/1024,2) Phywrite_Tot_MBps,
trunc(sum(case metric_name when      'Physical Read Total Bytes Per Sec' then average end)/1024/1024,2) PhyRead_Tot_MBps,
trunc(sum(case metric_name when                           'Logons Per Sec' then average end),2) Logons_PS,
trunc(sum(case metric_name when                     'User Commits Per Sec' then average end),2) User_Commit_Per_Sec,
trunc(sum(case metric_name when                   'User Rollbacks Per Sec' then average end),2) User_Rollback_Per_Sec,
trunc(sum(case metric_name when                    'Logical Reads Per Txn' then average end),2) Logical_Rds_PTxn,
trunc(sum(case metric_name when                 'Hard Parse Count Per Sec' then average end),2) HardParse_Per_Sec,
trunc(sum(case metric_name when           'Network Traffic Volume Per Sec' then average end/1024/1024),2) Network_Mbps,
trunc(sum(case metric_name when                    'Enqueue Waits Per Sec' then average end),2) Enq_wait_Per_Sec,
trunc(sum(case metric_name when                 'DB Block Changes Per Sec' then average end),2) BLOCK_CHG_Per_Sec,
trunc(sum(case metric_name when                 'Leaf Node Splits Per Sec' then average end),2) Leaf_Node_Splits_ps,
trunc(sum(case metric_name when                          'Process Limit %' then average end),2) Process_Limit,
trunc(sum(case metric_name when                          'Session Limit %' then average end),2) Session_Limit,
trunc(sum(case metric_name when                       'Shared Pool Free %' then average end),2) Shared_Pool_Free_PCT,           
trunc(sum(case metric_name when                   'Buffer Cache Hit Ratio' then average end),2) Buffer_CACHE_HIT_RAT,
trunc(sum(case metric_name when                       'Memory Sorts Ratio' then average end),2) Memory_Sorts_Ratio,
trunc(sum(case metric_name when                'Redo Allocation Hit Ratio' then average end),2) Redo_Allocation_Hit_Rat,
trunc(sum(case metric_name when                  'Library Cache Hit Ratio' then average end),2) Library_Cache_Hit_Rat,
trunc(sum(case metric_name when                         'Soft Parse Ratio' then average end),2) Soft_Parse_Rat,
trunc(sum(case metric_name when                   'Cursor Cache Hit Ratio' then average end),2) Cursor_Cache_Hit_Rat,
trunc(sum(case metric_name when                   'Leaf Node Splits Per Sec' then average end),2) Leaf_Node_Splits
from dba_hist_sysmetric_summary
group by snap_id
order by snap_id;

转 使用SQL从AWR收集数据库性能变化趋势的更多相关文章

  1. 【SQL server初级】数据库性能优化三:程序操作优化

    数据库优化包含以下三部分,数据库自身的优化,数据库表优化,程序操作优化.此文为第三部分 数据库性能优化三:程序操作优化 概述:程序访问优化也可以认为是访问SQL语句的优化,一个好的SQL语句是可以减少 ...

  2. 【SQL server初级】数据库性能优化二:数据库表优化

    数据库优化包含以下三部分,数据库自身的优化,数据库表优化,程序操作优化.此文为第二部分 数据库性能优化二:数据库表优化 优化①:设计规范化表,消除数据冗余 数据库范式是确保数据库结构合理,满足各种查询 ...

  3. 【SQL server初级】数据库性能优化一:数据库自身优化(大数据量)

    数据库优化包含以下三部分,数据库自身的优化,数据库表优化,程序操作优化.此文为第一部分 数据库性能优化一:数据库自身优化 优化①:增加次数据文件,设置文件自动增长(粗略数据分区) 1.1:增加次数据文 ...

  4. 入门级----黑盒测试、白盒测试、手工测试、自动化测试、探索性测试、单元测试、性能测试、数据库性能、压力测试、安全性测试、SQL注入、缓冲区溢出、环境测试

    黑盒测试 黑盒测试把产品软件当成是一个黑箱子,只有出口和入口,测试过程中只要知道往黑盒中输入什么东西,知道黑盒会出来什么结果就可以了,不需要了解黑箱子里面是如果做的. 即测试人员不用费神去理解软件里面 ...

  5. SQL中利用DMV进行数据库性能分析

    相信朋友对SQL Server性能调优相关的知识或多或少都有一些了解.虽然说现在NOSQL相关的技术非常的火热,但是RMDB(关系型数据库)与NOSQL是并存的,并且适用在各种的项目中.在一般的企业级 ...

  6. mysql数据库性能优化(包括SQL,表结构,索引,缓存)

    优化目标减少 IO 次数IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 IO 次数是 SQL 优化中需要第一优先考虑,当 ...

  7. 数据库性能优化:SQL索引

    SQL索引在数据库优化中占有一个非常大的比例, 一个好的索引的设计,可以让你的效率提高几十甚至几百倍,在这里将带你一步步揭开他的神秘面纱. 1.1 什么是索引? SQL索引有两种,聚集索引和非聚集索引 ...

  8. SQL索引一步到位(此文章为“数据库性能优化二:数据库表优化”附属文章之一)

    SQL索引一步到位(此文章为“数据库性能优化二:数据库表优化”附属文章之一) SQL索引在数据库优化中占有一个非常大的比例, 一个好的索引的设计,可以让你的效率提高几十甚至几百倍,在这里将带你一步步揭 ...

  9. 数据库性能优化一:SQL索引一步到位

    SQL索引在数据库优化中占有一个非常大的比例, 一个好的索引的设计,可以让你的效率提高几十甚至几百倍,在这里将带你一步步揭开他的神秘面纱. 1.1 什么是索引? SQL索引有两种,聚集索引和非聚集索引 ...

随机推荐

  1. 《JS权威指南学习总结--第九章 类和模板》

    内容要点: 一. 1.第六章详细介绍了JS对象,每个JS对象都是一个属性集合,相互之间没有任何联系.在JS中也可以定义对象的类,让每个对象都共享某些属性,这种"共享"的特性是非常有 ...

  2. 验证mySqli扩展是否

    <?php// createTime: 2016/9/9 21:57 //验证mySqli扩展是否//phpinfo(); //2.检测扩展是否已经加载//var_dump(extension_ ...

  3. MSSQL记录

    批量添加: DECLARE @GID INT,@UID INT,@Indexs INTSET @GID=1SET @UID=37SET @Indexs=0WHILE @GID<674 --674 ...

  4. Qt4.8.x Linux WebKit依赖库安装

    yum install "pkgconfig(gstreamer-app-0.10)"

  5. [ An Ac a Day ^_^ ] UVALive 2635 Housing Complexes 二分图最大匹配

    快要比赛了 看看原来做过的题 感觉这道题当时做的还是挺费劲的 所以发一下 题意: 一个土豪要建别墅 因为有的地区地方不够大 所以要拆屋子 每个地方的字母就是对应开发商的地盘 没有字母的就是自由土地 一 ...

  6. js 有关字符串的函数 以及一些和字符串有关的知识

    JS自带函数 concat 将两个或多个字符的文本组合起来,返回一个新的字符串. var a = "hello"; var b = ",world"; var ...

  7. linux服务器被攻击处理过程

    开始排查 首先检查日志,以前做过安全运维,所以写过类似于检查命令和工具,开始一一排查. #查看是否为管理员增加或者修改 find / -type f -perm #显示文件中查看是否存在系统以外的文件 ...

  8. javascript动画效果之多物体透明度

    html和css 仅为布局,需要注意的是filter对应的是老版本的ie浏览器透明度,而opacity对应的其他浏览器的透明度 filter: alpha(opacity: 50); opacity: ...

  9. javascript注释规范

    注释在代码编写过程中的重要性,写代码超过半年的就能深深的体会到.没有注释的代码都不是好代码.为了别人学习,同时为了自己以后对代码进行'升级',看看js/javascript代码注释规范与示例.来自:h ...

  10. 通过实例来理解ajax

    点击一个按钮,然后将信息显示到指定的div内. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"& ...