explain plan for
SELECT BC."SERIALNO",
BC."RELATIVESERIALNO",
BC."ARTIFICIALNO",
BC."OCCURDATE",
BC."CUSTOMERID",
BC."CUSTOMERNAME",
BC."BUSINESSTYPE",
BC."OLDBUSINESSTYPE",
BC."BUSINESSSUBTYPE",
BC."OCCURTYPE",
BC."CREDITDIGEST",
BC."CREDITCYCLE",
BC."CREDITTYPE",
BC."CURRENYLIST",
BC."CURRENCYMODE",
BC."BUSINESSTYPELIST",
BC."CALCULATEMODE",
BC."USEORGLIST",
BC."FLOWREDUCEFLAG",
BC."CONTRACTFLAG",
BC."SUBCONTRACTFLAG",
BC."SELFUSEFLAG",
BC."CREDITINDEX",
BC."CREDITREDUCESUM",
BC."LIMITATIONTERM",
BC."USETERM",
BC."CREDITAGGREEMENT",
BC."RELATIVEAGREEMENT",
BC."LOANFLAG",
BC."TOTALSUM",
BC."OURROLE",
BC."REVERSIBILITY",
BC."BILLNUM",
BC."HOUSETYPE",
BC."LCTERMTYPE",
BC."RISKATTRIBUTE",
BC."SURETYPE",
BC."SAFEGUARDTYPE",
BC."CREDITBUSINESS",
BC."BUSINESSCURRENCY",
BC."BUSINESSSUM",
BC."BUSINESSPROP",
BC."TERMYEAR",
BC."TERMMONTH",
BC."TERMDAY",
BC."LGTERM",
BC."BASERATETYPE",
BC."BASERATE",
BC."RATEFLOATTYPE",
BC."RATEFLOAT",
BC."BUSINESSRATE",
BC."ICTYPE",
BC."ICCYC",
BC."PDGRATIO",
BC."PDGSUM",
BC."PDGPAYMETHOD",
BC."PDGPAYPERIOD",
BC."PROMISESFEERATIO",
BC."PROMISESFEESUM",
BC."PROMISESFEEPERIOD",
BC."PROMISESFEEBEGIN",
BC."MFEERATIO",
BC."MFEESUM",
BC."MFEEPAYMETHOD",
BC."AGENTFEE",
BC."DEALFEE",
BC."TOTALCAST",
BC."DISCOUNTINTEREST",
BC."PURCHASERINTEREST",
BC."BARGAINORINTEREST",
BC."DISCOUNTSUM",
BC."BAILRATIO",
BC."BAILCURRENCY",
BC."BAILSUM",
BC."BAILACCOUNT",
BC."FINERATETYPE",
BC."FINERATE",
BC."DRAWINGTYPE",
BC."FIRSTDRAWINGDATE",
BC."DRAWINGPERIOD",
BC."PAYTIMES",
BC."PAYCYC",
BC."GRACEPERIOD",
BC."OVERDRAFTPERIOD",
BC."OLDLCNO",
BC."OLDLCTERMTYPE",
BC."OLDLCCURRENCY",
BC."OLDLCSUM",
BC."OLDLCLOADINGDATE",
BC."OLDLCVALIDDATE",
BC."DIRECTION",
BC."PURPOSE",
BC."PLANALLOCATION",
BC."IMMEDIACYPAYSOURCE",
BC."PAYSOURCE",
BC."CORPUSPAYMETHOD",
BC."INTERESTPAYMETHOD",
BC."PUTOUTDATE",
BC."MATURITY",
BC."THIRDPARTY1",
BC."THIRDPARTYID1",
BC."THIRDPARTY2",
BC."THIRDPARTYID2",
BC."THIRDPARTY3",
BC."THIRDPARTYID3",
BC."THIRDPARTYREGION",
BC."THIRDPARTYACCOUNTS",
BC."CARGOINFO",
BC."PROJECTNAME",
BC."OPERATIONINFO",
BC."CONTEXTINFO",
BC."SECURITIESTYPE",
BC."SECURITIESREGION",
BC."CONSTRUCTIONAREA",
BC."USEAREA",
BC."FLAG1",
BC."FLAG2",
BC."FLAG3",
BC."TRADECONTRACTNO",
BC."INVOICENO",
BC."TRADECURRENCY",
BC."TRADESUM",
BC."LCNO",
BC."PAYMENTDATE",
BC."OPERATIONMODE",
BC."BEGINDATE",
BC."ENDDATE",
BC."VOUCHCLASS",
BC."VOUCHTYPE",
BC."VOUCHTYPE1",
BC."VOUCHTYPE2",
BC."VOUCHFLAG",
BC."WARRANTOR",
BC."WARRANTORID",
BC."OTHERCONDITION",
BC."GUARANTYVALUE",
BC."GUARANTYRATE",
BC."BASEEVALUATERESULT",
BC."RISKRATE",
BC."LOWRISK",
BC."OTHERAREALOAN",
BC."LOWRISKBAILSUM",
BC."APPLYTYPE",
BC."ORIGINALPUTOUTDATE",
BC."EXTENDTIMES",
BC."LNGOTIMES",
BC."GOLNTIMES",
BC."DRTIMES",
BC."GUARANTYNO",
BC."PUTOUTSUM",
BC."ACTUALPUTOUTSUM",
BC."BALANCE",
BC."NORMALBALANCE",
BC."OVERDUEBALANCE",
BC."DULLBALANCE",
BC."BADBALANCE",
BC."INTERESTBALANCE1",
BC."INTERESTBALANCE2",
BC."FINEBALANCE1",
BC."FINEBALANCE2",
BC."OVERDUEDAYS",
BC."OWEINTERESTDAYS",
BC."TABALANCE",
BC."TAINTERESTBALANCE",
BC."TATIMES",
BC."LCATIMES",
BC."PBINTERESTSUM",
BC."PBMFEESUM",
BC."PBPDGSUM",
BC."PBLEGALCOSTSUM",
BC."POLEGALCOSTSUM",
BC."ORIGINALBADDATE",
BC."BASECLASSIFYRESULT",
BC."CLASSIFYRESULT",
BC."CLASSIFYTYPE",
BC."CLASSIFYDATE",
BC."CLASSIFYORGID",
BC."RESERVESUM",
BC."EXPECTLOSSSUM",
BC."BAILRATE",
BC."FINISHORG",
BC."FINISHTYPE",
BC."FINISHDATE",
BC."DESCRIBE1",
BC."REINFORCEFLAG",
BC."MANAGEORGID",
BC."MANAGEUSERID",
BC."RECOVERYORGID",
BC."RECOVERYUSERID",
BC."STATORGID",
BC."STATUSERID",
BC."OPERATEORGID",
BC."OPERATEUSERID",
BC."OPERATEDATE",
BC."INPUTORGID",
BC."INPUTUSERID",
BC."INPUTDATE",
BC."UPDATEDATE",
BC."PIGEONHOLEDATE",
BC."REMARK",
BC."FLAG4",
BC."PAYCURRENCY",
BC."PAYDATE",
BC."FLAG5",
BC."CLASSIFYSUM1",
BC."CLASSIFYSUM2",
BC."CLASSIFYSUM3",
BC."CLASSIFYSUM4",
BC."CLASSIFYSUM5",
BC."SHIFTTYPE",
BC."OPERATETYPE",
BC."FUNDSOURCE",
BC."CYCLEFLAG",
BC."CREDITFREEZEFLAG",
BC."SHIFTBALANCE",
BC."CLASSIFYFREQUENCY",
BC."CLASSIFYLEVEL",
BC."VOUCHNEWFLAG",
BC."ACTUALARTIFICIALNO",
BC."DELETEFLAG",
BC."ACCOUNTNO",
BC."LOANACCOUNTNO",
BC."SECONDPAYACCOUNT",
BC."ADJUSTRATETYPE",
BC."ADJUSTRATETERM",
BC."OVERINTTYPE",
BC."RATEADJUSTCYC",
BC."PDGACCOUNTNO",
BC."DEDUCTDATE",
BC."FZANBALANCE",
BC."ACCEPTINTTYPE",
BC."RATIO",
BC."THIRDPARTYADD1",
BC."THIRDPARTYZIP1",
BC."THIRDPARTYADD2",
BC."THIRDPARTYZIP2",
BC."THIRDPARTYADD3",
BC."THIRDPARTYZIP3",
BC."EFFECTAREA",
BC."TERMDATE1",
BC."TERMDATE2",
BC."TERMDATE3",
BC."FIXCYC",
BC."DESCRIBE2",
BC."CANCELSUM",
BC."CANCELINTEREST",
BC."LOANTERM",
BC."PUTOUTORGID",
BC."TEMPSAVEFLAG",
BC."OVERDUEDATE",
BC."OWEINTERESTDATE",
BC."FREEZEFLAG",
BC."APPROVEDATE",
BC."SHIFTSTATUS",
BC."RECOVERYCOGNORGID",
BC."RECOVERYCOGNUSERID",
BC."SHIFTDOCDESCRIBE",
BC."APPLYDATE",
BC."REPAYDATE",
BC."REPAYFUNDSOURCE",
BC."HEAPTYPE",
BC."LOWRISKSUM",
BC."FINISHFLAG",
BC."CONTRACTSTATUS",
BC."AUDITUSERID",
BC."LISTINSUM",
BC."RATEINSTANCE",
BC."TEXTNO",
BC."BSFLIMIT",
BC."BSFRISKSTATE",
BC."HEAPBALANCE",
BC."EXCHANGERATE",
BC."BREAKDATE",
BC."BILLTYPE",
BC."PRODUCTID",
BC."ISDIVIDED",
BC."RELATIVECONTRACTNO",
BC."COOPERATIVECLNO",
BC."COOPERATIVECLTYPE",
BC."GUARANTEESUM",
BC."CREDITSUM",
BC."PAWNSUM",
BC."PAYPRININTVL",
BC."INTMODE",
BC."OTHERAREALOAN2",
BC."PRODUCTID2",
BC."TAXLISTORNOT",
BC."CREDITDEPOSITORYSUM",
BC."OLDMANAGEORGID",
BC."CONTRALPROJECT",
BC."DEFERSTATUS",
BC."LINKTIMES",
BC."CREDITLINESUM",
BC."LISTINLIMITSUM",
BC."INDUSTRYADJUST",
BC."INDUSTRYUPGRADE",
BC."NEWINDUSTRYTYPE",
BC."CONTRALREASON",
BC."RELATIONSHIP1",
BC."RELATIONSHIP2",
BC."RELATIONSHIP3",
BC."ISPOINTCREDIT",
BC."DCPROP",
BC."DCPROP1",
BC."DCPROP2",
BC."ISDEPOSITLOAN"
FROM BUSINESS_CONTRACT BC
WHERE SERIALNO NOT IN (SELECT SERIALNO FROM TRANSFER_CONTRACT);
select * from table(dbms_xplan.display());
Plan hash value: 410066256
----------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 246K| 134M| 6510 (1)| 00:01:19 |
|* 1 | HASH JOIN RIGHT ANTI | | 246K| 134M| 6510 (1)| 00:01:19 |
| 2 | INDEX FAST FULL SCAN| PK_TRANSFER_CONTRACT | 304 | 4864 | 2 (0)| 00:00:01 |
| 3 | TABLE ACCESS FULL | BUSINESS_CONTRACT | 246K| 130M| 6507 (1)| 00:01:19 |
----------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - access("SERIALNO"="SERIALNO")
SQL> select count(*) from TRANSFER_CONTRACT;
COUNT(*)
----------
304
SQL> select count(*) from BUSINESS_CONTRACT ;
COUNT(*)
----------
246600
explain plan for
SELECT /*+ leading(BD) use_nl(BC BD) */ BC.*
FROM BUSINESS_CONTRACT BC
WHERE SERIALNO NOT IN (SELECT SERIALNO FROM TRANSFER_CONTRACT BD);
Plan hash value: 1040340129
-------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 246K| 134M| 6520 (1)| 00:01:19 |
| 1 | NESTED LOOPS ANTI | | 246K| 134M| 6520 (1)| 00:01:19 |
| 2 | TABLE ACCESS FULL| BUSINESS_CONTRACT | 246K| 130M| 6507 (1)| 00:01:19 |
|* 3 | INDEX UNIQUE SCAN| PK_TRANSFER_CONTRACT | 1 | 16 | 0 (0)| 00:00:01 |
-------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
3 - access("SERIALNO"="SERIALNO")
驱动表此时变为BUSINESS_CONTRACT,反联接无法改变驱动表