FB 2.1: Уменьшение размеров "новой" базы после b/

Администирование клиентской и серверной части InterBase, Firebird, Yaffil. Настройка файла конфигурации и т.п.

Модераторы: kdv, Alexey Kovyazin

Ответить
VerLeon
Сообщения: 44
Зарегистрирован: 24 ноя 2007, 08:43

FB 2.1: Уменьшение размеров "новой" базы после b/

Сообщение VerLeon » 13 фев 2008, 06:54

Такая вот непонятка у меня..
FB 2.1 RC1 (может и на других так же, просто не пробовал).

Перевожу базу размером ~3 Гб скриптом с IB 7.5.
Данные заливаются так же скриптом.
После переливания база на FB стала примерно такая же по размерам, что и на IB.
Делаю сразу после этого b/r и.. Опаньки, а база стала 2,5 гига!
Все данные на месте, вроде ничего не поменялось - ODS, размер страницы - все то же.
Так куда делось 500 метров? Мусор? Может я чего не понимаю в версионниках, но откуда ему взяться после кучи тупых инсертов, без триггеров и индексов.

Собственно уменьшение размера-то радует, но непонятно за счет чего и почему для этого надо делать b/r

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 13 фев 2008, 13:24

1. В автосгенерённых скриптах, как правило, полно конструкций типа

Код: Выделить всё

Create Procedure P1
As
Begin
  Exit;
End

Create Procedure P2
As
Begin
  Exit;
End

....

Alter Procedure P1
As
Begin
  Настоящее тело
End
...
2. Рестор идёт, если мне не изменяет склероз, в две транзакции - метаданные и данные. В скриптах, как правило, коммиты ходят стаями. Растёт TIP и, наверное, ещё что-то.

3. Расширение файла в обоих случаях идёт не побайтно, и, скорей всего в разное количество приёмов :)

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Re: FB 2.1: Уменьшение размеров "новой" базы после

Сообщение dimitr » 14 фев 2008, 08:27

VerLeon писал(а):вроде ничего не поменялось - ODS
ODS как раз и поменялась

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Re: FB 2.1: Уменьшение размеров "новой" базы после

Сообщение Merlin » 14 фев 2008, 12:40

dimitr писал(а):
VerLeon писал(а):вроде ничего не поменялось - ODS
ODS как раз и поменялась
А почему? Он же создавал базу под тем же FB скриптом и лил данные.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 14 фев 2008, 13:17

А почему? Он же создавал базу под тем же FB скриптом и лил данные.
очевидно, что при ресторе этот процесс происходит иначе.
В любом случае - берем IBAnalyst, смотрим на исходную базу и на после b/r. сравниваем, чего убыло.

VerLeon
Сообщения: 44
Зарегистрирован: 24 ноя 2007, 08:43

Re: FB 2.1: Уменьшение размеров "новой" базы после

Сообщение VerLeon » 18 фев 2008, 07:34

to Merlin:
1. Даже при учете, что все процедуры в результате таких операций стали иметь 2 версии, то полный объем метаданных в базе - не больше 50 метров (это размер пустой базы), на 500 никак не тянет
2. Да, коммиты - стаями, но все-таки не понимаю я - какая версионность при инсертах? Может я не прав, но мне казалось, что версионность - это версии записей, а не таблиц целиком.
3. Да, не побайтно, preallocation не выключен, но стоит по умоланию - вроде как 128 метров (ну или 1/16 - но от 3 гигов это тоже никак не 500 метров). Так что даже если вдруг произошел один лишний "скачок", то это не объясняет ситуации.

to kdv:
Нет, ODS не поменялась, по крайней мере версия - 11.1 как была так и осталась.
Аналистом к сожалению пока не могу посмотреть, так как исходной базы нет. Но в марте таких экспериментов ожидается много - посмотрю, если что найду интересное - отпишусь.

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Сообщение hvlad » 18 фев 2008, 10:35

Как делался рестор ?

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 18 фев 2008, 11:04

Наверняка с -USE_ALL_SPACE?

VerLeon
Сообщения: 44
Зарегистрирован: 24 ноя 2007, 08:43

Сообщение VerLeon » 18 фев 2008, 12:30

WildSery писал(а):Наверняка с -USE_ALL_SPACE?
Да, все оказалось проще, скорее всего именно этот флаг и был включен. По крайней мере повторный рестор с этим флагом дал ту же базу размером 2,5 гига, а без него - ~3 гигов.

Спасибо всем откликнувшимся, топик видимо можно закрыть.

Ответить