Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Чем ускорить INSERT ??? / 7 сообщений из 7, страница 1 из 1
01.10.2002, 19:14
    #32054613
Petroff-Vodkin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем ускорить INSERT ???
Привет !
Есть проблема : надо во временную IB базу закачать данных - порядка 100000 записей чтобы тут же по ним запустит запрос. (Писано Delphi4 + IBObjects) -
команды типа

Table1.Insert;
Table1.FieldByName('XXX').AsInteger:=XXX;
....
Table1.Post;

отрабатывает в трэде порядка 360 рекордс пер секонд. при инсерте всех 100000 за 1ну транзакцию. - Вопрос Чем писать быстрее ??? (Данные для записи формирует тот же экзешник...)
...
Рейтинг: 0 / 0
02.10.2002, 01:21
    #32054643
Deosfen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем ускорить INSERT ???
мы используем bcp
...
Рейтинг: 0 / 0
02.10.2002, 11:12
    #32054739
VladSh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем ускорить INSERT ???
создайте external table на внешнюю текстовую табличку
далее insert into select from ext_table
1.000.000 строк залетает за пару минут
...
Рейтинг: 0 / 0
08.10.2002, 12:08
    #32056278
Guest1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем ускорить INSERT ???
создать external таблицу получилось
но данные в нее из внешнего файла не попали.
При insert соответственно ничего не пополняется
...
Рейтинг: 0 / 0
08.10.2002, 15:07
    #32056363
VladSh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем ускорить INSERT ???
внешнюю таблицу лучше всего создавать перед загрузкой данных и сразу после
загрузки удалять ее (коннекн сделайте под sysdba,
удаляйте на случай возможных проблем с бэкап-ресторе, ресторе не пройдет,
если текстовой таблицы нет или она перемещена)
При экспорте в текстовый файл (например, из Access указывайте точку как
разделитель дробной части, формат: фиксированная ширина полей)
Предположим, имеем текстовый файл с двумя полями: 22 и 50 символов
В IB Expert создайте табличку типа
create external table txttmp 'c:\tmp\txttest.txt' (
fl1 char(22),
fl2 char(52));
Здесь последнее поле увеличиваем на два символа (перевод строки и возврат каретки)
Далее гоним в обычную ИБ-таблицу:
insert into mytable (f1, f2)
select fl1, fl2 from txttmp
...
Рейтинг: 0 / 0
11.10.2002, 00:30
    #32057290
KirillovA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем ускорить INSERT ???
Ну нафига юзать TTable?
TQuery заюзать нельзя?
Посмотри что происходив с BDE при такой дебильной вставке - там трассер выплюнет тебе несколько сотен команд. Вставку делай сиквел запросами!
Пойми - юзая TTable - ты заставляешь твою систему (под крышой BDE) перекачивать всю таблицу к тебе на комп.
Посмотри сиквел пассер - SQL Monitor.
Ебазу юзал очень давно - слезай нахрен с нее на сиквел или оракул.
ICQ: 151932727
...
Рейтинг: 0 / 0
11.10.2002, 00:36
    #32057291
KirillovA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем ускорить INSERT ???
... в догонку - показательно - борланд выклал исходники ентербазы - что само по себе значительно ...
серьезные вещи на ней не сваять ... жалко мне тех программеров которые с ней парятся... могу привети десять тысяч примеров глюкавости ентербазы....
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Чем ускорить INSERT ??? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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