Tabele volatile, global temporary i permanent – kiedy i po co ich używać

Poznaj różnice między tabelami volatile, global temporary i permanent w Teradata. Dowiedz się, kiedy i jak ich używać dla lepszej wydajności.
02 lutego 2026
blog
Poziom: Średnio zaawansowany

Artykuł przeznaczony dla analityków danych, developerów SQL oraz osób pracujących z Teradata, które chcą świadomie dobierać typy tabel do zadań ETL i analitycznych.

Z tego artykułu dowiesz się

  • Jakie są różnice między tabelami volatile, global temporary i permanent w Teradata?
  • Jak trwałość danych i widoczność między sesjami zależą od wybranego typu tabeli?
  • Jak dobierać typ tabeli w Teradata pod kątem wydajności oraz dobrych praktyk?

Wprowadzenie do typów tabel w Teradata

System Teradata oferuje kilka typów tabel, które różnią się pod względem przechowywania danych, widoczności dla użytkownika oraz trwałości w czasie. Właściwy wybór typu tabeli jest kluczowy dla efektywnego zarządzania danymi, optymalizacji wydajności i zapewnienia zgodności z wymaganiami konkretnego zadania lub procesu.

Podstawowe typy tabel dostępne w Teradata to: volatile, global temporary oraz permanent. Każdy z nich charakteryzuje się innym sposobem przechowywania danych oraz długością życia tabeli i jej zawartości w kontekście sesji użytkownika.

  • Tabele volatile są tymczasowe i istnieją tylko w ramach jednej sesji. Znikają po jej zakończeniu, a dane nie są zapisywane na stałe.
  • Tabele global temporary również są tymczasowe, ale ich struktura jest zdefiniowana na stałe w bazie danych. Dane przechowywane są tylko tymczasowo i są dostępne wyłącznie podczas trwania sesji.
  • Tabele permanent to trwałe struktury przechowujące dane niezależnie od sesji użytkownika. Nadają się do długoterminowego przechowywania i analizy danych.

Wybór odpowiedniego typu tabeli zależy od wielu czynników, takich jak czas życia danych, potrzeba ich współdzielenia między użytkownikami, a także wpływ na zasoby systemowe. Zrozumienie różnic między tymi typami jest podstawą efektywnego projektowania rozwiązań opartych na Teradata.

Charakterystyka tabel volatile

Tabele typu volatile w Teradata to tymczasowe struktury danych, które istnieją wyłącznie w trakcie trwania jednej sesji użytkownika. Po zakończeniu sesji wszystkie dane oraz definicja tabeli są automatycznie usuwane. Dzięki temu tabele volatile są często wykorzystywane do przechowywania danych pośrednich, niezbędnych w ramach pojedynczych analiz, testów lub transformacji danych.

Jedną z kluczowych cech tabel volatile jest to, że nie są one zapisywane w systemowym katalogu bazy danych. Oznacza to, że nie pozostawiają po sobie śladu po zakończeniu sesji, co czyni je idealnym wyborem w sytuacjach, gdy zależy nam na minimalnym wpływie na środowisko produkcyjne.

Wśród głównych zastosowań tabel volatile można wymienić:

  • tymczasowe przechowywanie danych w ramach skomplikowanych zapytań lub procesów ETL,
  • testowanie algorytmów przetwarzania bez konieczności ingerencji w struktury produkcyjne,
  • przygotowanie danych do raportów lub wizualizacji generowanych w czasie rzeczywistym.

Tabele volatile są również często wybierane ze względu na prostotę ich użycia oraz brak konieczności zarządzania ich cyklem życia. Warto jednak pamiętać, że ich zawartość jest dostępna wyłącznie w ramach jednej sesji i tylko dla jej właściciela, co wpływa zarówno na bezpieczeństwo, jak i na wydajność operacji.

Podczas szkoleń Cognity ten temat wraca regularnie – dlatego zdecydowaliśmy się go omówić również tutaj.

Charakterystyka tabel global temporary

Tabele global temporary (GTT – Global Temporary Tables) w Teradata to specjalny typ tabel tymczasowych, które są definiowane raz w schemacie bazy danych, ale ich zawartość jest przechowywana wyłącznie na czas trwania danej sesji użytkownika. Po zakończeniu sesji dane zostają automatycznie usunięte, natomiast sama definicja tabeli pozostaje w bazie i może być ponownie użyta.

