4664 lines
		
	
	
		
			161 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			4664 lines
		
	
	
		
			161 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
***************   Case 1   ***************
 | 
						|
 | 
						|
SQL: select /*+FULL(t4)*/* from t4; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t4  |100      |78  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
<<<<<<< HEAD
 | 
						|
      FULL("t4")
 | 
						|
=======
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
<<<<<<< HEAD
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
LOCAL
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[t4], pruned_index_name[idx_t4_c2_c3,idx_t4_c3,idx_t4_c2]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 1(end)  ************** 
 | 
						|
 | 
						|
***************   Case 2   ***************
 | 
						|
 | 
						|
SQL: select /*+INDEX(t4 idx_t4_c2_c3)*/* from t4; 
 | 
						|
 | 
						|
===============================================
 | 
						|
|ID|OPERATOR  |NAME            |EST. ROWS|COST|
 | 
						|
-----------------------------------------------
 | 
						|
|0 |TABLE SCAN|t4(idx_t4_c2_c3)|100      |78  |
 | 
						|
===============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c2], [t4.c3], [t4.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
<<<<<<< HEAD
 | 
						|
      INDEX("t4" "idx_t4_c2_c3")
 | 
						|
=======
 | 
						|
      INDEX(@"SEL$1" "opt"."t4"@"SEL$1" "idx_t4_c2_c3")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      INDEX(@"SEL$1" "opt"."t4"@"SEL$1" "idx_t4_c2_c3")
 | 
						|
<<<<<<< HEAD
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
LOCAL
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3], pruned_index_name[idx_t4_c3,idx_t4_c2,t4]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 2(end)  ************** 
 | 
						|
 | 
						|
***************   Case 3   ***************
 | 
						|
 | 
						|
SQL: select /*+INDEX(t4 idx_t4_c2)*/* from t4; 
 | 
						|
 | 
						|
============================================
 | 
						|
|ID|OPERATOR  |NAME         |EST. ROWS|COST|
 | 
						|
--------------------------------------------
 | 
						|
|0 |TABLE SCAN|t4(idx_t4_c2)|100      |97  |
 | 
						|
============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=true, 
 | 
						|
      range_key([t4.c2], [t4.c1]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
<<<<<<< HEAD
 | 
						|
      INDEX("t4" "idx_t4_c2")
 | 
						|
=======
 | 
						|
      INDEX(@"SEL$1" "opt"."t4"@"SEL$1" "idx_t4_c2")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      INDEX(@"SEL$1" "opt"."t4"@"SEL$1" "idx_t4_c2")
 | 
						|
<<<<<<< HEAD
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
LOCAL
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:100, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2], pruned_index_name[idx_t4_c2_c3,idx_t4_c3,t4]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 3(end)  ************** 
 | 
						|
 | 
						|
***************   Case 4   ***************
 | 
						|
 | 
						|
SQL: select /*+INDEX(t4 idx_t4_c3)*/* from t4; 
 | 
						|
 | 
						|
============================================
 | 
						|
|ID|OPERATOR  |NAME         |EST. ROWS|COST|
 | 
						|
--------------------------------------------
 | 
						|
|0 |TABLE SCAN|t4(idx_t4_c3)|100      |78  |
 | 
						|
============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c3], [t4.c1], [t4.c2]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
<<<<<<< HEAD
 | 
						|
      INDEX("t4" "idx_t4_c3")
 | 
						|
=======
 | 
						|
      INDEX(@"SEL$1" "opt"."t4"@"SEL$1" "idx_t4_c3")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      INDEX(@"SEL$1" "opt"."t4"@"SEL$1" "idx_t4_c3")
 | 
						|
<<<<<<< HEAD
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
LOCAL
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c3], pruned_index_name[idx_t4_c2_c3,idx_t4_c2,t4]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 4(end)  ************** 
 | 
						|
 | 
						|
***************   Case 5   ***************
 | 
						|
 | 
						|
SQL: select /*+INDEX(t_pt t_pt_idx_1)*/* from t_pt where (c2,c1) > (300,200); 
 | 
						|
 | 
						|
============================================================
 | 
						|
|ID|OPERATOR               |NAME            |EST. ROWS|COST|
 | 
						|
------------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |                |0        |799 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000        |0        |799 |
 | 
						|
|2 |  PX PARTITION ITERATOR|                |0        |799 |
 | 
						|
|3 |   TABLE SCAN          |t_pt(t_pt_idx_1)|0        |799 |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t_pt.c1, t_pt.c2, t_pt.c3, t_pt.c4)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t_pt.c1, t_pt.c2, t_pt.c3, t_pt.c4)]), filter(nil), dop=1
 | 
						|
  2 - output([t_pt.c1], [t_pt.c2], [t_pt.c3], [t_pt.c4]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  3 - output([t_pt.c1], [t_pt.c2], [t_pt.c3], [t_pt.c4]), filter([(t_pt.c2, t_pt.c1) > (?, ?)]), 
 | 
						|
      access([t_pt.c1], [t_pt.c2], [t_pt.c3], [t_pt.c4]), partitions(p[0-9]), 
 | 
						|
      is_index_back=true, filter_before_indexback[true], 
 | 
						|
      range_key([t_pt.c2], [t_pt.c1]), range(300,200 ; MAX,MAX)
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
<<<<<<< HEAD
 | 
						|
      INDEX("t_pt" "t_pt_idx_1")
 | 
						|
=======
 | 
						|
      INDEX(@"SEL$1" "opt"."t_pt"@"SEL$1" "t_pt_idx_1")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      INDEX(@"SEL$1" "opt"."t_pt"@"SEL$1" "t_pt_idx_1")
 | 
						|
<<<<<<< HEAD
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t_pt:table_rows:1000, physical_range_rows:1000, logical_range_rows:1000, index_back_rows:0, output_rows:0, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t_pt_idx_1], pruned_index_name[t_pt]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
{obj:{"BIGINT":300}, accuracy:{length:3, precision:3, scale:0}, flag:1, raw_text_pos:-1, raw_text_len:-1, param_meta:{type:"BIGINT", collation:"binary", coercibility:"NUMERIC"}}, {obj:{"BIGINT":200}, accuracy:{length:3, precision:3, scale:0}, flag:1, raw_text_pos:-1, raw_text_len:-1, param_meta:{type:"BIGINT", collation:"binary", coercibility:"NUMERIC"}}
 | 
						|
 | 
						|
*************** Case 5(end)  ************** 
 | 
						|
 | 
						|
***************   Case 6   ***************
 | 
						|
 | 
						|
SQL: select /*+INDEX(t_pt primary)*/* from t_pt where (c2,c1) > (300,200); 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |0        |799 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|0        |799 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |0        |799 |
 | 
						|
|3 |   TABLE SCAN          |t_pt    |0        |799 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t_pt.c1, t_pt.c2, t_pt.c3, t_pt.c4)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t_pt.c1, t_pt.c2, t_pt.c3, t_pt.c4)]), filter(nil), dop=1
 | 
						|
  2 - output([t_pt.c1], [t_pt.c2], [t_pt.c3], [t_pt.c4]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  3 - output([t_pt.c1], [t_pt.c2], [t_pt.c3], [t_pt.c4]), filter([(t_pt.c2, t_pt.c1) > (?, ?)]), 
 | 
						|
      access([t_pt.c1], [t_pt.c2], [t_pt.c3], [t_pt.c4]), partitions(p[0-9]), 
 | 
						|
      is_index_back=false, filter_before_indexback[false], 
 | 
						|
      range_key([t_pt.c1], [t_pt.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
<<<<<<< HEAD
 | 
						|
      INDEX("t_pt" "primary")
 | 
						|
=======
 | 
						|
      FULL(@"SEL$1" "opt"."t_pt"@"SEL$1")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt"."t_pt"@"SEL$1")
 | 
						|
<<<<<<< HEAD
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t_pt:table_rows:1000, physical_range_rows:1000, logical_range_rows:1000, index_back_rows:0, output_rows:0, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t_pt], pruned_index_name[t_pt_idx_1]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
{obj:{"BIGINT":300}, accuracy:{length:3, precision:3, scale:0}, flag:1, raw_text_pos:-1, raw_text_len:-1, param_meta:{type:"BIGINT", collation:"binary", coercibility:"NUMERIC"}}, {obj:{"BIGINT":200}, accuracy:{length:3, precision:3, scale:0}, flag:1, raw_text_pos:-1, raw_text_len:-1, param_meta:{type:"BIGINT", collation:"binary", coercibility:"NUMERIC"}}
 | 
						|
 | 
						|
*************** Case 6(end)  ************** 
 | 
						|
 | 
						|
***************   Case 7   ***************
 | 
						|
 | 
						|
SQL: select /*+INDEX(t_pt primary)*/* from t_pt where (c1,c2) > (200,300); 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |0        |799 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|0        |799 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |0        |799 |
 | 
						|
|3 |   TABLE SCAN          |t_pt    |0        |799 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t_pt.c1, t_pt.c2, t_pt.c3, t_pt.c4)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t_pt.c1, t_pt.c2, t_pt.c3, t_pt.c4)]), filter(nil), dop=1
 | 
						|
  2 - output([t_pt.c1], [t_pt.c2], [t_pt.c3], [t_pt.c4]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  3 - output([t_pt.c1], [t_pt.c2], [t_pt.c3], [t_pt.c4]), filter([(t_pt.c1, t_pt.c2) > (?, ?)]), 
 | 
						|
      access([t_pt.c1], [t_pt.c2], [t_pt.c3], [t_pt.c4]), partitions(p[0-9]), 
 | 
						|
      is_index_back=false, filter_before_indexback[false], 
 | 
						|
      range_key([t_pt.c1], [t_pt.c2]), range(200,300 ; MAX,MAX)
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
<<<<<<< HEAD
 | 
						|
      INDEX("t_pt" "primary")
 | 
						|
=======
 | 
						|
      FULL(@"SEL$1" "opt"."t_pt"@"SEL$1")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt"."t_pt"@"SEL$1")
 | 
						|
<<<<<<< HEAD
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t_pt:table_rows:1000, physical_range_rows:1000, logical_range_rows:1000, index_back_rows:0, output_rows:0, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t_pt], pruned_index_name[t_pt_idx_1]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
{obj:{"BIGINT":200}, accuracy:{length:3, precision:3, scale:0}, flag:1, raw_text_pos:-1, raw_text_len:-1, param_meta:{type:"BIGINT", collation:"binary", coercibility:"NUMERIC"}}, {obj:{"BIGINT":300}, accuracy:{length:3, precision:3, scale:0}, flag:1, raw_text_pos:-1, raw_text_len:-1, param_meta:{type:"BIGINT", collation:"binary", coercibility:"NUMERIC"}}
 | 
						|
 | 
						|
*************** Case 7(end)  ************** 
 | 
						|
 | 
						|
***************   Case 8   ***************
 | 
						|
 | 
						|
SQL: select /*+INDEX(t4 idx_t4_invalid)*/* from t4; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t4  |100      |78  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
<<<<<<< HEAD
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
LOCAL
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,idx_t4_c3,t4], pruned_index_name[idx_t4_c2]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 8(end)  ************** 
 | 
						|
 | 
						|
***************   Case 9   ***************
 | 
						|
 | 
						|
SQL: select /*+INDEX(t4 idx_t4_c3) INDEX(t4 idx_t4_c2) INDEX(t4 idx_t4_c2_c3) */* from t4; 
 | 
						|
 | 
						|
===============================================
 | 
						|
|ID|OPERATOR  |NAME            |EST. ROWS|COST|
 | 
						|
-----------------------------------------------
 | 
						|
|0 |TABLE SCAN|t4(idx_t4_c2_c3)|100      |78  |
 | 
						|
===============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c2], [t4.c3], [t4.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
<<<<<<< HEAD
 | 
						|
      INDEX("t4" "idx_t4_c2_c3")
 | 
						|
=======
 | 
						|
      INDEX(@"SEL$1" "opt"."t4"@"SEL$1" "idx_t4_c3")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      INDEX(@"SEL$1" "opt"."t4"@"SEL$1" "idx_t4_c2_c3")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      INDEX(@"SEL$1" "opt"."t4"@"SEL$1" "idx_t4_c3")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
LOCAL
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,idx_t4_c3], pruned_index_name[idx_t4_c2,t4]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 9(end)  ************** 
 | 
						|
 | 
						|
***************   Case 10   ***************
 | 
						|
 | 
						|
SQL: select * from t4 use index(idx_t4_c3, idx_t4_c2, idx_t4_c2_c3); 
 | 
						|
 | 
						|
===============================================
 | 
						|
|ID|OPERATOR  |NAME            |EST. ROWS|COST|
 | 
						|
-----------------------------------------------
 | 
						|
|0 |TABLE SCAN|t4(idx_t4_c2_c3)|100      |78  |
 | 
						|
===============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c2], [t4.c3], [t4.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
<<<<<<< HEAD
 | 
						|
      INDEX("opt"."t4" "idx_t4_c2_c3")
 | 
						|
=======
 | 
						|
      INDEX(@"SEL$1" "opt"."t4"@"SEL$1" "idx_t4_c3")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      INDEX(@"SEL$1" "opt"."t4"@"SEL$1" "idx_t4_c2_c3")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      INDEX(@"SEL$1" "opt"."t4"@"SEL$1" "idx_t4_c3")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
LOCAL
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,idx_t4_c3], pruned_index_name[idx_t4_c2,t4]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 10(end)  ************** 
 | 
						|
 | 
						|
***************   Case 11   ***************
 | 
						|
 | 
						|
SQL: select * from t4 force index(idx_t4_c3, idx_t4_c2, idx_t4_c2_c3); 
 | 
						|
 | 
						|
