Привет,
Немножко разобрался, периписал програму с процедурой вставки новых
записей. Раньше открывал pFIBDataSet`ом всю таблицу и попросту делал
append ... post; точно так как должен был работать сотрудник. База
всдувалась до 190 мб. Теперь только для тестирования сделал все insert
полностью только на pFIBQuery и результат ошарашил меня - база
заполнилась только до 20 мб.
Я то понимаю что тестировал не самым оптимальным способом (имитировал
ввод руками), но даже не представлял что зто как нибудь может повлиять
на размер базы данных, а тем боле на скорость дальнейшей работой с
вводом даных.
Еще вопросик: как руками заполнять боьшые базы данных, с последующим
большым update по нескольким базам ?
Можно ли pFIBDataSet`ом открывая несколько записей, или все запоминать в
tEdit и потом вставлять SQL`ом. А можеть есть какие нибудь компоненты
оптимизированые для ввода данных с FibPlus и FireBird ?
Konstantin R. Beliaev wrote:
Artur wrote:
Ечще заметил: backup тоже тормозит, сделает backup фаил около 10 мб и
диск oпять грызется больше часа, потом допишет до 11 мб и бацкуп
завершон. оригинал был 187 мб. после restore *.gdb совсем маленкий,
только 20 мб.
Триггера делают много вставок-удалений, но таблица, куда эти изменения
льются, читается или чистится только на старте программы. Вероятно на
этой таблице еще плохие индексы.
Соответственно тормоза - это сборка мусора в этой самой таблице.
Если при бэкапе отключить сборку мусора - бэкап пройдет быстро, если
включить verbose - будет видно на какой таблице тормоза.
Это то, что подсказывает мой телепатический модуль :-)
PS. Можешь писать на английском, если тебе проще ;-), бОольшая часть
присутствующих его понимает.