GTT są szczególnie przydatne w scenariuszach, gdzie wymagane jest tymczasowe przechowywanie danych w wielu sesjach lub aplikacjach, ale bez konieczności tworzenia struktury tabeli za każdym razem. Umożliwiają też lepszą kontrolę nad strukturą danych, ponieważ ich definicje są dostępne globalnie dla wszystkich użytkowników, choć dane pozostają lokalne dla sesji.

Przykład tworzenia tabeli global temporary:

CREATE GLOBAL TEMPORARY TABLE temp_sales (
    product_id INT,
    quantity_sold INT
) ON COMMIT PRESERVE ROWS;

W powyższym przykładzie opcja ON COMMIT PRESERVE ROWS zapewnia, że dane w tabeli nie zostaną usunięte po zakończeniu transakcji, lecz dopiero po zakończeniu całej sesji. To jedno z kluczowych ustawień przy tworzeniu GTT, ponieważ pozwala na kontrolowanie cyklu życia danych.

Najważniejsze cechy tabel global temporary:

  • Definicja tabeli jest trwała i przechowywana w katalogu bazy danych.
  • Dane są tymczasowe – widoczne tylko w ramach jednej sesji.
  • Po zakończeniu sesji dane są automatycznie usuwane.
  • Stosowane do wielokrotnego użycia tej samej struktury tabeli przez wielu użytkowników.
  • Możliwe jest zachowanie lub usunięcie danych po zakończeniu transakcji dzięki opcji ON COMMIT.

Tabele global temporary najlepiej sprawdzają się w środowiskach, gdzie konieczne jest przetwarzanie tymczasowych danych w sposób powtarzalny i gdzie ważna jest spójność struktury tabeli między różnymi użytkownikami lub aplikacjami. Są często wykorzystywane w scenariuszach ETL, raportowaniu oraz podczas pracy z dużymi zestawami danych tymczasowych, które muszą być przechowywane w pamięci tylko w trakcie jednej sesji użytkownika. Jeśli chcesz pogłębić swoją wiedzę z zakresu SQL i zastosowań w praktyce, sprawdź Kurs Oracle SQL zaawansowany – funkcje analityczne i programowanie bazy danych Oracle.

Charakterystyka tabel permanent

Tabele typu permanent to podstawowy i najczęściej używany rodzaj tabel w bazie danych Teradata. Są to tabele trwałe, co oznacza, że ich struktura oraz dane są przechowywane fizycznie na dysku i nie znikają po zakończeniu sesji użytkownika. Są dostępne dla wielu użytkowników i pełnią kluczową rolę w przechowywaniu danych produkcyjnych.

Główne cechy tabel permanent to:

  • Trwałość danych: dane przechowywane w tabeli permanent nie są usuwane po zakończeniu sesji – pozostają w bazie danych do momentu ich jawnego usunięcia.
  • Współdzielenie danych: tabele permanent mogą być dostępne dla wielu użytkowników i aplikacji, co czyni je idealnymi do przechowywania danych współdzielonych i referencyjnych.
  • Wsparcie dla zabezpieczeń i uprawnień: możliwe jest przypisywanie szczegółowych uprawnień dostępu do tabel permanent, co ułatwia zarządzanie bezpieczeństwem danych.
  • Uczestnictwo w operacjach DML i DDL: tabele permanent obsługują pełen zakres operacji manipulacji oraz definicji danych.

Typowym zastosowaniem tabel permanent są:

  • przechowywanie danych produkcyjnych (np. transakcje, dane klientów, raporty historyczne),
  • tworzenie struktur analitycznych, takich jak hurtownie danych i data mart’y,
  • utrzymywanie tabel referencyjnych lub słownikowych (np. słowniki kodów, statusów),
  • zarządzanie tabelami rozliczeniowymi, archiwalnymi i audytowymi.

W Cognity wierzymy, że dobre zrozumienie tego tematu to podstawa efektywnej pracy z narzędziami cyfrowymi.

Przykład utworzenia tabeli permanent:

CREATE TABLE klienci (
    id_klienta INTEGER,
    imie VARCHAR(50),
    nazwisko VARCHAR(50),
    data_rejestracji DATE
);

Warto pamiętać, że tabele permanent wymagają odpowiedniego przydziału przestrzeni dyskowej i mogą wpływać na ogólną wydajność systemu, zwłaszcza przy dużej skali danych. Ich prawidłowe zaprojektowanie i zarządzanie jest kluczowe dla utrzymania integralności i wydajności środowiska analitycznego.

Porównanie typów tabel: volatile, global temporary i permanent

W Teradata dostępne są trzy główne typy tabel: volatile, global temporary oraz permanent. Każdy z nich ma inne właściwości, przeznaczenie i wpływ na przetwarzanie danych. Poniżej znajduje się zestawienie kluczowych różnic między nimi:

