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

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

Помогите, пожалуйста, укорить работу. [D3, IB5.x]


Oleon ©   (2002-06-24 11:39:00) 

Есть у меня процедура.

for select ID, SERIAL, NUMBER, OPERDATE
from blankprihodlist bp
where OPERDATE <= :ADate
and (RashodDate > :ADate or RAshodDate is NULL)
and OPERDATE = (select max(OPERDATE)
from blankprihodlist
where serial = bp.SERIAL
and NUMBER = bp.NUMBER)
order by Serial, Number
into :ID_,:Serial, :Number, :THEDATE do
Begin
suspend;
End

Какие мне индексы нужно создать, чтобы быстрее работало? А то у меня 50000 записей и результата я дождаться не могу.


Desdechado   (2002-06-25 10:59:00) [1]

и при использовании подзапроса скорость заметно падает. подумай, может, как-то можно заменить его на объединение таблиц.


AlexGreg   (2002-06-24 12:29:00) [2]

Привет Oleon.

Индексы создавай для полей, на которые накладывается условия WHERE.
Причём, если поля из одной таблицы и в WHERE встречаются через AND, то один индекс на оба поля. Если через OR, то лучше по инднксу на каждое поле

Удачи :0)


Наверх

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