• 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%的提升,帅翻了~~~

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

  • 相关阅读:
    SqlDataReader 和SqlDataAdapter 区别
    【面筋烧烤手册】20210301
    【CSS】组件中怎么对css进行处理的
    【CSS】实现五点布局
    【面筋烧烤手册】20200228
    【JavaScript】Class类
    【面筋烧烤手册】CSS
    【面筋烧烤手册】函数柯里化延伸的知识点
    【PlantAPP】TS在RN的具体应用
    【面筋烧烤手册】网络安全
  • 原文地址:https://www.cnblogs.com/woxiangbo/p/5355986.html
Copyright © 2020-2023  润新知