Oracle AWR - 基础知识
Email:liqiang3@sugon.com
目录
【参考文档】:
- https://www.cnblogs.com/fanpl/articles/8657703.html
- https://dbaplus.cn/news-10-734-1.html
- https://docs.oracle.com/database/121/REFRN/GUID-B5CF4362-325D-4F22-9A08-0873FA32A5C0.htm#REFRN30340
1 AWR是什么
AWR全称为Automatic Workload Repository,即自动负载信息库。
AWR使用dbms_workload_repository程序包(工具),周期性地将V$动态性能视图(原料),保存到AWR表中(仓库),并通过对历史性能数据即快照(半成品)的分析,生成AWR报告(成品)。
通过对一段时间开始和结束两个快照的比较,在时间和事务量维度上进行分析,生成报告,反应性能问题。
2 AWR相关概念和工作流程
- MMON进程(工人)维护AWR
- 快照:快照是在特定时间捕获并存储在AWR中的一组性能统计信息。每个快照都用一个快照序列号 (snap_id) 进行标识,该序列号在 AWR 中是唯一的。
- 基线:每条基线对应于一对(且仅对应于一对)快照,基线用于保留快照数据。属于基线的快照在删除基线之前一直保留。
- 工作流程:V$* ->( MMON) -> AWR(DBA_HIST*),MMON进程周期性抓取V$性能视图,整理生成该时刻的性能快照,保存到DBA_HIST*视图对应的数据表中。
3 AWR收集了哪些数据库性能数据
- 性能计数器视图(V$SYSSTAT, V$SESSTAT)
- SQL和优化器指标(V$SQL)
- SESSION类(V$ACTIVE_SESSION_HISTORY)
- OS指标(V$OSSTAT)
- 数据库对象统计类(V$SEGMENT_STATISTICS)
- 等待事件类型(v$system_event)
- 时间指标(V$SESS_TIME_MODEL,V$SESS_TIME_MODEL)
4 AWR报告的构成
- Report Summary
- Cache Sizes (SGA中Data buffer, shared pool, log buffer的大小)
- Load Profile(数据库平均每秒或每个事务的负载情况,可与基线对比,确认繁忙程度)
- Instance Efficiency Percentages(Target 100%) (内存中各项缓存的命中率,显示缓存复用效率。OLAP可接受低命中率,OLTP命中率越高越好)
- Shared Pool Statistics(SQL共享池的统计,共享池总体利用率,执行次数大于1次的SQL占比,和内存使用占比)
- Top 5 Timed Events(最严重的5个等待事件,CPU time不在前5时,说明系统大部分事件都用在等待上了,系统利用率不高或资源争用严重)
- Main Report
- Wait Events Statistics
- SQL Statistics
- Instance Activity Statistics
- IO Stats
- Buffer Pool Statistics
- Advisory Statistics
- Wait Statistics
- Undo Statistics
- Latch Statistics
- Segment Statistics
- Dictionary Cache Statistics
- Library Cache Statistics
- Memory Statistics
- Streams Statistics
- Resource Limit Statistics
- init.ora Parameters
5 AWR报告分析方法
- 基准分析法(和常规情况进行比较)
- 基线分析法(和业务正常是的基线进行比较)
- Wait-SQL分析法(时间花在了哪里,哪些SQL上)
6 时间模型
在分析AWR报告时,需要首先了解报告中,各种时间概念的关系。可以通过V$SESS_TIME_MODEL视图,获取时间模型相关信息。