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