采用MERGE 语句的非关联形式提升SQL性能

0    237    1

Tags:

👉 本文共约3167个字,系统预计阅读时间或需12分钟。

目录

    今天照例巡查垃圾sql时,发现一个跑了很长时间的sql,且其执行计划也非常的大,这个sql非常可疑,得排查排查:

    采用MERGE 语句的非关联形式提升SQL性能

    第一步,照例查询内存中的执行计划:

    SELECT *** FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('17t226txddfy5',0,'advanced'));**

    采用MERGE 语句的非关联形式提升SQL性能

    采用MERGE 语句的非关联形式提升SQL性能

    可以看出执行计划的cost花费非常的大,且Predicate Information(即谓语)部分全是filter过滤的,怎么会没有access访问呢???????拿出其具体的sql语句:

    MERGE INTO FLN_RCW_CM_ENGINE_BLACK_PURIFI BLACK_PURIFI

    USING (SELECT *****

    FROM (SELECT T.*,

    ROW_NUMBER() OVER(PARTITION BY CERTIFICATION_NO_18, INFO_CHARACTER, FILTER_CONFIG_ID ORDER BY CERTIFICATION_NO_18) NUM

    FROM FLN_RCW_CM_T_ENGINE_BLACK T) T

    WHERE NUM = 1) BLACK

    ON (BLACK_PURIFI.CERTIFICATION_NO_18 = BLACK.CERTIFICATION_NO_18 AND BLACK_PURIFI.INFO_CHARACTER = BLACK.INFO_CHARACTER AND (BLACK.FILTER_CONFIG_ID IS NULL OR BLACK_PURIFI.FILTER_CONFIG_ID = BLACK.FILTER_CONFIG_ID) AND BLACK_PURIFI.DATE_DELETE IS NULL)

    WHEN MATCHED THEN

    UPDATE

    SET BATCH_DATE = :B1,

    FLAG_DELETE = 'N',

    PURIFICATION_DATE = :B1

    WHEN NOT MATCHED THEN

    INSERT

    VALUES

    (:B1,

    本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
    采用MERGE 语句的非关联形式提升SQL性能后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章!
    验证码:
    请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

    标签:

    Avatar photo

    小麦苗

    学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

    您可能还喜欢...

    发表回复

    嘿,我是小麦,需要帮助随时找我哦。
    • 18509239930
    • 个人微信

    • DB宝
    • 个人邮箱
    • 点击加入QQ群
    • 个人微店

    • 回到顶部