Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Informix [игнор отключен] [закрыт для гостей] / Закачка данные в temp table (скорость insert'ов) / 7 сообщений из 7, страница 1 из 1
16.07.2008, 16:10
    #35434267
sarcis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закачка данные в temp table (скорость insert'ов)
Задача: перекачать во временную таблицу данные из внешнего источника (ODBC), для последующей обработки средствами ХП.
Gateway Manager'а нет, и никто его мне не купит ; (
Informix -- 7.3
Временная таблица создается без индексов, с опцией WITH NO LOG.
Т.к. количество закачиваемых записей заранее известно, размер initial extent'а выбирается соответствующий.
Число записей -- десятки тысяч.
Собственно перекачка реализована на Delphi/BDE, путем выполнения insert'ов. Для 20000 записей время выполнения -- 35 сек (при закоментированном insert'е -- 5 сек, т.е. на саму вставку уходит около 30 сек); на том же железе загрузка тех же данных командой load из текстового файла -- ~4 сек.
Вопрос: как можно ускорить процесс?
Можно ли из Delphi использовать insert cursor'ы, и будет ли от этого польза? Откуда вообще, кроме 4GL и ESQL/C они доступны?
...
Рейтинг: 0 / 0
16.07.2008, 17:05
    #35434543
Ikir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закачка данные в temp table (скорость insert'ов)
Хотелось бы увидеть кусочек кода.
load из текстового файла ~ 4сек, а сколько готовится для этой команды файл?
...
Рейтинг: 0 / 0
17.07.2008, 03:21
    #35435410
Выбегалло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закачка данные в temp table (скорость insert'ов)
Я в таких случаях пользовался DTS из MS SQL :-)))

В таком вот аксепте
...
Рейтинг: 0 / 0
18.07.2008, 16:52
    #35440036
sarcis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закачка данные в temp table (скорость insert'ов)
IkirХотелось бы увидеть кусочек кода.
В коде ничего интересного: iqIns -- это insert в temp'ову таблицу, qSrc -- исходная таблица
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
        while not qSrc.Eof do begin
          for i :=  0  to iqIns.ParamCount- 1  do begin
            p := iqIns.Params[i];
            p.Value := qSrc.FieldByName(p.Name).Value;
          end;
          iqIns.ExecSQL;
          qSrc.Next;
        end;

Ikirload из текстового файла ~ 4сек, а сколько готовится для этой команды файл?
unload/load я делал просто для сравнения, что б знать, есть ли еще смыл оптимизировать.
...
Рейтинг: 0 / 0
21.07.2008, 09:32
    #35441656
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закачка данные в temp table (скорость insert'ов)
sarcisunload/load я делал просто для сравнения, что б знать, есть ли еще смыл оптимизировать.
iqIns.Prepared ?
...
Рейтинг: 0 / 0
21.07.2008, 18:03
    #35443109
cpr
cpr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закачка данные в temp table (скорость insert'ов)
Если вы работаете в журналируемой БД, то создав таблицу для загрузки с типом raw вы значительно ускорите процесс загрузки.
...
Рейтинг: 0 / 0
23.07.2008, 13:51
    #35447078
Ikir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закачка данные в temp table (скорость insert'ов)
А вот эту статью индуски кто-нибудь читал? Про какую версию SDK речь?
http://www.ibm.com/developerworks/db2/library/techarticle/dm-0807thummapudi/?S_TACT=105AGX11&S_CMP=FP

Что то в Client SDK 2.81 в sqlhdr.h я не нашел параметра BIG_FET_BUF_SIZE .
...
Рейтинг: 0 / 0
Форумы / Informix [игнор отключен] [закрыт для гостей] / Закачка данные в temp table (скорость insert'ов) / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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