Вниз
Скачать: CL | DM;

Добавление большого количества записей   Найти похожие ветки 

← →
snake1977   (2004-09-14 09:47) [0]

Здравствуйте! подскажите, пожалуйста идею, как оптимально сделать. Задача примерно такова: есть две таблицы, главная и подчиненная, в котрые надо добавить порядка 50000 записей из другой таблицы (добавлять надо ежедневно). при добавлении необходимо следить чтобы добавляемые записи не дублировали уже имеющиеся в таблице.
Я пробовал сделать таким образом:
1.береться текущая запись из таблицы источника.
2.ставлю фильтр на главную таблицу приемника, с данными записи из таблицы источника.
3.т.к. таблицы приемника связанны то автоматически происходит фильтрация подчиненной таблицы.
4.если в главное таблице приемнике после фильтрации пусто, то заполняю ее.
5. если в подчиненой таблице приемнике, записи не встретилось, то добавляю запись из таблицы источника в эту подчиненую таблицу.
6. если не конец таблицы источника, то к пункту 1

по данному алгоритму добавление записей происходит часов 5
:((
ну очень медленно :(
пробовал устанавливать индексы, пока не добился хотябы 5-и часового процесса.

таблицы парадоксовские.
тут таблицы имеют след. смысл: главная таблица выступает в качестве групирующей, т.е. например в ней зашиты категории товара, а в подчиненной его движение.


← →
ЮЮ ©   (2004-09-14 09:51) [1]

>ставлю фильтр на главную таблицу приемника, с данными записи из таблицы источника

Напиши один запрос и получи все недостающие записи сразу


← →
Digitman ©   (2004-09-14 09:52) [2]

а как этот алгоритм соотносится с организованными тобой транзакциями ? как ты управляешь ими при этом, по какой логике ?


← →
Sergey13 ©   (2004-09-14 09:54) [3]

А каков критерий дублируемости? По ключевому полю или как то еще? И каков предполагаемый процент "дубляжа"?
ИМХО можно, при наличии уникального индекса, прямо валить в приемник с обработкой исключений.


← →
Alex_Bredin ©   (2004-09-14 10:32) [4]

два BatchMove c параметром batAppend - 5 сек


← →
Alex_Bredin ©   (2004-09-14 10:41) [5]

batAppendUpdate



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.021 c
1-1095842295
Marat
2004-09-22 12:38
2004.10.10
Проблема с загрузкой проекта


1-1096275024
Aleksandr.
2004-09-27 12:50
2004.10.10
Можно ли как-то оптимизировать этот код (для скорострельности)?


4-1094461814
Паскаль
2004-09-06 13:10
2004.10.10
button1.enabled:=sendmessage(...,em_canudo,0,0) выдает ошибку!


1-1096035395
Still Swamp
2004-09-24 18:16
2004.10.10
ASM проблема пересылки данных


4-1094191026
Chery
2004-09-03 09:57
2004.10.10
Как перехватить нажатие клавиш Shift + Delete ?




   Наверх