![]() |
Модераторы: Akella |
![]() ![]() ![]() |
|
mspuz |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 20.6.2005 Где: Ногинск Репутация: нет Всего: нет |
У меня есть таблица, которая находится в одной БД и есть таблица в другой БД. Я делаю запрос в первую из них и далее в цикле делаю такие операции
Проблема в том, что там 55 000 записей и это довольно медленно копируется ![]() |
|||
|
||||
chief39 |
|
|||
![]() карманная тигра ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1631 Регистрация: 20.5.2005 Где: Киев Репутация: нет Всего: 77 |
То есть ты делаешь это через делфи?
Есть вариант. Не помню есть ли такое в IB.... Что-то вроде "удалённых серверов". Регистрируешь такую базу и работаешь с её таблицами как с местными. То есть: insert into myRemoteServer.remoteDB.mytable(.....) select .... from mytable. Покопай доку в этом направлении - должно быть и в IB такое -------------------- Люди - это свечи. Они либо горят, либо их - в жопу!(с) |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 1 Всего: 538 |
Модератор: перенесено из Общие вопросы по базам данных
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Dimyan |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 441 Регистрация: 12.1.2004 Где: Новосибирск Репутация: нет Всего: 4 |
Имеет смысл перенести это в раздел Делфи, т.к. IB\FB не поддерживает гетерогенные запросы! -------------------- Как хорошо ничего не делать, а потом еще немного отдохнуть :) |
|||
|
||||
Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 7 Всего: 162 |
Быстрее способ построить это все на sql запросах и транзакцию на запись открыть в начале добавлений, а подтвердить ее после всех добавлений. В вашем примере ibtable подтверждает транзакцию каждый раз как вы делаете post это подтверждение и занимает у вас основное время при добавлении
Добавлено @ 02:10 О том какого ускорения можно ожидать можите прочитать здесь http://forum.vingrad.ru/index.php?showtopic=55541 -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
Linco |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 14.2.2006 Репутация: нет Всего: нет |
Во первых используйте компоненты помощнее типа FIBPlus
во вторых в их составе и в составе IBX по-моему есть специальные компоненты BatchXXX для копирования больших объемов данных в третьих, действительно, лучше делать commit транзакции не после каждой записи а после 500/1000 записей. В четвертых через SQL не скопируешь ибо нет гетерогенных запросов. Это сообщение отредактировал(а) Linco - 23.3.2006, 16:09 |
|||
|
||||
Dynamic |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 372 Регистрация: 5.7.2004 Где: Салехард Репутация: 1 Всего: 15 |
-------------------- Было бы о чем молчать, а уж что сказать – всегда найдется... |
|||
|
||||
AZDesign |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 24.6.2005 Репутация: нет Всего: нет |
Я делаю еще проще:
Пишу маленькую процедуру, которая сохраняет таблицу в SQL-скрипт, а потом вставляю его в другую БД с помощью isql.exe Для этого метода 55000 записей - это вообще копейки Только что вставил 23000000 (23 млн) записей без проблем. Для скрипта есть еще полезные свойства: - возможность переформатировать(перестроить) запись - при наличии ошибок, например, нарушение уникальности, скрипт отметить ее и пойдет дальше. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
и действительно, ЗАЧЕМ??? ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Interbase" | |
|
Обязательно указание: 1. Версию InterBase (Firebird, Yaffil) 2. Способа доступа (ADO, BDE, IBX и т.д.)
Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Firebird, Interbase | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |