SASGIS - SAS.Планета
View Issue Details
0003851SAS.Планета[All Projects] Багpublic26-03-2023 21:2027-03-2023 07:46
Bubo_chernobylianus 
 
normaltweakalways
newopen 
Windows7Ultimate
220707 
 
0003851: При удалении тайлов в области выделения на кэше SQLite3 и Berkley DB место на диске не освобождается.
Не освобождается место на HDD при удалении тайлов в некоторой области выделения HLG в случае, если тип кэша не тайловый (например, родной кэш САС Планеты), а в виде базы данных (SQLite3 или Berkley DB). Вызывает большое неудобство, если нужно подчистить место на диске путём частичного удаления кэша САС Планеты.

При этом после удаления тайлов САС Планета действительно не отображает тайлы в выделенной области, будто их "нету". Но размеры SQLITEDB-файлов, попадающих на данную область выделения, не уменьшаются, а напротив, даже немного увеличиваются.

То же и с файлами SDB при использовании кэша Berkley DB.
1. Для чистоты эксперимента сделать отдельную установку САС Планеты, чтобы кэш был абсолютно чистый.
2. Выделить произвольную область на карте. Я, например, выделил город Санкт-Петербург.
3. Загрузить какую-нибудь карту. Я, например, загрузил спутник Google на масштабе z18.
4. Закрыть САС Планету, чтобы в кэше исчезли файлы SHM и WAL.
5. Зайти в <Папка_с_САС_Планетой>/cache_sqlite/sat/ и посмотреть в Свойствах размер папки z18. Запомнить размер (Я заскринил).
6. Снова открыть САС Планету и по сочетанию Ctrl+B перейти к операциям с последней областью выделения. Во вкладке "Удалить" выбрать Спутник Google и масштаб z18. Выполнить удаление тайлов.
7. Закрыть САС Планету (см. п. 4).
8. Повторить п. 5.

Размер папки обязательно станет больше, будто скачали что-то ещё, а не удалили.
No tags attached.
related to 0003661new  Добавить в "Управление кэшем" VACUUMизацию БД SQLite3 
Issue History
26-03-2023 21:20Bubo_chernobylianusNew Issue
27-03-2023 07:25zedNote Added: 0020385
27-03-2023 07:45zedRelationship addedrelated to 0003661
27-03-2023 07:46zedNote Added: 0020386

Notes
(0020385)
zed   
27-03-2023 07:25   
Это нормальное поведение для всех БД. Для освобождения места в SQLite используйте команду VACUUM.
(0020386)
zed   
27-03-2023 07:46   
В прикреплённом тикете есть пример командной строки для запуска vacuum.