Oracle10g的AWR性能优化工具介绍
2009-08-18 11:16
288 查看
AWR(
Automatic Workload Repository
)
是
Oracle
10g
新提供的收集数据库
统计信息的工具。它主要包括
AWR
内存区
,
历史数据存储文件和
ASH
等部件。
AWR
报告的主要内容包括以下几部分
,
前言部分
:
这是
AWR
报告的第一段
,
用于描述环境包括数据库名
,
数据库版本
,
是否为
RAC
节点
,
快照报告的采集时间等。
综述部分
:
包含等待事件段
,Load Profile
段
,
实例效率统计段
,Shared Pool
统计段
,Cache Size
段
,
其中最重要的是等待事件段
,
它告诉我们在快照时间内数据库遇到哪些性能瓶颈
,
它们将是性能调整或问题诊断的主要候选对象。以下
Top Time Event
数据摘自我的数据库产生的
AWR
报告。
报告显示
”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
提供以下命令可以修改快照收集时间间隔和保存时间。
execute dbms_workload_repository.modify_snapshot_settings(interval => 120,retention => 20160);
上述命令修改快照的收集间隔为
2
小时
,
保存时间为两周。
可以为
AWR
数据创建
baseline,
保存这些数据用于将来分析和比较。具体命令如下,
execute
dbms_workload_repository.create_baseline (start_snap_id =>1,
end_snap_id =>100, baseline_name => 'baseline name', dbid =>
yourdbid);
可以将
AWR
数据导出并迁移到其它数据库以便于以后分析。
Oracle10gRelease2
提供两个新工具来完成导出和迁移。
AWR
数据的工作。
DBMS_SWRF_INTERNAL.AWR_EXTRACT
用来导出数据
,
其使用方法如下
,
Begin
DBMS_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(
也可以自己定义名称
)
,具体方法如下,
begin
DBMS_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
数据的数据库,用于集中管理和分析多个数据库实例的性能统计数据。
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
提供以下命令可以修改快照收集时间间隔和保存时间。
execute dbms_workload_repository.modify_snapshot_settings(interval => 120,retention => 20160);
上述命令修改快照的收集间隔为
2
小时
,
保存时间为两周。
可以为
AWR
数据创建
baseline,
保存这些数据用于将来分析和比较。具体命令如下,
execute
dbms_workload_repository.create_baseline (start_snap_id =>1,
end_snap_id =>100, baseline_name => 'baseline name', dbid =>
yourdbid);
可以将
AWR
数据导出并迁移到其它数据库以便于以后分析。
Oracle10gRelease2
提供两个新工具来完成导出和迁移。
AWR
数据的工作。
DBMS_SWRF_INTERNAL.AWR_EXTRACT
用来导出数据
,
其使用方法如下
,
Begin
DBMS_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(
也可以自己定义名称
)
,具体方法如下,
begin
DBMS_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
数据的数据库,用于集中管理和分析多个数据库实例的性能统计数据。
相关文章推荐
- Oracle10g的AWR性能优化工具介绍
- 创新谈-AWR性能优化工具介绍-刘斌
- Linux进程管理优化及性能评估工具介绍 推荐
- Android性能优化之Systrace工具介绍(一)
- Cocos开发中性能优化工具介绍之使用Windows任务管理器
- Cocos开发中性能优化工具介绍之Visual Studio内存泄漏检测工具Visual Leak Detector
- [Oracle] - 性能优化工具(1) - AWR
- 在线的图片、js、css压缩优化工具介绍(配合小强视频 前端性能分析精要)
- The Python Profilers (python性能优化工具介绍)
- Cocos开发中性能优化工具介绍之使用Windows任务管理器
- [Oracle] - 性能优化工具(1) - AWR
- Android系统性能优化工具介绍
- golang 程序性能优化工具介绍
- Android性能优化之Systrace工具介绍(一) _&& Systrace生成的trace.html打开空白或者打不开的解决办法
- The Python Profilers (python性能优化工具介绍)
- Cocos开发中性能优化工具介绍之Xcode中Instruments工具使用
- Android性能优化的工具介绍
- Cocos开发中性能优化工具介绍之使用Windows任务管理器
- Cocos开发中性能优化工具介绍之Xcode中Instruments工具使用
- Cocos开发中性能优化工具介绍之Visual Studio内存泄漏检测工具——Visual Leak Detector