Oracle Inlist 和exists的最佳执行计划

Inlist 和 exists 的sql 优化:

  1. ID 2 in list出来326行data, ID 3和4 327次因为有一次回表操作

  2. ID 5 开始loop 总共loop 326 但是最终符合记录的之后271行,所以总共返回271行data

  3. ID 6,7,8,9,10,11开始loop ,这个数字再执行过程中一直在增加

  4. 最终ID 11 符合index UUID"=:B1 :B1 就是inlist的结果集,是5542行

  5. ID 9 和14 loop后, ID 14 从index返回11k的data,说明有重复,这部分数据给ID 8 继续loop

  6. ID 7 11k的data 只驱动ID 16进行了472次loop,由于是PK返回472行,

说明NEST LOOP SEMI进行了去重,最终返回了10958行

  1. ID 7 返回10958 驱动ID 18 匹配了10k(10233行data)
  1. ID 6 返回了 10233行data,在ID 5, 由于是semi 又去重,得到348个值和ID 20 loop,loop 348次返回271个值,

  2. 271个值就是最终的返回结果。

复制代码
-------------------------------------------------------------------------------------------------------------------------------
| Id   | Operation                                         | Name                         | Rows  | Bytes  | Cost  | Time     |
-------------------------------------------------------------------------------------------------------------------------------
|    0 | SELECT STATEMENT                                  |                              |    42 |    924 | 52453 | 00:00:03 |
|  * 1 |   FILTER                                          |                              |       |        |       |          |
|    2 |    PARTITION LIST SINGLE                          |                              |    42 |    924 | 52426 | 00:00:03 |
|  * 3 |     TABLE ACCESS FULL                             | CPB_A                        |    42 |    924 | 52426 | 00:00:03 |
|    4 |    NESTED LOOPS SEMI                              |                              |     1 |    198 |    27 | 00:00:01 |
|    5 |     NESTED LOOPS                                  |                              |     1 |    168 |    24 | 00:00:01 |
|    6 |      NESTED LOOPS SEMI                            |                              |     1 |    125 |    20 | 00:00:01 |
|    7 |       NESTED LOOPS                                |                              |     1 |    103 |    19 | 00:00:01 |
|    8 |        PARTITION LIST SINGLE                      |                              |     1 |     39 |    13 | 00:00:01 |
|  * 9 |         TABLE ACCESS BY LOCAL INDEX ROWID BATCHED | CPBA_B                       |     1 |     39 |    13 | 00:00:01 |
| * 10 |          INDEX RANGE SCAN                         | CPBA_B_FK2                   |     9 |        |     4 | 00:00:01 |
|   11 |        PARTITION LIST SINGLE                      |                              |     1 |     64 |     6 | 00:00:01 |
| * 12 |         TABLE ACCESS BY LOCAL INDEX ROWID BATCHED | CPCS_B                       |     1 |     64 |     6 | 00:00:01 |
| * 13 |          INDEX RANGE SCAN                         | CPCS_B_FK1                   |     2 |        |     3 | 00:00:01 |
| * 14 |       TABLE ACCESS BY GLOBAL INDEX ROWID BATCHED  | CBDAP_B                      |     2 |     44 |     1 | 00:00:01 |
| * 15 |        INDEX RANGE SCAN                           | CBDAP_B_PK                   |     1 |        |     0 | 00:00:01 |
| * 16 |      TABLE ACCESS BY GLOBAL INDEX ROWID BATCHED   | PPTD_B                       |     1 |     43 |     4 | 00:00:01 |
| * 17 |       INDEX RANGE SCAN                            | PPTD_B_UK1                   |     1 |        |     3 | 00:00:01 |
| * 18 |     TABLE ACCESS BY GLOBAL INDEX ROWID BATCHED    | EST_B                        | 21654 | 649620 |     3 | 00:00:01 |
| * 19 |      INDEX RANGE SCAN                             | EST_B_PK                     |     1 |        |     2 | 00:00:01 |
-------------------------------------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
------------------------------------------
* 1 - filter( EXISTS (SELECT 0
  FROM CBDAP_B   EST_B,
       EST_B     PPTD_B,
       PPTD_B    CBDAP_B,
       CBDAP_B   CPCS_B,
       CPBA_B    CPBA_B
 WHERE CPBA_B.UUID = :B1
   AND CPBA_B.CODE = :B2
   AND CPBA_B.FLAG = 'N'
   AND CPBA_B.ID = CPCS_B.UUID
   AND CPCS_B.CODE = :B3
   AND CPCS_B.FLAG = 'N'
   AND CPCS_B.ID = CBDAP_B.UUID
   AND CBDAP_B.PAID_AMT > 0
   AND CBDAP_B.FLAG = 'N'
   AND CBDAP_B.CODE = :B4
   AND CBDAP_B.UUID = PPTD_B.ID
   AND PPTD_B.CODE = :B5
   AND TO_DATE(INTERNAL_FUNCTION(PPTD_B.DATE), 'dd-MM-yy') <=
       TO_DATE(INTERNAL_FUNCTION(CPCS_B.DATE), 'dd-MM-yy')
   AND PPTD_B.FLAG = 'N'
   AND EST_B.ID = CPCS_B.UUID
   AND EST_B.NAME = 'MC'
   AND EST_B.FLAG = 'N'))
   
   
