| Название: sqlite и qt Отправлено: Dastes от Апреля 16, 2012, 18:49 Вставка в таблицу 1361 записи занимает ~130 секунд.  Пробовал перебирать циклом и пакетным запросом. Можно ли как-нибудь ускорить это дело? Код: void Transactions::putData(QStringList data, QString name) Название: Re: sqlite и qt Отправлено: DmP от Апреля 16, 2012, 19:05 Может транзакция поможет? Название: Re: sqlite и qt Отправлено: Dastes от Апреля 16, 2012, 19:09 В справке по QSqlQuery о транзакциях ни слова не нашел. Ты бы пример привел. Название: Re: sqlite и qt Отправлено: Dastes от Апреля 16, 2012, 19:24 Все. Вопрос решен. Правда помогла транзакция. Заполняется таблица незаметно быстро. Оказывается это относится к QSqlDatabase. Название: Re: sqlite и qt Отправлено: JayFOX от Апреля 16, 2012, 22:31 На MySQL прирост скорости значительный, если внести в один запрос вида Код: INSERT INTO table(val) VALUES(...), (...) ... Название: Re: sqlite и qt Отправлено: Пантер от Апреля 17, 2012, 09:46 Замечание, ты неверно используешь prepare. Почитай в ассистенте, как правильно нужно. Название: Re: sqlite и qt Отправлено: UNION labs от Апреля 18, 2012, 11:50 Транзакция решает! Код: void Transactions::putData(QStringList data, QString name) Вот нашел даже такое сравнение скорости http://www.sqlite.org/speed.html (http://www.sqlite.org/speed.html) Название: Re: sqlite и qt Отправлено: Dastes от Апреля 18, 2012, 11:56 Транзакция решает!Так и сделал! Код: void Transactions::putData(QStringList data, QString name) Вот нашел даже такое сравнение скорости http://www.sqlite.org/speed.html (http://www.sqlite.org/speed.html) Только не пойму почему пакетный запрос не канает. Судя по логике он должен все за один раз туда отправить, а на практике выполняется так же долго как и простыми запросами через цикл. Название: Re: sqlite и qt Отправлено: UNION labs от Апреля 18, 2012, 12:06 Только не пойму почему пакетный запрос не канает. Судя по логике он должен все за один раз туда отправить, а на практике выполняется так же долго как и простыми запросами через цикл. Что вы подразумеваете под пакетным запросом? Название: Re: sqlite и qt Отправлено: Dastes от Апреля 18, 2012, 12:10 Только не пойму почему пакетный запрос не канает. Судя по логике он должен все за один раз туда отправить, а на практике выполняется так же долго как и простыми запросами через цикл. Что вы подразумеваете под пакетным запросом? http://qt-project.org/doc/qt-4.8/qsqlquery.html#execBatch (http://qt-project.org/doc/qt-4.8/qsqlquery.html#execBatch) Название: Re: sqlite и qt Отправлено: UNION labs от Апреля 18, 2012, 12:20 Ага понял, не внимательно прочитал ваш первый пост. На самом деле все просто Код: QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");SQLite просто не поддерживает данной возможности! Название: Re: sqlite и qt Отправлено: Dastes от Апреля 21, 2012, 22:13 Возникла еще проблема: Установил чистый xp на виртуальную машину. Скопировал туда программу. Она запускается нормально, но список QComboBox, который заполняется данными из запроса к Sqlite, пуст. Никаких ошибок не выдает. В чем может быть дело? Название: Re: sqlite и qt Отправлено: LisandreL от Апреля 22, 2012, 00:10 dll не взяли, а ошибки нет, потому, что при открытии и запросах не проверяете успешность этих операций и не выводите ошибку при неудаче. Название: Re: sqlite и qt Отправлено: Dastes от Апреля 22, 2012, 00:21 LisandreL,  так и есть :) Думал,что QtSql4.dll достаточно. Нужно в папке с программой создать папку sqldrivers, и закинуть туда qsqlite4.dll. |