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.定位故障原因,通过重新分析相关表和索引解决问题

相关推荐
2***d88510 小时前
使用 MySQL 从 JSON 字符串提取数据
mysql·oracle·json
小满、10 小时前
MySQL :锁机制、InnoDB 架构与 MVCC 解析
数据库·mysql·innodb·mvcc·锁机制
AI2中文网10 小时前
AppInventor2 使用 SQLite(三)带条件过滤查询表数据
数据库·sql·sqlite·select·app inventor 2·appinventor·tableview
qinyia10 小时前
WisdomSSH如何高效检查服务器状态并生成运维报告
linux·运维·服务器·数据库·人工智能·后端·ssh
I***261511 小时前
智能生成ER图工具。使用 SQL 生成 ER 图:让数据库设计更高效
数据库·sql·oracle
极限实验室11 小时前
INFINI Labs 产品更新 - Coco AI v0.9 与 Easysearch v2.0 全新功能上线,全面支持 GitLab 合并请求(MR)自动
数据库·人工智能·产品
20岁30年经验的码农11 小时前
MongoDB NoSQL 数据库实践文档
数据库·mongodb·nosql
i***118612 小时前
【Sql Server】随机查询一条表记录,并重重温回顾下存储过程的封装和使用
数据库·oracle
2301_7893804916 小时前
vsc中使用DBHub-MCP连接云Mysql到vsc-copilot
数据库·mysql
杨DaB16 小时前
【MySQL】02 数据库的基本操作
数据库·mysql·oracle