教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 基础教育 >

Oracle - AWR - 教你如何看 - 图文

来源:网络收集 时间:2026-03-28
导读: /u01/ora10g/db_1/rdbms/admin 可直接执行1-2.1-3即可 1.查看当前的AWR保存策略 select * from dba_hist_wr_control; DBID,SNAP_INTERVAL,RETENTION,TOPNSQL 860524039,+00 01:00:00.000000,+07 00:00:00.000000,DEFAULT 以上结果表示,每小时产生一个SNAPSHO

/u01/ora10g/db_1/rdbms/admin 可直接执行1-2.1-3即可 1.查看当前的AWR保存策略

select * from dba_hist_wr_control; DBID,SNAP_INTERVAL,RETENTION,TOPNSQL

860524039,+00 01:00:00.000000,+07 00:00:00.000000,DEFAULT 以上结果表示,每小时产生一个SNAPSHOT,保留7天 2.调整AWR配置

AWR配置都是通过dbms_workload_repository包进行配置

2.1调整AWR产生snapshot的频率和保留策略,如:如将收集间隔时间改为30 分钟一次。并且保留5天时间(注:单位都是为分钟):

exec dbms_workload_repository.modify_snapshot_settings(interval=>30, retention=>5*24*60);

2.2关闭AWR,把interval设为0则关闭自动捕捉快照 2.3手工创建一个快照

exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT (); 2.4 查看快照

select * from sys.wrh$_active_session_history 2.5手工删除指定范围的快照 exec WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE(low_snap_id => 22, high_snap_id => 32, dbid => 3310949047); 2.6创建baseline

exec dbms_workload_repository.create_baseline (56,59,'apply_interest_1') 2.7删除baseline exec DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE(baseline_name => ' apply_interest_1', cascade => FALSE);

3.生产AWR报告

$ORACLE_HOME/rdbms/admin/awrrpt.sql WORKLOAD REPOSITORY report for DB Name ICCI DB Id Instance Inst num Release 1 10.2.0.3.0 RAC YES Host HPGICCI1 1314098396 ICCI1 Begin Snap: End Snap: Elapsed: DB Time: Snap Id 2678 2680 Snap Time 25-Dec-08 14:04:50 25-Dec-08 15:23:37 78.79 (mins) 11.05 (mins) Sessions 24 26 Cursors/Session 1.5 1.5 DB Time不包括Oracle后台进程消耗的时间。如果DB Time远远小于Elapsed时间,说明数据库比较空闲。 在79分钟里(其间收集了3次快照数据),数据库耗时11分钟,RDA数据中显示系统有8个逻辑CPU(4个物理CPU),平均每个CPU耗时1.4分钟,CPU利用率只有大约2%(1.4/79)。说明系统压力非常小。 可是对于批量系统,数据库的工作负载总是集中在一段时间内。如果快照周期不在这一段时间内,或者快照周期跨度太长而包含了大量的数据库空闲时间,所

得出的分析结果是没有意义的。这也说明选择分析时间段很关键,要选择能够代表性能问题的时间段。 Report Summary Cache Sizes

Buffer Cache: Shared Pool Size: Begin 3,344M 704M End 704M Log Buffer: 8K 14,352K 3,344M Std Block Size: 显示SGA中每个区域的大小(在AMM改变它们之后),可用来与初始参数值比较。

shared pool主要包括library cache和dictionary cache。library cache用来存储最近解析(或编译)后SQL、PL/SQL和Java classes等。library cache用来存储最近引用的数据字典。发生在library cache或dictionary cache的cache miss代价要比发生在buffer cache的代价高得多。因此shared pool的设置要确保最近使用的数据都能被cache。

Load Profile

