Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Мониторинг импорта
|
|||
|---|---|---|---|
|
#18+
Подскажите, можно ли как-то мониторить процесс импорта большого объема данных в таблицу? Я запустил импорт нескольких десятков миллионов строк в таблицу (с COMMITCOUNT=2000), прошел день, команда все еще выполняется, попробовал сделать запрос select count(*) к таблице - он подвис. Как можно узнать, сколько строк уже вставлено? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 11:43 |
|
||
|
Мониторинг импорта
|
|||
|---|---|---|---|
|
#18+
0ri0n, Указывайте файл сообщений в messages, оно туда пишет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 12:18 |
|
||
|
Мониторинг импорта
|
|||
|---|---|---|---|
|
#18+
Да, спасибо. Попробовал грузить этот IXF файл с данными командой LOAD - получаю ошибку SQL3004N The filetype parameter is not valid. В описании сказано в том числе, что "IXF files cannot be used to load into a table defined in a partitioned database." У меня БД партицирована. Можно ли как-нибудь обойти ошибку? Или самая быстрая загрузка, какую я могу использовать для этого IXF файла - это импорт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 14:22 |
|
||
|
Мониторинг импорта
|
|||
|---|---|---|---|
|
#18+
0ri0nПопробовал грузить этот IXF файл с данными командой LOAD - получаю ошибку SQL3004N The filetype parameter is not valid. В описании сказано в том числе, что "IXF files cannot be used to load into a table defined in a partitioned database." У меня БД партицирована. Можно ли как-нибудь обойти ошибку? Или самая быстрая загрузка, какую я могу использовать для этого IXF файла - это импорт?Вы можете грузить в партицированную таблицу load'ом только с CONFIG MODE LOAD_ONLY_VERIFY_PART Loading data in a partitioned database environment т.е. когда известно, что в ixf - только данные для текущей партиции. Иначе вы можете загрузить ixf в непартицированную таблицу load'ом, а потом сделать load from cursor в целевую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 14:50 |
|
||
|
Мониторинг импорта
|
|||
|---|---|---|---|
|
#18+
Марк, спасибо, прочту. Таблица, в которую я гружу данные, создана мной без всяких параметров партицирования. А вот БД скорее всего партицирована. Еще вопрос по странному поведению импорта - экспорт был сделан из таблицы запросом select cast(col1 as double) from T1, столбец col1 имел тип decimal(18, 2). Соответственно, сейчас в таблицу T2, где col1 имеет тип decimal(18, 2), импорт не идет, т.к. тип столбцов не совпадает. Но импорт так же не идет и в таблицу T3, где col1 имеет тип double: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 15:33 |
|
||
|
Мониторинг импорта
|
|||
|---|---|---|---|
|
#18+
Нашел причину ошибок, она была не в типах данных, а в порядке следования выгружаемых столбцов в операторе select при экспорте и следовании столбов таргет-таблицы при ее создании, этот порядок отличался (в примере я не указал всех выгружаемых/загружаемых столбцов). Получается, при импорте DB2 вставляет значения в таблицу не по именам столбов, а по порядку следования значений в файле экспорта - первое значение в первое поле таблицы, второе во второе, и т.д. После пересоздания таблицы с совпадающим порядком столбцов импорт заработал. Но скорость очень мала, а LOAD запустить так и не удалось, не грузились данные даже не в партицированную таблицу. Использование указанных опций пока невозможно, т.к. файл экспорта лежит на моем клиенте, а в документации сказано, чтоавторYou cannot use the LOAD_ONLY or LOAD_ONLY_VERIFY_PART modes with the CLIENT option. Еще попробовал для ускорения воспользоваться опцией NOT LOGGED INITIALLY: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2010, 10:00 |
|
||
|
Мониторинг импорта
|
|||
|---|---|---|---|
|
#18+
0ri0nНашел причину ошибок, она была не в типах данных, а в порядке следования выгружаемых столбцов в операторе select при экспорте и следовании столбов таргет-таблицы при ее создании, этот порядок отличался (в примере я не указал всех выгружаемых/загружаемых столбцов). Получается, при импорте DB2 вставляет значения в таблицу не по именам столбов, а по порядку следования значений в файле экспорта - первое значение в первое поле таблицы, второе во второе, и т.д.Для этого в команде import можно использовать METHOD N с указанием колонок. 0ri0nПосле пересоздания таблицы с совпадающим порядком столбцов импорт заработал. Но скорость очень мала, а LOAD запустить так и не удалось, не грузились данные даже не в партицированную таблицу.Почему не грузились? Как именно запускался LOAD, и какие ошибки были?0ri0nЕще попробовал для ускорения воспользоваться опцией NOT LOGGED INITIALLY: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2010, 10:28 |
|
||
|
Мониторинг импорта
|
|||
|---|---|---|---|
|
#18+
Mark BarinsteinПочему не грузились? Как именно запускался LOAD, и какие ошибки были?Запускаю с клиента для загрузки тестовой непартицированной таблицы: Код: plaintext 1. 2. 3. 4. Mark Barinstein0ri0nЕще попробовал для ускорения воспользоваться опцией NOT LOGGED INITIALLY: ALTER TABLE ... ACTIVATE NOT LOGGED INITIALLY; IMPORT FROM 'C:\....ixf' OF IXF RESTARTCOUNT 50000 MESSAGES 'C:\....msg' INSERT INTO ...; Команда импорта зависла. Если после операции ALTER поставить COMMIT, то импорт начинает работать, но, как я понимаю, COMMIT сбрасывает настройку NOT LOGGED INITIALLY? (Клиент Quest Central for DB2, autocommit отключен). Да.А как можно объяснить, что без коммита после alter table команда импорта виснет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2010, 11:16 |
|
||
|
Мониторинг импорта
|
|||
|---|---|---|---|
|
#18+
0ri0nMark BarinsteinПочему не грузились? Как именно запускался LOAD, и какие ошибки были?Запускаю с клиента для загрузки тестовой непартицированной таблицы: Код: plaintext 1. 2. 3. 4. 0ri0nА как можно объяснить, что без коммита после alter table команда импорта виснет?Трудно сказать, почему оно виснет. Может из-за переполнения логов, может из-за того, что при commit в этом случае надо все гразные страницы для таблицы сбросить на диск (и оно долго идёт, создавая эффект "зависания"), может ещё из-за чего. Это состояние приложения смотреть в этот момент. Вы бы лучше не использовали not logged initially, а вместо этого commit count выставляли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2010, 12:20 |
|
||
|
Мониторинг импорта
|
|||
|---|---|---|---|
|
#18+
Mark BarinsteinДа, с клиента вы не загрузите из ixf...Получается, из IXF нельзя грузить данные LOAD'ом даже в непартицированные таблицы (если БД партицирована)? Mark BarinsteinТрудно сказать, почему оно виснет. Может из-за переполнения логов, может из-за того, что при commit в этом случае надо все гразные страницы для таблицы сбросить на диск (и оно долго идёт, создавая эффект "зависания"), может ещё из-за чего. Это состояние приложения смотреть в этот момент. Вы бы лучше не использовали not logged initially, а вместо этого commit count выставляли.Я тестировал на пустой таблице с NOT LOGGED INITIALLY загрузку импортом 3 строчек, логи не могли переполниться. Та сессия, в которой я запустил импорт нескольких строк в тестовую таблицу с NOT LOGGED INITIALLY вчера, до сих пор висит. В DB2 не нужно каждую DDL команду завершать коммитом, чтобы следующий после этой команды DML оператор (insert/update/delete, а импорт как раз генерирует insert'ы, как я понимаю) мог отработать? COMMITCOUNT я выставил в 50000, сейчас идет загрузка в таблицу, но очень медленно - около 800 строк в секунду, с такой скоростью таблица будет загружаться неделю. Кстати, таблица создана с параметрами COMPRESS YES VALUE COMPRESSION - насколько сильно они могут влиять на производительность операций вставки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2010, 13:20 |
|
||
|
Мониторинг импорта
|
|||
|---|---|---|---|
|
#18+
0ri0nПолучается, из IXF нельзя грузить данные LOAD'ом даже в непартицированные таблицы (если БД партицирована)?С клиента - нет, с сервера - можно.0ri0nКстати, таблица создана с параметрами COMPRESS YES VALUE COMPRESSION - насколько сильно они могут влиять на производительность операций вставки?Не должно это сильно влиять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2010, 14:06 |
|
||
|
|

start [/forum/topic.php?fid=43&gotonew=1&tid=1602437]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
78ms |
get topic data: |
10ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 11ms |
| total: | 189ms |

| 0 / 0 |
