spm on mysql_使用spm绑定执行计划来在线优化数据库

本文介绍了如何处理SQL执行效率低下的问题,具体步骤包括:踢出低效执行计划,根据客户意见选择高效计划,调整WHERE条件,重新绑定执行计划,并通过查询确认已采用新的绑定执行计划。通过这样的优化,CPU空闲率显著提升。
摘要由CSDN通过智能技术生成

客户的一个

问题出在353205q5fk492语句上。仔细查看这条语句,有两个执行计划。

查看数据库sql使用情况,发现采用了一条效率并不高的执行计划,如下:

Plan hash

所以为了紧急处理这个问题,我们采用如下方法进行处理

1、首先把这个执行计划踢出shared_pool

SQL> exec dbms_shared_pool.purge(‘000000235FFBE9B0,3282783069′,’C’)

2、然后征求客户意见后,采用这个执行计划的语句进行查杀。

3、针对这条语句中where条件进行了重新

经过上面三步处理后,迫使该sql重新

最后后检查新最后采取的执行计划

SQL> select sql_handle,plan_name,origin,enabled,accepted,sql_text from dba_sql_plan_baselines

SQL_HANDLE                     PLAN_NAME                      ORIGIN         ENA ACC SQL_TEXT

—————————— —————————— ————– — — ————————————

SQL_e96f1f0834698c71           SQL_PLAN_fkvsz10u6m33j21b3b9d1 MANUAL-LOAD    YES YES SELECT xxxxxxxxx

Plan hash value: 3566569303

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

| Id  | Operation                    | Name          | Rows  | Bytes | Cost (%CPU)| Time     |

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

|   0 | SELECT STATEMENT             |               |       |       |     1 (100)|          |

|   1 |  COUNT STOPKEY               |               |       |       |            |          |

|   2 |   TABLE ACCESS BY INDEX ROWID| xxxxxxxxx     |     1 |   537 |     1   (0)| 00:00:01 |

|   3 |    INDEX RANGE SCAN          | xxxxxxxxx~id2 |     1 |       |     1   (0)| 00:00:01 |

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

最后检查,发现已经使用绑定的执行计了

SQL> select hash_value, sql_id,child_number,plan_hash_value,executions,round(buffer_gets/executions,0) buffergets_per,SQL_PLAN_BASELINE ,last_load_time,last_active_time from v$sql where sql_id=’353205q5fk492′;

HASH_VALUE SQL_ID        CHILD_NUMBER PLAN_HASH_VALUE EXECUTIONS BUFFERGETS_PER SQL_PLAN_BASELINE              LAST_LOAD_TIME                         LAST_ACTIVE_TIME

———- ————- ———— ————— ———- ————– —————————— ————————————– ——————-

3566569303 353205q5fk492           12      1263503027        284            573 SQL_PLAN_fkvsz10u6m33j21b3b9d1

通过这样处理后,发现效率提升非常明显,cpu空闲率直接上升到80%以上了。

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值