Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1208060744
Cryptopsy
2008-04-13 08:25
2008.05.25
"Записать" или "Сохранить" ?


15-1207823137
Kolan
2008-04-10 14:25
2008.05.25
Интересно, а можно посмотреть Compiler Magic?


3-1198223380
kyn66
2007-12-21 10:49
2008.05.25
Полосатый грид для зависимых таблиц


2-1209897634
AndrewG
2008-05-04 14:40
2008.05.25
Excel


15-1207771555
TIF
2008-04-10 00:05
2008.05.25
Ура! 11 000 000 статей MSDN будут переведены на русский язык...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский