вставить в базу 4.8млн строк

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
Ork Yason
Сообщения: 40
Зарегистрирован: 26 янв 2006, 15:07

вставить в базу 4.8млн строк

Сообщение Ork Yason » 30 янв 2007, 14:33

чуток подупала база ФБ1.5

починил, но данные из одной таблицы пришлось полностью экспортировать в скрипт, чтоб ее пресоздать...

теперь есть почти 5млн строчек

написал программку на билдере, будет построчно вставлять, делать коммит после 10тыщ (как не раз уже писалось)

вопрос, может кто делал подобное, на вскидку на 2.6 семпроне, 512гб - сколько часов это будет происходить (видна 2000)

ставить на ночь?!

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 30 янв 2007, 14:37

фиг знает. тут из external table люди 38 миллионов записей за 30 минут вставляют. но с учетом семпрона и т.п. - может быть несколько часов.

bser
Сообщения: 4
Зарегистрирован: 02 фев 2007, 22:22

Re: вставить в базу 4.8млн строк

Сообщение bser » 06 фев 2007, 13:15

Попробуй создать на основе данных таблицу с разделителями колонок в виде табуляции. Затем создай external таблицу в Firebird, которая будет ссылаться на этот файл с разделителями. Единственная проблема - нужно чтобы длина символов в колонке соответствовала тому количеству, которое заявлено в скрипте создания внешней таблицы. После успешного создания такой таблицы Firebird будет использовать этот файл с разделителями как таблицу - в него можно будет что-то писать через insert и делать select. Может insert into new_table (id,name) select id,name from external_table будет быстрее... Но так не пробовал. Удачи.

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 06 фев 2007, 13:29

Мне на Целероне 2.4 с параметризованными запросами удавалось вставлять до 1000 записей в секунду. Так что часа на полтора - два работа, даже если тупо скормить скрипт isql-ю.

Ответить