update 改写 merge into
update语句改写成merge into有时会提高运行速度
看两个案例
1.根据业务将两个嵌套子查询改写成max,速度有3min提升到3s
UPDATE OPER_792.LL_SCB_YDKB_20120730 A
SET A.DCP =
(SELECT B.PROD_OFFER_NAME
FROM OPER_792.YD_TC B
WHERE A.SERV_ID = B.SERV_ID
AND B.TC_TYPE = '合约计划'
AND ROWNUM = 1),
A.JCTC =
(SELECT B.PROD_OFFER_NAME
FROM OPER_792.YD_TC B
WHERE A.SERV_ID = B.SERV_ID
AND B.TC_TYPE = '基础套餐'
AND ROWNUM = 1)
WHERE A.DAY_ID = 20150125
merge into OPER_792.LL_SCB_YDKB_20120730 A
using (select c.SERV_ID,
max(case
when c.TC_TYPE = '合约计划' then
c.PROD_OFFER_NAME
end) col1,
max(case
when c.TC_TYPE = '基础套餐' then
c.PROD_OFFER_NAME
end) col2
from OPER_792.YD_TC c
group by c.SERV_ID) b
on (A.SERV_ID = B.SERV_ID and a.day_id = 20150125)
when matched then
update set A.DCP = b.col1, A.JCTC = b.col2
2.正常的将update 改写成merge into
update tb_result r set r.vote_count=nvl((
select temp_.vote_count
from(
select result_id,
count(rv_id) as vote_count
from tb_result_vote
group by result_id
) temp_
where temp_.result_id=r.result_id),
r.vote_count
);
merge into tb_result r
using(
select result_id,
count(rv_id) as vote_count
from tb_result_vote
group by result_id) temp_
on(temp_.result_id=r.result_id)
when matched then
update set r.vote_count=nvl(temp_.vote_count,r.vote_count);
转载于:https://www.cnblogs.com/SUN-PH/p/4283247.html
update 改写 merge into相关推荐
- Hibernate三种状态的区分,以及save,update,saveOrUpdate,merge等的使用
Hibernate的对象有3种状态,分别为:瞬时态(Transient). 持久态(Persistent).脱管态(Detached).处于持久态的对象也称为PO(Persistence Object ...
- 【转】NHIBERNATE的各种保存方式的区别 (SAVE,PERSIST,UPDATE,SAVEORUPDTE,MERGE,FLUSH,LOCK)
前言 今天学学习NH这个框架,在新增对象的时候,看见大神用了persist而没有用Save,心中比较疑惑,查阅资料的时候,发现这篇写的非常不错,转载供大家参考. hibernate的保存 hibern ...
- Hiberate中Update和Merge的一个小的区别
1.Update和Merge的一个小区别总结 Update方法:如果要更新的对象是持久态而且在DirtyCheck的时候没有发现改变,那么就不发Update语句.如果更新的对象是游离态即使对象没有改变 ...
- Hibernate三种状态(Transient、Persistent、Detached)各种保存(save,persist,update,saveOrUpdte,merge,flush,lock)区别
转载地址:http://www.2cto.com/kf/201212/178604.html 一.三种状态(Transient.Persistent.Detached) 在Hibernate中有三种状 ...
- update与merge
参考地址:http://blog.csdn.net/ml5271169588/article/details/6734981 根据网上的内容总结如下: update: update tablename ...
- 【PL/SQL】Insert/ update/ delete/ merge
Insert: BEGIN INSERT INTO employees (employee_id, first_name, last_name, email, hire_date, job_id, s ...
- PLSQL_性能优化系列17_Oracle Merge Into和Update更新效率
2015-05-21 Created By BaoXinjian 一.摘要 以前只考虑 merge into 只是在特定场合下方便才使用的,今天才发现,merge into 竟然会比 update 在 ...
- Hibernate save, saveOrUpdate, persist, merge, update 区别
Hibernate save, saveOrUpdate, persist, merge, update 区别 - 小黑客 - 博客园 https://www.cnblogs.com/xiaoheik ...
- 【存储过程】Merge Into语句实现Insert/Update在Oracle中的应用
最近接到一个新的接口需求,开发一个保存数据的接口,需要完成如下功能:有一个表T,有两个字段a(主键),b,我们想在表T中做Insert/Update,如果存在,则更新T中b的值,如果不存在,则插入一条 ...
最新文章
- 【Visual C++】游戏开发笔记十三 游戏输入消息处理(二) 鼠标消息处理
- 三、垃圾收集之判断对象是否存活
- 2017.0322.数字电路与系统-触发器
- MATLAB-矩阵相关计算(1)
- MYSQL: MERGE引擎实现多分表的联合
- linux内置变量大全,Linux进阶之bash编程四(内置变量)
- linux开放端口_Linux系统通过firewall限制或开放IP及端口 - 北方客888
- mongo执行逻辑表达式_MongoDB 高级查询
- Swagger在header中添加token
- MagicRecord For IOS 简介
- 阿里云服务器和mysql的原理_mysql 数据库同步原理
- steam夏日促销悄然开始,用Python爬取排行榜上的游戏打折信息
- Nginx使用教程(八):使用Nginx缓存之Memcached缓存
- 深度学习知识体系总结(2021版)开放下载了!
- 实习踩坑之路:Date、LocalDate和LocalDateTime的区别
- java 调用oracle函数_java – 用Spring的SimpleJdbcCall来调用Oracle函数
- Flash遮罩动画之画轴
- 卫星控制类操作系统VAX/VMS简介
- 回眸2020,展望2021
- 共享洗车机无人值守是怎样运营的?
热门文章
- C++ 笔记(33)— C/C++ 程序员常见面试试题深入剖析
- 安装 sklearn 报错 ImportError: cannot import name Type
- openpyxl.utils.exceptions.IllegalCharacterError错误
- 传统编译器与神经网络编译器
- LED液晶与OLED:电视显示技术比较
- 如何为应用选择最佳的FPGA(下)
- CUDA运行时 Runtime(四)
- ADAS摄像头图像环视拼接算法
- 大数据调度平台Airflow(一):什么是Airflow
- Android 10 新增的功能