秃蛙:
explain EXTENDED
错误的节点
=====================================================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
-------------------------------------------------------------------------------------
|0 |NESTED-LOOP JOIN | |1 |5955 |
|1 | TABLE SCAN |b(school_code) |1 |5955 |
|2 | SUBPLAN SCAN |ANONYMOUS_VIEW1 |4 |158 |
|3 | MERGE UNION DISTINCT | |4 |158 |
|4 | DISTRIBUTED TABLE SCAN |dw_obj_teaching_classes_class|3 |19 |
|5 | SORT | |1 |139 |
|6 | NESTED-LOOP JOIN | |1 |139 |
|7 | NESTED-LOOP JOIN | |5 |50 |
|8 | DISTRIBUTED TABLE GET |o |1 |18 |
|9 | DISTRIBUTED TABLE SCAN|c(diag_obj_id_descendants) |5 |16 |
|10| DISTRIBUTED TABLE GET |o1 |1 |16 |
=====================================================================================
Outputs & filters:
-------------------------------------
0 - output([ANONYMOUS_VIEW1.diag_obj_id(0x7f093a2cac60)], [ANONYMOUS_VIEW1.class_id(0x7f093a2cb210)], [ANONYMOUS_VIEW1.class_name(0x7f093a2cb7c0)], [ANONYMOUS_VIEW1.class_show_seq(0x7f093a2cbd70)]),
filter(nil), rowset=256
conds(nil), nl_params_([b.diag_obj_id(0x7f093a2f2940)]), batch_join=true
1 - output([b.diag_obj_id(0x7f093a2f2940)]), filter([cast(b.school_term_id(0x7f093a2f0c30), DECIMAL(11, 0))(0x7f093a2f1170) = cast('2321', DECIMAL(1,
-1))(0x7f093a2f1be0)(0x7f093a2f0580)]), rowset=256
access([b.diag_obj_id(0x7f093a2f2940)], [b.school_term_id(0x7f093a2f0c30)]), partitions(p0)
is_index_back=true, is_global_index=false, filter_before_indexback[false],
range_key([b.school_code(0x7f093a2efae0)], [b.diag_obj_id(0x7f093a2f2940)]), range(xmshczx,MIN ; xmshczx,MAX),
range_cond([b.school_code(0x7f093a2efae0) = 'xmshczx'(0x7f093a2ef430)])
2 - output([ANONYMOUS_VIEW1.diag_obj_id(0x7f093a2cac60)], [ANONYMOUS_VIEW1.class_id(0x7f093a2cb210)], [ANONYMOUS_VIEW1.class_name(0x7f093a2cb7c0)], [ANONYMOUS_VIEW1.class_show_seq(0x7f093a2cbd70)]),
filter(nil), rowset=256
access([ANONYMOUS_VIEW1.diag_obj_id(0x7f093a2cac60)], [ANONYMOUS_VIEW1.class_id(0x7f093a2cb210)], [ANONYMOUS_VIEW1.class_name(0x7f093a2cb7c0)], [ANONYMOUS_VIEW1.class_show_seq(0x7f093a2cbd70)])
3 - output([UNION([1])(0x7f093a2c9af0)], [UNION([2])(0x7f093a2c9d20)], [UNION([3])(0x7f093a2c9f50)], [UNION([4])(0x7f093a2ca180)]), filter(nil), rowset=256
4 - output([dw_obj_teaching_classes_class.diag_obj_id(0x7f093a29fc70)], [dw_obj_teaching_classes_class.class_id(0x7f093a2a0220)], [dw_obj_teaching_classes_class.class_name(0x7f093a2a07d0)],
[dw_obj_teaching_classes_class.class_show_seq(0x7f093a2a0d80)]), filter(nil), rowset=256
access([GROUP_ID(0x7f09db15fa90)], [dw_obj_teaching_classes_class.diag_obj_id(0x7f093a29fc70)], [dw_obj_teaching_classes_class.class_id(0x7f093a2a0220)],
[dw_obj_teaching_classes_class.class_name(0x7f093a2a07d0)], [dw_obj_teaching_classes_class.class_show_seq(0x7f093a2a0d80)]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([dw_obj_teaching_classes_class.diag_obj_id(0x7f093a29fc70)], [dw_obj_teaching_classes_class.class_id(0x7f093a2a0220)]), range(MIN,MIN ;
MAX,MAX)always true,
range_cond([dw_obj_teaching_classes_class.diag_obj_id(0x7f093a29fc70) = :5(0x7f09717853a0)])
5 - output([o.diag_obj_id(0x7f093a2c4f40)], [cast(o1.diag_obj_id(0x7f093a2c6650), VARCHAR(100))(0x7f093a2c90a0)], [o1.diag_obj_name(0x7f093a2c8530)],
[o1.show_seq(0x7f093a2c8ae0)]), filter(nil), rowset=256
sort_keys([cast(o1.diag_obj_id(0x7f093a2c6650), VARCHAR(100))(0x7f093a2c90a0), ASC], [o1.diag_obj_name(0x7f093a2c8530), ASC], [o1.show_seq(0x7f093a2c8ae0),
ASC])
6 - output([cast(o1.diag_obj_id(0x7f093a2c6650), VARCHAR(100))(0x7f093a2c90a0)], [o1.diag_obj_name(0x7f093a2c8530)], [o1.show_seq(0x7f093a2c8ae0)], [o.diag_obj_id(0x7f093a2c4f40)]),
filter(nil), rowset=256
conds(nil), nl_params_([c.diag_obj_id(0x7f093a2c6390)]), batch_join=true
7 - output([o.diag_obj_id(0x7f093a2c4f40)], [c.diag_obj_id(0x7f093a2c6390)]), filter(nil), rowset=256
conds(nil), nl_params_([o.diag_obj_id(0x7f093a2c4f40)]), batch_join=true
8 - output([o.diag_obj_id(0x7f093a2c4f40)]), filter(nil), rowset=256
access([GROUP_ID(0x7f09db163be0)], [o.diag_obj_id(0x7f093a2c4f40)]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([o.diag_obj_id(0x7f093a2c4f40)]), range(MIN ; MAX)always true,
range_cond([o.diag_obj_id(0x7f093a2c4f40) = :5(0x7f09717c4fe0)])
9 - output([c.diag_obj_id(0x7f093a2c6390)]), filter(nil), rowset=256
access([GROUP_ID(0x7f09db163e10)], [c.diag_obj_id(0x7f093a2c6390)]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([c.diag_obj_id_descendants(0x7f093a2c5200)], [c.diag_obj_id(0x7f093a2c6390)]), range(MIN ; MAX),
range_cond([:6 = c.diag_obj_id_descendants(0x7f093a2c5200)(0x7f09db037640)])
10 - output([o1.diag_obj_id(0x7f093a2c6650)], [o1.diag_obj_name(0x7f093a2c8530)], [o1.show_seq(0x7f093a2c8ae0)]), filter([o1.diag_obj_type_id(0x7f093a2c7760)
= 'ZRB'(0x7f093a2c70b0)]), rowset=256
access([GROUP_ID(0x7f09db164040)], [o1.diag_obj_id(0x7f093a2c6650)], [o1.diag_obj_type_id(0x7f093a2c7760)], [o1.diag_obj_name(0x7f093a2c8530)], [o1.show_seq(0x7f093a2c8ae0)]),
partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([o1.diag_obj_id(0x7f093a2c6650)]), range(MIN ; MAX),
range_cond([:8 = o1.diag_obj_id(0x7f093a2c6650)(0x7f09db071580)])
Used Hint:
-------------------------------------
/*+
*/
Qb name trace:
-------------------------------------
stmt_id:0, stmt_type:T_EXPLAIN
stmt_id:1, SEL$1 > SEL$354178DD > SEL$45BDDFFB > SEL$A82D6C9D > SEL$63F8D9AB > SEL$C84FE138
stmt_id:2, SEL$2 > SEL$6E5640F5
stmt_id:3, SET$1
stmt_id:4, SEL$3
stmt_id:5, SEL$4 > SEL$862290CF > SEL$BA81EF59
stmt_id:6, SEL$5
Outline Data:
-------------------------------------
/*+
BEGIN_OUTLINE_DATA
LEADING(@"SEL$C84FE138" ("edu_dw"."b"@"SEL$5" "ANONYMOUS_VIEW1"@"SEL$2"))
USE_NL(@"SEL$C84FE138" "ANONYMOUS_VIEW1"@"SEL$2")
INDEX(@"SEL$C84FE138" "edu_dw"."b"@"SEL$5" "school_code")
FULL(@"SEL$3" "edu_dw"."dw_obj_teaching_classes_class"@"SEL$3")
USE_DAS(@"SEL$3" "edu_dw"."dw_obj_teaching_classes_class"@"SEL$3")
LEADING(@"SEL$BA81EF59" (("edu_dw"."o"@"SEL$4" "edu_dw"."c"@"SEL$4") "edu_dw"."o1"@"SEL$4"))
USE_NL(@"SEL$BA81EF59" "edu_dw"."o1"@"SEL$4")
USE_NL(@"SEL$BA81EF59" "edu_dw"."c"@"SEL$4")
FULL(@"SEL$BA81EF59" "edu_dw"."o"@"SEL$4")
USE_DAS(@"SEL$BA81EF59" "edu_dw"."o"@"SEL$4")
INDEX(@"SEL$BA81EF59" "edu_dw"."c"@"SEL$4" "diag_obj_id_descendants")
USE_DAS(@"SEL$BA81EF59" "edu_dw"."c"@"SEL$4")
FULL(@"SEL$BA81EF59" "edu_dw"."o1"@"SEL$4")
USE_DAS(@"SEL$BA81EF59" "edu_dw"."o1"@"SEL$4")
SIMPLIFY_EXPR(@"SEL$4")
SIMPLIFY_DISTINCT(@"SEL$2")
SIMPLIFY_DISTINCT(@"SEL$1")
MERGE(@"SEL$6E5640F5" > "SEL$354178DD")
UNNEST(@"SEL$5")
SEMI_TO_INNER(@"SEL$A82D6C9D" "VIEW1")
OUTER_TO_INNER(@"SEL$862290CF")
MERGE(@"SEL$5" > "SEL$63F8D9AB")
OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
END_OUTLINE_DATA
*/
Optimization Info:
-------------------------------------
b:
table_rows:637044
physical_range_rows:7083
logical_range_rows:1571
index_back_rows:1571
output_rows:0
est_method:local_storage
optimization_method:cost_based
avaiable_index_name:[school_code, dw_diag_obj]
pruned_index_name:[diag_obj_id]
table_id:509433:estimation info:(table_type:10, version:-1--1--1, logical_rc:1571, physical_rc:1571),
(table_type:11, version:-1--1--1, logical_rc:-1378, physical_rc:4134),
(table_type:12, version:-1--1--1, logical_rc:1378, physical_rc:1378)]
stats version:1690812050384966
dw_obj_teaching_classes_class:
table_rows:716853
physical_range_rows:2
logical_range_rows:2
index_back_rows:0
output_rows:2
est_method:local_storage
optimization_method:cost_based
avaiable_index_name:[class_id, dw_obj_teaching_classes_class]
pruned_index_name:[diag_obj_id]
table_id:500056:estimation info:(table_type:10, version:-1--1--1, logical_rc:717976, physical_rc:717976),
(table_type:11, version:-1--1--1, logical_rc:3424, physical_rc:6793)]
stats version:1690812121205118
o:
table_rows:637044
physical_range_rows:1
logical_range_rows:1
index_back_rows:0
output_rows:1
est_method:local_storage
optimization_method:rule_based
heuristic_rule:unique_index_without_indexback
stats version:1690812050384966
c:
table_rows:3056481
physical_range_rows:4
logical_range_rows:4
index_back_rows:0
output_rows:4
est_method:local_storage
optimization_method:cost_based
avaiable_index_name:[diag_obj_id_descendants, diag_obj_id]
unstable_index_name:[dw_diag_obj_closure]
table_id:509434:estimation info:(table_type:10, version:-1--1--1, logical_rc:3083252, physical_rc:3083252),
(table_type:11, version:-1--1--1, logical_rc:14634, physical_rc:34668)]
stats version:1690812053915354
o1:
table_rows:637044
physical_range_rows:1
logical_range_rows:1
index_back_rows:0
output_rows:0
est_method:local_storage
optimization_method:rule_based
heuristic_rule:unique_index_without_indexback
stats version:1690812050384966
Plan Type:
LOCAL
Expr Constraints:
1 = 1 result is TRUE
1 = 1 result is TRUE