Текущий архив: 2003.04.03;
Скачать: CL | DM;
ВнизПередача данных из одной БД в другую (IB5.6) Найти похожие ветки
← →
Мария В. (2003-03-12 11:09) [0]Люди, помогите!
Нужно каждый день добавлять данные из таблицы в одной БД в аналогичную таблицу в другой БД. Работаем с InterBase 5.6 через BDE, алиасы у баз естественно разные. Таблицы оч-чень большие. Самый простой способ - открыть запросом исходную таблицу и, двигаясь по ней, insert-ами добавлять записи в таблицу-приемник - работает крайне медленно. Просто клиническая смерть!
Может кто-нибудь знает способ побыстрее - напишите, пожалуйста.
Заранее спасибо.
← →
Юрий Жуков (2003-03-12 12:44) [1]Э-эх
Делаешь скрипт типа
Insert into ....
// повторить не меньше 1000 раз мона и болеее
commit;
Читай доку по работе с IB
← →
MsGuns (2003-03-12 13:04) [2]BatchMove решит ваши проблемы. То же, в принципе, что и Юрий Жуков © (12.03.03 12:44), только не надо страдать, ручками стряпая запросы.
← →
Wellslava (2003-03-12 13:18) [3]напиши другую прогу, и с помощью компонента BatchMove (страница Data Access)передавать данные... он работает пакетно, поэтому намного быстрее запросов.
← →
Юрий Жуков (2003-03-12 13:46) [4]2Wellslava: А что значит работает пакетно? IB, как я понимаю, фиолетово как работает BatchMove вкупе с BDE. Я особо не вкурсе позволяет ли сам IB городить гетерогенные(в смысле между базами) запросы. Это был бы самый быстрый вариант.
← →
zacho (2003-03-12 13:49) [5]
> позволяет ли сам IB городить гетерогенные(в смысле между
> базами) запросы
Насколько помню - нет.
← →
y-soft (2003-03-12 13:49) [6]Сам IB гетерогенные запросы не позволяет. Позволяет лишь делать двухфазный коммит
← →
Wellslava (2003-03-12 14:47) [7]Юрий Жуков: Я имел ввиду, что он берет все данные оптом переносит их в другую таблицу, минуя все триггеры и генераторы, поэтому в принципе потом надо обновлять генераторы... По крайнер мере я так делал, и довольно быстро все передавалось... (быстрее запросов на Insert)
← →
alexvan (2003-03-12 15:21) [8]Господа! У меня аналогичная тема. Только поэтому влезаю сюда. Я согласен что BatchMove это удобнее и быстрее как через компонент, так и через Table.BatchMove(). Но у меня прабла в том, что таблицы с другой машины к себе закачиваю без каких либо проблем, а вот для того чтобы их передать обратно-уже проблема. Насколько я помню функция BatchMove возвращает количество записей? А у меня ни фига. Хотя таблы не пустые. И BatchMove.Mode:=batCopy. Подскажите, кто с этим сталкивался.
← →
Юрий Жуков (2003-03-12 16:11) [9]2Wellslava: ошибаешься. BatchMove никак не отключает триггеры и констраинты в IB. Ктстати а ведь отключение триеггров и констраинтов приведет должно действительно привести к ускорению на больших объемах.
← →
Мария В. (2003-03-13 16:53) [10]Всем спасибо!
BatchMove несколько ускорил дело. Триггеров и констреинтов у этой таблицы нет, но мысль полезная.
Страницы: 1 вся ветка
Текущий архив: 2003.04.03;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.008 c