Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Informix [игнор отключен] [закрыт для гостей] / Промежуточная неудача / 19 сообщений из 19, страница 1 из 1
07.07.2008, 10:22
    #35414242
SkSergeyA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Промежуточная неудача
Всем здравствуйте!

В предыдущем своем посте http://sql.ru/forum/actualthread.aspx?tid=570714, я выяснял возможность влияния параметров на скорость загрузки данных.

Огромное спасибо всем откликнувшимся !!!

Еще раз внимательно изучив предложения (отдельный поклон vasilis), и воспользовавшись предоставленным временем для экспериментов (спасибо руководству), было принято решение использовать два направления.

Для мелких баз (суммарный объем ~20 G) dbexport/dbimport, для крупной (объем ~70 G) были подготовлены скрипты основанные на методике описанной http://www.sql.ru/faq/faq_topic.aspx?fid=588.

Эксперименты показали практически двухкратное увеличение скорости загрузки данных, для одинаковых объемов, при использовании метода insert into ..., по сравнению с dbimport.

Это было хорошее, теперь о плохом.
По непонятной для меня причине и неизменных условиях (абсолютно одинаковые скрипты, разные таблицы) - результат работы зависел от фазы луны и направления ветра. Т.е. при том что в каждом случае сообщения в лог "inserted ..... rows" - в одних случаях записи в таблице-приемнике присутствовали, в других -нет.
Оба сервера находились в режиме NoLogging.
Не знаю в какую сторону думать.
...
Рейтинг: 0 / 0
07.07.2008, 11:53
    #35414502
Andron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Промежуточная неудача
SkSergeyA
Эксперименты показали практически двухкратное увеличение скорости загрузки данных, для одинаковых объемов, при использовании метода insert into ..., по сравнению с dbimport.


Надеюсь вы знаете что dbimport кроме непосредственно загрузки данных еще выполняет построение индексов и обновляет статистику (если они есть в скрипте импорта)? А вот insert into этого не делает.
...
Рейтинг: 0 / 0
07.07.2008, 12:23
    #35414599
SkSergeyA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Промежуточная неудача
Andron
Надеюсь вы знаете что dbimport кроме непосредственно загрузки данных еще выполняет построение индексов и обновляет статистику (если они есть в скрипте импорта)? А вот insert into этого не делает.

Да, конечно.
Меня волновало, да и продолжает волновать, скорость загрузки ИМЕННО данных.
Дальнейшая обработка (процедуры, индексы и т.д.) - это второй этап.
...
Рейтинг: 0 / 0
07.07.2008, 12:39
    #35414651
Andron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Промежуточная неудача
Странно конечно, не должен dbimport быть настолько медленее. В скрипте импорта точно не было команд на построение индексов и обновления статистики?
...
Рейтинг: 0 / 0
07.07.2008, 12:58
    #35414707
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Промежуточная неудача
AndronСтранно конечно, не должен dbimport быть настолько медленее. В скрипте импорта точно не было команд на построение индексов и обновления статистики?Надо смотреть в информиксе, случаи бывают разные http://groups.google.com/group/comp.databases.informix/msg/d0f32df0b151b88a?dmode=source
...
Рейтинг: 0 / 0
07.07.2008, 15:53
    #35415459
SkSergeyA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Промежуточная неудача
SkSergeyA
Это было хорошее, теперь о плохом.
По непонятной для меня причине и неизменных условиях (абсолютно одинаковые скрипты, разные таблицы) - результат работы зависел от фазы луны и направления ветра. Т.е. при том что в каждом случае сообщения в лог "inserted ..... rows" - в одних случаях записи в таблице-приемнике присутствовали, в других -нет.
Оба сервера находились в режиме NoLogging.
Не знаю в какую сторону думать.


