pavel-pimenov / flylinkdc-r5xx

flylinkdc-r5xx
GNU General Public License v2.0
55 stars 26 forks source link

очистка базы данных от старых записей #1630

Open pozitivv opened 8 years ago

pozitivv commented 8 years ago

добрый день, по-моему клиент не очищает базу от старых записей, пробовал вручную (файл->очистка базы данных TTH), файлы sqlite только растут, посмотрел через SQLite Expert записи файлов, которых пару лет уже нет. возможно с этим связаны мои тормоза клиента при обновлении базы, заранее изменяюсь если говорю неправильно или гдето допустил ошибку

pavel-pimenov commented 8 years ago

Там выполняется удаление. но не делается вакумация (т.к. на больших базах это длительный процесс)

Можете сделать сами руками и отписать сколько даст экономию?

  1. закрываете флай
  2. делаете бэкап базы (все файлы *.sqlite)
  3. создаете батник 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

pozitivv commented 8 years ago

сделал, даже запускаться клиент быстрее стал:), обновление на первый взгляд тоже шустрее стало, позже ещё отпишусь как обновление файлов работает через пару часов и под активной раздачей, раньше могло и 30 секунд обновляться и больше, особенно тормозил запуск самого обновления при появлении новых файлов в шаре (тоесть само обновление идет нормально, а вот до него тормозится).

сама папка (C:\Users...\AppData\Roaming\FlylinkDC++) с 450mb до 300mb похудела, основные файлы .sqlite больше чем в два раза уменьшились, единственный файл FlylinkDC_transfers.sqlite остался практически такимже 115mb, но помоему он и не должен был похудеть, но может что-то придумать.

если действительно будет прирост, может какую-нибудь проверку включить в клиент, чтобы раз в месяц очищал.

pavel-pimenov commented 8 years ago

А по времени сколько шла операция? Просто у некоторых баз по несколько гиг весят...

pozitivv commented 8 years ago

точно не скажу, но наверное не больше 2-х минут весь процесс длился, на файл размером 120mb уходило 20-25 секунд, если надо могу скинуть бэкап базы

было - https://yadi.sk/i/CHy1qgCTrGkUM стало - https://yadi.sk/i/hh-_13BTrGkUR

pavel-pimenov commented 8 years ago

А в какой момент предлагается делать упаковку из программы? просто в эти 2 минуты работать программе не получится т.к. база лочится и насколько я помню к ней нельзя сделать даже select визуально это выглядит как подмерзание клиента. может если только перед стартом с предупреждением что старт затянется...

pozitivv commented 8 years ago

только первый раз, второй около минуты (база похудела), но да это для тех у кого база большая, это наверное каждый 10 в лучшем случае может отдельную галочку в настройках сделать и далее как процесс обновления запустить, не обязательно каждую неделю делать (срача мало будет), а раз в 2-3 месяца вобще отлично будет, а для остальных 9 процесс будет не больше 15-20 секунд, не длиннее процесса обновления.

Krulk commented 8 years ago

В GL есть специальная кнопка Почистить базу: http://storage4.static.itmages.ru/i/16/0507/h_1462610653_1133074_fe0645b211.png Чистка базы занимает от 5сек до нескольких минут.