Вверх ↑
Ответов: 3889
Рейтинг: 362
#1: 2011-09-21 22:39:12 ЛС | профиль | цитата
Neo писал(а):
почему при мониторинге действий программы, постоянно идет обращение к файлу имя_базы.db-journal - NAME NOT FOUND

Это журнал транзакций, аналогичный журнал есть во многих БД и файловых системах. Если не ошибаюсь, его основное назначение - обход коллизий и повреждений базы при одновременном доступе или при сбое транзакции. Движок базы регулярно проверяет, не произошло ли что-то (например, та же коллизия или программный/аппаратный сбой, не позволивший внести изменения в базу): нет ли на диске файла журнала, нет ли в журнале записей о начавшейся операции, меняющей содержимое базы. По результатам проверки изменения либо откатываются (как минимум, на период запроса), либо применяются (если запрос не совпал с операцией записи в базу).
Для неприхотливых к целостности данных, но требующих максимальной скорости задач лучше работать в оперативной памяти. Если на чтении всё кончается не нахождением файла, то на записи без режима принудительного пропуска журнала "лишних" телодвижений просто масса. Особенно заметно ускорение будет на частых операциях замены объёмистых записей другими, тоже не маленькими, т.к. по умолчанию (база на диске, конкурентный режим) все они попадают в журнал (!).
Надеюсь, понятно объяснил?
карма: 1

1
Голосовали:Konst