PATCH bugfix to opensource branch
This commit is contained in:
@ -558,23 +558,26 @@ Outputs & filters:
|
||||
|
||||
SQL: select t1.c1 from t1, (select * from t2 where c2>1 order by c1 limit 10) as t where t1.c1=t.c1;
|
||||
|
||||
================================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
----------------------------------------------------------------
|
||||
|0 |PX COORDINATOR | |10 |412 |
|
||||
|1 | EXCHANGE OUT DISTR |:EX10002|10 |411 |
|
||||
|2 | NESTED-LOOP JOIN | |10 |411 |
|
||||
|3 | EXCHANGE IN DISTR | |10 |44 |
|
||||
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10001|10 |44 |
|
||||
|5 | SUBPLAN SCAN |t |10 |44 |
|
||||
|6 | LIMIT | |10 |42 |
|
||||
|7 | EXCHANGE IN MERGE SORT DISTR| |10 |41 |
|
||||
|8 | EXCHANGE OUT DISTR |:EX10000|10 |40 |
|
||||
|9 | PX PARTITION ITERATOR | |10 |40 |
|
||||
|10| TABLE SCAN |t2 |10 |40 |
|
||||
|11| PX PARTITION ITERATOR | |1 |36 |
|
||||
|12| TABLE GET |t1 |1 |36 |
|
||||
================================================================
|
||||
=================================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
-----------------------------------------------------------------
|
||||
|0 |PX COORDINATOR | |10 |425 |
|
||||
|1 | EXCHANGE OUT DISTR |:EX10002|10 |424 |
|
||||
|2 | NESTED-LOOP JOIN | |10 |424 |
|
||||
|3 | EXCHANGE IN DISTR | |10 |57 |
|
||||
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10001|10 |57 |
|
||||
|5 | MATERIAL | |10 |57 |
|
||||
|6 | SUBPLAN SCAN |t |10 |55 |
|
||||
|7 | LIMIT | |10 |54 |
|
||||
|8 | EXCHANGE IN MERGE SORT DISTR| |10 |52 |
|
||||
|9 | EXCHANGE OUT DISTR |:EX10000|10 |51 |
|
||||
|10| LIMIT | |10 |51 |
|
||||
|11| TOP-N SORT | |10 |50 |
|
||||
|12| PX PARTITION ITERATOR | |10 |40 |
|
||||
|13| TABLE SCAN |t2 |10 |40 |
|
||||
|14| PX PARTITION ITERATOR | |1 |36 |
|
||||
|15| TABLE GET |t1 |1 |36 |
|
||||
=================================================================
|
||||
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
@ -584,21 +587,24 @@ Outputs & filters:
|
||||
conds(nil), nl_params_([t.c1]), batch_join=false
|
||||
3 - output([t.c1], [PARTITION_ID]), filter(nil)
|
||||
4 - (#keys=1, [t.c1]), output([t.c1], [PARTITION_ID]), filter(nil), is_single, dop=1
|
||||
5 - output([t.c1]), filter(nil),
|
||||
5 - output([t.c1]), filter(nil)
|
||||
6 - output([t.c1]), filter(nil),
|
||||
access([t.c1])
|
||||
6 - output([t2.c1]), filter(nil), limit(10), offset(nil)
|
||||
7 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), Local Order
|
||||
8 - output([t2.c1]), filter(nil), dop=1
|
||||
9 - output([t2.c1]), filter(nil),
|
||||
7 - output([t2.c1]), filter(nil), limit(10), offset(nil)
|
||||
8 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC])
|
||||
9 - output([t2.c1]), filter(nil), dop=1
|
||||
10 - output([t2.c1]), filter(nil), limit(10), offset(nil)
|
||||
11 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), topn(10), local merge sort
|
||||
12 - output([t2.c1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
10 - output([t2.c1]), filter([t2.c2 > ?]),
|
||||
13 - output([t2.c1]), filter([t2.c2 > ?]),
|
||||
access([t2.c1], [t2.c2]), partitions(p[0-2]),
|
||||
limit(10), offset(nil),
|
||||
is_index_back=false, filter_before_indexback[false],
|
||||
range_key([t2.c1]), range(MIN ; MAX)always true
|
||||
11 - output([t1.c1]), filter(nil),
|
||||
14 - output([t1.c1]), filter(nil),
|
||||
affinitize, force partition granule, asc.
|
||||
12 - output([t1.c1]), filter(nil),
|
||||
15 - output([t1.c1]), filter(nil),
|
||||
access([t1.c1]), partitions(p[0-4]),
|
||||
is_index_back=false,
|
||||
range_key([t1.c1]), range(MIN ; MAX),
|
||||
@ -2555,20 +2561,21 @@ Outputs & filters:
|
||||
|
||||
SQL: select t1.c1 from t1 left join t2 on t1.c1 = t2.c1 where exists (select c1 from t3 limit 1);
|
||||
|
||||
======================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
------------------------------------------------------
|
||||
|0 |SUBPLAN FILTER | |250 |460 |
|
||||
|1 | PX COORDINATOR | |500 |354 |
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000|500 |331 |
|
||||
|3 | PX PARTITION ITERATOR | |500 |331 |
|
||||
|4 | TABLE SCAN |t1 |500 |331 |
|
||||
|5 | LIMIT | |1 |37 |
|
||||
|6 | PX COORDINATOR | |1 |36 |
|
||||
|7 | EXCHANGE OUT DISTR |:EX20000|1 |36 |
|
||||
|8 | PX PARTITION ITERATOR| |1 |36 |
|
||||
|9 | TABLE SCAN |t3 |1 |36 |
|
||||
======================================================
|
||||
=======================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
-------------------------------------------------------
|
||||
|0 |SUBPLAN FILTER | |250 |460 |
|
||||
|1 | PX COORDINATOR | |500 |354 |
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000|500 |331 |
|
||||
|3 | PX PARTITION ITERATOR | |500 |331 |
|
||||
|4 | TABLE SCAN |t1 |500 |331 |
|
||||
|5 | LIMIT | |1 |37 |
|
||||
|6 | PX COORDINATOR | |1 |37 |
|
||||
|7 | EXCHANGE OUT DISTR |:EX20000|1 |37 |
|
||||
|8 | LIMIT | |1 |37 |
|
||||
|9 | PX PARTITION ITERATOR| |1 |36 |
|
||||
|10| TABLE SCAN |t3 |1 |36 |
|
||||
=======================================================
|
||||
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
@ -2585,9 +2592,10 @@ Outputs & filters:
|
||||
5 - output([1]), filter(nil), limit(1), offset(nil)
|
||||
6 - output([1]), filter(nil)
|
||||
7 - output([1]), filter(nil), dop=1
|
||||
8 - output([1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
8 - output([1]), filter(nil), limit(1), offset(nil)
|
||||
9 - output([1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
10 - output([1]), filter(nil),
|
||||
access([t3.c1]), partitions(p[0-1]),
|
||||
limit(1), offset(nil),
|
||||
is_index_back=false,
|
||||
|
||||
@ -162,24 +162,26 @@ Outputs & filters:
|
||||
|
||||
SQL: select c1 from t1 limit 100;
|
||||
|
||||
=====================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
-----------------------------------------------------
|
||||
|0 |LIMIT | |100 |107 |
|
||||
|1 | PX COORDINATOR | |100 |93 |
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000|100 |88 |
|
||||
|3 | PX PARTITION ITERATOR| |100 |88 |
|
||||
|4 | TABLE SCAN |t1 |100 |88 |
|
||||
=====================================================
|
||||
======================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
------------------------------------------------------
|
||||
|0 |LIMIT | |100 |120 |
|
||||
|1 | PX COORDINATOR | |100 |107 |
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000|100 |102 |
|
||||
|3 | LIMIT | |100 |102 |
|
||||
|4 | PX PARTITION ITERATOR| |100 |88 |
|
||||
|5 | TABLE SCAN |t1 |100 |88 |
|
||||
======================================================
|
||||
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1]), filter(nil), limit(100), offset(nil)
|
||||
1 - output([t1.c1]), filter(nil)
|
||||
2 - output([t1.c1]), filter(nil), dop=1
|
||||
3 - output([t1.c1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
3 - output([t1.c1]), filter(nil), limit(100), offset(nil)
|
||||
4 - output([t1.c1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
5 - output([t1.c1]), filter(nil),
|
||||
access([t1.c1]), partitions(p[0-4]),
|
||||
limit(100), offset(nil),
|
||||
is_index_back=false,
|
||||
@ -191,24 +193,26 @@ Outputs & filters:
|
||||
|
||||
SQL: select * from t1 limit 100;
|
||||
|
||||
=====================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
-----------------------------------------------------
|
||||
|0 |LIMIT | |100 |113 |
|
||||
|1 | PX COORDINATOR | |100 |100 |
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000|100 |90 |
|
||||
|3 | PX PARTITION ITERATOR| |100 |90 |
|
||||
|4 | TABLE SCAN |t1 |100 |90 |
|
||||
=====================================================
|
||||
======================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
------------------------------------------------------
|
||||
|0 |LIMIT | |100 |127 |
|
||||
|1 | PX COORDINATOR | |100 |113 |
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000|100 |104 |
|
||||
|3 | LIMIT | |100 |104 |
|
||||
|4 | PX PARTITION ITERATOR| |100 |90 |
|
||||
|5 | TABLE SCAN |t1 |100 |90 |
|
||||
======================================================
|
||||
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c2]), filter(nil), limit(100), offset(nil)
|
||||
1 - output([t1.c1], [t1.c2]), filter(nil)
|
||||
2 - output([t1.c1], [t1.c2]), filter(nil), dop=1
|
||||
3 - output([t1.c1], [t1.c2]), filter(nil),
|
||||
force partition granule, asc.
|
||||
3 - output([t1.c1], [t1.c2]), filter(nil), limit(100), offset(nil)
|
||||
4 - output([t1.c1], [t1.c2]), filter(nil),
|
||||
force partition granule, asc.
|
||||
5 - output([t1.c1], [t1.c2]), filter(nil),
|
||||
access([t1.c1], [t1.c2]), partitions(p[0-4]),
|
||||
limit(100), offset(nil),
|
||||
is_index_back=false,
|
||||
@ -223,12 +227,13 @@ SQL: select * from t1 order by c1,c2 limit 100;
|
||||
========================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
--------------------------------------------------------
|
||||
|0 |LIMIT | |100 |241 |
|
||||
|1 | PX COORDINATOR MERGE SORT | |100 |227 |
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000|100 |217 |
|
||||
|3 | SORT | |100 |217 |
|
||||
|4 | PX PARTITION ITERATOR | |100 |90 |
|
||||
|5 | TABLE SCAN |t1 |100 |90 |
|
||||
|0 |LIMIT | |100 |254 |
|
||||
|1 | PX COORDINATOR MERGE SORT | |100 |241 |
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000|100 |231 |
|
||||
|3 | LIMIT | |100 |231 |
|
||||
|4 | TOP-N SORT | |100 |217 |
|
||||
|5 | PX PARTITION ITERATOR | |100 |90 |
|
||||
|6 | TABLE SCAN |t1 |100 |90 |
|
||||
========================================================
|
||||
|
||||
Outputs & filters:
|
||||
@ -236,10 +241,11 @@ Outputs & filters:
|
||||
0 - output([t1.c1], [t1.c2]), filter(nil), limit(100), offset(nil)
|
||||
1 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC])
|
||||
2 - output([t1.c1], [t1.c2]), filter(nil), dop=1
|
||||
3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
|
||||
4 - output([t1.c1], [t1.c2]), filter(nil),
|
||||
force partition granule, asc.
|
||||
3 - output([t1.c1], [t1.c2]), filter(nil), limit(100), offset(nil)
|
||||
4 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), topn(100), local merge sort
|
||||
5 - output([t1.c1], [t1.c2]), filter(nil),
|
||||
force partition granule, asc.
|
||||
6 - output([t1.c1], [t1.c2]), filter(nil),
|
||||
access([t1.c1], [t1.c2]), partitions(p[0-4]),
|
||||
limit(100), offset(nil),
|
||||
is_index_back=false,
|
||||
@ -254,12 +260,13 @@ SQL: select c1 from t1 order by c1 limit 100;
|
||||
========================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
--------------------------------------------------------
|
||||
|0 |LIMIT | |100 |214 |
|
||||
|1 | PX COORDINATOR MERGE SORT | |100 |200 |
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000|100 |196 |
|
||||
|3 | SORT | |100 |196 |
|
||||
|4 | PX PARTITION ITERATOR | |100 |88 |
|
||||
|5 | TABLE SCAN |t1 |100 |88 |
|
||||
|0 |LIMIT | |100 |228 |
|
||||
|1 | PX COORDINATOR MERGE SORT | |100 |214 |
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000|100 |209 |
|
||||
|3 | LIMIT | |100 |209 |
|
||||
|4 | TOP-N SORT | |100 |196 |
|
||||
|5 | PX PARTITION ITERATOR | |100 |88 |
|
||||
|6 | TABLE SCAN |t1 |100 |88 |
|
||||
========================================================
|
||||
|
||||
Outputs & filters:
|
||||
@ -267,10 +274,11 @@ Outputs & filters:
|
||||
0 - output([t1.c1]), filter(nil), limit(100), offset(nil)
|
||||
1 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC])
|
||||
2 - output([t1.c1]), filter(nil), dop=1
|
||||
3 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
|
||||
4 - output([t1.c1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
3 - output([t1.c1]), filter(nil), limit(100), offset(nil)
|
||||
4 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), topn(100), local merge sort
|
||||
5 - output([t1.c1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
6 - output([t1.c1]), filter(nil),
|
||||
access([t1.c1]), partitions(p[0-4]),
|
||||
limit(100), offset(nil),
|
||||
is_index_back=false,
|
||||
@ -285,12 +293,13 @@ SQL: select c1 from t1 order by c2 limit 100;
|
||||
=============================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
-------------------------------------------------------------
|
||||
|0 |LIMIT | |100 |241 |
|
||||
|1 | PX COORDINATOR MERGE SORT | |100 |227 |
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000 |100 |217 |
|
||||
|3 | SORT | |100 |217 |
|
||||
|4 | PX PARTITION ITERATOR | |100 |90 |
|
||||
|5 | TABLE SCAN |t1(idx_t1_c2)|100 |90 |
|
||||
|0 |LIMIT | |100 |254 |
|
||||
|1 | PX COORDINATOR MERGE SORT | |100 |241 |
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000 |100 |231 |
|
||||
|3 | LIMIT | |100 |231 |
|
||||
|4 | TOP-N SORT | |100 |217 |
|
||||
|5 | PX PARTITION ITERATOR | |100 |90 |
|
||||
|6 | TABLE SCAN |t1(idx_t1_c2)|100 |90 |
|
||||
=============================================================
|
||||
|
||||
Outputs & filters:
|
||||
@ -298,10 +307,11 @@ Outputs & filters:
|
||||
0 - output([t1.c1]), filter(nil), limit(100), offset(nil)
|
||||
1 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
|
||||
2 - output([t1.c1], [t1.c2]), filter(nil), dop=1
|
||||
3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), local merge sort
|
||||
4 - output([t1.c1], [t1.c2]), filter(nil),
|
||||
force partition granule, asc.
|
||||
3 - output([t1.c1], [t1.c2]), filter(nil), limit(100), offset(nil)
|
||||
4 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), topn(100), local merge sort
|
||||
5 - output([t1.c1], [t1.c2]), filter(nil),
|
||||
force partition granule, asc.
|
||||
6 - output([t1.c1], [t1.c2]), filter(nil),
|
||||
access([t1.c1], [t1.c2]), partitions(p[0-4]),
|
||||
limit(100), offset(nil),
|
||||
is_index_back=false,
|
||||
@ -316,12 +326,13 @@ SQL: select c1 from t1 where c1 > 0 order by c2 limit 100;
|
||||
=============================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
-------------------------------------------------------------
|
||||
|0 |LIMIT | |100 |965 |
|
||||
|1 | PX COORDINATOR MERGE SORT | |100 |951 |
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000 |100 |942 |
|
||||
|3 | SORT | |100 |942 |
|
||||
|4 | PX PARTITION ITERATOR | |100 |815 |
|
||||
|5 | TABLE SCAN |t1(idx_t1_c2)|100 |815 |
|
||||
|0 |LIMIT | |100 |979 |
|
||||
|1 | PX COORDINATOR MERGE SORT | |100 |965 |
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000 |100 |956 |
|
||||
|3 | LIMIT | |100 |956 |
|
||||
|4 | TOP-N SORT | |100 |942 |
|
||||
|5 | PX PARTITION ITERATOR | |100 |815 |
|
||||
|6 | TABLE SCAN |t1(idx_t1_c2)|100 |815 |
|
||||
=============================================================
|
||||
|
||||
Outputs & filters:
|
||||
@ -329,10 +340,11 @@ Outputs & filters:
|
||||
0 - output([t1.c1]), filter(nil), limit(100), offset(nil)
|
||||
1 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
|
||||
2 - output([t1.c1], [t1.c2]), filter(nil), dop=1
|
||||
3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), local merge sort
|
||||
4 - output([t1.c1], [t1.c2]), filter(nil),
|
||||
3 - output([t1.c1], [t1.c2]), filter(nil), limit(100), offset(nil)
|
||||
4 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), topn(100), local merge sort
|
||||
5 - output([t1.c1], [t1.c2]), filter(nil),
|
||||
force partition granule, asc.
|
||||
5 - output([t1.c1], [t1.c2]), filter([t1.c1 > ?]),
|
||||
6 - output([t1.c1], [t1.c2]), filter([t1.c1 > ?]),
|
||||
access([t1.c1], [t1.c2]), partitions(p[0-4]),
|
||||
limit(100), offset(nil),
|
||||
is_index_back=false, filter_before_indexback[false],
|
||||
@ -347,12 +359,13 @@ SQL: select c1 from t1 where c1 > 0 and c2 < 0 order by c2 limit 100;
|
||||
=============================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
-------------------------------------------------------------
|
||||
|0 |LIMIT | |100 |965 |
|
||||
|1 | PX COORDINATOR MERGE SORT | |100 |951 |
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000 |100 |942 |
|
||||
|3 | SORT | |100 |942 |
|
||||
|4 | PX PARTITION ITERATOR | |100 |815 |
|
||||
|5 | TABLE SCAN |t1(idx_t1_c2)|100 |815 |
|
||||
|0 |LIMIT | |100 |979 |
|
||||
|1 | PX COORDINATOR MERGE SORT | |100 |965 |
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000 |100 |956 |
|
||||
|3 | LIMIT | |100 |956 |
|
||||
|4 | TOP-N SORT | |100 |942 |
|
||||
|5 | PX PARTITION ITERATOR | |100 |815 |
|
||||
|6 | TABLE SCAN |t1(idx_t1_c2)|100 |815 |
|
||||
=============================================================
|
||||
|
||||
Outputs & filters:
|
||||
@ -360,10 +373,11 @@ Outputs & filters:
|
||||
0 - output([t1.c1]), filter(nil), limit(100), offset(nil)
|
||||
1 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
|
||||
2 - output([t1.c1], [t1.c2]), filter(nil), dop=1
|
||||
3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), local merge sort
|
||||
4 - output([t1.c1], [t1.c2]), filter(nil),
|
||||
3 - output([t1.c1], [t1.c2]), filter(nil), limit(100), offset(nil)
|
||||
4 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), topn(100), local merge sort
|
||||
5 - output([t1.c1], [t1.c2]), filter(nil),
|
||||
force partition granule, asc.
|
||||
5 - output([t1.c1], [t1.c2]), filter([t1.c1 > ?]),
|
||||
6 - output([t1.c1], [t1.c2]), filter([t1.c1 > ?]),
|
||||
access([t1.c1], [t1.c2]), partitions(p[0-4]),
|
||||
limit(100), offset(nil),
|
||||
is_index_back=false, filter_before_indexback[false],
|
||||
@ -474,24 +488,26 @@ Outputs & filters:
|
||||
|
||||
SQL: select c1, c1 + c2 from t1 where c1 > 0 limit 100;
|
||||
|
||||
=====================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
-----------------------------------------------------
|
||||
|0 |LIMIT | |100 |113 |
|
||||
|1 | PX COORDINATOR | |100 |100 |
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000|100 |90 |
|
||||
|3 | PX PARTITION ITERATOR| |100 |90 |
|
||||
|4 | TABLE SCAN |t1 |100 |90 |
|
||||
=====================================================
|
||||
======================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
------------------------------------------------------
|
||||
|0 |LIMIT | |100 |127 |
|
||||
|1 | PX COORDINATOR | |100 |113 |
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000|100 |104 |
|
||||
|3 | LIMIT | |100 |104 |
|
||||
|4 | PX PARTITION ITERATOR| |100 |90 |
|
||||
|5 | TABLE SCAN |t1 |100 |90 |
|
||||
======================================================
|
||||
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c1 + t1.c2]), filter(nil), limit(100), offset(nil)
|
||||
1 - output([t1.c1], [t1.c2]), filter(nil)
|
||||
2 - output([t1.c1], [t1.c2]), filter(nil), dop=1
|
||||
3 - output([t1.c1], [t1.c2]), filter(nil),
|
||||
force partition granule, asc.
|
||||
3 - output([t1.c1], [t1.c2]), filter(nil), limit(100), offset(nil)
|
||||
4 - output([t1.c1], [t1.c2]), filter(nil),
|
||||
force partition granule, asc.
|
||||
5 - output([t1.c1], [t1.c2]), filter(nil),
|
||||
access([t1.c1], [t1.c2]), partitions(p[0-4]),
|
||||
limit(100), offset(nil),
|
||||
is_index_back=false,
|
||||
@ -1258,23 +1274,26 @@ Outputs & filters:
|
||||
|
||||
SQL: select t1.c1 from t1, (select * from t2 where c2>1 order by c1 limit 10) as t where t1.c1=t.c1;
|
||||
|
||||
================================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
----------------------------------------------------------------
|
||||
|0 |PX COORDINATOR | |10 |479 |
|
||||
|1 | EXCHANGE OUT DISTR |:EX10002|10 |478 |
|
||||
|2 | NESTED-LOOP JOIN | |10 |478 |
|
||||
|3 | EXCHANGE IN DISTR | |10 |111 |
|
||||
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10001|10 |111 |
|
||||
|5 | SUBPLAN SCAN |t |10 |111 |
|
||||
|6 | LIMIT | |10 |109 |
|
||||
|7 | EXCHANGE IN MERGE SORT DISTR| |10 |108 |
|
||||
|8 | EXCHANGE OUT DISTR |:EX10000|10 |107 |
|
||||
|9 | PX PARTITION ITERATOR | |10 |107 |
|
||||
|10| TABLE SCAN |t2 |10 |107 |
|
||||
|11| PX PARTITION ITERATOR | |1 |36 |
|
||||
|12| TABLE GET |t1 |1 |36 |
|
||||
================================================================
|
||||
=================================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
-----------------------------------------------------------------
|
||||
|0 |PX COORDINATOR | |10 |492 |
|
||||
|1 | EXCHANGE OUT DISTR |:EX10002|10 |491 |
|
||||
|2 | NESTED-LOOP JOIN | |10 |491 |
|
||||
|3 | EXCHANGE IN DISTR | |10 |124 |
|
||||
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10001|10 |124 |
|
||||
|5 | MATERIAL | |10 |124 |
|
||||
|6 | SUBPLAN SCAN |t |10 |122 |
|
||||
|7 | LIMIT | |10 |121 |
|
||||
|8 | EXCHANGE IN MERGE SORT DISTR| |10 |119 |
|
||||
|9 | EXCHANGE OUT DISTR |:EX10000|10 |118 |
|
||||
|10| LIMIT | |10 |118 |
|
||||
|11| TOP-N SORT | |10 |117 |
|
||||
|12| PX PARTITION ITERATOR | |10 |107 |
|
||||
|13| TABLE SCAN |t2 |10 |107 |
|
||||
|14| PX PARTITION ITERATOR | |1 |36 |
|
||||
|15| TABLE GET |t1 |1 |36 |
|
||||
=================================================================
|
||||
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
@ -1284,21 +1303,24 @@ Outputs & filters:
|
||||
conds(nil), nl_params_([t.c1]), batch_join=false
|
||||
3 - output([t.c1], [PARTITION_ID]), filter(nil)
|
||||
4 - (#keys=1, [t.c1]), output([t.c1], [PARTITION_ID]), filter(nil), is_single, dop=1
|
||||
5 - output([t.c1]), filter(nil),
|
||||
5 - output([t.c1]), filter(nil)
|
||||
6 - output([t.c1]), filter(nil),
|
||||
access([t.c1])
|
||||
6 - output([t2.c1]), filter(nil), limit(10), offset(nil)
|
||||
7 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), Local Order
|
||||
8 - output([t2.c1]), filter(nil), dop=1
|
||||
9 - output([t2.c1]), filter(nil),
|
||||
7 - output([t2.c1]), filter(nil), limit(10), offset(nil)
|
||||
8 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC])
|
||||
9 - output([t2.c1]), filter(nil), dop=1
|
||||
10 - output([t2.c1]), filter(nil), limit(10), offset(nil)
|
||||
11 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), topn(10), local merge sort
|
||||
12 - output([t2.c1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
10 - output([t2.c1]), filter([t2.c2 > ?]),
|
||||
13 - output([t2.c1]), filter([t2.c2 > ?]),
|
||||
access([t2.c1], [t2.c2]), partitions(p[0-2]),
|
||||
limit(10), offset(nil),
|
||||
is_index_back=false, filter_before_indexback[false],
|
||||
range_key([t2.c1]), range(MIN ; MAX)always true
|
||||
11 - output([t1.c1]), filter(nil),
|
||||
14 - output([t1.c1]), filter(nil),
|
||||
affinitize, force partition granule, asc.
|
||||
12 - output([t1.c1]), filter(nil),
|
||||
15 - output([t1.c1]), filter(nil),
|
||||
access([t1.c1]), partitions(p[0-4]),
|
||||
is_index_back=false,
|
||||
range_key([t1.c1]), range(MIN ; MAX),
|
||||
@ -1552,24 +1574,26 @@ Outputs & filters:
|
||||
|
||||
SQL: select c1, c1+c2 from t1 where c1 > 100 limit 1, 10;
|
||||
|
||||
=====================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
-----------------------------------------------------
|
||||
|0 |LIMIT | |10 |41 |
|
||||
|1 | PX COORDINATOR | |11 |39 |
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000|11 |38 |
|
||||
|3 | PX PARTITION ITERATOR| |11 |38 |
|
||||
|4 | TABLE SCAN |t1 |11 |38 |
|
||||
=====================================================
|
||||
======================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
------------------------------------------------------
|
||||
|0 |LIMIT | |10 |42 |
|
||||
|1 | PX COORDINATOR | |10 |41 |
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000|10 |40 |
|
||||
|3 | LIMIT | |10 |40 |
|
||||
|4 | PX PARTITION ITERATOR| |11 |38 |
|
||||
|5 | TABLE SCAN |t1 |11 |38 |
|
||||
======================================================
|
||||
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1], [t1.c1 + t1.c2]), filter(nil), limit(10), offset(?)
|
||||
1 - output([t1.c1], [t1.c2]), filter(nil)
|
||||
2 - output([t1.c1], [t1.c2]), filter(nil), dop=1
|
||||
3 - output([t1.c1], [t1.c2]), filter(nil),
|
||||
force partition granule, asc.
|
||||
3 - output([t1.c1], [t1.c2]), filter(nil), limit(10 + ?), offset(nil)
|
||||
4 - output([t1.c1], [t1.c2]), filter(nil),
|
||||
force partition granule, asc.
|
||||
5 - output([t1.c1], [t1.c2]), filter(nil),
|
||||
access([t1.c1], [t1.c2]), partitions(p[0-4]),
|
||||
limit(10 + ?), offset(nil),
|
||||
is_index_back=false,
|
||||
@ -2269,12 +2293,13 @@ SQL: select c1, repeat('ob', 2) as db_name from t1 order by c2 limit 100;
|
||||
=============================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
-------------------------------------------------------------
|
||||
|0 |LIMIT | |100 |241 |
|
||||
|1 | PX COORDINATOR MERGE SORT | |100 |227 |
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000 |100 |217 |
|
||||
|3 | SORT | |100 |217 |
|
||||
|4 | PX PARTITION ITERATOR | |100 |90 |
|
||||
|5 | TABLE SCAN |t1(idx_t1_c2)|100 |90 |
|
||||
|0 |LIMIT | |100 |254 |
|
||||
|1 | PX COORDINATOR MERGE SORT | |100 |241 |
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000 |100 |231 |
|
||||
|3 | LIMIT | |100 |231 |
|
||||
|4 | TOP-N SORT | |100 |217 |
|
||||
|5 | PX PARTITION ITERATOR | |100 |90 |
|
||||
|6 | TABLE SCAN |t1(idx_t1_c2)|100 |90 |
|
||||
=============================================================
|
||||
|
||||
Outputs & filters:
|
||||
@ -2282,10 +2307,11 @@ Outputs & filters:
|
||||
0 - output([t1.c1], [?]), filter(nil), limit(100), offset(nil)
|
||||
1 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
|
||||
2 - output([t1.c1], [t1.c2]), filter(nil), dop=1
|
||||
3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), local merge sort
|
||||
4 - output([t1.c1], [t1.c2]), filter(nil),
|
||||
force partition granule, asc.
|
||||
3 - output([t1.c1], [t1.c2]), filter(nil), limit(100), offset(nil)
|
||||
4 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), topn(100), local merge sort
|
||||
5 - output([t1.c1], [t1.c2]), filter(nil),
|
||||
force partition granule, asc.
|
||||
6 - output([t1.c1], [t1.c2]), filter(nil),
|
||||
access([t1.c1], [t1.c2]), partitions(p[0-4]),
|
||||
limit(100), offset(nil),
|
||||
is_index_back=false,
|
||||
@ -2381,12 +2407,13 @@ SQL: select c1, 1 + 1 from t1 order by c1 limit 100;
|
||||
========================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
--------------------------------------------------------
|
||||
|0 |LIMIT | |100 |214 |
|
||||
|1 | PX COORDINATOR MERGE SORT | |100 |200 |
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000|100 |196 |
|
||||
|3 | SORT | |100 |196 |
|
||||
|4 | PX PARTITION ITERATOR | |100 |88 |
|
||||
|5 | TABLE SCAN |t1 |100 |88 |
|
||||
|0 |LIMIT | |100 |228 |
|
||||
|1 | PX COORDINATOR MERGE SORT | |100 |214 |
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000|100 |209 |
|
||||
|3 | LIMIT | |100 |209 |
|
||||
|4 | TOP-N SORT | |100 |196 |
|
||||
|5 | PX PARTITION ITERATOR | |100 |88 |
|
||||
|6 | TABLE SCAN |t1 |100 |88 |
|
||||
========================================================
|
||||
|
||||
Outputs & filters:
|
||||
@ -2394,10 +2421,11 @@ Outputs & filters:
|
||||
0 - output([t1.c1], [?]), filter(nil), limit(100), offset(nil)
|
||||
1 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC])
|
||||
2 - output([t1.c1]), filter(nil), dop=1
|
||||
3 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
|
||||
4 - output([t1.c1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
3 - output([t1.c1]), filter(nil), limit(100), offset(nil)
|
||||
4 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), topn(100), local merge sort
|
||||
5 - output([t1.c1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
6 - output([t1.c1]), filter(nil),
|
||||
access([t1.c1]), partitions(p[0-4]),
|
||||
limit(100), offset(nil),
|
||||
is_index_back=false,
|
||||
@ -2644,37 +2672,38 @@ SQL: (select /*+no_use_px*/ c1 from t1) union (select c2 from t1) union (select
|
||||
=========================================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST |
|
||||
-------------------------------------------------------------------------
|
||||
|0 |LIMIT | |100 |914254|
|
||||
|1 | MERGE UNION DISTINCT | |100 |914241|
|
||||
|2 | LIMIT | |100 |531348|
|
||||
|3 | MERGE UNION DISTINCT | |100 |531335|
|
||||
|4 | LIMIT | |100 |214 |
|
||||
|5 | PX COORDINATOR MERGE SORT | |100 |200 |
|
||||
|6 | EXCHANGE OUT DISTR |:EX10000 |100 |196 |
|
||||
|7 | SORT | |100 |196 |
|
||||
|8 | PX PARTITION ITERATOR | |100 |88 |
|
||||
|9 | TABLE SCAN |t1 |100 |88 |
|
||||
|10| LIMIT | |100 |531055|
|
||||
|11| PX COORDINATOR MERGE SORT | |100 |531041|
|
||||
|12| EXCHANGE OUT DISTR |:EX20001 |100 |531032|
|
||||
|13| LIMIT | |100 |531032|
|
||||
|14| MERGE DISTINCT | |100 |531018|
|
||||
|15| EXCHANGE IN MERGE SORT DISTR| |100 |420145|
|
||||
|16| EXCHANGE OUT DISTR (HASH) |:EX20000 |100 |420135|
|
||||
|17| PX PARTITION ITERATOR | |100 |420135|
|
||||
|18| MERGE DISTINCT | |100 |420135|
|
||||
|19| TABLE SCAN |t1(idx_t1_c2)|500000 |309262|
|
||||
|20| LIMIT | |100 |382827|
|
||||
|21| PX COORDINATOR MERGE SORT | |100 |382813|
|
||||
|22| EXCHANGE OUT DISTR |:EX30001 |100 |382804|
|
||||
|23| LIMIT | |100 |382804|
|
||||
|24| TOP-N SORT | |100 |382790|
|
||||
|25| HASH DISTINCT | |101 |382684|
|
||||
|26| EXCHANGE IN DISTR | |101 |284136|
|
||||
|27| EXCHANGE OUT DISTR (HASH) |:EX30000 |101 |284127|
|
||||
|28| HASH DISTINCT | |101 |284127|
|
||||
|29| PX PARTITION ITERATOR | |300000 |185579|
|
||||
|30| TABLE SCAN |t2 |300000 |185579|
|
||||
|0 |LIMIT | |100 |914268|
|
||||
|1 | MERGE UNION DISTINCT | |100 |914254|
|
||||
|2 | LIMIT | |100 |531362|
|
||||
|3 | MERGE UNION DISTINCT | |100 |531348|
|
||||
|4 | LIMIT | |100 |228 |
|
||||
|5 | PX COORDINATOR MERGE SORT | |100 |214 |
|
||||
|6 | EXCHANGE OUT DISTR |:EX10000 |100 |209 |
|
||||
|7 | LIMIT | |100 |209 |
|
||||
|8 | TOP-N SORT | |100 |196 |
|
||||
|9 | PX PARTITION ITERATOR | |100 |88 |
|
||||
|10| TABLE SCAN |t1 |100 |88 |
|
||||
|11| LIMIT | |100 |531055|
|
||||
|12| PX COORDINATOR MERGE SORT | |100 |531041|
|
||||
|13| EXCHANGE OUT DISTR |:EX20001 |100 |531032|
|
||||
|14| LIMIT | |100 |531032|
|
||||
|15| MERGE DISTINCT | |100 |531018|
|
||||
|16| EXCHANGE IN MERGE SORT DISTR| |100 |420145|
|
||||
|17| EXCHANGE OUT DISTR (HASH) |:EX20000 |100 |420135|
|
||||
|18| PX PARTITION ITERATOR | |100 |420135|
|
||||
|19| MERGE DISTINCT | |100 |420135|
|
||||
|20| TABLE SCAN |t1(idx_t1_c2)|500000 |309262|
|
||||
|21| LIMIT | |100 |382827|
|
||||
|22| PX COORDINATOR MERGE SORT | |100 |382813|
|
||||
|23| EXCHANGE OUT DISTR |:EX30001 |100 |382804|
|
||||
|24| LIMIT | |100 |382804|
|
||||
|25| TOP-N SORT | |100 |382790|
|
||||
|26| HASH DISTINCT | |101 |382684|
|
||||
|27| EXCHANGE IN DISTR | |101 |284136|
|
||||
|28| EXCHANGE OUT DISTR (HASH) |:EX30000 |101 |284127|
|
||||
|29| HASH DISTINCT | |101 |284127|
|
||||
|30| PX PARTITION ITERATOR | |300000 |185579|
|
||||
|31| TABLE SCAN |t2 |300000 |185579|
|
||||
=========================================================================
|
||||
|
||||
Outputs & filters:
|
||||
@ -2686,44 +2715,45 @@ Outputs & filters:
|
||||
4 - output([t1.c1]), filter(nil), limit(100), offset(nil)
|
||||
5 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC])
|
||||
6 - output([t1.c1]), filter(nil), dop=1
|
||||
7 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
|
||||
8 - output([t1.c1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
7 - output([t1.c1]), filter(nil), limit(100), offset(nil)
|
||||
8 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), topn(100), local merge sort
|
||||
9 - output([t1.c1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
10 - output([t1.c1]), filter(nil),
|
||||
access([t1.c1]), partitions(p[0-4]),
|
||||
limit(100), offset(nil),
|
||||
is_index_back=false,
|
||||
range_key([t1.c1]), range(MIN ; MAX)always true
|
||||
10 - output([t1.c2]), filter(nil), limit(100), offset(nil)
|
||||
11 - output([t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
|
||||
12 - output([t1.c2]), filter(nil), dop=1
|
||||
13 - output([t1.c2]), filter(nil), limit(100), offset(nil)
|
||||
14 - output([t1.c2]), filter(nil),
|
||||
11 - output([t1.c2]), filter(nil), limit(100), offset(nil)
|
||||
12 - output([t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
|
||||
13 - output([t1.c2]), filter(nil), dop=1
|
||||
14 - output([t1.c2]), filter(nil), limit(100), offset(nil)
|
||||
15 - output([t1.c2]), filter(nil),
|
||||
distinct([t1.c2])
|
||||
15 - output([t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
|
||||
16 - (#keys=1, [t1.c2]), output([t1.c2]), filter(nil), dop=1
|
||||
17 - output([t1.c2]), filter(nil),
|
||||
force partition granule, asc.
|
||||
16 - output([t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
|
||||
17 - (#keys=1, [t1.c2]), output([t1.c2]), filter(nil), dop=1
|
||||
18 - output([t1.c2]), filter(nil),
|
||||
distinct([t1.c2])
|
||||
force partition granule, asc.
|
||||
19 - output([t1.c2]), filter(nil),
|
||||
distinct([t1.c2])
|
||||
20 - output([t1.c2]), filter(nil),
|
||||
access([t1.c2]), partitions(p[0-4]),
|
||||
is_index_back=false,
|
||||
range_key([t1.c2], [t1.c1]), range(MIN,MIN ; MAX,MAX)always true
|
||||
20 - output([t2.c2]), filter(nil), limit(100), offset(nil)
|
||||
21 - output([t2.c2]), filter(nil), sort_keys([t2.c2, ASC])
|
||||
22 - output([t2.c2]), filter(nil), dop=1
|
||||
23 - output([t2.c2]), filter(nil), limit(100), offset(nil)
|
||||
24 - output([t2.c2]), filter(nil), sort_keys([t2.c2, ASC]), topn(100)
|
||||
25 - output([t2.c2]), filter(nil),
|
||||
distinct([t2.c2])
|
||||
26 - output([t2.c2]), filter(nil)
|
||||
27 - (#keys=1, [t2.c2]), output([t2.c2]), filter(nil), dop=1
|
||||
28 - output([t2.c2]), filter(nil),
|
||||
21 - output([t2.c2]), filter(nil), limit(100), offset(nil)
|
||||
22 - output([t2.c2]), filter(nil), sort_keys([t2.c2, ASC])
|
||||
23 - output([t2.c2]), filter(nil), dop=1
|
||||
24 - output([t2.c2]), filter(nil), limit(100), offset(nil)
|
||||
25 - output([t2.c2]), filter(nil), sort_keys([t2.c2, ASC]), topn(100)
|
||||
26 - output([t2.c2]), filter(nil),
|
||||
distinct([t2.c2])
|
||||
27 - output([t2.c2]), filter(nil)
|
||||
28 - (#keys=1, [t2.c2]), output([t2.c2]), filter(nil), dop=1
|
||||
29 - output([t2.c2]), filter(nil),
|
||||
force partition granule, asc.
|
||||
distinct([t2.c2])
|
||||
30 - output([t2.c2]), filter(nil),
|
||||
force partition granule, asc.
|
||||
31 - output([t2.c2]), filter(nil),
|
||||
access([t2.c2]), partitions(p[0-2]),
|
||||
is_index_back=false,
|
||||
range_key([t2.c1]), range(MIN ; MAX)always true
|
||||
@ -3130,24 +3160,26 @@ Outputs & filters:
|
||||
|
||||
SQL: select distinct 1, 2 from t1;
|
||||
|
||||
=====================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
-----------------------------------------------------
|
||||
|0 |LIMIT | |1 |37 |
|
||||
|1 | PX COORDINATOR | |1 |36 |
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000|1 |36 |
|
||||
|3 | PX PARTITION ITERATOR| |1 |36 |
|
||||
|4 | TABLE SCAN |t1 |1 |36 |
|
||||
=====================================================
|
||||
======================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
------------------------------------------------------
|
||||
|0 |LIMIT | |1 |37 |
|
||||
|1 | PX COORDINATOR | |1 |37 |
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000|1 |37 |
|
||||
|3 | LIMIT | |1 |37 |
|
||||
|4 | PX PARTITION ITERATOR| |1 |36 |
|
||||
|5 | TABLE SCAN |t1 |1 |36 |
|
||||
======================================================
|
||||
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([?], [?]), filter(nil), limit(1), offset(nil)
|
||||
1 - output([1]), filter(nil)
|
||||
2 - output([1]), filter(nil), dop=1
|
||||
3 - output([1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
3 - output([1]), filter(nil), limit(1), offset(nil)
|
||||
4 - output([1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
5 - output([1]), filter(nil),
|
||||
access([t1.c1]), partitions(p[0-4]),
|
||||
limit(1), offset(nil),
|
||||
is_index_back=false,
|
||||
@ -4845,24 +4877,26 @@ Outputs & filters:
|
||||
|
||||
SQL: select @@sql_mode, c1 from t1 limit 1;
|
||||
|
||||
=====================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
-----------------------------------------------------
|
||||
|0 |LIMIT | |1 |37 |
|
||||
|1 | PX COORDINATOR | |1 |36 |
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000|1 |36 |
|
||||
|3 | PX PARTITION ITERATOR| |1 |36 |
|
||||
|4 | TABLE SCAN |t1 |1 |36 |
|
||||
=====================================================
|
||||
======================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
------------------------------------------------------
|
||||
|0 |LIMIT | |1 |37 |
|
||||
|1 | PX COORDINATOR | |1 |37 |
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000|1 |37 |
|
||||
|3 | LIMIT | |1 |37 |
|
||||
|4 | PX PARTITION ITERATOR| |1 |36 |
|
||||
|5 | TABLE SCAN |t1 |1 |36 |
|
||||
======================================================
|
||||
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([?], [t1.c1]), filter(nil), limit(1), offset(nil)
|
||||
1 - output([t1.c1]), filter(nil)
|
||||
2 - output([t1.c1]), filter(nil), dop=1
|
||||
3 - output([t1.c1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
3 - output([t1.c1]), filter(nil), limit(1), offset(nil)
|
||||
4 - output([t1.c1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
5 - output([t1.c1]), filter(nil),
|
||||
access([t1.c1]), partitions(p[0-4]),
|
||||
limit(1), offset(nil),
|
||||
is_index_back=false,
|
||||
@ -5705,20 +5739,21 @@ Outputs & filters:
|
||||
|
||||
SQL: select * from t1 where exists (select * from t2 limit 0);
|
||||
|
||||
========================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST |
|
||||
--------------------------------------------------------
|
||||
|0 |SUBPLAN FILTER | |250000 |425603|
|
||||
|1 | PX COORDINATOR | |500000 |356592|
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000|500000 |309262|
|
||||
|3 | PX PARTITION ITERATOR | |500000 |309262|
|
||||
|4 | TABLE SCAN |t1 |500000 |309262|
|
||||
|5 | LIMIT | |0 |0 |
|
||||
|6 | PX COORDINATOR | |0 |0 |
|
||||
|7 | EXCHANGE OUT DISTR |:EX20000|0 |0 |
|
||||
|8 | PX PARTITION ITERATOR| |0 |0 |
|
||||
|9 | TABLE SCAN |t2 |0 |0 |
|
||||
========================================================
|
||||
=========================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST |
|
||||
---------------------------------------------------------
|
||||
|0 |SUBPLAN FILTER | |250000 |425603|
|
||||
|1 | PX COORDINATOR | |500000 |356592|
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000|500000 |309262|
|
||||
|3 | PX PARTITION ITERATOR | |500000 |309262|
|
||||
|4 | TABLE SCAN |t1 |500000 |309262|
|
||||
|5 | LIMIT | |0 |0 |
|
||||
|6 | PX COORDINATOR | |0 |0 |
|
||||
|7 | EXCHANGE OUT DISTR |:EX20000|0 |0 |
|
||||
|8 | LIMIT | |0 |0 |
|
||||
|9 | PX PARTITION ITERATOR| |0 |0 |
|
||||
|10| TABLE SCAN |t2 |0 |0 |
|
||||
=========================================================
|
||||
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
@ -5735,9 +5770,10 @@ Outputs & filters:
|
||||
5 - output([1]), filter(nil), limit(0), offset(nil)
|
||||
6 - output([1]), filter(nil)
|
||||
7 - output([1]), filter(nil), dop=1
|
||||
8 - output([1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
8 - output([1]), filter(nil), limit(0), offset(nil)
|
||||
9 - output([1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
10 - output([1]), filter(nil),
|
||||
access([t2.c1]), partitions(p[0-2]),
|
||||
limit(0), offset(nil),
|
||||
is_index_back=false,
|
||||
@ -6329,24 +6365,26 @@ Outputs & filters:
|
||||
|
||||
SQL: select c1 from (select c1, c2 from t1 limit 1) t;
|
||||
|
||||
=====================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
-----------------------------------------------------
|
||||
|0 |LIMIT | |1 |37 |
|
||||
|1 | PX COORDINATOR | |1 |36 |
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000|1 |36 |
|
||||
|3 | PX PARTITION ITERATOR| |1 |36 |
|
||||
|4 | TABLE SCAN |t1 |1 |36 |
|
||||
=====================================================
|
||||
======================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
------------------------------------------------------
|
||||
|0 |LIMIT | |1 |37 |
|
||||
|1 | PX COORDINATOR | |1 |37 |
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000|1 |37 |
|
||||
|3 | LIMIT | |1 |37 |
|
||||
|4 | PX PARTITION ITERATOR| |1 |36 |
|
||||
|5 | TABLE SCAN |t1 |1 |36 |
|
||||
======================================================
|
||||
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
0 - output([t1.c1]), filter(nil), limit(1), offset(nil)
|
||||
1 - output([t1.c1]), filter(nil)
|
||||
2 - output([t1.c1]), filter(nil), dop=1
|
||||
3 - output([t1.c1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
3 - output([t1.c1]), filter(nil), limit(1), offset(nil)
|
||||
4 - output([t1.c1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
5 - output([t1.c1]), filter(nil),
|
||||
access([t1.c1]), partitions(p[0-4]),
|
||||
limit(1), offset(nil),
|
||||
is_index_back=false,
|
||||
@ -7980,18 +8018,19 @@ SQL: SELECT (select max(t1.c1) from t1) as field from t1 group by field;
|
||||
|0 |HASH GROUP BY | |1 |809753|
|
||||
|1 | NESTED-LOOP JOIN CARTESIAN | |500000 |645625|
|
||||
|2 | SUBPLAN SCAN |VIEW4 |1 |38 |
|
||||
|3 | SCALAR GROUP BY | |1 |37 |
|
||||
|3 | SCALAR GROUP BY | |1 |38 |
|
||||
|4 | SUBPLAN SCAN |VIEW5 |1 |37 |
|
||||
|5 | LIMIT | |1 |37 |
|
||||
|6 | PX COORDINATOR MERGE SORT | |1 |37 |
|
||||
|7 | EXCHANGE OUT DISTR |:EX10000 |1 |37 |
|
||||
|8 | SORT | |1 |37 |
|
||||
|9 | PX PARTITION ITERATOR | |1 |36 |
|
||||
|10| TABLE SCAN |t1(Reverse)|1 |36 |
|
||||
|11| PX COORDINATOR | |500000 |321898|
|
||||
|12| EXCHANGE OUT DISTR |:EX20000 |500000 |298233|
|
||||
|13| PX PARTITION ITERATOR | |500000 |298233|
|
||||
|14| TABLE SCAN |t1 |500000 |298233|
|
||||
|8 | LIMIT | |1 |37 |
|
||||
|9 | TOP-N SORT | |1 |37 |
|
||||
|10| PX PARTITION ITERATOR | |1 |36 |
|
||||
|11| TABLE SCAN |t1(Reverse)|1 |36 |
|
||||
|12| PX COORDINATOR | |500000 |321898|
|
||||
|13| EXCHANGE OUT DISTR |:EX20000 |500000 |298233|
|
||||
|14| PX PARTITION ITERATOR | |500000 |298233|
|
||||
|15| TABLE SCAN |t1 |500000 |298233|
|
||||
==================================================================
|
||||
|
||||
Outputs & filters:
|
||||
@ -8009,19 +8048,20 @@ Outputs & filters:
|
||||
5 - output([t1.c1]), filter(nil), limit(1), offset(nil)
|
||||
6 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC])
|
||||
7 - output([t1.c1]), filter(nil), dop=1
|
||||
8 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC]), local merge sort
|
||||
9 - output([t1.c1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
8 - output([t1.c1]), filter(nil), limit(1), offset(nil)
|
||||
9 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC]), topn(1), local merge sort
|
||||
10 - output([t1.c1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
11 - output([t1.c1]), filter(nil),
|
||||
access([t1.c1]), partitions(p[0-4]),
|
||||
limit(1), offset(nil),
|
||||
is_index_back=false,
|
||||
range_key([t1.c1]), range(MIN ; MAX)always true
|
||||
11 - output([1]), filter(nil)
|
||||
12 - output([1]), filter(nil), dop=1
|
||||
13 - output([1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
12 - output([1]), filter(nil)
|
||||
13 - output([1]), filter(nil), dop=1
|
||||
14 - output([1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
15 - output([1]), filter(nil),
|
||||
access([t1.c1]), partitions(p[0-4]),
|
||||
is_index_back=false,
|
||||
range_key([t1.c1]), range(MIN ; MAX)always true
|
||||
@ -8827,20 +8867,21 @@ Outputs & filters:
|
||||
|
||||
SQL: select c1 from t1 where (1, 2) in (select distinct t1.c1, t1.c2 from t2 where t1.c1);
|
||||
|
||||
=======================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
-------------------------------------------------------
|
||||
|0 |NESTED-LOOP JOIN CARTESIAN| |1 |53 |
|
||||
|1 | PX COORDINATOR | |1 |53 |
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000|1 |53 |
|
||||
|3 | TABLE GET |t1 |1 |53 |
|
||||
|4 | SUBPLAN SCAN |VIEW2 |1 |37 |
|
||||
|5 | LIMIT | |1 |37 |
|
||||
|6 | PX COORDINATOR | |1 |36 |
|
||||
|7 | EXCHANGE OUT DISTR |:EX20000|1 |36 |
|
||||
|8 | PX PARTITION ITERATOR| |1 |36 |
|
||||
|9 | TABLE SCAN |t2 |1 |36 |
|
||||
=======================================================
|
||||
========================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
--------------------------------------------------------
|
||||
|0 |NESTED-LOOP JOIN CARTESIAN | |1 |53 |
|
||||
|1 | PX COORDINATOR | |1 |53 |
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000|1 |53 |
|
||||
|3 | TABLE GET |t1 |1 |53 |
|
||||
|4 | SUBPLAN SCAN |VIEW2 |1 |37 |
|
||||
|5 | LIMIT | |1 |37 |
|
||||
|6 | PX COORDINATOR | |1 |37 |
|
||||
|7 | EXCHANGE OUT DISTR |:EX20000|1 |37 |
|
||||
|8 | LIMIT | |1 |37 |
|
||||
|9 | PX PARTITION ITERATOR| |1 |36 |
|
||||
|10| TABLE SCAN |t2 |1 |36 |
|
||||
========================================================
|
||||
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
@ -8858,9 +8899,10 @@ Outputs & filters:
|
||||
5 - output([1]), filter(nil), limit(1), offset(nil)
|
||||
6 - output([1]), filter(nil)
|
||||
7 - output([1]), filter(nil), dop=1
|
||||
8 - output([1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
8 - output([1]), filter(nil), limit(1), offset(nil)
|
||||
9 - output([1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
10 - output([1]), filter(nil),
|
||||
access([t2.c1]), partitions(p[0-2]),
|
||||
limit(1), offset(nil),
|
||||
is_index_back=false,
|
||||
@ -8872,22 +8914,23 @@ Outputs & filters:
|
||||
|
||||
SQL: select c2 from t1 where exists (select * from t2 where t1.c1 and t1.c2 limit 1);
|
||||
|
||||
==========================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST |
|
||||
----------------------------------------------------------
|
||||
|0 |NESTED-LOOP JOIN CARTESIAN | |490050 |786189|
|
||||
|1 | PX COORDINATOR | |490050 |439375|
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000|490050 |392987|
|
||||
|3 | PX PARTITION ITERATOR | |490050 |392987|
|
||||
|4 | TABLE SCAN |t1 |490050 |392987|
|
||||
|5 | MATERIAL | |1 |37 |
|
||||
|6 | SUBPLAN SCAN |VIEW2 |1 |37 |
|
||||
|7 | LIMIT | |1 |37 |
|
||||
|8 | PX COORDINATOR | |1 |36 |
|
||||
|9 | EXCHANGE OUT DISTR |:EX20000|1 |36 |
|
||||
|10| PX PARTITION ITERATOR| |1 |36 |
|
||||
|11| TABLE SCAN |t2 |1 |36 |
|
||||
==========================================================
|
||||
===========================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST |
|
||||
-----------------------------------------------------------
|
||||
|0 |NESTED-LOOP JOIN CARTESIAN | |490050 |786189|
|
||||
|1 | PX COORDINATOR | |490050 |439375|
|
||||
|2 | EXCHANGE OUT DISTR |:EX10000|490050 |392987|
|
||||
|3 | PX PARTITION ITERATOR | |490050 |392987|
|
||||
|4 | TABLE SCAN |t1 |490050 |392987|
|
||||
|5 | MATERIAL | |1 |37 |
|
||||
|6 | SUBPLAN SCAN |VIEW2 |1 |37 |
|
||||
|7 | LIMIT | |1 |37 |
|
||||
|8 | PX COORDINATOR | |1 |37 |
|
||||
|9 | EXCHANGE OUT DISTR |:EX20000|1 |37 |
|
||||
|10| LIMIT | |1 |37 |
|
||||
|11| PX PARTITION ITERATOR| |1 |36 |
|
||||
|12| TABLE SCAN |t2 |1 |36 |
|
||||
===========================================================
|
||||
|
||||
Outputs & filters:
|
||||
-------------------------------------
|
||||
@ -8907,9 +8950,10 @@ Outputs & filters:
|
||||
7 - output([1]), filter(nil), limit(1), offset(nil)
|
||||
8 - output([1]), filter(nil)
|
||||
9 - output([1]), filter(nil), dop=1
|
||||
10 - output([1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
10 - output([1]), filter(nil), limit(1), offset(nil)
|
||||
11 - output([1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
12 - output([1]), filter(nil),
|
||||
access([t2.c1]), partitions(p[0-2]),
|
||||
limit(1), offset(nil),
|
||||
is_index_back=false,
|
||||
@ -9313,15 +9357,15 @@ SQL: select * from t1, t2 where t1.c1 > any(select t3.c2 from t2,t3 where t2.c1
|
||||
|8 | EXCHANGE OUT DISTR |:EX20000 |500000 |309262 |
|
||||
|9 | PX PARTITION ITERATOR | |500000 |309262 |
|
||||
|10| TABLE SCAN |t1 |500000 |309262 |
|
||||
|11| MATERIAL | |20000000000|28633829101 |
|
||||
|12| SUBPLAN SCAN |VIEW2 |20000000000|24958754009 |
|
||||
|13| NESTED-LOOP JOIN CARTESIAN | |20000000000|22198315287 |
|
||||
|11| MATERIAL | |20000000000|28633870508 |
|
||||
|12| SUBPLAN SCAN |VIEW2 |20000000000|24958795416 |
|
||||
|13| NESTED-LOOP JOIN CARTESIAN | |20000000000|22198356694 |
|
||||
|14| PX COORDINATOR | |200000 |142652 |
|
||||
|15| EXCHANGE OUT DISTR |:EX30000 |200000 |123720 |
|
||||
|16| PX PARTITION ITERATOR | |200000 |123720 |
|
||||
|17| TABLE SCAN |t3 |200000 |123720 |
|
||||
|18| MATERIAL | |100000 |8045386168 |
|
||||
|19| NESTED-LOOP SEMI JOIN | |100000 |8045367793 |
|
||||
|18| MATERIAL | |100000 |8045427575 |
|
||||
|19| NESTED-LOOP SEMI JOIN | |100000 |8045409199 |
|
||||
|20| PX COORDINATOR | |300000 |193161 |
|
||||
|21| EXCHANGE OUT DISTR |:EX40000 |300000 |178962 |
|
||||
|22| PX PARTITION ITERATOR | |300000 |178962 |
|
||||
@ -9336,10 +9380,11 @@ SQL: select * from t1, t2 where t1.c1 > any(select t3.c2 from t2,t3 where t2.c1
|
||||
|31| MATERIAL | |33334 |26745 |
|
||||
|32| TABLE SCAN |t4 |33334 |20620 |
|
||||
|33| LIMIT | |1 |37 |
|
||||
|34| PX COORDINATOR | |1 |36 |
|
||||
|35| EXCHANGE OUT DISTR |:EX60000 |1 |36 |
|
||||
|36| PX PARTITION ITERATOR | |1 |36 |
|
||||
|37| TABLE SCAN |t2 |1 |36 |
|
||||
|34| PX COORDINATOR | |1 |37 |
|
||||
|35| EXCHANGE OUT DISTR |:EX60000 |1 |37 |
|
||||
|36| LIMIT | |1 |37 |
|
||||
|37| PX PARTITION ITERATOR | |1 |36 |
|
||||
|38| TABLE SCAN |t2 |1 |36 |
|
||||
====================================================================================
|
||||
|
||||
Outputs & filters:
|
||||
@ -9412,9 +9457,10 @@ Outputs & filters:
|
||||
33 - output([1]), filter(nil), limit(1), offset(nil)
|
||||
34 - output([1]), filter(nil)
|
||||
35 - output([1]), filter(nil), dop=1
|
||||
36 - output([1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
36 - output([1]), filter(nil), limit(1), offset(nil)
|
||||
37 - output([1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
38 - output([1]), filter(nil),
|
||||
access([t2.c1]), partitions(p[0-2]),
|
||||
limit(1), offset(nil),
|
||||
is_index_back=false,
|
||||
|
||||
@ -206,15 +206,16 @@ SQL: select * from t4 where c1 in (select max(c1) from t1);
|
||||
---------------------------------------------------------------
|
||||
|0 |NESTED-LOOP JOIN | |1 |74 |
|
||||
|1 | SUBPLAN SCAN |VIEW1 |1 |38 |
|
||||
|2 | SCALAR GROUP BY | |1 |37 |
|
||||
|2 | SCALAR GROUP BY | |1 |38 |
|
||||
|3 | SUBPLAN SCAN |VIEW2 |1 |37 |
|
||||
|4 | LIMIT | |1 |37 |
|
||||
|5 | PX COORDINATOR MERGE SORT | |1 |37 |
|
||||
|6 | EXCHANGE OUT DISTR |:EX10000 |1 |37 |
|
||||
|7 | SORT | |1 |37 |
|
||||
|8 | PX PARTITION ITERATOR | |1 |36 |
|
||||
|9 | TABLE SCAN |t1(Reverse)|1 |36 |
|
||||
|10| TABLE SCAN |t4 |1 |36 |
|
||||
|7 | LIMIT | |1 |37 |
|
||||
|8 | TOP-N SORT | |1 |37 |
|
||||
|9 | PX PARTITION ITERATOR | |1 |36 |
|
||||
|10| TABLE SCAN |t1(Reverse)|1 |36 |
|
||||
|11| TABLE SCAN |t4 |1 |36 |
|
||||
===============================================================
|
||||
|
||||
Outputs & filters:
|
||||
@ -230,12 +231,13 @@ Outputs & filters:
|
||||
4 - output([t1.c1]), filter(nil), limit(1), offset(nil)
|
||||
5 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC])
|
||||
6 - output([t1.c1]), filter(nil), dop=1
|
||||
7 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC]), local merge sort
|
||||
8 - output([t1.c1]), filter(nil)
|
||||
9 - output([t1.c1]), filter(nil),
|
||||
7 - output([t1.c1]), filter(nil), limit(1), offset(nil)
|
||||
8 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC]), topn(1), local merge sort
|
||||
9 - output([t1.c1]), filter(nil)
|
||||
10 - output([t1.c1]), filter(nil),
|
||||
access([t1.c1]), partitions(p[0-4]),
|
||||
limit(1), offset(nil)
|
||||
10 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
|
||||
11 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
|
||||
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0)
|
||||
|
||||
Outline Data:
|
||||
@ -971,25 +973,27 @@ SQL: select * from t8, (select count(*) from t1 where t1.c1 > any (select t2.c1
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
----------------------------------------------------------------------
|
||||
|0 |NESTED-LOOP JOIN CARTESIAN | |100 |498 |
|
||||
|1 | SUBPLAN SCAN |tt |1 |343 |
|
||||
|1 | SUBPLAN SCAN |tt |1 |344 |
|
||||
|2 | SCALAR GROUP BY | |1 |343 |
|
||||
|3 | PX COORDINATOR | |1 |311 |
|
||||
|4 | EXCHANGE OUT DISTR |:EX10002|1 |311 |
|
||||
|5 | MERGE GROUP BY | |1 |311 |
|
||||
|6 | NESTED-LOOP JOIN | |167 |279 |
|
||||
|7 | EXCHANGE IN DISTR | |1 |37 |
|
||||
|8 | EXCHANGE OUT DISTR (BC2HOST) |:EX10001|1 |37 |
|
||||
|9 | SUBPLAN SCAN |VIEW1 |1 |37 |
|
||||
|10| SCALAR GROUP BY | |1 |37 |
|
||||
|3 | PX COORDINATOR | |1 |312 |
|
||||
|4 | EXCHANGE OUT DISTR |:EX10002|1 |312 |
|
||||
|5 | MERGE GROUP BY | |1 |312 |
|
||||
|6 | NESTED-LOOP JOIN | |167 |280 |
|
||||
|7 | EXCHANGE IN DISTR | |1 |38 |
|
||||
|8 | EXCHANGE OUT DISTR (BC2HOST) |:EX10001|1 |38 |
|
||||
|9 | SUBPLAN SCAN |VIEW1 |1 |38 |
|
||||
|10| SCALAR GROUP BY | |1 |38 |
|
||||
|11| SUBPLAN SCAN |VIEW2 |1 |37 |
|
||||
|12| LIMIT | |1 |37 |
|
||||
|13| EXCHANGE IN MERGE SORT DISTR| |1 |36 |
|
||||
|14| EXCHANGE OUT DISTR |:EX10000|1 |36 |
|
||||
|15| PX PARTITION ITERATOR | |1 |36 |
|
||||
|16| TABLE SCAN |t2 |1 |36 |
|
||||
|17| PX PARTITION ITERATOR | |167 |134 |
|
||||
|18| TABLE SCAN |t1 |167 |134 |
|
||||
|19| TABLE SCAN |t8 |100 |90 |
|
||||
|13| EXCHANGE IN MERGE SORT DISTR| |1 |37 |
|
||||
|14| EXCHANGE OUT DISTR |:EX10000|1 |37 |
|
||||
|15| LIMIT | |1 |37 |
|
||||
|16| TOP-N SORT | |1 |37 |
|
||||
|17| PX PARTITION ITERATOR | |1 |36 |
|
||||
|18| TABLE SCAN |t2 |1 |36 |
|
||||
|19| PX PARTITION ITERATOR | |167 |134 |
|
||||
|20| TABLE SCAN |t1 |167 |134 |
|
||||
|21| TABLE SCAN |t8 |100 |90 |
|
||||
======================================================================
|
||||
|
||||
Outputs & filters:
|
||||
@ -1015,16 +1019,18 @@ Outputs & filters:
|
||||
11 - output([VIEW2.c1]), filter(nil),
|
||||
access([VIEW2.c1])
|
||||
12 - output([t2.c1]), filter(nil), limit(1), offset(nil)
|
||||
13 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), Local Order
|
||||
13 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC])
|
||||
14 - output([t2.c1]), filter(nil), dop=1
|
||||
15 - output([t2.c1]), filter(nil)
|
||||
16 - output([t2.c1]), filter(nil),
|
||||
15 - output([t2.c1]), filter(nil), limit(1), offset(nil)
|
||||
16 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), topn(1), local merge sort
|
||||
17 - output([t2.c1]), filter(nil)
|
||||
18 - output([t2.c1]), filter(nil),
|
||||
access([t2.c1]), partitions(p[0-2]),
|
||||
limit(1), offset(nil)
|
||||
17 - output([1]), filter(nil)
|
||||
18 - output([1]), filter(nil),
|
||||
19 - output([1]), filter(nil)
|
||||
20 - output([1]), filter(nil),
|
||||
access([t1.c1]), partitions(p[0-4])
|
||||
19 - output([t8.c1], [t8.c2]), filter(nil),
|
||||
21 - output([t8.c1], [t8.c2]), filter(nil),
|
||||
access([t8.c1], [t8.c2]), partitions(p0)
|
||||
|
||||
Outline Data:
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -2195,18 +2195,19 @@ SQL: select /*+leading(tt t5) use_nl(t5)*/* from (select max(c1) from t1) tt, t5
|
||||
---------------------------------------------------------------
|
||||
|0 |NESTED-LOOP JOIN CARTESIAN | |300 |479 |
|
||||
|1 | SUBPLAN SCAN |tt |1 |38 |
|
||||
|2 | SCALAR GROUP BY | |1 |37 |
|
||||
|2 | SCALAR GROUP BY | |1 |38 |
|
||||
|3 | SUBPLAN SCAN |VIEW1 |1 |37 |
|
||||
|4 | LIMIT | |1 |37 |
|
||||
|5 | PX COORDINATOR MERGE SORT | |1 |37 |
|
||||
|6 | EXCHANGE OUT DISTR |:EX10000 |1 |37 |
|
||||
|7 | SORT | |1 |37 |
|
||||
|8 | PX PARTITION ITERATOR | |1 |36 |
|
||||
|9 | TABLE SCAN |t1(Reverse)|1 |36 |
|
||||
|10| PX COORDINATOR | |300 |247 |
|
||||
|11| EXCHANGE OUT DISTR |:EX20000 |300 |205 |
|
||||
|12| PX PARTITION ITERATOR | |300 |205 |
|
||||
|13| TABLE SCAN |t5 |300 |205 |
|
||||
|7 | LIMIT | |1 |37 |
|
||||
|8 | TOP-N SORT | |1 |37 |
|
||||
|9 | PX PARTITION ITERATOR | |1 |36 |
|
||||
|10| TABLE SCAN |t1(Reverse)|1 |36 |
|
||||
|11| PX COORDINATOR | |300 |247 |
|
||||
|12| EXCHANGE OUT DISTR |:EX20000 |300 |205 |
|
||||
|13| PX PARTITION ITERATOR | |300 |205 |
|
||||
|14| TABLE SCAN |t5 |300 |205 |
|
||||
===============================================================
|
||||
|
||||
Outputs & filters:
|
||||
@ -2222,19 +2223,20 @@ Outputs & filters:
|
||||
4 - output([t1.c1]), filter(nil), limit(1), offset(nil)
|
||||
5 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC])
|
||||
6 - output([t1.c1]), filter(nil), dop=1
|
||||
7 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC]), local merge sort
|
||||
8 - output([t1.c1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
7 - output([t1.c1]), filter(nil), limit(1), offset(nil)
|
||||
8 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC]), topn(1), local merge sort
|
||||
9 - output([t1.c1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
10 - output([t1.c1]), filter(nil),
|
||||
access([t1.c1]), partitions(p[0-4]),
|
||||
limit(1), offset(nil),
|
||||
is_index_back=false,
|
||||
range_key([t1.c1]), range(MIN ; MAX)always true
|
||||
10 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil)
|
||||
11 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), dop=1
|
||||
12 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
11 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil)
|
||||
12 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), dop=1
|
||||
13 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
14 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil),
|
||||
access([t5.c2], [t5.c3], [t5.c1]), partitions(p[0-2]),
|
||||
is_index_back=false,
|
||||
range_key([t5.c2], [t5.c3]), range(MIN,MIN ; MAX,MAX)always true
|
||||
@ -2274,6 +2276,7 @@ Optimization Info:
|
||||
|
||||
|
||||
|
||||
|
||||
t1:table_rows:500, physical_range_rows:500, logical_range_rows:500, index_back_rows:0, output_rows:500, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[t1], pruned_index_name[idx_t1_c2]
|
||||
|
||||
|
||||
@ -2299,14 +2302,15 @@ SQL: select /*+leading(t5 tt) use_nl(tt)*/* from (select max(c1) from t1) tt, t5
|
||||
|4 | TABLE SCAN |t5 |300 |205 |
|
||||
|5 | MATERIAL | |1 |38 |
|
||||
|6 | SUBPLAN SCAN |tt |1 |38 |
|
||||
|7 | SCALAR GROUP BY | |1 |37 |
|
||||
|7 | SCALAR GROUP BY | |1 |38 |
|
||||
|8 | SUBPLAN SCAN |VIEW1 |1 |37 |
|
||||
|9 | LIMIT | |1 |37 |
|
||||
|10| PX COORDINATOR MERGE SORT | |1 |37 |
|
||||
|11| EXCHANGE OUT DISTR |:EX20000 |1 |37 |
|
||||
|12| SORT | |1 |37 |
|
||||
|13| PX PARTITION ITERATOR | |1 |36 |
|
||||
|14| TABLE SCAN |t1(Reverse)|1 |36 |
|
||||
|12| LIMIT | |1 |37 |
|
||||
|13| TOP-N SORT | |1 |37 |
|
||||
|14| PX PARTITION ITERATOR | |1 |36 |
|
||||
|15| TABLE SCAN |t1(Reverse)|1 |36 |
|
||||
================================================================
|
||||
|
||||
Outputs & filters:
|
||||
@ -2331,10 +2335,11 @@ Outputs & filters:
|
||||
9 - output([t1.c1]), filter(nil), limit(1), offset(nil)
|
||||
10 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC])
|
||||
11 - output([t1.c1]), filter(nil), dop=1
|
||||
12 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC]), local merge sort
|
||||
13 - output([t1.c1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
12 - output([t1.c1]), filter(nil), limit(1), offset(nil)
|
||||
13 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC]), topn(1), local merge sort
|
||||
14 - output([t1.c1]), filter(nil),
|
||||
force partition granule, asc.
|
||||
15 - output([t1.c1]), filter(nil),
|
||||
access([t1.c1]), partitions(p[0-4]),
|
||||
limit(1), offset(nil),
|
||||
is_index_back=false,
|
||||
@ -2381,6 +2386,7 @@ t5:table_rows:300, physical_range_rows:300, logical_range_rows:300, index_back_r
|
||||
|
||||
|
||||
|
||||
|
||||
t1:table_rows:500, physical_range_rows:500, logical_range_rows:500, index_back_rows:0, output_rows:500, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[t1], pruned_index_name[idx_t1_c2]
|
||||
Parameters
|
||||
-------------------------------------
|
||||
|
||||
@ -301,14 +301,15 @@ SQL: select max(c1) from pt2;
|
||||
==============================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
--------------------------------------------------------------
|
||||
|0 |SCALAR GROUP BY | |1 |37 |
|
||||
|0 |SCALAR GROUP BY | |1 |38 |
|
||||
|1 | SUBPLAN SCAN |VIEW1 |1 |37 |
|
||||
|2 | LIMIT | |1 |37 |
|
||||
|3 | PX COORDINATOR MERGE SORT | |1 |37 |
|
||||
|4 | EXCHANGE OUT DISTR |:EX10000 |1 |37 |
|
||||
|5 | SORT | |1 |37 |
|
||||
|6 | PX PARTITION ITERATOR | |1 |36 |
|
||||
|7 | TABLE SCAN |pt2(Reverse)|1 |36 |
|
||||
|5 | LIMIT | |1 |37 |
|
||||
|6 | TOP-N SORT | |1 |37 |
|
||||
|7 | PX PARTITION ITERATOR | |1 |36 |
|
||||
|8 | TABLE SCAN |pt2(Reverse)|1 |36 |
|
||||
==============================================================
|
||||
|
||||
Outputs & filters:
|
||||
@ -320,9 +321,10 @@ Outputs & filters:
|
||||
2 - output([pt2.c1]), filter(nil), limit(1), offset(nil)
|
||||
3 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, DESC])
|
||||
4 - output([pt2.c1]), filter(nil), dop=1
|
||||
5 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, DESC]), local merge sort
|
||||
6 - output([pt2.c1]), filter(nil)
|
||||
7 - output([pt2.c1]), filter(nil),
|
||||
5 - output([pt2.c1]), filter(nil), limit(1), offset(nil)
|
||||
6 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, DESC]), topn(1), local merge sort
|
||||
7 - output([pt2.c1]), filter(nil)
|
||||
8 - output([pt2.c1]), filter(nil),
|
||||
access([pt2.c1]), partitions(p[0-2]),
|
||||
limit(1), offset(nil)
|
||||
|
||||
@ -331,14 +333,15 @@ SQL: select max(c1) as max from pt2;
|
||||
==============================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
--------------------------------------------------------------
|
||||
|0 |SCALAR GROUP BY | |1 |37 |
|
||||
|0 |SCALAR GROUP BY | |1 |38 |
|
||||
|1 | SUBPLAN SCAN |VIEW1 |1 |37 |
|
||||
|2 | LIMIT | |1 |37 |
|
||||
|3 | PX COORDINATOR MERGE SORT | |1 |37 |
|
||||
|4 | EXCHANGE OUT DISTR |:EX10000 |1 |37 |
|
||||
|5 | SORT | |1 |37 |
|
||||
|6 | PX PARTITION ITERATOR | |1 |36 |
|
||||
|7 | TABLE SCAN |pt2(Reverse)|1 |36 |
|
||||
|5 | LIMIT | |1 |37 |
|
||||
|6 | TOP-N SORT | |1 |37 |
|
||||
|7 | PX PARTITION ITERATOR | |1 |36 |
|
||||
|8 | TABLE SCAN |pt2(Reverse)|1 |36 |
|
||||
==============================================================
|
||||
|
||||
Outputs & filters:
|
||||
@ -350,9 +353,10 @@ Outputs & filters:
|
||||
2 - output([pt2.c1]), filter(nil), limit(1), offset(nil)
|
||||
3 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, DESC])
|
||||
4 - output([pt2.c1]), filter(nil), dop=1
|
||||
5 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, DESC]), local merge sort
|
||||
6 - output([pt2.c1]), filter(nil)
|
||||
7 - output([pt2.c1]), filter(nil),
|
||||
5 - output([pt2.c1]), filter(nil), limit(1), offset(nil)
|
||||
6 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, DESC]), topn(1), local merge sort
|
||||
7 - output([pt2.c1]), filter(nil)
|
||||
8 - output([pt2.c1]), filter(nil),
|
||||
access([pt2.c1]), partitions(p[0-2]),
|
||||
limit(1), offset(nil)
|
||||
|
||||
@ -361,14 +365,15 @@ SQL: select min(c1) from pt2;
|
||||
==========================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
----------------------------------------------------------
|
||||
|0 |SCALAR GROUP BY | |1 |37 |
|
||||
|0 |SCALAR GROUP BY | |1 |38 |
|
||||
|1 | SUBPLAN SCAN |VIEW1 |1 |37 |
|
||||
|2 | LIMIT | |1 |37 |
|
||||
|3 | PX COORDINATOR MERGE SORT | |1 |37 |
|
||||
|4 | EXCHANGE OUT DISTR |:EX10000|1 |37 |
|
||||
|5 | SORT | |1 |37 |
|
||||
|6 | PX PARTITION ITERATOR | |1 |36 |
|
||||
|7 | TABLE SCAN |pt2 |1 |36 |
|
||||
|5 | LIMIT | |1 |37 |
|
||||
|6 | TOP-N SORT | |1 |37 |
|
||||
|7 | PX PARTITION ITERATOR | |1 |36 |
|
||||
|8 | TABLE SCAN |pt2 |1 |36 |
|
||||
==========================================================
|
||||
|
||||
Outputs & filters:
|
||||
@ -380,9 +385,10 @@ Outputs & filters:
|
||||
2 - output([pt2.c1]), filter(nil), limit(1), offset(nil)
|
||||
3 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, ASC])
|
||||
4 - output([pt2.c1]), filter(nil), dop=1
|
||||
5 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, ASC]), local merge sort
|
||||
6 - output([pt2.c1]), filter(nil)
|
||||
7 - output([pt2.c1]), filter(nil),
|
||||
5 - output([pt2.c1]), filter(nil), limit(1), offset(nil)
|
||||
6 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, ASC]), topn(1), local merge sort
|
||||
7 - output([pt2.c1]), filter(nil)
|
||||
8 - output([pt2.c1]), filter(nil),
|
||||
access([pt2.c1]), partitions(p[0-2]),
|
||||
limit(1), offset(nil)
|
||||
|
||||
@ -391,14 +397,15 @@ SQL: select min(c1) as min from pt2;
|
||||
==========================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
----------------------------------------------------------
|
||||
|0 |SCALAR GROUP BY | |1 |37 |
|
||||
|0 |SCALAR GROUP BY | |1 |38 |
|
||||
|1 | SUBPLAN SCAN |VIEW1 |1 |37 |
|
||||
|2 | LIMIT | |1 |37 |
|
||||
|3 | PX COORDINATOR MERGE SORT | |1 |37 |
|
||||
|4 | EXCHANGE OUT DISTR |:EX10000|1 |37 |
|
||||
|5 | SORT | |1 |37 |
|
||||
|6 | PX PARTITION ITERATOR | |1 |36 |
|
||||
|7 | TABLE SCAN |pt2 |1 |36 |
|
||||
|5 | LIMIT | |1 |37 |
|
||||
|6 | TOP-N SORT | |1 |37 |
|
||||
|7 | PX PARTITION ITERATOR | |1 |36 |
|
||||
|8 | TABLE SCAN |pt2 |1 |36 |
|
||||
==========================================================
|
||||
|
||||
Outputs & filters:
|
||||
@ -410,9 +417,10 @@ Outputs & filters:
|
||||
2 - output([pt2.c1]), filter(nil), limit(1), offset(nil)
|
||||
3 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, ASC])
|
||||
4 - output([pt2.c1]), filter(nil), dop=1
|
||||
5 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, ASC]), local merge sort
|
||||
6 - output([pt2.c1]), filter(nil)
|
||||
7 - output([pt2.c1]), filter(nil),
|
||||
5 - output([pt2.c1]), filter(nil), limit(1), offset(nil)
|
||||
6 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, ASC]), topn(1), local merge sort
|
||||
7 - output([pt2.c1]), filter(nil)
|
||||
8 - output([pt2.c1]), filter(nil),
|
||||
access([pt2.c1]), partitions(p[0-2]),
|
||||
limit(1), offset(nil)
|
||||
|
||||
@ -421,14 +429,15 @@ SQL: select * from (select max(c1) from pt2) as tmp_table;
|
||||
==============================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
--------------------------------------------------------------
|
||||
|0 |SCALAR GROUP BY | |1 |37 |
|
||||
|0 |SCALAR GROUP BY | |1 |38 |
|
||||
|1 | SUBPLAN SCAN |VIEW1 |1 |37 |
|
||||
|2 | LIMIT | |1 |37 |
|
||||
|3 | PX COORDINATOR MERGE SORT | |1 |37 |
|
||||
|4 | EXCHANGE OUT DISTR |:EX10000 |1 |37 |
|
||||
|5 | SORT | |1 |37 |
|
||||
|6 | PX PARTITION ITERATOR | |1 |36 |
|
||||
|7 | TABLE SCAN |pt2(Reverse)|1 |36 |
|
||||
|5 | LIMIT | |1 |37 |
|
||||
|6 | TOP-N SORT | |1 |37 |
|
||||
|7 | PX PARTITION ITERATOR | |1 |36 |
|
||||
|8 | TABLE SCAN |pt2(Reverse)|1 |36 |
|
||||
==============================================================
|
||||
|
||||
Outputs & filters:
|
||||
@ -440,9 +449,10 @@ Outputs & filters:
|
||||
2 - output([pt2.c1]), filter(nil), limit(1), offset(nil)
|
||||
3 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, DESC])
|
||||
4 - output([pt2.c1]), filter(nil), dop=1
|
||||
5 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, DESC]), local merge sort
|
||||
6 - output([pt2.c1]), filter(nil)
|
||||
7 - output([pt2.c1]), filter(nil),
|
||||
5 - output([pt2.c1]), filter(nil), limit(1), offset(nil)
|
||||
6 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, DESC]), topn(1), local merge sort
|
||||
7 - output([pt2.c1]), filter(nil)
|
||||
8 - output([pt2.c1]), filter(nil),
|
||||
access([pt2.c1]), partitions(p[0-2]),
|
||||
limit(1), offset(nil)
|
||||
|
||||
@ -453,15 +463,16 @@ SQL: select * from t2 where t2.c1 > (select max(c1) from pt2);
|
||||
----------------------------------------------------------------
|
||||
|0 |NESTED-LOOP JOIN | |34 |102 |
|
||||
|1 | SUBPLAN SCAN |VIEW1 |1 |38 |
|
||||
|2 | SCALAR GROUP BY | |1 |37 |
|
||||
|2 | SCALAR GROUP BY | |1 |38 |
|
||||
|3 | SUBPLAN SCAN |VIEW2 |1 |37 |
|
||||
|4 | LIMIT | |1 |37 |
|
||||
|5 | PX COORDINATOR MERGE SORT | |1 |37 |
|
||||
|6 | EXCHANGE OUT DISTR |:EX10000 |1 |37 |
|
||||
|7 | SORT | |1 |37 |
|
||||
|8 | PX PARTITION ITERATOR | |1 |36 |
|
||||
|9 | TABLE SCAN |pt2(Reverse)|1 |36 |
|
||||
|10| TABLE SCAN |t2 |34 |43 |
|
||||
|7 | LIMIT | |1 |37 |
|
||||
|8 | TOP-N SORT | |1 |37 |
|
||||
|9 | PX PARTITION ITERATOR | |1 |36 |
|
||||
|10| TABLE SCAN |pt2(Reverse)|1 |36 |
|
||||
|11| TABLE SCAN |t2 |34 |43 |
|
||||
================================================================
|
||||
|
||||
Outputs & filters:
|
||||
@ -477,12 +488,13 @@ Outputs & filters:
|
||||
4 - output([pt2.c1]), filter(nil), limit(1), offset(nil)
|
||||
5 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, DESC])
|
||||
6 - output([pt2.c1]), filter(nil), dop=1
|
||||
7 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, DESC]), local merge sort
|
||||
8 - output([pt2.c1]), filter(nil)
|
||||
9 - output([pt2.c1]), filter(nil),
|
||||
7 - output([pt2.c1]), filter(nil), limit(1), offset(nil)
|
||||
8 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, DESC]), topn(1), local merge sort
|
||||
9 - output([pt2.c1]), filter(nil)
|
||||
10 - output([pt2.c1]), filter(nil),
|
||||
access([pt2.c1]), partitions(p[0-2]),
|
||||
limit(1), offset(nil)
|
||||
10 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
|
||||
11 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
|
||||
access([t2.c1], [t2.c2], [t2.c3]), partitions(p0)
|
||||
|
||||
*************** Case 20 ***************
|
||||
@ -490,14 +502,15 @@ SQL: select * from (select min(c1) as min from pt2) as tmp_table;
|
||||
==========================================================
|
||||
|ID|OPERATOR |NAME |EST. ROWS|COST|
|
||||
----------------------------------------------------------
|
||||
|0 |SCALAR GROUP BY | |1 |37 |
|
||||
|0 |SCALAR GROUP BY | |1 |38 |
|
||||
|1 | SUBPLAN SCAN |VIEW1 |1 |37 |
|
||||
|2 | LIMIT | |1 |37 |
|
||||
|3 | PX COORDINATOR MERGE SORT | |1 |37 |
|
||||
|4 | EXCHANGE OUT DISTR |:EX10000|1 |37 |
|
||||
|5 | SORT | |1 |37 |
|
||||
|6 | PX PARTITION ITERATOR | |1 |36 |
|
||||
|7 | TABLE SCAN |pt2 |1 |36 |
|
||||
|5 | LIMIT | |1 |37 |
|
||||
|6 | TOP-N SORT | |1 |37 |
|
||||
|7 | PX PARTITION ITERATOR | |1 |36 |
|
||||
|8 | TABLE SCAN |pt2 |1 |36 |
|
||||
==========================================================
|
||||
|
||||
Outputs & filters:
|
||||
@ -509,9 +522,10 @@ Outputs & filters:
|
||||
2 - output([pt2.c1]), filter(nil), limit(1), offset(nil)
|
||||
3 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, ASC])
|
||||
4 - output([pt2.c1]), filter(nil), dop=1
|
||||
5 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, ASC]), local merge sort
|
||||
6 - output([pt2.c1]), filter(nil)
|
||||
7 - output([pt2.c1]), filter(nil),
|
||||
5 - output([pt2.c1]), filter(nil), limit(1), offset(nil)
|
||||
6 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, ASC]), topn(1), local merge sort
|
||||
7 - output([pt2.c1]), filter(nil)
|
||||
8 - output([pt2.c1]), filter(nil),
|
||||
access([pt2.c1]), partitions(p[0-2]),
|
||||
limit(1), offset(nil)
|
||||
|
||||
@ -522,15 +536,16 @@ SQL: select * from t2 where t2.c1 > (select min(c1) as min from pt2);
|
||||
------------------------------------------------------------
|
||||
|0 |NESTED-LOOP JOIN | |34 |102 |
|
||||
|1 | SUBPLAN SCAN |VIEW1 |1 |38 |
|
||||
|2 | SCALAR GROUP BY | |1 |37 |
|
||||
|2 | SCALAR GROUP BY | |1 |38 |
|
||||
|3 | SUBPLAN SCAN |VIEW2 |1 |37 |
|
||||
|4 | LIMIT | |1 |37 |
|
||||
|5 | PX COORDINATOR MERGE SORT | |1 |37 |
|
||||
|6 | EXCHANGE OUT DISTR |:EX10000|1 |37 |
|
||||
|7 | SORT | |1 |37 |
|
||||
|8 | PX PARTITION ITERATOR | |1 |36 |
|
||||
|9 | TABLE SCAN |pt2 |1 |36 |
|
||||
|10| TABLE SCAN |t2 |34 |43 |
|
||||
|7 | LIMIT | |1 |37 |
|
||||
|8 | TOP-N SORT | |1 |37 |
|
||||
|9 | PX PARTITION ITERATOR | |1 |36 |
|
||||
|10| TABLE SCAN |pt2 |1 |36 |
|
||||
|11| TABLE SCAN |t2 |34 |43 |
|
||||
============================================================
|
||||
|
||||
Outputs & filters:
|
||||
@ -546,12 +561,13 @@ Outputs & filters:
|
||||
4 - output([pt2.c1]), filter(nil), limit(1), offset(nil)
|
||||
5 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, ASC])
|
||||
6 - output([pt2.c1]), filter(nil), dop=1
|
||||
7 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, ASC]), local merge sort
|
||||
8 - output([pt2.c1]), filter(nil)
|
||||
9 - output([pt2.c1]), filter(nil),
|
||||
7 - output([pt2.c1]), filter(nil), limit(1), offset(nil)
|
||||
8 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, ASC]), topn(1), local merge sort
|
||||
9 - output([pt2.c1]), filter(nil)
|
||||
10 - output([pt2.c1]), filter(nil),
|
||||
access([pt2.c1]), partitions(p[0-2]),
|
||||
limit(1), offset(nil)
|
||||
10 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
|
||||
11 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
|
||||
access([t2.c1], [t2.c2], [t2.c3]), partitions(p0)
|
||||
|
||||
*************** Case 22 ***************
|
||||
|
||||
Reference in New Issue
Block a user