IBM® Informix® 12.10

Konsolidacja wolnej pamięci w tabelach

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.

Wymagania wstępne:
  • Wymagane jest nawiązanie połączenia z bazą danych sysadmin (domyślnie taką czynność może wykonać tylko użytkownik informix), a użytkownik nawiązujący to połączenie musi mieć uprawnienia administratora systemu bazy danych.
  • Dzienniki należy skonfigurować w taki sposób, aby były większe, na wypadek, gdyby jakiekolwiek oczekiwane obciążenie (z uwzględnieniem operacji przepakowania i repack_offline) zużywało cały plik dziennika w czasie krótszym niż 30 sekund.

Aby skonsolidować wolną pamięć w tabeli:

  1. Uruchom funkcję admin() lub task() z argumentami table repack, table repack_offline, fragment repack lub fragment repack_offline.

    Dla tabeli wprowadź na przykład:

    EXECUTE FUNCTION task(“table repack”, “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 Informix wykorzysta nazwę bieżącej bazy danych i nazwę bieżącego użytkownika.

    Dla fragmentu wprowadź na przykład:

    EXECUTE FUNCTION task(“fragment repack_offline”, “lista_numerów_partycji”);

    lista_numerów_partycji jest listą (rozdzielonych znakami spacji) numerów partycji, które należą do tej samej tabeli.

  2. Opcjonalnie rozszerz argumenty w taki sposób, aby dołączyć parametry compress i shrink w dowolnej z następujących kombinacji:
    • compress repack
    • compress repack shrink
    • repack shrink

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).


Opinia | Wymiana przykładów | Rozwiązywanie problemów

Plik PDF można znaleźć na stronie zawierającej publikacje dotyczące rodziny produktów IBM Informix 12.10.
Uwagi do wydania, uwagi dotyczące dokumentacji i/lub uwagi dotyczące komputera znajdują się na stronie Uwagi do wydania
datownik Wersja: marzec 2013