18 августа 2011 г.

Тотальная чистка и реиндексация Sqlite

источник здесь: link

Многие программы в Ubuntu хранят данные не в текстовых файлах, а в базах данных и часто в качестве последней выступает система управления базами данных (СУБД) Sqlite. Можно провести средствами Sqlite чистку пустых записей и создание заново индексов файла базы данных. Лучшим вариантом будет создание скрипта, содержащего вызовы Sqlite, для периодического запуска его время от времени. И так:

1. Установите sqlite3 через Синаптик или в Терминале sudo aptitude install sqlite3

2. Запустим файловый менеджер Nautilus и создадим папку bin в домашней папке. Перейдем в папку bin и там в меню Наутилуса Файл — Создать документ — Пустой файл. Дайте имя файлу, например optimizer.sh Откройте этот файл в Текстовом редакторе и вставьте строки, сохраните изменения

#!/bin/bash
find ~/ -size +100k -type f -print0 | \
while read -d '' FILE; do
  abs_file_name=$(readlink -f "$FILE")
  headfile=`head -c 15 "$abs_file_name"`;
  if [ "$headfile" = "SQLite format 3" ]; then
    file_size_do=`du -b "$abs_file_name"|cut -f1`;
    sqlite3 "$abs_file_name" "VACUUM; REINDEX;" > /dev/null 2>&1
    file_size_posle=`du -b "$abs_file_name"|cut -f1`;
    echo "$abs_file_name";
    echo "Размер ДО $file_size_do";
    echo "Размер ПОСЛЕ $file_size_posle";
    echo -n "Процент "
    echo "scale=2; ($file_size_posle/$file_size_do)*100"|bc -l
  fi
done
sleep 2
exit 0


3. В Наутилусе на файле optimizer.sh щелкните правой клавишей мыши и вызовите Свойства, в закладке «Права» выставьте права Выполнения или все это можно сделать в Терминале, используя команду chmod +x ~/bin/optimizer.sh

4. Перейдите в консоль, нажав Ctrl + Alt + F1 и залогиньтесь под своей учетной записью.

5. Завершите Gnome/KDE

$ sudo /etc/init.d/gdm stop
$ sudo /etc/init.d/kdm stop


6. Запустите скрипт, который разыщет все файлы SQLite в домашней директории и оптимизирует их. Перенаправляем вывод в файл, чтобы посмотреть его позже в удобной среде Gnome.

$ ~/bin/optimizer.sh > ~/report_sqlite_shrink.txt


7. Дождитесь окончания работы скрипта и перезагрузись:

$ sudo shutdown -r +0


8. Откройте в Текстовом Редакторе файл ~/report_sqlite_shrink.txt и посмотрите какие файлы подверглись оптимизации, посмотрите в процентах на сколько лишнего баласта было до оптимизации.
От данного совета, особенно выиграют пользователи KDE и Google Chrome, им и порекомендуем данный совет.

Комментариев нет:

Отправить комментарий