Redo size: Logical reads: Block changes: Per Second 918,805.72 3,521.77 1,817.95 Per Transaction 775,912.72 2,974.06 1,535.22 Physical reads: Physical writes: User calls: Parses: Hard parses: Sorts: Logons: Executes: Transactions: % Blocks changed per Read: Rollback per transaction %: 68.26 362.59 326.69 38.66 0.03 0.61 0.01 354.34 1.18 51.62 Recursive Call %: 85.49 Rows per Sort: 57.64 306.20 275.88 32.65 0.03 0.51 0.01 299.23 51.72 ######## 显示数据库负载概况,将之与基线数据比较才具有更多的意义,如果每秒或每事务的负载变化不大,说明应用运行比较稳定。单个的报告数据只说明应用的负载情况,绝大多数据并没有一个所谓“正确”的值,然而Logons大于每秒1~2个、Hard parses大于每秒100、全部parses超过每秒300表明可能有争用问题。 Redo size:每秒/每事务产生的redo大小(单位字节),可标志数据库任务的繁重程序。

Logical reads:每秒/每事务逻辑读的块数 Block changes:每秒/每事务修改的块数 Physical reads:每秒/每事务物理读的块数 Physical writes:每秒/每事务物理写的块数 User calls:每秒/每事务用户call次数 Parses:SQL解析的次数

Hard parses:其中硬解析的次数,硬解析太多,说明SQL重用率不高。 Sorts:每秒/每事务的排序次数 Logons:每秒/每事务登录的次数 Executes:每秒/每事务SQL执行次数 Transactions:每秒事务数

Blocks changed per Read:表示逻辑读用于修改数据块的比例 Recursive Call:递归调用占所有操作的比率 Rollback per transaction:每事务的回滚率 Rows per Sort:每次排序的行数 注:

Oracle的硬解析和软解析

提到软解析(soft parse)和硬解析(hard parse),就不能不说一下Oracle对sql的处理过程。当你发出一条sql语句交付Oracle,在执行和获取结果前,Oracle对此sql将进行几个步骤的处理过程: 1、语法检查(syntax check) 检查此sql的拼写是否语法。 2、语义检查(semantic check)

诸如检查sql语句中的访问对象是否存在及该用户是否具备相应的权限。 3、对sql语句进行解析(parse)

利用内部算法对sql进行解析,生成解析树(parse tree)及执行计划(execution plan)。

4、执行sql,返回结果(execute and return)

其中,软、硬解析就发生在第三个过程里。

Oracle利用内部的hash算法来取得该sql的hash值,然后在library cache里查找是否存在该hash值;

假设存在,则将此sql与cache中的进行比较;

假设“相同”,就将利用已有的解析树与执行计划,而省略了优化器的相关工作。这也就是软解析的过程。 诚然,如果上面的2个假设中任有一个不成立,那么优化器都将进行创建解析树、生成执行计划的动作。这个过程就叫硬解析。

创建解析树、生成执行计划对于sql的执行来说是开销昂贵的动作,所以,应当极力避免硬解析,尽量使用软解析。

Instance Efficiency Percentages (Target 100%)

Buffer Nowait %: Buffer Hit %: Library Hit %: Execute to Parse %: Parse CPU to Parse Elapsd %: 100.00 Redo NoWait %: 98.72 In-memory Sort %: 99.97 Soft Parse %: 89.09 Latch Hit %: 7.99 % Non-Parse CPU: 100.00 99.86 99.92 99.99 99.95 本节包含了Oracle关键指标的内存命中率及其它数据库实例操作的效率。其中Buffer Hit Ratio 也称Cache Hit Ratio,Library Hit ratio也称Library Cache Hit ratio。同Load Profile一节相同,这一节也没有所谓“正确”的值,而只能根据应用的特点判断是否合适。在一个使用直接读执行大型并行查询的DSS环境,20%的Buffer Hit Ratio是可以接受的,而这个值对于一个OLTP系统是完全不能接受的。根据Oracle的经验,对于OLTPT系统,Buffer Hit Ratio理想应该在90%以上。

Buffer Nowait表示在内存获得数据的未等待比例。 buffer hit表示进程从内存中找到数据块的比率,监视这个值是否发生重大变化比这个值本身更重要。对于一般的OLTP系统,如果此值低于80%,应该给数据库分配更多的内存。

Redo NoWait表示在LOG缓冲 …… 此处隐藏:4663字,全部文档内容请下载后查看。喜欢就下载吧 ……

Oracle - AWR - 教你如何看 - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/566102.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)