Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
guest456 |
2.8.2017, 12:45
Сообщение
#1
|
|
Новичок Группа: Неактивирован Сообщений: 3 Регистрация: 2.8.2017 Пользователь №: 4598 Спасибо сказали: 0 раз(а) Репутация: 0
|
Добрый день уважаемые форумчане. Есть простейший код выборки из базы данных sqlite. Проблема в том, что в базе есть очень большое число различных строк. При работе с небольшими базами, проблем нет. А при большой базе, программа вылетает с ошибкой out of memory.
При работе программы, количество потребляемой памяти доходит до 800MB и программа вылетает. Как правильно делать выборку с больших по размеру баз. Спасибо. |
|
|
|
|
lanz |
2.8.2017, 12:52
Сообщение
#2
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8
|
Например, но вообще странно, вы уверены что имено query жреть память, а не код внутри цикла? |
|
|
|
|
guest456 |
2.8.2017, 13:11
Сообщение
#3
|
|
Новичок Группа: Неактивирован Сообщений: 3 Регистрация: 2.8.2017 Пользователь №: 4598 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата(lanz @ 2.8.2017, 1:52) Link Например, но вообще странно, вы уверены что имено query жреть память, а не код внутри цикла? К сожалению, это так. Т.е вот этот пустой цикл: Вызывает эту ошибку ![]() Уже и пробовал ставить qt creator версии 4.8 - тоже самое. Не могу понять как же сделать выборку по всей базе ( |
|
|
|
|
lanz |
2.8.2017, 13:18
Сообщение
#4
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8
|
Я посмотрел исходники, там драйвер кеширует результаты, поэтому да, вы правы, он все съел
Попробуйте LIMIT/OFFSET как я писал выше. |
|
|
|
|
guest456 |
2.8.2017, 13:38
Сообщение
#5
|
|
Новичок Группа: Неактивирован Сообщений: 3 Регистрация: 2.8.2017 Пользователь №: 4598 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата(lanz @ 2.8.2017, 2:18) Link Я посмотрел исходники, там драйвер кеширует результаты, поэтому да, вы правы, он все съел Попробуйте LIMIT/OFFSET как я писал выше. Благодарю. А то я уже не знал что думать. Попробую как вы сказали. |
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 27.12.2025, 22:58 |