* 3 - filter(CPB_A.CODE=:1 AND (RAWTOHEX(CPB_A.ID)=:2 OR RAWTOHEX(CPB_A.ID)=:3 OR RAWTOHEX(CPB_A.ID)=:4 OR RAWTOHEX(CPB_A.ID)=:5 OR RAWTOHEX(CPB_A.ID)=:6 OR
  RAWTOHEX(CPB_A.)
* 9 - filter(CPBA_B.CODE=:B1 AND CPBA_B.FLAG='N')
* 10 - access(CPBA_B.UUID=:B1)
* 12 - filter(CPCS_B.CODE=:B1 AND CPCS_B.FLAG='N')
* 13 - access(CPBA_B.ID=CPCS_B.UUID)
* 14 - filter(EST_B.NAME='MC' AND EST_B.FLAG='N') ----join  and where  condition
* 15 - access(EST_B.ID=CPCS_B.UUID)
* 16 - filter(CBDAP_B.AMT>0 AND CBDAP_B.FLAG='N') ----join  and where 
* 17 - access(CPCS_B.ID=CBDAP_B.UUID AND CBDAP_B.CODE=:B1)
* 17 - filter(CBDAP_B.CODE=:B1)
* 18 - filter(PPTD_B.CODE=:B1 AND TO_DATE(DATE),'dd-MM-yy')<=TO_DATE(DATE),'dd-MM-yy') AND PPTD_B.FLAG='N')
* 19 - access(CBDAP_B.UUID=PPTD_B.ID)






