Poprzednio skompresowane tabele i fragmenty można dekompresować. Dekompresja tabeli lub fragmentu powoduje dezaktywację kompresji dla nowych operacji wstawiania i aktualizacji, dekompresuje wszystkie skompresowane wiersze, dezaktywuje słownik kompresji i przydziela nowe strony dla wierszy, które nie pasują na stronach oryginalnych.
Możliwe jest kompresowanie online lub offline - w tym celu należy użyć argumentu uncompress lub uncompress_offline. Operacja uncompress_offline przebiega w taki sam sposób, jak operacja uncompress, z wyjątkiem tego, że ta operacja (uncompress_offline) jest wykonywana w trakcie, gdy fragment jest zablokowany na wyłączność, co uniemożliwia innym użytkownikom dostęp do danych fragmentu do czasu zakończenia operacji.
Usuwanie lub wyłączenie indeksów przed zakończeniem operacji uncompress_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 lub uncompress_offline bez tych operacji usuwania/wyłączania i ponownego tworzenia/włączania.
Aby zdekompresować dane w tabeli lub we fragmencie:
W przypadku tabeli określ następujące informacje:
EXECUTE FUNCTION task(“table uncompress”, “nazwa_tabeli”,
“nazwa_bazy_danych”, “nazwa_właściciela”);
lub
EXECUTE FUNCTION admin(“table uncompress_offline”,
“nazwa_tabeli”, “nazwa_bazy_danych”, “nazwa_właściciela”);
Nazwa tabeli jest obowiązkowa. Nazwa bazy danych i nazwa właściciela są opcjonalne. Jeśli nie zostanie określona nazwa bazy danych ani nazwa właściciela, produkt IBM® Informix wykorzysta nazwę bieżącej bazy danych i nazwę bieżącego właściciela.
W przypadku tabeli określ następujące informacje:
EXECUTE FUNCTION task(“fragment uncompress”, “lista_numerów_partycji”);
lub
EXECUTE FUNCTION task(“fragment uncompress_offline”, “lista_numerów_partycji”);
EXECUTE FUNCTION task("table uncompress","rock","music","mario");
Poniższy przykład przedstawia komendę,
która informuje produkt Informix o konieczności zdekompresowania offline fragmentu o
numerze partycji 14680071. EXECUTE FUNCTION task("fragment uncompress_offline," "14680071");
Jeśli tabela została zdekompresowana, produkt Informix oznacza słownik dla tabeli jako nieaktywny. Produkt Informix nie usuwa katalogów, ponieważ funkcje Enterprise Replication korzystają z katalogów dla starszych dzienników. Słowniki, które nie są już używane, można usunąć.
Komendę można anulować za pomocą argumentu uncompress, 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 uncompress i uncompress_offline. (Operacje kompresji, przepakowania i dekompresji są rejestrowane, ale są wykonywane na małych porcjach danych).