Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Bulk Insert MS SQL ADO\dxExpress


Автор: Beltar 5.5.2013, 15:35
Каким образом можно ускорить вставку записей в базу при алгоритме вида:
1) Сгенерировать запрос на вставку
2) Засунуть его в компонент запроса (TADOQuery хотя в моем случае и dbX подойдет). Вариант, применение параметров и prepared, что побыстрее, но в общем-то те же яйца.
3) Сделать компоненту ExecSQL.

Ну оберну в BeginTrans\CommitTrans раза в 2 ускорится, а каким-нибудь образом выполнить вставку данных одним запросом можно реализовать?

Тип сервера MS SQL 2008.

Автор: Akella 5.5.2013, 22:25
В цикле выполнять отдельно каждый insert в ExecSQL, но в рамках одной транзакции.
Я уже забыл, поддерживает ли MS SQL 2008 запрос вида:
Код

insert into...;
insert into...;
insert into...;
insert into...;
insert into...;

проверь в Management Studio


ну или:
Добавлено @ 22:27
http://www.sql.ru/forum/512877/mnozhestvennyy-insert

Добавлено @ 22:28
http://msdn.microsoft.com/ru-ru/library/ms188365.aspx

Добавлено @ 22:29
http://msdn.microsoft.com/ru-ru/library/ms175937.aspx

Добавлено @ 22:29
http://msdn.microsoft.com/ru-ru/library/ms190421%28v=sql.105%29.aspx

Добавлено @ 22:30
http://msdn.microsoft.com/ru-ru/library/ms162802%28v=sql.105%29.aspx

Автор: Beltar 6.5.2013, 00:37
Там в среде управления можно забить пакет запросов, спуск по слову GO. В понедельник приду на работу поэкспериментирую.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)