SELECT CPB_A.ID
  FROM  CPB_A
 WHERE EXISTS (SELECT NULL
          FROM  CPBA_B
         INNER JOIN  CPCS_B
            ON CPBA_B.ID = CPCS_B.UUID
           AND CPCS_B.CODE = CPB_A.CODE
           AND CPCS_B.FLAG = 'N'
         INNER JOIN  CBDAP_B
            ON CPCS_B.ID = CBDAP_B.UUID2
           AND CBDAP_B.CODE = CPB_A.CODE
           AND CBDAP_B.FLAG = 'N'
         INNER JOIN  PPTD_B
            ON CBDAP_B.UUID3 = PPTD_B.ID
           AND PPTD_B.CODE = CPB_A.CODE
           AND PPTD_B.FLAG = 'N'
         INNER JOIN  EST_B
            ON EST_B.ID = CPCS_B.UUID5
           AND EST_B.FLAG = 'N'
         WHERE CPB_A.ID = CPBA_B.UUID4
           AND EST_B.NAME = 'MC'
           AND (CBDAP_B.AMT > 0 AND
               TO_DATE(PPTD_B.DATE, 'dd-MM-yy') <=
               TO_DATE(CPCS_B.DATE, 'dd-MM-yy'))
           AND CPBA_B.CODE = CPB_A.CODE
           AND CPBA_B.FLAG = 'N')
   AND CPB_A.CODE = :1
   AND CPB_A.ID IN (:2,
                    :3,
                    :4,
                    :5,
                    :6,
                    :7,
                    :8,
                    :9,
                    :10,
                    :11,
                    :12,
                    :13,
                    :14,
                    :15,
                    :16,
                    :17,
                    :18,
                    :19,
                    :20,
                    :21,
                    :22,
                    :23,
                    :24,
                    :25,
                    :26,
                    :27,
                    :28,
                    :29,
                    :30,
                    :31,
                    :32,
                    :33,
                    :34,
                    :35,
                    :36,
                    :37,
                    :38,
                    :39,
                    :40,
                    :41,
                    :42,
                    :43,
                    :44,
                    :45,
                    :46,
                    :47,
                    :48,
                    :49,
                    :50,
                    :51,
                    :52,
                    :53,
                    :54,
                    :55,
                    :56,
                    :57,
                    :58,
                    :59,
                    :60,
                    :61,
                    :62,
                    :63,
                    :64,
                    :65,
                    :66,
                    :67,
                    :68,
                    :69,
                    :70,
                    :71,
                    :72,
                    :73,
                    :74,
                    :75,
                    :76,
                    :77,
                    :78,
                    :79,
                    :80,
                    :81,
                    :82,
                    :83,
                    :84,
                    :85,
                    :86,
                    :87,
                    :88,
                    :89,
                    :90,
                    :91,
                    :92,
                    :93,
                    :94,
                    :95,
                    :96,
                    :97,
                    :98,
                    :99,
                    :100,
                    :101,
                    :102,
                    :103,
                    :104,
                    :105,
                    :106,
                    :107,
                    :108,
                    :109,
                    :110,
                    :111,
                    :112,
                    :113,
                    :114,
                    :115,
                    :116,
                    :117,
                    :118,
                    :119,
                    :120,
                    :121,
                    :122,
                    :123,
                    :124,
                    :125,
                    :126,
                    :127,
                    :128,
                    :129,
                    :130,
                    :131,
                    :132,
                    :133,
                    :134,
                    :135,
                    :136,
                    :137,
                    :138,
                    :139,
                    :140,
                    :141,
                    :142,
                    :143,
                    :144,
                    :145,
                    :146,
                    :147,
                    :148,
                    :149,
                    :150,
                    :151,
                    :152,
                    :153,
                    :154,
                    :155,
                    :156,
                    :157,
                    :158,
                    :159,
                    :160,
                    :161,
                    :162,
                    :163,
                    :164,
                    :165,
                    :166,
                    :167,
                    :168,
                    :169,
                    :170,
                    :171,
                    :172,
                    :173,
                    :174,
                    :175,
                    :176,
                    :177,
                    :178,
                    :179,
                    :180,
                    :181,
                    :182,
                    :183,
                    :184,
                    :185,
                    :186,
                    :187,
                    :188,
                    :189,
                    :190,
                    :191,
                    :192,
                    :193,
                    :194,
                    :195,
                    :196,
                    :197,
                    :198,
                    :199,
                    :200,
                    :201,
                    :202,
                    :203,
                    :204,
                    :205,
                    :206,
                    :207,
                    :208,
                    :209,
                    :210,
                    :211,
                    :212,
                    :213,
                    :214,
                    :215,
                    :216,
                    :217,
                    :218,
                    :219,
                    :220,
                    :221,
                    :222,
                    :223,
                    :224,
                    :225,
                    :226,
                    :227,
                    :228,
                    :229,
                    :230,
                    :231,
                    :232,
                    :233,
                    :234,
                    :235,
                    :236,
                    :237,
                    :238,
                    :239,
                    :240,
                    :241,
                    :242,
                    :243,
                    :244,
                    :245,
                    :246,
                    :247,
                    :248,
                    :249,
                    :250,
                    :251,
                    :252,
                    :253,
                    :254,
                    :255,
                    :256,
                    :257,
                    :258,
                    :259,
                    :260,
                    :261,
                    :262,
                    :263,
                    :264,
                    :265,
                    :266,
                    :267,
                    :268,
                    :269,
                    :270,
                    :271,
                    :272,
                    :273,
                    :274,
                    :275,
                    :276,
                    :277,
                    :278,
                    :279,
                    :280,
                    :281,
                    :282,
                    :283,
                    :284,
                    :285,
                    :286,
                    :287,
                    :288,
                    :289,
                    :290,
                    :291,
                    :292,
                    :293,
                    :294,
                    :295,
                    :296,
                    :297,
                    :298,
                    :299,
                    :300,
                    :301,
                    :302,
                    :303,
                    :304,
                    :305,
                    :306,
                    :307,
                    :308,
                    :309,
                    :310,
                    :311,
                    :312,
                    :313,
                    :314,
                    :315,
                    :316,
                    :317,
                    :318,
                    :319,
                    :320,
                    :321,
                    :322,
                    :323,
                    :324,
                    :325,
                    :326,
                    :327,
                    :328,
                    :329,
                    :330,
                    :331,
                    :332,
                    :333,
                    :334,
                    :335,
                    :336,
                    :337,
                    :338,
                    :339,
                    :340,
                    :341,
                    :342,
                    :343,
                    :344,
                    :345,
                    :346,
                    :347,
                    :348,
                    :349,
                    :350,
                    :351,
                    :352,
                    :353,
                    :354,
                    :355,
                    :356,
                    :357,
                    :358,
                    :359,
                    :360,
                    :361,
                    :362,
                    :363,
                    :364,
                    :365,
                    :366,
                    :367,
                    :368,
                    :369,
                    :370,
                    :371,
                    :372,
                    :373,
                    :374,
                    :375,
                    :376,
                    :377,
                    :378,
                    :379,
                    :380,
                    :381,
                    :382,
                    :383,
                    :384,
                    :385,
                    :386,
                    :387,
                    :388,
                    :389,
                    :390,
                    :391,
                    :392,
                    :393,
                    :394,
                    :395,
                    :396,
                    :397,
                    :398,
                    :399,
                    :400,
                    :401,
                    :402,
                    :403,
                    :404,
                    :405,
                    :406,
                    :407,
                    :408,
                    :409,
                    :410,
                    :411,
                    :412,
                    :413,
                    :414,
                    :415,
                    :416,
                    :417,
                    :418,
                    :419,
                    :420,
                    :421,
                    :422,
                    :423,
                    :424,
                    :425,
                    :426,
                    :427,
                    :428,
                    :429,
                    :430,
                    :431,
                    :432,
                    :433,
                    :434,
                    :435,
                    :436,
                    :437,
                    :438,
                    :439,
                    :440,
                    :441,
                    :442,
                    :443,
                    :444,
                    :445,
                    :446,
                    :447,
                    :448,
                    :449,
                    :450,
                    :451,
                    :452,
                    :453,
                    :454,
                    :455,
                    :456,
                    :457,
                    :458,
                    :459,
                    :460,
                    :461,
                    :462,
                    :463,
                    :464,
                    :465,
                    :466,
                    :467,
                    :468,
                    :469,
                    :470,
                    :471,
                    :472,
                    :473,
                    :474,
                    :475,
                    :476,
                    :477,
                    :478,
                    :479,
                    :480,
                    :481,
                    :482,
                    :483,
                    :484,
                    :485,
                    :486,
                    :487,
                    :488,
                    :489,
                    :490,
                    :491,
                    :492,
                    :493,
                    :494,
                    :495,
                    :496,
                    :497,
                    :498,
                    :499,
                    :500,
                    :501,
                    :502,
                    :503,
                    :504,
                    :505,
                    :506,
                    :507,
                    :508,
                    :509,
                    :510,
                    :511,
                    :512,
                    :513,
                    :514,
                    :515,
                    :516,
                    :517,
                    :518,
                    :519,
                    :520,
                    :521,
                    :522,
                    :523,
                    :524,
                    :525,
                    :526,
                    :527,
                    :528,
                    :529,
                    :530,
                    :531,
                    :532,
                    :533,
                    :534,
                    :535,
                    :536,
                    :537,
                    :538,
                    :539,
                    :540,
                    :541,
                    :542,
                    :543,
                    :544,
                    :545,
                    :546,
                    :547,
                    :548,
                    :549,
                    :550,
                    :551,
                    :552,
                    :553,
                    :554,
                    :555,
                    :556,
                    :557,
                    :558,
                    :559,
                    :560,
                    :561,
                    :562,
                    :563,
                    :564,
                    :565,
                    :566,
                    :567,
                    :568,
                    :569,
                    :570,
                    :571,
                    :572,
                    :573,
                    :574,
                    :575,
                    :576,
                    :577,
                    :578,
                    :579,
                    :580,
                    :581,
                    :582,
                    :583,
                    :584,
                    :585,
                    :586,
                    :587,
                    :588,
                    :589,
                    :590,
                    :591,
                    :592,
                    :593,
                    :594,
                    :595,
                    :596,
                    :597,
                    :598,
                    :599,
                    :600,
                    :601,
                    :602,
                    :603,
                    :604,
                    :605,
                    :606,
                    :607,
                    :608,
                    :609,
                    :610,
                    :611,
                    :612,
                    :613,
                    :614,
                    :615,
                    :616,
                    :617,
                    :618,
                    :619,
                    :620,
                    :621,
                    :622,
                    :623,
                    :624,
                    :625,
                    :626,
                    :627,
                    :628,
                    :629,
                    :630,
                    :631,
                    :632,
                    :633,
                    :634,
                    :635,
                    :636,
                    :637,
                    :638,
                    :639,
                    :640,
                    :641,
                    :642,
                    :643,
                    :644,
                    :645,
                    :646,
                    :647,
                    :648,
                    :649,
                    :650,
                    :651,
                    :652,
                    :653,
                    :654,
                    :655,
                    :656,
                    :657,
                    :658,
                    :659,
                    :660,
                    :661,
                    :662,
                    :663,
                    :664,
                    :665,
                    :666,
                    :667,
                    :668,
                    :669,
                    :670,
                    :671,
                    :672,
                    :673,
                    :674,
                    :675,
                    :676,
                    :677,
                    :678,
                    :679,
                    :680,
                    :681,
                    :682,
                    :683,
                    :684,
                    :685,
                    :686,
                    :687,
                    :688,
                    :689,
                    :690,
                    :691,
                    :692,
                    :693,
                    :694,
                    :695,
                    :696,
                    :697,
                    :698,
                    :699,
                    :700,
                    :701,
                    :702,
                    :703,
                    :704,
                    :705,
                    :706,
                    :707,
                    :708,
                    :709,
                    :710,
                    :711,
                    :712,
                    :713,
                    :714,
                    :715,
                    :716,
                    :717,
                    :718,
                    :719,
                    :720,
                    :721,
                    :722,
                    :723,
                    :724,
                    :725,
                    :726,
                    :727,
                    :728,
                    :729,
                    :730,
                    :731,
                    :732,
                    :733,
                    :734,
                    :735,
                    :736,
                    :737,
                    :738,
                    :739,
                    :740,
                    :741,
                    :742,
                    :743,
                    :744,
                    :745,
                    :746,
                    :747,
                    :748,
                    :749,
                    :750,
                    :751,
                    :752,
                    :753,
                    :754,
                    :755,
                    :756,
                    :757,
                    :758,
                    :759,
                    :760,
                    :761,
                    :762,
                    :763,
                    :764,
                    :765,
                    :766,
                    :767,
                    :768,
                    :769,
                    :770,
                    :771,
                    :772,
                    :773,
                    :774,
                    :775,
                    :776,
                    :777,
                    :778,
                    :779,
                    :780,
                    :781,
                    :782,
                    :783,
                    :784,
                    :785,
                    :786,
                    :787,
                    :788,
                    :789,
                    :790,
                    :791,
                    :792,
                    :793,
                    :794,
                    :795,
                    :796,
                    :797,
                    :798,
                    :799,
                    :800,
                    :801,
                    :802,
                    :803,
                    :804,
                    :805,
                    :806,
                    :807,
                    :808,
                    :809,
                    :810,
                    :811,
                    :812,
                    :813,
                    :814,
                    :815,
                    :816,
                    :817,
                    :818,
                    :819,
                    :820,
                    :821,
                    :822,
                    :823,
                    :824,
                    :825,
                    :826,
                    :827,
                    :828,
                    :829,
                    :830,
                    :831,
                    :832,
                    :833,
                    :834,
                    :835,
                    :836,
                    :837,
                    :838,
                    :839,
                    :840,
                    :841,
                    :842,
                    :843,
                    :844,
                    :845,
                    :846,
                    :847,
                    :848,
                    :849,
                    :850,
                    :851,
                    :852,
                    :853,
                    :854,
                    :855,
                    :856,
                    :857,
                    :858,
                    :859,
                    :860,
                    :861,
                    :862,
                    :863,
                    :864,
                    :865,
                    :866,
                    :867,
                    :868,
                    :869,
                    :870,
                    :871,
                    :872,
                    :873,
                    :874,
                    :875,
                    :876,
                    :877,
                    :878,
                    :879,
                    :880,
                    :881,
                    :882,
                    :883,
                    :884,
                    :885,
                    :886,
                    :887,
                    :888,
                    :889,
                    :890,
                    :891,
                    :892,
                    :893,
                    :894,
                    :895,
                    :896,
                    :897,
                    :898,
                    :899,
                    :900,
                    :901,
                    :902,
                    :903,
                    :904,
                    :905,
                    :906,
                    :907,
                    :908,
                    :909,
                    :910,
                    :911,
                    :912,
                    :913,
                    :914,
                    :915,
                    :916,
                    :917,
                    :918,
                    :919,
                    :920,
                    :921,
                    :922,
                    :923,
                    :924,
                    :925,
                    :926,
                    :927,
                    :928,
                    :929,
                    :930,
                    :931,
                    :932,
                    :933,
                    :934,
                    :935,
                    :936,
                    :937,
                    :938,
                    :939,
                    :940,
                    :941,
                    :942,
                    :943,
                    :944,
                    :945,
                    :946,
                    :947,
                    :948,
                    :949,
                    :950,
                    :951,
                    :952,
                    :953,
                    :954,
                    :955,
                    :956,
                    :957,
                    :958,
                    :959,
                    :960,
                    :961,
                    :962,
                    :963,
                    :964,
                    :965,
                    :966,
                    :967,
                    :968,
                    :969,
                    :970,
                    :971,
                    :972,
                    :973,
                    :974,
                    :975,
                    :976,
                    :977,
                    :978,
                    :979,
                    :980,
                    :981,
                    :982,
                    :983,
                    :984,
                    :985,
                    :986,
                    :987,
                    :988,
                    :989,
                    :990,
                    :991,
                    :992,
                    :993,
                    :994,
                    :995,
                    :996,
                    :997,
                    :998,
                    :999,
                    :1000,
                    :1001)
   AND CPB_A.FLAG = 'N'

