![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
InterBase господа - тормозим [D6, IB6.x]
Korwin © (2002-10-18 09:43:00)Доброго времени суток, уважаемые мастера.
Суть проблемы - имеется таблица в базе данных связанная по ключевому полю с другой таблицей. На стадии разработки попробовал сотворить заполнение обеих таблиц, с количесвом записей 100 000:1 000 000 (близкое к рабочей реальности).
При попытке поиска, скажем по какому либо полю применяя Locateпроцесс умирает минут на 20 (а машина при этом не из слабых). При поиске даже закрываю связанную таблицу 2.
В программе таблица 1 находится в открытом состоянии (для скролинга). Если, например, организовать извращённый поиск посредством SQL запроса (правильнее сказать выборки) получаем довольно таки быстренько эту запись, но если нужно перейти на следующую запись в таблице 1 (а её то не - выборка отрезала) получаем проблему.
Итак, даже если нахожу данную запись в базе, то как к ней быстро перейти при этом не потеряв возможности доступа к остальным записям.
Пожалуйста, подскажите дельную мысль. Может есть другие средства доступа к записи, зная, скажем её ключевое поле.
roottim (2002-10-18 11:51:00) [1]>В программе таблица 1 находится в открытом состоянии (для скролинга).
подразумевает ли это , что 2-й датасет закрыт во время локации
NeyroSpace (2002-10-18 11:43:00) [2]А курсор для этих целей не подходит?
Наталия (2002-10-18 09:53:00) [3]Используй запросы. Например, один - для отображения данных, другой для поиска записи. Есть масса вариантов. Использовать Table при работе с клиент-сервером и есть извращение.
Digitman (2002-10-18 09:51:00) [4]Тебе, возможно, вот сюда
http://www.ibase.ru/devinfo/delmany.htm
Попробуй сопоставить описываемую в статье проблему (связанную с особенностью garbage collection в IB-сервере) с последовательностью своих действий.