![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Добавление большого количества записей
snake1977 © (2004-09-14 09:47:00)Здравствуйте! подскажите, пожалуйста идею, как оптимально сделать. Задача примерно такова: есть две таблицы, главная и подчиненная, в котрые надо добавить порядка 50000 записей из другой таблицы (добавлять надо ежедневно). при добавлении необходимо следить чтобы добавляемые записи не дублировали уже имеющиеся в таблице.
Я пробовал сделать таким образом:
1.береться текущая запись из таблицы источника.
2.ставлю фильтр на главную таблицу приемника, с данными записи из таблицы источника.
3.т.к. таблицы приемника связанны то автоматически происходит фильтрация подчиненной таблицы.
4.если в главное таблице приемнике после фильтрации пусто, то заполняю ее.
5. если в подчиненой таблице приемнике, записи не встретилось, то добавляю запись из таблицы источника в эту подчиненую таблицу.
6. если не конец таблицы источника, то к пункту 1
по данному алгоритму добавление записей происходит часов 5
:((
ну очень медленно :(
пробовал устанавливать индексы, пока не добился хотябы 5-и часового процесса.
таблицы парадоксовские.
тут таблицы имеют след. смысл: главная таблица выступает в качестве групирующей, т.е. например в ней зашиты категории товара, а в подчиненной его движение.
Alex_Bredin (2004-09-14 10:41:00) [1]batAppendUpdate
Alex_Bredin (2004-09-14 10:32:00) [2]два BatchMove c параметром batAppend - 5 сек
Sergey13 (2004-09-14 09:54:00) [3]А каков критерий дублируемости? По ключевому полю или как то еще? И каков предполагаемый процент "дубляжа"?
ИМХО можно, при наличии уникального индекса, прямо валить в приемник с обработкой исключений.
Digitman (2004-09-14 09:52:00) [4]а как этот алгоритм соотносится с организованными тобой транзакциями ? как ты управляешь ими при этом, по какой логике ?
ЮЮ (2004-09-14 09:51:00) [5]>ставлю фильтр на главную таблицу приемника, с данными записи из таблицы источника
Напиши один запрос и получи все недостающие записи сразу