===============================================
 | 
						|
|ID|OPERATOR  |NAME            |EST. ROWS|COST|
 | 
						|
-----------------------------------------------
 | 
						|
|0 |TABLE SCAN|t4(idx_t4_c2_c3)|100      |78  |
 | 
						|
===============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c2], [t4.c3], [t4.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
<<<<<<< HEAD
 | 
						|
      INDEX("opt"."t4" "idx_t4_c2_c3")
 | 
						|
=======
 | 
						|
      INDEX(@"SEL$1" "opt"."t4"@"SEL$1" "idx_t4_c3")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      INDEX(@"SEL$1" "opt"."t4"@"SEL$1" "idx_t4_c2_c3")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      INDEX(@"SEL$1" "opt"."t4"@"SEL$1" "idx_t4_c3")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
LOCAL
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,idx_t4_c3], pruned_index_name[idx_t4_c2,t4]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 11(end)  ************** 
 | 
						|
 | 
						|
***************   Case 12   ***************
 | 
						|
 | 
						|
SQL: select /*+INDEX(t4 idx_t4_c3) FULL(t4) */* from t4; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t4  |100      |78  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
<<<<<<< HEAD
 | 
						|
      FULL("t4")
 | 
						|
=======
 | 
						|
      INDEX(@"SEL$1" "opt"."t4"@"SEL$1" "idx_t4_c3")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      INDEX(@"SEL$1" "opt"."t4"@"SEL$1" "idx_t4_c3")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
LOCAL
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c3,t4], pruned_index_name[idx_t4_c2_c3,idx_t4_c2]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 12(end)  ************** 
 | 
						|
 | 
						|
***************   Case 13   ***************
 | 
						|
 | 
						|
SQL: select /*+INDEX(t4 idx_t4_c3) INDEX(t5 idx_t5_c2)*/* from t4,t5; 
 | 
						|
 | 
						|
============================================================
 | 
						|
|ID|OPERATOR                  |NAME         |EST. ROWS|COST|
 | 
						|
------------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN|             |30000    |3069|
 | 
						|
|1 | TABLE SCAN               |t4(idx_t4_c3)|100      |78  |
 | 
						|
|2 | MATERIAL                 |             |300      |414 |
 | 
						|
|3 |  PX COORDINATOR          |             |300      |411 |
 | 
						|
|4 |   EXCHANGE OUT DISTR     |:EX10000     |300      |371 |
 | 
						|
|5 |    PX PARTITION ITERATOR |             |300      |290 |
 | 
						|
