Тут с этими страницами, оказывается, не всё так просто, как я думал.
Обновлённая статистика (после backup/restore):
Код: Выделить всё
Database header page information:
Flags 0
Checksum 12345
Generation 38
Page size 8192
ODS version 10.1
Oldest transaction 28
Oldest active 29
Oldest snapshot 29
Next transaction 30
Bumped transaction 1
Sequence number 0
Next attachment ID 0
Implementation ID 16
Shadow count 0
Page buffers 20480
Next header page 0
Database dialect 3
Creation date May 16, 2005 14:05:13
Attributes no reserve
no reserve - потому, что по базе никогда не делается update - только delete <устаревшие данные> и insert <новенькое>. (Или может не стоило экономить? Хотя 20% - это всё-таки 2 лишних Гига...)
Теперь статистика по таблице CONN (она самая большая и занимает большую часть БД):
Код: Выделить всё
CONN (130)
Primary pointer page: 138, Index root page: 139
Average record length: 25.92, total records: 127461506
Average version length: 0.00, total versions: 0, max versions: 0
Data pages: 1223251, data page slots: 1223251, average fill: 12%
Fill distribution:
0 - 19% = 0
20 - 39% = 0
40 - 59% = 1
60 - 79% = 0
80 - 99% = 1223250
Получается, что в результате упаковки (?) средняя длина записи равна 25.92. Помноженное на количество записей это даёт 3,3 Гб. Реально таблица занимает 1223251 страниц или 9556.65 Гб. Получается, что реально используется где-то треть от занятых страниц, однако IBAnalyst показывает AvgFill=12%, а RealFill=55%.
Если честно, от такого количества небьющихся между собой цифр у меня голова кругом пошла.

Во второй по величине таблице (~1.4 млн записей, 121 Мб) всё выглядит более ожидаемо: AvgFill=RealFill=98%.
Я так подозреваю, что это как-то связано с большим количеством записей с пустыми полями в таблице CONN, например, igtrp и ilno = NULL где-то в половине записей.
В общем, пошлите меня куда-нибудь, пожалуйста, ... почитать, чтобы мозги на место встали.
