ITPub博客

首页 > 数据库 > Oracle > SQL TUNING(sqlid文本方式)

SQL TUNING(sqlid文本方式)

原创 Oracle 作者:wanghao2979 时间:2017-02-16 13:59:45 0 删除 编辑
1.给权限 
grant ADVISOR  to system;
(system应该有)




2.查看原来SQL的执行计划


alter session set statistics_level=all;
set serveroutput off
set linesize 222 
set pagesize 1000
set long 99999
select * from table(dbms_xplan.display_awr('7ysgr9qfhfgtr')); (7ysgr9qfhfgtr 是sql_id) (awr里面的执行计划)


SQL>  select * from table(dbms_xplan.display_awr('7ysgr9qfhfgtr'));




PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------------------
SQL_ID 7ysgr9qfhfgtr
--------------------
INSERT INTO di_te_purstockbill (PURORG, plant,purchasereqno, itemno,
purstockbillid,   ordtype, client, purdocno,  createddate, vendorno,
purdocitemno, mtlno, ordpriceunit,  netvalue, vendordesc, purgrp,
itemdeliverydate, quantity,  price,purgrpdesc,buyliststrdes,storelocatio
n,estimatedpriceindic,docdate,remark,remark1,proposerID,proposerDesc
,createdby,promotion,matbrand,VOLUMEWEIGHT,purdocitemid,purdocheaderid,p
riConfiDate,di_opertype) SELECT *   FROM (SELECT d.*, 'U'  FROM (SELECT
  PURORG, plant,purchasereqno, itemno, purstockbillid, ordtype,min(
:1), purdocno, lastchangedon, vendorno, purdoclineno, mtlno,
ordpriceunit, netvalue, description, purgrp, MIN (itemdeliverydate),
quantity, price,purgrpdesc,buyliststrdes,storelocation,estimatedpriceind
ic,docdate,remark,remark1,proposerID,proposerDesc,createdby
,promotion,matbrand,VOLUMEWEIGHT,purdocitemid,purdocheaderid,priConfiDat
e     FROM (SELECT b.PURORG, c.plant,c.purchasereqno, c.itemno,
c.purdocitemid as purstockbillid,   b.ordtype, b.purdocno,
b.lastchangedon, b.vendorno, c.purdoclineno, c.mtlno, c.ordpriceunit,
c.netvalue, d.description, b.purgrp, e.itemdeliverydate, c.quantity,
TRUNC (TO_NUMBER (NVL2 (c.estimatedpriceindic,DECODE (c.priceunit,0,
NULL,NULL, NULL,(c.netprice / c.priceunit)),NULL)), 6) price,
g.description AS purgrpdesc, i.description AS buyliststrdes,
c.storagelocation AS storelocation, c.estimatedpriceindic, b.purdocdate
AS docdate, c.memo AS remark, c.memo1 as remark1,j.createdby as
proposerID,k.comments as proposerDesc ,l.comments as
createdBy,c.promotion,m.matbrand  ,m.VOLUMEWEIGHT,c.purdocitemid,b.purdo
cheaderid,c.priConfiDate   FROM pursasl e,purdocitem c,purdocheader
b,puroutstobillvoutyp a,purvendormaster d,purgroup f,purgrouptrl
g,purdoctype h,purdoctypetrl i,purreq j,aduser k,aduser l,MMRGenMtl m
WHERE e.purdocno(+) = c.purdocno AND e.purdoclineno(+) = c.purdoclineno
AND e.client(+) = c.client   AND b.purchasingdocctg = 'F' AND b.ordtype
= a.ordtype AND b.purchasingdocctg = a.purdocctg AND b.client =
a.client   AND c.purdocno = b.purdocno AND c.client = b.client AND NVL
(c.purdocdeletionindic, 'N') = 'N' AND c.client = :2   AND b.vendorno =
d.vendorno AND b.client = d.client   AND b.purgrp = f.purgroup AND
b.client = f.client AND f.purgroupid = g.purgroupid(+) AND
g.LANGUAGE(+) = :3   AND b.ordtype = h.purdoctype AND b.client =
h.client  AND b.purchasingdocctg = h.purdocctg AND h.purdoctypeid =
i.purdoctypeid(+) AND i.LANGUAGE(+) = :3  AND c.purchasereqno =
j.purchasereqno(+)  AND c.itemno = j.itemno(+)  AND c.client =
j.client(+) AND j.createdby = k.NAME(+)  AND j.client = k.client(+) AND
k.LANGUAGE(+) = :3 and b.client=l.client(+) and b.createdBy=l.NAME(+)
AND l.LANGUAGE(+) = :3 and c.client=m.client(+) and c.mtlno=m.mtlno(+)
) a        GROUP BY PURORG, plant,purchasereqno, itemno, ordtype,
purdocno, lastchangedon, vendorno, purdoclineno, mtlno, ordpriceunit,
netvalue, description, purgrp, quantity, price,
purgrpdesc,buyliststrdes,storelocation,estimatedpriceindic,docdate,remar
k,remark1,proposerID,proposerDesc,createdby,promotion,matbrand,VOLUMEWEI
GHT,purstockbillid,purdocitemid,purdocheaderid,priConfiDate  MINUS
SELECT PURORG, plant,purchasereqno, itemno, purstockbillid, ordtype,
client, purdocno, createddate, vendorno, purdocitemno, mtlno,
ordpriceunit, netvalue, vendordesc, purgrp, itemdeliverydate, quantity,
price, purgrpdesc,buyliststrdes,storelocation,estimatedpriceindic,docdat
e,remark,remark1,proposerID,proposerDesc,createdby,promotion,matbrand
,VOLUMEWEIGHT,purdocitemid,purdocheaderid,priConfiDate   FROM
purstockbill WHERE di_opertype <> 'D') d UNION SELECT d.*, 'D'  FROM
(SELECT PURORG, plant,purchasereqno, itemno, purstockbillid, ordtype,
client, purdocno, createddate, vendorno, purdocitemno, mtlno,
ordpriceunit, netvalue, vendordesc, purgrp, itemdeliverydate, quantity,
price, purgrpdesc,buyliststrdes,storelocation,estimatedpriceindic,docdat
e,remark,remark1,proposerID,proposerDesc,createdby,promotion,matbrand,VO
LUMEWEIGHT,purdocitem


Plan hash value: 3278049608


----------------------------------------------------------------------------------------------------
-------------------------


| Id  | Operation                                   | Name                  | Rows  | Bytes |TempSpc
| Cost (%CPU)| Time     |


----------------------------------------------------------------------------------------------------
-------------------------


|   0 | INSERT STATEMENT                            |                       |       |       |
|   527K(100)|          |


|   1 |  LOAD TABLE CONVENTIONAL                    |                       |       |       |
|            |          |


|   2 |   VIEW                                      |                       |   107K|   106M|
|   527K  (1)| 01:45:26 |


|   3 |    SORT UNIQUE                              |                       |   107K|   106M|   120M
|   527K (49)| 01:45:26 |


|   4 |     UNION-ALL                               |                       |       |       |
|            |          |


|   5 |      VIEW                                   |                       |   101K|   100M|
|   251K  (1)| 00:50:23 |


|   6 |       MINUS                                 |                       |       |       |
|            |          |


|   7 |        SORT UNIQUE                          |                       |   101K|    52M|    56M
|            |          |


|   8 |         SORT GROUP BY                       |                       |   101K|    52M|    56M
|   251K  (1)| 00:50:17 |


|   9 |          HASH JOIN RIGHT OUTER              |                       |   101K|    52M|
|   228K  (1)| 00:45:38 |


|  10 |           TABLE ACCESS FULL                 | ADUSER                |  4111 |   132K|
|    33   (0)| 00:00:01 |


|  11 |           NESTED LOOPS OUTER                |                       |   101K|    49M|
|   228K  (1)| 00:45:37 |


|  12 |            HASH JOIN RIGHT OUTER            |                       |   101K|    46M|    24M
|   219K  (1)| 00:43:49 |


|  13 |             TABLE ACCESS FULL               | MMRGENMTL             |   195K|    22M|
|  3555   (2)| 00:00:43 |


|  14 |             HASH JOIN OUTER                 |                       |   100K|    34M|    32M
|   212K  (1)| 00:42:31 |


|  15 |              NESTED LOOPS                   |                       |       |       |
|            |          |


|  16 |               NESTED LOOPS                  |                       |   100K|    31M|
|   107K  (1)| 00:21:36 |


|  17 |                HASH JOIN RIGHT OUTER        |                       | 28853 |  6931K|
| 21366   (1)| 00:04:17 |


|  18 |                 TABLE ACCESS FULL           | ADUSER                |  4110 |   132K|
|    33   (0)| 00:00:01 |


|  19 |                 HASH JOIN                   |                       | 28853 |  6001K|
| 21332   (1)| 00:04:16 |


|  20 |                  TABLE ACCESS FULL          | PURVENDORMASTER       |  4241 |   211K|
|    29   (0)| 00:00:01 |


|  21 |                  HASH JOIN RIGHT OUTER      |                       | 33969 |  5374K|
| 21302   (1)| 00:04:16 |


|  22 |                   TABLE ACCESS FULL         | PURGROUPTRL           |   249 |  6723 |
|     4   (0)| 00:00:01 |


|  23 |                   HASH JOIN                 |                       | 33969 |  4478K|
| 21297   (1)| 00:04:16 |


|  24 |                    VIEW                     | index$_join$_010      |   249 |  3237 |
|     3  (34)| 00:00:01 |


|  25 |                     HASH JOIN               |                       |       |       |
|            |          |


|  26 |                      INDEX FAST FULL SCAN   | PURGROUP_U            |   249 |  3237 |
|     1   (0)| 00:00:01 |


|  27 |                      INDEX FAST FULL SCAN   | SYS_C0023218          |   249 |  3237 |
|     1   (0)| 00:00:01 |


|  28 |                    HASH JOIN                |                       | 34038 |  4055K|
| 21294   (1)| 00:04:16 |


|  29 |                     INDEX RANGE SCAN        | PUROUTSTOBILLVOUTYP_U |     1 |    10 |
|     1   (0)| 00:00:01 |


|  30 |                     HASH JOIN               |                       |   726K|    77M|
| 21289   (1)| 00:04:16 |


|  31 |                      HASH JOIN OUTER        |                       |    21 |  1008 |
|     7  (15)| 00:00:01 |


|  32 |                       VIEW                  | index$_join$_012      |    21 |   315 |
|     3  (34)| 00:00:01 |


|  33 |                        HASH JOIN            |                       |       |       |
|            |          |


|  34 |                         INDEX FAST FULL SCAN| PURDOCTYPE_U          |    21 |   315 |
|     1   (0)| 00:00:01 |


|  35 |                         INDEX FAST FULL SCAN| SYS_C0023208          |    21 |   315 |
|     1   (0)| 00:00:01 |


|  36 |                       TABLE ACCESS FULL     | PURDOCTYPETRL         |    39 |  1287 |
|     4   (0)| 00:00:01 |


|  37 |                      TABLE ACCESS FULL      | PURDOCHEADER          |  2493K|   152M|
| 21270   (1)| 00:04:16 |


|  38 |                INDEX RANGE SCAN             | PURDOCITEM_U          |     4 |       |
|     2   (0)| 00:00:01 |


|  39 |               TABLE ACCESS BY INDEX ROWID   | PURDOCITEM            |     3 |   249 |
|     3   (0)| 00:00:01 |


|  40 |              TABLE ACCESS FULL              | PURSASL               |    12M|   359M|
| 77611   (1)| 00:15:32 |


|  41 |            TABLE ACCESS BY INDEX ROWID      | PURREQ                |     1 |    30 |
|     2   (0)| 00:00:01 |


|  42 |             INDEX UNIQUE SCAN               | PURREQ_U              |     1 |       |
|     1   (0)| 00:00:01 |


|  43 |        SORT UNIQUE                          |                       |  6207 |  1606K|  2168K
|            |          |


|  44 |         TABLE ACCESS FULL                   | PURSTOCKBILL          |  6207 |  1606K|
|   102   (0)| 00:00:02 |


|  45 |      VIEW                                   |                       |  6207 |  6273K|
|   251K  (1)| 00:50:23 |


|  46 |       MINUS                                 |                       |       |       |
|            |          |


|  47 |        SORT UNIQUE                          |                       |  6207 |  1606K|  2168K
|            |          |


|  48 |         TABLE ACCESS FULL                   | PURSTOCKBILL          |  6207 |  1606K|
|   102   (0)| 00:00:02 |


|  49 |        SORT UNIQUE                          |                       |   101K|    52M|    56M
|            |          |


|  50 |         SORT GROUP BY                       |                       |   101K|    52M|    56M
|   251K  (1)| 00:50:17 |


|  51 |          HASH JOIN RIGHT OUTER              |                       |   101K|    52M|
|   228K  (1)| 00:45:38 |


|  52 |           TABLE ACCESS FULL                 | ADUSER                |  4111 |   132K|
|    33   (0)| 00:00:01 |


|  53 |           NESTED LOOPS OUTER                |                       |   101K|    49M|
|   228K  (1)| 00:45:37 |


|  54 |            HASH JOIN RIGHT OUTER            |                       |   101K|    46M|    24M
|   219K  (1)| 00:43:49 |


|  55 |             TABLE ACCESS FULL               | MMRGENMTL             |   195K|    22M|
|  3555   (2)| 00:00:43 |


|  56 |             HASH JOIN OUTER                 |                       |   100K|    34M|    32M
|   212K  (1)| 00:42:31 |


|  57 |              NESTED LOOPS                   |                       |       |       |
|            |          |


|  58 |               NESTED LOOPS                  |                       |   100K|    31M|
|   107K  (1)| 00:21:36 |


|  59 |                HASH JOIN RIGHT OUTER        |                       | 28853 |  6931K|
| 21366   (1)| 00:04:17 |


|  60 |                 TABLE ACCESS FULL           | ADUSER                |  4110 |   132K|
|    33   (0)| 00:00:01 |


|  61 |                 HASH JOIN                   |                       | 28853 |  6001K|
| 21332   (1)| 00:04:16 |


|  62 |                  TABLE ACCESS FULL          | PURVENDORMASTER       |  4241 |   211K|
|    29   (0)| 00:00:01 |


|  63 |                  HASH JOIN RIGHT OUTER      |                       | 33969 |  5374K|
| 21302   (1)| 00:04:16 |


|  64 |                   TABLE ACCESS FULL         | PURGROUPTRL           |   249 |  6723 |
|     4   (0)| 00:00:01 |


|  65 |                   HASH JOIN                 |                       | 33969 |  4478K|
| 21297   (1)| 00:04:16 |


|  66 |                    VIEW                     | index$_join$_027      |   249 |  3237 |
|     3  (34)| 00:00:01 |


|  67 |                     HASH JOIN               |                       |       |       |
|            |          |


|  68 |                      INDEX FAST FULL SCAN   | PURGROUP_U            |   249 |  3237 |
|     1   (0)| 00:00:01 |


|  69 |                      INDEX FAST FULL SCAN   | SYS_C0023218          |   249 |  3237 |
|     1   (0)| 00:00:01 |


|  70 |                    HASH JOIN                |                       | 34038 |  4055K|
| 21294   (1)| 00:04:16 |


|  71 |                     INDEX RANGE SCAN        | PUROUTSTOBILLVOUTYP_U |     1 |    10 |
|     1   (0)| 00:00:01 |


|  72 |                     HASH JOIN               |                       |   726K|    77M|
| 21289   (1)| 00:04:16 |


|  73 |                      HASH JOIN OUTER        |                       |    21 |  1008 |
|     7  (15)| 00:00:01 |


|  74 |                       VIEW                  | index$_join$_029      |    21 |   315 |
|     3  (34)| 00:00:01 |


|  75 |                        HASH JOIN            |                       |       |       |
|            |          |


|  76 |                         INDEX FAST FULL SCAN| PURDOCTYPE_U          |    21 |   315 |
|     1   (0)| 00:00:01 |


|  77 |                         INDEX FAST FULL SCAN| SYS_C0023208          |    21 |   315 |
|     1   (0)| 00:00:01 |


|  78 |                       TABLE ACCESS FULL     | PURDOCTYPETRL         |    39 |  1287 |
|     4   (0)| 00:00:01 |


|  79 |                      TABLE ACCESS FULL      | PURDOCHEADER          |  2493K|   152M|
| 21270   (1)| 00:04:16 |


|  80 |                INDEX RANGE SCAN             | PURDOCITEM_U          |     4 |       |
|     2   (0)| 00:00:01 |


|  81 |               TABLE ACCESS BY INDEX ROWID   | PURDOCITEM            |     3 |   249 |
|     3   (0)| 00:00:01 |


|  82 |              TABLE ACCESS FULL              | PURSASL               |    12M|   359M|
| 77611   (1)| 00:15:32 |


|  83 |            TABLE ACCESS BY INDEX ROWID      | PURREQ                |     1 |    30 |
|     2   (0)| 00:00:01 |


|  84 |             INDEX UNIQUE SCAN               | PURREQ_U              |     1 |       |
|     1   (0)| 00:00:01 |


----------------------------------------------------------------------------------------------------
-------------------------






已选择155行。


3.创建sql tuning任务


DECLARE
 my_task_name VARCHAR2(30);
BEGIN
  my_task_name := DBMS_SQLTUNE.CREATE_TUNING_TASK(
         SQL_ID      => '7ysgr9qfhfgtr',
         scope       => 'COMPREHENSIVE',
         time_limit  => 60,
         task_name   => 'tunning_task_7ysgr9qfhfgtr', 
         description => 'Task to tune a query on  7ysgr9qfhfgtr');
END;
/ 






4.查看创建的信息


SQL> SELECT TASK_NAME FROM   DBA_ADVISOR_LOG WHERE  OWNER = 'SYS' and TASK_NAME='tunning_task_7ysgr9qfhfgtr';




TASK_NAME
------------------------------------------------------------
tunning_task_7ysgr9qfhfgtr


5.执行sql tuning任务


BEGIN
  DBMS_SQLTUNE.EXECUTE_TUNING_TASK( task_name => 'tunning_task_7ysgr9qfhfgtr' );
END;
/


6.查看sql tunning任务状态


SQL> SELECT status FROM   USER_ADVISOR_TASKS WHERE  task_name = 'tunning_task_7ysgr9qfhfgtr';


STATUS
-----------
COMPLETED






7.展示sql tunning结果


SET LONG 10000
SET LONGCHUNKSIZE 1000
SET LINESIZE 100
SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK('tunning_task_7ysgr9qfhfgtr') FROM   DUAL;




SQL> SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK('tunning_task_7ysgr9qfhfgtr') FROM   DUAL;


DBMS_SQLTUNE.REPORT_TUNING_TASK('TUNNING_TASK_7YSGR9QFHFGTR')
----------------------------------------------------------------------------------------------------
GENERAL INFORMATION SECTION
-------------------------------------------------------------------------------
Tuning Task Name   : tunning_task_7ysgr9qfhfgtr
Tuning Task Owner  : SYS
Workload Type      : Single SQL Statement
Execution Count    : 2
Current Execution  : EXEC_15012
Execution Type     : TUNE SQL
Scope              : COMPREHENSIVE
Time Limit(seconds): 60
Completion Status  : INTERRUPTED
Started at         : 02/16/2017 13:45:43
Completed at       : 02/16/2017 13:46:47


-------------------------------------------------------------------------------
Error: ORA-13639: 当前操作因超时而中断。
-------------------------------------------------------------------------------


-------------------------------------------------------------------------------
Schema Name: JC800
SQL ID     : 7ysgr9qfhfgtr
SQL Text   : INSERT INTO di_te_purstockbill
             (PURORG, plant,purchasereqno, itemno, purstockbillid,
              ordtype, client, purdocno,
              createddate, vendorno, purdocitemno, mtlno, ordpriceunit,
              netvalue, vendordesc, purgrp, itemdeliverydate, quantity,
              price,purgrpdesc,buyliststrdes,storelocation,estimatedpriceindic
             ,docdate,remark,remark1,proposerID,proposerDesc
             ,createdby,promotion,matbrand,VOLUMEWEIGHT,purdocitemid,purdochea
             derid,priConfiDate,di_opertype)
             SELECT *
               FROM (SELECT d.*, 'U'
              FROM (SELECT   PURORG, plant,purchasereqno, itemno,
             purstockbillid,
             ordtype,min( :1), purdocno, lastchangedon,
             vendorno, purdoclineno, mtlno, ordpriceunit,
             netvalue, description, purgrp,
             MIN (itemdeliverydate), quantity,
             price,purgrpdesc,buyliststrdes,storelocation,estimatedpriceindic,
             docdate,remark,remark1,proposerID,proposerDesc,createdby
             ,promotion,matbrand,VOLUMEWEIGHT,purdocitemid,purdocheaderid,priC
             onfiDate
                FROM (SELECT b.PURORG, c.plant,c.purchasereqno, c.itemno,
             c.purdocitemid as purstockbillid,
               b.ordtype, b.purdocno, b.lastchangedon, b.vendorno,
             c.purdoclineno, c.mtlno, c.ordpriceunit, c.netvalue,
             d.description,
             b.purgrp, e.itemdeliverydate, c.quantity,
             TRUNC (TO_NUMBER (NVL2 (c.estimatedpriceindic,DECODE
             (c.priceunit,0, NULL,NULL, NULL,(c.netprice /
             c.priceunit)),NULL)), 6) price,
             g.description AS purgrpdesc, i.description AS buyliststrdes,
             c.storagelocation AS storelocation, c.estimatedpriceindic,
             b.purdocdate AS docdate, c.memo AS remark,
             c.memo1 as remark1,j.createdby as proposerID,k.comments as
             proposerDesc ,l.comments as createdBy,c.promotion,m.matbrand
             ,m.VOLUMEWEIGHT,c.purdocitemid,b.purdocheaderid,c.priConfiDate
              FROM pursasl e,purdocitem c,purdocheader b,puroutstobillvoutyp
             a,purvendormaster d,purgroup f,purgrouptrl g,purdoctype
             h,purdoctypetrl i,purreq j,aduser k,aduser l,MMRGenMtl m
              WHERE e.purdocno(+) = c.purdocno AND e.purdoclineno(+) =
             c.purdoclineno AND e.client(+) = c.client
               AND b.purchasingdocctg = 'F' AND b.ordtype = a.ordtype AND
             b.purchasingdocctg = a.purdocctg AND b.client = a.client
               AND c.purdocno = b.purdocno AND c.client = b.client AND NVL
             (c.purdocdeletionindic, 'N') = 'N' AND c.client = :2
               AND b.vendorno = d.vendorno AND b.client = d.client
               AND b.purgrp = f.purgroup AND b.client = f.client AND
             f.purgroupid = g.purgroupid(+) AND g.LANGUAGE(+) = :3
               AND b.ordtype = h.purdoctype AND b.client = h.client  AND
             b.purchasingdocctg = h.purdocctg AND h.purdoctypeid =
             i.purdoctypeid(+) AND i.LANGUAGE(+) = :3
              AND c.purchasereqno = j.purchasereqno(+)
              AND c.itemno = j.itemno(+)  AND c.client = j.client(+) AND
             j.createdby = k.NAME(+)  AND j.client = k.client(+) AND
             k.LANGUAGE(+) = :3
             and b.client=l.client(+) and b.createdBy=l.NAME(+) AND
             l.LANGUAGE(+) = :3 and c.client=m.client(+) and
             c.mtlno=m.mtlno(+) ) a
                    GROUP BY PURORG, plant,purchasereqno,
             itemno,
             ordtype,
             purdocno,
             lastchangedon,
             vendorno,
             purdoclineno,
             mtlno,
             ordpriceunit,
             netvalue,
             description,
             purgrp,
             quantity,
             price,
             purgrpdesc,buyliststrdes,storelocation,estimatedpriceindic,docdat
             e,remark,remark1,proposerID,proposerDesc,createdby,promotion,matb
             rand,VOLUMEWEIGHT,purstockbillid,purdocitemid,purdocheaderid,priC
             onfiDate
             MINUS
             SELECT PURORG, plant,purchasereqno, itemno, purstockbillid,
             ordtype, client, purdocno, createddate,
             vendorno, purdocitemno, mtlno, ordpriceunit,
             netvalue, vendordesc, purgrp,
             itemdeliverydate, quantity, price,
             purgrpdesc,buyliststrdes,storelocation,estimatedpriceindic,docdat
             e,remark,remark1,proposerID,proposerDesc,createdby,promotion,matb
             rand ,VOLUMEWEIGHT,purdocitemid,purdocheaderid,priConfiDate
              FROM purstockbill
             WHERE di_opertype <> 'D') d
             UNION
             SELECT d.*, 'D'
              FROM (SELECT PURORG, plant,purchasereqno, itemno,
             purstockbillid,
             ordtype, client, purdocno, createddate,
             vendorno, purdocitemno, mtlno, ordpriceunit,
             netvalue, vendordesc, purgrp,
             itemdeliverydate, quantity, price,
             purgrpdesc,buyliststrdes,storelocation,estimatedpriceindic,docdat
             e,remark,remark1,proposerID,proposerDesc,createdby,promotion,matb
             rand,VOLUMEWEIGHT,purdocitemid,purdocheaderid,priConfiDate
              FROM purstockbill
             WHERE di_opertype <> 'D'
             MINUS
             SELECT   PURORG, plant,purchasereqno, itemno, purstockbillid,
             ordtype,min( :1), purdocno, lastchangedon,
             vendorno, purdoclineno, mtlno, ordpriceunit,
             netvalue, description, purgrp,
             MIN (itemdeliverydate), quantity,
             price,purgrpdesc,buyliststrdes,storelocation,estimatedpriceindic,
             docdate,remark,remark1,proposerID,proposerDesc,createdby,promotio
             n,matbrand,VOLUMEWEIGHT,purdocitemid,purdocheaderid,priConfiDate
                FROM (SELECT b.PURORG, c.plant,c.purchasereqno, c.itemno,
             c.purdocitemid as purstockbillid,
               b.ordtype, b.purdocno, b.lastchangedon, b.vendorno,
             c.purdoclineno, c.mtlno, c.ordpriceunit, c.netvalue,
             d.description,
             b.purgrp, e.itemdeliverydate, c.quantity,
             TRUNC (TO_NUMBER (NVL2 (c.estimatedpriceindic,DECODE
             (c.priceunit,0, NULL,NULL, NULL,(c.netprice /
             c.priceunit)),NULL)), 6) price,
             g.description AS purgrpdesc, i.description AS buyliststrdes,
             c.storagelocation AS storelocation, c.estimatedpriceindic,
             b.purdocdate AS docdate, c.memo AS remark,
             c.memo1 as remark1,j.createdby as proposerID,k.comments as
             proposerDesc ,l.comments as createdBy,c.promotion,m.matbrand
             ,m.VOLUMEWEIGHT,c.purdocitemid,b.purdocheaderid,c.priConfiDate
              FROM pursasl e,purdocitem c,purdocheader b,puroutstobillvoutyp
             a,purvendormaster d,purgroup f,purgrouptrl g,purdoctype
             h,purdoctypetrl i,purreq j,aduser k,aduser l,MMRGenMtl m
              WHERE e.purdocno(+) = c.purdocno AND e.purdoclineno(+) =
             c.purdoclineno AND e.client(+) = c.client
               AND b.purchasingdocctg = 'F' AND b.ordtype = a.ordtype AND
             b.purchasingdocctg = a.purdocctg AND b.client = a.client
               AND c.purdocno = b.purdocno AND c.client = b.client AND NVL
             (c.purdocdeletionindic, 'N') = 'N' AND c.client = :2
               AND b.vendorno = d.vendorno AND b.client = d.client
               AND b.purgrp = f.purgroup AND b.client = f.client AND
             f.purgroupid = g.purgroupid(+) AND g.LANGUAGE(+) = :3
               AND b.ordtype = h.purdoctype AND b.client = h.client  AND
             b.purchasingdocctg = h.purdocctg AND h.purdoctypeid =
             i.purdoctypeid(+) AND i.LANGUAGE(+) = :3
              AND c.purchasereqno = j.purchasereqno(+)
              AND c.itemno = j.itemno(+)  AND c.client = j.client(+) AND
             j.createdby = k.NAME(+)  AND j.client = k.client(+) AND
             k.LANGUAGE(+) = :3
             and b.client=l.client(+) and b.createdBy=l.NAME(+) AND
             l.LANGUAGE(+) = :3 and c.client=m.client(+) and
             c.mtlno=m.mtlno(+) ) a
             GROUP BY PURORG, plant,purchasereqno,
             itemno,
             ordtype,
             purdocno,
             lastchangedon,
             vendorno,
             purdoclineno,
             mtlno,
             ordpriceunit,
             netvalue,
             description,
             purgrp,
             quantity,
             price,
             purgrpdesc,buyliststrdes,storelocation,estimatedpriceindic,docdat
             e,remark,remark1,proposerID,proposerDesc,createdby,promotion,matb
             rand,VOLUMEWEIGHT,purstockbillid,purdocitemid,purdocheaderid,priC
             onfiDate) d) e
Bind Variables :
 2 -  (VARCHAR2(32)):800
 3 -  (VARCHAR2(32)):zh_CN
 4 -  (VARCHAR2(32)):zh_CN
 5 -  (VARCHAR2(32)):zh_CN
 6 -  (VARCHAR2(32)):zh_CN
 8 -  (VARCHAR2(32)):800
 9 -  (VARCHAR2(32)):zh_CN
 10 -  (VARCHAR2(32)):zh_CN
 11 -  (VARCHAR2(32)):zh_CN
 12 -  (VARCHAR2(32)):zh_CN


--------


进行一下修改


BEGIN
DBMS_SQLTUNE.SET_TUNING_TASK_PARAMETER(task_name => 'tunning_task_7ysgr9qfhfgtr', parameter => 'TIME_LIMIT', value => 7200);
END;
/




SET LONG 10000
SET LONGCHUNKSIZE 1000
SET LINESIZE 100
SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK('tunning_task_7ysgr9qfhfgtr') FROM   DUAL;




SQL> SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK('tunning_task_7ysgr9qfhfgtr') FROM   DUAL;


DBMS_SQLTUNE.REPORT_TUNING_TASK('TUNNING_TASK_7YSGR9QFHFGTR')
----------------------------------------------------------------------------------------------------
GENERAL INFORMATION SECTION
-------------------------------------------------------------------------------
Tuning Task Name   : tunning_task_7ysgr9qfhfgtr
Tuning Task Owner  : SYS
Workload Type      : Single SQL Statement
Execution Count    : 2
Current Execution  : EXEC_15012
Execution Type     : TUNE SQL
Scope              : COMPREHENSIVE
Time Limit(seconds): 60
Completion Status  : INTERRUPTED
Started at         : 02/16/2017 13:45:43
Completed at       : 02/16/2017 13:46:47



-------------------------------------------------------------------------------
Schema Name: JC800
SQL ID     : 7ysgr9qfhfgtr
SQL Text   : INSERT INTO di_te_purstockbill
             (PURORG, plant,purchasereqno, itemno, purstockbillid,
              ordtype, client, purdocno,
              createddate, vendorno, purdocitemno, mtlno, ordpriceunit,
              netvalue, vendordesc, purgrp, itemdeliverydate, quantity,
              price,purgrpdesc,buyliststrdes,storelocation,estimatedpriceindic
             ,docdate,remark,remark1,proposerID,proposerDesc
             ,createdby,promotion,matbrand,VOLUMEWEIGHT,purdocitemid,purdochea
             derid,priConfiDate,di_opertype)
             SELECT *
               FROM (SELECT d.*, 'U'
              FROM (SELECT   PURORG, plant,purchasereqno, itemno,
             purstockbillid,
             ordtype,min( :1), purdocno, lastchangedon,
             vendorno, purdoclineno, mtlno, ordpriceunit,
             netvalue, description, purgrp,
             MIN (itemdeliverydate), quantity,
             price,purgrpdesc,buyliststrdes,storelocation,estimatedpriceindic,
             docdate,remark,remark1,proposerID,proposerDesc,createdby
             ,promotion,matbrand,VOLUMEWEIGHT,purdocitemid,purdocheaderid,priC
             onfiDate
                FROM (SELECT b.PURORG, c.plant,c.purchasereqno, c.itemno,
             c.purdocitemid as purstockbillid,
               b.ordtype, b.purdocno, b.lastchangedon, b.vendorno,
             c.purdoclineno, c.mtlno, c.ordpriceunit, c.netvalue,
             d.description,
             b.purgrp, e.itemdeliverydate, c.quantity,
             TRUNC (TO_NUMBER (NVL2 (c.estimatedpriceindic,DECODE
             (c.priceunit,0, NULL,NULL, NULL,(c.netprice /
             c.priceunit)),NULL)), 6) price,
             g.description AS purgrpdesc, i.description AS buyliststrdes,
             c.storagelocation AS storelocation, c.estimatedpriceindic,
             b.purdocdate AS docdate, c.memo AS remark,
             c.memo1 as remark1,j.createdby as proposerID,k.comments as
             proposerDesc ,l.comments as createdBy,c.promotion,m.matbrand
             ,m.VOLUMEWEIGHT,c.purdocitemid,b.purdocheaderid,c.priConfiDate
              FROM pursasl e,purdocitem c,purdocheader b,puroutstobillvoutyp
             a,purvendormaster d,purgroup f,purgrouptrl g,purdoctype
             h,purdoctypetrl i,purreq j,aduser k,aduser l,MMRGenMtl m
              WHERE e.purdocno(+) = c.purdocno AND e.purdoclineno(+) =
             c.purdoclineno AND e.client(+) = c.client
               AND b.purchasingdocctg = 'F' AND b.ordtype = a.ordtype AND
             b.purchasingdocctg = a.purdocctg AND b.client = a.client
               AND c.purdocno = b.purdocno AND c.client = b.client AND NVL
             (c.purdocdeletionindic, 'N') = 'N' AND c.client = :2
               AND b.vendorno = d.vendorno AND b.client = d.client
               AND b.purgrp = f.purgroup AND b.client = f.client AND
             f.purgroupid = g.purgroupid(+) AND g.LANGUAGE(+) = :3
               AND b.ordtype = h.purdoctype AND b.client = h.client  AND
 TRUNC (TO_NUMBER (NVL2 (c.estimatedpriceindic,DECODE
             (c.priceunit,0, NULL,NULL, NULL,(c.netprice /
             c.priceunit)),NULL)), 6) price,
             g.description AS purgrpdesc, i.description AS buyliststrdes,
             c.storagelocation AS storelocation, c.estimatedpriceindic,
             b.purdocdate AS docdate, c.memo AS remark,
             c.memo1 as remark1,j.createdby as proposerID,k.comments as
             proposerDesc ,l.comments as createdBy,c.promotion,m.matbrand
             ,m.VOLUMEWEIGHT,c.purdocitemid,b.purdocheaderid,c.priConfiDate
              FROM pursasl e,purdocitem c,purdocheader b,puroutstobillvoutyp
             a,purvendormaster d,purgroup f,purgrouptrl g,purdoctype
             h,purdoctypetrl i,purreq j,aduser k,aduser l,MMRGenMtl m
              WHERE e.purdocno(+) = c.purdocno AND e.purdoclineno(+) =
             c.purdoclineno AND e.client(+) = c.client
               AND b.purchasingdocctg = 'F' AND b.ordtype = a.ordtype AND
             b.purchasingdocctg = a.purdocctg AND b.client = a.client
               AND c.purdocno = b.purdocno AND c.client = b.client AND NVL
             (c.purdocdeletionindic, 'N') = 'N' AND c.client = :2
               AND b.vendorno = d.vendorno AND b.client = d.client
               AND b.purgrp = f.purgroup AND b.client = f.client AND
             f.purgroupid = g.purgroupid(+) AND g.LANGUAGE(+) = :3
               AND b.ordtype = h.purdoctype AND b.client = h.client  AND
             b.purchasingdocctg = h.purdocctg AND h.purdoctypeid =
             i.purdoctypeid(+) AND i.LANGUAGE(+) = :3
              AND c.purchasereqno = j.purchasereqno(+)
              AND c.itemno = j.itemno(+)  AND c.client = j.client(+) AND
             j.createdby = k.NAME(+)  AND j.client = k.client(+) AND
             k.LANGUAGE(+) = :3
             and b.client=l.client(+) and b.createdBy=l.NAME(+) AND
             l.LANGUAGE(+) = :3 and c.client=m.client(+) and
             c.mtlno=m.mtlno(+) ) a
                    GROUP BY PURORG, plant,purchasereqno,
             itemno,
             ordtype,
             purdocno,
             lastchangedon,
             vendorno,
             purdoclineno,
             mtlno,
             ordpriceunit,
             netvalue,
             description,
             purgrp,
             quantity,
             price,
             purgrpdesc,buyliststrdes,storelocation,estimatedpriceindic,docdat
             e,remark,remark1,proposerID,proposerDesc,createdby,promotion,matb
             rand,VOLUMEWEIGHT,purstockbillid,purdocitemid,purdocheaderid,priC
             onfiDate
             MINUS
             SELECT PURORG, plant,purchasereqno, itemno, purstockbillid,
             ordtype, client, purdocno, createddate,
             vendorno, purdocitemno, mtlno, ordpriceunit,
             netvalue, vendordesc, purgrp,
             itemdeliverydate, quantity, price,
             purgrpdesc,buyliststrdes,storelocation,estimatedpriceindic,docdat
             e,remark,remark1,proposerID,proposerDesc,createdby,promotion,matb
             rand ,VOLUMEWEIGHT,purdocitemid,purdocheaderid,priConfiDate
              FROM purstockbill
             WHERE di_opertype <> 'D') d
             UNION
             SELECT d.*, 'D'
              FROM (SELECT PURORG, plant,purchasereqno, itemno,
             purstockbillid,
             ordtype, client, purdocno, createddate,
             vendorno, purdocitemno, mtlno, ordpriceunit,
             netvalue, vendordesc, purgrp,
             itemdeliverydate, quantity, price,
             purgrpdesc,buyliststrdes,storelocation,estimatedpriceindic,docdat
             e,remark,remark1,proposerID,proposerDesc,createdby,promotion,matb
             rand,VOLUMEWEIGHT,purdocitemid,purdocheaderid,priConfiDate
              FROM purstockbill
             WHERE di_opertype <> 'D'
             MINUS
             SELECT   PURORG, plant,purchasereqno, itemno, purstockbillid,
             ordtype,min( :1), purdocno, lastchangedon,
             vendorno, purdoclineno, mtlno, ordpriceunit,
             netvalue, description, purgrp,
             MIN (itemdeliverydate), quantity,
             price,purgrpdesc,buyliststrdes,storelocation,estimatedpriceindic,
             docdate,remark,remark1,proposerID,proposerDesc,createdby,promotio
             n,matbrand,VOLUMEWEIGHT,purdocitemid,purdocheaderid,priConfiDate
                FROM (SELECT b.PURORG, c.plant,c.purchasereqno, c.itemno,
             c.purdocitemid as purstockbillid,
               b.ordtype, b.purdocno, b.lastchangedon, b.vendorno,
             c.purdoclineno, c.mtlno, c.ordpriceunit, c.netvalue,
             d.description,
             b.purgrp, e.itemdeliverydate, c.quantity,
             TRUNC (TO_NUMBER (NVL2 (c.estimatedpriceindic,DECODE
             (c.priceunit,0, NULL,NULL, NULL,(c.netprice /
             c.priceunit)),NULL)), 6) price,
             g.description AS purgrpdesc, i.description AS buyliststrdes,
             c.storagelocation AS storelocation, c.estimatedpriceindic,
             b.purdocdate AS docdate, c.memo AS remark,
             c.memo1 as remark1,j.createdby as proposerID,k.comments as
             proposerDesc ,l.comments as createdBy,c.promotion,m.matbrand
             ,m.VOLUMEWEIGHT,c.purdocitemid,b.purdocheaderid,c.priConfiDate
              FROM pursasl e,purdocitem c,purdocheader b,puroutstobillvoutyp
             a,purvendormaster d,purgroup f,purgrouptrl g,purdoctype
             h,purdoctypetrl i,purreq j,aduser k,aduser l,MMRGenMtl m
              WHERE e.purdocno(+) = c.purdocno AND e.purdoclineno(+) =
             c.purdoclineno AND e.client(+) = c.client
               AND b.purchasingdocctg = 'F' AND b.ordtype = a.ordtype AND
             b.purchasingdocctg = a.purdocctg AND b.client = a.client
               AND c.purdocno = b.purdocno AND c.client = b.client AND NVL
             (c.purdocdeletionindic, 'N') = 'N' AND c.client = :2
               AND b.vendorno = d.vendorno AND b.client = d.client
               AND b.purgrp = f.purgroup AND b.client = f.client AND
             f.purgroupid = g.purgroupid(+) AND g.LANGUAGE(+) = :3
               AND b.ordtype = h.purdoctype AND b.client = h.client  AND
             b.purchasingdocctg = h.purdocctg AND h.purdoctypeid =
             i.purdoctypeid(+) AND i.LANGUAGE(+) = :3
              AND c.purchasereqno = j.purchasereqno(+)
              AND c.itemno = j.itemno(+)  AND c.client = j.client(+) AND
             j.createdby = k.NAME(+)  AND j.client = k.client(+) AND
             k.LANGUAGE(+) = :3
             and b.client=l.client(+) and b.createdBy=l.NAME(+) AND
             l.LANGUAGE(+) = :3 and c.client=m.client(+) and
             c.mtlno=m.mtlno(+) ) a
             GROUP BY PURORG, plant,purchasereqno,
             itemno,
             ordtype,
             purdocno,
             lastchangedon,
             vendorno,
             purdoclineno,
             mtlno,
             ordpriceunit,
             netvalue,
             description,
             purgrp,
             quantity,
             price,
             purgrpdesc,buyliststrdes,storelocation,estimatedpriceindic,docdat
             e,remark,remark1,proposerID,proposerDesc,createdby,promotion,matb
             rand,VOLUMEWEIGHT,purstockbillid,purdocitemid,purdocheaderid,priC
             onfiDate) d) e
Bind Variables :
 2 -  (VARCHAR2(32)):800
 3 -  (VARCHAR2(32)):zh_CN
 4 -  (VARCHAR2(32)):zh_CN
 5 -  (VARCHAR2(32)):zh_CN
 6 -  (VARCHAR2(32)):zh_CN
 8 -  (VARCHAR2(32)):800
 9 -  (VARCHAR2(32)):zh_CN
 10 -  (VARCHAR2(32)):zh_CN
 11 -  (VARCHAR2(32)):zh_CN
 12 -  (VARCHAR2(32)):zh_CN


-------------------------------------------------------------------------------
FINDINGS SECTION (3 findings)
-------------------------------------------------------------------------------


1- Statistics Finding
---------------------
  尚未分析表 "JC800"."DI_TE_PURSTOCKBILL"。


  Recommendation
  --------------
  - 考虑收集此表的优化程序统计信息。
    execute dbms_stats.gather_table_stats(ownname => 'JC800', tabname =>
            'DI_TE_PURSTOCKBILL', estimate_percent =>
            DBMS_STATS.AUTO_SAMPLE_SIZE, method_opt => 'FOR ALL COLUMNS SIZE
            AUTO');


  Rationale
  ---------
    为了选择好的执行计划, 优化程序需要此表的最新统计信息。


2- SQL Profile Finding (see explain plans section below)
--------------------------------------------------------
  为此语句找到了性能更好的执行计划。


  Recommendation (estimated benefit: 69.38%)
  ------------------------------------------
  - 考虑接受推荐的 SQL 概要文件。
    execute dbms_sqltune.accept_sql_profile(task_name =>
            'tunning_task_7ysgr9qfhfgtr', task_owner => 'SYS', replace =>
            TRUE);


  Validation results
  ------------------
  已对 SQL profile 进行测试, 方法为执行其计划和原始计划并测量与计划相对应的执行统计信息。如果其中一个计划运行在很短的时间内就完成,
  则另一计划可能只执行了一部分。


                           Original Plan  With SQL Profile  % Improved
                           -------------  ----------------  ----------
  Completion Status:            COMPLETE          COMPLETE
  Elapsed Time (s):           11.062221          2.410428      78.21 %
  CPU Time (s):               10.982331          2.251658      79.49 %
  User I/O Time (s):            .002798           .144937   -5080.02 %
  Buffer Gets:                   792505            242773      69.36 %
  Physical Read Requests:             0                75
  Physical Write Requests:            0                 0
  Physical Read Bytes:                0            614400
  Physical Write Bytes:               0                 0
  Rows Processed:                 13296             13296
  Fetches:                        13296             13296
  Executions:                         1                 1


3- Restructure SQL finding (see plan 1 in explain plans section)
----------------------------------------------------------------
  在执行计划的行 ID 3 处发现开销很大的 "UNION" 操作。


  Recommendation
  --------------
  - 如果允许重复或可以保证唯一性, 则考虑用 "UNION ALL" 代替 "UNION"。


-------------------------------------------------------------------------------
ADDITIONAL INFORMATION SECTION
-------------------------------------------------------------------------------
- 优化程序不能合并位于执行计划的行 ID 45 处的视图。. 优化程序不能合并包含设置运算符的视图。.
- 优化程序不能合并位于执行计划的行 ID 5 处的视图。. 优化程序不能合并包含设置运算符的视图。.
- 优化程序不能合并位于执行计划的行 ID 2 处的视图。. 优化程序不能合并包含设置运算符的视图。.


-------------------------------------------------------------------------------
EXPLAIN PLANS SECTION
-------------------------------------------------------------------------------


1- Original With Adjusted Cost
------------------------------
Plan hash value: 3278049608


-----------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                                   | Name                  | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
-----------------------------------------------------------------------------------------------------------------------------
|   0 | INSERT STATEMENT                            |                       |   168K|   164M|       |   685K  (1)| 02:17:09 |
|   1 |  LOAD TABLE CONVENTIONAL                    | DI_TE_PURSTOCKBILL    |       |       |       |            |          |
|   2 |   VIEW                                      |                       |   168K|   164M|       |   685K  (1)| 02:17:09 |
|   3 |    SORT UNIQUE                              |                       |   168K|   163M|   187M|   685K (48)| 02:17:09 |
|   4 |     UNION-ALL                               |                       |       |       |       |            |          |
|   5 |      VIEW                                   |                       |   161K|   157M|       |   324K  (1)| 01:04:59 |
|   6 |       MINUS                                 |                       |       |       |       |            |          |
|   7 |        SORT UNIQUE                          |                       |   161K|    83M|    90M|            |          |
|   8 |         SORT GROUP BY                       |                       |   161K|    83M|    90M|   324K  (1)| 01:04:53 |
|*  9 |          HASH JOIN RIGHT OUTER              |                       |   161K|    83M|       |   287K  (1)| 00:57:31 |
|* 10 |           TABLE ACCESS FULL                 | ADUSER                |  4111 |   132K|       |    33   (0)| 00:00:01 |
|  11 |           NESTED LOOPS OUTER                |                       |   161K|    78M|       |   287K  (1)| 00:57:30 |
|* 12 |            HASH JOIN RIGHT OUTER            |                       |   161K|    73M|    24M|   273K  (1)| 00:54:38 |
|* 13 |             TABLE ACCESS FULL               | MMRGENMTL             |   195K|    22M|       |  3555   (2)| 00:00:43 |
|* 14 |             HASH JOIN OUTER                 |                       |   160K|    54M|    51M|   265K  (1)| 00:53:07 |
|  15 |              NESTED LOOPS                   |                       |       |       |       |            |          |
|  16 |               NESTED LOOPS                  |                       |   160K|    50M|       |   159K  (1)| 00:31:55 |
|* 17 |                HASH JOIN RIGHT OUTER        |                       | 45931 |    10M|       | 21642   (1)| 00:04:20 |
|* 18 |                 TABLE ACCESS FULL           | ADUSER                |  4110 |   132K|       |    33   (0)| 00:00:01 |
|* 19 |                 HASH JOIN                   |                       | 45931 |  9464K|       | 21608   (1)| 00:04:20 |
|* 20 |                  TABLE ACCESS FULL          | PURVENDORMASTER       |  4241 |   211K|       |    29   (0)| 00:00:01 |
|* 21 |                  HASH JOIN RIGHT OUTER      |                       | 53926 |  8425K|       | 21578   (1)| 00:04:19 |
|* 22 |                   TABLE ACCESS FULL         | PURGROUPTRL           |   249 |  6723 |       |     4   (0)| 00:00:01 |
|* 23 |                   HASH JOIN                 |                       | 53926 |  7004K|       | 21573   (1)| 00:04:19 |
|  24 |                    VIEW                     | index$_join$_010      |   249 |  3237 |       |     3  (34)| 00:00:01 |
|* 25 |                     HASH JOIN               |                       |       |       |       |            |          |
|* 26 |                      INDEX FAST FULL SCAN   | PURGROUP_U            |   249 |  3237 |       |     1   (0)| 00:00:01 |
|  27 |                      INDEX FAST FULL SCAN   | SYS_C0023218          |   249 |  3237 |       |     1   (0)| 00:00:01 |
|* 28 |                    HASH JOIN                |                       | 54036 |  6332K|       | 21570   (1)| 00:04:19 |
|* 29 |                     INDEX RANGE SCAN        | PUROUTSTOBILLVOUTYP_U |     2 |    14 |       |     1   (0)| 00:00:01 |
|* 30 |                     HASH JOIN               |                       |   648K|    69M|       | 21565   (1)| 00:04:19 |
|* 31 |                      HASH JOIN OUTER        |                       |    21 |  1029 |       |     7  (15)| 00:00:01 |
|  32 |                       VIEW                  | index$_join$_012      |    21 |   315 |       |     3  (34)| 00:00:01 |
|* 33 |                        HASH JOIN            |                       |       |       |       |            |          |
|* 34 |                         INDEX FAST FULL SCAN| PURDOCTYPE_U          |    21 |   315 |       |     1   (0)| 00:00:01 |
|  35 |                         INDEX FAST FULL SCAN| SYS_C0023208          |    21 |   315 |       |     1   (0)| 00:00:01 |
|* 36 |                       TABLE ACCESS FULL     | PURDOCTYPETRL         |    47 |  1598 |       |     4   (0)| 00:00:01 |
|* 37 |                      TABLE ACCESS FULL      | PURDOCHEADER          |  2490K|   152M|       | 21546   (1)| 00:04:19 |
|* 38 |                INDEX RANGE SCAN             | PURDOCITEM_U          |     4 |       |       |     2   (0)| 00:00:01 |
|* 39 |               TABLE ACCESS BY INDEX ROWID   | PURDOCITEM            |     3 |   249 |       |     3   (0)| 00:00:01 |
|* 40 |              TABLE ACCESS FULL              | PURSASL               |    12M|   359M|       | 78167   (1)| 00:15:39 |
|  41 |            TABLE ACCESS BY INDEX ROWID      | PURREQ                |     1 |    30 |       |     2   (0)| 00:00:01 |
|* 42 |             INDEX UNIQUE SCAN               | PURREQ_U              |     1 |       |       |     1   (0)| 00:00:01 |
|  43 |        SORT UNIQUE                          |                       |  6629 |  1728K|  2320K|            |          |
|* 44 |         TABLE ACCESS FULL                   | PURSTOCKBILL          |  6629 |  1728K|       |    88   (0)| 00:00:02 |
|  45 |      VIEW                                   |                       |  6629 |  6603K|       |   324K  (1)| 01:04:59 |
|  46 |       MINUS                                 |                       |       |       |       |            |          |
|  47 |        SORT UNIQUE                          |                       |  6629 |  1728K|  2320K|            |          |
|* 48 |         TABLE ACCESS FULL                   | PURSTOCKBILL          |  6629 |  1728K|       |    88   (0)| 00:00:02 |
|  49 |        SORT UNIQUE                          |                       |   161K|    83M|    90M|            |          |
|  50 |         SORT GROUP BY                       |                       |   161K|    83M|    90M|   324K  (1)| 01:04:53 |
|* 51 |          HASH JOIN RIGHT OUTER              |                       |   161K|    83M|       |   287K  (1)| 00:57:31 |
|* 52 |           TABLE ACCESS FULL                 | ADUSER                |  4111 |   132K|       |    33   (0)| 00:00:01 |
|  53 |           NESTED LOOPS OUTER                |                       |   161K|    78M|       |   287K  (1)| 00:57:30 |
|* 54 |            HASH JOIN RIGHT OUTER            |                       |   161K|    73M|    24M|   273K  (1)| 00:54:38 |
|* 55 |             TABLE ACCESS FULL               | MMRGENMTL             |   195K|    22M|       |  3555   (2)| 00:00:43 |
|* 56 |             HASH JOIN OUTER                 |                       |   160K|    54M|    51M|   265K  (1)| 00:53:07 |
|  57 |              NESTED LOOPS                   |                       |       |       |       |            |          |
|  58 |               NESTED LOOPS                  |                       |   160K|    50M|       |   159K  (1)| 00:31:55 |
|* 59 |                HASH JOIN RIGHT OUTER        |                       | 45931 |    10M|       | 21642   (1)| 00:04:20 |
|* 60 |                 TABLE ACCESS FULL           | ADUSER                |  4110 |   132K|       |    33   (0)| 00:00:01 |
|* 61 |                 HASH JOIN                   |                       | 45931 |  9464K|       | 21608   (1)| 00:04:20 |
|* 62 |                  TABLE ACCESS FULL          | PURVENDORMASTER       |  4241 |   211K|       |    29   (0)| 00:00:01 |
|* 63 |                  HASH JOIN RIGHT OUTER      |                       | 53926 |  8425K|       | 21578   (1)| 00:04:19 |
|* 64 |                   TABLE ACCESS FULL         | PURGROUPTRL           |   249 |  6723 |       |     4   (0)| 00:00:01 |
|* 65 |                   HASH JOIN                 |                       | 53926 |  7004K|       | 21573   (1)| 00:04:19 |
|  66 |                    VIEW                     | index$_join$_027      |   249 |  3237 |       |     3  (34)| 00:00:01 |
|* 67 |                     HASH JOIN               |                       |       |       |       |            |          |
|* 68 |                      INDEX FAST FULL SCAN   | PURGROUP_U            |   249 |  3237 |       |     1   (0)| 00:00:01 |
|  69 |                      INDEX FAST FULL SCAN   | SYS_C0023218          |   249 |  3237 |       |     1   (0)| 00:00:01 |
|* 70 |                    HASH JOIN                |                       | 54036 |  6332K|       | 21570   (1)| 00:04:19 |
|* 71 |                     INDEX RANGE SCAN        | PUROUTSTOBILLVOUTYP_U |     2 |    14 |       |     1   (0)| 00:00:01 |
|* 72 |                     HASH JOIN               |                       |   648K|    69M|       | 21565   (1)| 00:04:19 |
|* 73 |                      HASH JOIN OUTER        |                       |    21 |  1029 |       |     7  (15)| 00:00:01 |
|  74 |                       VIEW                  | index$_join$_029      |    21 |   315 |       |     3  (34)| 00:00:01 |
|* 75 |                        HASH JOIN            |                       |       |       |       |            |          |
|* 76 |                         INDEX FAST FULL SCAN| PURDOCTYPE_U          |    21 |   315 |       |     1   (0)| 00:00:01 |
|  77 |                         INDEX FAST FULL SCAN| SYS_C0023208          |    21 |   315 |       |     1   (0)| 00:00:01 |
|* 78 |                       TABLE ACCESS FULL     | PURDOCTYPETRL         |    47 |  1598 |       |     4   (0)| 00:00:01 |
|* 79 |                      TABLE ACCESS FULL      | PURDOCHEADER          |  2490K|   152M|       | 21546   (1)| 00:04:19 |
|* 80 |                INDEX RANGE SCAN             | PURDOCITEM_U          |     4 |       |       |     2   (0)| 00:00:01 |
|* 81 |               TABLE ACCESS BY INDEX ROWID   | PURDOCITEM            |     3 |   249 |       |     3   (0)| 00:00:01 |
|* 82 |              TABLE ACCESS FULL              | PURSASL               |    12M|   359M|       | 78167   (1)| 00:15:39 |
|  83 |            TABLE ACCESS BY INDEX ROWID      | PURREQ                |     1 |    30 |       |     2   (0)| 00:00:01 |
|* 84 |             INDEX UNIQUE SCAN               | PURREQ_U              |     1 |       |       |     1   (0)| 00:00:01 |
-----------------------------------------------------------------------------------------------------------------------------


Predicate Information (identified by operation id):
---------------------------------------------------


   9 - access("J"."CREATEDBY"="K"."NAME"(+) AND "J"."CLIENT"="K"."CLIENT"(+))
  10 - filter("K"."LANGUAGE"(+)=:3)
  12 - access("C"."CLIENT"="M"."CLIENT"(+) AND "C"."MTLNO"="M"."MTLNO"(+))
  13 - filter("M"."CLIENT"(+)=:2)
  14 - access("E"."PURDOCNO"(+)="C"."PURDOCNO" AND "E"."PURDOCLINENO"(+)="C"."PURDOCLINENO" AND
              "E"."CLIENT"(+)="C"."CLIENT")
  17 - access("B"."CLIENT"="L"."CLIENT"(+) AND "B"."CREATEDBY"="L"."NAME"(+))
  18 - filter("L"."LANGUAGE"(+)=:3 AND "L"."CLIENT"(+)=:2)
  19 - access("B"."VENDORNO"="D"."VENDORNO" AND "B"."CLIENT"="D"."CLIENT")
  20 - filter("D"."CLIENT"=:2)
  21 - access("F"."PURGROUPID"="G"."PURGROUPID"(+))
  22 - filter("G"."LANGUAGE"(+)=:3)
  23 - access("B"."PURGRP"="F"."PURGROUP" AND "B"."CLIENT"="F"."CLIENT")
  25 - access(ROWID=ROWID)
  26 - filter("F"."CLIENT"=:2)
  28 - access("B"."ORDTYPE"="A"."ORDTYPE" AND "B"."PURCHASINGDOCCTG"="A"."PURDOCCTG" AND "B"."CLIENT"="A"."CLIENT")
  29 - access("A"."CLIENT"=:2 AND "A"."PURDOCCTG"='F')
  30 - access("B"."ORDTYPE"="H"."PURDOCTYPE" AND "B"."CLIENT"="H"."CLIENT" AND
              "B"."PURCHASINGDOCCTG"="H"."PURDOCCTG")
  31 - access("H"."PURDOCTYPEID"="I"."PURDOCTYPEID"(+))
  33 - access(ROWID=ROWID)
  34 - filter("H"."CLIENT"=:2 AND "H"."PURDOCCTG"='F')
  36 - filter("I"."LANGUAGE"(+)=:3)
  37 - filter("B"."PURCHASINGDOCCTG"='F' AND "B"."CLIENT"=:2)
  38 - access("C"."PURDOCNO"="B"."PURDOCNO" AND "C"."CLIENT"=:2)
       filter("C"."CLIENT"=:2)
  39 - filter(NVL("C"."PURDOCDELETIONINDIC",'N')='N')
  40 - filter("E"."CLIENT"(+)=:2)
  42 - access("C"."PURCHASEREQNO"="J"."PURCHASEREQNO"(+) AND "C"."ITEMNO"="J"."ITEMNO"(+) AND "J"."CLIENT"(+)=:2)
  44 - filter("DI_OPERTYPE"<>'D')
  48 - filter("DI_OPERTYPE"<>'D')
  51 - access("J"."CREATEDBY"="K"."NAME"(+) AND "J"."CLIENT"="K"."CLIENT"(+))
  52 - filter("K"."LANGUAGE"(+)=:3)
  54 - access("C"."CLIENT"="M"."CLIENT"(+) AND "C"."MTLNO"="M"."MTLNO"(+))
  55 - filter("M"."CLIENT"(+)=:2)
  56 - access("E"."PURDOCNO"(+)="C"."PURDOCNO" AND "E"."PURDOCLINENO"(+)="C"."PURDOCLINENO" AND
              "E"."CLIENT"(+)="C"."CLIENT")
  59 - access("B"."CLIENT"="L"."CLIENT"(+) AND "B"."CREATEDBY"="L"."NAME"(+))
  60 - filter("L"."LANGUAGE"(+)=:3 AND "L"."CLIENT"(+)=:2)
  61 - access("B"."VENDORNO"="D"."VENDORNO" AND "B"."CLIENT"="D"."CLIENT")
  62 - filter("D"."CLIENT"=:2)
  63 - access("F"."PURGROUPID"="G"."PURGROUPID"(+))
  64 - filter("G"."LANGUAGE"(+)=:3)
  65 - access("B"."PURGRP"="F"."PURGROUP" AND "B"."CLIENT"="F"."CLIENT")
  67 - access(ROWID=ROWID)
  68 - filter("F"."CLIENT"=:2)
  70 - access("B"."ORDTYPE"="A"."ORDTYPE" AND "B"."PURCHASINGDOCCTG"="A"."PURDOCCTG" AND "B"."CLIENT"="A"."CLIENT")
  71 - access("A"."CLIENT"=:2 AND "A"."PURDOCCTG"='F')
  72 - access("B"."ORDTYPE"="H"."PURDOCTYPE" AND "B"."CLIENT"="H"."CLIENT" AND
              "B"."PURCHASINGDOCCTG"="H"."PURDOCCTG")
  73 - access("H"."PURDOCTYPEID"="I"."PURDOCTYPEID"(+))
  75 - access(ROWID=ROWID)
  76 - filter("H"."CLIENT"=:2 AND "H"."PURDOCCTG"='F')
  78 - filter("I"."LANGUAGE"(+)=:3)
  79 - filter("B"."PURCHASINGDOCCTG"='F' AND "B"."CLIENT"=:2)
  80 - access("C"."PURDOCNO"="B"."PURDOCNO" AND "C"."CLIENT"=:2)
       filter("C"."CLIENT"=:2)
  81 - filter(NVL("C"."PURDOCDELETIONINDIC",'N')='N')
  82 - filter("E"."CLIENT"(+)=:2)
  84 - access("C"."PURCHASEREQNO"="J"."PURCHASEREQNO"(+) AND "C"."ITEMNO"="J"."ITEMNO"(+) AND "J"."CLIENT"(+)=:2)


2- Using SQL Profile
--------------------
Plan hash value: 3522574749


---------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                                 | Name                  | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
---------------------------------------------------------------------------------------------------------------------------
|   0 | INSERT STATEMENT                          |                       |  9913 |  9903K|       | 79784   (1)| 00:15:58 |
|   1 |  LOAD TABLE CONVENTIONAL                  | DI_TE_PURSTOCKBILL    |       |       |       |            |          |
|   2 |   VIEW                                    |                       |  9913 |  9903K|       | 79784   (1)| 00:15:58 |
|   3 |    SORT UNIQUE                            |                       |  9913 |  9874K|    11M| 79784  (51)| 00:15:58 |
|   4 |     UNION-ALL                             |                       |       |       |       |            |          |
|   5 |      VIEW                                 |                       |  3284 |  3271K|       | 38828   (1)| 00:07:46 |
|   6 |       MINUS                               |                       |       |       |       |            |          |
|   7 |        SORT UNIQUE                        |                       |  3284 |  1731K|  1888K|            |          |
|   8 |         SORT GROUP BY                     |                       |  3284 |  1731K|  1888K| 38355   (1)| 00:07:41 |
|*  9 |          HASH JOIN OUTER                  |                       |  3284 |  1731K|       | 37599   (1)| 00:07:32 |
|  10 |           NESTED LOOPS OUTER              |                       |  3265 |  1335K|       | 34042   (1)| 00:06:49 |
|* 11 |            HASH JOIN RIGHT OUTER          |                       |  3265 |  1243K|       | 24768   (1)| 00:04:58 |
|* 12 |             TABLE ACCESS FULL             | ADUSER                |  4111 |   132K|       |    33   (0)| 00:00:01 |
|  13 |             NESTED LOOPS OUTER            |                       |  3265 |  1138K|       | 24734   (1)| 00:04:57 |
|  14 |              NESTED LOOPS                 |                       |  3265 |  1042K|       | 24442   (1)| 00:04:54 |
|* 15 |               HASH JOIN                   |                       |   934 |   222K|       | 21638   (1)| 00:04:20 |
|* 16 |                HASH JOIN RIGHT OUTER      |                       |  1097 |   206K|       | 21608   (1)| 00:04:20 |
|* 17 |                 TABLE ACCESS FULL         | PURGROUPTRL           |   249 |  6723 |       |     4   (0)| 00:00:01 |
|* 18 |                 HASH JOIN OUTER           |                       |  1097 |   177K|       | 21603   (1)| 00:04:20 |
|* 19 |                  HASH JOIN                |                       |  1097 |   142K|       | 21570   (1)| 00:04:19 |
|  20 |                   VIEW                    | index$_join$_010      |   249 |  3237 |       |     3  (34)| 00:00:01 |
|* 21 |                    HASH JOIN              |                       |       |       |       |            |          |
|* 22 |                     INDEX FAST FULL SCAN  | PURGROUP_U            |   249 |  3237 |       |     1   (0)| 00:00:01 |
|  23 |                     INDEX FAST FULL SCAN  | SYS_C0023218          |   249 |  3237 |       |     1   (0)| 00:00:01 |
|* 24 |                   HASH JOIN RIGHT OUTER   |                       |  1099 |   128K|       | 21567   (1)| 00:04:19 |
|* 25 |                    TABLE ACCESS FULL      | PURDOCTYPETRL         |    47 |  1598 |       |     4   (0)| 00:00:01 |
|* 26 |                    HASH JOIN              |                       |  1099 | 94514 |       | 21562   (1)| 00:04:19 |
|  27 |                     VIEW                  | index$_join$_012      |    21 |   315 |       |     3  (34)| 00:00:01 |
|* 28 |                      HASH JOIN            |                       |       |       |       |            |          |
|* 29 |                       INDEX FAST FULL SCAN| PURDOCTYPE_U          |    21 |   315 |       |     1   (0)| 00:00:01 |
|  30 |                       INDEX FAST FULL SCAN| SYS_C0023208          |    21 |   315 |       |     1   (0)| 00:00:01 |
|* 31 |                     HASH JOIN             |                       |  1577 |   109K|       | 21559   (1)| 00:04:19 |
|* 32 |                      INDEX RANGE SCAN     | PUROUTSTOBILLVOUTYP_U |     2 |    14 |       |     1   (0)| 00:00:01 |
|* 33 |                      TABLE ACCESS FULL    | PURDOCHEADER          |  2490K|   152M|       | 21546   (1)| 00:04:19 |
|* 34 |                  TABLE ACCESS FULL        | ADUSER                |  4110 |   132K|       |    33   (0)| 00:00:01 |
|* 35 |                TABLE ACCESS FULL          | PURVENDORMASTER       |  4241 |   211K|       |    29   (0)| 00:00:01 |
|* 36 |               TABLE ACCESS BY INDEX ROWID | PURDOCITEM            |     3 |   249 |       |     3   (0)| 00:00:01 |
|* 37 |                INDEX RANGE SCAN           | PURDOCITEM_U          |     4 |       |       |     2   (0)| 00:00:01 |
|  38 |              TABLE ACCESS BY INDEX ROWID  | PURREQ                |     1 |    30 |       |     2   (0)| 00:00:01 |
|* 39 |               INDEX UNIQUE SCAN           | PURREQ_U              |     1 |       |       |     1   (0)| 00:00:01 |
|  40 |            TABLE ACCESS BY INDEX ROWID    | PURSASL               |     1 |    29 |       |     3   (0)| 00:00:01 |
|* 41 |             INDEX RANGE SCAN              | PURSASL_U             |     1 |       |       |     2   (0)| 00:00:01 |
|* 42 |           TABLE ACCESS FULL               | MMRGENMTL             |   195K|    22M|       |  3555   (2)| 00:00:43 |
|  43 |        SORT UNIQUE                        |                       |  6629 |  1728K|  2320K|            |          |
|* 44 |         TABLE ACCESS FULL                 | PURSTOCKBILL          |  6629 |  1728K|       |    88   (0)| 00:00:02 |
|  45 |      VIEW                                 |                       |  6629 |  6603K|       | 38828   (1)| 00:07:46 |
|  46 |       MINUS                               |                       |       |       |       |            |          |
|  47 |        SORT UNIQUE                        |                       |  6629 |  1728K|  2320K|            |          |
|* 48 |         TABLE ACCESS FULL                 | PURSTOCKBILL          |  6629 |  1728K|       |    88   (0)| 00:00:02 |
|  49 |        SORT UNIQUE                        |                       |  3284 |  1731K|  1888K|            |          |
|  50 |         SORT GROUP BY                     |                       |  3284 |  1731K|  1888K| 38355   (1)| 00:07:41 |
|* 51 |          HASH JOIN OUTER                  |                       |  3284 |  1731K|       | 37599   (1)| 00:07:32 |
|  52 |           NESTED LOOPS OUTER              |                       |  3265 |  1335K|       | 34042   (1)| 00:06:49 |
|* 53 |            HASH JOIN RIGHT OUTER          |                       |  3265 |  1243K|       | 24768   (1)| 00:04:58 |
|* 54 |             TABLE ACCESS FULL             | ADUSER                |  4111 |   132K|       |    33   (0)| 00:00:01 |
|  55 |             NESTED LOOPS OUTER            |                       |  3265 |  1138K|       | 24734   (1)| 00:04:57 |
|  56 |              NESTED LOOPS                 |                       |  3265 |  1042K|       | 24442   (1)| 00:04:54 |
|* 57 |               HASH JOIN                   |                       |   934 |   222K|       | 21638   (1)| 00:04:20 |
|* 58 |                HASH JOIN RIGHT OUTER      |                       |  1097 |   206K|       | 21608   (1)| 00:04:20 |
|* 59 |                 TABLE ACCESS FULL         | PURGROUPTRL           |   249 |  6723 |       |     4   (0)| 00:00:01 |
|* 60 |                 HASH JOIN OUTER           |                       |  1097 |   177K|       | 21603   (1)| 00:04:20 |
|* 61 |                  HASH JOIN                |                       |  1097 |   142K|       | 21570   (1)| 00:04:19 |
|  62 |                   VIEW                    | index$_join$_027      |   249 |  3237 |       |     3  (34)| 00:00:01 |
|* 63 |                    HASH JOIN              |                       |       |       |       |            |          |
|* 64 |                     INDEX FAST FULL SCAN  | PURGROUP_U            |   249 |  3237 |       |     1   (0)| 00:00:01 |
|  65 |                     INDEX FAST FULL SCAN  | SYS_C0023218          |   249 |  3237 |       |     1   (0)| 00:00:01 |
|* 66 |                   HASH JOIN RIGHT OUTER   |                       |  1099 |   128K|       | 21567   (1)| 00:04:19 |
|* 67 |                    TABLE ACCESS FULL      | PURDOCTYPETRL         |    47 |  1598 |       |     4   (0)| 00:00:01 |
|* 68 |                    HASH JOIN              |                       |  1099 | 94514 |       | 21562   (1)| 00:04:19 |
|  69 |                     VIEW                  | index$_join$_029      |    21 |   315 |       |     3  (34)| 00:00:01 |
|* 70 |                      HASH JOIN            |                       |       |       |       |            |          |
|* 71 |                       INDEX FAST FULL SCAN| PURDOCTYPE_U          |    21 |   315 |       |     1   (0)| 00:00:01 |
|  72 |                       INDEX FAST FULL SCAN| SYS_C0023208          |    21 |   315 |       |     1   (0)| 00:00:01 |
|* 73 |                     HASH JOIN             |                       |  1577 |   109K|       | 21559   (1)| 00:04:19 |
|* 74 |                      INDEX RANGE SCAN     | PUROUTSTOBILLVOUTYP_U |     2 |    14 |       |     1   (0)| 00:00:01 |
|* 75 |                      TABLE ACCESS FULL    | PURDOCHEADER          |  2490K|   152M|       | 21546   (1)| 00:04:19 |
|* 76 |                  TABLE ACCESS FULL        | ADUSER                |  4110 |   132K|       |    33   (0)| 00:00:01 |
|* 77 |                TABLE ACCESS FULL          | PURVENDORMASTER       |  4241 |   211K|       |    29   (0)| 00:00:01 |
|* 78 |               TABLE ACCESS BY INDEX ROWID | PURDOCITEM            |     3 |   249 |       |     3   (0)| 00:00:01 |
|* 79 |                INDEX RANGE SCAN           | PURDOCITEM_U          |     4 |       |       |     2   (0)| 00:00:01 |
|  80 |              TABLE ACCESS BY INDEX ROWID  | PURREQ                |     1 |    30 |       |     2   (0)| 00:00:01 |
|* 81 |               INDEX UNIQUE SCAN           | PURREQ_U              |     1 |       |       |     1   (0)| 00:00:01 |
|  82 |            TABLE ACCESS BY INDEX ROWID    | PURSASL               |     1 |    29 |       |     3   (0)| 00:00:01 |
|* 83 |             INDEX RANGE SCAN              | PURSASL_U             |     1 |       |       |     2   (0)| 00:00:01 |
|* 84 |           TABLE ACCESS FULL               | MMRGENMTL             |   195K|    22M|       |  3555   (2)| 00:00:43 |
---------------------------------------------------------------------------------------------------------------------------


Predicate Information (identified by operation id):
---------------------------------------------------


   9 - access("C"."CLIENT"="M"."CLIENT"(+) AND "C"."MTLNO"="M"."MTLNO"(+))
  11 - access("J"."CREATEDBY"="K"."NAME"(+) AND "J"."CLIENT"="K"."CLIENT"(+))
  12 - filter("K"."LANGUAGE"(+)=:3)
  15 - access("B"."VENDORNO"="D"."VENDORNO" AND "B"."CLIENT"="D"."CLIENT")
  16 - access("F"."PURGROUPID"="G"."PURGROUPID"(+))
  17 - filter("G"."LANGUAGE"(+)=:3)
  18 - access("B"."CLIENT"="L"."CLIENT"(+) AND "B"."CREATEDBY"="L"."NAME"(+))
  19 - access("B"."PURGRP"="F"."PURGROUP" AND "B"."CLIENT"="F"."CLIENT")
  21 - access(ROWID=ROWID)
  22 - filter("F"."CLIENT"=:2)
  24 - access("H"."PURDOCTYPEID"="I"."PURDOCTYPEID"(+))
  25 - filter("I"."LANGUAGE"(+)=:3)
  26 - access("B"."ORDTYPE"="H"."PURDOCTYPE" AND "B"."CLIENT"="H"."CLIENT" AND
              "B"."PURCHASINGDOCCTG"="H"."PURDOCCTG")
  28 - access(ROWID=ROWID)
  29 - filter("H"."CLIENT"=:2 AND "H"."PURDOCCTG"='F')
  31 - access("B"."ORDTYPE"="A"."ORDTYPE" AND "B"."PURCHASINGDOCCTG"="A"."PURDOCCTG" AND "B"."CLIENT"="A"."CLIENT")
  32 - access("A"."CLIENT"=:2 AND "A"."PURDOCCTG"='F')
  33 - filter("B"."PURCHASINGDOCCTG"='F' AND "B"."CLIENT"=:2)
  34 - filter("L"."LANGUAGE"(+)=:3 AND "L"."CLIENT"(+)=:2)
  35 - filter("D"."CLIENT"=:2)
  36 - filter(NVL("C"."PURDOCDELETIONINDIC",'N')='N')
  37 - access("C"."PURDOCNO"="B"."PURDOCNO" AND "C"."CLIENT"=:2)
       filter("C"."CLIENT"=:2)
  39 - access("C"."PURCHASEREQNO"="J"."PURCHASEREQNO"(+) AND "C"."ITEMNO"="J"."ITEMNO"(+) AND "J"."CLIENT"(+)=:2)
  41 - access("E"."PURDOCNO"(+)="C"."PURDOCNO" AND "E"."PURDOCLINENO"(+)="C"."PURDOCLINENO" AND "E"."CLIENT"(+)=:2)
       filter("E"."CLIENT"(+)=:2)
  42 - filter("M"."CLIENT"(+)=:2)
  44 - filter("DI_OPERTYPE"<>'D')
  48 - filter("DI_OPERTYPE"<>'D')
  51 - access("C"."CLIENT"="M"."CLIENT"(+) AND "C"."MTLNO"="M"."MTLNO"(+))
  53 - access("J"."CREATEDBY"="K"."NAME"(+) AND "J"."CLIENT"="K"."CLIENT"(+))
  54 - filter("K"."LANGUAGE"(+)=:3)
  57 - access("B"."VENDORNO"="D"."VENDORNO" AND "B"."CLIENT"="D"."CLIENT")
  58 - access("F"."PURGROUPID"="G"."PURGROUPID"(+))
  59 - filter("G"."LANGUAGE"(+)=:3)
  60 - access("B"."CLIENT"="L"."CLIENT"(+) AND "B"."CREATEDBY"="L"."NAME"(+))
  61 - access("B"."PURGRP"="F"."PURGROUP" AND "B"."CLIENT"="F"."CLIENT")
  63 - access(ROWID=ROWID)
  64 - filter("F"."CLIENT"=:2)
  66 - access("H"."PURDOCTYPEID"="I"."PURDOCTYPEID"(+))
  67 - filter("I"."LANGUAGE"(+)=:3)
  68 - access("B"."ORDTYPE"="H"."PURDOCTYPE" AND "B"."CLIENT"="H"."CLIENT" AND
              "B"."PURCHASINGDOCCTG"="H"."PURDOCCTG")
  70 - access(ROWID=ROWID)
  71 - filter("H"."CLIENT"=:2 AND "H"."PURDOCCTG"='F')
  73 - access("B"."ORDTYPE"="A"."ORDTYPE" AND "B"."PURCHASINGDOCCTG"="A"."PURDOCCTG" AND "B"."CLIENT"="A"."CLIENT")
  74 - access("A"."CLIENT"=:2 AND "A"."PURDOCCTG"='F')
  75 - filter("B"."PURCHASINGDOCCTG"='F' AND "B"."CLIENT"=:2)
  76 - filter("L"."LANGUAGE"(+)=:3 AND "L"."CLIENT"(+)=:2)
  77 - filter("D"."CLIENT"=:2)
  78 - filter(NVL("C"."PURDOCDELETIONINDIC",'N')='N')
  79 - access("C"."PURDOCNO"="B"."PURDOCNO" AND "C"."CLIENT"=:2)
       filter("C"."CLIENT"=:2)
  81 - access("C"."PURCHASEREQNO"="J"."PURCHASEREQNO"(+) AND "C"."ITEMNO"="J"."ITEMNO"(+) AND "J"."CLIENT"(+)=:2)
  83 - access("E"."PURDOCNO"(+)="C"."PURDOCNO" AND "E"."PURDOCLINENO"(+)="C"."PURDOCLINENO" AND "E"."CLIENT"(+)=:2)
       filter("E"."CLIENT"(+)=:2)
  84 - filter("M"."CLIENT"(+)=:2)


-------------------------------------------------------------------------------




看到有3个建议


1.收集表信息
2.固定执行计划
3.考虑用UNION ALL 代替 UNION


SQL TUNNING 是否可以在生产环境中发挥重要作用,还需要进一步测试


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7569309/viewspace-2133654/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: SQL TUNING Advisor
请登录后发表评论 登录
全部评论
主要负责客户现场exadata与exalogic设备的维护工作, 擅长于ORACLE数据库环境/高可用环境的搭建及故障诊断, 并且也获有 11g ocp 证书,10g ocm 证书

注册时间:2017-01-10

  • 博文量
    90
  • 访问量
    84716