云和恩墨 成就所托 www.enmotech.com
1
第一章
数据库执行计划固定变更
1.1
变更前期准备
1. 查找性能变差 SQL 所有执行计划,找出最优的执行计划。
2. 对于性能变差的 SQL,需要立即处理,无需停止相关应用。
1.2
变更实施过程
1.2.1
定位
SQL
执行计划异常过程
a) 检查当前等待事件及异常 sql:
select sql_id,event ,count(*) from v$session where wait_class<>'Idle' group by sql_id,event
order by 3 desc;
对 Idle 的等待事件也不要过滤掉,比如 SQL 开启并行后的等待事件 PX Deq: Execution Msg
等
select sql_id,event ,count(*) from v$session group by sql_id,event order by 3 desc;
通过抓取的 TOP SQL_ID,再 通 过历 史 的单 次 执 行 的 影 响时 间 、物 理 读、逻 辑 读 、返 回 行
数等来初步判断该 SQL_ID 的执行计划是否是最高效的。
抓取 top sql 的办法很多,还可以通过 ash、awr、addm 和 v$类系视图来判断,下面的
一种获取系统等待的 SQL 也可以参考:
select
a.sid, a.username, a.terminal,
a.machine, a.module, a.event,
a.status, b.spid, c.sql_id,
文档被以下合辑收录
评论