oracle performance tuning性能优化学习系列(五)

oracle性能优化学习系列(五)
awr概述
1,如配置statistics_level=typical or all,自动启用awr
2,如配置为basic,使用dbms_workload_repository手工收集;但可能收集的统计信息不全;
3,awr收集统计信息包含:
    1,segment的相关统计
    2,基于各项活动使用情况的时间维度统计;显示在v$sys_time_model and v$sess_time_model
    3,v$sysstat and v$sesstat;
    4,sql语句
    5,ash统计;活动会话的历史统计信息
4,snapshots快照
   1,在采样间隔收集的一系列历史数据;
   2,awr每1小时收集snapshot,并在awr中保持8天;
   3,手工也可以收集snapshot,但一般没必要;
   4,addm会分析比对snapshot以判断性能是否最佳

5,baselines基线
   1,用于和相同时间范围比较的特定时间范围的性能数据;
   2,基线包含于快照内;
   3,快照可从自动化的awr清理进程排除在外;--dbms_workload_repository.drop_baseline自快照删除某个基线
   4,或者永久保存      
  
   5,数据库的几种基线类型:
         1,fixed baselines 固定性的基线
         2,moving window baseline 迁移窗口基线
         3,baseline templates 基线模板
        
         1,fixed baselines 固定性的基线
            即固定的,连续性的过去一个时间范围;指定基线前,一定要仔细分析;此时间范围是否
            为系统最佳性能时间;
         2,moving window baseline 变动的窗口基线
            1,它对应于awr保存期限所有的awr数据;
            2,这个特性重要,适用于数据库使用整个awr保持期的数据比较度量指标的门限值;所以要使用自适应或自调整的门限;
            3,oracle自动默认维护一个系统定义的moving window baseline;
            4,其默认的窗口大小即当前awr的保持时间,8天;
            5,因为moving window baseline依赖于awr retention time,故先要变更它的值;
           
           
         3,baseline templates 基线模板
             1,有2个类型:单一和重复
             2,单一:适用于你预先想采集将来某个时间范围的awr,创建单一的基线模板;
             3,重复:适用于重复运行(时间间隔)的采集任务;比如每周六:
                      新采集会覆盖旧的采集数据
6,Adaptive Thresholds自调整或自适应门限
      1,检测或监控性能问题
      2,根据基线计算出统计信息自动化配置警告和严重警告门限;
      3,每周重计算一次门限
      4,基于不同的工作模式(对于OLTP和批处理)采用不同的门限值
     
      5,自适应门限的2种类型:
                 1,最大比例法:基于moving window baseline的最大统计值,计算其比例;
                 2,重要性级别法:基于moving window baseline配置的百分比;代表观察法处理不合理的程度
                     百分比程度:
                               1,high(.95)--仅5%超过此值
                               2,very high(.99)--仅1%超过此值
                               3,severe(.999)仅1/1000超过此值     
                               4,extreme(.9999)仅1/100000超过此值
                 3,如指定severe or extreme,oracle通过内部计算配置门限值;在一些情况下,oracle
                    不会基于对应的级别创建门限值。
                 4,最大比例法适用于根据高峰时刻负荷的定义大小的系统;
                    当天工作负荷接近或超过之前高峰负荷的门限时,想接到警报;
                    比如:每秒产生的日志可采用这种方法;
                 5,重要性级别法适用于系统正常运作其特性很稳定,而在性能变差时各个特征变动很大;
                    比如:每秒事务响应时间;在正常情况下很不错,但一旦性能变差,其指标值变化很大;
                   
awr空间占用
 1,几个影响的因素
     采样的间隔
     活动会话数量
     历史数据保存期限
    
 2,如果减少awr空间占用,会影响如下组件的发挥功能
     1,addm:automatic database diagnostic monitor
     2,sql tuning advisor
     3,,undo advisor
     4,segment advisor
    
管理awr
1,管理快照
2,管理基线
3,管理基线模板
4,传输awr数据
5,如何使用awr视图
6,产生awr报告
7,产生awr比较报告
8,产生ash报告
9,使用ash报告

