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

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

View [D6, IB6.x]


Bishop ©   (2002-09-25 11:51:00) 

Необходимо сортировать View, составленный из нескольких таблиц по полю одной из них. Так, чтобы select * from MyView был уже сортирован. Это возможно?


Alexandr   (2002-09-25 13:06:00) [1]

просто индекс не используется (нельзя использовать) для order by.
Почему? Тут уже надо смотреть... на view и не запрос.
Поэтому сортировка делается на диске в файле, что значительно дольше.

К слову, в Yaffil при такой сортировке выйгрыш будет в несколько раз (в зависимости от имеющейся свободной памяти)


Bishop   (2002-09-25 12:45:00) [2]

Хранима процедура работает,если там есть PLAN (указание индексов сортировки). Но если в "select процедура" написать where, то опять все зависает на минуту.
Видимо, никак не заставить view сортироваться автоматом (как таблицы по primary key).


Bishop   (2002-09-25 12:02:00) [3]

View на 200 тыс. записей. Если Order by в запросе (TFibDataSet), то надо свой PLAN писать, это неудобно, если меняется сам запрос (появляется сложный where). Просто order by Interbase плохо обрабатывает (около 10 секунд). Хранимую процедуру сейчас попробую сделать. Так что большое спасибо. :)


Sedunov Vitaly   (2002-09-25 11:54:00) [4]

А Order by не поможет? Или индексное поле задать в ADODataSet или TTable... Еще вариант: хранимая процедура, которая возвращает сортированыый как надо список.


Наверх

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