Форум: "Начинающим";
Текущий архив: 2008.05.25;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.006 c