|6 |     TABLE SCAN           |t5(idx_t5_c2)|300      |290 |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3], [t5.c1], [t5.c2], [t5.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c3], [t4.c1], [t4.c2]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
 | 
						|
  2 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  3 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  4 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), dop=1
 | 
						|
  5 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  6 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      access([t5.c2], [t5.c3], [t5.c1]), partitions(p[0-2]), 
 | 
						|
      is_index_back=true, 
 | 
						|
      range_key([t5.c2], [t5.c3]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
<<<<<<< HEAD
 | 
						|
      INDEX("t4" "idx_t4_c3")
 | 
						|
      INDEX("t5" "idx_t5_c2")
 | 
						|
=======
 | 
						|
      INDEX(@"SEL$1" "opt"."t4"@"SEL$1" "idx_t4_c3")
 | 
						|
      INDEX(@"SEL$1" "opt"."t5"@"SEL$1" "idx_t5_c2")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      LEADING(@"SEL$1" ("opt"."t4"@"SEL$1" "opt"."t5"@"SEL$1"))
 | 
						|
      USE_NL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" "opt"."t5"@"SEL$1" LOCAL LOCAL)
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      INDEX(@"SEL$1" "opt"."t4"@"SEL$1" "idx_t4_c3")
 | 
						|
      INDEX(@"SEL$1" "opt"."t5"@"SEL$1" "idx_t5_c2")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      LEADING(@"SEL$1" ("opt.t4"@"SEL$1" "opt.t5"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t5"@"SEL$1" ) LOCAL LOCAL)
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      INDEX(@"SEL$1" "opt"."t4"@"SEL$1" "idx_t4_c3")
 | 
						|
      INDEX(@"SEL$1" "opt"."t5"@"SEL$1" "idx_t5_c2")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c3], pruned_index_name[idx_t4_c2_c3,idx_t4_c2,t4]
 | 
						|
 | 
						|
t5:table_rows:300, physical_range_rows:300, logical_range_rows:300, index_back_rows:300, output_rows:300, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[idx_t5_c2], pruned_index_name[idx_t5_c3,t5]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 13(end)  ************** 
 | 
						|
 | 
						|
***************   Case 14   ***************
 | 
						|
 | 
						|
SQL: select /*+INDEX(t4 idx_t4_c3)*/* from t4 as tt; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|tt  |100      |78  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([tt.c1], [tt.c2], [tt.c3]), filter(nil), 
 | 
						|
      access([tt.c1], [tt.c2], [tt.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([tt.c1], [tt.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt"."tt"@"SEL$1")
 | 
						|
<<<<<<< HEAD
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
LOCAL
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
tt:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,idx_t4_c3,t4], pruned_index_name[idx_t4_c2]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 14(end)  ************** 
 | 
						|
 | 
						|
***************   Case 15   ***************
 | 
						|
 | 
						|
SQL: select /*+INDEX(tt idx_t4_c3)*/* from t4 as tt; 
 | 
						|
 | 
						|
============================================
 | 
						|
|ID|OPERATOR  |NAME         |EST. ROWS|COST|
 | 
						|
--------------------------------------------
 | 
						|
|0 |TABLE SCAN|tt(idx_t4_c3)|100      |78  |
 | 
						|
============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([tt.c1], [tt.c2], [tt.c3]), filter(nil), 
 | 
						|
      access([tt.c1], [tt.c2], [tt.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([tt.c3], [tt.c1], [tt.c2]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
<<<<<<< HEAD
 | 
						|
      INDEX("tt" "idx_t4_c3")
 | 
						|
=======
 | 
						|
      INDEX(@"SEL$1" "opt"."tt"@"SEL$1" "idx_t4_c3")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      INDEX(@"SEL$1" "opt"."tt"@"SEL$1" "idx_t4_c3")
 | 
						|
<<<<<<< HEAD
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
LOCAL
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
tt:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c3], pruned_index_name[idx_t4_c2_c3,idx_t4_c2,t4]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 15(end)  ************** 
 | 
						|
 | 
						|
***************   Case 16   ***************
 | 
						|
 | 
						|
SQL: select * from t4 use index(); 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t4  |100      |78  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
<<<<<<< HEAD
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
LOCAL
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,idx_t4_c3,t4], pruned_index_name[idx_t4_c2]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 16(end)  ************** 
 | 
						|
 | 
						|
***************   Case 17   ***************
 | 
						|
 | 
						|
SQL: select /*+INDEX(t4 idx_t4_c3) */* from t4 ignore index(idx_t4_c3); 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t4  |100      |78  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
<<<<<<< HEAD
 | 
						|
=======
 | 
						|
      INDEX(@"SEL$1" "opt"."t4"@"SEL$1" "idx_t4_c3")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      INDEX(@"SEL$1" "opt"."t4"@"SEL$1" "idx_t4_c3")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
LOCAL
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,idx_t4_c3,t4], pruned_index_name[idx_t4_c2]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 17(end)  ************** 
 | 
						|
 | 
						|
***************   Case 18   ***************
 | 
						|
 | 
						|
SQL: select * from t4 ignore index(idx_t4_c3); 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t4  |100      |78  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
<<<<<<< HEAD
 | 
						|
      NO_INDEX("opt"."t4" "idx_t4_c3")
 | 
						|
=======
 | 
						|
      NO_INDEX(@"SEL$1" "opt"."t4"@"SEL$1" "idx_t4_c3")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      INDEX(@"SEL$1" "opt"."t4"@"SEL$1" "idx_t4_c2_c3")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
LOCAL
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,t4], pruned_index_name[idx_t4_c3,idx_t4_c2]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 18(end)  ************** 
 | 
						|
 | 
						|
***************   Case 19   ***************
 | 
						|
 | 
						|
SQL: select * from t4 ignore index(idx_t4_c2); 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t4  |100      |78  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
<<<<<<< HEAD
 | 
						|
      NO_INDEX("opt"."t4" "idx_t4_c2")
 | 
						|
=======
 | 
						|
      NO_INDEX(@"SEL$1" "opt"."t4"@"SEL$1" "idx_t4_c2")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      INDEX(@"SEL$1" "opt"."t4"@"SEL$1" "idx_t4_c2_c3")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
LOCAL
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,idx_t4_c3,t4], pruned_index_name[idx_t4_c2]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 19(end)  ************** 
 | 
						|
 | 
						|
***************   Case 20   ***************
 | 
						|
 | 
						|
SQL: select * from t4 ignore index(idx_t4_c3, idx_t4_c2); 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t4  |100      |78  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
<<<<<<< HEAD
 | 
						|
      NO_INDEX("opt"."t4" "idx_t4_c3")
 | 
						|
      NO_INDEX("opt"."t4" "idx_t4_c2")
 | 
						|
=======
 | 
						|
      NO_INDEX(@"SEL$1" "opt"."t4"@"SEL$1" "idx_t4_c3")
 | 
						|
      NO_INDEX(@"SEL$1" "opt"."t4"@"SEL$1" "idx_t4_c2")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      INDEX(@"SEL$1" "opt"."t4"@"SEL$1" "idx_t4_c2_c3")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
LOCAL
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,t4], pruned_index_name[idx_t4_c3,idx_t4_c2]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 20(end)  ************** 
 | 
						|
 | 
						|
***************   Case 21   ***************
 | 
						|
 | 
						|
SQL: select * from t4 ignore index(idx_t4_c3) ignore index(idx_t4_c2); 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t4  |100      |78  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
<<<<<<< HEAD
 | 
						|
      NO_INDEX("opt"."t4" "idx_t4_c3")
 | 
						|
=======
 | 
						|
      NO_INDEX(@"SEL$1" "opt"."t4"@"SEL$1" "idx_t4_c3")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      INDEX(@"SEL$1" "opt"."t4"@"SEL$1" "idx_t4_c2_c3")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
LOCAL
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,t4], pruned_index_name[idx_t4_c3,idx_t4_c2]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 21(end)  ************** 
 | 
						|
 | 
						|
***************   Case 22   ***************
 | 
						|
 | 
						|
SQL: select * from t4 tt ignore index(idx_t4_c3, idx_t4_c2); 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|tt  |100      |78  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([tt.c1], [tt.c2], [tt.c3]), filter(nil), 
 | 
						|
      access([tt.c1], [tt.c2], [tt.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([tt.c1], [tt.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
<<<<<<< HEAD
 | 
						|
      NO_INDEX("opt"."tt" "idx_t4_c3")
 | 
						|
      NO_INDEX("opt"."tt" "idx_t4_c2")
 | 
						|
=======
 | 
						|
      NO_INDEX(@"SEL$1" "opt"."tt"@"SEL$1" "idx_t4_c3")
 | 
						|
      NO_INDEX(@"SEL$1" "opt"."tt"@"SEL$1" "idx_t4_c2")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      FULL(@"SEL$1" "opt"."tt"@"SEL$1")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      INDEX(@"SEL$1" "opt"."tt"@"SEL$1" "idx_t4_c2_c3")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
LOCAL
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
tt:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,t4], pruned_index_name[idx_t4_c3,idx_t4_c2]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 22(end)  ************** 
 | 
						|
 | 
						|
***************   Case 23   ***************
 | 
						|
 | 
						|
SQL: select * from t4 tt ignore index(idx_t4_c3) ignore index(idx_t4_c2); 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|tt  |100      |78  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([tt.c1], [tt.c2], [tt.c3]), filter(nil), 
 | 
						|
      access([tt.c1], [tt.c2], [tt.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([tt.c1], [tt.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
<<<<<<< HEAD
 | 
						|
      NO_INDEX("opt"."tt" "idx_t4_c3")
 | 
						|
=======
 | 
						|
      NO_INDEX(@"SEL$1" "opt"."tt"@"SEL$1" "idx_t4_c3")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      FULL(@"SEL$1" "opt"."tt"@"SEL$1")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      INDEX(@"SEL$1" "opt"."tt"@"SEL$1" "idx_t4_c2_c3")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
LOCAL
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
tt:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,t4], pruned_index_name[idx_t4_c3,idx_t4_c2]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 23(end)  ************** 
 | 
						|
 | 
						|
***************   Case 24   ***************
 | 
						|
 | 
						|
SQL: select * from t4 tt ignore index(primary, idx_t4_c2); 
 | 
						|
 | 
						|
===============================================
 | 
						|
|ID|OPERATOR  |NAME            |EST. ROWS|COST|
 | 
						|
-----------------------------------------------
 | 
						|
|0 |TABLE SCAN|tt(idx_t4_c2_c3)|100      |78  |
 | 
						|
===============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([tt.c1], [tt.c2], [tt.c3]), filter(nil), 
 | 
						|
      access([tt.c1], [tt.c2], [tt.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([tt.c2], [tt.c3], [tt.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
<<<<<<< HEAD
 | 
						|
      NO_INDEX("opt"."tt" "PRIMARY")
 | 
						|
      NO_INDEX("opt"."tt" "idx_t4_c2")
 | 
						|
=======
 | 
						|
      NO_INDEX(@"SEL$1" "opt"."tt"@"SEL$1" "primary")
 | 
						|
      NO_INDEX(@"SEL$1" "opt"."tt"@"SEL$1" "idx_t4_c2")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      INDEX(@"SEL$1" "opt"."tt"@"SEL$1" "idx_t4_c2_c3")
 | 
						|
<<<<<<< HEAD
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
LOCAL
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
tt:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,idx_t4_c3], pruned_index_name[idx_t4_c2,t4]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 24(end)  ************** 
 | 
						|
 | 
						|
***************   Case 25   ***************
 | 
						|
 | 
						|
SQL: select * from t4 tt ignore index(primary) ignore index(idx_t4_c3); 
 | 
						|
 | 
						|
===============================================
 | 
						|
|ID|OPERATOR  |NAME            |EST. ROWS|COST|
 | 
						|
-----------------------------------------------
 | 
						|
|0 |TABLE SCAN|tt(idx_t4_c2_c3)|100      |78  |
 | 
						|
===============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([tt.c1], [tt.c2], [tt.c3]), filter(nil), 
 | 
						|
      access([tt.c1], [tt.c2], [tt.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([tt.c2], [tt.c3], [tt.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
<<<<<<< HEAD
 | 
						|
      NO_INDEX("opt"."tt" "PRIMARY")
 | 
						|
=======
 | 
						|
      NO_INDEX(@"SEL$1" "opt"."tt"@"SEL$1" "primary")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      INDEX(@"SEL$1" "opt"."tt"@"SEL$1" "idx_t4_c2_c3")
 | 
						|
<<<<<<< HEAD
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
LOCAL
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
tt:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,idx_t4_c3], pruned_index_name[idx_t4_c2,t4]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 25(end)  ************** 
 | 
						|
 | 
						|
***************   Case 26   ***************
 | 
						|
 | 
						|
SQL: select * from t4 tt ignore index(primary) ignore index(idx_t4_c2_); 
 | 
						|
 | 
						|
===============================================
 | 
						|
|ID|OPERATOR  |NAME            |EST. ROWS|COST|
 | 
						|
-----------------------------------------------
 | 
						|
|0 |TABLE SCAN|tt(idx_t4_c2_c3)|100      |78  |
 | 
						|
===============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([tt.c1], [tt.c2], [tt.c3]), filter(nil), 
 | 
						|
      access([tt.c1], [tt.c2], [tt.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([tt.c2], [tt.c3], [tt.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
<<<<<<< HEAD
 | 
						|
      NO_INDEX("opt"."tt" "PRIMARY")
 | 
						|
=======
 | 
						|
      NO_INDEX(@"SEL$1" "opt"."tt"@"SEL$1" "primary")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      INDEX(@"SEL$1" "opt"."tt"@"SEL$1" "idx_t4_c2_c3")
 | 
						|
<<<<<<< HEAD
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
LOCAL
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
tt:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,idx_t4_c3], pruned_index_name[idx_t4_c2,t4]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 26(end)  ************** 
 | 
						|
 | 
						|
***************   Case 27   ***************
 | 
						|
 | 
						|
SQL: select * from t4,t5; 
 | 
						|
 | 
						|
=======================================================
 | 
						|
|ID|OPERATOR                  |NAME    |EST. ROWS|COST|
 | 
						|
-------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN|        |30000    |3012|
 | 
						|
|1 | TABLE SCAN               |t4      |100      |78  |
 | 
						|
|2 | MATERIAL                 |        |300      |357 |
 | 
						|
|3 |  PX COORDINATOR          |        |300      |354 |
 | 
						|
|4 |   EXCHANGE OUT DISTR     |:EX10000|300      |314 |
 | 
						|
|5 |    PX PARTITION ITERATOR |        |300      |233 |
 | 
						|
|6 |     TABLE SCAN           |t5      |300      |233 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3], [t5.c1], [t5.c2], [t5.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
  2 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  3 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  4 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), dop=1
 | 
						|
  5 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  6 - 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
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      LEADING(@"SEL$1" ("opt"."t4"@"SEL$1" "opt"."t5"@"SEL$1"))
 | 
						|
      USE_NL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" "opt"."t5"@"SEL$1" LOCAL LOCAL)
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      LEADING(@"SEL$1" ("opt.t4"@"SEL$1" "opt.t5"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t5"@"SEL$1" ) LOCAL LOCAL)
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,idx_t4_c3,t4], pruned_index_name[idx_t4_c2]
 | 
						|
 | 
						|
t5:table_rows:300, physical_range_rows:300, logical_range_rows:300, index_back_rows:0, output_rows:300, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t5], pruned_index_name[idx_t5_c2,idx_t5_c3]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 27(end)  ************** 
 | 
						|
 | 
						|
***************   Case 28   ***************
 | 
						|
 | 
						|
SQL: select /*+leading(t4 t5) use_nl(t5)*/* from t4,t5; 
 | 
						|
 | 
						|
=======================================================
 | 
						|
|ID|OPERATOR                  |NAME    |EST. ROWS|COST|
 | 
						|
-------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN|        |30000    |3012|
 | 
						|
|1 | TABLE SCAN               |t4      |100      |78  |
 | 
						|
|2 | MATERIAL                 |        |300      |357 |
 | 
						|
|3 |  PX COORDINATOR          |        |300      |354 |
 | 
						|
|4 |   EXCHANGE OUT DISTR     |:EX10000|300      |314 |
 | 
						|
|5 |    PX PARTITION ITERATOR |        |300      |233 |
 | 
						|
|6 |     TABLE SCAN           |t5      |300      |233 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3], [t5.c1], [t5.c2], [t5.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
  2 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  3 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  4 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), dop=1
 | 
						|
  5 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  6 - 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
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      LEADING(("t4" "t5"))
 | 
						|
      USE_NL("t5")
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      LEADING(@"SEL$1" ("opt"."t4"@"SEL$1" "opt"."t5"@"SEL$1"))
 | 
						|
      USE_NL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" "opt"."t5"@"SEL$1" LOCAL LOCAL)
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      LEADING(@"SEL$1" ("opt.t4"@"SEL$1" "opt.t5"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t5"@"SEL$1" ) LOCAL LOCAL)
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,idx_t4_c3,t4], pruned_index_name[idx_t4_c2]
 | 
						|
 | 
						|
t5:table_rows:300, physical_range_rows:300, logical_range_rows:300, index_back_rows:0, output_rows:300, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t5], pruned_index_name[idx_t5_c2,idx_t5_c3]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 28(end)  ************** 
 | 
						|
 | 
						|
***************   Case 29   ***************
 | 
						|
 | 
						|
SQL: select /*+leading(tt4 tt5) use_nl(tt5)*/* from t4 tt4, t5 tt5; 
 | 
						|
 | 
						|
=======================================================
 | 
						|
|ID|OPERATOR                  |NAME    |EST. ROWS|COST|
 | 
						|
-------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN|        |30000    |3012|
 | 
						|
|1 | TABLE SCAN               |tt4     |100      |78  |
 | 
						|
|2 | MATERIAL                 |        |300      |357 |
 | 
						|
|3 |  PX COORDINATOR          |        |300      |354 |
 | 
						|
|4 |   EXCHANGE OUT DISTR     |:EX10000|300      |314 |
 | 
						|
|5 |    PX PARTITION ITERATOR |        |300      |233 |
 | 
						|
|6 |     TABLE SCAN           |tt5     |300      |233 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([tt4.c1], [tt4.c2], [tt4.c3], [tt5.c1], [tt5.c2], [tt5.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  1 - output([tt4.c1], [tt4.c2], [tt4.c3]), filter(nil), 
 | 
						|
      access([tt4.c1], [tt4.c2], [tt4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([tt4.c1], [tt4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
  2 - output([tt5.c1], [tt5.c2], [tt5.c3]), filter(nil)
 | 
						|
  3 - output([tt5.c1], [tt5.c2], [tt5.c3]), filter(nil)
 | 
						|
  4 - output([tt5.c1], [tt5.c2], [tt5.c3]), filter(nil), dop=1
 | 
						|
  5 - output([tt5.c2], [tt5.c3], [tt5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  6 - output([tt5.c2], [tt5.c3], [tt5.c1]), filter(nil), 
 | 
						|
      access([tt5.c2], [tt5.c3], [tt5.c1]), partitions(p[0-2]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([tt5.c2], [tt5.c3]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      LEADING(("tt4" "tt5"))
 | 
						|
      USE_NL("tt5")
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      LEADING(@"SEL$1" ("opt"."tt4"@"SEL$1" "opt"."tt5"@"SEL$1"))
 | 
						|
      USE_NL(@"SEL$1" "opt"."tt5"@"SEL$1")
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" "opt"."tt5"@"SEL$1" LOCAL LOCAL)
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" "opt"."tt5"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."tt4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."tt5"@"SEL$1")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      LEADING(@"SEL$1" ("opt.tt4"@"SEL$1" "opt.tt5"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.tt5"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.tt5"@"SEL$1" ) LOCAL LOCAL)
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.tt5"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt"."tt4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."tt5"@"SEL$1")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
tt4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,idx_t4_c3,t4], pruned_index_name[idx_t4_c2]
 | 
						|
 | 
						|
tt5:table_rows:300, physical_range_rows:300, logical_range_rows:300, index_back_rows:0, output_rows:300, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t5], pruned_index_name[idx_t5_c2,idx_t5_c3]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 29(end)  ************** 
 | 
						|
 | 
						|
***************   Case 30   ***************
 | 
						|
 | 
						|
SQL: select /*+leading (t4 t5) use_nl(t5) use_nl(t5) use_nl(t5)*/* from t4,t5; 
 | 
						|
 | 
						|
=======================================================
 | 
						|
|ID|OPERATOR                  |NAME    |EST. ROWS|COST|
 | 
						|
-------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN|        |30000    |3012|
 | 
						|
|1 | TABLE SCAN               |t4      |100      |78  |
 | 
						|
|2 | MATERIAL                 |        |300      |357 |
 | 
						|
|3 |  PX COORDINATOR          |        |300      |354 |
 | 
						|
|4 |   EXCHANGE OUT DISTR     |:EX10000|300      |314 |
 | 
						|
|5 |    PX PARTITION ITERATOR |        |300      |233 |
 | 
						|
|6 |     TABLE SCAN           |t5      |300      |233 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3], [t5.c1], [t5.c2], [t5.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
  2 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  3 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  4 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), dop=1
 | 
						|
  5 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  6 - 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
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      LEADING(("t4" "t5"))
 | 
						|
      USE_NL("t5")
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      LEADING(@"SEL$1" ("opt"."t4"@"SEL$1" "opt"."t5"@"SEL$1"))
 | 
						|
      USE_NL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" "opt"."t5"@"SEL$1" LOCAL LOCAL)
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      LEADING(@"SEL$1" ("opt.t4"@"SEL$1" "opt.t5"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t5"@"SEL$1" ) LOCAL LOCAL)
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,idx_t4_c3,t4], pruned_index_name[idx_t4_c2]
 | 
						|
 | 
						|
t5:table_rows:300, physical_range_rows:300, logical_range_rows:300, index_back_rows:0, output_rows:300, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t5], pruned_index_name[idx_t5_c2,idx_t5_c3]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 30(end)  ************** 
 | 
						|
 | 
						|
***************   Case 31   ***************
 | 
						|
 | 
						|
SQL: select /*+use_nl(t4) use_nl(t5)*/* from t4,t5; 
 | 
						|
 | 
						|
=======================================================
 | 
						|
|ID|OPERATOR                  |NAME    |EST. ROWS|COST|
 | 
						|
-------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN|        |30000    |3012|
 | 
						|
|1 | TABLE SCAN               |t4      |100      |78  |
 | 
						|
|2 | MATERIAL                 |        |300      |357 |
 | 
						|
|3 |  PX COORDINATOR          |        |300      |354 |
 | 
						|
|4 |   EXCHANGE OUT DISTR     |:EX10000|300      |314 |
 | 
						|
|5 |    PX PARTITION ITERATOR |        |300      |233 |
 | 
						|
|6 |     TABLE SCAN           |t5      |300      |233 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3], [t5.c1], [t5.c2], [t5.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
  2 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  3 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  4 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), dop=1
 | 
						|
  5 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  6 - 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
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      USE_NL("t5")
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      LEADING(@"SEL$1" ("opt"."t4"@"SEL$1" "opt"."t5"@"SEL$1"))
 | 
						|
      USE_NL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" "opt"."t5"@"SEL$1" LOCAL LOCAL)
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      LEADING(@"SEL$1" ("opt.t4"@"SEL$1" "opt.t5"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t5"@"SEL$1" ) LOCAL LOCAL)
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,idx_t4_c3,t4], pruned_index_name[idx_t4_c2]
 | 
						|
 | 
						|
t5:table_rows:300, physical_range_rows:300, logical_range_rows:300, index_back_rows:0, output_rows:300, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t5], pruned_index_name[idx_t5_c2,idx_t5_c3]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 31(end)  ************** 
 | 
						|
 | 
						|
***************   Case 32   ***************
 | 
						|
 | 
						|
SQL: select /*+leading (t4 t5) use_nl(t5)*/* from t4 left join t5 on t4.c1 = t5.c1; 
 | 
						|
 | 
						|
======================================================
 | 
						|
|ID|OPERATOR                 |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP OUTER JOIN   |        |244      |1251|
 | 
						|
|1 | TABLE SCAN              |t4      |100      |78  |
 | 
						|
|2 | MATERIAL                |        |300      |357 |
 | 
						|
|3 |  PX COORDINATOR         |        |300      |354 |
 | 
						|
|4 |   EXCHANGE OUT DISTR    |:EX10000|300      |314 |
 | 
						|
|5 |    PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|6 |     TABLE SCAN          |t5      |300      |233 |
 | 
						|
======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3], [t5.c1], [t5.c2], [t5.c3]), filter(nil), 
 | 
						|
      conds([t4.c1 = t5.c1]), nl_params_(nil), batch_join=false
 | 
						|
  1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
  2 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  3 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  4 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), dop=1
 | 
						|
  5 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  6 - 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
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      LEADING(("t4" "t5"))
 | 
						|
      USE_NL("t5")
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      LEADING(@"SEL$1" ("opt"."t4"@"SEL$1" "opt"."t5"@"SEL$1"))
 | 
						|
      USE_NL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" "opt"."t5"@"SEL$1" LOCAL LOCAL)
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      LEADING(@"SEL$1" ("opt.t4"@"SEL$1" "opt.t5"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t5"@"SEL$1" ) LOCAL LOCAL)
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[t4], pruned_index_name[idx_t4_c2_c3,idx_t4_c3,idx_t4_c2]
 | 
						|
 | 
						|
t5:table_rows:300, physical_range_rows:300, logical_range_rows:300, index_back_rows:0, output_rows:300, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t5], pruned_index_name[idx_t5_c2,idx_t5_c3]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 32(end)  ************** 
 | 
						|
 | 
						|
***************   Case 33   ***************
 | 
						|
 | 
						|
SQL: select /*+leading (t5 t4) use_nl(t5)*/* from t4 left join t5 on t4.c1 = t5.c1; 
 | 
						|
 | 
						|
=====================================================
 | 
						|
|ID|OPERATOR                |NAME    |EST. ROWS|COST|
 | 
						|
-----------------------------------------------------
 | 
						|
|0 |HASH RIGHT OUTER JOIN   |        |244      |530 |
 | 
						|
|1 | PX COORDINATOR         |        |300      |354 |
 | 
						|
|2 |  EXCHANGE OUT DISTR    |:EX10000|300      |314 |
 | 
						|
|3 |   PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|4 |    TABLE SCAN          |t5      |300      |233 |
 | 
						|
|5 | TABLE SCAN             |t4      |100      |78  |
 | 
						|
=====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3], [t5.c1], [t5.c2], [t5.c3]), filter(nil), 
 | 
						|
      equal_conds([t4.c1 = t5.c1]), other_conds(nil)
 | 
						|
  1 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  2 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), dop=1
 | 
						|
  3 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  4 - 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
 | 
						|
  5 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      LEADING(("t5" "t4"))
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      LEADING(@"SEL$1" ("opt"."t5"@"SEL$1" "opt"."t4"@"SEL$1"))
 | 
						|
      USE_HASH(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" "opt"."t4"@"SEL$1" LOCAL LOCAL)
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      LEADING(@"SEL$1" ("opt.t5"@"SEL$1" "opt.t4"@"SEL$1" ))
 | 
						|
      USE_HASH(@"SEL$1" ("opt.t4"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t4"@"SEL$1" ) LOCAL LOCAL)
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t5:table_rows:300, physical_range_rows:300, logical_range_rows:300, index_back_rows:0, output_rows:300, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t5], pruned_index_name[idx_t5_c2,idx_t5_c3]
 | 
						|
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[t4], pruned_index_name[idx_t4_c2_c3,idx_t4_c3,idx_t4_c2]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 33(end)  ************** 
 | 
						|
 | 
						|
***************   Case 34   ***************
 | 
						|
 | 
						|
SQL: select /*+leading (t4 t5) use_nl(t5)*/* from t4 right join t5 on t4.c1 = t5.c1; 
 | 
						|
 | 
						|
=====================================================
 | 
						|
|ID|OPERATOR                |NAME    |EST. ROWS|COST|
 | 
						|
-----------------------------------------------------
 | 
						|
|0 |HASH RIGHT OUTER JOIN   |        |300      |528 |
 | 
						|
|1 | TABLE SCAN             |t4      |100      |78  |
 | 
						|
|2 | PX COORDINATOR         |        |300      |354 |
 | 
						|
|3 |  EXCHANGE OUT DISTR    |:EX10000|300      |314 |
 | 
						|
|4 |   PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|5 |    TABLE SCAN          |t5      |300      |233 |
 | 
						|
=====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3], [t5.c1], [t5.c2], [t5.c3]), filter(nil), 
 | 
						|
      equal_conds([t4.c1 = t5.c1]), other_conds(nil)
 | 
						|
  1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
  2 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  3 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), dop=1
 | 
						|
  4 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  5 - 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
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      LEADING(("t4" "t5"))
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      LEADING(@"SEL$1" ("opt"."t4"@"SEL$1" "opt"."t5"@"SEL$1"))
 | 
						|
      USE_HASH(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" "opt"."t5"@"SEL$1" LOCAL LOCAL)
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      LEADING(@"SEL$1" ("opt.t4"@"SEL$1" "opt.t5"@"SEL$1" ))
 | 
						|
      USE_HASH(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t5"@"SEL$1" ) LOCAL LOCAL)
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[t4], pruned_index_name[idx_t4_c2_c3,idx_t4_c3,idx_t4_c2]
 | 
						|
 | 
						|
t5:table_rows:300, physical_range_rows:300, logical_range_rows:300, index_back_rows:0, output_rows:300, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t5], pruned_index_name[idx_t5_c2,idx_t5_c3]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 34(end)  ************** 
 | 
						|
 | 
						|
***************   Case 35   ***************
 | 
						|
 | 
						|
SQL: select /*+leading (t5 t4) use_nl(t5)*/* from t4 right join t5 on t4.c1 = t5.c1; 
 | 
						|
 | 
						|
=====================================================
 | 
						|
|ID|OPERATOR                |NAME    |EST. ROWS|COST|
 | 
						|
-----------------------------------------------------
 | 
						|
|0 |HASH OUTER JOIN         |        |300      |530 |
 | 
						|
|1 | PX COORDINATOR         |        |300      |354 |
 | 
						|
|2 |  EXCHANGE OUT DISTR    |:EX10000|300      |314 |
 | 
						|
|3 |   PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|4 |    TABLE SCAN          |t5      |300      |233 |
 | 
						|
|5 | TABLE SCAN             |t4      |100      |78  |
 | 
						|
=====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3], [t5.c1], [t5.c2], [t5.c3]), filter(nil), 
 | 
						|
      equal_conds([t4.c1 = t5.c1]), other_conds(nil)
 | 
						|
  1 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  2 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), dop=1
 | 
						|
  3 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  4 - 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
 | 
						|
  5 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      LEADING(("t5" "t4"))
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      LEADING(@"SEL$1" ("opt"."t5"@"SEL$1" "opt"."t4"@"SEL$1"))
 | 
						|
      USE_HASH(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" "opt"."t4"@"SEL$1" LOCAL LOCAL)
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      LEADING(@"SEL$1" ("opt.t5"@"SEL$1" "opt.t4"@"SEL$1" ))
 | 
						|
      USE_HASH(@"SEL$1" ("opt.t4"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t4"@"SEL$1" ) LOCAL LOCAL)
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t5:table_rows:300, physical_range_rows:300, logical_range_rows:300, index_back_rows:0, output_rows:300, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t5], pruned_index_name[idx_t5_c2,idx_t5_c3]
 | 
						|
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[t4], pruned_index_name[idx_t4_c2_c3,idx_t4_c3,idx_t4_c2]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 35(end)  ************** 
 | 
						|
 | 
						|
***************   Case 36   ***************
 | 
						|
 | 
						|
SQL: select /*+leading (t4 t5) use_nl(t5)*/* from t4 full join t5 on t4.c1 = t5.c1; 
 | 
						|
 | 
						|
=====================================================
 | 
						|
|ID|OPERATOR                |NAME    |EST. ROWS|COST|
 | 
						|
-----------------------------------------------------
 | 
						|
|0 |HASH FULL OUTER JOIN    |        |300      |528 |
 | 
						|
|1 | TABLE SCAN             |t4      |100      |78  |
 | 
						|
|2 | PX COORDINATOR         |        |300      |354 |
 | 
						|
|3 |  EXCHANGE OUT DISTR    |:EX10000|300      |314 |
 | 
						|
|4 |   PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|5 |    TABLE SCAN          |t5      |300      |233 |
 | 
						|
=====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3], [t5.c1], [t5.c2], [t5.c3]), filter(nil), 
 | 
						|
      equal_conds([t4.c1 = t5.c1]), other_conds(nil)
 | 
						|
  1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
  2 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  3 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), dop=1
 | 
						|
  4 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  5 - 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
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      LEADING(("t4" "t5"))
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      LEADING(@"SEL$1" ("opt"."t4"@"SEL$1" "opt"."t5"@"SEL$1"))
 | 
						|
      USE_HASH(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" "opt"."t5"@"SEL$1" LOCAL LOCAL)
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      LEADING(@"SEL$1" ("opt.t4"@"SEL$1" "opt.t5"@"SEL$1" ))
 | 
						|
      USE_HASH(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t5"@"SEL$1" ) LOCAL LOCAL)
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[t4], pruned_index_name[idx_t4_c2_c3,idx_t4_c3,idx_t4_c2]
 | 
						|
 | 
						|
t5:table_rows:300, physical_range_rows:300, logical_range_rows:300, index_back_rows:0, output_rows:300, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t5], pruned_index_name[idx_t5_c2,idx_t5_c3]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 36(end)  ************** 
 | 
						|
 | 
						|
***************   Case 37   ***************
 | 
						|
 | 
						|
SQL: select /*+leading (t5 t4) use_nl(t5)*/* from t4 full join t5 on t4.c1 = t5.c1; 
 | 
						|
 | 
						|
=====================================================
 | 
						|
|ID|OPERATOR                |NAME    |EST. ROWS|COST|
 | 
						|
-----------------------------------------------------
 | 
						|
|0 |HASH FULL OUTER JOIN    |        |300      |530 |
 | 
						|
|1 | PX COORDINATOR         |        |300      |354 |
 | 
						|
|2 |  EXCHANGE OUT DISTR    |:EX10000|300      |314 |
 | 
						|
|3 |   PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|4 |    TABLE SCAN          |t5      |300      |233 |
 | 
						|
|5 | TABLE SCAN             |t4      |100      |78  |
 | 
						|
=====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3], [t5.c1], [t5.c2], [t5.c3]), filter(nil), 
 | 
						|
      equal_conds([t4.c1 = t5.c1]), other_conds(nil)
 | 
						|
  1 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  2 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), dop=1
 | 
						|
  3 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  4 - 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
 | 
						|
  5 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      LEADING(("t5" "t4"))
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      LEADING(@"SEL$1" ("opt"."t5"@"SEL$1" "opt"."t4"@"SEL$1"))
 | 
						|
      USE_HASH(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" "opt"."t4"@"SEL$1" LOCAL LOCAL)
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      LEADING(@"SEL$1" ("opt.t5"@"SEL$1" "opt.t4"@"SEL$1" ))
 | 
						|
      USE_HASH(@"SEL$1" ("opt.t4"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t4"@"SEL$1" ) LOCAL LOCAL)
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t5:table_rows:300, physical_range_rows:300, logical_range_rows:300, index_back_rows:0, output_rows:300, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t5], pruned_index_name[idx_t5_c2,idx_t5_c3]
 | 
						|
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[t4], pruned_index_name[idx_t4_c2_c3,idx_t4_c3,idx_t4_c2]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 37(end)  ************** 
 | 
						|
 | 
						|
***************   Case 38   ***************
 | 
						|
 | 
						|
SQL: select /*+leading (t4 t5) use_merge(t5)*/* from t4 left join t5 on t4.c1 = t5.c1; 
 | 
						|
 | 
						|
========================================================
 | 
						|
|ID|OPERATOR                   |NAME    |EST. ROWS|COST|
 | 
						|
--------------------------------------------------------
 | 
						|
|0 |MERGE OUTER JOIN           |        |244      |704 |
 | 
						|
|1 | TABLE SCAN                |t4      |100      |78  |
 | 
						|
|2 | PX COORDINATOR MERGE SORT |        |300      |559 |
 | 
						|
|3 |  EXCHANGE OUT DISTR       |:EX10000|300      |520 |
 | 
						|
|4 |   SORT                    |        |300      |438 |
 | 
						|
|5 |    PX PARTITION ITERATOR  |        |300      |233 |
 | 
						|
|6 |     TABLE SCAN            |t5      |300      |233 |
 | 
						|
========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3], [t5.c1], [t5.c2], [t5.c3]), filter(nil), 
 | 
						|
      equal_conds([t4.c1 = t5.c1]), other_conds(nil), 
 | 
						|
      merge_directions([ASC])
 | 
						|
  1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
  2 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), sort_keys([t5.c1, ASC])
 | 
						|
  3 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), dop=1
 | 
						|
  4 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), sort_keys([t5.c1, ASC])
 | 
						|
  5 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  6 - 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
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      LEADING(("t4" "t5"))
 | 
						|
      USE_MERGE("t5")
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      LEADING(@"SEL$1" ("opt"."t4"@"SEL$1" "opt"."t5"@"SEL$1"))
 | 
						|
      USE_MERGE(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" "opt"."t5"@"SEL$1" LOCAL LOCAL)
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      LEADING(@"SEL$1" ("opt.t4"@"SEL$1" "opt.t5"@"SEL$1" ))
 | 
						|
      USE_MERGE(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t5"@"SEL$1" ) LOCAL LOCAL)
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[t4], pruned_index_name[idx_t4_c2_c3,idx_t4_c3,idx_t4_c2]
 | 
						|
 | 
						|
t5:table_rows:300, physical_range_rows:300, logical_range_rows:300, index_back_rows:0, output_rows:300, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t5], pruned_index_name[idx_t5_c2,idx_t5_c3]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 38(end)  ************** 
 | 
						|
 | 
						|
***************   Case 39   ***************
 | 
						|
 | 
						|
SQL: select /*+leading (t4 t5) use_merge(t5)*/* from t4 right join t5 on t4.c1 = t5.c1; 
 | 
						|
 | 
						|
========================================================
 | 
						|
|ID|OPERATOR                   |NAME    |EST. ROWS|COST|
 | 
						|
--------------------------------------------------------
 | 
						|
|0 |MERGE RIGHT OUTER JOIN     |        |300      |704 |
 | 
						|
|1 | TABLE SCAN                |t4      |100      |78  |
 | 
						|
|2 | PX COORDINATOR MERGE SORT |        |300      |559 |
 | 
						|
|3 |  EXCHANGE OUT DISTR       |:EX10000|300      |520 |
 | 
						|
|4 |   SORT                    |        |300      |438 |
 | 
						|
|5 |    PX PARTITION ITERATOR  |        |300      |233 |
 | 
						|
|6 |     TABLE SCAN            |t5      |300      |233 |
 | 
						|
========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3], [t5.c1], [t5.c2], [t5.c3]), filter(nil), 
 | 
						|
      equal_conds([t4.c1 = t5.c1]), other_conds(nil), 
 | 
						|
      merge_directions([ASC])
 | 
						|
  1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
  2 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), sort_keys([t5.c1, ASC])
 | 
						|
  3 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), dop=1
 | 
						|
  4 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), sort_keys([t5.c1, ASC])
 | 
						|
  5 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  6 - 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
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      LEADING(("t4" "t5"))
 | 
						|
      USE_MERGE("t5")
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      LEADING(@"SEL$1" ("opt"."t4"@"SEL$1" "opt"."t5"@"SEL$1"))
 | 
						|
      USE_MERGE(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" "opt"."t5"@"SEL$1" LOCAL LOCAL)
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      LEADING(@"SEL$1" ("opt.t4"@"SEL$1" "opt.t5"@"SEL$1" ))
 | 
						|
      USE_MERGE(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t5"@"SEL$1" ) LOCAL LOCAL)
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[t4], pruned_index_name[idx_t4_c2_c3,idx_t4_c3,idx_t4_c2]
 | 
						|
 | 
						|
t5:table_rows:300, physical_range_rows:300, logical_range_rows:300, index_back_rows:0, output_rows:300, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t5], pruned_index_name[idx_t5_c2,idx_t5_c3]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 39(end)  ************** 
 | 
						|
 | 
						|
***************   Case 40   ***************
 | 
						|
 | 
						|
SQL: select /*+leading (t4 t5) use_merge(t5)*/* from t4 full join t5 on t4.c1 = t5.c1; 
 | 
						|
 | 
						|
========================================================
 | 
						|
|ID|OPERATOR                   |NAME    |EST. ROWS|COST|
 | 
						|
--------------------------------------------------------
 | 
						|
|0 |MERGE FULL OUTER JOIN      |        |300      |704 |
 | 
						|
|1 | TABLE SCAN                |t4      |100      |78  |
 | 
						|
|2 | PX COORDINATOR MERGE SORT |        |300      |559 |
 | 
						|
|3 |  EXCHANGE OUT DISTR       |:EX10000|300      |520 |
 | 
						|
|4 |   SORT                    |        |300      |438 |
 | 
						|
|5 |    PX PARTITION ITERATOR  |        |300      |233 |
 | 
						|
|6 |     TABLE SCAN            |t5      |300      |233 |
 | 
						|
========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3], [t5.c1], [t5.c2], [t5.c3]), filter(nil), 
 | 
						|
      equal_conds([t4.c1 = t5.c1]), other_conds(nil), 
 | 
						|
      merge_directions([ASC])
 | 
						|
  1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
  2 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), sort_keys([t5.c1, ASC])
 | 
						|
  3 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), dop=1
 | 
						|
  4 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), sort_keys([t5.c1, ASC])
 | 
						|
  5 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  6 - 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
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      LEADING(("t4" "t5"))
 | 
						|
      USE_MERGE("t5")
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      LEADING(@"SEL$1" ("opt"."t4"@"SEL$1" "opt"."t5"@"SEL$1"))
 | 
						|
      USE_MERGE(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" "opt"."t5"@"SEL$1" LOCAL LOCAL)
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      LEADING(@"SEL$1" ("opt.t4"@"SEL$1" "opt.t5"@"SEL$1" ))
 | 
						|
      USE_MERGE(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t5"@"SEL$1" ) LOCAL LOCAL)
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[t4], pruned_index_name[idx_t4_c2_c3,idx_t4_c3,idx_t4_c2]
 | 
						|
 | 
						|
t5:table_rows:300, physical_range_rows:300, logical_range_rows:300, index_back_rows:0, output_rows:300, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t5], pruned_index_name[idx_t5_c2,idx_t5_c3]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 40(end)  ************** 
 | 
						|
 | 
						|
***************   Case 41   ***************
 | 
						|
 | 
						|
SQL: select /*+leading(tt t5) use_nl(t5)*/* from (select max(c1) from t1) tt, t5; 
 | 
						|
 | 
						|
===============================================================
 | 
						|
|ID|OPERATOR                       |NAME       |EST. ROWS|COST|
 | 
						|
---------------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN     |           |300      |498 |
 | 
						|
|1 | SUBPLAN SCAN                  |tt         |1        |228 |
 | 
						|
|2 |  SCALAR GROUP BY              |           |1        |228 |
 | 
						|
|3 |   SUBPLAN SCAN                |VIEW1      |1        |228 |
 | 
						|
|4 |    LIMIT                      |           |1        |228 |
 | 
						|
|5 |     PX COORDINATOR MERGE SORT |           |1        |228 |
 | 
						|
|6 |      EXCHANGE OUT DISTR       |:EX10000   |1        |228 |
 | 
						|
|7 |       TOP-N SORT              |           |1        |227 |
 | 
						|
|8 |        PX PARTITION ITERATOR  |           |1        |227 |
 | 
						|
|9 |         TABLE SCAN            |t1(Reverse)|1        |227 |
 | 
						|
|10| PX COORDINATOR                |           |300      |354 |
 | 
						|
|11|  EXCHANGE OUT DISTR           |:EX20000   |300      |314 |
 | 
						|
|12|   PX PARTITION ITERATOR       |           |300      |233 |
 | 
						|
|13|    TABLE SCAN                 |t5         |300      |233 |
 | 
						|
===============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([tt.max(c1)], [t5.c1], [t5.c2], [t5.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  1 - output([tt.max(c1)]), filter(nil), 
 | 
						|
      access([tt.max(c1)])
 | 
						|
  2 - output([T_FUN_MAX(VIEW1.t1.c1)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_MAX(VIEW1.t1.c1)])
 | 
						|
  3 - output([VIEW1.t1.c1]), filter(nil), 
 | 
						|
      access([VIEW1.t1.c1])
 | 
						|
  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]), topn(1), local merge sort
 | 
						|
  8 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  9 - 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.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  11 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), dop=1
 | 
						|
  12 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  13 - 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
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      LEADING(("tt" "t5"))
 | 
						|
      USE_NL("t5")
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      LEADING(@"SEL$1" ("tt"@"SEL$1" "opt"."t5"@"SEL$1"))
 | 
						|
      USE_NL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" "opt"."t5"@"SEL$1" LOCAL LOCAL)
 | 
						|
      FULL(@"SEL$7E047C3E" "opt"."t1"@"SEL$2")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      FAST_MINMAX(@"SEL$2")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      LEADING(@"SEL$1" ("tt"@"SEL$1" "opt.t5"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t5"@"SEL$1" ) LOCAL LOCAL)
 | 
						|
      NO_USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$3" "opt"."t1"@"SEL$3")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t1:table_rows:500, physical_range_rows:500, logical_range_rows:500, index_back_rows:0, output_rows:500, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t1], pruned_index_name[idx_t1_c2]
 | 
						|
 | 
						|
t5:table_rows:300, physical_range_rows:300, logical_range_rows:300, index_back_rows:0, output_rows:300, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t5], pruned_index_name[idx_t5_c2,idx_t5_c3]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 41(end)  ************** 
 | 
						|
 | 
						|
***************   Case 42   ***************
 | 
						|
 | 
						|
SQL: select /*+leading(t5 tt) use_nl(tt)*/* from (select max(c1) from t1) tt, t5; 
 | 
						|
 | 
						|
================================================================
 | 
						|
|ID|OPERATOR                        |NAME       |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN      |           |300      |664 |
 | 
						|
|1 | PX COORDINATOR                 |           |300      |354 |
 | 
						|
|2 |  EXCHANGE OUT DISTR            |:EX10000   |300      |314 |
 | 
						|
|3 |   PX PARTITION ITERATOR        |           |300      |233 |
 | 
						|
|4 |    TABLE SCAN                  |t5         |300      |233 |
 | 
						|
|5 | MATERIAL                       |           |1        |228 |
 | 
						|
|6 |  SUBPLAN SCAN                  |tt         |1        |228 |
 | 
						|
|7 |   SCALAR GROUP BY              |           |1        |228 |
 | 
						|
|8 |    SUBPLAN SCAN                |VIEW1      |1        |228 |
 | 
						|
|9 |     LIMIT                      |           |1        |228 |
 | 
						|
|10|      PX COORDINATOR MERGE SORT |           |1        |228 |
 | 
						|
|11|       EXCHANGE OUT DISTR       |:EX20000   |1        |228 |
 | 
						|
|12|        TOP-N SORT              |           |1        |227 |
 | 
						|
|13|         PX PARTITION ITERATOR  |           |1        |227 |
 | 
						|
|14|          TABLE SCAN            |t1(Reverse)|1        |227 |
 | 
						|
================================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([tt.max(c1)], [t5.c1], [t5.c2], [t5.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  1 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  2 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), dop=1
 | 
						|
  3 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  4 - 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
 | 
						|
  5 - output([tt.max(c1)]), filter(nil)
 | 
						|
  6 - output([tt.max(c1)]), filter(nil), 
 | 
						|
      access([tt.max(c1)])
 | 
						|
  7 - output([T_FUN_MAX(VIEW1.t1.c1)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_MAX(VIEW1.t1.c1)])
 | 
						|
  8 - output([VIEW1.t1.c1]), filter(nil), 
 | 
						|
      access([VIEW1.t1.c1])
 | 
						|
  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]), topn(1), local merge sort
 | 
						|
  13 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  14 - 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
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      LEADING(("t5" "tt"))
 | 
						|
      USE_NL("tt")
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      LEADING(@"SEL$1" ("opt"."t5"@"SEL$1" "tt"@"SEL$1"))
 | 
						|
      USE_NL(@"SEL$1" "tt"@"SEL$1")
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" "tt"@"SEL$1" LOCAL LOCAL)
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" "tt"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      FULL(@"SEL$7E047C3E" "opt"."t1"@"SEL$2")
 | 
						|
      FAST_MINMAX(@"SEL$2")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      LEADING(@"SEL$1" ("opt.t5"@"SEL$1" "tt"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("tt"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("tt"@"SEL$1" ) LOCAL LOCAL)
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("tt"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      FULL(@"SEL$3" "opt"."t1"@"SEL$3")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t5:table_rows:300, physical_range_rows:300, logical_range_rows:300, index_back_rows:0, output_rows:300, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t5], pruned_index_name[idx_t5_c2,idx_t5_c3]
 | 
						|
 | 
						|
t1:table_rows:500, physical_range_rows:500, logical_range_rows:500, index_back_rows:0, output_rows:500, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t1], pruned_index_name[idx_t1_c2]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 42(end)  ************** 
 | 
						|
 | 
						|
***************   Case 43   ***************
 | 
						|
 | 
						|
SQL: select /*+leading(t4 t5) use_bnl(t5)*/* from t4,t5; 
 | 
						|
 | 
						|
=======================================================
 | 
						|
|ID|OPERATOR                  |NAME    |EST. ROWS|COST|
 | 
						|
-------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN|        |30000    |3012|
 | 
						|
|1 | TABLE SCAN               |t4      |100      |78  |
 | 
						|
|2 | MATERIAL                 |        |300      |357 |
 | 
						|
|3 |  PX COORDINATOR          |        |300      |354 |
 | 
						|
|4 |   EXCHANGE OUT DISTR     |:EX10000|300      |314 |
 | 
						|
|5 |    PX PARTITION ITERATOR |        |300      |233 |
 | 
						|
|6 |     TABLE SCAN           |t5      |300      |233 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3], [t5.c1], [t5.c2], [t5.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
  2 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  3 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  4 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), dop=1
 | 
						|
  5 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  6 - 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
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      LEADING(("t4" "t5"))
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      LEADING(@"SEL$1" ("opt"."t4"@"SEL$1" "opt"."t5"@"SEL$1"))
 | 
						|
      USE_NL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" "opt"."t5"@"SEL$1" LOCAL LOCAL)
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      LEADING(@"SEL$1" ("opt.t4"@"SEL$1" "opt.t5"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t5"@"SEL$1" ) LOCAL LOCAL)
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,idx_t4_c3,t4], pruned_index_name[idx_t4_c2]
 | 
						|
 | 
						|
t5:table_rows:300, physical_range_rows:300, logical_range_rows:300, index_back_rows:0, output_rows:300, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t5], pruned_index_name[idx_t5_c2,idx_t5_c3]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 43(end)  ************** 
 | 
						|
 | 
						|
***************   Case 44   ***************
 | 
						|
 | 
						|
SQL: select /*+leading(t4 t5) use_bnl(t5)*/* from t4,t5; 
 | 
						|
 | 
						|
=======================================================
 | 
						|
|ID|OPERATOR                  |NAME    |EST. ROWS|COST|
 | 
						|
-------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN|        |30000    |3012|
 | 
						|
|1 | TABLE SCAN               |t4      |100      |78  |
 | 
						|
|2 | MATERIAL                 |        |300      |357 |
 | 
						|
|3 |  PX COORDINATOR          |        |300      |354 |
 | 
						|
|4 |   EXCHANGE OUT DISTR     |:EX10000|300      |314 |
 | 
						|
|5 |    PX PARTITION ITERATOR |        |300      |233 |
 | 
						|
|6 |     TABLE SCAN           |t5      |300      |233 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3], [t5.c1], [t5.c2], [t5.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
  2 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  3 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  4 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), dop=1
 | 
						|
  5 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  6 - 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
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      LEADING(("t4" "t5"))
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      LEADING(@"SEL$1" ("opt"."t4"@"SEL$1" "opt"."t5"@"SEL$1"))
 | 
						|
      USE_NL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" "opt"."t5"@"SEL$1" LOCAL LOCAL)
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      LEADING(@"SEL$1" ("opt.t4"@"SEL$1" "opt.t5"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t5"@"SEL$1" ) LOCAL LOCAL)
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,idx_t4_c3,t4], pruned_index_name[idx_t4_c2]
 | 
						|
 | 
						|
t5:table_rows:300, physical_range_rows:300, logical_range_rows:300, index_back_rows:0, output_rows:300, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t5], pruned_index_name[idx_t5_c2,idx_t5_c3]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 44(end)  ************** 
 | 
						|
 | 
						|
