Строили запрос для нахождения непрерывных диапазонов ID в таблице.
Общее кол-во записей в таблице 8848.
Получили 2 варианта. Первый вариант работает замечательно и на 2-ке, и на 
старом сервере с FB1, его приводить не буду.
А вот второй....

select a.id, min(a1.id)
 from Table1 a join Table1 a1 on a1.id >= a.id
where not exists (select * from Table1 p where p.id = a.id-1) and
       not exists (select * from Table1 p where p.id = a1.id+1)
group by a.id

FB2.0.3
PLAN (P INDEX (PK_TABLE1))
PLAN (P INDEX (PK_TABLE1))
PLAN JOIN (A ORDER PK_TABLE1, A1 INDEX (PK_TABLE1))

Почти 79 млн. чтений и выполняется 11 минут.

FB1.0.3
PLAN (P INDEX (RDB$PRIMARY122))
PLAN (P INDEX (RDB$PRIMARY122))
PLAN JOIN (A ORDER RDB$PRIMARY122, A1 INDEX (RDB$PRIMARY122))

106000 чтений, выполняется 2 секунды.


Попробовал избавиться от ORDER, поменял план на PLAN SORT (JOIN (A1 NATURAL, A 
INDEX (PK_TABLE1)))
"Соотношение сил" не изменилось.

Что не так?

-- 
Сергей Смирнов.

Ответить