[FEAT MERGE] support auto dop

This commit is contained in:
obdev
2023-04-28 15:11:52 +00:00
committed by ob-robot
parent 642f1c7d84
commit b41dc0ebdd
106 changed files with 3815 additions and 2844 deletions

View File

@ -2676,7 +2676,7 @@ Query Plan
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
----------------------------------------------------------
|0 |SCALAR GROUP BY | |1 |34 |
|1 |└─HASH RIGHT SEMI JOIN | |51 |33 |
|1 |└─HASH RIGHT SEMI JOIN | |45 |33 |
|2 | ├─TABLE FULL SCAN |xy_t3|12 |3 |
|3 | └─HASH RIGHT SEMI JOIN | |51 |23 |
|4 | ├─TABLE FULL SCAN |xy_t2|8 |2 |
@ -2714,7 +2714,7 @@ Query Plan
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
----------------------------------------------------------
|0 |SCALAR GROUP BY | |1 |34 |
|1 |└─HASH RIGHT SEMI JOIN | |51 |33 |
|1 |└─HASH RIGHT SEMI JOIN | |45 |33 |
|2 | ├─TABLE FULL SCAN |xy_t3|12 |3 |
|3 | └─HASH RIGHT SEMI JOIN | |51 |23 |
|4 | ├─TABLE FULL SCAN |xy_t2|8 |2 |

View File

@ -476,7 +476,7 @@ Query Plan
=================================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
-----------------------------------------------------------------
|0 |MERGE JOIN | |5 |30 |
|0 |MERGE JOIN | |5 |31 |
|1 |├─PX COORDINATOR MERGE SORT | |5 |15 |
|2 |│ └─EXCHANGE OUT DISTR |:EX10000|5 |13 |
|3 |│ └─SORT | |5 |10 |
@ -527,7 +527,7 @@ Query Plan
=================================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
-----------------------------------------------------------------
|0 |MERGE JOIN | |5 |30 |
|0 |MERGE JOIN | |5 |31 |
|1 |├─PX COORDINATOR MERGE SORT | |5 |15 |
|2 |│ └─EXCHANGE OUT DISTR |:EX10000|5 |13 |
|3 |│ └─SORT | |5 |10 |
@ -578,7 +578,7 @@ Query Plan
=================================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
-----------------------------------------------------------------
|0 |MERGE JOIN | |5 |30 |
|0 |MERGE JOIN | |5 |31 |
|1 |├─PX COORDINATOR MERGE SORT | |5 |15 |
|2 |│ └─EXCHANGE OUT DISTR |:EX10000|5 |13 |
|3 |│ └─SORT | |5 |10 |
@ -629,7 +629,7 @@ Query Plan
=================================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
-----------------------------------------------------------------
|0 |MERGE JOIN | |5 |30 |
|0 |MERGE JOIN | |5 |31 |
|1 |├─PX COORDINATOR MERGE SORT | |5 |15 |
|2 |│ └─EXCHANGE OUT DISTR |:EX10000|5 |13 |
|3 |│ └─SORT | |5 |10 |
@ -684,7 +684,7 @@ Query Plan
=================================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
-----------------------------------------------------------------
|0 |MERGE JOIN | |5 |30 |
|0 |MERGE JOIN | |5 |31 |
|1 |├─PX COORDINATOR MERGE SORT | |5 |15 |
|2 |│ └─EXCHANGE OUT DISTR |:EX10000|5 |13 |
|3 |│ └─SORT | |5 |10 |
@ -735,7 +735,7 @@ Query Plan
=================================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
-----------------------------------------------------------------
|0 |MERGE JOIN | |5 |30 |
|0 |MERGE JOIN | |5 |31 |
|1 |├─PX COORDINATOR MERGE SORT | |5 |15 |
|2 |│ └─EXCHANGE OUT DISTR |:EX10000|5 |13 |
|3 |│ └─SORT | |5 |10 |
@ -786,7 +786,7 @@ Query Plan
=================================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
-----------------------------------------------------------------
|0 |MERGE JOIN | |5 |30 |
|0 |MERGE JOIN | |5 |31 |
|1 |├─PX COORDINATOR MERGE SORT | |5 |15 |
|2 |│ └─EXCHANGE OUT DISTR |:EX10000|5 |13 |
|3 |│ └─SORT | |5 |10 |
@ -837,7 +837,7 @@ Query Plan
=================================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
-----------------------------------------------------------------
|0 |MERGE JOIN | |5 |30 |
|0 |MERGE JOIN | |5 |31 |
|1 |├─PX COORDINATOR MERGE SORT | |5 |15 |
|2 |│ └─EXCHANGE OUT DISTR |:EX10000|5 |13 |
|3 |│ └─SORT | |5 |10 |
@ -890,7 +890,7 @@ Query Plan
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
-------------------------------------------------------------------
|0 |MERGE JOIN | |4 |44 |
|1 |├─MERGE JOIN | |5 |30 |
|1 |├─MERGE JOIN | |5 |31 |
|2 |│ ├─PX COORDINATOR MERGE SORT | |6 |16 |
|3 |│ │ └─EXCHANGE OUT DISTR |:EX10000|6 |14 |
|4 |│ │ └─SORT | |6 |10 |
@ -901,9 +901,9 @@ Query Plan
|9 |│ └─SORT | |5 |10 |
|10|│ └─PX PARTITION ITERATOR| |5 |9 |
|11|│ └─TABLE FULL SCAN |bb |5 |9 |
|12|└─PX COORDINATOR MERGE SORT | |4 |13 |
|12|└─PX COORDINATOR MERGE SORT | |4 |14 |
|13| └─EXCHANGE OUT DISTR |:EX30000|4 |12 |
|14| └─SORT | |4 |9 |
|14| └─SORT | |4 |10 |
|15| └─PX PARTITION ITERATOR | |4 |9 |
|16| └─TABLE FULL SCAN |cc |4 |9 |
===================================================================
@ -961,7 +961,7 @@ Query Plan
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
-------------------------------------------------------------------
|0 |MERGE JOIN | |4 |44 |
|1 |├─MERGE JOIN | |5 |30 |
|1 |├─MERGE JOIN | |5 |31 |
|2 |│ ├─PX COORDINATOR MERGE SORT | |6 |16 |
|3 |│ │ └─EXCHANGE OUT DISTR |:EX10000|6 |14 |
|4 |│ │ └─SORT | |6 |10 |
@ -972,9 +972,9 @@ Query Plan
|9 |│ └─SORT | |5 |10 |
|10|│ └─PX PARTITION ITERATOR| |5 |9 |
|11|│ └─TABLE FULL SCAN |bb |5 |9 |
|12|└─PX COORDINATOR MERGE SORT | |4 |13 |
|12|└─PX COORDINATOR MERGE SORT | |4 |14 |
|13| └─EXCHANGE OUT DISTR |:EX30000|4 |12 |
|14| └─SORT | |4 |9 |
|14| └─SORT | |4 |10 |
|15| └─PX PARTITION ITERATOR | |4 |9 |
|16| └─TABLE FULL SCAN |cc |4 |9 |
===================================================================

View File

@ -2430,38 +2430,26 @@ where exists (select /*+ qb_name(x2x) */ 1
from nn1 a, nn2 b, nn1 c, nn2 d where a.c1 = b.d1
and c.c2 = d.d1) order by x.c1 asc, x.c2 asc, x.c3 desc;
Query Plan
====================================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
--------------------------------------------------------------------
|0 |SORT | |11 |5 |
|1 |└─SUBPLAN FILTER | |11 |3 |
|2 | ├─TABLE FULL SCAN |x |11 |3 |
|3 | └─LIMIT | |1 |22 |
|4 | └─NESTED-LOOP JOIN CARTESIAN | |1 |22 |
|5 | ├─SUBPLAN SCAN |VIEW5|1 |12 |
|6 | │ └─LIMIT | |1 |12 |
|7 | │ └─UNION ALL | |1 |12 |
|8 | │ ├─LIMIT | |1 |6 |
|9 | │ │ └─HASH JOIN | |1 |6 |
|10| ├─TABLE FULL SCAN |a |11 |3 |
|11| │ │ └─TABLE FULL SCAN |b |1 |2 |
|12| └─LIMIT | |1 |6 |
|13| └─HASH JOIN | |1 |6 |
|14| ├─TABLE FULL SCAN |a |2 |3 |
|15| └─TABLE FULL SCAN |b |9 |2 |
|16| └─MATERIAL | |1 |11 |
|17| └─SUBPLAN SCAN |VIEW6|1 |11 |
|18| └─LIMIT | |1 |11 |
|19| └─UNION ALL | |1 |11 |
|20| ├─LIMIT | |1 |5 |
|21| │ └─HASH JOIN | |1 |5 |
|22| │ ├─TABLE FULL SCAN|a |2 |3 |
|23| │ └─TABLE FULL SCAN|b |5 |2 |
|24| └─LIMIT | |1 |6 |
|25| └─HASH JOIN | |1 |6 |
|26| ├─TABLE FULL SCAN|b |11 |3 |
|27| └─TABLE FULL SCAN|a |2 |2 |
====================================================================
==================================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
------------------------------------------------------------------
|0 |SORT | |11 |16 |
|1 |└─SUBPLAN FILTER | |11 |15 |
|2 | ├─TABLE FULL SCAN |x |11 |3 |
|3 | └─LIMIT | |1 |12 |
|4 | └─NESTED-LOOP JOIN CARTESIAN | |1 |12 |
|5 | ├─SUBPLAN SCAN |VIEW1|1 |7 |
|6 | │ └─LIMIT | |1 |7 |
|7 | │ └─HASH JOIN | |1 |7 |
|8 | │ ├─TABLE FULL SCAN |b |11 |3 |
|9 | │ └─TABLE FULL SCAN |a |4 |2 |
|10| └─MATERIAL | |1 |6 |
|11| └─SUBPLAN SCAN |VIEW2|1 |6 |
|12| └─LIMIT | |1 |6 |
|13| └─HASH JOIN | |1 |6 |
|14| ├─TABLE FULL SCAN |b |11 |3 |
|15| └─TABLE FULL SCAN |a |3 |2 |
==================================================================
Outputs & filters:
-------------------------------------
0 - output([x.c1], [x.c2], [x.c3]), filter(nil), rowset=256
@ -2478,60 +2466,30 @@ Outputs & filters:
conds(nil), nl_params_(nil), use_batch=false
5 - output(nil), filter(nil), rowset=256
access(nil)
6 - output([UNION([1])]), filter(nil), rowset=256
6 - output([1]), filter(nil), rowset=256
limit(1), offset(nil)
7 - output([UNION([1])]), filter(nil), rowset=256
8 - output([1]), filter(nil), rowset=256
limit(1), offset(nil)
9 - output(nil), filter(nil), rowset=256
equal_conds([a.c1 = b.d1]), other_conds(nil)
10 - output([a.c1]), filter(nil), rowset=256
access([a.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([a.__pk_increment]), range(MIN ; MAX)always true
11 - output([b.d1]), filter(nil), rowset=256
7 - output(nil), filter(nil), rowset=256
equal_conds([a.c1 = b.d1]), other_conds([a.c1 = b.d1 OR a.c2 = b.d1])
8 - output([b.d1]), filter(nil), rowset=256
access([b.d1]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([b.__pk_increment]), range(MIN ; MAX)always true
9 - output([a.c1], [a.c2]), filter(nil), rowset=256
access([a.c1], [a.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([a.__pk_increment]), range(MIN ; MAX)always true
10 - output(nil), filter(nil), rowset=256
11 - output(nil), filter(nil), rowset=256
access(nil)
12 - output([1]), filter(nil), rowset=256
limit(1), offset(nil)
13 - output(nil), filter(nil), rowset=256
equal_conds([a.c1 = b.d1]), other_conds([lnnvl(cast(a.c1 = b.d1, TINYINT(-1, 0)))])
14 - output([a.c1]), filter([a.c1 = a.c2]), rowset=256
access([a.c1], [a.c2]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([a.__pk_increment]), range(MIN ; MAX)always true
15 - output([b.d1]), filter(nil), rowset=256
equal_conds([a.c2 = b.d1]), other_conds([a.c1 = b.d1 OR a.c2 = b.d1])
14 - output([b.d1]), filter(nil), rowset=256
access([b.d1]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([b.__pk_increment]), range(MIN ; MAX)always true
16 - output(nil), filter(nil), rowset=256
17 - output(nil), filter(nil), rowset=256
access(nil)
18 - output([UNION([1])]), filter(nil), rowset=256
limit(1), offset(nil)
19 - output([UNION([1])]), filter(nil), rowset=256
20 - output([1]), filter(nil), rowset=256
limit(1), offset(nil)
21 - output(nil), filter(nil), rowset=256
equal_conds([a.c2 = b.d1]), other_conds(nil)
22 - output([a.c2]), filter([a.c2 = a.c1]), rowset=256
access([a.c1], [a.c2]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([a.__pk_increment]), range(MIN ; MAX)always true
23 - output([b.d1]), filter(nil), rowset=256
access([b.d1]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([b.__pk_increment]), range(MIN ; MAX)always true
24 - output([1]), filter(nil), rowset=256
limit(1), offset(nil)
25 - output(nil), filter(nil), rowset=256
equal_conds([a.c2 = b.d1]), other_conds([lnnvl(cast(a.c1 = b.d1, TINYINT(-1, 0)))])
26 - output([b.d1]), filter(nil), rowset=256
access([b.d1]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([b.__pk_increment]), range(MIN ; MAX)always true
27 - output([a.c1], [a.c2]), filter(nil), rowset=256
15 - output([a.c1], [a.c2]), filter(nil), rowset=256
access([a.c1], [a.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([a.__pk_increment]), range(MIN ; MAX)always true
@ -2562,38 +2520,26 @@ where exists (select /*+ qb_name(x2x) LEADING(a c b d)*/ 1
from nn1 a, nn2 b, nn1 c, nn2 d where a.c1 = b.d1
and c.c2 = d.d1) order by x.c1 desc, x.c2 asc, x.c3 desc;
Query Plan
====================================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
--------------------------------------------------------------------
|0 |SORT | |11 |5 |
|1 |└─SUBPLAN FILTER | |11 |3 |
|2 | ├─TABLE FULL SCAN |x |11 |3 |
|3 | └─LIMIT | |1 |22 |
|4 | └─NESTED-LOOP JOIN CARTESIAN | |1 |22 |
|5 | ├─SUBPLAN SCAN |VIEW5|1 |12 |
|6 | │ └─LIMIT | |1 |12 |
|7 | │ └─UNION ALL | |1 |12 |
|8 | │ ├─LIMIT | |1 |6 |
|9 | │ │ └─HASH JOIN | |1 |6 |
|10| ├─TABLE FULL SCAN |a |11 |3 |
|11| │ │ └─TABLE FULL SCAN |b |1 |2 |
|12| └─LIMIT | |1 |6 |
|13| └─HASH JOIN | |1 |6 |
|14| ├─TABLE FULL SCAN |a |2 |3 |
|15| └─TABLE FULL SCAN |b |9 |2 |
|16| └─MATERIAL | |1 |11 |
|17| └─SUBPLAN SCAN |VIEW6|1 |11 |
|18| └─LIMIT | |1 |11 |
|19| └─UNION ALL | |1 |11 |
|20| ├─LIMIT | |1 |5 |
|21| │ └─HASH JOIN | |1 |5 |
|22| │ ├─TABLE FULL SCAN|a |2 |3 |
|23| │ └─TABLE FULL SCAN|b |5 |2 |
|24| └─LIMIT | |1 |6 |
|25| └─HASH JOIN | |1 |6 |
|26| ├─TABLE FULL SCAN|b |11 |3 |
|27| └─TABLE FULL SCAN|a |2 |2 |
====================================================================
==================================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
------------------------------------------------------------------
|0 |SORT | |11 |16 |
|1 |└─SUBPLAN FILTER | |11 |15 |
|2 | ├─TABLE FULL SCAN |x |11 |3 |
|3 | └─LIMIT | |1 |12 |
|4 | └─NESTED-LOOP JOIN CARTESIAN | |1 |12 |
|5 | ├─SUBPLAN SCAN |VIEW1|1 |7 |
|6 | │ └─LIMIT | |1 |7 |
|7 | │ └─HASH JOIN | |1 |7 |
|8 | │ ├─TABLE FULL SCAN |b |11 |3 |
|9 | │ └─TABLE FULL SCAN |a |4 |2 |
|10| └─MATERIAL | |1 |6 |
|11| └─SUBPLAN SCAN |VIEW2|1 |6 |
|12| └─LIMIT | |1 |6 |
|13| └─HASH JOIN | |1 |6 |
|14| ├─TABLE FULL SCAN |b |11 |3 |
|15| └─TABLE FULL SCAN |a |3 |2 |
==================================================================
Outputs & filters:
-------------------------------------
0 - output([x.c1], [x.c2], [x.c3]), filter(nil), rowset=256
@ -2610,60 +2556,30 @@ Outputs & filters:
conds(nil), nl_params_(nil), use_batch=false
5 - output(nil), filter(nil), rowset=256
access(nil)
6 - output([UNION([1])]), filter(nil), rowset=256
6 - output([1]), filter(nil), rowset=256
limit(1), offset(nil)
7 - output([UNION([1])]), filter(nil), rowset=256
8 - output([1]), filter(nil), rowset=256
limit(1), offset(nil)
9 - output(nil), filter(nil), rowset=256
equal_conds([a.c1 = b.d1]), other_conds(nil)
10 - output([a.c1]), filter(nil), rowset=256
access([a.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([a.__pk_increment]), range(MIN ; MAX)always true
11 - output([b.d1]), filter(nil), rowset=256
7 - output(nil), filter(nil), rowset=256
equal_conds([a.c1 = b.d1]), other_conds([a.c1 = b.d1 OR a.c2 = b.d1])
8 - output([b.d1]), filter(nil), rowset=256
access([b.d1]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([b.__pk_increment]), range(MIN ; MAX)always true
9 - output([a.c1], [a.c2]), filter(nil), rowset=256
access([a.c1], [a.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([a.__pk_increment]), range(MIN ; MAX)always true
10 - output(nil), filter(nil), rowset=256
11 - output(nil), filter(nil), rowset=256
access(nil)
12 - output([1]), filter(nil), rowset=256
limit(1), offset(nil)
13 - output(nil), filter(nil), rowset=256
equal_conds([a.c1 = b.d1]), other_conds([lnnvl(cast(a.c1 = b.d1, TINYINT(-1, 0)))])
14 - output([a.c1]), filter([a.c1 = a.c2]), rowset=256
access([a.c1], [a.c2]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([a.__pk_increment]), range(MIN ; MAX)always true
15 - output([b.d1]), filter(nil), rowset=256
equal_conds([a.c2 = b.d1]), other_conds([a.c1 = b.d1 OR a.c2 = b.d1])
14 - output([b.d1]), filter(nil), rowset=256
access([b.d1]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([b.__pk_increment]), range(MIN ; MAX)always true
16 - output(nil), filter(nil), rowset=256
17 - output(nil), filter(nil), rowset=256
access(nil)
18 - output([UNION([1])]), filter(nil), rowset=256
limit(1), offset(nil)
19 - output([UNION([1])]), filter(nil), rowset=256
20 - output([1]), filter(nil), rowset=256
limit(1), offset(nil)
21 - output(nil), filter(nil), rowset=256
equal_conds([a.c2 = b.d1]), other_conds(nil)
22 - output([a.c2]), filter([a.c2 = a.c1]), rowset=256
access([a.c1], [a.c2]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([a.__pk_increment]), range(MIN ; MAX)always true
23 - output([b.d1]), filter(nil), rowset=256
access([b.d1]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([b.__pk_increment]), range(MIN ; MAX)always true
24 - output([1]), filter(nil), rowset=256
limit(1), offset(nil)
25 - output(nil), filter(nil), rowset=256
equal_conds([a.c2 = b.d1]), other_conds([lnnvl(cast(a.c1 = b.d1, TINYINT(-1, 0)))])
26 - output([b.d1]), filter(nil), rowset=256
access([b.d1]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([b.__pk_increment]), range(MIN ; MAX)always true
27 - output([a.c1], [a.c2]), filter(nil), rowset=256
15 - output([a.c1], [a.c2]), filter(nil), rowset=256
access([a.c1], [a.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([a.__pk_increment]), range(MIN ; MAX)always true
@ -2694,38 +2610,26 @@ where exists (select /*+ qb_name(x3x) */ 1
from nn1 a, nn2 b, nn1 c, nn2 d where a.c1 = b.d1
and c.c2 = d.d1) order by x.c1 desc, x.c3 desc, x.c2 asc ;
Query Plan
====================================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
--------------------------------------------------------------------
|0 |SORT | |11 |5 |
|1 |└─SUBPLAN FILTER | |11 |3 |
|2 | ├─TABLE FULL SCAN |x |11 |3 |
|3 | └─LIMIT | |1 |22 |
|4 | └─NESTED-LOOP JOIN CARTESIAN | |1 |22 |
|5 | ├─SUBPLAN SCAN |VIEW5|1 |12 |
|6 | │ └─LIMIT | |1 |12 |
|7 | │ └─UNION ALL | |1 |12 |
|8 | │ ├─LIMIT | |1 |6 |
|9 | │ │ └─HASH JOIN | |1 |6 |
|10| ├─TABLE FULL SCAN |a |11 |3 |
|11| │ │ └─TABLE FULL SCAN |b |1 |2 |
|12| └─LIMIT | |1 |6 |
|13| └─HASH JOIN | |1 |6 |
|14| ├─TABLE FULL SCAN |a |2 |3 |
|15| └─TABLE FULL SCAN |b |9 |2 |
|16| └─MATERIAL | |1 |11 |
|17| └─SUBPLAN SCAN |VIEW6|1 |11 |
|18| └─LIMIT | |1 |11 |
|19| └─UNION ALL | |1 |11 |
|20| ├─LIMIT | |1 |5 |
|21| │ └─HASH JOIN | |1 |5 |
|22| │ ├─TABLE FULL SCAN|a |2 |3 |
|23| │ └─TABLE FULL SCAN|b |5 |2 |
|24| └─LIMIT | |1 |6 |
|25| └─HASH JOIN | |1 |6 |
|26| ├─TABLE FULL SCAN|b |11 |3 |
|27| └─TABLE FULL SCAN|a |2 |2 |
====================================================================
==================================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
------------------------------------------------------------------
|0 |SORT | |11 |17 |
|1 |└─SUBPLAN FILTER | |11 |15 |
|2 | ├─TABLE FULL SCAN |x |11 |3 |
|3 | └─LIMIT | |1 |12 |
|4 | └─NESTED-LOOP JOIN CARTESIAN | |1 |12 |
|5 | ├─SUBPLAN SCAN |VIEW1|1 |7 |
|6 | │ └─LIMIT | |1 |7 |
|7 | │ └─HASH JOIN | |1 |7 |
|8 | │ ├─TABLE FULL SCAN |b |11 |3 |
|9 | │ └─TABLE FULL SCAN |a |4 |2 |
|10| └─MATERIAL | |1 |6 |
|11| └─SUBPLAN SCAN |VIEW2|1 |6 |
|12| └─LIMIT | |1 |6 |
|13| └─HASH JOIN | |1 |6 |
|14| ├─TABLE FULL SCAN |b |11 |3 |
|15| └─TABLE FULL SCAN |a |3 |2 |
==================================================================
Outputs & filters:
-------------------------------------
0 - output([x.c1], [x.c2], [x.c3]), filter(nil), rowset=256
@ -2742,60 +2646,30 @@ Outputs & filters:
conds(nil), nl_params_(nil), use_batch=false
5 - output(nil), filter(nil), rowset=256
access(nil)
6 - output([UNION([1])]), filter(nil), rowset=256
6 - output([1]), filter(nil), rowset=256
limit(1), offset(nil)
7 - output([UNION([1])]), filter(nil), rowset=256
8 - output([1]), filter(nil), rowset=256
limit(1), offset(nil)
9 - output(nil), filter(nil), rowset=256
equal_conds([a.c1 = b.d1]), other_conds(nil)
10 - output([a.c1]), filter(nil), rowset=256
access([a.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([a.__pk_increment]), range(MIN ; MAX)always true
11 - output([b.d1]), filter(nil), rowset=256
7 - output(nil), filter(nil), rowset=256
equal_conds([a.c1 = b.d1]), other_conds([a.c1 = b.d1 OR a.c2 = b.d1])
8 - output([b.d1]), filter(nil), rowset=256
access([b.d1]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([b.__pk_increment]), range(MIN ; MAX)always true
9 - output([a.c1], [a.c2]), filter(nil), rowset=256
access([a.c1], [a.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([a.__pk_increment]), range(MIN ; MAX)always true
10 - output(nil), filter(nil), rowset=256
11 - output(nil), filter(nil), rowset=256
access(nil)
12 - output([1]), filter(nil), rowset=256
limit(1), offset(nil)
13 - output(nil), filter(nil), rowset=256
equal_conds([a.c1 = b.d1]), other_conds([lnnvl(cast(a.c1 = b.d1, TINYINT(-1, 0)))])
14 - output([a.c1]), filter([a.c1 = a.c2]), rowset=256
access([a.c1], [a.c2]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([a.__pk_increment]), range(MIN ; MAX)always true
15 - output([b.d1]), filter(nil), rowset=256
equal_conds([a.c2 = b.d1]), other_conds([a.c1 = b.d1 OR a.c2 = b.d1])
14 - output([b.d1]), filter(nil), rowset=256
access([b.d1]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([b.__pk_increment]), range(MIN ; MAX)always true
16 - output(nil), filter(nil), rowset=256
17 - output(nil), filter(nil), rowset=256
access(nil)
18 - output([UNION([1])]), filter(nil), rowset=256
limit(1), offset(nil)
19 - output([UNION([1])]), filter(nil), rowset=256
20 - output([1]), filter(nil), rowset=256
limit(1), offset(nil)
21 - output(nil), filter(nil), rowset=256
equal_conds([a.c2 = b.d1]), other_conds(nil)
22 - output([a.c2]), filter([a.c2 = a.c1]), rowset=256
access([a.c1], [a.c2]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([a.__pk_increment]), range(MIN ; MAX)always true
23 - output([b.d1]), filter(nil), rowset=256
access([b.d1]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([b.__pk_increment]), range(MIN ; MAX)always true
24 - output([1]), filter(nil), rowset=256
limit(1), offset(nil)
25 - output(nil), filter(nil), rowset=256
equal_conds([a.c2 = b.d1]), other_conds([lnnvl(cast(a.c1 = b.d1, TINYINT(-1, 0)))])
26 - output([b.d1]), filter(nil), rowset=256
access([b.d1]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([b.__pk_increment]), range(MIN ; MAX)always true
27 - output([a.c1], [a.c2]), filter(nil), rowset=256
15 - output([a.c1], [a.c2]), filter(nil), rowset=256
access([a.c1], [a.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([a.__pk_increment]), range(MIN ; MAX)always true

View File

@ -6192,8 +6192,8 @@ Query Plan
|2 | └─PX PARTITION ITERATOR | |1 |45 |
|3 | └─NESTED-LOOP SEMI JOIN | |1 |45 |
|4 | ├─TABLE FULL SCAN |t1 |1 |42 |
|5 | └─SUBPLAN SCAN |VIEW2 |1 |437 |
|6 | └─NESTED-LOOP JOIN | |1 |437 |
|5 | └─SUBPLAN SCAN |VIEW2 |1 |54 |
|6 | └─NESTED-LOOP JOIN | |1 |54 |
|7 | ├─SUBPLAN SCAN |VIEW3 |1 |42 |
|8 | │ └─MERGE DISTINCT | |1 |42 |
|9 | │ └─TABLE FULL SCAN|t3 |1 |42 |
@ -6969,7 +6969,7 @@ Query Plan
|2 | └─HASH JOIN | |1 |36 |
|3 | ├─EXCHANGE IN DISTR | |1 |27 |
|4 | │ └─EXCHANGE OUT DISTR (PKEY) |:EX10001|1 |27 |
|5 | │ └─SUBPLAN SCAN |t4 |1 |26 |
|5 | │ └─SUBPLAN SCAN |t4 |1 |27 |
|6 | │ └─HASH DISTINCT | |1 |26 |
|7 | │ └─EXCHANGE IN DISTR | |1 |26 |
|8 | │ └─EXCHANGE OUT DISTR (HASH) |:EX10000|1 |26 |
@ -9190,7 +9190,7 @@ Query Plan
|0 |PX COORDINATOR | |1 |30 |
|1 |└─EXCHANGE OUT DISTR |:EX10003|1 |30 |
|2 | └─HASH JOIN | |1 |28 |
|3 | ├─EXCHANGE IN DISTR | |1 |19 |
|3 | ├─EXCHANGE IN DISTR | |1 |20 |
|4 | │ └─EXCHANGE OUT DISTR (PKEY) |:EX10002|1 |19 |
|5 | │ └─SUBPLAN SCAN |t4 |1 |19 |
|6 | │ └─HASH EXCEPT DISTINCT | |1 |19 |

View File

@ -750,14 +750,14 @@ Query Plan
------------------------------------------------------------------------
|0 |SORT | |21 |62 |
|1 |└─HASH UNION DISTINCT | |21 |58 |
|2 | ├─PX COORDINATOR | |11 |26 |
|2 | ├─PX COORDINATOR | |11 |27 |
|3 | │ └─EXCHANGE OUT DISTR |:EX10000 |11 |21 |
|4 | │ └─PX PARTITION ITERATOR| |11 |9 |
|5 | │ └─TABLE FULL SCAN |t7(idx_t7_c2c1)|11 |9 |
|4 | │ └─PX PARTITION ITERATOR| |11 |10 |
|5 | │ └─TABLE FULL SCAN |t7(idx_t7_c2c1)|11 |10 |
|6 | └─PX COORDINATOR | |10 |25 |
|7 | └─EXCHANGE OUT DISTR |:EX20000 |10 |20 |
|8 | └─PX PARTITION ITERATOR| |10 |9 |
|9 | └─TABLE RANGE SCAN |t7(idx_t7_c2c1)|10 |9 |
|8 | └─PX PARTITION ITERATOR| |10 |10 |
|9 | └─TABLE RANGE SCAN |t7(idx_t7_c2c1)|10 |10 |
========================================================================
Outputs & filters:
-------------------------------------
@ -808,22 +808,22 @@ Query Plan
============================================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
----------------------------------------------------------------------------
|0 |SORT | |11 |77 |
|1 |└─HASH JOIN | |11 |76 |
|0 |SORT | |11 |78 |
|1 |└─HASH JOIN | |11 |77 |
|2 | ├─PX COORDINATOR | |11 |15 |
|3 | │ └─EXCHANGE OUT DISTR |:EX10000 |11 |13 |
|4 | │ └─PX PARTITION ITERATOR | |11 |9 |
|5 | │ └─TABLE FULL SCAN |yy(idx_t7_c2c1)|11 |9 |
|6 | └─SUBPLAN SCAN |xx |21 |58 |
|7 | └─HASH UNION DISTINCT | |21 |58 |
|8 | ├─PX COORDINATOR | |11 |26 |
|8 | ├─PX COORDINATOR | |11 |27 |
|9 | │ └─EXCHANGE OUT DISTR |:EX20000 |11 |21 |
|10| │ └─PX PARTITION ITERATOR| |11 |9 |
|11| │ └─TABLE FULL SCAN |t7(idx_t7_c2c1)|11 |9 |
|10| │ └─PX PARTITION ITERATOR| |11 |10 |
|11| │ └─TABLE FULL SCAN |t7(idx_t7_c2c1)|11 |10 |
|12| └─PX COORDINATOR | |10 |25 |
|13| └─EXCHANGE OUT DISTR |:EX30000 |10 |20 |
|14| └─PX PARTITION ITERATOR| |10 |9 |
|15| └─TABLE RANGE SCAN |t7(idx_t7_c2c1)|10 |9 |
|14| └─PX PARTITION ITERATOR| |10 |10 |
|15| └─TABLE RANGE SCAN |t7(idx_t7_c2c1)|10 |10 |
============================================================================
Outputs & filters:
-------------------------------------
@ -894,15 +894,15 @@ Query Plan
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
------------------------------------------------------------------------
|0 |SORT | |22 |64 |
|1 |└─HASH UNION DISTINCT | |22 |59 |
|2 | ├─PX COORDINATOR | |11 |26 |
|1 |└─HASH UNION DISTINCT | |22 |60 |
|2 | ├─PX COORDINATOR | |11 |27 |
|3 | │ └─EXCHANGE OUT DISTR |:EX10000 |11 |21 |
|4 | │ └─PX PARTITION ITERATOR| |11 |9 |
|5 | │ └─TABLE FULL SCAN |t7(idx_t7_c2c1)|11 |9 |
|6 | └─PX COORDINATOR | |11 |26 |
|4 | │ └─PX PARTITION ITERATOR| |11 |10 |
|5 | │ └─TABLE FULL SCAN |t7(idx_t7_c2c1)|11 |10 |
|6 | └─PX COORDINATOR | |11 |27 |
|7 | └─EXCHANGE OUT DISTR |:EX20000 |11 |21 |
|8 | └─PX PARTITION ITERATOR| |11 |9 |
|9 | └─TABLE FULL SCAN |t7(idx_t7_c2c1)|11 |9 |
|8 | └─PX PARTITION ITERATOR| |11 |10 |
|9 | └─TABLE FULL SCAN |t7(idx_t7_c2c1)|11 |10 |
========================================================================
Outputs & filters:
-------------------------------------
@ -948,8 +948,8 @@ Query Plan
========================================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
------------------------------------------------------------------------
|0 |SORT | |22 |39 |
|1 |└─HASH UNION DISTINCT | |22 |34 |
|0 |SORT | |22 |40 |
|1 |└─HASH UNION DISTINCT | |22 |35 |
|2 | ├─PX COORDINATOR | |11 |15 |
|3 | │ └─EXCHANGE OUT DISTR |:EX10000 |11 |13 |
|4 | │ └─PX PARTITION ITERATOR| |11 |9 |
@ -1002,15 +1002,15 @@ Query Plan
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
------------------------------------------------------------------------
|0 |SORT | |22 |66 |
|1 |└─HASH UNION DISTINCT | |22 |59 |
|2 | ├─PX COORDINATOR | |11 |26 |
|1 |└─HASH UNION DISTINCT | |22 |60 |
|2 | ├─PX COORDINATOR | |11 |27 |
|3 | │ └─EXCHANGE OUT DISTR |:EX10000 |11 |21 |
|4 | │ └─PX PARTITION ITERATOR| |11 |9 |
|5 | │ └─TABLE FULL SCAN |t7(idx_t7_c2c1)|11 |9 |
|6 | └─PX COORDINATOR | |11 |26 |
|4 | │ └─PX PARTITION ITERATOR| |11 |10 |
|5 | │ └─TABLE FULL SCAN |t7(idx_t7_c2c1)|11 |10 |
|6 | └─PX COORDINATOR | |11 |27 |
|7 | └─EXCHANGE OUT DISTR |:EX20000 |11 |21 |
|8 | └─PX PARTITION ITERATOR| |11 |9 |
|9 | └─TABLE FULL SCAN |t7(idx_t7_c2c1)|11 |9 |
|8 | └─PX PARTITION ITERATOR| |11 |10 |
|9 | └─TABLE FULL SCAN |t7(idx_t7_c2c1)|11 |10 |
========================================================================
Outputs & filters:
-------------------------------------
@ -1084,11 +1084,11 @@ Query Plan
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
----------------------------------------------------------------------------
|0 |SORT | |20 |39 |
|1 |└─HASH UNION DISTINCT | |20 |33 |
|1 |└─HASH UNION DISTINCT | |20 |34 |
|2 | ├─PX COORDINATOR | |10 |25 |
|3 | │ └─EXCHANGE OUT DISTR |:EX10000 |10 |20 |
|4 | │ └─PX PARTITION ITERATOR| |10 |9 |
|5 | │ └─TABLE RANGE SCAN |t7(idx_t7_c3c2c1) |10 |9 |
|4 | │ └─PX PARTITION ITERATOR| |10 |10 |
|5 | │ └─TABLE RANGE SCAN |t7(idx_t7_c3c2c1) |10 |10 |
|6 | └─TABLE RANGE SCAN |t72(idx_t72_c3c2c1)|10 |3 |
============================================================================
Outputs & filters:
@ -1134,11 +1134,11 @@ Query Plan
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
----------------------------------------------------------------------------
|0 |SORT | |20 |37 |
|1 |└─HASH UNION DISTINCT | |20 |33 |
|1 |└─HASH UNION DISTINCT | |20 |34 |
|2 | ├─PX COORDINATOR | |10 |25 |
|3 | │ └─EXCHANGE OUT DISTR |:EX10000 |10 |20 |
|4 | │ └─PX PARTITION ITERATOR| |10 |9 |
|5 | │ └─TABLE RANGE SCAN |t7(idx_t7_c3c2c1) |10 |9 |
|4 | │ └─PX PARTITION ITERATOR| |10 |10 |
|5 | │ └─TABLE RANGE SCAN |t7(idx_t7_c3c2c1) |10 |10 |
|6 | └─TABLE RANGE SCAN |t72(idx_t72_c3c2c1)|10 |3 |
============================================================================
Outputs & filters:
@ -1186,11 +1186,11 @@ Query Plan
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
----------------------------------------------------------------------------
|0 |SORT | |20 |39 |
|1 |└─HASH UNION DISTINCT | |20 |33 |
|1 |└─HASH UNION DISTINCT | |20 |34 |
|2 | ├─PX COORDINATOR | |10 |25 |
|3 | │ └─EXCHANGE OUT DISTR |:EX10000 |10 |20 |
|4 | │ └─PX PARTITION ITERATOR| |10 |9 |
|5 | │ └─TABLE RANGE SCAN |t7(idx_t7_c3c2c1) |10 |9 |
|4 | │ └─PX PARTITION ITERATOR| |10 |10 |
|5 | │ └─TABLE RANGE SCAN |t7(idx_t7_c3c2c1) |10 |10 |
|6 | └─TABLE RANGE SCAN |t72(idx_t72_c3c2c1)|10 |3 |
============================================================================
Outputs & filters:
@ -1236,11 +1236,11 @@ Query Plan
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
----------------------------------------------------------------------------
|0 |SORT | |20 |37 |
|1 |└─HASH UNION DISTINCT | |20 |33 |
|1 |└─HASH UNION DISTINCT | |20 |34 |
|2 | ├─PX COORDINATOR | |10 |25 |
|3 | │ └─EXCHANGE OUT DISTR |:EX10000 |10 |20 |
|4 | │ └─PX PARTITION ITERATOR| |10 |9 |
|5 | │ └─TABLE RANGE SCAN |t7(idx_t7_c3c2c1) |10 |9 |
|4 | │ └─PX PARTITION ITERATOR| |10 |10 |
|5 | │ └─TABLE RANGE SCAN |t7(idx_t7_c3c2c1) |10 |10 |
|6 | └─TABLE RANGE SCAN |t72(idx_t72_c3c2c1)|10 |3 |
============================================================================
Outputs & filters:
@ -1833,12 +1833,12 @@ Query Plan
===============================================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
-------------------------------------------------------------------------------
|0 |SORT | |1 |31 |
|1 |└─SUBPLAN SCAN |TUT |1 |31 |
|2 | └─MERGE UNION DISTINCT | |1 |31 |
|0 |SORT | |1 |35 |
|1 |└─SUBPLAN SCAN |TUT |6 |33 |
|2 | └─MERGE UNION DISTINCT | |6 |33 |
|3 | ├─TABLE FULL SCAN |table2_bigint(Reverse)|5 |4 |
|4 | └─SORT | |1 |26 |
|5 | └─MERGE UNION DISTINCT | |1 |26 |
|4 | └─SORT | |1 |28 |
|5 | └─MERGE UNION DISTINCT | |6 |26 |
|6 | ├─TABLE GET |table2_bigint |5 |16 |
|7 | └─SORT | |1 |9 |
|8 | └─TOP-N SORT | |1 |8 |

View File

@ -294,55 +294,20 @@ call dbms_stats.gather_table_stats('test','t_p');
call dbms_stats.gather_table_stats('test','t_p4');
explain basic delete /*+no_use_px, use_nl(t_p,t_p4), parallel(10)*/ t_p from t_p,t_p4 where t_p.c1 = t_p4.c1 and t_p.c1 >= 5;
Query Plan
=============================================
|ID|OPERATOR |NAME |
---------------------------------------------
|0 |PX COORDINATOR | |
|1 |└─EXCHANGE OUT DISTR |:EX10000|
|2 | └─PX PARTITION ITERATOR | |
|3 | └─DELETE | |
|4 | └─NESTED-LOOP JOIN | |
|5 | ├─TABLE RANGE SCAN |t_p |
|6 | └─DISTRIBUTED TABLE GET|t_p4 |
=============================================
Outputs & filters:
-------------------------------------
0 - output(nil), filter(nil), rowset=256
1 - output(nil), filter(nil), rowset=256
dop=10
2 - output(nil), filter(nil), rowset=256
partition wise, force partition granule
3 - output(nil), filter(nil)
table_columns([{t_p: ({t_p: (t_p.c1, t_p.c2, t_p.c3)})}])
4 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=256
conds(nil), nl_params_([t_p.c1(:0)]), use_batch=true
5 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=256
access([t_p.c1], [t_p.c2], [t_p.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[5 ; MAX),
range_cond([t_p.c1 >= 5])
6 - output(nil), filter(nil), rowset=256
access([GROUP_ID]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
range_key([t_p4.c1]), range(MIN ; MAX),
range_cond([:0 = t_p4.c1])
explain basic delete /*+use_px, parallel(10)*/ t_p from t_p,t_p4 where t_p.c1 = t_p4.c1 and t_p.c1 >= 5;
Query Plan
===================================================
|ID|OPERATOR |NAME |
---------------------------------------------------
|0 |DISTRIBUTED DELETE | |
|1 |└─PX COORDINATOR | |
|2 | └─EXCHANGE OUT DISTR |:EX10001|
|3 | └─HASH JOIN | |
|4 | ├─PART JOIN FILTER CREATE |:BF0000 |
|5 | │ └─EXCHANGE IN DISTR | |
|6 | │ └─EXCHANGE OUT DISTR (PKEY)|:EX10000|
|7 | │ └─PX BLOCK ITERATOR | |
|8 | │ └─TABLE RANGE SCAN |t_p4 |
|9 | └─PX PARTITION HASH JOIN-FILTER|:BF0000 |
|10| └─TABLE RANGE SCAN |t_p |
===================================================
=================================================
|ID|OPERATOR |NAME |
-------------------------------------------------
|0 |DISTRIBUTED DELETE | |
|1 |└─PX COORDINATOR | |
|2 | └─EXCHANGE OUT DISTR |:EX10001|
|3 | └─NESTED-LOOP JOIN | |
|4 | ├─EXCHANGE IN DISTR | |
|5 | │ └─EXCHANGE OUT DISTR (PKEY)|:EX10000|
|6 | └─PX BLOCK ITERATOR | |
|7 | │ └─TABLE RANGE SCAN |t_p |
|8 | └─PX PARTITION ITERATOR | |
|9 | └─TABLE GET |t_p4 |
=================================================
Outputs & filters:
-------------------------------------
0 - output(nil), filter(nil)
@ -350,12 +315,54 @@ Outputs & filters:
1 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=256
2 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=256
dop=4
3 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=256
conds(nil), nl_params_([t_p.c1(:0)]), use_batch=false
4 - output([t_p.c1], [t_p.c2], [t_p.c3], [PARTITION_ID]), filter(nil), rowset=256
5 - output([t_p.c1], [t_p.c2], [t_p.c3], [PARTITION_ID]), filter(nil), rowset=256
(#keys=1, [t_p.c1]), dop=10
6 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=256
7 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=256
access([t_p.c1], [t_p.c2], [t_p.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[5 ; MAX),
range_cond([t_p.c1 >= 5])
8 - output(nil), filter(nil), rowset=256
affinitize
9 - output(nil), filter(nil), rowset=256
access(nil), partitions(p[0-3])
is_index_back=false, is_global_index=false,
range_key([t_p4.c1]), range(MIN ; MAX),
range_cond([:0 = t_p4.c1])
explain basic delete /*+use_px, parallel(10)*/ t_p from t_p,t_p4 where t_p.c1 = t_p4.c1 and t_p.c1 >= 5;
Query Plan
======================================================
|ID|OPERATOR |NAME |
------------------------------------------------------
|0 |DISTRIBUTED DELETE | |
|1 |└─PX COORDINATOR | |
|2 | └─EXCHANGE OUT DISTR |:EX10001|
|3 | └─SHARED HASH JOIN | |
|4 | ├─PART JOIN FILTER CREATE |:BF0000 |
|5 | │ └─EXCHANGE IN DISTR | |
|6 | │ └─EXCHANGE OUT DISTR (BC2HOST)|:EX10000|
|7 | │ └─PX BLOCK ITERATOR | |
|8 | │ └─TABLE RANGE SCAN |t_p4 |
|9 | └─PX BLOCK HASH JOIN-FILTER |:BF0000 |
|10| └─TABLE RANGE SCAN |t_p |
======================================================
Outputs & filters:
-------------------------------------
0 - output(nil), filter(nil)
table_columns([{t_p: ({t_p: (t_p.c1, t_p.c2, t_p.c3)})}])
1 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=256
2 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=256
dop=10
3 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=256
equal_conds([t_p.c1 = t_p4.c1]), other_conds(nil)
4 - output([t_p4.c1]), filter(nil), rowset=256
5 - output([t_p4.c1]), filter(nil), rowset=256
6 - output([t_p4.c1]), filter(nil), rowset=256
(#keys=1, [t_p4.c1]), dop=10
dop=10
7 - output([t_p4.c1]), filter(nil), rowset=256
8 - output([t_p4.c1]), filter(nil), rowset=256
access([t_p4.c1]), partitions(p[0-3])
@ -363,7 +370,6 @@ Outputs & filters:
range_key([t_p4.c1]), range[5 ; MAX),
range_cond([t_p4.c1 >= 5])
9 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=256
affinitize
10 - output([t_p.c1], [t_p.c2], [t_p.c3], [PARTITION_ID]), filter(nil), rowset=256
access([t_p.c1], [t_p.c2], [t_p.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -385,41 +391,40 @@ insert into t_p(c1,c2) values(1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,
call dbms_stats.gather_table_stats('test','t_p');
explain basic delete /*+no_use_px, parallel(10)*/ t_p from t_p,t_p4 where t_p.c1 = t_p4.c2 and t_p.c1 >= 5;
Query Plan
===================================================
|ID|OPERATOR |NAME |
---------------------------------------------------
|0 |DISTRIBUTED DELETE | |
|1 |└─PX COORDINATOR | |
|2 | └─EXCHANGE OUT DISTR |:EX10001|
|3 | └─HASH JOIN | |
|4 | ├─PART JOIN FILTER CREATE |:BF0000 |
|5 | │ └─EXCHANGE IN DISTR | |
|6 | │ └─EXCHANGE OUT DISTR (PKEY)|:EX10000|
|7 | │ └─PX BLOCK ITERATOR | |
|8 | │ └─TABLE FULL SCAN |t_p4 |
|9 | └─PX PARTITION HASH JOIN-FILTER|:BF0000 |
|10| └─TABLE RANGE SCAN |t_p |
===================================================
======================================================
|ID|OPERATOR |NAME |
------------------------------------------------------
|0 |DISTRIBUTED DELETE | |
|1 |└─PX COORDINATOR | |
|2 | └─EXCHANGE OUT DISTR |:EX10001|
|3 | └─SHARED HASH JOIN | |
|4 | ├─PART JOIN FILTER CREATE |:BF0000 |
|5 | │ └─EXCHANGE IN DISTR | |
|6 | │ └─EXCHANGE OUT DISTR (BC2HOST)|:EX10000|
|7 | │ └─PX BLOCK ITERATOR | |
|8 | │ └─TABLE FULL SCAN |t_p4 |
|9 | └─PX BLOCK HASH JOIN-FILTER |:BF0000 |
|10| └─TABLE RANGE SCAN |t_p |
======================================================
Outputs & filters:
-------------------------------------
0 - output(nil), filter(nil)
table_columns([{t_p: ({t_p: (t_p.c1, t_p.c2, t_p.c3)}), hash_distinct}])
1 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=256
2 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=256
dop=4
dop=10
3 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=256
equal_conds([t_p.c1 = t_p4.c2]), other_conds(nil)
4 - output([t_p4.c2]), filter(nil), rowset=256
5 - output([t_p4.c2]), filter(nil), rowset=256
6 - output([t_p4.c2]), filter(nil), rowset=256
(#keys=1, [t_p4.c2]), dop=10
dop=10
7 - output([t_p4.c2]), filter(nil), rowset=256
8 - output([t_p4.c2]), filter([t_p4.c2 >= 5]), rowset=256
access([t_p4.c2]), partitions(p[0-3])
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t_p4.c1]), range(MIN ; MAX)always true
9 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=256
affinitize
10 - output([t_p.c1], [t_p.c2], [t_p.c3], [PARTITION_ID]), filter(nil), rowset=256
access([t_p.c1], [t_p.c2], [t_p.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -427,41 +432,40 @@ Outputs & filters:
range_cond([t_p.c1 >= 5])
explain basic delete /*+use_px, parallel(10)*/ t_p from t_p,t_p4 where t_p.c1 = t_p4.c2 and t_p.c1 >= 5;
Query Plan
===================================================
|ID|OPERATOR |NAME |
---------------------------------------------------
|0 |DISTRIBUTED DELETE | |
|1 |└─PX COORDINATOR | |
|2 | └─EXCHANGE OUT DISTR |:EX10001|
|3 | └─HASH JOIN | |
|4 | ├─PART JOIN FILTER CREATE |:BF0000 |
|5 | │ └─EXCHANGE IN DISTR | |
|6 | │ └─EXCHANGE OUT DISTR (PKEY)|:EX10000|
|7 | │ └─PX BLOCK ITERATOR | |
|8 | │ └─TABLE FULL SCAN |t_p4 |
|9 | └─PX PARTITION HASH JOIN-FILTER|:BF0000 |
|10| └─TABLE RANGE SCAN |t_p |
===================================================
======================================================
|ID|OPERATOR |NAME |
------------------------------------------------------
|0 |DISTRIBUTED DELETE | |
|1 |└─PX COORDINATOR | |
|2 | └─EXCHANGE OUT DISTR |:EX10001|
|3 | └─SHARED HASH JOIN | |
|4 | ├─PART JOIN FILTER CREATE |:BF0000 |
|5 | │ └─EXCHANGE IN DISTR | |
|6 | │ └─EXCHANGE OUT DISTR (BC2HOST)|:EX10000|
|7 | │ └─PX BLOCK ITERATOR | |
|8 | │ └─TABLE FULL SCAN |t_p4 |
|9 | └─PX BLOCK HASH JOIN-FILTER |:BF0000 |
|10| └─TABLE RANGE SCAN |t_p |
======================================================
Outputs & filters:
-------------------------------------
0 - output(nil), filter(nil)
table_columns([{t_p: ({t_p: (t_p.c1, t_p.c2, t_p.c3)}), hash_distinct}])
1 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=256
2 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=256
dop=4
dop=10
3 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=256
equal_conds([t_p.c1 = t_p4.c2]), other_conds(nil)
4 - output([t_p4.c2]), filter(nil), rowset=256
5 - output([t_p4.c2]), filter(nil), rowset=256
6 - output([t_p4.c2]), filter(nil), rowset=256
(#keys=1, [t_p4.c2]), dop=10
dop=10
7 - output([t_p4.c2]), filter(nil), rowset=256
8 - output([t_p4.c2]), filter([t_p4.c2 >= 5]), rowset=256
access([t_p4.c2]), partitions(p[0-3])
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t_p4.c1]), range(MIN ; MAX)always true
9 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=256
affinitize
10 - output([t_p.c1], [t_p.c2], [t_p.c3], [PARTITION_ID]), filter(nil), rowset=256
access([t_p.c1], [t_p.c2], [t_p.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
@ -1898,23 +1902,22 @@ delete from t_p;
call dbms_stats.gather_table_stats('test','t_p');
explain basic insert /*+no_use_px, parallel(10)*/ into t_p select t_temp_p.c1,t_temp_p.c2,t_temp_p.c3 from t_temp_p,t_temp_p5 where t_temp_p.c1 = t_temp_p5.c1;
Query Plan
==========================================================
|ID|OPERATOR |NAME |
----------------------------------------------------------
|0 |DISTRIBUTED INSERT | |
|1 |└─PX COORDINATOR | |
|2 | └─EXCHANGE OUT DISTR |:EX10002 |
|3 | └─SUBPLAN SCAN |ANONYMOUS_VIEW1|
|4 | └─HASH JOIN | |
|5 | ├─EXCHANGE IN DISTR | |
|6 | │ └─EXCHANGE OUT DISTR (HASH)|:EX10000 |
|7 | │ └─PX BLOCK ITERATOR | |
|8 | │ └─TABLE FULL SCAN |t_temp_p5 |
|9 | └─EXCHANGE IN DISTR | |
|10| └─EXCHANGE OUT DISTR (HASH)|:EX10001 |
|11| └─PX BLOCK ITERATOR | |
|12| └─TABLE FULL SCAN |t_temp_p |
==========================================================
===============================================================
|ID|OPERATOR |NAME |
---------------------------------------------------------------
|0 |DISTRIBUTED INSERT | |
|1 |└─PX COORDINATOR | |
|2 | └─EXCHANGE OUT DISTR |:EX10001 |
|3 | └─SUBPLAN SCAN |ANONYMOUS_VIEW1|
|4 | └─SHARED HASH JOIN | |
|5 | ├─PART JOIN FILTER CREATE |:BF0000 |
|6 | │ └─EXCHANGE IN DISTR | |
|7 | │ └─EXCHANGE OUT DISTR (BC2HOST)|:EX10000 |
|8 | │ └─PX BLOCK ITERATOR | |
|9 | │ └─TABLE FULL SCAN |t_temp_p5 |
|10| └─PX BLOCK HASH JOIN-FILTER |:BF0000 |
|11| └─TABLE FULL SCAN |t_temp_p |
===============================================================
Outputs & filters:
-------------------------------------
0 - output(nil), filter(nil)
@ -1930,39 +1933,36 @@ Outputs & filters:
equal_conds([t_temp_p.c1 = t_temp_p5.c1]), other_conds(nil)
5 - output([t_temp_p5.c1]), filter(nil), rowset=256
6 - output([t_temp_p5.c1]), filter(nil), rowset=256
(#keys=1, [t_temp_p5.c1]), dop=10
7 - output([t_temp_p5.c1]), filter(nil), rowset=256
dop=10
8 - output([t_temp_p5.c1]), filter(nil), rowset=256
9 - output([t_temp_p5.c1]), filter(nil), rowset=256
access([t_temp_p5.c1]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
range_key([t_temp_p5.__pk_increment]), range(MIN ; MAX)always true
9 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), filter(nil), rowset=256
10 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), filter(nil), rowset=256
(#keys=1, [t_temp_p.c1]), dop=10
11 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), filter(nil), rowset=256
12 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), filter(nil), rowset=256
11 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3], [PARTITION_ID]), filter(nil), rowset=256
access([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
range_key([t_temp_p.__pk_increment]), range(MIN ; MAX)always true
explain basic insert /*+use_px, parallel(10)*/ into t_p select t_temp_p.c1,t_temp_p.c2,t_temp_p.c3 from t_temp_p,t_temp_p5 where t_temp_p.c1 = t_temp_p5.c1;
Query Plan
==========================================================
|ID|OPERATOR |NAME |
----------------------------------------------------------
|0 |DISTRIBUTED INSERT | |
|1 |└─PX COORDINATOR | |
|2 | └─EXCHANGE OUT DISTR |:EX10002 |
|3 | └─SUBPLAN SCAN |ANONYMOUS_VIEW1|
|4 | └─HASH JOIN | |
|5 | ├─EXCHANGE IN DISTR | |
|6 | │ └─EXCHANGE OUT DISTR (HASH)|:EX10000 |
|7 | │ └─PX BLOCK ITERATOR | |
|8 | │ └─TABLE FULL SCAN |t_temp_p5 |
|9 | └─EXCHANGE IN DISTR | |
|10| └─EXCHANGE OUT DISTR (HASH)|:EX10001 |
|11| └─PX BLOCK ITERATOR | |
|12| └─TABLE FULL SCAN |t_temp_p |
==========================================================
===============================================================
|ID|OPERATOR |NAME |
---------------------------------------------------------------
|0 |DISTRIBUTED INSERT | |
|1 |└─PX COORDINATOR | |
|2 | └─EXCHANGE OUT DISTR |:EX10001 |
|3 | └─SUBPLAN SCAN |ANONYMOUS_VIEW1|
|4 | └─SHARED HASH JOIN | |
|5 | ├─PART JOIN FILTER CREATE |:BF0000 |
|6 | │ └─EXCHANGE IN DISTR | |
|7 | │ └─EXCHANGE OUT DISTR (BC2HOST)|:EX10000 |
|8 | │ └─PX BLOCK ITERATOR | |
|9 | │ └─TABLE FULL SCAN |t_temp_p5 |
|10| └─PX BLOCK HASH JOIN-FILTER |:BF0000 |
|11| └─TABLE FULL SCAN |t_temp_p |
===============================================================
Outputs & filters:
-------------------------------------
0 - output(nil), filter(nil)
@ -1978,17 +1978,15 @@ Outputs & filters:
equal_conds([t_temp_p.c1 = t_temp_p5.c1]), other_conds(nil)
5 - output([t_temp_p5.c1]), filter(nil), rowset=256
6 - output([t_temp_p5.c1]), filter(nil), rowset=256
(#keys=1, [t_temp_p5.c1]), dop=10
7 - output([t_temp_p5.c1]), filter(nil), rowset=256
dop=10
8 - output([t_temp_p5.c1]), filter(nil), rowset=256
9 - output([t_temp_p5.c1]), filter(nil), rowset=256
access([t_temp_p5.c1]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
range_key([t_temp_p5.__pk_increment]), range(MIN ; MAX)always true
9 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), filter(nil), rowset=256
10 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), filter(nil), rowset=256
(#keys=1, [t_temp_p.c1]), dop=10
11 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), filter(nil), rowset=256
12 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), filter(nil), rowset=256
11 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3], [PARTITION_ID]), filter(nil), rowset=256
access([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
range_key([t_temp_p.__pk_increment]), range(MIN ; MAX)always true
@ -2068,23 +2066,22 @@ delete from t_p;
call dbms_stats.gather_table_stats('test','t_p');
explain basic insert /*+use_px, parallel(10)*/ into t_p select t_temp_p.c1, t_temp_p.c2, t_temp_p.c3 from t_temp_p, t_temp_p4 where t_temp_p.c1 = t_temp_p4.c1;
Query Plan
==========================================================
|ID|OPERATOR |NAME |
----------------------------------------------------------
|0 |DISTRIBUTED INSERT | |
|1 |└─PX COORDINATOR | |
|2 | └─EXCHANGE OUT DISTR |:EX10002 |
|3 | └─SUBPLAN SCAN |ANONYMOUS_VIEW1|
|4 | └─HASH JOIN | |
|5 | ├─EXCHANGE IN DISTR | |
|6 | │ └─EXCHANGE OUT DISTR (HASH)|:EX10000 |
|7 | │ └─PX BLOCK ITERATOR | |
|8 | │ └─TABLE FULL SCAN |t_temp_p4 |
|9 | └─EXCHANGE IN DISTR | |
|10| └─EXCHANGE OUT DISTR (HASH)|:EX10001 |
|11| └─PX BLOCK ITERATOR | |
|12| └─TABLE FULL SCAN |t_temp_p |
==========================================================
===============================================================
|ID|OPERATOR |NAME |
---------------------------------------------------------------
|0 |DISTRIBUTED INSERT | |
|1 |└─PX COORDINATOR | |
|2 | └─EXCHANGE OUT DISTR |:EX10001 |
|3 | └─SUBPLAN SCAN |ANONYMOUS_VIEW1|
|4 | └─SHARED HASH JOIN | |
|5 | ├─PART JOIN FILTER CREATE |:BF0000 |
|6 | │ └─EXCHANGE IN DISTR | |
|7 | │ └─EXCHANGE OUT DISTR (BC2HOST)|:EX10000 |
|8 | │ └─PX BLOCK ITERATOR | |
|9 | │ └─TABLE FULL SCAN |t_temp_p4 |
|10| └─PX BLOCK HASH JOIN-FILTER |:BF0000 |
|11| └─TABLE FULL SCAN |t_temp_p |
===============================================================
Outputs & filters:
-------------------------------------
0 - output(nil), filter(nil)
@ -2100,17 +2097,15 @@ Outputs & filters:
equal_conds([t_temp_p.c1 = t_temp_p4.c1]), other_conds(nil)
5 - output([t_temp_p4.c1]), filter(nil), rowset=256
6 - output([t_temp_p4.c1]), filter(nil), rowset=256
(#keys=1, [t_temp_p4.c1]), dop=10
7 - output([t_temp_p4.c1]), filter(nil), rowset=256
dop=10
8 - output([t_temp_p4.c1]), filter(nil), rowset=256
9 - output([t_temp_p4.c1]), filter(nil), rowset=256
access([t_temp_p4.c1]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
range_key([t_temp_p4.__pk_increment]), range(MIN ; MAX)always true
9 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), filter(nil), rowset=256
10 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), filter(nil), rowset=256
(#keys=1, [t_temp_p.c1]), dop=10
11 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), filter(nil), rowset=256
12 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), filter(nil), rowset=256
11 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3], [PARTITION_ID]), filter(nil), rowset=256
access([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
range_key([t_temp_p.__pk_increment]), range(MIN ; MAX)always true

View File

@ -73,9 +73,9 @@ Query Plan
============================================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
----------------------------------------------------------------------------
|0 |PX COORDINATOR | |26 |69 |
|1 |└─EXCHANGE OUT DISTR |:EX10001|26 |43 |
|2 | └─NESTED-LOOP JOIN | |26 |14 |
|0 |PX COORDINATOR | |26 |68 |
|1 |└─EXCHANGE OUT DISTR |:EX10001|26 |42 |
|2 | └─NESTED-LOOP JOIN | |26 |12 |
|3 | ├─PX BLOCK ITERATOR | |28 |6 |
|4 | │ └─TABLE FULL SCAN |score |28 |6 |
|5 | └─MATERIAL | |1 |7 |

View File

@ -1523,17 +1523,18 @@ Outputs & filters:
range_cond([:0 > t2.pk2])
explain select a, b, c from t1 where b = 100 and c < 100 and c > 100 order by c desc limit 0, 100;
Query Plan
==============================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
--------------------------------------------------------------
|0 |TABLE FULL SCAN|t1(idx_b_c,Reverse)|0 |2 |
==============================================================
=============================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
-------------------------------------------------------------
|0 |TABLE RANGE SCAN|t1(idx_c,Reverse)|0 |2 |
=============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.a], [t1.b], [t1.c]), filter([t1.c < 100], [t1.c > 100], [t1.b = 100]), rowset=256
0 - output([t1.a], [t1.b], [t1.c]), filter([t1.b = 100]), rowset=256
access([t1.pk1], [t1.b], [t1.c], [t1.a]), partitions(p0)
limit(100), offset(0), is_index_back=true, is_global_index=false, filter_before_indexback[true,true,true],
range_key([t1.b], [t1.c], [t1.pk1]), range(MAX,MAX,MAX ; MIN,MIN,MIN)always false
limit(100), offset(0), is_index_back=true, is_global_index=false, filter_before_indexback[false],
range_key([t1.c], [t1.pk1]), range(MAX,MAX ; MIN,MIN)always false,
range_cond([t1.c < 100], [t1.c > 100])
explain select a, b, c from t1 where b = 100 or (b = 200 and c = 300) order by c desc limit 0, 100;
Query Plan
================================================================

View File

@ -750,9 +750,9 @@ Query Plan
|3 |│ └─PX BLOCK ITERATOR | |5 |5 |
|4 |│ └─TABLE FULL SCAN |t2 |5 |5 |
|5 |└─SCALAR GROUP BY | |1 |6 |
|6 | └─PX COORDINATOR | |4 |6 |
|7 | └─EXCHANGE OUT DISTR |:EX20000|4 |5 |
|8 | └─MERGE GROUP BY | |4 |5 |
|6 | └─PX COORDINATOR | |2 |5 |
|7 | └─EXCHANGE OUT DISTR |:EX20000|2 |5 |
|8 | └─MERGE GROUP BY | |2 |5 |
|9 | └─PX BLOCK ITERATOR| |5 |5 |
|10| └─TABLE FULL SCAN|t1 |5 |5 |
===============================================================
@ -796,7 +796,7 @@ Query Plan
==================================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
------------------------------------------------------------------
|0 |SUBPLAN FILTER | |5 |9 |
|0 |SUBPLAN FILTER | |5 |10 |
|1 |├─PX COORDINATOR | |5 |5 |
|2 |│ └─EXCHANGE OUT DISTR |:EX10000|5 |5 |
|3 |│ └─PX BLOCK ITERATOR | |5 |5 |
@ -1574,15 +1574,15 @@ Query Plan
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
--------------------------------------------------------------------------------------
|0 |SORT | |3 |2059 |
|1 |└─SUBPLAN FILTER | |3 |2059 |
|1 |└─SUBPLAN FILTER | |3 |2058 |
|2 | ├─PX COORDINATOR | |5 |8 |
|3 | │ └─EXCHANGE OUT DISTR |:EX10000|5 |7 |
|4 | │ └─PX BLOCK ITERATOR | |5 |5 |
|5 | │ └─TABLE FULL SCAN |t1 |5 |5 |
|6 | └─MERGE GROUP BY | |1 |12 |
|7 | └─PX COORDINATOR | |4 |12 |
|8 | └─EXCHANGE OUT DISTR |:EX20002|4 |12 |
|9 | └─MERGE GROUP BY | |4 |12 |
|7 | └─PX COORDINATOR | |2 |12 |
|8 | └─EXCHANGE OUT DISTR |:EX20002|2 |12 |
|9 | └─MERGE GROUP BY | |2 |12 |
|10| └─NESTED-LOOP JOIN CARTESIAN | |25 |12 |
|11| ├─MATERIAL | |5 |8 |
|12| │ └─NESTED-LOOP JOIN CARTESIAN | |5 |8 |
@ -1773,6 +1773,8 @@ Optimization Info:
logical_range_rows:18
index_back_rows:0
output_rows:18
table_dop:1
dop_method:Table DOP
avaiable_index_name:[t1]
stats version:0
dynamic sampling level:1
@ -1782,11 +1784,15 @@ Optimization Info:
logical_range_rows:7
index_back_rows:0
output_rows:7
table_dop:1
dop_method:DAS DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:1
Plan Type:
DISTRIBUTED
Note:
Degree of Parallelisim is 1 because of table property
select c1,c1 in (select c1 from t2 where t2.c1 >= t1.c1) as x from t1;
+----+---+
| c1 | x |
@ -1868,6 +1874,8 @@ Optimization Info:
logical_range_rows:18
index_back_rows:0
output_rows:18
table_dop:1
dop_method:Table DOP
avaiable_index_name:[t1]
stats version:0
dynamic sampling level:1
@ -1877,11 +1885,15 @@ Optimization Info:
logical_range_rows:7
index_back_rows:0
output_rows:2
table_dop:1
dop_method:DAS DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:1
Plan Type:
DISTRIBUTED
Note:
Degree of Parallelisim is 1 because of table property
select c1, (select c1 from t2 where t2.c1 >= t1.c1 and t2.c2 > t1.c3 limit 1) as x from t1;
+----+---+
| c1 | x |
@ -1963,6 +1975,8 @@ Optimization Info:
logical_range_rows:18
index_back_rows:0
output_rows:18
table_dop:1
dop_method:Table DOP
avaiable_index_name:[t1]
stats version:0
dynamic sampling level:1
@ -1972,11 +1986,15 @@ Optimization Info:
logical_range_rows:1
index_back_rows:0
output_rows:1
table_dop:1
dop_method:DAS DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:0
Plan Type:
DISTRIBUTED
Note:
Degree of Parallelisim is 1 because of table property
select c1,c1 + (select c1 from t2 where t2.c1 = t1.c1) as x from t1;
+----+----+
| c1 | x |
@ -2068,6 +2086,8 @@ Optimization Info:
logical_range_rows:18
index_back_rows:0
output_rows:18
table_dop:1
dop_method:Table DOP
avaiable_index_name:[t1]
stats version:0
dynamic sampling level:1
@ -2077,6 +2097,8 @@ Optimization Info:
logical_range_rows:1
index_back_rows:0
output_rows:1
table_dop:1
dop_method:Table DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:0
@ -2086,11 +2108,15 @@ Optimization Info:
logical_range_rows:7
index_back_rows:0
output_rows:0
table_dop:1
dop_method:DAS DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:1
Plan Type:
DISTRIBUTED
Note:
Degree of Parallelisim is 1 because of table property
select c1,c1 in (select c1 from t2 where t2.c1 >= t1.c1) and c1 in (select c2 from t2 where t2.c1 >= t1.c1) as x from t1;
+----+------+
| c1 | x |
@ -2182,6 +2208,8 @@ Optimization Info:
logical_range_rows:18
index_back_rows:0
output_rows:18
table_dop:1
dop_method:Table DOP
avaiable_index_name:[t1]
stats version:0
dynamic sampling level:1
@ -2191,6 +2219,8 @@ Optimization Info:
logical_range_rows:1
index_back_rows:0
output_rows:1
table_dop:1
dop_method:Table DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:0
@ -2200,11 +2230,15 @@ Optimization Info:
logical_range_rows:7
index_back_rows:0
output_rows:0
table_dop:1
dop_method:DAS DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:1
Plan Type:
DISTRIBUTED
Note:
Degree of Parallelisim is 1 because of table property
select c1,c1 in (select c1 from t2 where t2.c1 >= t1.c1) or c1 in (select c2 from t2 where t2.c1 >= t1.c1) as x from t1;
+----+------+
| c1 | x |
@ -2297,6 +2331,8 @@ Optimization Info:
logical_range_rows:18
index_back_rows:0
output_rows:18
table_dop:1
dop_method:Table DOP
avaiable_index_name:[t1]
stats version:0
dynamic sampling level:1
@ -2306,6 +2342,8 @@ Optimization Info:
logical_range_rows:1
index_back_rows:0
output_rows:1
table_dop:1
dop_method:Table DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:0
@ -2315,11 +2353,15 @@ Optimization Info:
logical_range_rows:7
index_back_rows:0
output_rows:0
table_dop:1
dop_method:DAS DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:1
Plan Type:
DISTRIBUTED
Note:
Degree of Parallelisim is 1 because of table property
select c1,c1 in (select c1 from t2 where t2.c1 <= t1.c1) and c1 in (select c2 from t2 where t2.c1 <= t1.c1) as x from t1;
+----+------+
| c1 | x |
@ -2412,6 +2454,8 @@ Optimization Info:
logical_range_rows:18
index_back_rows:0
output_rows:18
table_dop:1
dop_method:Table DOP
avaiable_index_name:[t1]
stats version:0
dynamic sampling level:1
@ -2421,6 +2465,8 @@ Optimization Info:
logical_range_rows:1
index_back_rows:0
output_rows:1
table_dop:1
dop_method:Table DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:0
@ -2430,11 +2476,15 @@ Optimization Info:
logical_range_rows:7
index_back_rows:0
output_rows:0
table_dop:1
dop_method:DAS DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:1
Plan Type:
DISTRIBUTED
Note:
Degree of Parallelisim is 1 because of table property
select c1,c1 in (select c1 from t2 where t2.c1 <= t1.c1) or c1 in (select c2 from t2 where t2.c1 <= t1.c1) as x from t1;
+----+------+
| c1 | x |
@ -2536,6 +2586,8 @@ Optimization Info:
logical_range_rows:18
index_back_rows:0
output_rows:18
table_dop:1
dop_method:Table DOP
avaiable_index_name:[t1]
stats version:0
dynamic sampling level:1
@ -2545,6 +2597,8 @@ Optimization Info:
logical_range_rows:1
index_back_rows:0
output_rows:1
table_dop:1
dop_method:Table DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:0
@ -2554,6 +2608,8 @@ Optimization Info:
logical_range_rows:7
index_back_rows:0
output_rows:0
table_dop:1
dop_method:DAS DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:1
@ -2563,11 +2619,15 @@ Optimization Info:
logical_range_rows:1
index_back_rows:0
output_rows:1
table_dop:1
dop_method:DAS DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:0
Plan Type:
DISTRIBUTED
Note:
Degree of Parallelisim is 1 because of table property
select c1,c1 in (select c1 from t2 where t2.c1 <= t1.c1) and c1 in (select c2 from t2 where t2.c1 <= t1.c1) or c1 + (select c1 from t2 where t2.c1 = t1.c1) as x from t1;
+----+------+
| c1 | x |
@ -2711,6 +2771,8 @@ Optimization Info:
logical_range_rows:18
index_back_rows:0
output_rows:18
table_dop:1
dop_method:Table DOP
avaiable_index_name:[t1]
stats version:0
dynamic sampling level:1
@ -2720,6 +2782,8 @@ Optimization Info:
logical_range_rows:1
index_back_rows:0
output_rows:1
table_dop:1
dop_method:DAS DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:0
@ -2729,6 +2793,8 @@ Optimization Info:
logical_range_rows:1
index_back_rows:0
output_rows:1
table_dop:1
dop_method:DAS DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:0
@ -2738,6 +2804,8 @@ Optimization Info:
logical_range_rows:1
index_back_rows:0
output_rows:1
table_dop:1
dop_method:DAS DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:0
@ -2747,6 +2815,8 @@ Optimization Info:
logical_range_rows:1
index_back_rows:0
output_rows:1
table_dop:1
dop_method:DAS DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:0
@ -2756,6 +2826,8 @@ Optimization Info:
logical_range_rows:7
index_back_rows:0
output_rows:0
table_dop:1
dop_method:DAS DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:1
@ -2765,6 +2837,8 @@ Optimization Info:
logical_range_rows:1
index_back_rows:0
output_rows:1
table_dop:1
dop_method:DAS DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:0
@ -2774,11 +2848,15 @@ Optimization Info:
logical_range_rows:1
index_back_rows:0
output_rows:1
table_dop:1
dop_method:DAS DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:0
Plan Type:
DISTRIBUTED
Note:
Degree of Parallelisim is 1 because of table property
select c1,c1 in (select c1 from t2 where t2.c1=t1.c1) and c1 in (select c1 from t2 where t2.c1 <= t1.c1) or c1 + (select c1 from t2 where t2.c1 = t1.c1) as x, c1+(select c1 from t2 where t2.c1 = t1.c1) or c1 in (select c2 from t2 where t2.c1 <= t1.c1) as y,c1+(select c2 from t2 where t1.c1=t2.c1) > 10 and c1 in (select c1 from t2 where t1.c1>= t2.c1) as z from t1;
+----+------+------+------+
| c1 | x | y | z |
@ -2922,6 +3000,8 @@ Optimization Info:
logical_range_rows:18
index_back_rows:0
output_rows:18
table_dop:1
dop_method:Table DOP
avaiable_index_name:[t1]
stats version:0
dynamic sampling level:1
@ -2931,6 +3011,8 @@ Optimization Info:
logical_range_rows:1
index_back_rows:0
output_rows:1
table_dop:1
dop_method:DAS DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:0
@ -2940,6 +3022,8 @@ Optimization Info:
logical_range_rows:1
index_back_rows:0
output_rows:1
table_dop:1
dop_method:DAS DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:0
@ -2949,6 +3033,8 @@ Optimization Info:
logical_range_rows:1
index_back_rows:0
output_rows:1
table_dop:1
dop_method:DAS DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:0
@ -2958,6 +3044,8 @@ Optimization Info:
logical_range_rows:1
index_back_rows:0
output_rows:1
table_dop:1
dop_method:DAS DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:0
@ -2967,6 +3055,8 @@ Optimization Info:
logical_range_rows:7
index_back_rows:0
output_rows:0
table_dop:1
dop_method:DAS DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:1
@ -2976,6 +3066,8 @@ Optimization Info:
logical_range_rows:1
index_back_rows:0
output_rows:1
table_dop:1
dop_method:DAS DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:0
@ -2985,11 +3077,15 @@ Optimization Info:
logical_range_rows:1
index_back_rows:0
output_rows:1
table_dop:1
dop_method:DAS DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:0
Plan Type:
DISTRIBUTED
Note:
Degree of Parallelisim is 1 because of table property
select c1,c1 in (select c1 from t2 where t2.c1>=t1.c1) and c1 in (select c1 from t2 where t2.c1 <= t1.c1) or c1 + (select c1 from t2 where t2.c1 = t1.c1) as x, c1+(select c1 from t2 where t2.c1 = t1.c1) > 30 or c1 in (select c2 from t2 where t2.c1 <= t1.c1) as y,c1+(select c2 from t2 where t1.c1=t2.c1) > 10 and c1 in (select c1 from t2 where t1.c1>= t2.c1) as z from t1;
+----+------+------+------+
| c1 | x | y | z |
@ -3133,6 +3229,8 @@ Optimization Info:
logical_range_rows:18
index_back_rows:0
output_rows:18
table_dop:1
dop_method:Table DOP
avaiable_index_name:[t1]
stats version:0
dynamic sampling level:1
@ -3142,6 +3240,8 @@ Optimization Info:
logical_range_rows:1
index_back_rows:0
output_rows:1
table_dop:1
dop_method:DAS DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:0
@ -3151,6 +3251,8 @@ Optimization Info:
logical_range_rows:1
index_back_rows:0
output_rows:1
table_dop:1
dop_method:DAS DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:0
@ -3160,6 +3262,8 @@ Optimization Info:
logical_range_rows:1
index_back_rows:0
output_rows:1
table_dop:1
dop_method:DAS DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:0
@ -3169,6 +3273,8 @@ Optimization Info:
logical_range_rows:1
index_back_rows:0
output_rows:1
table_dop:1
dop_method:DAS DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:0
@ -3178,6 +3284,8 @@ Optimization Info:
logical_range_rows:7
index_back_rows:0
output_rows:0
table_dop:1
dop_method:DAS DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:1
@ -3187,6 +3295,8 @@ Optimization Info:
logical_range_rows:1
index_back_rows:0
output_rows:1
table_dop:1
dop_method:DAS DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:0
@ -3196,11 +3306,15 @@ Optimization Info:
logical_range_rows:1
index_back_rows:0
output_rows:1
table_dop:1
dop_method:DAS DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:0
Plan Type:
DISTRIBUTED
Note:
Degree of Parallelisim is 1 because of table property
select c1,c1 in (select c1 from t2 where t2.c1>=t1.c1) and c1 in (select c1 from t2 where t2.c1 <= t1.c1) or c1 + (select c1 from t2 where t2.c1 = t1.c1) as x, c1+(select c1 from t2 where t2.c1 = t1.c1) > 30 or c1 in (select c2 from t2 where t2.c1 <= t1.c1) as y,c1+(select c2 from t2 where t1.c1=t2.c1) > 10 and c1 in (select c1 from t2 where t1.c1>= t2.c1) as z from t1;
+----+------+------+------+
| c1 | x | y | z |

View File

@ -3735,6 +3735,8 @@ Optimization Info:
logical_range_rows:1
index_back_rows:0
output_rows:0
table_dop:1
dop_method:Table DOP
avaiable_index_name:[t1]
stats version:0
dynamic sampling level:1
@ -3744,11 +3746,15 @@ Optimization Info:
logical_range_rows:1
index_back_rows:0
output_rows:1
table_dop:1
dop_method:DAS DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:1
Plan Type:
LOCAL
Note:
Degree of Parallelisim is 1 because of table property
drop table t1, t2;
create table t1 (c1 int, c2 int, index (c1));
@ -3810,6 +3816,8 @@ Optimization Info:
logical_range_rows:1
index_back_rows:1
output_rows:0
table_dop:1
dop_method:Table DOP
avaiable_index_name:[c1, t1]
unstable_index_name:[t1]
stats version:0
@ -3820,12 +3828,16 @@ Optimization Info:
logical_range_rows:1
index_back_rows:0
output_rows:1
table_dop:1
dop_method:DAS DOP
avaiable_index_name:[c2, t2]
pruned_index_name:[t2]
stats version:0
dynamic sampling level:1
Plan Type:
LOCAL
Note:
Degree of Parallelisim is 1 because of table property
drop table t1, t2;
create table t1 (c1 int, c2 int) partition by hash(c1) partitions 4;
@ -3897,6 +3909,8 @@ Optimization Info:
logical_range_rows:1
index_back_rows:0
output_rows:1
table_dop:1
dop_method:Table DOP
avaiable_index_name:[t2]
stats version:0
dynamic sampling level:1
@ -3906,11 +3920,15 @@ Optimization Info:
logical_range_rows:1
index_back_rows:0
output_rows:1
table_dop:1
dop_method:Table DOP
avaiable_index_name:[t1]
stats version:0
dynamic sampling level:1
Plan Type:
DISTRIBUTED
Note:
Degree of Parallelisim is 1 because of table property
drop table if exists t1, t2, t3;

View File

@ -224,10 +224,10 @@ Query Plan
=========================================================
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
---------------------------------------------------------
|0 |SUBPLAN SCAN |rw |433 |135 |
|1 |└─RECURSIVE UNION ALL | |433 |134 |
|0 |SUBPLAN SCAN |rw |433 |137 |
|1 |└─RECURSIVE UNION ALL | |433 |135 |
|2 | ├─TABLE FULL SCAN |e |1 |3 |
|3 | └─MERGE JOIN | |432 |130 |
|3 | └─MERGE JOIN | |432 |132 |
|4 | │ MATERIAL | |14 |7 |
|5 | └─│ SORT | |14 |5 |
|6 | │ └─TABLE FULL SCAN|e |14 |3 |
@ -392,13 +392,13 @@ Query Plan
=========================================================
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
---------------------------------------------------------
|0 |SUBPLAN SCAN |rw |520 |44 |
|1 |└─RECURSIVE UNION ALL | |520 |42 |
|0 |SUBPLAN SCAN |rw |520 |46 |
|1 |└─RECURSIVE UNION ALL | |520 |44 |
|2 | ├─NESTED-LOOP JOIN | |17 |9 |
|3 | │ ├─TABLE FULL SCAN |e |14 |3 |
|4 | │ └─MATERIAL | |14 |3 |
|5 | │ └─TABLE FULL SCAN |d |14 |3 |
|6 | └─HASH JOIN | |504 |32 |
|6 | └─HASH JOIN | |504 |34 |
|7 | │ MATERIAL | |17 |11 |
|8 | └─│ HASH JOIN | |17 |9 |
|9 | │ ├─TABLE FULL SCAN|d |14 |3 |
@ -908,15 +908,15 @@ Query Plan
===========================================================
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
-----------------------------------------------------------
|0 |SORT | |1001 |359 |
|1 |└─SUBPLAN SCAN |rw |1001 |53 |
|2 | └─RECURSIVE UNION ALL | |1001 |50 |
|0 |SORT | |1001 |361 |
|1 |└─SUBPLAN SCAN |rw |1001 |55 |
|2 | └─RECURSIVE UNION ALL | |1001 |52 |
|3 | ├─HASH JOIN | |79 |16 |
|4 | │ ├─HASH JOIN | |17 |8 |
|5 | │ │ ├─TABLE FULL SCAN |e |5 |3 |
|6 | │ │ └─TABLE FULL SCAN |n1 |17 |3 |
|7 | │ └─TABLE FULL SCAN |n2 |17 |3 |
|8 | └─HASH JOIN | |922 |32 |
|8 | └─HASH JOIN | |922 |34 |
|9 | │ MATERIAL | |22 |10 |
|10| └─│ HASH JOIN | |22 |8 |
|11| │ ├─TABLE FULL SCAN|e |5 |3 |
@ -1015,15 +1015,15 @@ Query Plan
===========================================================
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
-----------------------------------------------------------
|0 |SORT | |1001 |362 |
|1 |└─SUBPLAN SCAN |rw |1001 |56 |
|2 | └─RECURSIVE UNION ALL | |1001 |53 |
|0 |SORT | |1001 |364 |
|1 |└─SUBPLAN SCAN |rw |1001 |57 |
|2 | └─RECURSIVE UNION ALL | |1001 |55 |
|3 | ├─HASH JOIN | |79 |16 |
|4 | │ ├─HASH JOIN | |17 |8 |
|5 | │ │ ├─TABLE FULL SCAN |e |5 |3 |
|6 | │ │ └─TABLE FULL SCAN |n1 |17 |3 |
|7 | │ └─TABLE FULL SCAN |n2 |17 |3 |
|8 | └─HASH JOIN | |922 |35 |
|8 | └─HASH JOIN | |922 |37 |
|9 | │ MATERIAL | |22 |13 |
|10| └─│ HASH JOIN | |22 |11 |
|11| │ ├─TABLE FULL SCAN|n |17 |3 |
@ -1761,10 +1761,10 @@ Query Plan
=========================================================
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
---------------------------------------------------------
|0 |SUBPLAN SCAN |rw |433 |135 |
|1 |└─RECURSIVE UNION ALL | |433 |134 |
|0 |SUBPLAN SCAN |rw |433 |137 |
|1 |└─RECURSIVE UNION ALL | |433 |135 |
|2 | ├─TABLE FULL SCAN |e |1 |3 |
|3 | └─MERGE JOIN | |432 |130 |
|3 | └─MERGE JOIN | |432 |132 |
|4 | │ MATERIAL | |14 |7 |
|5 | └─│ SORT | |14 |5 |
|6 | │ └─TABLE FULL SCAN|e |14 |3 |
@ -1929,13 +1929,13 @@ Query Plan
=========================================================
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
---------------------------------------------------------
|0 |SUBPLAN SCAN |rw |520 |44 |
|1 |└─RECURSIVE UNION ALL | |520 |42 |
|0 |SUBPLAN SCAN |rw |520 |46 |
|1 |└─RECURSIVE UNION ALL | |520 |44 |
|2 | ├─NESTED-LOOP JOIN | |17 |9 |
|3 | │ ├─TABLE FULL SCAN |e |14 |3 |
|4 | │ └─MATERIAL | |14 |3 |
|5 | │ └─TABLE FULL SCAN |d |14 |3 |
|6 | └─HASH JOIN | |504 |32 |
|6 | └─HASH JOIN | |504 |34 |
|7 | │ MATERIAL | |17 |11 |
|8 | └─│ HASH JOIN | |17 |9 |
|9 | │ ├─TABLE FULL SCAN|d |14 |3 |
@ -2445,15 +2445,15 @@ Query Plan
===========================================================
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
-----------------------------------------------------------
|0 |SORT | |1001 |359 |
|1 |└─SUBPLAN SCAN |rw |1001 |53 |
|2 | └─RECURSIVE UNION ALL | |1001 |50 |
|0 |SORT | |1001 |361 |
|1 |└─SUBPLAN SCAN |rw |1001 |55 |
|2 | └─RECURSIVE UNION ALL | |1001 |52 |
|3 | ├─HASH JOIN | |79 |16 |
|4 | │ ├─HASH JOIN | |17 |8 |
|5 | │ │ ├─TABLE FULL SCAN |e |5 |3 |
|6 | │ │ └─TABLE FULL SCAN |n1 |17 |3 |
|7 | │ └─TABLE FULL SCAN |n2 |17 |3 |
|8 | └─HASH JOIN | |922 |32 |
|8 | └─HASH JOIN | |922 |34 |
|9 | │ MATERIAL | |22 |10 |
|10| └─│ HASH JOIN | |22 |8 |
|11| │ ├─TABLE FULL SCAN|e |5 |3 |
@ -2552,15 +2552,15 @@ Query Plan
===========================================================
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
-----------------------------------------------------------
|0 |SORT | |1001 |362 |
|1 |└─SUBPLAN SCAN |rw |1001 |56 |
|2 | └─RECURSIVE UNION ALL | |1001 |53 |
|0 |SORT | |1001 |364 |
|1 |└─SUBPLAN SCAN |rw |1001 |57 |
|2 | └─RECURSIVE UNION ALL | |1001 |55 |
|3 | ├─HASH JOIN | |79 |16 |
|4 | │ ├─HASH JOIN | |17 |8 |
|5 | │ │ ├─TABLE FULL SCAN |e |5 |3 |
|6 | │ │ └─TABLE FULL SCAN |n1 |17 |3 |
|7 | │ └─TABLE FULL SCAN |n2 |17 |3 |
|8 | └─HASH JOIN | |922 |35 |
|8 | └─HASH JOIN | |922 |37 |
|9 | │ MATERIAL | |22 |13 |
|10| └─│ HASH JOIN | |22 |11 |
|11| │ ├─TABLE FULL SCAN|n |17 |3 |
@ -3299,10 +3299,10 @@ Query Plan
=========================================================
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
---------------------------------------------------------
|0 |SUBPLAN SCAN |rw |433 |135 |
|1 |└─RECURSIVE UNION ALL | |433 |134 |
|0 |SUBPLAN SCAN |rw |433 |137 |
|1 |└─RECURSIVE UNION ALL | |433 |135 |
|2 | ├─TABLE FULL SCAN |e |1 |3 |
|3 | └─MERGE JOIN | |432 |130 |
|3 | └─MERGE JOIN | |432 |132 |
|4 | │ MATERIAL | |14 |7 |
|5 | └─│ SORT | |14 |5 |
|6 | │ └─TABLE FULL SCAN|e |14 |3 |
@ -3467,13 +3467,13 @@ Query Plan
=========================================================
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
---------------------------------------------------------
|0 |SUBPLAN SCAN |rw |520 |44 |
|1 |└─RECURSIVE UNION ALL | |520 |42 |
|0 |SUBPLAN SCAN |rw |520 |46 |
|1 |└─RECURSIVE UNION ALL | |520 |44 |
|2 | ├─NESTED-LOOP JOIN | |17 |9 |
|3 | │ ├─TABLE FULL SCAN |e |14 |3 |
|4 | │ └─MATERIAL | |14 |3 |
|5 | │ └─TABLE FULL SCAN |d |14 |3 |
|6 | └─HASH JOIN | |504 |32 |
|6 | └─HASH JOIN | |504 |34 |
|7 | │ MATERIAL | |17 |11 |
|8 | └─│ HASH JOIN | |17 |9 |
|9 | │ ├─TABLE FULL SCAN|d |14 |3 |
@ -3983,15 +3983,15 @@ Query Plan
===========================================================
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
-----------------------------------------------------------
|0 |SORT | |1001 |359 |
|1 |└─SUBPLAN SCAN |rw |1001 |53 |
|2 | └─RECURSIVE UNION ALL | |1001 |50 |
|0 |SORT | |1001 |361 |
|1 |└─SUBPLAN SCAN |rw |1001 |55 |
|2 | └─RECURSIVE UNION ALL | |1001 |52 |
|3 | ├─HASH JOIN | |79 |16 |
|4 | │ ├─HASH JOIN | |17 |8 |
|5 | │ │ ├─TABLE FULL SCAN |e |5 |3 |
|6 | │ │ └─TABLE FULL SCAN |n1 |17 |3 |
|7 | │ └─TABLE FULL SCAN |n2 |17 |3 |
|8 | └─HASH JOIN | |922 |32 |
|8 | └─HASH JOIN | |922 |34 |
|9 | │ MATERIAL | |22 |10 |
|10| └─│ HASH JOIN | |22 |8 |
|11| │ ├─TABLE FULL SCAN|e |5 |3 |
@ -4090,15 +4090,15 @@ Query Plan
===========================================================
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
-----------------------------------------------------------
|0 |SORT | |1001 |362 |
|1 |└─SUBPLAN SCAN |rw |1001 |56 |
|2 | └─RECURSIVE UNION ALL | |1001 |53 |
|0 |SORT | |1001 |364 |
|1 |└─SUBPLAN SCAN |rw |1001 |57 |
|2 | └─RECURSIVE UNION ALL | |1001 |55 |
|3 | ├─HASH JOIN | |79 |16 |
|4 | │ ├─HASH JOIN | |17 |8 |
|5 | │ │ ├─TABLE FULL SCAN |e |5 |3 |
|6 | │ │ └─TABLE FULL SCAN |n1 |17 |3 |
|7 | │ └─TABLE FULL SCAN |n2 |17 |3 |
|8 | └─HASH JOIN | |922 |35 |
|8 | └─HASH JOIN | |922 |37 |
|9 | │ MATERIAL | |22 |13 |
|10| └─│ HASH JOIN | |22 |11 |
|11| │ ├─TABLE FULL SCAN|n |17 |3 |
@ -4756,16 +4756,16 @@ Query Plan
==============================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
--------------------------------------------------------------
|0 |SORT | |1126 |819 |
|1 |└─SUBPLAN SCAN |rw |1126 |470 |
|2 | └─RECURSIVE UNION ALL | |1126 |467 |
|0 |SORT | |1126 |822 |
|1 |└─SUBPLAN SCAN |rw |1126 |474 |
|2 | └─RECURSIVE UNION ALL | |1126 |471 |
|3 | ├─HASH JOIN | |79 |16 |
|4 | │ ├─HASH JOIN | |17 |8 |
|5 | │ │ ├─TABLE FULL SCAN |e |5 |3 |
|6 | │ │ └─TABLE FULL SCAN |n1 |17 |3 |
|7 | │ └─TABLE FULL SCAN |n2 |17 |3 |
|8 | └─NESTED-LOOP SEMI JOIN | |1048 |449 |
|9 | ├─HASH JOIN | |3142 |36 |
|8 | └─NESTED-LOOP SEMI JOIN | |1048 |453 |
|9 | ├─HASH JOIN | |3142 |39 |
|10| │ │ MATERIAL | |16 |14 |
|11| │ └─│ HASH JOIN | |16 |10 |
|12| │ │ ├─TABLE FULL SCAN|n |17 |3 |
@ -4871,17 +4871,17 @@ Query Plan
======================================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
----------------------------------------------------------------------
|0 |SORT | |1126 |907 |
|1 |└─SUBPLAN SCAN |rw |1126 |559 |
|2 | └─RECURSIVE UNION ALL | |1126 |556 |
|0 |SORT | |1126 |911 |
|1 |└─SUBPLAN SCAN |rw |1126 |563 |
|2 | └─RECURSIVE UNION ALL | |1126 |560 |
|3 | ├─HASH JOIN | |79 |16 |
|4 | │ ├─HASH JOIN | |17 |8 |
|5 | │ │ ├─TABLE FULL SCAN |e |5 |3 |
|6 | │ │ └─TABLE FULL SCAN |n1 |17 |3 |
|7 | │ └─TABLE FULL SCAN |n2 |17 |3 |
|8 | └─NESTED-LOOP SEMI JOIN | |1048 |538 |
|9 | ├─NESTED-LOOP JOIN CARTESIAN | |3142 |124 |
|10| │ ├─HASH JOIN | |3142 |36 |
|8 | └─NESTED-LOOP SEMI JOIN | |1048 |542 |
|9 | ├─NESTED-LOOP JOIN CARTESIAN | |3142 |128 |
|10| │ ├─HASH JOIN | |3142 |39 |
|11| │ │ │ MATERIAL | |16 |14 |
|12| │ │ └─│ HASH JOIN | |16 |10 |
|13| │ │ │ ├─TABLE FULL SCAN |n |17 |3 |