Hello, DmitryLe!
DmitryLe wrote:
Это я обкурился или кто-то другой?
ты.
По полю parentindex есть индекс select * from commoditytree where parentindex like '0%' План PLAN (COMMODITYTREE INDEX (COMMODITYTREE_IDX1))
оптимизатор видит, что поиск будет по началу строки, и подцепляет индекс.
select * from commoditytree where parentindex like ?P План PLAN (COMMODITYTREE NATURAL)
оптимизатор видит, что поиск будет хрен знает по чем, выбирает натуральный перебор. select * from commoditytree where parentindex like '0'||'%' то же самое. здесь конкатенация, т.е. фукнкция. Аналог field+0 и так далее. сначала идет анализ запроса, потом формирование плана, а потом выполнение запроса. Т.е. в случае :p и конкатенации сервер на этапе анализа запроса НЕ МОЖЕТ понять что там будет. То есть, после prepare план уже изменить, переоценить и т.п невозможно. -- Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34

