Skip to content

Oracle SQL 执行计划变更导致性能慢快速分析一例

概述

 

某客户出现应用程序响应慢,前台业务办理困难等情况。通过远程的方式接入数据库进行故障排除

问题及相关日志分析

1. 数据库等待事件分析

进入数据库中查询得到数据库中存在大量的db file sequential read、gc buffer busy acquire、read by other session等待事件和资源争用

EVENT

—————————————————————-

db file sequential read

gc buffer busy acquire

read by other session

2. AWR报告信息分析

由上图得知,在10:00~11:00,节点2总体负载较高。

 

 

 

数据库中出现了较高的IO类等等待事件,在TOP SQL中,SQL ID为a5ab3mmfmppj6的SQL语句占用了较多的资源,

通过对该SQL的有史以来执行计划查看,该SQL共有3个执行计划:

其中1785204928执行计划为最优执行计划。

 

总结与后续处理建议

1. 问题总结

该SQL语句最近发生了执行计划改变,改变的执行计划效率较差,导致SQL语句执行时间、占用资源等都较高。

3. 处理操作

运行coe_xfr_sql_profile.SQL,将SQL ID为a5ab3mmfmppj6的SQL语句绑定1785204928执行计划

4. 后续建议

通过此次的故障,建议对数据库进行深度的全方位优化,涉及内容包括但不限于如下:

序号 内容 描述
1 业务梳理 对各业务的运行时间、持续时长等做相关梳理
2 内核参数优化 对数据库所在服务器内核参数进行优化
3 数据库参数优化 对数据库PFILE/SPFILE/PROFILE等参数进行优化
4 数据库segment优化 对数据库中表、索引等对象进行优化,如碎片整理、HWM处理等。
5 数据库segment结构优化 对数据库中表、索引等结构进行优化,如表结构优化(heap table、partition table)、索引优化(global、local)等