使用outline方式創建profile綁定執行計劃。

explain plan for 
變量賦值的sql語句


commit;

Plan hash value: 1880946022
 
------------------------------------------------------------------------------------------------------------------
| Id  | Operation                             | Name                     | Rows  | Bytes | Cost (%CPU)| Time     |
------------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                      |                          |     1 |  1359 |    21   (5)| 00:00:01 |
|*  1 |  VIEW                                 |                          |     1 |  1359 |    21   (5)| 00:00:01 |
|*  2 |   COUNT STOPKEY                       |                          |       |       |            |          |
|   3 |    VIEW                               |                          |     1 |  1346 |    21   (5)| 00:00:01 |
|*  4 |     SORT ORDER BY STOPKEY             |                          |     1 |   342 |    21   (5)| 00:00:01 |
|*  5 |      FILTER                           |                          |       |       |            |          |
|   6 |       NESTED LOOPS OUTER              |                          |     1 |   342 |    20   (0)| 00:00:01 |
|   7 |        NESTED LOOPS                   |                          |     1 |   280 |    15   (0)| 00:00:01 |
|   8 |         NESTED LOOPS                  |                          |     1 |   271 |    14   (0)| 00:00:01 |
|   9 |          NESTED LOOPS                 |                          |     1 |   263 |    13   (0)| 00:00:01 |
|  10 |           NESTED LOOPS                |                          |     1 |   225 |    11   (0)| 00:00:01 |
|* 11 |            TABLE ACCESS BY INDEX ROWID| xxxxxxx_SHEET           |     1 |    87 |     5   (0)| 00:00:01 |
|* 12 |             INDEX RANGE SCAN          | IDX_TAI_IUCT_DISTIME     |     1 |       |     3   (0)| 00:00:01 |
|  13 |            TABLE ACCESS BY INDEX ROWID| xxxxxxx_ORDER           |     2 |   276 |     6   (0)| 00:00:01 |
|* 14 |             INDEX RANGE SCAN          | IDX_TAI_ISHEET_ID166     |     2 |       |     3   (0)| 00:00:01 |
|* 15 |           INDEX UNIQUE SCAN           | XPK_INAS_PRODUCT         |     1 |       |     1   (0)| 00:00:01 |
|  16 |          TABLE ACCESS BY INDEX ROWID  | xxxxxxx_OPERTYPE        |     1 |     8 |     1   (0)| 00:00:01 |
|* 17 |           INDEX UNIQUE SCAN           | XPK_T_INAS_OPERTYPE      |     1 |       |     0   (0)| 00:00:01 |
|  18 |         TABLE ACCESS BY INDEX ROWID   | xxxxxxx_ORDERSTATE      |     1 |     9 |     1   (0)| 00:00:01 |
|* 19 |          INDEX UNIQUE SCAN            | XPK_INAS_ORDERSTATE      |     1 |       |     0   (0)| 00:00:01 |
|  20 |        TABLE ACCESS BY INDEX ROWID    | xxxxxxx_FLOWNODE_INST   |     8 |   496 |     5   (0)| 00:00:01 |
|* 21 |         INDEX RANGE SCAN              | XINDEX_INAS_FLOW_INST_ID |     8 |       |     3   (0)| 00:00:01 |
------------------------------------------------------------------------------------------------------------------
 
