А ведь ошибся :(

Но для

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

Ответить