Неужели никто не обратил внимание на это !!!!!
...
Рейтинг: 0 / 0
07.07.2008, 16:05
    #35415505
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Промежуточная неудача
SkSergeyAНеужели никто не обратил внимание на это !!!!!Ну я обратил. А ничего не написал потому что не понял:
1-е что вы делали и как, по сцылке я не ходил, во первых там наверняка не написано что конкрентно ВЫ делали, а во вторых мне лень, вам лень писать конретику, делать копипасты, а мы должны разбираться и догадываться что там было задумано и что получилось?
2-е не понял в чем проблема, не видел подробных логов, и т.д. и т.п.

Короче: Вы написали: У меня подземный стук. Мы поржали.
...
Рейтинг: 0 / 0
07.07.2008, 18:29
    #35416019
SkSergeyA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Промежуточная неудача
Журавлев Денис SkSergeyAНеужели никто не обратил внимание на это !!!!!Ну я обратил. А ничего не написал потому что не понял:
1-е что вы делали и как, по сцылке я не ходил, во первых там наверняка не написано что конкрентно ВЫ делали, а во вторых мне лень, вам лень писать конретику, делать копипасты, а мы должны разбираться и догадываться что там было задумано и что получилось?
2-е не понял в чем проблема, не видел подробных логов, и т.д. и т.п.

Короче: Вы написали: У меня подземный стук. Мы поржали.

Понял, исправляюсь.

Методика переноса данных была основана на последовательном выполнении следующих операций:

1. dbschema -d {db} > {db}.sql на Win2000AS IDS 10.00.TC7
2. Резка полученного файла на две части (1-создание таблиц, 2-создание всего остального)
3. dbaccess -e 1 часть {db}.sql на linux CentOS5.1 IDS 11.50.FC1
4. dbaccess -e upload.sql
upload.sql - скрипт содержащий строки вида
insert into {table} select * from {db}@{server}:{table}
результат выполнения этого скрипта - лог вида :
inserted {N} rows не содержит ни одного сообщения об ошибке, однако на самом деле все обстоит не так.
...
Рейтинг: 0 / 0
07.07.2008, 20:31
    #35416211
svat2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Промежуточная неудача
SkSergeyA
4. dbaccess -e upload.sql
upload.sql - скрипт содержащий строки вида
insert into {table} select * from {db}@{server}:{table}
результат выполнения этого скрипта - лог вида :
inserted {N} rows не содержит ни одного сообщения об ошибке, однако на самом деле все обстоит не так.

{включаю телепатию}

Для формирования лога, естественно, использовалось что-то вроде
Код: plaintext
dbaccess -e upload.sql > upload.log  2>&1 
?
... корректно ли грепался полученный лог?
...
Рейтинг: 0 / 0
08.07.2008, 09:08
    #35416590
SkSergeyA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Промежуточная неудача
svat2
{включаю телепатию}

Для формирования лога, естественно, использовалось что-то вроде
Код: plaintext
dbaccess -e upload.sql > upload.log  2>&1 
?
... корректно ли грепался полученный лог?

Если быть абсолютно точным, то upload.sql выглядел так:
echo `date` >> upload.log
dbaccess -e upload.sql > upload.log 2>&1
echo `date` >> upload.log

количество записей в логе идентично количеству вызовов insert.
на каждую запись получен ответ - inserted {N} rows.
сообщений об ошибках нет, лог информикса девственно чист.
Я в ступоре.
Какая еще нужна информация ?
...
Рейтинг: 0 / 0
08.07.2008, 12:07
    #35417162
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Промежуточная неудача
SkSergeyAсообщений об ошибках нет, лог информикса девственно чист.
Я в ступоре.
Какая еще нужна информация ?а dbschema пары таких табличек?
...
Рейтинг: 0 / 0
08.07.2008, 12:10
    #35417174
svat2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Промежуточная неудача
я бы поступил следующим образом (первое, что приходит в голову):
1) вычленил набор таблиц, в которые "не вставляется"
2) попытался проделать эту операцию интерактивно (вручную) на данных таблицах (с пом. того же eSQLeditor, к примеру)
3) в зависимости от результата:
3.1) если вставляется без ругательств - переместил бы соотв. строки из update.sql в конец/начало скрипта, чтобы выявить зависимость от связанных таблиц и попробовал еще раз
3.2) если вставляется/не вставляется с ругательствами - курил бы мануалы, много думал :). К примеру: что общего между этими таблицами (используются уникальные типы полей, их длина и т.п., м.б. другой владелец таблицы, права доступа и т.д.)

