W tym scenariuszu opisano sposób uruchamiania komend administracyjnego interfejsu API
języka SQL umożliwiających administrowanie optymalizacją kompresji i przechowywania.
Aby skompresować zarówno dane w wierszach, jak i duże obiekty proste w obszarach dbspace:
- Ponieważ nie wiadomo, czy warto skompresować tabelę rock,
uruchom następującą komendę, aby sprawdzić, ile miejsca można zaoszczędzić,
kompresując dane:
EXECUTE FUNCTION task("table estimate_compression", "rock", "muzyka",
"mario");
Raport wynikowy zawiera informacje wskazujące, że można zaoszczędzić do 75
procent miejsca aktualnie używanego przez tabelę rock. Decydujesz się na skompresowanie tabeli.
- Przed przystąpieniem do kompresji danych chcesz utworzyć słownik kompresji, który zawiera
informacje używane przez IBM® Informix do kompresji danych w tabeli rock. Uruchamiasz następującą komendę
EXECUTE FUNCTION task("table create_dictionary", "rock", "muzyka",
"mario");
Jeśli nie utworzysz słownika kompresji w ramach osobnego kroku,
Informix utworzy słownik automatycznie podczas kompresji danych.
- Decydujesz się na kompresję danych w tabeli rock i dużych obiektów prostych w obszarach dbspace, konsolidację danych oraz zwrócenie wolnej przestrzeni do obszaru dbspace.
Uruchamiasz następującą komendę:
EXECUTE FUNCTION task("table compress repack shrink", "rock", "muzyka",
"mario");
Aby skompresować tylko dane w wierszach lub tylko duże obiekty proste w obszarach
dbspace, dostosuj komendę, wstawiając słowo
rows lub
blobs po słowie
compress lub po łańcuchu
compress repack shrink. Na przykład:
- Aby skompresować tylko dane w wierszach, podaj:
EXECUTE FUNCTION task("table compress rows","rock","muzyka","mario");
- Aby skompresować tylko dane w wierszach, a następnie przepakować i zmniejszyć dane, podaj:
EXECUTE FUNCTION task("table compress repack shrink rows",
"rock","muzyka","mario";
- Aby skompresować tylko duże obiekty proste w obszarze dbspace, podaj:
EXECUTE FUNCTION task("table compress blobs","rock","muzyka","mario");
Po skompresowaniu istniejących wierszy i dużych
obiektów prostych Informix konsoliduje wolne miejsce pozostałe na
końcu tabeli, a następnie usuwa wolną przestrzeń z tabeli, zwracając ją do obszaru dbspace.
Jeśli duże obiekty proste lub wiersze /*nie są mniejsze
po skompresowaniu, serwer bazy danych nie kompresuje ich.
- Załóżmy, że konieczne jest zdekompresowanie danych. Uruchamiasz następującą komendę:
EXECUTE FUNCTION task("table uncompress", "rock", "muzyka", "mario");
- Chcesz usunąć słownik kompresji.
- Sprawdź, czy program Enterprise Replication nie wymaga
słownika.
Nie należy usuwać słowników kompresji w przypadku nieskompresowanych lub
usuniętych tabel i fragmentów, jeśli słowniki są wymagane przez program Enterprise Replication.
- Zarchiwizuj obszar dbspace zawierający tabelę lub fragment ze słownikiem kompresji.
- Uruchom komendę:
EXECUTE FUNCTION task("table purge_dictionary", "rock", "muzyka",
"mario");
Dane oraz duże obiekty proste w obszarach dbspace we fragmentach tabel kompresuje się i dekompresuje w ten sam sposób, co dane i duże obiekty proste w obszarach dbspace w wierszach, przy czym uruchamiane komendy mają następujący format:
EXECUTE FUNCTION task("fragment compression_arguments", "partnum_list");
Jeśli wymagana jest konsolidacja wolnej pamięci lub wymagane jest zwrócenie wolnej pamięci bez kompresowania i ponownego kompresowania,
można uruchomić komendę, która poinformuje serwer o konieczności przepakowania i/lub zmniejszenia.