Konsolidację (przepakowanie) wolnej pamięci w tabelach i fragmentach można przeprowadzić podczas kompresowania tabel lub fragmentów albo osobno - bez kompresowania.
Operację przepakowania można przeprowadzić online lub offline za pomocą argumentu repack lub repack_offline. Operacja repack_offline przebiega w taki sam sposób, jak operacja przepakowania, z wyjątkiem tego, że produkt IBM® Informix wykonuje tę operację przy jednoczesnym zablokowaniu na wyłączność tabeli albo fragmentu. Ta operacja uniemożliwia inne operacje dostępu do danych do czasu zakończenia operacji.
Jeśli operacje lekkiego dołączania wystąpią w tabeli lub we fragmencie podczas przepakowywania, to operacja przepakowywania nie kończy konsolidowania obszaru pamięci na końcu tabeli lub fragmentu. Operacja przepakowania nie zostanie zakończona, ponieważ w miejscach, w których przepakowanie zostało zakończone, zostaną dodane nowe przydziały, dlatego wolne miejsce nie będzie zwracane do obszaru dbspace. Aby zakończyć proces przepakowania, należy uruchomić drugą operację przepakowania po zakończeniu lekkiego dołączania. Druga operacja przepakowania wykorzystuje efekty działania pierwszej operacji przepakowania.
Usuwanie lub wyłączenie indeksów przed zakończeniem operacji repack_offline może spowodować skrócenie czasu wykonywania operacji przez serwer. Po zakończeniu możliwe jest odtworzenie lub ponowne aktywowanie indeksów, a preferowaną metodą jest wykorzystanie zapytań PDQ. Usuwanie lub wyłączanie indeksów, a następnie ich ponowne tworzenie lub włączanie może trwać krócej niż wykonywanie operacji repack_offline bez tych operacji usuwania/wyłączania i ponownego tworzenia/włączania.
Aby skonsolidować wolną pamięć w tabeli:
Poniższy przykład przedstawia komendę, która informuje produkt Informix o konieczności skonsolidowania wolnej pamięci w tabeli o nazwie "opera" w bazie danych "music", której właścicielem jest "bob".
EXECUTE FUNCTION
task("table repack","opera","music","bob");
Poniższy przykład przedstawia komendę, która informuje produkt Informix o konieczności skonsolidowania offline wolnej pamięci w tabeli o nazwie "folk" w bazie danych "music", której właścicielem jest "janna".
EXECUTE FUNCTION task("table repack_offline","folk","music","janna");
Poniższy
przykład przedstawia komendę, która informuje produkt Informix o konieczności skonsolidowania wolnej
pamięci i zwrócenia pamięci do obszaru dbspace, do fragmentu o numerze partycji 14680071.EXECUTE FUNCTION task("fragment repack shrink", "14680071");
Komendę można anulować za pomocą argumentu compress, np. poprzez naciśnięcie kombinacji klawiszy CTRL-C w programie DB-Access. W przypadku przerwania komendy możliwe jest ponowne wprowadzenie komend z argumentami repack i repack_offline. (Operacje kompresji i przepakowania zostaną zarejestrowane, ale będą wykonywane na małych porcjach danych).