服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > 数据库技术 > Oracle技术 > Oracle开发 > 查看文档

细化解析:oracle 10g的统计信息工具awr

awr报告的主要内容包括以下几个部分组成

1.前言 是awr报告的第一段,用于描述环境包括数据库名,数据库版本,是否为rac节点,快照报告的采集时间等。

2.综述 包含等待事件段,load profile段,实例效率统计段,shared pool统计段,cache size段,其中最重要的是等待事件段,它告诉我们在快照时间内数据库遇到哪些性能瓶颈,它们将是性能调整或问题诊断的主要候选对象。以下top time event数据摘自我的数据库产生的awr报告。

报告显示“db file scattered read”是这个快照时间内最重要的等待事件,这种等待是由于会话在等待一个“multiblock io”的完成,通常这是由于在大表上执行全表扫描或索引快速扫描引起。接下来可以查看哪些sql执行这些查询,查询操作集中在哪些表上,检查sql plan看是否使用了索引。

3.sql 无效的sql语句是性能不好的主要原因,这部分对这段时间区间内的sql按照执行时间,逻辑读,磁盘读等指标进行了分类和排序,和statspack不同的是,从awr报告中可以直接查到该sql的文本和发送请求的客户端进程信息,极大的提高了sql分析的效率。

4.实例活动统计 此部分是快照期间,对实例的各个内部模块的活动和各种资源使用情况的统计,主要包括cpu使用情况,sql*net消息,链接的行存取和pga使用情况

5.段统计 告诉哪些段(包括表和索引)在快照期间经历最高的磁盘读操作,这些信息可以帮助我们决定是否需要重建索引,或对段进行分区来减少发生在这些数据文件上的i/o。

awr的一些常用操作主要包括

修改快照的收集和保存时间,创建baseline,导出并迁移awr数据。下面介绍一下这些功能使用方法。

默认情况下,awr每隔1小时自动收集一个系统负载快照,并且此快照默认保存一周。但oracle 10g提供以下命令可以修改快照收集时间间隔和保存时间。

execute dbms_workload_repository.modify_snapshot_settings
(interval => 120,retention => 20160);

以上命令修改快照的收集间隔为2小时,保存时间为两周。

可以为awr数据创建baseline,保存这些数据用于将来分析和比较。具体的命令如下:

上述命令修改快照的收集间隔为2小时,保存时间为两周。

可以为awr数据创建baseline,保存这些数据用于将来分析和比较。具体命令如下:

execute dbms_workload_repository.create_baseline 
(start_snap_id =>1, end_snap_id =>100, 
baseline_name => 'baseline name', dbid => yourdbid);

可以将awr数据导出并迁移到其它数据库以便于以后分析。oracle10g release2提供两个新工具来完成导出和迁移。awr数据的工作。

dbms_swrf_internal.awr_extract用来导出数据,其使用方法如下:

begindbms_swrf_internal.awr_extract 
(dmpfile   => 'awr_data.dmp',dmpdir    => 
'tmp_dir',bid   => 302,eid   => 305);end;

其中,dmpfile参数用于指定将要导出的awr数据文件的名字,dmpdir是指定存放导出文件的目录路径,bid是起始快照编号,eid是结束快照编号。

dbms_swrf_internal用来迁移awr数据文件到其他数据库。导入awr数据的过程分为两个步骤,首先使用dbms_swrf_internal.awr_load方法把数据导入到一个临时模式中,本例是awr_test(也可以自己定义名称),具体方法如下:

begindbms_swrf_internal.awr_load (schname => 
'awr_test',dmpfile => 'awr_data',dmpdir =>  'tmp_dir');end;

下面把需要把awr数据转移到sys模式中,具体操作方法如下:

exec dbms_swrf_internal.move_to_awr (schname => 'test');

至此awr数据的导入工作已经完成,现在就可以使用这种方法建立一个专门存放awr数据的数据库,用于集中管理和分析多个数据库实例的性能统计数据。

扫描关注微信公众号