Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.07.2011, 16:06   #1
NieL
Форумчанин
 
Регистрация: 17.11.2008
Сообщений: 116
По умолчанию оптимизация добавления в таблицу бд

Реализовал API (ком-сервер) для взаимодействия с БД (MS Access) приложения из 1C. Возникла проблема с функцией добавления, пользователь пробегает по справочнику товаров в 1C и через ком-объект, содержащий функцию Add, добавляет товары в БД приложения. На каждое добавление приходится один INSERT-запрос. Таким образом, если товаров 30 000 выполняется 30 000 INSERT-запросов. На добавление 30 000 записей уходит больше минуты. Как можно оптимизировать затраты? Пока что ничего лучше чем использовать TADOTable (Append, Post, Cancel) не придумал (30 000 записей добавляются за 3,5 секунды). Что посоветуете?
NieL вне форума Ответить с цитированием
Старый 08.07.2011, 20:33   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

ИМХО:
1) Отказаться от Акцесса в пользу более серьезных СУБД, поддерживающих транзакции (у акцесса это не есть гут сделано), однако даже если ты свои 30000 разделишь на скажем 10 транзакций прирост скорости может увеличится только на немного.

2) Формируй промежуточный файл. Скажем XML или CSV. А в Акцессе его подключай. Импорт ускорится, даже если ты сделаешь не внешнюю связку а просто физически перетащишь все записи средствами самого Акцесса.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Невозможность добавления новых данных в таблицу Access BlackWhyT Помощь студентам 0 24.12.2010 18:25
Триггер , который после добавления записи в одну таблицу редактирует запись другой таблицы Rin БД в Delphi 7 18.12.2010 03:50
добавления в ListBox Yokka Общие вопросы C/C++ 1 31.05.2010 09:28
Обновление набора данных после добавления в таблицу записей "внешней" программой dimmm БД в Delphi 5 21.04.2009 00:56
добавления в готовую таблицу Strelka Microsoft Office Excel 1 09.03.2007 17:27