zoukankan      html  css  js  c++  java
  • oracle 初试 hint

    最近在研究oracle的视图问题,本来想全转成 物化视图(materialized view)的,这样可以极大提升系统的响应时间,无奈工作量太大,所以就研究了SQL优化的问题。

    我这个普通视图 有360行,其中还有left join 了多个别的视图,这些个视图也有300+行。

    所以在朋友指导下,尝试了一下HINT。

    步骤1 :

    查出这个视图的SQL_ID :

    select sql_id from v$sql where sql_text like '%你中间关键语句%'
    

    步骤2 :

    select * from table(dbms_xplan.display_cursor(sql_id => '12ynt5upntqm7',cursor_child_no => 0,format => 'advanced'));
    

    执行结果如下 :

    Outline Data
    -------------

    PLAN_TABLE_OUTPUT
    --------------------------------------------------------------------------------

    /*+
    BEGIN_OUTLINE_DATA
    IGNORE_OPTIM_EMBEDDED_HINTS
    OPTIMIZER_FEATURES_ENABLE('11.2.0.4')
    DB_VERSION('11.2.0.4')
    ALL_ROWS
    OUTLINE_LEAF(@"SEL$88122447")
    MERGE(@"SEL$641071AC")
    OUTLINE(@"SEL$1")
    OUTLINE(@"SEL$641071AC")

    PLAN_TABLE_OUTPUT
    --------------------------------------------------------------------------------
    MERGE(@"SEL$07BDC5B4")
    OUTLINE(@"SEL$2")
    OUTLINE(@"SEL$07BDC5B4")
    MERGE(@"SEL$4")
    OUTLINE(@"SEL$3")
    OUTLINE(@"SEL$4")
    FULL(@"SEL$88122447" "X$KGLCURSOR_CHILD"@"SEL$4")
    END_OUTLINE_DATA
    */

    Predicate Information (identified by operation id):

    把中间这一坨 放到之前视图对应SQL 的最前面,例如 :

    SELECT
    /*+
    BEGIN_OUTLINE_DATA
    IGNORE_OPTIM_EMBEDDED_HINTS
    OPTIMIZER_FEATURES_ENABLE('11.2.0.4')
    DB_VERSION('11.2.0.4')
    ALL_ROWS
    OUTLINE_LEAF(@"SEL$88122447")
    MERGE(@"SEL$641071AC")
    OUTLINE(@"SEL$1")
    OUTLINE(@"SEL$641071AC")
    MERGE(@"SEL$07BDC5B4")
    OUTLINE(@"SEL$2")
    OUTLINE(@"SEL$07BDC5B4")
    MERGE(@"SEL$4")
    OUTLINE(@"SEL$3")
    OUTLINE(@"SEL$4")
    FULL(@"SEL$88122447" "X$KGLCURSOR_CHILD"@"SEL$4")
    END_OUTLINE_DATA
    */
    DISTINCT part11.ccp from 啪啦啪啦啪啪啪

    速度从 1.9秒 提升到1秒。

    50%的提升,帅翻了~~~

    感谢 小枫 的大力帮助啊~~~~

  • 相关阅读:
    淘宝客服务费和佣金的区别是什么
    java编程出现的错误对应的解决方法
    若遇到APP无法抓包怎么办,可以通过安装drony 进行转发抓包
    Android逆向—苏宁金融app的data参数分析
    GMSSL 支持SM2/SM3/SM4
    Frida安装和使用
    JS 解析 bytearray 成字符串
    Pytorch-tensor的创建,索引,切片
    深度学习实战之线性回归1
    CCF CSP 201803-2 碰撞的小球
  • 原文地址:https://www.cnblogs.com/woxiangbo/p/5355986.html
Copyright © 2011-2022 走看看