Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как заставить INTERBASE изменить план [D7, IB5.x, IB6.x]


Страницы:   1 2

den_777 ©   (2005-02-21 16:43:00) 

Проблема в следующем. Предположим есть таблица со следующими полями
field1 integer,
field2 integer,
field3 integer,
field4 varchar(10),
field5 varchar(5),
field6 varchar(2),
field7 varchar(2)

создан индекс
CREATE INDEX IDX1 ON MYTBL(FIElD4,FIElD5,FIElD6,FIElD7);

Выполняется запрос
select distinct FIElD4,FIElD5,FIElD6,FIElD7 from MYTBL
И Intebase 5.6 и FireBird1.5.1 строят один и тот же план:
PLAN (MYTBL NATURAL)
а план подставленный вручную
PLAN ((MYTBL index (IDX1)))
пониматься не хочет.

Это так и заложено в идеологии баз с многоверсионностью записей или просто недоработка INTERBASE, ведь вся информация для моего запроса может быть извлечена из индекса, а INTEBASE никак не хочет этого делать.


den_777   (2005-02-21 16:59:00) [21]


> ИБ вроде не умеет брать инфу из индекса

Именно про это я и справшивал. Умеет или нет брать INTERBASE информацию из индекса, а желаемый мною план уже написан выше

Вопрос не случаен, просто когда я работал с INFORMIX, там даже такое понятие в сосавляемом оптимизаторе плане было "INDEX ONLY", т.е когда в запросе перечислены только поля, которые входят в какие либо индексы по этой таблице, то обращение к самой таблице не будет вовсе.


Sergey13   (2005-02-21 16:52:00) [22]

2den_777  
А какой план ты хотел увидеть для чтения всей таблицы? ИБ вроде не умеет брать инфу из индекса. Хотя может я и ошибаюсь.


Vemer   (2005-02-21 16:47:00) [23]

forum.ibase.ru
sql.ru


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо