Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird Embeded - очистить базу. / 7 сообщений из 7, страница 1 из 1
04.02.2016, 13:23
    #39162894
Mediv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Firebird Embeded - очистить базу.
Всем привет, подскажите, как уменьшить размер файла БД, очистил таблицы (delete from ..) данные ушли, но размер базы не изменился, видимо сами данные полностью не удалились, может в системных таблицах лежат, я не особо в этом разбираюсь.
Подскажите, где искать, как очистить таблицы, чтобы данные полностью удалились из базы, и вес файла БД, соответственно, уменьшился.
Спасибо
...
Рейтинг: 0 / 0
04.02.2016, 13:27
    #39162896
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Firebird Embeded - очистить базу.
файл базы не уменьшается.
и в оракле тоже.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
04.02.2016, 13:30
    #39162901
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Firebird Embeded - очистить базу.
Mediv,

базу надо ПЕРЕсоздать

например через backup-restore

только не забудь прочитать статьи про то, как НЕ надо делать b&r
...
Рейтинг: 0 / 0
04.02.2016, 13:43
    #39162920
Mediv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Firebird Embeded - очистить базу.
Arioch,
У меня есть эталон, его буду использовать, залью нужные справочники.
Просто хотелось узнать, почему размер не изменился, данные где то лежат, или просто под тот объем данных, который был, зарезирвированно место и ничего уже нельзя сделать.
...
Рейтинг: 0 / 0
04.02.2016, 13:49
    #39162928
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Firebird Embeded - очистить базу.
MedivПросто хотелось узнать, почему размер не изменился

1. delete from физически не удаляет данные, а создает новые версии. Поэтому при удалении большого объема данных база скорее вырастет, чем даже останется такой же. Разумеется, далее старые данные и версии удаления будут вычищены сборкой мусора, но не сразу.
2. когда данные удаляются, возникает пустое место, которое будет использовано повторно.
3. файл БД - файл произвольного доступа. Это контейнер с "случайным" расположением данных. Чтобы отрезать конец файла, надо чтобы в этом месте ничего не лежало. А если там что-то находится, что это надо куда-то перенести. Так что эта операция однозначно монопольная, т.е. файл БД для этих целей придется блокировать на какое-то время. Кроме того, в процессе жизни база обычно наполняется данными, а не урезается. Так зачем тогда постоянно уменьшать и увеличивать файл?

Если залил тестовые данные, ну сделай после их удаления b/r.
...
Рейтинг: 0 / 0
04.02.2016, 13:49
    #39162929
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Firebird Embeded - очистить базу.
MedivПросто хотелось узнать, почему размер не изменился
Потому что дефрагментация данных и последующий shrink - весьма дорогая и нафиг никому не
нужная операция.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
04.02.2016, 13:56
    #39162936
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Firebird Embeded - очистить базу.
Mediv,

а у тебя рамер винчестера уменьшается, когда ты файлы стираешь?

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

возьми любую статью про версионные SQL-движки и/или конкретно про Interbase/Firebird, там в общих чертах описано как это работает всё

ну например по ссылкам погуляй из этого параграфа: https://en.wikipedia.org/wiki/Firebird_(database_server)#The_Multi-Generational_Architecture_.28MGA.29
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird Embeded - очистить базу. / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]