IBM® Informix® 12.10

Navrátenie voľného priestoru do databázového priestoru

Voľný priestor môžete vrátiť do databázového priestoru (zmrštiť priestor), keď skomprimujete, preskupíte alebo skomprimujete a preskupíte tabuľky alebo fragmenty; alebo môžete voľný priestor vrátiť samostatne bez komprimácie alebo preskupovania. Vrátenie voľného priestoru zmenší celkovú veľkosť fragmentu alebo tabuľky.

Celú tabuľku dokážete bezpečne zmrštiť bez nepriaznivého zásahu do stratégie alokácie tabuľky. Napríklad, ak máte fragmentovanú tabuľku s jedným fragmentom pre každý deň v týždni a s mnohými predalokovanými fragmentmi pre budúce použitie, tabuľku môžete zmrštiť bez nepriaznivého zásahu do tejto alokačnej stratégie. Ak je tabuľka prázdna, IBM® Informix zmrští tabuľku na veľkosť úvodného rozsahu, ktorá bola zadaná pri vytvorení tabuľky.

Keď spustíte operáciu zmrštenia, Informix zmenší rozsahy nasledujúcim spôsobom:
  • Skráti všetky rozsahy, okrem prvého rozsahu, na čo najmenšiu veľkosť.
  • Ak sa celá tabuľka nachádza v prvom rozsahu (napríklad keď je tabuľka prázdna), Informix nezmrští prvý rozsah na veľkosť menšiu ako mal rozsah, ktorý bol určený pri vytvorení tabuľky s použitím príkazu CREATE TABLE.

Na zmenšenie aktuálnej veľkosti rozsahu môžete použiť klauzulu MODIFY EXTENT SIZE príkazu ALTER TABLE. Keď to urobíte, môžete opätovne spustiť operáciu zmrštenia, aby sa prvý rozsah zmrštil na novú veľkosť rozsahu.

Nevyhnutná podmienka: Musíte sa vedieť pripojiť k databáze sysadmin (štandardne len užívateľ informix) a musíte byť DBSA.

Ak chcete navrátiť voľný priestor do databázového priestoru:

  1. Spustite funkciu admin() alebo task() s argumentom table shrink alebo fragment shrink.

    Napríklad pre tabuľku zadajte:

    EXECUTE FUNCTION admin(“table shrink”, “table_name”, 
    “database_name”, “owner_name”);

    Názov tabuľky je povinný. Názov databázy a meno vlastníka sú voliteľné. Ak nezadáte názov databázy alebo meno vlastníka, Informix použije názov aktuálnej databázy a meno aktuálneho vlastníka.

    Napríklad pre fragment zadajte:

    EXECUTE FUNCTION task(“fragment shrink”, “partnum_list”);

    partnum_list je medzerami oddeľovaný zoznam čísel oddielov, ktoré patria do tej istej tabuľky.

  2. Voliteľne rozviňte argumenty, aby obsahovali compress a repack v ľubovoľnej z nasledujúcich kombinácií:
    • compress repack shrink
    • compress shrink
    • repack shrink

V nasledujúcom príklade vidíte príkaz, ktorý oznámi Informix, aby zmrštil tabuľku s názvom "opera" v databáze "music", ktorej majiteľom je "bob".

EXECUTE FUNCTION task("table shrink","opera","music","bob");
V nasledujúcom príklade vidíte príkaz, ktorý oznámi Informix, aby preskupil a zmrštil fragment s číslom oddielu 14680071.
EXECUTE FUNCTION task("fragment repack shrink," "14680071");


Poslať spätnú väzbu | Výmena príkladov | Riešenie problémov

Súbor PDF môžete nájsť na stránke Publications for the IBM Informix 12.10 family of products.
Poznámky k vydaniu, poznámky k dokumentácii a/alebo poznámky k hardvéru nájdete na stránke Poznámky k vydaniu.
časová značka Dátum vydania: Marec 2013