|
Firebird Embeded - очистить базу.
|
|||
---|---|---|---|
#18+
Всем привет, подскажите, как уменьшить размер файла БД, очистил таблицы (delete from ..) данные ушли, но размер базы не изменился, видимо сами данные полностью не удалились, может в системных таблицах лежат, я не особо в этом разбираюсь. Подскажите, где искать, как очистить таблицы, чтобы данные полностью удалились из базы, и вес файла БД, соответственно, уменьшился. Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2016, 13:23 |
|
Firebird Embeded - очистить базу.
|
|||
---|---|---|---|
#18+
файл базы не уменьшается. и в оракле тоже. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2016, 13:27 |
|
Firebird Embeded - очистить базу.
|
|||
---|---|---|---|
#18+
Mediv, базу надо ПЕРЕсоздать например через backup-restore только не забудь прочитать статьи про то, как НЕ надо делать b&r ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2016, 13:30 |
|
Firebird Embeded - очистить базу.
|
|||
---|---|---|---|
#18+
Arioch, У меня есть эталон, его буду использовать, залью нужные справочники. Просто хотелось узнать, почему размер не изменился, данные где то лежат, или просто под тот объем данных, который был, зарезирвированно место и ничего уже нельзя сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2016, 13:43 |
|
Firebird Embeded - очистить базу.
|
|||
---|---|---|---|
#18+
MedivПросто хотелось узнать, почему размер не изменился 1. delete from физически не удаляет данные, а создает новые версии. Поэтому при удалении большого объема данных база скорее вырастет, чем даже останется такой же. Разумеется, далее старые данные и версии удаления будут вычищены сборкой мусора, но не сразу. 2. когда данные удаляются, возникает пустое место, которое будет использовано повторно. 3. файл БД - файл произвольного доступа. Это контейнер с "случайным" расположением данных. Чтобы отрезать конец файла, надо чтобы в этом месте ничего не лежало. А если там что-то находится, что это надо куда-то перенести. Так что эта операция однозначно монопольная, т.е. файл БД для этих целей придется блокировать на какое-то время. Кроме того, в процессе жизни база обычно наполняется данными, а не урезается. Так зачем тогда постоянно уменьшать и увеличивать файл? Если залил тестовые данные, ну сделай после их удаления b/r. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2016, 13:49 |
|
Firebird Embeded - очистить базу.
|
|||
---|---|---|---|
#18+
MedivПросто хотелось узнать, почему размер не изменился Потому что дефрагментация данных и последующий shrink - весьма дорогая и нафиг никому не нужная операция. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2016, 13:49 |
|
Firebird Embeded - очистить базу.
|
|||
---|---|---|---|
#18+
Mediv, а у тебя рамер винчестера уменьшается, когда ты файлы стираешь? а данные - да, как и при удалении файлов сами данные специально никто не затирает, они где-то там лежат, какое-то время, пока чисто случайно не будут переписаны новыми данными возьми любую статью про версионные SQL-движки и/или конкретно про Interbase/Firebird, там в общих чертах описано как это работает всё ну например по ссылкам погуляй из этого параграфа: https://en.wikipedia.org/wiki/Firebird_(database_server)#The_Multi-Generational_Architecture_.28MGA.29 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2016, 13:56 |
|
|
start [/forum/topic.php?fid=40&msg=39162920&tid=1562362]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 135ms |
0 / 0 |