Страница 1 из 1
FB 2.1: Уменьшение размеров "новой" базы после b/
Добавлено: 13 фев 2008, 06:54
VerLeon
Такая вот непонятка у меня..
FB 2.1 RC1 (может и на других так же, просто не пробовал).
Перевожу базу размером ~3 Гб скриптом с IB 7.5.
Данные заливаются так же скриптом.
После переливания база на FB стала примерно такая же по размерам, что и на IB.
Делаю сразу после этого b/r и.. Опаньки, а база стала 2,5 гига!
Все данные на месте, вроде ничего не поменялось - ODS, размер страницы - все то же.
Так куда делось 500 метров? Мусор? Может я чего не понимаю в версионниках, но откуда ему взяться после кучи тупых инсертов, без триггеров и индексов.
Собственно уменьшение размера-то радует, но непонятно за счет чего и почему для этого надо делать b/r
Добавлено: 13 фев 2008, 13:24
Merlin
1. В автосгенерённых скриптах, как правило, полно конструкций типа
Код: Выделить всё
Create Procedure P1
As
Begin
Exit;
End
Create Procedure P2
As
Begin
Exit;
End
....
Alter Procedure P1
As
Begin
Настоящее тело
End
...
2. Рестор идёт, если мне не изменяет склероз, в две транзакции - метаданные и данные. В скриптах, как правило, коммиты ходят стаями. Растёт TIP и, наверное, ещё что-то.
3. Расширение файла в обоих случаях идёт не побайтно, и, скорей всего в разное количество приёмов

Re: FB 2.1: Уменьшение размеров "новой" базы после
Добавлено: 14 фев 2008, 08:27
dimitr
VerLeon писал(а):вроде ничего не поменялось - ODS
ODS как раз и поменялась
Re: FB 2.1: Уменьшение размеров "новой" базы после
Добавлено: 14 фев 2008, 12:40
Merlin
dimitr писал(а):VerLeon писал(а):вроде ничего не поменялось - ODS
ODS как раз и поменялась
А почему? Он же создавал базу под тем же FB скриптом и лил данные.
Добавлено: 14 фев 2008, 13:17
kdv
А почему? Он же создавал базу под тем же FB скриптом и лил данные.
очевидно, что при ресторе этот процесс происходит иначе.
В любом случае - берем IBAnalyst, смотрим на исходную базу и на после b/r. сравниваем, чего убыло.
Re: FB 2.1: Уменьшение размеров "новой" базы после
Добавлено: 18 фев 2008, 07:34
VerLeon
to Merlin:
1. Даже при учете, что все процедуры в результате таких операций стали иметь 2 версии, то полный объем метаданных в базе - не больше 50 метров (это размер пустой базы), на 500 никак не тянет
2. Да, коммиты - стаями, но все-таки не понимаю я - какая версионность при инсертах? Может я не прав, но мне казалось, что версионность - это версии записей, а не таблиц целиком.
3. Да, не побайтно, preallocation не выключен, но стоит по умоланию - вроде как 128 метров (ну или 1/16 - но от 3 гигов это тоже никак не 500 метров). Так что даже если вдруг произошел один лишний "скачок", то это не объясняет ситуации.
to kdv:
Нет, ODS не поменялась, по крайней мере версия - 11.1 как была так и осталась.
Аналистом к сожалению пока не могу посмотреть, так как исходной базы нет. Но в марте таких экспериментов ожидается много - посмотрю, если что найду интересное - отпишусь.
Добавлено: 18 фев 2008, 10:35
hvlad
Как делался рестор ?
Добавлено: 18 фев 2008, 11:04
WildSery
Наверняка с -USE_ALL_SPACE?
Добавлено: 18 фев 2008, 12:30
VerLeon
WildSery писал(а):Наверняка с -USE_ALL_SPACE?
Да, все оказалось проще, скорее всего именно этот флаг и был включен. По крайней мере повторный рестор с этим флагом дал ту же базу размером 2,5 гига, а без него - ~3 гигов.
Спасибо всем откликнувшимся, топик видимо можно закрыть.