1. 程式人生 > >Delete 語句帶有子查詢的sql優化

Delete 語句帶有子查詢的sql優化

DELETE STATEMENT | | 110M| 2734M| 1129 (19)| 00:00:14 | | 1 | DELETE | GV_BOOKS | | | | | |* 2 | FILTER | | | | | | | 3
| TABLE ACCESS FULL | GV_BOOKS | 86600 | 2198K| 104 (2)| 00:00:02 | | 4 | MINUS | | | | | | | 5 | MINUS | | | | | | | 6
| SORT UNIQUE NOSORT | | 1274 | 5096 | 7 (15)| 00:00:01 | |* 7 | INDEX RANGE SCAN | IX_GV_BOOKS | 1274 | 5096 | 6 (0)| 00:00:01 | | 8 | SORT UNIQUE NOSORT | | 1 | 39 | 5 (20)| 00:00:01 | | 9 | NESTED LOOPS | | 1
| 39 | 4 (0)| 00:00:01 | |* 10 | TABLE ACCESS BY INDEX ROWID | GV_ACCOUNTS | 1 | 23 | 1 (0)| 00:00:01 | |* 11 | INDEX UNIQUE SCAN | PK_GV_ACCOUNTS | 1 | | 0 (0)| 00:00:01 | |* 12 | TABLE ACCESS FULL | BP_ACCOUNT | 1 | 16 | 3 (0)| 00:00:01 | | 13 | NESTED LOOPS OUTER | | 1 | 96 | 2 (0)| 00:00:01 | | 14 | NESTED LOOPS OUTER | | 1 | 83 | 2 (0)| 00:00:01 | | 15 | NESTED LOOPS OUTER | | 1 | 70 | 2 (0)| 00:00:01 | | 16 | NESTED LOOPS OUTER | | 1 | 57 | 2 (0)| 00:00:01 | | 17 | NESTED LOOPS | | 1 | 44 | 2 (0)| 00:00:01 | |* 18 | TABLE ACCESS BY INDEX ROWID| GV_ACCOUNTS | 1 | 23 | 1 (0)| 00:00:01 | |* 19 | INDEX UNIQUE SCAN | PK_GV_ACCOUNTS | 1 | | 0 (0)| 00:00:01 | | 20 | TABLE ACCESS BY INDEX ROWID| CB_ACCOUNT | 81 | 1701 | 1 (0)| 00:00:01 | |* 21 | INDEX UNIQUE SCAN | IX_CB_ACC_NO | 1 | | 0 (0)| 00:00:01 | |* 22 | INDEX UNIQUE SCAN | ACCOUNT_EXT_KEY | 81 | 1053 | 0 (0)| 00:00:01 | |* 23 | INDEX UNIQUE SCAN | ACCOUNT_EXT_KEY | 81 | 1053 | 0 (0)| 00:00:01 | |* 24 | INDEX UNIQUE SCAN | ACCOUNT_EXT_KEY | 81 | 1053 | 0 (0)| 00:00:01 | |* 25 | INDEX UNIQUE SCAN | ACCOUNT_EXT_KEY | 81 | 1053 | 0 (0)| 00:00:01 | ------------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 2 - filter( EXISTS ( (SELECT "ACCOUNTID" FROM "GV_BOOKS" "GV_BOOKS" WHERE "ACCOUNTID"=:B1)MINUS (SELECT "A"."ACCOUNTID" FROM NSTCSA."BP_ACCOUNT" "BP_ACCOUNT","GV_ACCOUNTS" "A" WHERE "A"."ACCOUNTID"=:B2 AND "A"."DBLINK"='90' AND "A"."ACCOUNTNO"="ACNTNO")MINUS (SELECT "A"."ACCOUNTID" FROM NSTCSA."CB_ACCOUNT_EXT" "E",NSTCSA."CB_ACCOUNT_EXT" "D",NSTCSA."CB_ACCOUNT_EXT" "C",NSTCSA."CB_ACCOUNT_EXT" "B",NSTCSA."CB_ACCOUNT" "A","GV_ACCOUNTS" "A" WHERE "A"."ACCOUNTID"=:B3 AND "A"."DBLINK"='90' AND "A"."ACCOUNTNO"="A"."ACCOUNT_NO" AND "B"."EXT_KEY"(+)='CALCINTR' AND "A"."ACCOUNT_ID"="B"."ACCOUNT_ID"(+) AND "C"."EXT_KEY"(+)='DAYMODE' AND "A"."ACCOUNT_ID"="C"."ACCOUNT_ID"(+) AND "D"."EXT_KEY"(+)='FEEMODE1' AND "A"."ACCOUNT_ID"="D"."ACCOUNT_ID"(+) AND "E"."EXT_KEY"(+)='FEEMODE2' AND "A"."ACCOUNT_ID"="E"."ACCOUNT_ID"(+)))) 7 - access("ACCOUNTID"=:B1) 10 - filter("A"."DBLINK"='90') 11 - access("A"."ACCOUNTID"=:B1) 12 - filter("A"."ACCOUNTNO"="ACNTNO") 18 - filter("A"."DBLINK"='90') 19 - access("A"."ACCOUNTID"=:B1) 21 - access("A"."ACCOUNTNO"="A"."ACCOUNT_NO") 22 - access("A"."ACCOUNT_ID"="E"."ACCOUNT_ID"(+) AND "E"."EXT_KEY"(+)='FEEMODE2') 23 - access("A"."ACCOUNT_ID"="D"."ACCOUNT_ID"(+) AND "D"."EXT_KEY"(+)='FEEMODE1') 24 - access("A"."ACCOUNT_ID"="C"."ACCOUNT_ID"(+) AND "C"."EXT_KEY"(+)='DAYMODE') 25 - access("A"."ACCOUNT_ID"="B"."ACCOUNT_ID"(+) AND "B"."EXT_KEY"(+)='CALCINTR')