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。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)