Typ tabeli Zakres dostępności Przechowywanie danych Widoczność między sesjami Typowe zastosowanie
Volatile Tylko w obrębie jednej sesji W pamięci lub tymczasowo na dysku Niewidoczna w innych sesjach Tymczasowe operacje, etapowe przetwarzanie danych
Global Temporary Dostępna w wielu sesjach (definicja trwała) Dane przechowywane tylko w czasie sesji Definicja widoczna globalnie, dane – tylko w sesji Użycie w procesach ETL, tymczasowe przetwarzanie z możliwością wielokrotnego wykorzystania struktury
Permanent Stała dostępność w bazie danych Na stałe w pamięci dyskowej Dostępna między użytkownikami i sesjami Trwałe przechowywanie danych produkcyjnych

Różnice w zachowaniu tych tabel warto zrozumieć, by stosować je zgodnie z potrzebami projektu i wymogami wydajnościowymi. Na przykład, tabela volatile idealnie nadaje się do krótkotrwałych operacji analitycznych, natomiast tabela permanent jest odpowiednia do długoterminowego przechowywania danych. Jeśli chcesz pogłębić wiedzę na temat języka SQL i efektywnego zarządzania danymi, sprawdź Kurs Oracle SQL, PL/SQL podstawowy - praktyczne wykorzystanie języka SQL, programowanie i zarządzanie obiektami baz danych.

Przykład utworzenia każdej z tabel:

-- Volatile table
CREATE VOLATILE TABLE tmp_sales (
    product_id INT,
    revenue DECIMAL(10,2)
) ON COMMIT PRESERVE ROWS;

-- Global Temporary table
CREATE GLOBAL TEMPORARY TABLE session_sales (
    product_id INT,
    revenue DECIMAL(10,2)
) ON COMMIT DELETE ROWS;

-- Permanent table
CREATE TABLE prod_sales (
    product_id INT,
    revenue DECIMAL(10,2)
);

Wybór odpowiedniego typu tabeli wpływa na zarządzanie danymi oraz efektywność operacji – zarówno w kontekście testowym, jak i produkcyjnym.

Wpływ typów tabel na sesje i wydajność

Typ tabeli w Teradata ma istotny wpływ zarówno na czas życia danych w kontekście sesji, jak i na wydajność systemu oraz zarządzanie zasobami. Wybór odpowiedniego typu tabeli (volatile, global temporary, permanent) powinien być zależny od charakterystyki danych, czasu ich przechowywania oraz scenariusza użycia.

Trwałość danych i sesje

  • Tabele volatile istnieją tylko w czasie trwania jednej sesji. Dane są usuwane automatycznie po zakończeniu sesji użytkownika. Dzięki temu nie wymagają ręcznego czyszczenia po zakończeniu operacji.
  • Tabele global temporary również są powiązane z sesją, ale ich definicja przechowywana jest na stałe w systemie. Dane są tymczasowe i usuwane po zakończeniu sesji, chyba że użyto opcji ON COMMIT PRESERVE ROWS, która zachowuje dane do końca sesji.
  • Tabele permanent przechowują dane niezależnie od sesji. Są one wykorzystywane do trwałego magazynowania informacji i wymagają zarządzania zarówno danymi, jak i przestrzenią dyskową.

Wpływ na wydajność

  • Volatile: Brak potrzeby zapisu na dysku (z wyjątkiem swapowania) sprawia, że operacje na takich tabelach są często szybsze w scenariuszach tymczasowych, ponieważ dane utrzymywane są w pamięci (jeśli zasoby na to pozwalają).
  • Global temporary: Wymagają nieco więcej zasobów przy tworzeniu i utrzymywaniu, ponieważ tabelę trzeba zdefiniować wcześniej i system przechowuje jej metadane. Mimo tymczasowego charakteru danych, ich zarządzanie może wprowadzać dodatkowe koszty związane z dostępem do katalogu systemowego.
  • Permanent: Zapis danych na dysku, indeksowanie i logowanie transakcji (np. do dziennika transakcji) powodują, że operacje na trwałych tabelach są bardziej kosztowne, ale za to zapewniają pełną trwałość i możliwość odzyskiwania danych.

Podsumowanie w tabeli

Typ tabeli Trwałość danych Zakres widoczności Wpływ na wydajność
Volatile Do końca sesji Tylko bieżąca sesja Niska – szybki dostęp, brak zapisu na stałe
Global Temporary Do końca sesji Tylko bieżąca sesja (dane), definicja dostępna globalnie Umiarkowana – wymagają systemowej definicji
Permanent Stała Dostępna globalnie Wysoka – pełne zarządzanie, logowanie, indeksowanie

