`
回归蔚蓝
  • 浏览: 25180 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Oracle Merge语句效率问题

阅读更多
大家一定都会遇到过数据库操作中的 update,
也一定会考虑过主键重复的问题,
简单的解决方法就是先 select ,
然后根据返回值判断是 insert 还是 update.
因为公司要求这个用一个语句执行,
所以调查了 oracle 自身的 merge 语句,
针对效率就调查的结果如下:
        操作次数为 1 时
        select 花费时间 47
        Merge 花费时间   0
        ------------------------------
        操作次数为 10 时
        select 花费时间 78
        Merge 花费时间  32
        ------------------------------
        操作次数为 100 时
        select 花费时间 906
        Merge 花费时间  578
        ------------------------------
        操作次数为 1000 时
        select 花费时间 6328
        Merge 花费时间  5235
        ------------------------------
        操作次数为 10000 时
        select 花费时间 71359
        Merge 花费时间 104438
        ------------------------------
        操作次数为 100000 时
        select 花费时间 1324890
        Merge 花费时间  1594922

根据PL/SQL Developer中执行来看
Merge 和 update 的效率差不多一样,
平均都是 0.015秒.
可不知道为什么 执行到后面, Merge的效率会降低.
不解.
---------
开始时怀疑是表中含有大数据量时Merge操作比较慢,
可在PL/SQL Developer中执行没有找到明显的差距.
分享到:
评论
2 楼 回归蔚蓝 2010-08-31  
是比较 单条记录 Merge 速度 和 先select 判断 记录条数, 后insert/ update ,
在程序中执行. 而非, 单纯 Merge 与 insert/update 比较.
1 楼 iamlotus 2010-08-31  
你咋作的实验?Merge快在可以batch execution,而insert/update必须用cursor一条条作。如果对Merge也这样当然不会快

相关推荐

    Oracle中SQL语句执行效率的查找与解决

    本文将深入探讨Oracle中SQL语句执行效率的查找与解决方法,特别关注于如何识别和优化那些导致性能瓶颈的查询。 ### Oracle SQL执行效率:查找与解决 #### 一、资源消耗分析 在Oracle中,SQL语句执行效率低下通常...

    使用BULK COLLECT, MERGE 语句提高sql执行效率

    详细介绍了使用 BULK COLLECT 进行批量操作 提高sql的执行效率 使用MERGE INTO USING 一条sql搞定 新增和修改 使用connect by 进行递归树查询

    oracle merge 用法详解

    自Oracle 9i版本开始,Oracle数据库引入了一个非常强大的SQL语句——`MERGE`命令。通过这个命令,用户可以在一个单一的SQL语句中完成对表的插入(`INSERT`)和更新(`UPDATE`)操作,极大地简化了数据处理流程并提高了...

    oracle merge into的使用

    描述详解:Oracle Merge Into 是一个功能强大的SQL语句,它在Oracle数据库系统中被广泛用于处理数据同步、更新或插入操作。与传统的UPDATE和INSERT语句相比,Merge Into 提供了更为灵活和高效的数据管理方式。在...

    Oracle merge into用法

    在Oracle数据库中,`MERGE INTO`语句是一种非常强大的工具,它允许用户根据源表中的数据更新目标表,同时也可以插入新记录。这一特性在处理大量数据时尤其有用,因为它能够在一个步骤中完成更新和插入操作,从而提高...

    oracle Merge 函数.doc

    Oracle Merge 函数是一种强大的数据操作语句,用于从一个表中选择一些数据更新或者插入到另一个表中。Merge 函数的使用方式有三种:只更新不插入、只插入不更新和既插入也更新。 Merge 函数的基本用法 Merge ...

    MySQL中实现插入或更新操作(类似Oracle的merge语句)

    在Oracle数据库中,这种操作可以通过`MERGE`语句轻松完成。然而,MySQL并不直接支持`MERGE`语句,但我们可以使用`INSERT ... ON DUPLICATE KEY UPDATE`语法来达到类似的效果。 `INSERT ... ON DUPLICATE KEY UPDATE...

    Oracle_merge

    为了解决这一问题,Oracle 引入了 `MERGE` 语句,它允许用户在一个步骤中同时执行这两种操作,从而大大提高了数据处理的效率和准确性。 #### 三、`MERGE` 语句的结构 `MERGE` 语句的基本结构如下: ```sql MERGE ...

    update语句的优化-oracle .pdf

    总结来说,针对Oracle数据库的update语句的优化,主要可以从简化SQL语句结构、合理使用子查询和join操作、采用merge语句以及编写PL/SQL游标处理等多方面入手。在实际应用中,根据具体情况选择合适的优化方案,能够...

    Oracle中merge into的使用

    在Oracle数据库中,`MERGE INTO`语句是一种强大的数据操作工具,它允许你在一个步骤中执行更新(UPDATE)和插入(INSERT)操作,从而提高了数据处理的效率和灵活性。这个命令尤其适用于需要同步两个表的数据时,比如...

    oracle死锁原因解决办法

    在Oracle数据库系统中,死锁是一种常见的并发问题,它会导致多个事务之间互相等待对方释放资源而无法继续执行,最终导致整个系统的运行效率降低甚至停滞。死锁不仅影响数据库性能,还会影响应用程序的可用性和用户...

    oracle sql 语句暗示 hints

    为了提升SQL语句的执行效率,Oracle 提供了一系列称为“暗示”(Hints)的功能。本文将深入探讨 Oracle SQL 语句暗示的相关知识点,帮助开发人员更好地理解和运用这些强大工具。 #### 二、Oracle SQL 暗示概述 **...

    浅谈Oracle数据库中Merge Into的用法.pdf

    在 Oracle 数据库中,Merge Into 语句是一种非常有用的功能,它主要用来合并 update 和 insert 语句,即用一个表中的数据来修 改或插入到另一个表中。Merge Into 语句的主要原则是“有则更新,无则插入”。 Merge ...

    Oracle merge合并更新函数实例详解

    总的来说,Oracle的MERGE语句为数据操作提供了便利和效率,尤其是在处理大量数据时。它能够减少事务中的网络往返,提高并发处理能力,对于优化数据库性能具有重要意义。在处理复杂的业务逻辑,尤其是涉及到数据同步...

    ORACLE+SQL效率优化.rar

    本资料“ORACLE+SQL效率优化.rar”深入探讨了如何优化Oracle中的SQL语句,以提高数据库性能,确保系统运行流畅。 首先,了解SQL执行效率的基础在于理解查询执行计划。Oracle使用解析器解析SQL语句,然后生成执行...

    oracle学习及练习语句

    `oracle-merge.txt`文件则介绍了MERGE语句,它能够根据一个源表的数据更新或插入到目标表中,同时处理重复记录的问题。 5. Oracle SQL语句练习:`Oracle_sql语句练习.txt`和`oracle-sql练习2.txt`可能包含了各种SQL...

    Oracle SQL 语句学习

    DML语句包括SELECT、INSERT、UPDATE、DELETE、MERGE等,用于数据行的查询、插入、修改和删除。DDL语句包括CREATE、ALTER、DROP、RENAME、TRUNCATE等,用于创建、修改、删除数据库对象。事务控制语句如COMMIT、...

    Oracle MERGE INTO的用法示例介绍

    1)主要功能 提供有条件地更新和插入数据到数据库表中 如果该行存在,执行一个UPDATE操作,如果是一个新行,执行INSERT操作 — 避免了分开更新 — 提高性能并易于使用 — 在数据仓库应用中十分有用 2)MERGE语句的...

Global site tag (gtag.js) - Google Analytics