Outline Data
-------------
 
  /*+
      BEGIN_OUTLINE_DATA
      USE_NL(@"SEL$CBB13033" "NI"@"SEL$3")
      USE_NL(@"SEL$CBB13033" "T6"@"SEL$5")
      USE_NL(@"SEL$CBB13033" "T5"@"SEL$5")
      USE_NL(@"SEL$CBB13033" "T3"@"SEL$5")
      USE_NL(@"SEL$CBB13033" "T2"@"SEL$4")
      LEADING(@"SEL$CBB13033" "T1"@"SEL$5" "T2"@"SEL$4" "T3"@"SEL$5" "T5"@"SEL$5" "T6"@"SEL$5" "NI"@"SEL$3")
      INDEX_RS_ASC(@"SEL$CBB13033" "NI"@"SEL$3" ("xxxxxxx_FLOWNODE_INST"."FLOWINST_ID"))
      INDEX_RS_ASC(@"SEL$CBB13033" "T6"@"SEL$5" ("xxxxxxx_ORDERSTATE"."ORDERSTATE_ID"))
      INDEX_RS_ASC(@"SEL$CBB13033" "T5"@"SEL$5" ("xxxxxxx_OPERTYPE"."OPER_TYPE_ID"))
      INDEX_RS_ASC(@"SEL$CBB13033" "T3"@"SEL$5" ("xxxxxxx_PRODUCT"."PRODUCT_CODE"))
      INDEX_RS_ASC(@"SEL$CBB13033" "T2"@"SEL$4" ("xxxxxxx_ORDER"."SHEET_ID"))
      INDEX_RS_ASC(@"SEL$CBB13033" "T1"@"SEL$5" ("xxxxxxx_SHEET"."DISPATCH_TIME"))
      NO_ACCESS(@"SEL$2" "A"@"SEL$2")
      NO_ACCESS(@"SEL$1" "B"@"SEL$1")
      OUTLINE(@"SEL$3")
      OUTLINE(@"SEL$4")
      OUTLINE(@"SEL$5")
      MERGE(@"SEL$3")
      OUTLINE(@"SEL$37633EB5")
      ELIMINATE_JOIN(@"SEL$5" "T4"@"SEL$5")
      OUTLINE(@"SEL$7F8A0496")
      OUTLINE_LEAF(@"SEL$1")
      OUTLINE_LEAF(@"SEL$2")
      MERGE(@"SEL$37633EB5")
      OUTLINE_LEAF(@"SEL$CBB13033")
      ALL_ROWS
      OPTIMIZER_FEATURES_ENABLE('10.2.0.5')
      IGNORE_OPTIM_EMBEDDED_HINTS
      END_OUTLINE_DATA
  */
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   1 - filter("B"."ROW_NUM">0)
   2 - filter(ROWNUM<=30)
   4 - filter(ROWNUM<=30)
   5 - filter("NI"."NODEINST_STATE"=1 OR "NI"."NODETYPE_NAME"='結束節點' OR "NI"."FLOWINST_ID" IS NULL)
  11 - filter("T1"."SHEET_CODE" LIKE '%4402a88740bb%' ESCAPE '/' AND "T1"."SHEET_CODE" IS NOT NULL)
  12 - access("T1"."DISPATCH_TIME">=TO_DATE(' 2019-08-02 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
  14 - access("T1"."SHEET_ID"="T2"."SHEET_ID")
  15 - access("T2"."PRODUCT_CODE"="T3"."PRODUCT_CODE")
  17 - access("T2"."OPER_TYPE_ID"="T5"."OPER_TYPE_ID")
  19 - access("T2"."ORDERSTATE_ID"="T6"."ORDERSTATE_ID")
  21 - access("T2"."CURRENT_FLOWINST"="NI"."FLOWINST_ID"(+))

---創建pofile並綁定-
declare 
          v_hints sys.sqlprof_attr;
          begin
            v_hints:=sys.sqlprof_attr(
      'USE_NL(@"SEL$CBB13033" "NI"@"SEL$3")',
      'USE_NL(@"SEL$CBB13033" "T6"@"SEL$5")',
      'USE_NL(@"SEL$CBB13033" "T5"@"SEL$5")',
      'USE_NL(@"SEL$CBB13033" "T3"@"SEL$5")',
      'USE_NL(@"SEL$CBB13033" "T2"@"SEL$4")',
      'LEADING(@"SEL$CBB13033" "T1"@"SEL$5" "T2"@"SEL$4" "T3"@"SEL$5" "T5"@"SEL$5" "T6"@"SEL$5" "NI"@"SEL$3")',
      'INDEX_RS_ASC(@"SEL$CBB13033" "NI"@"SEL$3" ("xxxxxxx_FLOWNODE_INST"."FLOWINST_ID"))',
      'INDEX_RS_ASC(@"SEL$CBB13033" "T6"@"SEL$5" ("xxxxxxx_ORDERSTATE"."ORDERSTATE_ID"))',
      'INDEX_RS_ASC(@"SEL$CBB13033" "T5"@"SEL$5" ("xxxxxxx_OPERTYPE"."OPER_TYPE_ID"))',
      'INDEX_RS_ASC(@"SEL$CBB13033" "T3"@"SEL$5" ("xxxxxxx_PRODUCT"."PRODUCT_CODE"))',
      'INDEX_RS_ASC(@"SEL$CBB13033" "T2"@"SEL$4" ("xxxxxxx_ORDER"."SHEET_ID"))',
      'INDEX_RS_ASC(@"SEL$CBB13033" "T1"@"SEL$5" ("xxxxxxx_SHEET"."DISPATCH_TIME"))'
            );
  dbms_sqltune.import_sql_profile(q'<sql語句,綁定變量的>',v_hints,'sqlprofile2XXXXX',force_match => true,replace => true);
        end;
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章