Hello, Alexey!

Alexey Popov wrote:

Очевидно оптимизатор не понимает, что в данном случае order by a
эквивалентен order by b,a.

с чего бы это эквивалентен???

Строка INDEX (IDX_A, IDX_B) как я понимаю означает слияние битовых масок.

ага

При этом выходной поток можно автоматически сделать отсортированным по IDX_A.

в плане это написано:
EVENTS ORDER IDX_A

И вот что оказалось. Максимальную для данного запроса даёт план
PLAN SORT ((EVENTS INDEX (IDX_B))), который означает выборку по индексу
IDX_B, и сортировку для выхода.

дык, это не секрет

> Очевидно что быстрее отсортировать
> небольшой массив в памяти чем сливать битовые маски.
не в битовых масках дело. а в table order index:

http://www.ibaseforum.ru/viewtopic.php?f=4&t=4175


--
Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34


Ответить