![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Падает скорость Insert на больших объемах [D5, IB6.x]
Fareader © (2002-03-21 12:03:00)Доброго всем времени суток!
есть проблема - делаю перекачку данных из одной БД в другую, использую Firebird, компоненты FIBPLUS. Добавляю записи в две таблицы двумя Dataset`ами, после вставки около 15000 записей (общее количество добавленных записей в обе таблицы) скорость добавления постепенно начинает падать.
Что это и чем лечить?
Alexandr (2002-03-22 06:47:00) [1]вот это правильно.
Fareader (2002-03-21 15:35:00) [2]плюнул я на все и ... поставил TpFIBQuery - 96 000 записей залилось за 4 мин без индексов и за 6 мин с индексами.
Alexandr (2002-03-21 14:56:00) [3]Тебе сам датасет нужен или просто insert на сервер гнать?
если датасет нужен - тогда TpFIBdataSet отдельно
обновлять (вставлять) через TpFIBQuery и запрос в нем insert into...
Commit серверу не нужен, он был нужен для BDE. (в смысле после 10000 чтобы не было падения скорости)
Дело скорее всего в проектировании базы данных - индексы, триггеры и пр.,
Fareader (2002-03-21 14:45:00) [4]TpFIBQuery не кешируется? Т.е. это сразу на сервер будет идти? Тогда я такой трафик в сети с ним создам...
Попробовал после каждых 10 000 записей делать commit - не помогло...
Fareader (2002-03-21 14:39:00) [5]Всен равно падает и очень сильно....
Fareader (2002-03-21 14:17:00) [6]Спасибо, что залил.
Alexandr (2002-03-21 13:47:00) [7]я этот FIBScript даже сюда в кладовку кидал
Alexandr (2002-03-21 13:39:00) [8]ушло мылом
Fareader (2002-03-21 13:30:00) [9]Можешь залить мне на мыло?
Alexandr (2002-03-21 13:22:00) [10]угу. Он отдельно гуляет.
на ib.demo.ru по-моему есть
и у меня есть
Fareader (2002-03-21 13:05:00) [11]У меня версия 4.5 я там не нашел такого компонента.
Alexandr (2002-03-21 12:56:00) [12]FIBScript.
Им же можно и вставку делать
Fareader (2002-03-21 12:50:00) [13]Каким компонентом можно выполнить несколько SQL команд, например удаление индексов, не меняя свойство SQL?
Fareader (2002-03-21 12:35:00) [14]dataset кешированные, TpFIBQuery использовать неудобно потому что количество полей большое и может измениться мне проще было поставить цикл на перебор полей в dataset. Попробовал делать commit после вставки 7500 записей - не помогло. А если я сделаю выборку, а потом отключу индекс это даст эффект?
Alexandr (2002-03-21 12:16:00) [15]а зачем добавлять с помощью dataset, на просто запрос (TpFIBQuery) использовать.
И еще дело может быть в наличии индексов во таблицах, в которые идет вставка (их лучше предварительно отключить)
А еще в Firebird индекс строится на совсем опимально при массовых вставках, это дело в Yaffil поправлено и там вставка идет быстрее.