数据库性能诊断工具——DM7 AWR

时间:2017-10-18 09:09

数据库性能诊断工具——DM7 AWR

  【IT168厂商动态】DM7提供了许多动态视图供DBA分析数据库性能问题,例如:V$BUFFER 缓冲池动态性能表,用来记录除循环使用缓冲池外的缓冲池控制页结构的信息;V$BUFFER_RECYCLE冲池动态性能表,用来记录循环使用缓冲池控制页结构的信息;V$LATCHES显示正在等待的线程信息。通过分析这些动态视图,DBA可以解决一些性能问题,但动态视图的数据时存在内存中,想要通过这样的方式长期监控数据库的性能是不可行的。基于此,DM7提供了一种长期监控数据库性能的方法,AWR(Automatic Workload Repository )。

  AWR(Automatic Workload Repository)是DM7的一个内置工具,它采集与性能相关的统计数据,并从那些统计数据中导出性能量度,以跟踪潜在的问题。它能提供一个时间段内数据库资源使用情况的报告,通过这个报告,我们就可以了解一个系统的整个运行情况,分析性能瓶颈。

  数据库快照是一个只读的静态的数据库。DM7快照功能基于数据库实现,每个快照是基于数据库的只读镜像。通过检索快照,可以获取源数据库在快照创建时间点的相关数据信息。系统为其所有重要统计信息和负载信息执行一次快照,并将这些快照存储在AWR中。用户可以根据需求灵活指定数据库快照生成的频率和保存时间,然后将时间节点内的数据库快照信息生成AWR报告。

  一、生成AWR报告

  用户需要提前调用系统过程SP_CREATE_SYSTEM_PACKAGES,创建管理快照需要的系统包DBMS_WORKLOAD_REPOSITORY。

  SP_CREATE_SYSTEM_PACKAGES(1);

  设置快照自动创建的间隔时间,10分钟

  CALL DBMS_WORKLOAD_REPOSITORY.AWR_SET_INTERVAL(10);

  然后可以等待系统自动创建数据库快照,或者用户在需要分析的时间段前后手动创建数据库快照。快照ID从1开始,依次累加。

  手动创建快照:

  DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();

  查看已创建的所有快照信息,包括快照 id:

  SELECT * FROM SYS.WRM$_SNAPSHOT;

  在快照生成成功后,用户可以使用以下语句指定数据库快照的范围ID,生成AWR报告保存为html格式,以便分析。

  把snapshot 的id 在1~2 范围内的AWR分析报告生成到c盘awr1.html文件。

  SYS.AWR_REPORT_HTML(1,2,'C:\','AWR1.HTML');

  修改snapshot 的间隔时间为30分钟、保留时间为 1 天。

  CALL DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(1440,30);

  还可以删除指定ID的数据库快照,节省磁盘空间。

  删除id 在22~32 之间的snapshot。

  CALL DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE(22,32);

  查询设置后快照参数。

  SELECT * FROM SYS.WRM$_WR_CONTROL;

  清理全部 snapshot 。

  CALL DBMS_WORKLOAD_REPOSITORY.AWR_CLEAR_HISTORY();

  二、解读AWR报告

数据库性能诊断工具——DM7 AWR

  DB Name: 数据库名

  Elapsed: 采样时间段

  DB Time: 用户操作花费的时间,DB Time和Elapsed Time接近说明数据库基本没有空闲,此时需要配合报告中的其他数据确定数据库繁忙的原因。

数据库性能诊断工具——DM7 AWR

  Memory Pool Size: 数据库共享内存池大小,对应dm.ini中的MEMORY_POOL参数。

  Bytes Allocated From OS: 数据库从操作系统中申请的总内存数,一般这个值在服务器总内存的80%~90%较为理想,这样可以把尽可能多的内存分配给数据库服务,让更多的数据库操作在内存中完成,以提供数据库性能。

  Memory Usage %:共享池内存使用率,如果这个值较高,说明共享池中可能存在争用,可以适当调大MEMORY_POOL值。

  Memory for SQL w/exec>1:执行次数大于1的SQL消耗内存的占比。如果此值过高,说明重复执行的SQL语句较多,可以尝试修改dm.ini参数的的执行计划重用和结果集重用参数。如果此值很低,说明完全相同的SQL语句很少,可以根据报告中提供的SQL,分析是否有类似SQL能改成绑定参数的方式执行,已减少SQL解析的时间。

数据库性能诊断工具——DM7 AWR

  DM Server中有四种类型的数据缓冲区,分别是NORMAL、KEEP、FAST 和RECYCLE。其中,用户可以在创建表空间或修改表空间时,指定表空间属于NORMAL或KEEP 缓冲区。RECYCLE 缓冲区供临时表空间使用,FAST 缓冲区根据用户指定的FAST_POOL_PAGES 和FAST_ROLL_PAGES 大小由系统自动进行管理,用户不能指定使用RECYCLE 和FAST 缓冲区的表或表空间。 NORMAL缓冲区主要是提供给系统处理的一些数据页,没有特定指定缓冲区的情况下,默认缓冲区为 NORMAL;KEEP的特性是对缓冲区中的数据页很少或几乎不怎么淘汰出去,主要针对用户的应用是否需要经常处在内存当中,如果是这种情况,可以指定缓冲区为KEEP。

数据库性能诊断工具——DM7 AWR