|
Чем ускорить INSERT ???
|
|||
---|---|---|---|
#18+
Привет ! Есть проблема : надо во временную IB базу закачать данных - порядка 100000 записей чтобы тут же по ним запустит запрос. (Писано Delphi4 + IBObjects) - команды типа Table1.Insert; Table1.FieldByName('XXX').AsInteger:=XXX; .... Table1.Post; отрабатывает в трэде порядка 360 рекордс пер секонд. при инсерте всех 100000 за 1ну транзакцию. - Вопрос Чем писать быстрее ??? (Данные для записи формирует тот же экзешник...) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2002, 19:14 |
|
Чем ускорить INSERT ???
|
|||
---|---|---|---|
#18+
мы используем bcp ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2002, 01:21 |
|
Чем ускорить INSERT ???
|
|||
---|---|---|---|
#18+
создайте external table на внешнюю текстовую табличку далее insert into select from ext_table 1.000.000 строк залетает за пару минут ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2002, 11:12 |
|
Чем ускорить INSERT ???
|
|||
---|---|---|---|
#18+
создать external таблицу получилось но данные в нее из внешнего файла не попали. При insert соответственно ничего не пополняется ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2002, 12:08 |
|
Чем ускорить INSERT ???
|
|||
---|---|---|---|
#18+
внешнюю таблицу лучше всего создавать перед загрузкой данных и сразу после загрузки удалять ее (коннекн сделайте под 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2002, 15:07 |
|
Чем ускорить INSERT ???
|
|||
---|---|---|---|
#18+
Ну нафига юзать TTable? TQuery заюзать нельзя? Посмотри что происходив с BDE при такой дебильной вставке - там трассер выплюнет тебе несколько сотен команд. Вставку делай сиквел запросами! Пойми - юзая TTable - ты заставляешь твою систему (под крышой BDE) перекачивать всю таблицу к тебе на комп. Посмотри сиквел пассер - SQL Monitor. Ебазу юзал очень давно - слезай нахрен с нее на сиквел или оракул. ICQ: 151932727 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2002, 00:30 |
|
Чем ускорить INSERT ???
|
|||
---|---|---|---|
#18+
... в догонку - показательно - борланд выклал исходники ентербазы - что само по себе значительно ... серьезные вещи на ней не сваять ... жалко мне тех программеров которые с ней парятся... могу привети десять тысяч примеров глюкавости ентербазы.... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2002, 00:36 |
|
|
start [/forum/topic.php?fid=40&msg=32056363&tid=1581132]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
54ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 132ms |
0 / 0 |