ЗЫ. и, пожалуйста, пишите как советует FAQ и Журавлев: цитатами, копипастами, кусками лога.
Т.е. вместо "лог девственно чист" должно быть что-то вроде
Код: plaintext
1.
2.
$ grep -v "inserted.*rows" log_file.log

(бла-бла-бла-результат-вывода)

а вместо "количество записей в логе идентично количеству вызовов insert." было бы приятно знать, что действительно было выполнено корректное cравнение а-ля
Код: plaintext
1.
2.
grep "insert" update.sql |  wc -l
grep "inserted" update.log |  wc -l
...
Рейтинг: 0 / 0
08.07.2008, 12:24
    #35417226
SkSergeyA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Промежуточная неудача
Журавлев Дениса dbschema пары таких табличек?

Выдержка из dbschema для одной из таблиц, по которым не перенеслись данные.

файл выгруженной схемы без изменений использовался для создания новой схемы (правда по частям - сначала создание таблиц, затем заливка данных, а потом создание остальных компонентов - процедур, триггеров и т.д.)
...
Рейтинг: 0 / 0
08.07.2008, 12:36
    #35417289
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Промежуточная неудача
SkSergeyAсоздание таблиц, затем заливка данных, а потом создание остальных компонентов - процедур, триггеров и т.д.)Я просил 2-х таблиц
DBDATE установлен для среды в которой " dbaccess -e upload.sql "
...
Рейтинг: 0 / 0
08.07.2008, 13:17
    #35417467
SkSergeyA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Промежуточная неудача
Журавлев ДенисЯ просил 2-х таблиц
DBDATE установлен для среды в которой " dbaccess -e upload.sql "

Выложил.
Для обоих платформ DBDATE = DMY4
...
Рейтинг: 0 / 0
08.07.2008, 13:50
    #35417575
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Промежуточная неудача
SkSergeyA
Выложил.Не одну таблицу с разных серверов, а две которые не залились с того в который вливали.

SkSergeyAДля обоих платформ DBDATE = DMY4Т.е. вы хотели сказать что оба информикса запущены в окружениях в которых DBDATE = DMY4? Да?

А dbaccess запускался в окружении в котором установлен DBDATE = DMY4 ? Или как?
...
Рейтинг: 0 / 0
08.07.2008, 14:48
    #35417786
SkSergeyA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Промежуточная неудача
Журавлев ДенисНе одну таблицу с разных серверов, а две которые не залились с того в который вливали.

SkSergeyAДля обоих платформ DBDATE = DMY4Т.е. вы хотели сказать что оба информикса запущены в окружениях в которых DBDATE = DMY4? Да?

А dbaccess запускался в окружении в котором установлен DBDATE = DMY4 ? Или как?

Извините, не понял сразу.
Выложил две таблички.

Да,для обоих платформ DBDATE = DMY4 и dbaccess запускался в таком окружении.
...
Рейтинг: 0 / 0
08.07.2008, 20:26
    #35418782
Выбегалло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Промежуточная неудача
Вы вручную из dbaccess запускали ваши скрипты, которые не вставляют записи ?
Какие сообщения были ?

В таком вот аксепте
...
Рейтинг: 0 / 0
09.07.2008, 15:48
    #35420812
SkSergeyA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Промежуточная неудача
ВыбегаллоВы вручную из dbaccess запускали ваши скрипты, которые не вставляют записи ?
Какие сообщения были ?

В таком вот аксепте

Еще нет.
Сижу в трансе.
Думаю - кому верить.
Прежде чем объединить все команды на загрузку данных, было проведено около десятка проб, с разным количеством таблиц и объемом закружаемых данных.
Все они успешно отработали. И все они проверялись вручную из dbaccess.
...
Рейтинг: 0 / 0
Форумы / Informix [игнор отключен] [закрыт для гостей] / Промежуточная неудача / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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