QSqlQuery и работа с большим кол-вом данных, тормоза записи |
Здравствуйте, гость ( Вход | Регистрация )
QSqlQuery и работа с большим кол-вом данных, тормоза записи |
JuryS1806 |
28.6.2010, 23:34
Сообщение
#1
|
Студент Группа: Участник Сообщений: 93 Регистрация: 21.10.2009 Из: Нижний Новгород Пользователь №: 1168 Спасибо сказали: 9 раз(а) Репутация: 0 |
Доброго времени суток!
Имею следующий код при работе с SQLITE:
Все работает, все здорово, но только после выполнения пары тысяч строк, происходит бурная работа на жестком диске. Т.е. насколько я понимаю, при выполнении любого SQL запроса, qt записывает базу данных на диск. А в связи с тем что таких запросов несколько тысяч то и записывает он множество раз. Так вот, хотел спросить, что в этой ситуации можно улучшить. Записать файл сначала в память, а потом уже на диск, как вариант создать раздел в памяти или все таки есть более простой способ ??? Спасибо заранее за помощь ! |
|
|
Litkevich Yuriy |
29.6.2010, 21:10
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
если СУБД поддерживает подстановку (binding), то сама СУБД и занимается подстановкой. Если не поддерживает, то в недрах QtSql формируется явный запрос.
|
|
|
JuryS1806 |
29.6.2010, 23:05
Сообщение
#3
|
Студент Группа: Участник Сообщений: 93 Регистрация: 21.10.2009 Из: Нижний Новгород Пользователь №: 1168 Спасибо сказали: 9 раз(а) Репутация: 0 |
если СУБД поддерживает подстановку (binding), то сама СУБД и занимается подстановкой. Если не поддерживает, то в недрах QtSql формируется явный запрос. Это здорово. Почему на базе Qt нет готовых классов и решений для этих задач. Типа среды MS Access. А то так делать долго придется. Сначала соединится с базой, потом отработать транзакции, потом закрыть их, потом отключится от нее и т.д. И все отдельными классами делать, чтобы Qt не ругался..... Я к тому что долгий процесс и трудоемкий. Я сейчас попробовал все то же самое сделать в Access 2003 из под Wine. Работает быстрее чем Qt + SQLITE в 3 раза. Наверное Access использует как раз эти bindValues и все оптимизации, какие только есть. |
|
|
Текстовая версия | Сейчас: 3.12.2024, 13:47 |