SQL优化【基础05】 - 固定计划,不修改程序(sql profile,baseline)

本文介绍在不修改程序的前提下,如何使用SQLPROFILE和BASELINE技术来优化前端反应速度慢和后端数据库运行同一SQL慢的问题。通过提供具体的步骤和实例,演示如何快速调整SQL执行计划,提升系统性能。

这种情况还是比较多用到的,前端反应系统慢,后端数据库出现大量的运行同一SQL慢的会话,出现等待事件,在不改程序

的前提下,使用固定计划最直接和临时的方案;下面涉及2种方法:SQL PROFILE和BASELINE,其它方法用得少;

第1种方法:使用SQL PROFILE固定,直接看图即可;






获取修改后的SQL_ID和PHV值


获取未修改前的SQL_ID,PHV值


切换到有权限的用户下执行脚本*.sql   sql_id   phv(脚本下载地址:我的上传资源,BAIDU或者催华空间:

http://www.dbsnake.net/wp-content/uploads/2012/08/coe_xfr_sql_profile.sql_.txt


生成了一个.SQL文件coe_xfr_sql_profile_sql_id_phv.sql

(老的SQL_ID,PHV)


(新的SQL_ID,PHV)


在当前目录下生成了这两文件


打开7726结尾文件,并COPY下面这段内容


打开9974.SQL结尾的文件找到相对应的位置用新的替换掉;


再次执行替换后的9974.SQL文件


再次运行同样的SQL,可以看到计划已经变成我们固定的NL计划了;


第二种方法:场景:同一个SQL_ID,有多个计划,但其中有一个是正确的,目标将此类SQL_ID固定在一个指定的好的计划上;

如下:此条SQL_ID有2个PHV


2650结尾的计划是全表扫


7011结尾的是索引扫瞄


目标是2个计划都固定在2650这个计划上,执行如下:


再次运行同样的SQL,看红色部份已经有生效提示了;


有些人可能会问如果像JAVA一样的带有绑定变量的SQL呢,其实是一样的,假定原来 的程序SQL_ID和PHV为S1,PHV1,

通过人工传进变量实际执行的SQL_ID和PHV为S2,PHV2,然后按第1种方法即可,用BASELINE也可以但是另一种方法,可见如下,用得少感觉:

http://blog.youkuaiyun.com/launch_225/article/details/23843745



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值