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

Вниз

Падает скорость Insert на больших объемах   Найти похожие ветки 

 
Fareader ©   (2002-03-21 12:03) [0]

Доброго всем времени суток!
есть проблема - делаю перекачку данных из одной БД в другую, использую Firebird, компоненты FIBPLUS. Добавляю записи в две таблицы двумя Dataset`ами, после вставки около 15000 записей (общее количество добавленных записей в обе таблицы) скорость добавления постепенно начинает падать.
Что это и чем лечить?


 
Alexandr ©   (2002-03-21 12:16) [1]

а зачем добавлять с помощью dataset, на просто запрос (TpFIBQuery) использовать.
И еще дело может быть в наличии индексов во таблицах, в которые идет вставка (их лучше предварительно отключить)
А еще в Firebird индекс строится на совсем опимально при массовых вставках, это дело в Yaffil поправлено и там вставка идет быстрее.


 
Fareader ©   (2002-03-21 12:35) [2]

dataset кешированные, TpFIBQuery использовать неудобно потому что количество полей большое и может измениться мне проще было поставить цикл на перебор полей в dataset. Попробовал делать commit после вставки 7500 записей - не помогло. А если я сделаю выборку, а потом отключу индекс это даст эффект?


 
Fareader ©   (2002-03-21 12:50) [3]

Каким компонентом можно выполнить несколько SQL команд, например удаление индексов, не меняя свойство SQL?


 
Alexandr ©   (2002-03-21 12:56) [4]

FIBScript.
Им же можно и вставку делать


 
Fareader ©   (2002-03-21 13:05) [5]

У меня версия 4.5 я там не нашел такого компонента.


 
Alexandr ©   (2002-03-21 13:22) [6]

угу. Он отдельно гуляет.
на ib.demo.ru по-моему есть
и у меня есть


 
Fareader ©   (2002-03-21 13:30) [7]

Можешь залить мне на мыло?


 
Alexandr ©   (2002-03-21 13:39) [8]

ушло мылом


 
Alexandr ©   (2002-03-21 13:47) [9]

я этот FIBScript даже сюда в кладовку кидал


 
Fareader ©   (2002-03-21 14:17) [10]

Спасибо, что залил.


 
Fareader ©   (2002-03-21 14:39) [11]

Всен равно падает и очень сильно....


 
Fareader ©   (2002-03-21 14:45) [12]

TpFIBQuery не кешируется? Т.е. это сразу на сервер будет идти? Тогда я такой трафик в сети с ним создам...
Попробовал после каждых 10 000 записей делать commit - не помогло...


 
Alexandr ©   (2002-03-21 14:56) [13]

Тебе сам датасет нужен или просто insert на сервер гнать?
если датасет нужен - тогда TpFIBdataSet отдельно
обновлять (вставлять) через TpFIBQuery и запрос в нем insert into...

Commit серверу не нужен, он был нужен для BDE. (в смысле после 10000 чтобы не было падения скорости)

Дело скорее всего в проектировании базы данных - индексы, триггеры и пр.,


 
Fareader ©   (2002-03-21 15:35) [14]

плюнул я на все и ... поставил TpFIBQuery - 96 000 записей залилось за 4 мин без индексов и за 6 мин с индексами.


 
Alexandr ©   (2002-03-22 06:47) [15]

вот это правильно.



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

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

Наверх




Память: 0.49 MB
Время: 0.013 c
6-32915
ch_victor
2002-01-28 08:11
2002.04.11
импортирование текстовых файлов в базу с севера UNIX


1-32880
Danila
2002-03-29 16:10
2002.04.11
Не удается сделать указатель на Canvas


3-32715
Grrey
2002-03-20 23:17
2002.04.11
SQL-запрос. Неужели придется прогу писать?


1-32764
Konsul
2002-03-31 00:25
2002.04.11
Taskbar


1-32907
-=GaLaN=-
2002-03-23 19:33
2002.04.11
Контекстное меню и уже запущенное приложение