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

Вниз

Добавление записей (ADO)   Найти похожие ветки 

 
Павел Николаевич   (2002-08-12 05:13) [0]

Программа из внешнего источника должна заносить в БД Access данные.
Используется ADO.
Проблема заключается в маленькой скорости добавления записей.

Тестировал несколько метотодов добавлления записей.
1. С помощью ADOCommand выполняется запрос на добавление записи:
"INSERT INTO table4 VALUES (1,2,3)"
2. Добавление с помощью метода
TADODataSet.AppendRecord([1,2,3])
3. Добавление с помощью метода
TADODataSet.AppendRecord([1,2,3])
в "пакетном" режиме ( TADODataSet.LockType:=ltBatchOptimistic;)
и с вызовом TADODataSet.UpdateBatch в конце.

Наиболее быстрый метод №1, потом №3 и №2. Причем №2 и №3 почти
одинаковые и где-то на 25% медленее метода 1.
Получается скорость порядка 300 записей в секунду (900 МГц Duron).
Access копирует из таблицы в таблицу 10000 записей за доли секунды.

Есть ли возможность ускорить процесс (возможно другим методом, через
внешний файл...)?


 
sniknik ©   (2002-08-12 11:15) [1]

Из таблици в таблицу в родном формате самая быстрая скорость, из внешнего источника будет помедленней но не так медленно как в вашем случае добавления попозиционно.

Пользуйтесь пакетными SQL коммандами типа (INSERT INTO table4 (Fields) SELECT Fields FROM ...)
скорость будет около сек за 13052 зап. (селерон 1000)



 
Shaman_Naydak ©   (2002-08-12 11:25) [2]

Для попозиционной вставке: можно ускорить 1-ый способ
INSERT INTO table4 VALUES (:Value1,:Value2, :Value3)
Выставь Prepared:=True

и в цикле загоняй значения через параметры, не изменяя текста запроса


 
Soft(Unpowered Kiborg) ©   (2002-08-12 11:45) [3]

Советую использовать ADOQuery и придварительно при этом подключится через ADOConnection(это экономит время на создании подключения к базе). А далее

ADOQuery.Sql.Clear;
ADOQuery.Sql.Add("insert into table4(ваши поля) values(ваши данные)");
ADOQuery.Prepare;
ADOQuery.ExecSql;
ADOQuery.Unprepare;



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

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

Наверх




Память: 0.47 MB
Время: 0.014 c
3-3316
Nameless
2002-08-13 11:08
2002.09.02
Можете поделиться опытом написания 3-х уровневых приложений?


1-3457
Cem
2002-08-20 20:36
2002.09.02
Как сделать, чтобы компонент рисовал на своем parent.


14-3615
Lampo4ka
2002-08-08 10:02
2002.09.02
Где скачать DelphiX ?


1-3331
GreatQuaker
2002-08-21 17:34
2002.09.02
Задержка показа строчки Hint-а


3-3234
Ренат
2002-08-08 09:28
2002.09.02
Ошибки при открытии таблиц