602SQL-Úplná dokumentace Index  

Systémový dotaz _IV_TABLE_SPACE

Odpověď na systémový dotaz _iv_table_space obsahuje pro každou tabulky jeden řádek informující o množství místa (diskové paměti) v databázovém souboru (wb8.fil) využitém pro obsah tabulky.

V odpovědi jsou tyto sloupce:

Jméno sloupce Typ Obsah
Schema_name CHAR(31) Jméno schématu (aplikace), do něhož tabulka patří. Systémové tabulky zde mají hodnotu NULL.
Table_name CHAR(31) Jméno tabulky.
Main_space BIGINT Velikost prostoru pro sloupce pevné velikosti.
Valid_quotient REAL Část prostoru Main_space zaplněná platnými záznamy.
Valid_or_deleted_quotient REAL Část prostoru Main_space zaplněná platnými a zrušenými záznamy.
LOB_space BIGINT Velikost prostoru alokovaného sloupci proměnné velikosti.
LOB_valid_quotient REAL Část prostoru LOB_space patřící platným záznamům.
LOB_usage_quotient REAL Část prostoru LOB_space využita daty (alokovaný prostor je zaokrouhlený nahoru).
Index_space BIGINT Velikost prostoru alokovaného pro indexy.
Index_usage_quotient REAL Část prostoru Index_space využita daty.

Prostor zabíraný tabulkou se skládá z částí započtených do Main_space, LOB_space a Index_space. Je uveden v bajtech. Ostatní údaje informují o míře využití tohoto prostoru a vyjadřují se reálným číslem mezi 0 a 1.

Prostor alokovaný v LOB_space je kvůli zaokrouhlování velikosti alokovaných kusů diskové paměti o něco větší, než kolik potřebují data. Indexové bloky jsou také využity pouze zčásti, v průměru ze tři čtvrtin (u velmi malých tabulek i méně).

Vyhodnocení celého tohoto dotazu může trvat delší dobu. Proto doporučujeme jej omezit vhodným podmínkami na jméno schématu a jméno tabulky v klauzuli WHERE.

V databázovém souboru je kromě dat v tabulkách také volné místo, které se využívá například pro dočasné tabulky potřebné při vyhodnocování dotazů. Proto součet prostoru tabulek je menší než velikost databázového souboru.


Příklad:

Zjistit prostor spotřebovaný tabulkou Moznosti v aplikace Anketa:

SELECT Main_space+LOB_space+Index_space
FROM  _iv_table_space
WHERE schema_name = 'Anketa'  AND table_name = 'Moznosti'

Zjistit prostor zabíraný všemi tabulkami z aktuální aplikace (výsledek v megabajtech)

SELECT SUM(Main_space+LOB_space+Index_space)/1024/1024 AS celkem, SUM(Main_space)/1024/1024 AS pevná_část, 
       SUM(LOB_space)/1024/1024 AS loby, SUM(Index_space)/1024/1024 AS indexy
FROM  _iv_table_space
WHERE schema_name = Current_application