Automatic Workload Repository(AWR)是10g引入的一个重要组件。在里面存贮着近期一段时间内(默认是7天)数据库活动状态的详细信息。
1、生成awr报告
以oracle用户登录
sqlplus / as sysdba
@?/rdbms/admin/awrrpt.sql
2、分析报告
SQL ordered by Elapsed Time
- Resources reported for PL/SQL code includes the resources used by all SQL statements called by the code.
- % Total DB Time is the Elapsed Time of the SQL statement divided into the Total Database Time multiplied by 100
Elapsed Time (s) | CPU Time (s) | Executions | Elap per Exec (s) | % Total DB Time | SQL Id | SQL Module | SQL Text |
---|
Elapsed Time(S) : SQL 语句执行用总时长,此排序就是按照这个字段进行的。注意该时间不是单个SQL 跑的时间,而是监控范围内SQL 执行次数的总和时间。单位时间为秒。Elapsed Time = CPU Time + Wait Time
CPU Time(s) : 为SQL 语句执行时CPU 占用时间总时长,此时间会小于等于Elapsed Time 时间。单位时间为秒。
Executions : SQL 语句在监控范围内的执行次数总计。
Elap per Exec(s): 执行一次SQL 的平均时间。单位时间为秒。
% Total DB Time : 为SQL 的Elapsed Time 时间占数据库总时间的百分比。
SQL ID: SQL 语句的ID 编号,点击之后就能导航到下边的SQL 详细列表中,点击IE 的返回可以回到当前SQL ID 的地方。
SQL Module : 显示该SQL 是用什么方式连接到数据库执行的,如果是用SQL*Plus 或者PL/SQL 链接上来的那基本上都是有人在调试程序。一般用前台应用链接过来执行的sql 该位置为空。
SQL Text: 简单的sql 提示,详细的需要点击SQL ID 。
SQL ordered by CPU Time
- Resources reported for PL/SQL code includes the resources used by all SQL statements called by the code.
- % Total DB Time is the Elapsed Time of the SQL statement divided into the Total Database Time multiplied by 100
CPU Time (s) | Elapsed Time (s) | Executions | CPU per Exec (s) | % Total DB Time | SQL Id | SQL Module | SQL Text |
---|
记录了执行占CPU 时间总和时间最长的TOP SQL( 注意是监控范围内该SQL 的执行占CPU 时间总和,而不是单次SQL 执行时间) 。
SQL ordered by Gets
- Resources reported for PL/SQL code includes the resources used by all SQL statements called by the code.
- Total Buffer Gets: 964,486
- Captured SQL account for 103.6% of Total
Buffer Gets | Executions | Gets per Exec | %Total | CPU Time (s) | Elapsed Time (s) | SQL Id | SQL Module | SQL Text |
---|
记录了执行占总buffer gets( 逻辑IO ) 的TOP SQL( 注意是监控范围内该SQL 的执行占Gets 总和,而不是单次SQL 执行所占的Gets).
SQL ordered by Reads
- Total Disk Reads: 5,606
- Captured SQL account for 168.4% of Total
Physical Reads | Executions | Reads per Exec | %Total | CPU Time (s) | Elapsed Time (s) | SQL Id | SQL Module | SQL Text |
---|
记录了执行占总磁盘物理读( 物理IO ) 的TOP SQL( 请注意是监控范围内该SQL 的执行占磁盘物理读总和,而不是单次SQL 执行所占的磁盘物理读) 。
SQL ordered by Executions
- Total Executions: 20,124
- Captured SQL account for 59.3% of Total
Executions | Rows Processed | Rows per Exec | CPU per Exec (s) | Elap per Exec (s) | SQL Id | SQL Module | SQL Text |
---|
记录了按照SQL 的执行次数 排序的TOP SQL 。该排序可以看出监控范围内的SQL 执行次数。
SQL ordered by Parse Calls
- Total Parse Calls: 14,635
- Captured SQL account for 69.0% of Total
Parse Calls | Executions | % Total Parses | SQL Id | SQL Module | SQL Text |
---|
记录了SQL 的软解析次数 的TOP SQL 。
SQL ordered by Sharable Memory
- Only Statements with Sharable Memory greater than 1048576 are displayed
Sharable Mem (b) | Executions | % Total | SQL Id | SQL Module | SQL Text |
---|
记录了SQL 占用library cache 的大小 的TOP SQL 。
Sharable Mem (b) : 占用 library cache 的大小。单位是byte 。
SQL ordered by Version Count
- Only Statements with Version Count greater than 20 are displayed
Version Count | Executions | SQL Id | SQL Module | SQL Text |
---|
记录了SQL 的打开子游标 的TOP SQL 。