Как организовать перенос записей из БД в БД
Модераторы: kdv, Alexey Kovyazin
-
- Сообщения: 7
- Зарегистрирован: 08 июл 2006, 18:41
Как организовать перенос записей из БД в БД
Эта тема конечно перекликается со многими озвученными, но...
Есть большая порядка 1 GB БД в которой в основном 1 большая таблица порядка 14 млн. записей размер страницы БД 4К
Задача выполнить архивирование данных с временем записи < T
Т.е. результат две БД - старая БД и новая БД с данными > T
Делаю так.
1. select из таблицы большой БД в файл (USE Delphi IBSQL BatchOutput) где время > T
2. gbak - структуры
3. gbak - восстанавкливаем
4. Удаляем индексы на таблицу
5. Insert данных в таблицу новой БД (delphi IBSQL BatchInput)
6. Восстанавливаю индексы.
Вопрос. У меня скорость добавления данных около 100 записей в секунду, а что быстрее это нельзя делать?
Есть большая порядка 1 GB БД в которой в основном 1 большая таблица порядка 14 млн. записей размер страницы БД 4К
Задача выполнить архивирование данных с временем записи < T
Т.е. результат две БД - старая БД и новая БД с данными > T
Делаю так.
1. select из таблицы большой БД в файл (USE Delphi IBSQL BatchOutput) где время > T
2. gbak - структуры
3. gbak - восстанавкливаем
4. Удаляем индексы на таблицу
5. Insert данных в таблицу новой БД (delphi IBSQL BatchInput)
6. Восстанавливаю индексы.
Вопрос. У меня скорость добавления данных около 100 записей в секунду, а что быстрее это нельзя делать?
-
- Заслуженный разработчик
- Сообщения: 644
- Зарегистрирован: 15 фев 2005, 11:34
Мда... на ибэйз тоже пятница...
А сбэкапить БД, потом отресторить рядышком потом на обе БД натравить delete from... where some_date > ..., на другую натравить delete from... where some_date < ... . Мона потом для обоих половинок проделать бэкап/рестор, для прохвилактики.
Данные нахрена на клиента тянуть? Шоб слоники бегали?
А сбэкапить БД, потом отресторить рядышком потом на обе БД натравить delete from... where some_date > ..., на другую натравить delete from... where some_date < ... . Мона потом для обоих половинок проделать бэкап/рестор, для прохвилактики.
Данные нахрена на клиента тянуть? Шоб слоники бегали?
-
- Заслуженный разработчик
- Сообщения: 644
- Зарегистрирован: 15 фев 2005, 11:34
-
- Сообщения: 7
- Зарегистрирован: 08 июл 2006, 18:41
-
- Заслуженный разработчик
- Сообщения: 644
- Зарегистрирован: 15 фев 2005, 11:34
Моя тихо сползать на пол и ну валяться...Sashka4000 писал(а):insert into TABLE1 (p1,p2,p3) values (:p1,:p2,:p3)WildSery писал(а):Можно и нужно.
Заливка данных, да ещё без индексов, ведётся на порядок быстрее обычно.
К сожалению, не вижу, как именно ты заливаешь, кроме того, что для этого используется BatchInput.
Автор, Вы не читать пробовали? Для того чтоб расколоть БД на 2 не надо ее тянуть на клиента и потом по одной записи пихать обратно. Это можно сделать на 2 порядка быстрее, прямо на сервере!
... А теперь посмотри как я снесу промеж ног... (с, Балда)
Помнишь как оне лошадь носили? так вот сейчас ты пытаешься нести лошадь как тот чертенок... что Эээ.. несколько неразумно...
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05