***************   Case 45   ***************
 | 
						|
 | 
						|
SQL: select /*+leading(tt t5) use_nl(t5)*/* from (select /*+leading(t4 t7) use_nl(t7)*/max(t4.c1) from t4,t7) tt, t5; 
 | 
						|
 | 
						|
==========================================================
 | 
						|
|ID|OPERATOR                     |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN   |        |300      |3360|
 | 
						|
|1 | SUBPLAN SCAN                |tt      |1        |3090|
 | 
						|
|2 |  SCALAR GROUP BY            |        |1        |3090|
 | 
						|
|3 |   NESTED-LOOP JOIN CARTESIAN|        |10000    |2736|
 | 
						|
|4 |    TABLE SCAN               |t4      |100      |78  |
 | 
						|
|5 |    MATERIAL                 |        |100      |78  |
 | 
						|
|6 |     TABLE SCAN              |t7      |100      |78  |
 | 
						|
|7 | PX COORDINATOR              |        |300      |354 |
 | 
						|
|8 |  EXCHANGE OUT DISTR         |:EX10000|300      |314 |
 | 
						|
|9 |   PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|10|    TABLE SCAN               |t5      |300      |233 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([tt.max(t4.c1)], [t5.c1], [t5.c2], [t5.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  1 - output([tt.max(t4.c1)]), filter(nil), 
 | 
						|
      access([tt.max(t4.c1)])
 | 
						|
  2 - output([T_FUN_MAX(t4.c1)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_MAX(t4.c1)])
 | 
						|
  3 - output([t4.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  4 - output([t4.c1]), filter(nil), 
 | 
						|
      access([t4.c1]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
  5 - output(nil), filter(nil)
 | 
						|
  6 - output(nil), filter(nil), 
 | 
						|
      access([t7.c1]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t7.c1]), range(MIN ; MAX)always true
 | 
						|
  7 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  8 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), dop=1
 | 
						|
  9 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  10 - 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
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      LEADING(("tt" "t5"))
 | 
						|
      USE_NL("t5")
 | 
						|
      LEADING(("t4" "t7"))
 | 
						|
      USE_NL("t7")
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      LEADING(@"SEL$1" ("tt"@"SEL$1" "opt"."t5"@"SEL$1"))
 | 
						|
      USE_NL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" "opt"."t5"@"SEL$1" LOCAL LOCAL)
 | 
						|
      LEADING(@"SEL$2" ("opt"."t4"@"SEL$2" "opt"."t7"@"SEL$2"))
 | 
						|
      USE_NL(@"SEL$2" "opt"."t7"@"SEL$2")
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$2" "opt"."t7"@"SEL$2")
 | 
						|
      FULL(@"SEL$2" "opt"."t4"@"SEL$2")
 | 
						|
      FULL(@"SEL$2" "opt"."t7"@"SEL$2")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      LEADING(@"SEL$1" ("tt"@"SEL$1" "opt.t5"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t5"@"SEL$1" ) LOCAL LOCAL)
 | 
						|
      NO_USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      LEADING(@"SEL$2" ("opt.t4"@"SEL$2" "opt.t7"@"SEL$2" ))
 | 
						|
      USE_NL(@"SEL$2" ("opt.t7"@"SEL$2" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$2" ("opt.t7"@"SEL$2" ) LOCAL LOCAL)
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$2" ("opt.t7"@"SEL$2" ))
 | 
						|
      INDEX(@"SEL$2" "opt"."t4"@"SEL$2" "idx_t4_c2")
 | 
						|
      FULL(@"SEL$2" "opt"."t7"@"SEL$2")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,idx_t4_c3,idx_t4_c2,t4]
 | 
						|
 | 
						|
t7:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[t7]
 | 
						|
 | 
						|
t5:table_rows:300, physical_range_rows:300, logical_range_rows:300, index_back_rows:0, output_rows:300, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t5], pruned_index_name[idx_t5_c2,idx_t5_c3]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 45(end)  ************** 
 | 
						|
 | 
						|
***************   Case 46   ***************
 | 
						|
 | 
						|
SQL: select /*+leading(t5 tt) use_nl(tt)*/* from (select /*+leading(t7 t4) use_nl(t4)*/max(t4.c1) from t4,t7) tt, t5; 
 | 
						|
 | 
						|
===========================================================
 | 
						|
|ID|OPERATOR                      |NAME    |EST. ROWS|COST|
 | 
						|
-----------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN    |        |300      |3526|
 | 
						|
|1 | PX COORDINATOR               |        |300      |354 |
 | 
						|
|2 |  EXCHANGE OUT DISTR          |:EX10000|300      |314 |
 | 
						|
|3 |   PX PARTITION ITERATOR      |        |300      |233 |
 | 
						|
|4 |    TABLE SCAN                |t5      |300      |233 |
 | 
						|
|5 | MATERIAL                     |        |1        |3090|
 | 
						|
|6 |  SUBPLAN SCAN                |tt      |1        |3090|
 | 
						|
|7 |   SCALAR GROUP BY            |        |1        |3090|
 | 
						|
|8 |    NESTED-LOOP JOIN CARTESIAN|        |10000    |2736|
 | 
						|
|9 |     TABLE SCAN               |t7      |100      |78  |
 | 
						|
|10|     MATERIAL                 |        |100      |78  |
 | 
						|
|11|      TABLE SCAN              |t4      |100      |78  |
 | 
						|
===========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([tt.max(t4.c1)], [t5.c1], [t5.c2], [t5.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  1 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  2 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), dop=1
 | 
						|
  3 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  4 - 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
 | 
						|
  5 - output([tt.max(t4.c1)]), filter(nil)
 | 
						|
  6 - output([tt.max(t4.c1)]), filter(nil), 
 | 
						|
      access([tt.max(t4.c1)])
 | 
						|
  7 - output([T_FUN_MAX(t4.c1)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_MAX(t4.c1)])
 | 
						|
  8 - output([t4.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  9 - output(nil), filter(nil), 
 | 
						|
      access([t7.c1]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t7.c1]), range(MIN ; MAX)always true
 | 
						|
  10 - output([t4.c1]), filter(nil)
 | 
						|
  11 - output([t4.c1]), filter(nil), 
 | 
						|
      access([t4.c1]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      LEADING(("t5" "tt"))
 | 
						|
      USE_NL("tt")
 | 
						|
      LEADING(("t7" "t4"))
 | 
						|
      USE_NL("t4")
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      LEADING(@"SEL$1" ("opt"."t5"@"SEL$1" "tt"@"SEL$1"))
 | 
						|
      USE_NL(@"SEL$1" "tt"@"SEL$1")
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" "tt"@"SEL$1" LOCAL LOCAL)
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" "tt"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      LEADING(@"SEL$2" ("opt"."t7"@"SEL$2" "opt"."t4"@"SEL$2"))
 | 
						|
      USE_NL(@"SEL$2" "opt"."t4"@"SEL$2")
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$2" "opt"."t4"@"SEL$2")
 | 
						|
      FULL(@"SEL$2" "opt"."t7"@"SEL$2")
 | 
						|
      FULL(@"SEL$2" "opt"."t4"@"SEL$2")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      LEADING(@"SEL$1" ("opt.t5"@"SEL$1" "tt"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("tt"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("tt"@"SEL$1" ) LOCAL LOCAL)
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("tt"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      LEADING(@"SEL$2" ("opt.t7"@"SEL$2" "opt.t4"@"SEL$2" ))
 | 
						|
      USE_NL(@"SEL$2" ("opt.t4"@"SEL$2" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$2" ("opt.t4"@"SEL$2" ) LOCAL LOCAL)
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$2" ("opt.t4"@"SEL$2" ))
 | 
						|
      FULL(@"SEL$2" "opt"."t7"@"SEL$2")
 | 
						|
      INDEX(@"SEL$2" "opt"."t4"@"SEL$2" "idx_t4_c2")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t5:table_rows:300, physical_range_rows:300, logical_range_rows:300, index_back_rows:0, output_rows:300, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t5], pruned_index_name[idx_t5_c2,idx_t5_c3]
 | 
						|
 | 
						|
t7:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[t7]
 | 
						|
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,idx_t4_c3,idx_t4_c2,t4]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 46(end)  ************** 
 | 
						|
 | 
						|
***************   Case 47   ***************
 | 
						|
 | 
						|
SQL: select /*+ordered*/* from t4,t5; 
 | 
						|
 | 
						|
=======================================================
 | 
						|
|ID|OPERATOR                  |NAME    |EST. ROWS|COST|
 | 
						|
-------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN|        |30000    |3012|
 | 
						|
|1 | TABLE SCAN               |t4      |100      |78  |
 | 
						|
|2 | MATERIAL                 |        |300      |357 |
 | 
						|
|3 |  PX COORDINATOR          |        |300      |354 |
 | 
						|
|4 |   EXCHANGE OUT DISTR     |:EX10000|300      |314 |
 | 
						|
|5 |    PX PARTITION ITERATOR |        |300      |233 |
 | 
						|
|6 |     TABLE SCAN           |t5      |300      |233 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3], [t5.c1], [t5.c2], [t5.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
  2 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  3 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  4 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), dop=1
 | 
						|
  5 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  6 - 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
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      ORDERED
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      LEADING(@"SEL$1" ("opt"."t4"@"SEL$1" "opt"."t5"@"SEL$1"))
 | 
						|
      USE_NL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" "opt"."t5"@"SEL$1" LOCAL LOCAL)
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      LEADING(@"SEL$1" ("opt.t4"@"SEL$1" "opt.t5"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t5"@"SEL$1" ) LOCAL LOCAL)
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,idx_t4_c3,t4], pruned_index_name[idx_t4_c2]
 | 
						|
 | 
						|
t5:table_rows:300, physical_range_rows:300, logical_range_rows:300, index_back_rows:0, output_rows:300, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t5], pruned_index_name[idx_t5_c2,idx_t5_c3]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 47(end)  ************** 
 | 
						|
 | 
						|
***************   Case 48   ***************
 | 
						|
 | 
						|
SQL: select /*+ordered*/* from t5,t4; 
 | 
						|
 | 
						|
=======================================================
 | 
						|
|ID|OPERATOR                  |NAME    |EST. ROWS|COST|
 | 
						|
-------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN|        |30000    |8169|
 | 
						|
|1 | PX COORDINATOR           |        |300      |354 |
 | 
						|
|2 |  EXCHANGE OUT DISTR      |:EX10000|300      |314 |
 | 
						|
|3 |   PX PARTITION ITERATOR  |        |300      |233 |
 | 
						|
|4 |    TABLE SCAN            |t5      |300      |233 |
 | 
						|
|5 | MATERIAL                 |        |100      |79  |
 | 
						|
|6 |  TABLE SCAN              |t4      |100      |78  |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t5.c1], [t5.c2], [t5.c3], [t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  1 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  2 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), dop=1
 | 
						|
  3 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  4 - 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
 | 
						|
  5 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil)
 | 
						|
  6 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      ORDERED
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      LEADING(@"SEL$1" ("opt"."t5"@"SEL$1" "opt"."t4"@"SEL$1"))
 | 
						|
      USE_NL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" "opt"."t4"@"SEL$1" LOCAL LOCAL)
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      LEADING(@"SEL$1" ("opt.t5"@"SEL$1" "opt.t4"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t4"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t4"@"SEL$1" ) LOCAL LOCAL)
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t4"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t5:table_rows:300, physical_range_rows:300, logical_range_rows:300, index_back_rows:0, output_rows:300, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t5], pruned_index_name[idx_t5_c2,idx_t5_c3]
 | 
						|
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,idx_t4_c3,t4], pruned_index_name[idx_t4_c2]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 48(end)  ************** 
 | 
						|
 | 
						|
***************   Case 49   ***************
 | 
						|
 | 
						|
SQL: select /*+ordered*/* from t5; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |300      |354 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|300      |314 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|3 |   TABLE SCAN          |t5      |300      |233 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t5.c1, t5.c2, t5.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t5.c1, t5.c2, t5.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  3 - 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
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
<<<<<<< HEAD
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t5:table_rows:300, physical_range_rows:300, logical_range_rows:300, index_back_rows:0, output_rows:300, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t5], pruned_index_name[idx_t5_c2,idx_t5_c3]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 49(end)  ************** 
 | 
						|
 | 
						|
***************   Case 50   ***************
 | 
						|
 | 
						|
SQL: select /*+ordered*/* from t4 left join t5 on t4.c1=t5.c1; 
 | 
						|
 | 
						|
=====================================================
 | 
						|
|ID|OPERATOR                |NAME    |EST. ROWS|COST|
 | 
						|
-----------------------------------------------------
 | 
						|
|0 |HASH OUTER JOIN         |        |244      |528 |
 | 
						|
|1 | TABLE SCAN             |t4      |100      |78  |
 | 
						|
|2 | PX COORDINATOR         |        |300      |354 |
 | 
						|
|3 |  EXCHANGE OUT DISTR    |:EX10000|300      |314 |
 | 
						|
|4 |   PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|5 |    TABLE SCAN          |t5      |300      |233 |
 | 
						|
=====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3], [t5.c1], [t5.c2], [t5.c3]), filter(nil), 
 | 
						|
      equal_conds([t4.c1 = t5.c1]), other_conds(nil)
 | 
						|
  1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
  2 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  3 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), dop=1
 | 
						|
  4 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  5 - 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
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      ORDERED
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      LEADING(@"SEL$1" ("opt"."t4"@"SEL$1" "opt"."t5"@"SEL$1"))
 | 
						|
      USE_HASH(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" "opt"."t5"@"SEL$1" LOCAL LOCAL)
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      LEADING(@"SEL$1" ("opt.t4"@"SEL$1" "opt.t5"@"SEL$1" ))
 | 
						|
      USE_HASH(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t5"@"SEL$1" ) LOCAL LOCAL)
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[t4], pruned_index_name[idx_t4_c2_c3,idx_t4_c3,idx_t4_c2]
 | 
						|
 | 
						|
t5:table_rows:300, physical_range_rows:300, logical_range_rows:300, index_back_rows:0, output_rows:300, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t5], pruned_index_name[idx_t5_c2,idx_t5_c3]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 50(end)  ************** 
 | 
						|
 | 
						|
***************   Case 51   ***************
 | 
						|
 | 
						|
SQL: select /*+ordered*/* from t4 right join t5 on t4.c1=t5.c1; 
 | 
						|
 | 
						|
=====================================================
 | 
						|
|ID|OPERATOR                |NAME    |EST. ROWS|COST|
 | 
						|
-----------------------------------------------------
 | 
						|
|0 |HASH OUTER JOIN         |        |300      |530 |
 | 
						|
|1 | PX COORDINATOR         |        |300      |354 |
 | 
						|
|2 |  EXCHANGE OUT DISTR    |:EX10000|300      |314 |
 | 
						|
|3 |   PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|4 |    TABLE SCAN          |t5      |300      |233 |
 | 
						|
|5 | TABLE SCAN             |t4      |100      |78  |
 | 
						|
=====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3], [t5.c1], [t5.c2], [t5.c3]), filter(nil), 
 | 
						|
      equal_conds([t4.c1 = t5.c1]), other_conds(nil)
 | 
						|
  1 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  2 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), dop=1
 | 
						|
  3 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  4 - 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
 | 
						|
  5 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      ORDERED
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      LEADING(@"SEL$1" ("opt"."t5"@"SEL$1" "opt"."t4"@"SEL$1"))
 | 
						|
      USE_HASH(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" "opt"."t4"@"SEL$1" LOCAL LOCAL)
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      LEADING(@"SEL$1" ("opt.t5"@"SEL$1" "opt.t4"@"SEL$1" ))
 | 
						|
      USE_HASH(@"SEL$1" ("opt.t4"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t4"@"SEL$1" ) LOCAL LOCAL)
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t5:table_rows:300, physical_range_rows:300, logical_range_rows:300, index_back_rows:0, output_rows:300, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t5], pruned_index_name[idx_t5_c2,idx_t5_c3]
 | 
						|
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[t4], pruned_index_name[idx_t4_c2_c3,idx_t4_c3,idx_t4_c2]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 51(end)  ************** 
 | 
						|
 | 
						|
***************   Case 52   ***************
 | 
						|
 | 
						|
SQL: select /*+ordered*/* from t4 full join t5 on t4.c1=t5.c1; 
 | 
						|
 | 
						|
=====================================================
 | 
						|
|ID|OPERATOR                |NAME    |EST. ROWS|COST|
 | 
						|
-----------------------------------------------------
 | 
						|
|0 |HASH FULL OUTER JOIN    |        |300      |528 |
 | 
						|
|1 | TABLE SCAN             |t4      |100      |78  |
 | 
						|
|2 | PX COORDINATOR         |        |300      |354 |
 | 
						|
|3 |  EXCHANGE OUT DISTR    |:EX10000|300      |314 |
 | 
						|
|4 |   PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|5 |    TABLE SCAN          |t5      |300      |233 |
 | 
						|
=====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3], [t5.c1], [t5.c2], [t5.c3]), filter(nil), 
 | 
						|
      equal_conds([t4.c1 = t5.c1]), other_conds(nil)
 | 
						|
  1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
  2 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  3 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), dop=1
 | 
						|
  4 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  5 - 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
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      ORDERED
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      LEADING(@"SEL$1" ("opt"."t4"@"SEL$1" "opt"."t5"@"SEL$1"))
 | 
						|
      USE_HASH(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" "opt"."t5"@"SEL$1" LOCAL LOCAL)
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      LEADING(@"SEL$1" ("opt.t4"@"SEL$1" "opt.t5"@"SEL$1" ))
 | 
						|
      USE_HASH(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t5"@"SEL$1" ) LOCAL LOCAL)
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[t4], pruned_index_name[idx_t4_c2_c3,idx_t4_c3,idx_t4_c2]
 | 
						|
 | 
						|
t5:table_rows:300, physical_range_rows:300, logical_range_rows:300, index_back_rows:0, output_rows:300, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t5], pruned_index_name[idx_t5_c2,idx_t5_c3]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 52(end)  ************** 
 | 
						|
 | 
						|
***************   Case 53   ***************
 | 
						|
 | 
						|
SQL: select /*+index(t_normal_idx idx)*/* from t_normal_idx order by c3 limit 1; 
 | 
						|
 | 
						|
=======================================================
 | 
						|
|ID|OPERATOR        |NAME              |EST. ROWS|COST|
 | 
						|
-------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN|                  |1        |111 |
 | 
						|
|1 | TOP-N SORT     |                  |1        |80  |
 | 
						|
|2 |  TABLE SCAN    |t_normal_idx(idx) |100      |78  |
 | 
						|
|3 | TABLE GET      |t_normal_idx_alias|1        |31  |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t_normal_idx.c1], [t_normal_idx_alias.c2], [t_normal_idx.c3], [t_normal_idx_alias.c4], [t_normal_idx_alias.c5], [t_normal_idx_alias.c6], [t_normal_idx_alias.c7], [t_normal_idx_alias.c8], [t_normal_idx_alias.c9], [t_normal_idx_alias.c10]), filter(nil), 
 | 
						|
      conds(nil), nl_params_([t_normal_idx.c1]), batch_join=false
 | 
						|
  1 - output([t_normal_idx.c1], [t_normal_idx.c3]), filter(nil), sort_keys([t_normal_idx.c3, ASC]), topn(1)
 | 
						|
  2 - output([t_normal_idx.c1], [t_normal_idx.c3]), filter(nil), 
 | 
						|
      access([t_normal_idx.c1], [t_normal_idx.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
 | 
						|
  3 - output([t_normal_idx_alias.c2], [t_normal_idx_alias.c4], [t_normal_idx_alias.c5], [t_normal_idx_alias.c6], [t_normal_idx_alias.c7], [t_normal_idx_alias.c8], [t_normal_idx_alias.c9], [t_normal_idx_alias.c10]), filter(nil), 
 | 
						|
      access([t_normal_idx_alias.c2], [t_normal_idx_alias.c4], [t_normal_idx_alias.c5], [t_normal_idx_alias.c6], [t_normal_idx_alias.c7], [t_normal_idx_alias.c8], [t_normal_idx_alias.c9], [t_normal_idx_alias.c10]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t_normal_idx_alias.c1]), range(MIN ; MAX), 
 | 
						|
      range_cond([t_normal_idx_alias.c1 = ?])
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
<<<<<<< HEAD
 | 
						|
      INDEX("t_normal_idx" "idx")
 | 
						|
=======
 | 
						|
      INDEX(@"SEL$1" "opt"."t_normal_idx"@"SEL$1" "idx")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      USE_LATE_MATERIALIZATION(@"SEL$1")
 | 
						|
      INDEX(@"SEL$1" "opt"."t_normal_idx"@"SEL$1" "idx")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      LEADING(@"SEL$1" ("opt.t_normal_idx"@"SEL$1" "opt.t_normal_idx_alias"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t_normal_idx_alias"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t_normal_idx_alias"@"SEL$1" ) LOCAL LOCAL)
 | 
						|
      NO_USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t_normal_idx_alias"@"SEL$1" ))
 | 
						|
      INDEX(@"SEL$1" "opt"."t_normal_idx"@"SEL$1" "idx")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
LOCAL
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t_normal_idx:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx], pruned_index_name[t_normal_idx]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 53(end)  ************** 
 | 
						|
 | 
						|
***************   Case 54   ***************
 | 
						|
 | 
						|
SQL: select /*+use_late_materialization index(t_normal_idx idx)*/* from t_normal_idx order by c3 limit 1; 
 | 
						|
 | 
						|
=======================================================
 | 
						|
|ID|OPERATOR        |NAME              |EST. ROWS|COST|
 | 
						|
-------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN|                  |1        |111 |
 | 
						|
|1 | TOP-N SORT     |                  |1        |80  |
 | 
						|
|2 |  TABLE SCAN    |t_normal_idx(idx) |100      |78  |
 | 
						|
|3 | TABLE GET      |t_normal_idx_alias|1        |31  |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t_normal_idx.c1], [t_normal_idx_alias.c2], [t_normal_idx.c3], [t_normal_idx_alias.c4], [t_normal_idx_alias.c5], [t_normal_idx_alias.c6], [t_normal_idx_alias.c7], [t_normal_idx_alias.c8], [t_normal_idx_alias.c9], [t_normal_idx_alias.c10]), filter(nil), 
 | 
						|
      conds(nil), nl_params_([t_normal_idx.c1]), batch_join=false
 | 
						|
  1 - output([t_normal_idx.c1], [t_normal_idx.c3]), filter(nil), sort_keys([t_normal_idx.c3, ASC]), topn(1)
 | 
						|
  2 - output([t_normal_idx.c1], [t_normal_idx.c3]), filter(nil), 
 | 
						|
      access([t_normal_idx.c1], [t_normal_idx.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
 | 
						|
  3 - output([t_normal_idx_alias.c2], [t_normal_idx_alias.c4], [t_normal_idx_alias.c5], [t_normal_idx_alias.c6], [t_normal_idx_alias.c7], [t_normal_idx_alias.c8], [t_normal_idx_alias.c9], [t_normal_idx_alias.c10]), filter(nil), 
 | 
						|
      access([t_normal_idx_alias.c2], [t_normal_idx_alias.c4], [t_normal_idx_alias.c5], [t_normal_idx_alias.c6], [t_normal_idx_alias.c7], [t_normal_idx_alias.c8], [t_normal_idx_alias.c9], [t_normal_idx_alias.c10]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t_normal_idx_alias.c1]), range(MIN ; MAX), 
 | 
						|
      range_cond([t_normal_idx_alias.c1 = ?])
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
<<<<<<< HEAD
 | 
						|
      USE_LATE_MATERIALIZATION
 | 
						|
      INDEX("t_normal_idx" "idx")
 | 
						|
=======
 | 
						|
      INDEX(@"SEL$1" "opt"."t_normal_idx"@"SEL$1" "idx")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      USE_LATE_MATERIALIZATION(@"SEL$1")
 | 
						|
      INDEX(@"SEL$1" "opt"."t_normal_idx"@"SEL$1" "idx")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      LEADING(@"SEL$1" ("opt.t_normal_idx"@"SEL$1" "opt.t_normal_idx_alias"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t_normal_idx_alias"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t_normal_idx_alias"@"SEL$1" ) LOCAL LOCAL)
 | 
						|
      NO_USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t_normal_idx_alias"@"SEL$1" ))
 | 
						|
      INDEX(@"SEL$1" "opt"."t_normal_idx"@"SEL$1" "idx")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
LOCAL
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t_normal_idx:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx], pruned_index_name[t_normal_idx]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 54(end)  ************** 
 | 
						|
 | 
						|