Oracle 自动转化 : 把where 和join 放在一起

相关推荐
许彰午15 小时前
01-Oracle数据库简介与版本选择
数据库·oracle
可乐ea19 小时前
Agent 评测换判据:用终态数据库状态判定任务是否完成
数据库·ui·oracle·mcp工具·agent评测·终态断言·智能体可靠性
程序员清风21 小时前
CSV、Excel 与数据库数据读取实践
数据库·oracle·excel
自己的九又四分之三站台1 天前
GeoPackage 到底适合什么场景:从 SQLite 容器到空间数据格式选型
数据库·oracle·sqlite
lie..2 天前
30天从零开始学AI应用开发(Day 17):ChromaDB 上手:给本地文档建一个“外挂大脑”
数据库·人工智能·oracle
其实防守也摸鱼2 天前
DeepSeek Harness 开源贡献手记:从 Issue 到 Merge 的完整旅程
android·数据库·学习·ai·oracle·自动化
我叫洋洋3 天前
Cadence CIS 元器件库合并实战:3000+ 焊盘、156 个符号零冲突并入自有库
数据库·单片机·嵌入式硬件·oracle·电路
晚风叙码3 天前
MySQL 表的操作:从建表到删表,一篇讲清楚
android·mysql·oracle
其实防守也摸鱼3 天前
渗透测试学习计划(全栈综合 · 零基础进阶)
android·数据库·学习·安全·oracle·自动化·学习方法