Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.05.25;
Скачать: CL | DM;

Вниз

ADO + IB Provider + массовая вставка записей   Найти похожие ветки 

 
fb switcher   (2008-04-30 10:14) [0]

Конфигурация:
fb2.1 на XP + D7 + IBProvider (липецкая разработка) + TAdoCommand
Решается задача:
Вставка большого количества записей (порядка 5000) (это обновление справочника бик)
Используется явное управление транзакциями (пробуется разное количество инсертов на транзакцию)

Проблема: страшные тормоза.

Как можно ускорить процесс, кроме как с вариантом через ISQL.EXE + скрипт?

PS Пробовал отключать параметры отвечающие за чтение метаданных параметров с сервера и указывать их типы явно. Никаких видимых улучшений не наблюдалось.


 
sniknik ©   (2008-04-30 10:39) [1]

> Как можно ускорить процесс
переписать все, что ты сделал, на этот раз грамотно.

--------- на правах рекламы ---------
- Мама, какой вкусный суп! Что ты с ним сделала?
- Я его сварила! Сынок.


 
Виталий Панасенко ©   (2008-04-30 10:47) [2]


> Вставка большого количества записей (порядка 5000)

астрономически большое, действительно. откуда столько ?


 
fb switcher   (2008-04-30 11:02) [3]

переписать все, что ты сделал, на этот раз грамотно.

Куда еще-то грамотнее?
В транзакции пробовалось от 100 до 1000 инсертов.
Вместо Адодатасета используется адокомманд.
Типы параметров задаются явно.


 
sniknik ©   (2008-04-30 11:19) [4]

> Куда еще-то грамотнее?
да уж куда нибудь... т.к., судя по приведенному коду, грамотность написанного тобой стремиться к нулю.


 
fb switcher   (2008-04-30 11:23) [5]

ок, согласен.
где у меня узкое место?


 
sniknik ©   (2008-04-30 11:34) [6]

издеваешься?
при показанных 0 строчек кода, узкое место гдето между 0-ой и ... 0-ой строчками (в строчке номер 17).


 
fb switcher   (2008-04-30 11:42) [7]

Инфы по проблеме предоставлено выше крыши.
Для рекомендаций повышения производительности мой код не нужен.

Или хочется посмотреть на то, как я цикл for рисую?
Присваиваю типы и значения параметров TAdoCommand?
Считаю количество инсертов перед тем как сделать очередной коммит?


 
palva ©   (2008-04-30 11:46) [8]

> где у меня узкое место?

Ну например

1. Полезно отключать индексы при массовых загрузках, а потом заново их строить.

2. В FB можно подготовить обычный файл с данными и затем объявить его в базе как таблицу. Потом его можно переписать во внутренний файл одним оператором INSERT.

Ты так и делаешь?


 
fb switcher   (2008-04-30 11:51) [9]

Индекс всего один и он PK.
Отключить его чтобы потом искать дубликаты по фулскану перед включением?

Внешний файл могу создать на клиенте. Серверу он будет недоступен.
А том с сервером недоступен клиенту.


 
palva ©   (2008-04-30 12:03) [10]

fb switcher   (30.04.08 11:51) [9]
Ага, значит не делаешь. Вот я и ответил на вопрос
> Как можно ускорить процесс, кроме как с вариантом через ISQL.EXE + скрипт?


 
fb switcher   (2008-04-30 12:06) [11]

Не делаю, потому что смысла нет.
Вставка ускорится, а готовый результат (рабочий справочник в рабочем состоянии) будет появляться еще позже, чем с неотключенным PK.


 
Anatoly Podgoretsky ©   (2008-04-30 15:44) [12]

> fb switcher  (30.04.2008 10:14:00)  [0]

5000 ничтожное количество, менее секунды на обработку.


 
fb switcher   (2008-04-30 15:56) [13]

аха .....


 
fb switcher   (2008-04-30 15:57) [14]

isql варит такую вставку секунд 25. Хотя может речь про крей....
так у меня не крей, у меня офисный пк.



Страницы: 1 вся ветка

Текущий архив: 2008.05.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.012 c
2-1209288486
hahol_64_rus
2008-04-27 13:28
2008.05.25
DBImage


15-1207253475
djaUser
2008-04-04 00:11
2008.05.25
Как правильно писать софт


15-1207764860
@!!ex
2008-04-09 22:14
2008.05.25
Ура! Проект собрался на FPC!!


2-1209047959
bagos
2008-04-24 18:39
2008.05.25
autocad


2-1209670456
Jebiga
2008-05-01 23:34
2008.05.25
Как работать с GIF файлами?