Santiago_Bernabeu Цитата: 1) Что значит "Упаковать кэш"? Что дает эта самая упаковка?
С этим здесь разбирались прошлой зимой --
http://forum.ru-board.com/topic.cgi?forum=5&topic=25170&start=1860 Вот цитаты с того времени:
Цитата:
Проверил третий раз. Снова загнал кеш 4,43 гб в корень диска. (1-16 слой спутника) Со 2 слоя выбрал максимальное задание для удаления по всему миру. Удалила за те же 2,5 минуты. Никакой ругани и ошибок. Визуально все удалено. Но физический объем файла не уменьшился -- он по-прежнему весит 4,43 гб. Презагрузка диска ничего не меняет. Так должно быть или нет?
Все верно, пока не сделаешь "упаковку" кэша, размер будет одинаков, что с удаленными тайлами, что без. Таков SQLite, да и некоторые другие движки БД. По аглицки же понимаешь? Вот цитата из гвайда к SQLite:
"When an object (table, index, or trigger) is dropped from the database, it leaves behind empty space. This makes the database file larger than it needs to be, but can speed up inserts. In time inserts and deletes can leave the database file structure fragmented, which slows down disk access to the database contents.
The VACUUM command cleans the main database by copying its contents to a temporary database file and reloading the original database file from the copy. This eliminates free pages, aligns table data to be contiguous, and otherwise cleans up the database file structure."
Упаковать кэш -- команда VACUUM для SQLite
P.S. На практике у этой команды есть очень серьезное ограничение по железу -- базы объемом более 10 -- 15 гб на моем железе вешали и комп, и программу, а перезагрузка изничтожала базу. Так что все эксперименты с этой штукой старайся делать на копиях кеша.
Как мне кажется, того же результата можно добиться перегнав один кэш в другой кэш, т.е. его "упорядочить". А если хочется удалить лишнее -- это станет возможным экспортом кэша через полигонное выделение. Пока же результата можно добиться включив в процесс кэш САС. Т.е. кэша Satmap (полигонное выделение) -- экспорт в кэш САС -- импорт из кэша САС в новую базу.