如何手动生成ASH报告

如何手动生成ASH报告,第1张

AWR( Automatic Workload Repository )报告是对oracle的性能评定以及发现问题SQL语句的重要手段。

AWR报告的原理是基于oracle数据库的定时镜像功能。默认情况下,Oracle数据库后台进程会以一定间隔(一小时)收集系统当前状态镜像,并且保存在数据库中。生成AWR报告时,只需要指定进行分析的时间段(开始镜像编号和结束镜像编号),就可以生成该时间段的性能分析情况。AWR镜像保存在数据库中的时间为一个月左右。

也可以手工生成一个快照:

SQL>dbms_workload_repository.create_snapshot()

手动生成AWR的步骤如下:

1、登录oracle数据库

2、进入你想要生成报告的目录

cd /test

3、进入数据库

sqlplus / as sysdba

4、执行生成语句

sql>@?/dbms/admin/awrrpt.sql

5、输入报告的格式

sql>html 或 text

6、输入AWR快照的查看天数(回车返回所有快照)

sql>10

7、输入起始、结束的snap_id,这里需要注意的是,输入的起始和结束snap_id必须在一个组里(直观的来说就是在2个空行之间),否则会直接报错。

sql>17

sql>18

8、输入报告的名称(回车试用默认名)

另外还有报告ash和addm

awr与ash的最主要的区别在于:awr是平面的,全面的,ash是立体的,更侧重于session的event跟踪,由于业务量大的数据库的event wait是瞬息万变,awr很可能会监控不到,为了弥补这个不足,ash才可以对session的event进行跟踪。

ash与addm的区别在于:addm偶重于基于对当据库当前状态的分析,对存在的问题提供指导性的意见,可以说ash,addm是awr的补充,awr全面地收集数据库的状态,但ash/addm是侧重要对收集的数据进行分析,并提供一些有益的建议。

sql>@?/dbms/admin/addmrpt.sql

今天系统有一个模块的一个功能非常慢,平常速度在1s以内,而现在需要25s之多。

1. 询问开发组最近有没有更新发布,得到的答案是没有;

2. 对数据库做了一个ASH报告,没有性能差的SQL;

3. 用httpwatch跟踪请求,得到有一个url为http://0.0.0.0/的请求化了接近21s,result为ERROR_INTERNET_CANNOT_CONNECT。

在网上找资料ERROR_INTERNET_CANNOT_CONNECT的意思是,The attempt to connect to the server failed,试图连接服务器失败。此时有点凌乱,不知道头绪。然后查到可能是数据在internet上传输的时候出现错误,那么还有一个可能就是网关在建立会话的时候出现问题。

抱着试一试的心情,最终解决了,方法是。修改IE的配置:【工具/Internet选项/连接/局域网设置】中发现代理服务器有勾选,果断去掉,然后重启IE,登录系统,重新点击该功能,非常之快。

总结:由于对网络知识的认识有限,根本的原因没有。揣测这个功能的页面有大量的DWR,这个代理服务器有问题或是网络有限制,造成访问不到,一定要等到超时才访问,因为每次都是21s。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6718831.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存