***************   Case 55   ***************
 | 
						|
 | 
						|
SQL: select /*+no_use_late_materialization index(t_normal_idx idx)*/* from t_normal_idx where c2=1 order by c4 limit 1; 
 | 
						|
 | 
						|
=================================================
 | 
						|
|ID|OPERATOR   |NAME             |EST. ROWS|COST|
 | 
						|
-------------------------------------------------
 | 
						|
|0 |TOP-N SORT |                 |1        |137 |
 | 
						|
|1 | TABLE SCAN|t_normal_idx(idx)|100      |134 |
 | 
						|
=================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t_normal_idx.c1], [t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c7], [t_normal_idx.c8], [t_normal_idx.c9], [t_normal_idx.c10]), filter(nil), sort_keys([t_normal_idx.c4, ASC]), topn(1)
 | 
						|
  1 - output([t_normal_idx.c1], [t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c7], [t_normal_idx.c8], [t_normal_idx.c9], [t_normal_idx.c10]), filter(nil), 
 | 
						|
      access([t_normal_idx.c1], [t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c7], [t_normal_idx.c8], [t_normal_idx.c9], [t_normal_idx.c10]), partitions(p0), 
 | 
						|
      is_index_back=true, 
 | 
						|
      range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(1,MIN,MIN,MIN,MIN,MIN ; 1,MAX,MAX,MAX,MAX,MAX), 
 | 
						|
      range_cond([t_normal_idx.c2 = ?])
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
<<<<<<< HEAD
 | 
						|
      NO_USE_LATE_MATERIALIZATION
 | 
						|
      INDEX("t_normal_idx" "idx")
 | 
						|
