powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Сбой при пересылке из SQL в DB2
7 сообщений из 7, страница 1 из 1
Сбой при пересылке из SQL в DB2
    #37183917
ДмитрийV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос начинающего.
Установил DB2 9.2 express, нужно перекинуть из SQL таблицу в 50 млн записей. Установил дома, на станции. 2 гига оперативы, 1 двухъядерный проц, места на диске - 60 Гб. Перекидываю экспортом данных из SQL. 16 млн перекинулось - вылетел "не хватает памяти". Центр команд на SELECT COUNT(*) FROM Calc отвечает, что, возможно, полны журналы. Увеличиваю количество журналов до 50, выделяю каждому размер в 5000, разбиваю исходную таблицу на 3. Первая таблица в 12 млн записей проходит нормально. На второй вылетает. Считаю записи в DB2 около 16 млн, чуть меньше. В документации написано, что ограничений на размер базы нет. Следил за журналами - нормально перезаписывались 3 раза, все 50. В чём дело? Может, есть-таки какие-то ограничения?
...
Рейтинг: 0 / 0
Сбой при пересылке из SQL в DB2
    #37183947
askfinder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ДмитрийV,

Попробуй при импорте указать COMMITCOUNT N , где N - число записей после которых делать принятие в БД.
...
Рейтинг: 0 / 0
Сбой при пересылке из SQL в DB2
    #37183979
ДмитрийV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
askfinder,

Я экспортирую стандартными средствами MSSQL, импортировать из DB2 пока не умею, даже не знаю - где это. Сейчас заливаю данные из третьего файла в другую таблицу, пока нормально прошли 2 млн. Там видно будет - попробую слить в одну, если позволит и не вылетит.
...
Рейтинг: 0 / 0
Сбой при пересылке из SQL в DB2
    #37184276
ДмитрийV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ДмитрийV,

Гражане, ну это - издевательство. Целый день протрахался, потом плюнул, запустил ещё раз, пошёл спать. Утром встаю - "команда выполнена успешно".
...
Рейтинг: 0 / 0
Сбой при пересылке из SQL в DB2
    #37184351
GVF112GVF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ДмитрийVДмитрийV,

Гражане, ну это - издевательство. Целый день протрахался, потом плюнул, запустил ещё раз, пошёл спать. Утром встаю - "команда выполнена успешно".

Очень хорошо! В своя время Я выполнял IMPORT данных из MS SQL стандартными средствами IBM DB2 (db2 import & db2 load).
Точно не помню, но у меня 50 000000 загружалось в течение 5-минут (выполнял commit через каждые 100000 записей для таблиц фактов).

Для простых таблиц (скрипт):

IMPORT FROM "/database/import/dataGenerator/big_dims_pub/tbl_Dim_Maxybox.csv"
OF DEL MODIFIED BY TIMESTAMPFORMAT="YYYY-MM-DD HH:MM:SS.UUUUUU" NOCHARDEL COLDEL0x09 COMMITCOUNT 1000
MESSAGES "/database/import/msg/tbl_Dim_Maxybox.txt"
INSERT_UPDATE INTO DBO.TBL_DIM_MAXYBOX;

Для таблиц фактов (скрипт):

LOAD FROM "/datatxt/dataGenerator/out_data/_fact_level_0_visitor_part_9.tsv"
OF DEL MODIFIED BY COLDEL0x09 NOCHARDEL TIMESTAMPFORMAT="YYYY-MM-DD HH:MM:SS.UUU"
MESSAGES "/database/import/msg/_fact_level_0_visitor_part.txt"
INSERT INTO DBO.TBL_FACT_VISITOR
NONRECOVERABLE DATA BUFFER 10000 SORT BUFFER 100000 CPU_PARALLELISM 10 DISK_PARALLELISM 16 INDEXING MODE AUTOSELECT ALLOW READ ACCESS USE TEMPSPACE1
ISOLATE_PART_ERRS NO_ISOLATION MODE PARTITION_AND_LOAD PARTITIONING_DBPARTNUMS (0, 1, 2, 3, 4);

SET INTEGRITY FOR DBO.TBL_FACT_VISITOR CHECK, MATERIALIZED QUERY, GENERATED COLUMN, STAGING, FOREIGN KEY IMMEDIATE UNCHECKED;

База данных с включенным режимом - Self tuning memory.
Log file size (4KB) (LOGFILSIZ) = 20000
Number of primary log files (LOGPRIMARY) = 30
Объем базы ~ 700 000 МБ

Думаю, что скорее всего DB2 не хватало ресурсов или ENGINE ожидал освобождение очередей.
Нужно смотреть файл db2diag.log (<instance-home>/sqllib/db2dump).

С уважением,
Вадим.
...
Рейтинг: 0 / 0
Сбой при пересылке из SQL в DB2
    #37184744
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
9.2 express - ха, это новость.

Как я заметил, IMPORT, по сравнению с LOAD, очень медленный (или LOAD, по сравнению с IMPORT, очень быстрый). На больших объёмах разница гигантская - десятки и сотни раз.

Даже вместо

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
UPDATE COMMAND OPTIONS USING C OFF ;
drop index...
drop index...
alter table ... activate not logged initially...
insert into ...
create index...
create index...
runstats on table...
commit;

выгоднее
Код: plaintext
1.
2.
declare cursor ...
load -- from cursor...

Журнал один, а вот файлов в нём много. Есть primary-файлы, которые лежат на диске постоянно, и есть secondary, которые создаются по потребности и удаляются, когда в них нет нужды. Как бы то ни было, если 50 миллионов вставляются в одной транзакции insert'ами (ы том числе через IMPORT), под них в журнале должно быть достаточно места ( место определяется как (количество primary + количество secondary) * размер), ну, а LOAD без этого обходится, да ещё может и индексы побыстрее переделать и статистику собрать. Так что экспортировать в CSV-файлы и грузить их LOAD'ом может быть разумно.

А ещё для облегчения таких дел существуют бесплатные IBM Migration Toolkit и IBM Data Movement Tool.
...
Рейтинг: 0 / 0
Сбой при пересылке из SQL в DB2
    #37185132
Фотография Andron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Load работает быстрее чем Import, потому что грузит данные напрямую в страницы базы без журналирования. Import же делает загрузку через обычные insert, и журналирует эти инсерты. См. Load overview
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Сбой при пересылке из SQL в DB2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]