Dobór rodzaju tabeli powinien uwzględniać nie tylko wymagania funkcjonalne, ale również wpływ na wykorzystanie zasobów systemowych oraz długość życia danych w kontekście sesji użytkownika.

Zalecenia i dobre praktyki stosowania różnych typów tabel

Wybór odpowiedniego typu tabeli w Teradata ma istotny wpływ na organizację pracy, zużycie zasobów oraz wydajność przetwarzania danych. Każdy z typów – volatile, global temporary i permanent – znajduje zastosowanie w innych scenariuszach i powinien być dobierany w zależności od potrzeb konkretnego procesowania.

  • Tabele volatile najlepiej sprawdzają się w krótkoterminowych, tymczasowych operacjach w obrębie jednej sesji, gdzie dane nie muszą być przechowywane po jej zakończeniu. Są idealne do szybkiego przetwarzania danych pośrednich bez konieczności ich trwałego zapisu.
  • Tabele global temporary są przydatne w sytuacjach, gdy struktura tabeli musi być wspólna dla wielu sesji, ale dane mają charakter tymczasowy. Umożliwiają one wielokrotne wykorzystywanie tej samej definicji tabeli bez konieczności każdorazowego jej tworzenia.
  • Tabele permanent powinny być wykorzystywane do przechowywania danych trwałych, produkcyjnych lub historycznych, gdzie istotna jest trwałość i współdzielenie danych pomiędzy użytkownikami i sesjami.

Aby zachować wysoką wydajność i przejrzystość środowiska danych, warto przestrzegać kilku zasad:

  • Unikaj niepotrzebnego tworzenia tabel permanentnych do przetwarzania tymczasowego – obciąża to system niepotrzebnymi metadanymi i zużywa przestrzeń dyskową.
  • Stosuj tabele volatile i global temporary tam, gdzie dane nie muszą być zachowywane po zakończeniu przetwarzania – pozwala to ograniczyć koszty przechowywania i poprawić wydajność.
  • Dbaj o czytelne nazewnictwo oraz odpowiednią organizację tabel tymczasowych, by ułatwić debugowanie i utrzymanie kodu SQL.
  • Pamiętaj o zarządzaniu uprawnieniami – dostęp do tabel permanentnych powinien być kontrolowany bardziej rygorystycznie niż do tabel tymczasowych.

Dobór odpowiedniego typu tabeli powinien być zawsze podyktowany charakterem danych i wymaganiami procesów, które z tych danych korzystają. Stosowanie się do dobrych praktyk zapewnia nie tylko lepszą wydajność systemu, ale także większą elastyczność w zarządzaniu środowiskiem danych.

Podsumowanie i rekomendacje

Wybór odpowiedniego typu tabeli w Teradata ma istotne znaczenie dla efektywności pracy z danymi, zarządzania sesjami oraz optymalnego wykorzystania zasobów systemowych. Zrozumienie charakterystyki i przeznaczenia poszczególnych typów tabel pozwala lepiej dopasować rozwiązania do konkretnych potrzeb analitycznych i operacyjnych.

  • Tabele volatile są tymczasowe i istnieją tylko w czasie trwania pojedynczej sesji użytkownika. Idealne do przechowywania danych pośrednich w krótkotrwałych procesach analitycznych.
  • Tabele global temporary również są tymczasowe, ale ich definicja jest zapisana na stałe w systemie. Dane w nich przechowywane znikają po zakończeniu sesji lub transakcji, co czyni je przydatnymi dla wielokrotnego użycia tej samej struktury tabeli w różnych sesjach.
  • Tabele permanent są trwałe i stanowią podstawę długoterminowego przechowywania danych. Są odpowiednie do przechowywania danych produkcyjnych, które muszą być dostępne dla wielu użytkowników i procesów.

Właściwe zastosowanie każdego typu tabeli wpływa na poprawę wydajności systemu, bezpieczeństwo danych oraz zwiększa efektywność realizowanych zadań analitycznych i operacyjnych. Wybór powinien być uzależniony od celu, czasu życia danych oraz wymagań dotyczących współdzielenia i trwałości informacji. W Cognity uczymy, jak skutecznie radzić sobie z podobnymi wyzwaniami – zarówno indywidualnie, jak i zespołowo.

icon

Formularz kontaktowyContact form

Imię *Name
NazwiskoSurname
Adres e-mail *E-mail address
Telefon *Phone number
UwagiComments