А ведь ошибся :(
Но для
select * from test_table3 t1 left join test_table3 t2
on t1.ID1 = t2.ID2 and t2.id2 = 3
получаем
PLAN JOIN (T1 NATURAL, T2 INDEX (TEST_TABLE3_ID2, TEST_TABLE3_ID1))
и 10/2 чтений
Число чтений верное, но план, разумеется, такой
PLAN JOIN (T1 NATURAL, T2 INDEX (TEST_TABLE3_ID2))
Оказывается,
select * from test_table3 t1 left join test_table3 t2
on ((t1.ID1 = t2.id2) OR (t1.ID1 is null and t2.ID2 is null)) and
(t2.id2 = 3)
при плане PLAN JOIN (T1 NATURAL, T2 INDEX (TEST_TABLE4_ID2,
TEST_TABLE4_ID2))
требует аж 10/16 чтений
Естественно, PLAN JOIN (T1 NATURAL, T2 INDEX (TEST_TABLE3_ID2,
TEST_TABLE3_ID2))