![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Объем данных - 4,5 млн записей: не хватает вирт.памяти [D6, IB5.x]
RUYurik © (2004-01-15 07:59:00)
Всем приятного времени суток!
У меня вопрос: использую IBExtract для выгрузки данных. Только в одной таблице - 4,5млн. записей, а я таких 6 таблиц объединяю.
При Extr2.ExtractObject(eoTable,"PEOPLE",[etData]) ругается "Не хватает виртуальной памяти". Как быть, или что использовать для выгрузки этих данных в подготовленном виде, типа "Insert into..." и чтобы памяти много не ело?
Flagman (2004-01-15 08:25:00) [21]
Насколько я понимаю, нужно сгенерить текстовый запрос типа:
INSERT INTO TBL1(N1, N2,...) VALUES (V11, V21,...);
INSERT INTO TBL1(N1, N2,...) VALUES (V12, V22,...);
INSERT INTO TBL1(N1, N2,...) VALUES (V13, V23,...);
...
...
INSERT INTO TBL1(N1, N2,...) VALUES (V10003, V20003,...);
...
COMMIT;
Т.к. Vх везде и всюду тебе известно, можно генерить просто текстовый файл. Причем коммит должен стоять через разумные количества строк (напр. через 500). Потом вызвать его в IBQuery (или FIBQuery) и выполнить.
Кроме того можно саму генерацию делать после каждого коммита для новой порции данных - тогда вообще можно будет не оглядываться какие у тебя объемы данных...
За точность синтаксиса не ручаюсь, ежели что проверить можно в том же IBExpert"е ... ;)
jack128 (2004-01-15 08:19:00) [22]
А ручками никак? Имхо не так их и сложно..
RUYurik (2004-01-15 08:10:00) [23]
Я в программе использую это, не хотелось бы пользоваться IBExprt"ом.
Flagman (2004-01-15 08:05:00) [24]
Попробуй IBExpert, я им пользуюсь. Правда с таким объемом данных не пробовал, но может потянет. А в принципе, можно просто самому построитель запроса написать - там же строчка типовая...