[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

@ -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 |