目 录CONTENT

文章目录

系统卡,数据库慢,oracle性能分析工具使用

gsh456
2024-07-04 / 0 评论 / 2 点赞 / 106 阅读 / 0 字

最近一个客户突然反馈说,系统操作卡和慢,身为一个经验丰富的程序员,排查了下发现,大量的update慢,而且是一个20w的表根据主键更新的,数据库服务器发现大量io写入,这个客户因为一些厂商的原因开启了oracle的归档日志,一天归档日志量差不多有80G,身为一个资深程序员,,,,我不是dba啊,oracle这么庞大而精细的数据库系统,,,,我不会啊。客户天天催领导,实在没办法了,只能我继续硬着头皮上。

1. oracle性能分析工具

oracle 有三个性能分析工具,

awrAutomatic Workload Repository AWR是Oracle 10g中的一个新特性,类似于10g以前的statspack.不过在使用上要比statspack简单,提供的性能指标要比statspack多很多,能更好的帮助DBA来发现数据库的性能瓶颈。

ashActive Session History ASH以V$SESSION为基础,每秒采样一次,记录活动会话等待的事件。不活动的会话不会采样,采样工作由新引入的后台进程MMNL来完成。

addmAutomatic Database Diagnostic Monitor AWR 是Oracle内部的一个顾问系统,能够自动的完成最数据库的一些优化的建议,给出SQL的优化,索引的创建,统计量的收集等建议。

由于本人不是专业dba,只是一个搬砖程序员,于是只能不管有没有用三个全上,然后发现awr和ash报告,有点专业,需要有一定经验能看懂,addm报告才是程序员的需要的东西,它会说出那些sql占用资源多,至于怎么优化 sql都是程序员自己写的肯定能优化。果不其然在addm报告里面找到一个大量update的语句,这个表总量 270w条数据,一天更新量达150w,我TM,,,,谁写的垃圾代码。其实这个问题其实细心点找下每个服务的日志就能看出来,但是服务众多,而且这个服务还是一个小众服务,没往上面想结果,,,,,。

addm生成报告

找一个合适的目录打开 cmd或者命令行

使用sqlplus登录oracle

sqlplus / as sysdba

输入生成报告sql

@?/rdbms/admin/addmrpt.sql
  1. begin_snap 的值

image.png

可以如图,输入起始的时间点 这里输入27966

  1. end_snap的值,这里输入27967

  2. 最后输入 report_name 就是报告文件的名称 这里输入 2024-07-04_8-9-addm

报告位置,生成的日志文件在你执行命令行的文件夹。

image-aeji.png

将LST 后缀改为 html 即可查看报告 ,复制到文本工具,换行整理后,就行了。

awr生成报告

顺便写一下awr报告日志

在一个目录下执行命令

sqlplus / as sysdba
@?/rdbms/admin/awrrpt.sql

  1. 输入报告格式 直接回车,默认是html

  2. 输入天数,就是看下最近几天,这里输入3

  3. 输入开始节点和addm一样

  4. 输入结束节点和addm一样

  5. 输入报告名称

ash报告

@?/rdbms/admin/ashrpt
  1. 输入报告格式 直接回车,默认是html

  2. 输入天数,就是看下最近几天,这里输入1

  3. 输入开始节点和addm一样

  4. 输入结束节点和addm一样

2

评论区