flylinkdc-r5xx
flylinkdc-r5xx copied to clipboard
очистка базы данных от старых записей
добрый день, по-моему клиент не очищает базу от старых записей, пробовал вручную (файл->очистка базы данных TTH), файлы sqlite только растут, посмотрел через SQLite Expert записи файлов, которых пару лет уже нет. возможно с этим связаны мои тормоза клиента при обновлении базы, заранее изменяюсь если говорю неправильно или гдето допустил ошибку
Там выполняется удаление. но не делается вакумация (т.к. на больших базах это длительный процесс)
Можете сделать сами руками и отписать сколько даст экономию?
- закрываете флай
- делаете бэкап базы (все файлы *.sqlite)
- создаете батник sqlite_vacuum.bat
echo PRAGMA integrity_check; vacuum; PRAGMA integrity_check; | sqlite3.exe FlylinkDC.sqlite echo PRAGMA integrity_check; vacuum; PRAGMA integrity_check; | sqlite3.exe FlylinkDC_antivirus.sqlite echo PRAGMA integrity_check; vacuum; PRAGMA integrity_check; | sqlite3.exe FlylinkDC_dht.sqlite echo PRAGMA integrity_check; vacuum; PRAGMA integrity_check; | sqlite3.exe FlylinkDC_locations.sqlite echo PRAGMA integrity_check; vacuum; PRAGMA integrity_check; | sqlite3.exe FlylinkDC_log.sqlite echo PRAGMA integrity_check; vacuum; PRAGMA integrity_check; | sqlite3.exe FlylinkDC_mediainfo.sqlite echo PRAGMA integrity_check; vacuum; PRAGMA integrity_check; | sqlite3.exe FlylinkDC_queue.sqlite echo PRAGMA integrity_check; vacuum; PRAGMA integrity_check; | sqlite3.exe FlylinkDC_stat.sqlite echo PRAGMA integrity_check; vacuum; PRAGMA integrity_check; | sqlite3.exe FlylinkDC_transfers.sqlite echo PRAGMA integrity_check; vacuum; PRAGMA integrity_check; | sqlite3.exe FlylinkDC_user.sqlite
и запукаете его. файлы баз данных должны сжаться.
sqlite3.exe - можно скачать с оф сайта http://sqlite.org/2016/sqlite-tools-win32-x86-3120200.zip
сделал, даже запускаться клиент быстрее стал:), обновление на первый взгляд тоже шустрее стало, позже ещё отпишусь как обновление файлов работает через пару часов и под активной раздачей, раньше могло и 30 секунд обновляться и больше, особенно тормозил запуск самого обновления при появлении новых файлов в шаре (тоесть само обновление идет нормально, а вот до него тормозится).
сама папка (C:\Users...\AppData\Roaming\FlylinkDC++) с 450mb до 300mb похудела, основные файлы .sqlite больше чем в два раза уменьшились, единственный файл FlylinkDC_transfers.sqlite остался практически такимже 115mb, но помоему он и не должен был похудеть, но может что-то придумать.
если действительно будет прирост, может какую-нибудь проверку включить в клиент, чтобы раз в месяц очищал.
А по времени сколько шла операция? Просто у некоторых баз по несколько гиг весят...
точно не скажу, но наверное не больше 2-х минут весь процесс длился, на файл размером 120mb уходило 20-25 секунд, если надо могу скинуть бэкап базы
было - https://yadi.sk/i/CHy1qgCTrGkUM стало - https://yadi.sk/i/hh-_13BTrGkUR
А в какой момент предлагается делать упаковку из программы? просто в эти 2 минуты работать программе не получится т.к. база лочится и насколько я помню к ней нельзя сделать даже select визуально это выглядит как подмерзание клиента. может если только перед стартом с предупреждением что старт затянется...
только первый раз, второй около минуты (база похудела), но да это для тех у кого база большая, это наверное каждый 10 в лучшем случае может отдельную галочку в настройках сделать и далее как процесс обновления запустить, не обязательно каждую неделю делать (срача мало будет), а раз в 2-3 месяца вобще отлично будет, а для остальных 9 процесс будет не больше 15-20 секунд, не длиннее процесса обновления.
В GL есть специальная кнопка Почистить базу: http://storage4.static.itmages.ru/i/16/0507/h_1462610653_1133074_fe0645b211.png Чистка базы занимает от 5сек до нескольких минут.