Argumenty index compress repack shrink funkcji admin() i task() pozwalają kompresować indeksy B-drzewa, konsolidować wolną pamięć (przepakowywać) i zwracać wolną pamięć (zmniejszać) partycji.
Składnia: argumenty komendy kompresji indeksów >>-EXECUTE FUNCTION--+-admin-+----------------------------------> '-task--' >--(--"--index--+---compress------+--------+--+--------+---+--"--> | '-repack-' '-shrink-' | +-repack--+--------+-----------------------+ | '-shrink-' | '-shrink-----------------------------------' >--,--"nazwa_indeksu"--,--"baza_danych"--,--"właściciel"--------> >--)--;--------------------------------------------------------><
Poniższa tabela zawiera krótkie wyjaśnienie poszczególnych argumentów.
| Argument | Opis |
|---|---|
| compress | Kompresuje indeks. |
| repack | Konsoliduje wolne miejsce, przenosząc dane na początek indeksu. |
| shrink | Zwraca wolną pamięć z końca indeksu do obszaru dbspace, zmniejszając w ten sposób łączną wielkość indeksu. |
W poniższej tabeli przedstawiono elementy, których można użyć do kompresji, przepakowania i zmniejszenia indeksu.
| Element | Opis | Ważne informacje |
|---|---|---|
| nazwa_indeksu | Nazwa indeksu, który ma zostać skompresowany. | Wymagana. Należy użyć takiej samej kombinacji wielkich i małych liter, jaka używana jest w tabelach katalogu systemowego. |
| baza_danych | Nazwa bazy danych zawierającej indeks, który ma zostać skompresowany. | Opcjonalnie. Jeśli baza danych nie zostanie podana, serwer bazy danych użyje bieżącej bazy. W wypadku wprowadzenia nazwy bazy danych należy zapisać ją taką samą kombinacją wielkich i małych liter, jaka używana jest w tabelach katalogu systemowego. |
| właściciel | Nazwa właściciela bazy danych zawierającej indeks, który ma zostać skompresowany. | Opcjonalnie. Jeśli właściciel nie zostanie podany, serwer bazy danych użyje nazwy bieżącego właściciela. W wypadku wprowadzenia nazwy właściciela należy zapisać ją taką samą kombinacją wielkich i małych liter, jaka używana jest w tabelach katalogu systemowego. |
Można skompresować odłączony indeks B-drzewa tabeli podzielonej lub niepodzielonej na fragmenty. Nie można skompresować przyłączonego indeksu.
Indeks musi zawierać co najmniej 2000 kluczy, aby mógł zostać skompresowany. Jeśli fragment indeksu nie zawiera co najmniej 2000 kluczy, serwer bazy danych nie kompresuje indeksu lub fragmentu po utworzeniu indeksu. Indeks pozostaje nieskompresowany, nawet jeśli są do niego dodawane nowe klucze. Aby skompresować indeks, uruchom funkcję administracyjnego interfejsu API języka SQL task() lub admin() z argumentem index compress.
Aby określić, czy indeks zawiera minimalną liczbę kluczy, uruchom komendę oncheck -pT i sprawdź informacje w polu Number of keys.
Niektóre argumenty można łączyć w celu wykonania kombinacji operacji. Użyj argumentów:
Zwykle należy wykonać operację przepakowania po operacji kompresji i operację zmniejszania po operacji przepakowania.
Operacja kompresji kompresuje tylko liście (najniższy poziom) indeksu.
Można anulować komendę, na przykład naciskając kombinację klawiszy CTRL-C w programie DB-Access.
Nie można zdekompresować indeksu. Jeśli jest potrzebny indeks nieskompresowany, można usunąć indeks skompresowany i utworzyć go ponownie.
Następująca komenda kompresuje, przepakowuje i zmniejsza indeks o nazwie ind5 w bazie danych customer, której właścicielem jest użytkownik jayson.
EXECUTE FUNCTION task("index compress repack shrink","ind5",
"customer","jayson");