Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Firebird, Interbase > Индексы


Автор: pavelv 27.2.2008, 18:25
Table1: поля A,B,C...Индекс по полю A
table2: справочник связанный с Table1 по полю B
Проще показать на примере:
Код

select *
from Table1
order by A


IbExpert показывает в Plan JOIN использование индекса.

Код

select Table1.*,Table2.*
from Table1
left join Table2 on Table1.B=Table2.B
order by Table1.A

Уже ни о каких индексах речь не идёт, собственно это видно и по времени выполнения  запроса. Не могу понять почему во втором запросе сервер не использует индекс, ведь там фактически присоединение записей идёт. Может, что не так делаю?

Автор: Deniz 28.2.2008, 07:10
Замени left join на inner join
Есть ли индекс по полю Table1.B?
Table2.B - первичный ключ?

Автор: pavelv 6.3.2008, 07:22
Заменял и просто во from таблицы указывал. Table2.B первичный ключ в Table2.

P.S> Писал уже подобное, но почему-то тогда не отправилось

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)