=======
 | 
						|
      INDEX(@"SEL$1" "opt"."t_normal_idx"@"SEL$1" "idx")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      INDEX(@"SEL$1" "opt"."t_normal_idx"@"SEL$1" "idx")
 | 
						|
<<<<<<< HEAD
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
LOCAL
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t_normal_idx:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:100, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx], pruned_index_name[t_normal_idx]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
{obj:{"BIGINT":1}, accuracy:{length:1, precision:1, scale:0}, flag:1, raw_text_pos:-1, raw_text_len:-1, param_meta:{type:"BIGINT", collation:"binary", coercibility:"NUMERIC"}}
 | 
						|
 | 
						|
*************** Case 55(end)  ************** 
 | 
						|
 | 
						|
***************   Case 56   ***************
 | 
						|
 | 
						|
SQL: select * from t4; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t4  |100      |78  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
<<<<<<< HEAD
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
LOCAL
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,idx_t4_c3,t4], pruned_index_name[idx_t4_c2]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 56(end)  ************** 
 | 
						|
 | 
						|
***************   Case 57   ***************
 | 
						|
 | 
						|
SQL: select /*+qb_name(select_1)*/* from t4; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t4  |100      |78  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      QB_NAME(SELECT_1)
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      FULL(@"SELECT_1" "opt"."t4"@"SELECT_1")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
LOCAL
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,idx_t4_c3,t4], pruned_index_name[idx_t4_c2]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 57(end)  ************** 
 | 
						|
 | 
						|
***************   Case 58   ***************
 | 
						|
 | 
						|
SQL: select /*+qb_name(select_1) qb_name(select_2)*/* from t4; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t4  |100      |78  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
<<<<<<< HEAD
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
LOCAL
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,idx_t4_c3,t4], pruned_index_name[idx_t4_c2]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 58(end)  ************** 
 | 
						|
 | 
						|
***************   Case 59   ***************
 | 
						|
 | 
						|
SQL: select /*+qb_name(select_1) */* from t4 where t4.c1 > any(select /*+qb_name(select_2)*/c1 from t5); 
 | 
						|
 | 
						|
======================================================
 | 
						|
|ID|OPERATOR                 |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP SEMI JOIN    |        |34       |1167|
 | 
						|
|1 | TABLE SCAN              |t4      |100      |78  |
 | 
						|
|2 | MATERIAL                |        |300      |281 |
 | 
						|
|3 |  PX COORDINATOR         |        |300      |280 |
 | 
						|
|4 |   EXCHANGE OUT DISTR    |:EX10000|300      |263 |
 | 
						|
|5 |    PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|6 |     TABLE SCAN          |t5      |300      |233 |
 | 
						|
======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      conds([t4.c1 > t5.c1]), nl_params_(nil), batch_join=false
 | 
						|
  1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
  2 - output([t5.c1]), filter(nil)
 | 
						|
  3 - output([t5.c1]), filter(nil)
 | 
						|
  4 - output([t5.c1]), filter(nil), dop=1
 | 
						|
  5 - output([t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  6 - output([t5.c1]), filter(nil), 
 | 
						|
      access([t5.c1]), partitions(p[0-2]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t5.c2], [t5.c3]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      QB_NAME(SELECT_1)
 | 
						|
      QB_NAME(SELECT_2)
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      LEADING(@"SEL$B9A892BA" ("opt"."t4"@"SELECT_1" "opt"."t5"@"SELECT_2"))
 | 
						|
      USE_NL(@"SEL$B9A892BA" "opt"."t5"@"SELECT_2")
 | 
						|
      PQ_DISTRIBUTE(@"SEL$B9A892BA" "opt"."t5"@"SELECT_2" LOCAL LOCAL)
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$B9A892BA" "opt"."t5"@"SELECT_2")
 | 
						|
      FULL(@"SEL$B9A892BA" "opt"."t4"@"SELECT_1")
 | 
						|
      FULL(@"SEL$B9A892BA" "opt"."t5"@"SELECT_2")
 | 
						|
      UNNEST(@"SELECT_2")
 | 
						|
      MERGE(@"SELECT_2" > "SEL$3EFB26BC")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      LEADING(@"SEL$1" ("opt.t4"@"SEL$1" "opt.t5"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t5"@"SEL$1" ) LOCAL LOCAL)
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,idx_t4_c3,t4], pruned_index_name[idx_t4_c2]
 | 
						|
 | 
						|
t5:table_rows:300, physical_range_rows:300, logical_range_rows:300, index_back_rows:0, output_rows:300, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t5], pruned_index_name[idx_t5_c2,idx_t5_c3]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 59(end)  ************** 
 | 
						|
 | 
						|
***************   Case 60   ***************
 | 
						|
 | 
						|
SQL: select /*+qb_name(select_1) */* from t4 where t4.c1 > any(select /*+qb_name(select_1)*/c1 from t5); 
 | 
						|
 | 
						|
======================================================
 | 
						|
|ID|OPERATOR                 |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP SEMI JOIN    |        |34       |1167|
 | 
						|
|1 | TABLE SCAN              |t4      |100      |78  |
 | 
						|
|2 | MATERIAL                |        |300      |281 |
 | 
						|
|3 |  PX COORDINATOR         |        |300      |280 |
 | 
						|
|4 |   EXCHANGE OUT DISTR    |:EX10000|300      |263 |
 | 
						|
|5 |    PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|6 |     TABLE SCAN          |t5      |300      |233 |
 | 
						|
======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      conds([t4.c1 > t5.c1]), nl_params_(nil), batch_join=false
 | 
						|
  1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
  2 - output([t5.c1]), filter(nil)
 | 
						|
  3 - output([t5.c1]), filter(nil)
 | 
						|
  4 - output([t5.c1]), filter(nil), dop=1
 | 
						|
  5 - output([t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  6 - output([t5.c1]), filter(nil), 
 | 
						|
      access([t5.c1]), partitions(p[0-2]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t5.c2], [t5.c3]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
<<<<<<< HEAD
 | 
						|
      LEADING(@"SEL$612EAAC9" ("opt"."t4"@"SEL$1" "opt"."t5"@"SEL$2"))
 | 
						|
      USE_NL(@"SEL$612EAAC9" "opt"."t5"@"SEL$2")
 | 
						|
      PQ_DISTRIBUTE(@"SEL$612EAAC9" "opt"."t5"@"SEL$2" LOCAL LOCAL)
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$612EAAC9" "opt"."t5"@"SEL$2")
 | 
						|
      FULL(@"SEL$612EAAC9" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$612EAAC9" "opt"."t5"@"SEL$2")
 | 
						|
      UNNEST(@"SEL$2")
 | 
						|
      MERGE(@"SEL$2" > "SEL$6FCAE2AA")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      LEADING(@"SEL$1" ("opt.t4"@"SEL$1" "opt.t5"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t5"@"SEL$1" ) LOCAL LOCAL)
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t5"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt"."t5"@"SEL$1")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,idx_t4_c3,t4], pruned_index_name[idx_t4_c2]
 | 
						|
 | 
						|
t5:table_rows:300, physical_range_rows:300, logical_range_rows:300, index_back_rows:0, output_rows:300, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[t5], pruned_index_name[idx_t5_c2,idx_t5_c3]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 60(end)  ************** 
 | 
						|
 | 
						|
***************   Case 61   ***************
 | 
						|
 | 
						|
SQL: select /*+topk(1 100) hotspot max_concurrent(1)*/* from t4; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t4  |100      |78  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt"."t4"@"SEL$1")
 | 
						|
<<<<<<< HEAD
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
LOCAL
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t4:table_rows:100, physical_range_rows:100, logical_range_rows:100, index_back_rows:0, output_rows:100, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_t4_c2_c3,idx_t4_c3,t4], pruned_index_name[idx_t4_c2]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 61(end)  ************** 
 | 
						|
 | 
						|
***************   Case 62   ***************
 | 
						|
 | 
						|
SQL: select /*+read_consistency("weak")*/* from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |528 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |481 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      READ_CONSISTENCY( WEAK )
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt"."t1"@"SEL$1")
 | 
						|
<<<<<<< HEAD
 | 
						|
      READ_CONSISTENCY( WEAK )
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      READ_CONSISTENCY("WEAK")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t1:table_rows:500, physical_range_rows:500, logical_range_rows:500, index_back_rows:0, output_rows:500, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[idx_t1_c2,t1]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 62(end)  ************** 
 | 
						|
 | 
						|
***************   Case 63   ***************
 | 
						|
 | 
						|
SQL: select /*+query_timeout(100)*/ * from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |528 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |481 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      QUERY_TIMEOUT(100)
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt"."t1"@"SEL$1")
 | 
						|
      QUERY_TIMEOUT(100)
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t1:table_rows:500, physical_range_rows:500, logical_range_rows:500, index_back_rows:0, output_rows:500, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[idx_t1_c2,t1]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 63(end)  ************** 
 | 
						|
 | 
						|
***************   Case 64   ***************
 | 
						|
 | 
						|
SQL: select /*+frozen_version(1)*/ * from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |528 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |481 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      FROZEN_VERSION(1)
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt"."t1"@"SEL$1")
 | 
						|
      FROZEN_VERSION(1)
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t1:table_rows:500, physical_range_rows:500, logical_range_rows:500, index_back_rows:0, output_rows:500, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[idx_t1_c2,t1]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 64(end)  ************** 
 | 
						|
 | 
						|
***************   Case 65   ***************
 | 
						|
 | 
						|
SQL: select /*+use_plan_cache(none)*/ * from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |528 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |481 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      USE_PLAN_CACHE( NONE )
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt"."t1"@"SEL$1")
 | 
						|
<<<<<<< HEAD
 | 
						|
      USE_PLAN_CACHE( NONE )
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      USE_PLAN_CACHE("NONE")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t1:table_rows:500, physical_range_rows:500, logical_range_rows:500, index_back_rows:0, output_rows:500, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[idx_t1_c2,t1]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 65(end)  ************** 
 | 
						|
 | 
						|
***************   Case 66   ***************
 | 
						|
 | 
						|
SQL: select /*+use_plan_cache(default)*/ * from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |528 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |481 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      USE_PLAN_CACHE( DEFAULT )
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt"."t1"@"SEL$1")
 | 
						|
<<<<<<< HEAD
 | 
						|
      USE_PLAN_CACHE( DEFAULT )
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      USE_PLAN_CACHE("DEFAULT")
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t1:table_rows:500, physical_range_rows:500, logical_range_rows:500, index_back_rows:0, output_rows:500, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[idx_t1_c2,t1]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 66(end)  ************** 
 | 
						|
 | 
						|
***************   Case 67   ***************
 | 
						|
 | 
						|
SQL: select /*+use_plan_cache(nothing)*/ * from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |528 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |481 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt"."t1"@"SEL$1")
 | 
						|
<<<<<<< HEAD
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t1:table_rows:500, physical_range_rows:500, logical_range_rows:500, index_back_rows:0, output_rows:500, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[idx_t1_c2,t1]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 67(end)  ************** 
 | 
						|
 | 
						|
***************   Case 68   ***************
 | 
						|
 | 
						|
SQL: select /*+no_rewrite*/ * from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |528 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |481 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      NO_REWRITE
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt"."t1"@"SEL$1")
 | 
						|
<<<<<<< HEAD
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      NO_REWRITE
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t1:table_rows:500, physical_range_rows:500, logical_range_rows:500, index_back_rows:0, output_rows:500, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[idx_t1_c2,t1]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 68(end)  ************** 
 | 
						|
 | 
						|
***************   Case 69   ***************
 | 
						|
 | 
						|
SQL: select /*+trace_log*/ * from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |528 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |481 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      TRACE_LOG
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt"."t1"@"SEL$1")
 | 
						|
      TRACE_LOG
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t1:table_rows:500, physical_range_rows:500, logical_range_rows:500, index_back_rows:0, output_rows:500, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[idx_t1_c2,t1]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 69(end)  ************** 
 | 
						|
 | 
						|
***************   Case 70   ***************
 | 
						|
 | 
						|
SQL: select /*+log_level('INFO')*/ * from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |528 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |481 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
Used Hint:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      LOG_LEVEL("INFO")
 | 
						|
  */
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt"."t1"@"SEL$1")
 | 
						|
<<<<<<< HEAD
 | 
						|
      LOG_LEVEL("INFO")
 | 
						|
      OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
 | 
						|
=======
 | 
						|
      LOG_LEVEL('info')
 | 
						|
>>>>>>> implement spm part1
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
Plan Type:
 | 
						|
-------------------------------------
 | 
						|
DISTRIBUTED
 | 
						|
 | 
						|
Optimization Info:
 | 
						|
-------------------------------------
 | 
						|
t1:table_rows:500, physical_range_rows:500, logical_range_rows:500, index_back_rows:0, output_rows:500, est_method:default_stat, optimization_method=cost_based, avaiable_index_name[idx_t1_c2,t1]
 | 
						|
 | 
						|
 | 
						|
Parameters:
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
 | 
						|
*************** Case 70(end)  ************** 
 | 
						|
 |