Russian Qt Forum

Qt => Базы данных => Тема начата: skydion от Март 10, 2010, 17:09



Название: Повысить скорость записи в БД
Отправлено: skydion от Март 10, 2010, 17:09
Ребята вот у меня тут фигня получается...
Считал даные обработал записал в QVariantList прибиндил
ну и делаю запрос INSERT bla bla bla

так вот записей набралось 17500 все это дело записывалось в БД минут 10 наверное  :-\
есть ли возможность одним запросом все записать? типа кеширование?

раньше я как делал

query.prepare("INSERT ... VALUES (?,?,?)")
потом в стринг лепил все VALUES ну и одним запросом записывал, все быстро работало,
но почитал тут о проблеме - http://www.prog.org.ru/topic_12404_0.html и решил переделать ...
но теперь проблема в скорости...


Название: Re: Повысить скорость записи в БД
Отправлено: alexman от Март 10, 2010, 17:13
bool QSqlDriver::beginTransaction ()
bool QSqlDriver::commitTransaction ()


Название: Re: Повысить скорость записи в БД
Отправлено: skydion от Март 10, 2010, 18:32
Большое спасибо! )
Не думал что такой прирост даст... специально протестировал с/без транзакциями...

17500 записей
с - 0:03 мин
без - 9:37 мин



Название: Re: Повысить скорость записи в БД
Отправлено: alexman от Март 10, 2010, 22:23
Просто без транзакций после каждого INSERT СУБД свои индексы перестраивала!