1、生成AWR报告操作步骤1、通过telnet 远程连接到HP小机上2、输入用户名:oracle 密码:cssyj20113、4、执行 awrrpti.sql脚本,report_type: 处 直接敲 回车键。在dbid处输入:DB Id显示的数字3249394952 后,敲回车键在inst_num处输入对应的实例号,截图oracle部署的是RAC集群,因此有2个实例,这里输入:1 ,对应第1个实例。在num_days处输入对应的天数,表示需要统计的天数,下图所示统计最近30天,若想统计所有天数的信息,则无需输入数字,直接敲回车即可。输入30后,敲回车会生成下图所示1长串信息。begin_snap
2、处输入需要统计的 快照(Snap)起始ID,如下图所示21496end_snap处输入需要统计的 快照(Snap)结束ID,如下图所示21504输入完上图所示信息后,直接敲回车键,在report_name:处直接敲回车键后,会开始生成awr报告。生成完毕会输出上图所示的Report written to awrrpt_1_21496_21504.html名称。该AWR报告默认生成在上面执行awrrpti.sql脚本的目录下。该机器已配置好FTP服务,直接通过FTP即可找到该文件,用户名输入:root ,密码:cssyj2011登录进去后,进入到oracle/product/10.2.0/db_
3、1/rdbms/admin/目录下,鼠标右键排列图标,修改时间,找到刚生成的名字叫awrrpt_1_21496_21504.htm的报告。该awr报告用浏览器直接打开进行分析。以下是AWR各部分代表的意思说明:DB NameDB IdInstanceInst numStartup TimeReleaseRACDb10663168021Db10128-5月-12 22:0511.2.0.1.0NOHost NamePlatformCPUsCoresSocketsMemory (GB)PC-200910080511Microsoft Windows IA (32-bit)221.75Snap Id
4、Snap TimeSessionsCursors/SessionBegin Snap:7328-5月-12 22:28:57231.5End Snap:7428-5月-12 23:00:43231.5Elapsed:31.76 (mins)DB Time:0.10 (mins)DB Name:数据库名字DBid:数据库idDB Time不包括Oracle后台进程消耗的时间。如果DB Time远远小于Elapsed时间,说明数据库比较空闲。在31分钟里,数据库耗时0.1分钟,数据中显示系统有2个CPULoad ProfilePer SecondPer TransactionPer ExecPer
5、 CallDB Time(s):0.00.00.000.02DB CPU(s):0.00.00.000.02Redo size:5,896.459,450.5Logical reads:71.9724.7Block changes:41.1414.7Physical reads:2.221.9Physical writes:0.99.2User calls:0.21.8Parses:3.737.6Hard parses:0.32.5W/A MB processed:0.00.2Logons:0.10.6Executes:8.181.7Rollbacks:0.00.0Transactions:0
6、.1Load ProfilePer Second Per Transaction这两部分是数据库资源负载的一个明细列表,分割成每秒钟的资源负载和每个事务的资源负载情况,性能指标的含义如下:redo size:每秒/每个事务 产生的redo量 (单位字节)logical reads:每秒/每个事务 产生的逻辑读的块数block changes:每秒/每个事务 改变的数据块数physical reads:每秒/每个事务 产生的物理读physical writes:每秒/每个事务 产生的物理写的块数user calls:每秒/每个事务 用户的调用次数parses:每秒/每个事务 分析次数hard p
7、arses:每秒/每个事务 硬分析次数sorts:每秒/每个事务 排序次数logons:每秒/每个事务 登录数据库次数executes:每秒/每个事务 SQL的执行次数rollbacks:每秒/每个事物回滚次数transactions: 每秒的事务数Instance Efficiency Percentages (Target 100%)Buffer Nowait %:100.00Redo NoWait %:100.00Buffer Hit %:96.98In-memory Sort %:100.00Library Hit %:90.91Soft Parse %:93.27Execute to
8、 Parse %:53.96Latch Hit %:99.99Parse CPU to Parse Elapsd %:64.26% Non-Parse CPU:67.81Buffer Nowait:表示在内存获得数据的未等待比例。buffer hit:表示进程从内存中找到数据块的比率,内存数据块命中率Redo NoWait:表示在LOG缓冲区获得BUFFER的未等待比例。library hit:表示共享池中SQL解析的命中率Latch Hit:Latch是一种保护内存结构的锁,可以认为是SERVER进程获取访问内存数据结构的许可。Parse CPU to ParseElapsd:解析总时间中消
9、耗总CPU的时间百分比Non-Parse CPU:SQL实际运行时间/(SQL实际运行时间+SQL解析时间),太低表示解析消耗时间过多。Execute to Parse:是语句执行与分析的比例,如果要SQL重用率高,则这个比例会很高。该值越高表示一次解析后被重复执行的次数越多。In-memory Sort:在内存中排序的比率,如果过低说明有大量的排序在临时表空间中进行。考虑调大PGA。Soft Parse:软解析的百分比(softs/softs+hards),近似当作sql在共享区的命中率,太低则需要调整应用使用绑定变量。Shared Pool StatisticsBeginEndMemory
10、 Usage %:84.1883.00% SQL with executions1:74.5476.34% Memory for SQL w/exec1:78.0673.38Memory Usage %:对于一个已经运行一段时间的数据库来说,共享池内存使用率,应该稳定在75%-90%间,如果太小,说明Shared Pool有浪费,而如果高于90,说明共享池中有争用,内存不足。SQL with executions1:执行次数大于1的sql比率,如果此值太小,说明需要在应用中更多使用绑定变量,避免过多SQL解析。Memory for SQL w/exec1:执行次数大于1的SQL消耗内存的占比。
11、Top 5 Timed Foreground EventsEventWaitsTime(s)Avg wait (ms)% DB timeWait ClassDB CPU587.64db file sequential read2581522.30User I/Olibrary cache load lock10871.45Concurrencydb file scattered read17030.85User I/Olog file sync35010.77Commit这是报告概要的最后一节,显示了系统中最严重的5个等待,按所占等待时间的比例倒序列示。当我们调优时,总希望观察到最显著的效果,
12、因此应当从这里入手确定我们下一步做什么。通常,在没有问题的数据库中,CPUtime总是列在第一个SQL StatisticsSQL ordered by Elapsed TimeSQL ordered by CPU TimeSQL ordered by User I/O Wait TimeSQL ordered by GetsSQL ordered by ReadsSQL ordered by Physical Reads (UnOptimized)SQL ordered by ExecutionsSQL ordered by Parse CallsSQL ordered by Sharabl
13、e MemorySQL ordered by Version CountComplete List of SQL Text二、解析报告1.SQL ordered by Elapsed Time:记录了执行总和时间的TOP SQL(请注意是监控范围内该SQL的执行时间总和,而不是单次SQL执行时间Elapsed Time = CPU Time + Wait Time)Elapsed Time(S): SQL语句执行用总时长,此排序就是按照这个字段进行的。注意该时间不是单个SQL跑的时间,而是监控范围内SQL执行次数的总和时间。单位时间为秒。Elapsed Time = CPU Time + Wa
14、it TimeCPU 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
15、链接上来的那基本上都是有人在调试程序。一般用前台应用链接过来执行的sql该位置为空。SQL Text:简单的sql提示,详细的需要点击SQL ID。2. SQL ordered by CPU Time:记录了执行占CPU时间总和时间最长的TOP SQL(请注意是监控范围内该SQL的执行占CPU时间总和,而不是单次SQL执行时间)。3. SQL ordered by Gets:记录了执行占总buffer gets(逻辑IO)的TOP SQL(请注意是监控范围内该SQL的执行占Gets总和,而不是单次SQL执行所占的Gets).4. SQL ordered by Reads:记录了执行占总磁盘物理
16、读(物理IO)的TOP SQL(请注意是监控范围内该SQL的执行占磁盘物理读总和,而不是单次SQL执行所占的磁盘物理读)。5. SQL ordered by Executions:记录了按照SQL的执行次数排序的TOP SQL。该排序可以看出监控范围内的SQL执行次数。6. SQL ordered by Parse Calls:记录了SQL的软解析次数的TOP SQL。7. SQL ordered by Sharable Memory:记录了SQL占用library cache的大小的TOP SQL。Sharable Mem (b):占用library cache的大小。单位是byte。8. SQL ordered by Version Count:记录了SQL的打开子游标的TOP SQL。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1