Za pomocą argumentu defragment używanego z funkcją admin() lub task() można defragmentować tabele lub indeksy w celu scalania nieprzylegających do siebie przydziałów.
Defragmentacja tabeli powoduje zmniejszenie odległości między wierszami danych, co pozwala uniknąć problemów z przepełnianiem strony nagłówka partycji i może przyczynić się do zwiększania wydajności.
Przed zdefragmentowaniem partycji należy zapoznać się z sekcją Defragmentowanie partycji.
Argument defragment lub argument defragment partnum można określić za pomocą następującej składni:
>>-EXECUTE FUNCTION--+-admin-+----------------------------------> '-task--' >--(--"--defragment--"--,----"--baza_danych--:--właściciel--.--tabela--"----)--;-><
>>-EXECUTE FUNCTION--+-admin-+----------------------------------> '-task--' .-,-----------------. V | >--(--"--defragment partnum--"--,----numer_partycji--"-+--)--;-><
| Element | Opis | Ważne informacje |
|---|---|---|
| baza_danych | Nazwa bazy danych, która zawiera tabelę albo indeks do defragmentacji. | |
| właściciel | ID użytkownika właściciela tabeli. | |
| tabela | Nazwa tabeli do defragmentacji. | |
| numer_partycji | Jeden lub większa liczba numerów partycji do defragmentacji. | W celu określenia więcej niż jednego numeru należy utworzyć listę numerów rozdzielonych przecinkami. |
W celu zdefragmentowania konkretnych tabel należy użyć argumentu defragment. W celu zdefragmentowania jednej lub większej liczby konkretnych partycji dysku należy użyć argumentu defragment partnum.
Informacje na temat defragmentacji są zapisane w pamięci współużytkowanej. Komenda Wyświetlanie obszarów tblspace dla tabeli lub fragmentu za pomocą komendy oncheck -pt oraz -pT pozwala wyświetlić informacje na temat liczby przydziałów dla konkretnej tabeli lub fragmentu. Komenda Komenda onstat -g defragment: wyświetlanie informacji o defragmentacji przydziałów partycji służy do wyświetlania informacji o aktywnych żądaniach defragmentacji przydziałów partycji.
Jeśli żądanie defragmentacji zmniejszy liczbę przydziałów o co najmniej 1, wówczas żądanie zwróci 0 (sukces), nawet jeśli partycja zawiera wiele przydziałów.
Jeśli partycja zawiera jeden przydział, wówczas żądanie defragmentacji zwróci 0, aby wskazać, że żądanie zakończyło się pomyślnie, mimo że nie doszło do scalenia żadnych przydziałów.
EXECUTE FUNCTION task(“defragment”,“stores_demo:informix.customer");
EXECUTE FUNCTION admin(“defragment”,“stores_demo:informix.customer");
EXECUTE FUNCTION task(“defragment partnum”,“2097154”);
EXECUTE FUNCTION admin(“defragment partnum”,“2097154”);
EXECUTE FUNCTION task(“defragment partnum”, “16777217,28477346");
EXECUTE FUNCTION admin(“defragment partnum”, “16777217,28477346");