Oracle 性能优化(1)

一、性能优化的一般流程

1.监控:监控当前活动,最近活动,长期的历史活动,计划活动,系统统计,系统改变等。

2.识别:资源消耗,主要的资源消耗,sql执行时间,问题发生时活跃的资源消耗。

3.分析:完整的产品环境,发现潜在的瓶颈,对象定义和依赖,通过和未通过的对象,对象是如何被访问的,用于访问给定对象的SQL语句。

4.优化:系统参数,数据库参数,I/O利用率,sql语句语法,sql访问路径,对象设计,应用模型。

5.测试和证明:实施前的建议,客户证明,更改对访问路径和响应时间的影响,实施结果。

二、性能优化的方法

1.应用分析:通过对应用中的sql语句及算法的分析解决性能问题

2.命中率分析:传统的分析方法,无法明确反映出系统的实际情况

3.wait事件分析:可以针对性的解决性能问题

三、问题系统的主要症状

1.关键业务受到了影响

2.系统刚刚做过调整(比如升级等)

3.系统整体性能不佳

4.存在突发的负载增加

5.某项系统资源存在瓶颈

四、监控

1.当前状态

2.近期状态

3.历史状态

4.系统特性:负载、资源、应用特性

5.系统变化和节奏

五、识别

1.系统资源消耗情况

2.主要资源瓶颈

3.主要等待事件

4.TOP SQL

六、分析

1.分析生产环境的整体情况

2.发现系统存在的瓶颈

3.主要等待事件产生的原因

4.如何降低TOP SQL的开销

七、优化

1.调整OS性能

2.调整IO性能

3.调整数据库性能

4.调整SQL语句

5.调整SQL访问方式(表连接,索引等)

6.调整应用系统结构

八、测试和验证

1.资源反馈

2.资源消耗情况的改变

3.响应时间和并发事务数

4.SQL访问路径

九、趋势分析

1.对一定时间内的数据进行分析

2.关注数据变化情况

3.关注变更的频率和节奏

4.峰值

5.发展趋势

十、诊断工具

1.OS诊断:

(1).vmstat:cpu使用情况

(2).sar -d,iostat:IO情况

(3)top/topas:高消耗资源的进程

(4)swapinfo:swap区

2.RDBMS工具

(1).alter log/trace

(2).statspack/awr/addm/ash

(3).OEM PERFORMANCE MANAGER

(4).ORADEBUG

(5).SQL_TRACE、EVENT:10046/10053

(6).ORACLE系统视图:

·vsysstat,vsgastat,v$system_event

·vsession,vsesstat,vsession_event,vsession_wait

3.应用分析

(1)ADDM/AWR/ASH

(2)OEM TOP SQL

(3)OEM TOP SESSION

(4)SQL ANALYZE

(5)ORACLE EXPERT

(6)TKPROF/TRCA

(7)SQLA

十一、小结

案例分析:如果突然CPU使用率100%,应用系统出现大量阻塞,怎么办?

1.检查ALERT LOG 是否有异常

2.通过TOP/TOPAS 检查是否有进程消耗了过多的资源

3.检查操作系统的IO,SWAP等情况是否有异常

4.检查v$SESSION_WAIT主要等待事件是什么

5.检查V$SESSION中ACTIVE会话的数量

6.检查V$SESSION中ACTIVE会话正在执行的SQL情况

7.检查SQL的情况

8.询问开发人员,确定昨晚做了表分析

9.定位故障原因,通过重新分析相关表和索引解决问题

相关推荐
全栈前端老曹4 分钟前
【MongoDB】深入研究副本集与高可用性——Replica Set 架构、故障转移、读写分离
前端·javascript·数据库·mongodb·架构·nosql·副本集
R1nG8637 分钟前
CANN资源泄漏检测工具源码深度解读 实战设备内存泄漏排查
数据库·算法·cann
阿钱真强道23 分钟前
12 JetLinks MQTT直连设备事件上报实战(继电器场景)
linux·服务器·网络·数据库·网络协议
逍遥德1 小时前
Sring事务详解之02.如何使用编程式事务?
java·服务器·数据库·后端·sql·spring
笨蛋不要掉眼泪1 小时前
Redis哨兵机制全解析:原理、配置与实战故障转移演示
java·数据库·redis·缓存·bootstrap
Coder_Boy_1 小时前
基于SpringAI的在线考试系统-整体架构优化设计方案
java·数据库·人工智能·spring boot·架构·ddd
fen_fen10 小时前
Oracle建表语句示例
数据库·oracle
砚边数影11 小时前
数据可视化入门:Matplotlib 基础语法与折线图绘制
数据库·信息可视化·matplotlib·数据可视化·kingbase·数据库平替用金仓·金仓数据库
orange_tt11 小时前
Djiango配置Celery
数据库·sqlite
云小逸12 小时前
【nmap源码学习】 Nmap网络扫描工具深度解析:从基础参数到核心扫描逻辑
网络·数据库·学习