1,管理快照
   包括:创建快照
         删除快照
         修改快照
   示例:
   --startup_time即数据库启动时间,采样间隔为1小时,snap_level为快照的级别
   SQL> select snap_id,dbid,to_char(startup_time,'yyyymmdd hh24:mi:ss') as startup_time,to_char(BEGIN_INTERVAL_TIME,'yyyymmdd hh24:mi:ss') as BEGIN_INTERVAL_TIME,to_char(END_INTERVAL_TIME,'yyyymmdd hh24:mi:ss') as END_INTERVAL_TIME,snap_level from dba_hist_snapshot order by BEGIN_INTERVAL_TIME desc;
 
   SNAP_ID       DBID STARTUP_TIME      BEGIN_INTERVAL_TIME END_INTERVAL_TIME SNAP_LEVEL
---------- ---------- ----------------- ------------------- ----------------- ----------
       657 1331266241 20130311 09:56:52 20130311 15:00:07   20130311 16:00:20          1
       656 1331266241 20130311 09:56:52 20130311 14:00:54   20130311 15:00:07          1
       655 1331266241 20130311 09:56:52 20130311 13:00:40   20130311 14:00:54          1
       654 1331266241 20130311 09:56:52 20130311 12:00:26   20130311 13:00:40          1
       653 1331266241 20130311 09:56:52 20130311 11:00:12   20130311 12:00:26          1
       652 1331266241 20130311 09:56:52 20130311 10:08:01   20130311 11:00:12          1
       651 1331266241 20130311 09:56:52 20130311 09:56:52   20130311 10:08:01          1
       650 1331266241 20130310 17:53:20 20130310 21:00:59   20130310 22:00:10          1
       649 1331266241 20130310 17:53:20 20130310 20:00:48   20130310 21:00:59          1
       648 1331266241 20130310 17:53:20 20130310 19:00:37   20130310 20:00:48          1
       647 1331266241 20130310 17:53:20 20130310 18:04:27   20130310 19:00:37          1
       646 1331266241 20130310 17:53:20 20130310 17:53:20   20130310 18:04:27          1
       645 1331266241 20130310 12:13:35 20130310 16:00:52   20130310 17:00:05          1
       644 1331266241 20130310 12:13:35 20130310 15:00:36   20130310 16:00:52          1
       643 1331266241 20130310 12:13:35 20130310 14:00:22   20130310 15:00:36          1
       642 1331266241 20130310 12:13:35 20130310 13:00:09   20130310 14:00:22          1
       641 1331266241 20130310 12:13:35 20130310 12:25:01   20130310 13:00:09          1
       640 1331266241 20130310 12:13:35 20130310 12:13:35   20130310 12:25:01          1
       639 1331266241 20130309 23:37:09 20130310 00:00:17   20130310 01:00:28          1
       638 1331266241 20130309 23:37:09 20130309 23:37:09   20130310 00:00:17          1    
                                                                                              
       --创建快照,                                                                                      
       SQL> exec dbms_workload_repository.create_snapshot();
 
          PL/SQL procedure successfully completed
          
          SQL>eselect snap_id,dbid,to_char(startup_time,'yyyymmdd hh24:mi:ss') as startup_time,to_char(BEGIN_INTERVAL_TIME,'yyyymmdd hh24:mi:ss') as BEGIN_INTERVAL_TIME,to_char(END_INTERVAL_TIME,'yyyymmdd hh24:mi:ss') as END_INTERVAL_TIME,snap_level from dba_hist_snapshot order by BEGIN_INTERVAL_TIME desc;
          
             SNAP_ID       DBID STARTUP_TIME      BEGIN_INTERVAL_TIME END_INTERVAL_TIME SNAP_LEVEL
          ---------- ---------- ----------------- ------------------- ----------------- ----------
                 658 1331266241 20130311 09:56:52 20130311 16:00:20   20130311 16:04:03          1 --注意本行的end_interval_time,此时间间隔不足1 小时,即为手工创建
                 657 1331266241 20130311 09:56:52 20130311 15:00:07   20130311 16:00:20          1        
                
          --手工运行又产生一条快照      
          SQL> exec dbms_workload_repository.create_snapshot();
          
          PL/SQL procedure successfully completed
          
          SQL> select snap_id,dbid,to_char(startup_time,'yyyymmdd hh24:mi:ss') as startup_time,to_char(BEGIN_INTERVAL_TIME,'yyyymmdd hh24:mi:ss') as BEGIN_INTERVAL_TIME,to_char(END_INTERVAL_TIME,'yyyymmdd hh24:mi:ss') as END_INTERVAL_TIME,snap_level from dba_hist_snapshot order by BEGIN_INTERVAL_TIME desc;
          
             SNAP_ID       DBID STARTUP_TIME      BEGIN_INTERVAL_TIME END_INTERVAL_TIME SNAP_LEVEL
          ---------- ---------- ----------------- ------------------- ----------------- ----------
                 659 1331266241 20130311 09:56:52 20130311 16:04:03   20130311 16:06:44          1
                 658 1331266241 20130311 09:56:52 20130311 16:00:20   20130311 16:04:03          1     
                
       --删除快照
       SQL> select snap_id,dbid,to_char(startup_time,'yyyymmdd hh24:mi:ss') as startup_time,to_char(BEGIN_INTERVAL_TIME,'yyyymmdd hh24:mi:ss') as BEGIN_INTERVAL_TIME,to_char(END_INTERVAL_TIME,'yyyymmdd hh24:mi:ss') as END_INTERVAL_TIME,snap_level from dba_hist_snapshot where snap_id in (657,658,659) order by BEGIN_INTERVAL_TIME
            2  ;
          
             SNAP_ID       DBID STARTUP_TIME      BEGIN_INTERVAL_TIME END_INTERVAL_TIME SNAP_LEVEL
          ---------- ---------- ----------------- ------------------- ----------------- ----------
                 657 1331266241 20130311 09:56:52 20130311 15:00:07   20130311 16:00:20          1
                 658 1331266241 20130311 09:56:52 20130311 16:00:20   20130311 16:04:03          1
                 659 1331266241 20130311 09:56:52 20130311 16:04:03   20130311 16:06:44          1
          
          SQL> exec dbms_workload_repository.drop_snapshot_range(low_snap_id => 657,high_snap_id => 659,dbid => 1331266241);
          
          PL/SQL procedure successfully completed
          
          SQL> select snap_id,dbid,to_char(startup_time,'yyyymmdd hh24:mi:ss') as startup_time,to_char(BEGIN_INTERVAL_TIME,'yyyymmdd hh24:mi:ss') as BEGIN_INTERVAL_TIME,to_char(END_INTERVAL_TIME,'yyyymmdd hh24:mi:ss') as END_INTERVAL_TIME,snap_level from dba_hist_snapshot where snap_id in (657,658,659) order by BEGIN_INTERVAL_TIME
            2  ;
          
             SNAP_ID       DBID STARTUP_TIME      BEGIN_INTERVAL_TIME END_INTERVAL_TIME SNAP_LEVEL
          ---------- ---------- ----------------- ------------------- ----------------- ----------
         
          --修改快照
         
          --awr配置信息
          SQL> select * from dba_hist_wr_control;
 
      DBID SNAP_INTERVAL                                                                   RETENTION                                                                       TOPNSQL
---------- ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ----------
1331266241 +00000 01:00:00.0                                                               +00008 00:00:00.0                                                               DEFAULT
           --1,调节interval,retention,top sql参数值
             2,仅影响诊断工具的使用
             3,topsql指定针对每个sql标准(如:花费时间,cpu time,解析次数,占用共享池等)永久存储的最排列sql的数量
             4,配置这些参数仅影响awr sql收集的行为,不会改变统计刷新级别即statistics_level和flush_level
            
             SQL> exec dbms_workload_repository.modify_snapshot_settings(topnsql => 100);
 
          PL/SQL procedure successfully completed
          
          SQL> select * from dba_hist_wr_control;
          
                DBID SNAP_INTERVAL                                                                   RETENTION                                                                       TOPNSQL
          ---------- ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ----------
          1331266241 +00000 01:00:00.0                                                               +00008 00:00:00.0                                                                      100
           SQL> exec dbms_workload_repository.modify_snapshot_settings(topnsql => 'MAXIMUM');
          
          PL/SQL procedure successfully completed

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9240380/viewspace-755752/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9240380/viewspace-755752/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值