Как ускорить создание таблицы (через QSqlQuery)? |
Здравствуйте, гость ( Вход | Регистрация )
Как ускорить создание таблицы (через QSqlQuery)? |
Rocky |
16.2.2009, 13:32
Сообщение
#1
|
Старейший участник Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: 7 |
Создаю таблицу и заполняю ее посредством запроса INSERT. В таблицы больше 1к записей и заполнение идет очень долго... Можно ли как-нибудь ускорить запись? Оптимизировать это дело?
Да, кто знает, обязательно ли перед каждым вызовом QSqlQuery::exec использовать QSqlQuery::prepare (все это происходит в цикле)? Или QSqlQuery::prepare достаточно вызывать один раз перед циклом, а внутри делать только QSqlQuery::bindValue и затем QSqlQuery::exec? Спасибо! |
|
|
Rocky |
17.2.2009, 21:37
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: 7 |
По-поводу транзакций... Ув. форумчане, не подскажите вот при навигации по таблице БД, нужно их использовать? Или они толку не дадут?
Или транзакции важны именно при вставке/удалении/обновлении базы данных? |
|
|
Kagami |
17.2.2009, 22:40
Сообщение
#3
|
Старейший участник Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: 9 |
Ув. форумчане, не подскажите вот при навигации по таблице БД, нужно их использовать? Или они толку не дадут? Для ускорения навигации можно использовать следующее: Цитата void QSqlQuery::setForwardOnly ( bool forward )
Sets forward only mode to forward. If forward is true, only next() and seek() with positive values, are allowed for navigating the results. Forward only mode can be (depending on the driver) more memory efficient since results do not need to be cached. It will also improve performance on some databases. For this to be true, you must call setForwardMode() before the query is prepared or executed. Note that the constructor that takes a query and a database may execute the query. Forward only mode is off by default. |
|
|
Текстовая версия | Сейчас: 28.1.2025, 17:50 |