Home > database >  Refer to the partition table partition pruning effect not reason?
Refer to the partition table partition pruning effect not reason?

Time:12-04

My oracle database version: PL/SQL Release 12.2.0.1.0 - Production

The table A DDL:

The CREATE TABLE A

(" BILLID "NVARCHAR2 (50), NOT NULL ENABLE,

"BILLTYPE NVARCHAR2 (10),

"CDATE" DATE,

The CONSTRAINT "PK_A_ID" PRIMARY KEY (" BILLID "))

PARTITION BY RANGE (CDATE)

- the INTERVAL (NUMTOYMINTERVAL (12, 'MONTH'))

Subpartition By list (billtype)

SUBPARTITION template

(

SUBPARTITION BILLMTYPE_XSCK_C VALUES (' XSCK),

SUBPARTITION BILLMTYPE_XCWGRK_C VALUES (' XCWGRK),

SUBPARTITION BILLMTYPE_XCSHRK_C VALUES (' XCSHRK),

SUBPARTITION BILLMTYPE_WGRK_C VALUES (' WGRK),

SUBPARTITION BILLMTYPE_DBD_C VALUES (' DBD),

SUBPARTITION BILLMTYPE_XCWZCKC VALUES (' XCWZCK),

SUBPARTITION BILLMTYPE_CPRK_C VALUES (' CPRK),

SUBPARTITION BILLMTYPE_WZCK_C VALUES (' WZCK),

SUBPARTITION BILLMTYPE_XCRK_C VALUES (' XCRK),

SUBPARTITION BILLMTYPE_QTCK_C VALUES (' QTCK),

SUBPARTITION BILLMTYPE_XCCK_C VALUES (' XCCK)

)

(

PARTITION SM_A_2018 VALUES LESS THAN (To_date (' 16:00:00 2018-12-31 ', '- dd yyyy - mm hh24: mi: ss')),

PARTITION SM_A_2019 VALUES LESS THAN (To_date (' 16:00:00 2019-12-31 ', '- dd yyyy - mm hh24: mi: ss')),

PARTITION SM_A_2020 VALUES LESS THAN (To_date (' 16:00:00 2020-12-31 ', '- dd yyyy - mm hh24: mi: ss')),

PARTITION SM_A_2021 VALUES LESS THAN (To_date (' 16:00:00 2021-12-31 ', '- dd yyyy - mm hh24: mi: ss')),

PARTITION SM_A_2022 VALUES LESS THAN (To_date (' 16:00:00 2022-12-31 ', '- dd yyyy - mm hh24: mi: ss'))

)

;

Table B DDL:

The CREATE TABLE B

(

"BILLDETAILID NVARCHAR2 (50) NOT NULL, ENABLE

"BILLID" NVARCHAR2 (50) not null,

"ITEMID" NVARCHAR2 (50),

The CONSTRAINT "PK_A_B_DETAIL" PRIMARY KEY (" BILLDETAILID "),

The CONSTRAINT "FK_B_A_BILLID" FOREIGN KEY (BILLID) REFERENCES A (" BILLID "))

PARTITION BY REFERENCE (FK_B_A_BILLID);

The table C DDL:

The CREATE TABLE C (

"ID" nvarchar2 (50), not null enable,

"CODE" NVARCHAR2 (80),

The CONSTRAINT "PK_C_ID" PRIMARY KEY (" ID ")

)



The explain plan:

1.



The explain plan for

Select * from a inner join b on a. illid=b.b illid

Inner join c on B.I temid=C.I d

Where a. illtype='WZCK and A.C date & gt; 16:00:00=to_date (' 2019-12-31 ', '- dd yyyy - mm hh24: mi: ss') AND A.C date & lt; 16:00:00 TO_DATE (' 2020-12-31 ', '- dd yyyy - mm hh24: mi: ss')

;

Plan the hash value: 3515450193



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

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

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

| | 0 SELECT STATEMENT | | 49519 | | 17 m 26754 (1) | | 00:00:02 | | |

| * 1 | HASH JOIN | | 49519 | | 17 m 13 m 26754 (1) | | 00:00:02 | | |

| 2 | PARTITION RANGE SINGLE | | 49519 | | 13 m 19132 (1) | | 00:00:01 | 3 | 3 |

| 3 | PARTITION LIST SINGLE | | 49519 | | 13 m 19132 (1) | | 00:00:01 | KEY | KEY |

| | * 4 HASH JOIN | | 49519 | | 13 m 19132 (1) | | 00:00:01 | | |

| | 5 TABLE ACCESS FULL | A | | 7552 | 604 k 240 (0) | | 00:00:01 30 30 | | |

| | 6 TABLE ACCESS FULL 307 m | | | | 1662 k B 18888 (1) | | 00:00:01 30 30 | | |

7 | | TABLE ACCESS FULL 70 m | | | | C 748 k 3018 (1) | | 00:00:01 | | |

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



The Predicate Information (identified by operation id) :

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



1 - access (" B ". "ITEMID"="C". "ID")

4 - access (" A ". "BILLID"="B". "BILLID")



Note

-- -- -- -- --

- this is an adaptive plan



Partition pruning effect



2. The explain paln

The explain plan for

Select * from a inner join b on a. illid=b.b illid

Inner join c on B.I temid=C.I d

Where a. illtype='WZCK and A.C date & gt; 16:00:00=to_date (' 2019-12-31 ', '- dd yyyy - mm hh24: mi: ss') AND A.C date & lt; 16:00:00 TO_DATE (' 2020-12-31 ', '- dd yyyy - mm hh24: mi: ss')

AND Arthur c. ODE LIKE '% 20.'

;

Plan the hash value: 437133680



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

| | Id Operation | Name | Rows | Bytes | Cost (% CPU) | Time | Pstart | Pstop |
nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull
  • Related