-
Текстовый файл содержит 10 миллионов строк. Импорт продолжатеся 40 минут. Используется запроc:
SQL:='Insert into Relief_PTP (NPP,X_100_Int,Y_100_Int,Height) values (:NPP,:X_100_Int,:Y_100_Int,:Height)';
Нельзя ли это как-нибудь ускорить ?
-
отключить Forced Writes.
коммитить не весь импорт целиком и не каждую запись, а, скажем, после нескольких тысяч инсертов.
-
>RWolf
Двай сначала, как для тугодумов ;-)))
1. Forced Writes - где это ?
2. Сейчас я запускаю транзакцию в начале, а подтверждаю
в самом конце. Ты предлагаешь через несколько тысяч инсертов
сделать коммит и начать новую транзакцию ?
-
1. gfix -write async, после импорта вернуть обратно в sync.
2. именно так.
-
>RWolf
Я работаю с FibPlus.
Как сделать Forced Writes там ?
-
через компоненты-обёртки сервисов FB: TpFIBXXXService
-
В компоненте TpFIBConfigService я нашёл метод SetAsyncMode.
Похоже, это оно. Сейчас попробую.
Спасибо.
-
Ещё есть прямая связь с текстовым файлом, но это более специальное.
-
> Inovet © (17.04.12 19:50) [7]
>
> Ещё есть прямая связь с текстовым файлом, но это более специальное.
>
>
специальное. но потом можно при бэкапе ресторе все втянуть в таблицу. хотя. 10 лимонов строк, это ж куча данных. тем более их объем не известен
-
Помимо
> RWolf © (17.04.12 16:16) [1]
проверь, нет ли каких триггеров на вставку (до или после) в таблице Relief_PTP. Ежели есть и для импорта они не нужны, то мона их отключить на время импорта. Прирост в скорости оказаться серьезным может весьма даже...