Oracle10g的AWR性能优化工具简介
AWR(Automatic Workload Repository)是Oracle 10g新提供的收集数据库统计信息的工具。它主要包括AWR内存区, 历史数据存储文件和ASH等部件。
AWR报告的主要内容包括以下几部分,
前言部分: 这是AWR报告的第一段,用于描述环境包括数据库名,数据库版本,是否为RAC节点, 快照报告的采集时间等。
综述部分: 包含等待事件段,Load Profile段,实例效率统计段,Shared Pool统计段,Cache Size段, 其中最重要的是等待事件段, 它告诉我们在快照时间内数据库遇到哪些性能瓶颈,它们将是性能调整或问题诊断的主要候选对象。以下Top Time Event数据摘自我的数据库产生的AWR报告。
Event | Waits | Time(s) | Avg Wait(ms) | % Total Call Time | Wait Class | ||
CPU time |
| 17,306 |
| 99.6 | |||
db file scattered read | 19,469,037 | 4,448 | 0 | 25.6 | User I/O | ||
log file parallel write | 492,258 | 221 | 0 | 1.3 | System I/O | ||
log file sync | 253,519 | 143 | 1 | .8 | Commit | ||
read by other session | 421,942 | 73 | 0 | .4 | User I/O 报告显示"db file scattered read"是这个快照时间内最重要的等待事件,这种等待是由于会话在等待一个" multiblock IO"的完成, 通常这是由于在大表上执行全表扫描或索引快速扫描引起。接下来可以查看哪些SQL执行这些查询,查询操作集中在哪些表上,检查SQL PLAN看是否使用了索引。 SQL部分:无效的SQL语句是性能不好的主要原因,这部分对这段时间区间内的SQL按照执行时间,逻辑读,磁盘读等指标进行了分类和排序,和STATSPACK不同的是,从AWR报告中可以直接查到该SQL的文本和发送请求的客户端进程信息,极大的提高了SQL分析的效率。 实例活动统计部分:这部分是快照期间,对实例的各个内部模块的活动和各种资源使用情况的统计,主要包括CPU使用情况,SQL*Net消息,链接的行存取和PGA使用情况。 段统计部分:告诉哪些段(包括表和索引)在快照期间经历最高的磁盘读操作,这些信息可以帮助我们决定是否需要重建索引,或对段进行分区来减少发生在这些数据文件上的I/O。 AWR地一些常用操作主要包括: 修改快照的收集和保存时间,创建Baseline,导出并迁移AWR数据。下面介绍一下这些功能使用方法。 默认情况下AWR每隔1小时自动收集一个系统负载快照,并且此快照默认保存一周。但Oracle10g 提供以下命令可以修改快照收集时间间隔和保存时间。
上述命令修改快照的收集间隔为2小时,保存时间为两周。 可以为AWR数据创建baseline, 保存这些数据用于将来分析和比较。具体命令如下,
|
- 浅析SQL Server与Oracle区别(04-22)
- 5条DBA最佳实践指导(04-25)
- Oracle简化Oracle 10g中用户管理(04-29)
- 讲解基于Oracle高性能动态SQL程序开发(04-29)
- 在Linux系统下优化Oracle具体步骤(05-01)
- 如何选择Oracle优化器(04-30)