ITPub博客

首页 > 数据库 > Oracle > ORACLE sql merge into update where条件位置与性能消耗

ORACLE sql merge into update where条件位置与性能消耗

原创 Oracle 作者:清风艾艾 时间:2018-03-19 13:43:22 0 删除 编辑
    环境:
    操作系统版本:linux redhat 6.6
    数据库版本:oracle 11.2.0.4
    问题描述:今天,实施同事反馈一个很奇怪的问题,就是oracle 数据库的sql merge用法问题,update语句当把分区表的分区键放在匹配关键字
On里,sql语句执行计划显示分区键能起到分区筛选作用:

    相反的,如果把update语句where条件里的分区键不放在merge匹配关键字on里,merge into update语句没能正确执行分区表分区筛选,sql语句
和执行计划如下:

总结:先说个人对本例子的理解,merge先执行on后边的条件筛选,进而进行数据匹配,匹配上则执行后续的update更新操作,所以,
将分区键放在on后边的条件匹配里,首先进行区分表分区的筛选,避免对分区表的全分区扫描,从而大大降低merge into update语句
对主机cpu资源的消耗。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29357786/viewspace-2151988/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
个人喜欢IT行业,目前从事数据库工作,包括Oracle、mysql、mongodb、sqlserver等数据库的维护,喜欢专研开发技术,尤其对java程序的开发感兴趣。工作经历上,在中国联通系统集成公司、中公网医疗信息技术有限公司做过数据库技术支持;目前在海量数据,负责华东区oracle、mysql、mongodb的维护工作。

注册时间:2015-01-30

  • 博文量
    174
  • 访问量
    198762