Все привет!
Суть вопроса: имеется большой (>30 Гб) файл sqlite (если быть более конкретным, то lgd - лог 1С) и нужно его открыть и найти/отфильтровать нужные данные. В принципе, открывается он любой соответствующей программой, но при попытке просмотра (и фильтрации) самой большой таблицы чаще виснет, хотя иногда и открывается. Если делать запрос, то результат тот же.
Пока пробовал DB Browser for SQLite и SQLiteStudio. Возможно есть какие-то программы, которые при открытии не пытаются загрузить сразу весь файл, а подгружают данные по мере скроллирования или поиска/фильтрации.
P.S. Обходное решение есть (открыть файл в том же 1Се и сохранять его небольшими частями, например месяцами), но это тоже займет достаточно много времени.
А какой запрос вы делаете? Добавьте в него конструкцию `LIMIT , ` и получайте данные порциями.
Нужно посмотреть ещё ваш запрос. Вдруг там full join и всё, само собой, не помещается в память.
Никаких full join'ов, только простейшее соединения таблиц (чтобы вместо id пользователя показывалось соответствующее имя). Плюс ограничение в WHERE.
LIMIT, насколько я понимаю помогает когда много записей, а в моем случае их всего две (если с WHERE).
Денис, ну тогда я пас. Попробуйте своп расширить, через командную строку поработать (как предложили выше).
Не очень понятно что именно у вас там происходит.
По индексу ли происходит фильтрация? Какая таблица занимает основной объем? Из неё ли происходит целевая выборка?
Безусловный лимитированный запрос из большой таблицы работает? Может быть перегнать данные в какой-то другой формат?
Покажите статистику, покажите запрос, может быть появятся еще идеи куда копать.