Wpływ wybranych struktur pomocniczych na rozmiar bazy danych Oracle



Podobne dokumenty
Optymalizacja poleceń SQL

AUREA BPM Oracle. TECNA Sp. z o.o. Strona 1 z 7

Bazy danych - wykład wstępny

Wydajność hurtowni danych opartej o Oracle10g Database

Indeksy w bazach danych. Motywacje. Techniki indeksowania w eksploracji danych. Plan prezentacji. Dotychczasowe prace badawcze skupiały się na

Optymalizacja poleceń SQL Metody dostępu do danych

Dane wejściowe. Oracle Designer Generowanie bazy danych. Wynik. Przebieg procesu

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

Administracja bazy danych Oracle 10g

Wykład I. Wprowadzenie do baz danych

WPROWADZENIE DO BAZ DANYCH

PODSTAWY BAZ DANYCH Wykład 6 4. Metody Implementacji Baz Danych

Spis treści. 1 Modelowanie logiczne. Plan wykładu. 1 Modelowanie logiczne 1

Cel przedmiotu. Wymagania wstępne w zakresie wiedzy, umiejętności i innych kompetencji 1 Język angielski 2 Inżynieria oprogramowania

1 Instalowanie i uaktualnianie serwera SQL Server

Rozwiązania wspomagające przetwarzanie wielkich zbiorów danych (VLDB) we współczesnych systemach zarządzania bazami danych

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

"Kilka słów" o strojeniu poleceń SQL w kontekście Hurtowni Danych wprowadzenie. Krzysztof Jankiewicz

Systemy baz danych. mgr inż. Sylwia Glińska

Fizyczna struktura bazy danych w SQL Serwerze

Usługi analityczne budowa kostki analitycznej Część pierwsza.

SZKOLENIE: Administrator baz danych. Cel szkolenia

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Alicja Marszałek Różne rodzaje baz danych

Plan wykładu. Klucz wyszukiwania. Pojęcie indeksu BAZY DANYCH. Pojęcie indeksu - rodzaje indeksów Metody implementacji indeksów.

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Rok szkolny 2015/16 Sylwester Gieszczyk. Wymagania edukacyjne w technikum. ADMINISTROWANIE BAZAMI DANYCH kl. 4c

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

Optymalizacja poleceń SQL Indeksy

Wykład 2. Relacyjny model danych

Wprowadzenie do projektowania i wykorzystania baz danych Relacje i elementy projektowania baz

RELACYJNE BAZY DANYCH

Hurtownie danych. Przetwarzanie zapytań. ZAPYTANIA NA ZAPLECZU

OPRACOWANIE: SŁAWOMIR APANOWICZ

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Bazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2013/2014

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 5.0

Baza danych. Modele danych

INDEKSY. Biologiczne Aplikacje Baz Danych. dr inż. Anna Leśniewska

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 6.0

Microsoft Access materiały pomocnicze do ćwiczeń cz. 1

OfficeObjects e-forms

Model logiczny SZBD. Model fizyczny. Systemy klientserwer. Systemy rozproszone BD. No SQL

Część I Tworzenie baz danych SQL Server na potrzeby przechowywania danych

Hurtownie danych. 31 stycznia 2017

Bazy danych Wykład zerowy. P. F. Góra

Wykład XII. optymalizacja w relacyjnych bazach danych

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

Oracle11g: Wprowadzenie do SQL

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym

PODSTAWY BAZ DANYCH. 10. Partycjonowanie tabel i indeksów. 2009/ Notatki do wykładu "Podstawy baz danych"

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Pojęcie bazy danych. Funkcje i możliwości.

STROJENIE BAZ DANYCH: INDEKSY. Cezary Ołtuszyk coltuszyk.wordpress.com

Jakub Pilecki Szymon Wojciechowski

Administracja bazami danych

Transformacja modelu pojęciowego. do logicznego

PROJEKT Z BAZ DANYCH

Bazy danych. Zenon Gniazdowski WWSI, ITE Andrzej Ptasznik WWSI

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X

Indeksowanie w bazach danych

Spis treści. Przedmowa

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

Organizacyjnie. Prowadzący: dr Mariusz Rafało (hasło: BIG)

Bazy danych 2. Wykład 1

Hurtownie danych. Wstęp. Architektura hurtowni danych. CO TO JEST HURTOWNIA DANYCH

wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK

Liczba godzin 1,2 Organizacja zajęć Omówienie programu nauczania 2. Tematyka zajęć

Instrukcja konfiguracji programu KS-ASW do pracy w trybie wielopodmiotowym

Tabela wewnętrzna - definicja

Bazy Danych. Bazy Danych i SQL Podstawowe informacje o bazach danych. Krzysztof Regulski WIMiIP, KISiM,

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

Szkolenie obejmuje zagadnienia związane z tworzeniem i zarządzaniem bazą danych Oracle, jej zasobami i dostępem do danych.

Zasady transformacji modelu DOZ do projektu tabel bazy danych

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Wprowadzenie do technologii Business Intelligence i hurtowni danych

Baza danych. Baza danych to:

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Bazy Danych - Projekt. Zasady przygotowania i oceny projektów

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Ramowy plan kursu. Lp. Moduły Wyk. Lab. Przekazywane treści

PODSTAWY BAZ DANYCH. 7. Metody Implementacji Baz Danych. 2009/ Notatki do wykładu "Podstawy baz danych" 1

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

ORGANIZACJA I ZARZĄDZANIE INFORMACJĄ W BAZIE DNYCH. podstawowe pojęcia.

Tworzenie aplikacji bazodanowych

Pizza & Beer: Nowości OE 11

Tadeusz Pankowski

Technologia informacyjna

Porównanie systemów zarządzania relacyjnymi bazami danych

DTextra System Zarządzania Dokumentami

DB2 with BLU acceleration rozwiązanie in-memory szybsze niż pamięć operacyjna&

Transkrypt:

Rozdział 49 Wpływ wybranych struktur pomocniczych na rozmiar bazy danych Oracle Streszczenie. Praca obejmuje analizę wpływu wybranych struktur pomocniczych na rozmiar bazy danych Oracle. Badania doświadczalne przeprowadzone zostały na modelowym układzie bazodanowym wydzielonym z rzeczywistego systemu przeznaczonego do obsługi banku. Wpływ optymalizacji na wielkość bazy danych ma znaczenie techniczne i biznesowe. Optymalizacja wybranych struktur pomocniczych umożliwia estymację urządzeń pamięci masowej (wymaganej do pracy aplikacji) oraz pozwala na właściwe oszacowanie kosztów instalacji aplikacji. W rzeczywistych systemach wielkość struktur pomocniczych z reguły przewyższa wielkość tabel danych, co może oznaczać, że jest to krytyczny czynnik analizy kosztowej projektu systemu. 1 Wstęp Rozwój produkcji pamięci masowych wymusił opracowanie nowych struktur w bazie danych pozwalających na szybki dostęp do danych. Przykładem struktur służących lepszej organizacji dostępu do danych jest indeksowanie rekordów. Indeksowanie umożliwia szybki dostęp do klucza dla dowolnego rekordu, a dodatkowo zapewnia kontrolę duplikacji klucza. Współczesne aplikacje budowane w oparciu o bazy relacyjne, zawierają bardzo dużą liczbę struktur pomocniczych służących do: optymalizacji dostępu do danych, wymuszenia więzów integralności, zapewnienia unikalności kluczy. Jednym z najmniej zawodnych systemów zarządzania bazami danych jest Oracle (co potwierdzają różne międzynarodowe testy wydajności i bezpieczeństwa). Oracle zawiera wiele struktur pomocniczych i umożliwia właściwe planowanie struktur danych, które w pełni odpowiadają wymaganiom analitycznym i biznesowym tworzonej aplikacji. Wanda Gryglewicz-Kacerka: Wyższa Szkoła Informatyki, Katedra Systemów Ekspertowych i Sztucznej Inteligencji, ul. Rzgowska 17a, 93-008 Łódź, Polska email: wkacerka@ics.p.lodz.pl Jarosław Kacerka: Politechnika Łódzka, Instytut Automatyki, ul. Stefanowskiego 18/22, 90-924 Łódź, Polska email: kacerkaj@mail.p.lodz.pl

W. Gryglewicz-Kacerka, J. Kacerka 2 Struktury pomocnicze w bazie Oracle Baza Oracle zawiera następujące struktury pomocnicze [2]. Indeks (Index) to struktura zbudowana w oparciu o drzewo binarne lub mapę bitową obejmująca jedną lub więcej kolumn tabeli. Indeks przyśpiesza wykonanie wyrażenia SQL. Klasyfikacja indeksów jest następująca: logiczne (unikalne i nieunikalne, na pojedynczych kolumnach lub złożone), fizyczna: B- drzewa (B-tree indexes), o odwróconym kluczu (Reverse key indexes), bitmapowe (Bitmap indexes). Klaster (cluster) to opcjonalna struktura służąca do przechowywania danych pochodzących z tabel. Klaster przechowuje kilka tabel w tym samym bloku danych. Struktura pomocnicza klaster daje następujące korzyści: redukcję ilości pamięci I/O wymaganej dla przechowywania tabel w klastrze, zmniejszenie czasu dostępu do danych dla połączonych tabel, zmniejszenie przestrzeni potrzebnej do przechowywania powiązanych tabel i danych indeksu w klastrze (wartość klucza klastra jest przechowywana jedynie raz bez względu na ilość wierszy tabel). Wartości klucza klastra są automatycznie generowane przez Oracle. Często do wygenerowania wartości numerycznych kluczy zwanych wartościami hash Oracle używa funkcji haszującej (mieszającej). Na strukturze klaster indeksowy obowiązkowo definiowany jest założony indeks (cluster index) lub (hush cluster index). Zmaterializowany Widok (migawka) (Materialized view) to obiekt schematu bazy danych, który jest jednocześnie podobny do tabel i perspektyw. Zmaterializowane widoki stosuje się najczęściej w rozproszonych bazach danych (wykorzystujących mechanizm replikacji danych, gdzie odświeżanie zawartości migawki odbywa się okresowo w zdefiniowanych odstępach czasu). Zmaterializowane widoki są używane również w hurtowniach danych, ich celem jest zwiększenie szybkości wykonywanych zapytań skierowanych do bardzo dużych baz danych. Zapytania te często wymagają wykonania złączeń dużych tabel lub wyliczenia agregatów na podstawie danych zawartych w tych tabelach. Takie operacje są bardzo czasochłonne. Migawki pozwalają bardzo znacząco zwiększyć efektywność wykonywania takich czasochłonnych zapytań. Tabela-indeks (Index-organized table [IOT]) to struktura posiadająca organizację indeksu, ale służąca do bezpośredniego przechowywania danych, łącząca zdolność przechowywania danych, charakterystyczną dla tabeli z szybkim dostępem poprzez B-drzewo, charakterystycznym dla indeksu. W odróżnieniu od tradycyjnej tabeli, w której dane są przechowywane w blokach segmentów danych w nieokreślonym porządku, dane w IOT są przechowywane w liściach drzewa przeszukiwań w porządku posortowanym względem głównego klucza tabeli. Indeks oparty na tabeli IOT nie stanowi oddzielnej struktury, lecz strukturę drzewiastą (w drzewie indeksowym znajdują się oprócz wartości kluczy również dane z wierszy tabeli). Struktura IOT w znaczny sposób przyspiesza odczyt danych pobieranych z użyciem indeksu, ponieważ znalezienie szukanego klucza jest równoważne z odczytem wiersza tabeli. Wymagania składowania są mniejsze, ponieważ nie istnieje konieczność duplikowania kolumny klucza w tabeli i indeksie oraz niepotrzebne jest składowanie adresu wiersza tabeli - ROWID. Wpisy do indeksu B-drzewa są zazwyczaj małe, ponieważ zawierają one jedynie wartość klucza i ROWID. Wpisy w IOT są zwykle większe, ponieważ zawierają całe wiersze, co może wpłynąć na gęstość gromadzenia danych w indeksie typu B-drzewo. Partycja (Partition) to struktura ułatwiająca składowanie bardzo dużych tabel i indeksów. Partycja umożliwia rozkład tych tabel w mniejszych i łatwiejszych do zarzą 472

Wpływ wybranych struktur pomocniczych na rozmiar bazy danych Oracle dzania przestrzeniach. Każda partycja może być przechowywana w innej przestrzeni tabel i może mieć zdefiniowane inne parametry składowania. Partycje pozwalają ułatwić zarządzanie dużymi obiektami. Partycje są całkowicie przezroczyste dla aplikacji tzn. pozwalają widzieć strukturę partycjonowaną jako logiczną całość. Wszystkie partycje mają te same atrybuty związane z przechowywaniem i archiwizacją danych. Każda partycja tabeli lub indeksu musi mieć te same logiczne atrybuty (nazwy kolumn, typy kolumn, ograniczenia) ale może mieć różne atrybuty fizyczne (pctfree, pctused, tablespaces). Tabele lub indeksy podzielone na partycje stanowią logiczny zbiór przestrzeni tabel. Optymalizator systemu Oracle jest w stanie na podstawie właściwie skonstruowanego zdania SQL automatycznie określić partycję, w której znajdują się potrzebne dane oraz użyć wyłącznie tej partycji jako źródła danych. Partycje zwiększają dostępność do danych oraz ułatwiają ładowanie danych, tworzenie indeksów, archiwizację danych i zmniejszają czas odzyskiwania danych. Partycje mogą być archiwizowane online, wykorzystując zalety, jakie daje możliwość tworzenia gorącej kopii zapasowej przestrzeni tabel (ułatwiając proces archiwizacji i odzyskiwania danych). Obecnie, stosowanie partycji jest jedyną metodą budowy efektywnych, wielkich baz danych o wolumenie terabajtowym. Tabela partycjonowana (Partition table) to tabela podzielona na wiele oddzielnych partycji. Każda tabela może podlegać partycjonowaniu - za wyjątkiem tabel, które zawierają dane typu LONG lub LONG ROW. Partycje tabel mogą być następujących typów: partycje zakresowe (Range Partitioning ), listy partycji (List Partitioning), hash partycje (Hash partitioning), złożone partycje (Composite Partitioning). Partycje zakresowe zawierają dane podzielone w oparciu o zakresy wartości kluczy definiowanych przez użytkownika. Użytkownik ma możliwość podania listy dyskretnych wartości klucza dla każdej partycji oraz tworzenia partycji w oparciu o funkcję haszujacą. Partycjonowanie złożone jest połączeniem partycjonowania zakresowego i haszowego. Dane są dzielone na partycje, przy wykorzystaniu metody partycjonowania zakresowego a tworzone subpartycje wykorzystują partycjonowania hashowego. Ideksy partycjonowane (Partition index) zwiększają łatwość zarządzania, dostępność i skalowalność struktur z nimi związanych. System Oracle oferuje dwa typy opcji indeksacji: lokalnie partycjonowane indeksy (automatycznie dodawane do tabel partycjonowanych) oraz globalnie partycjonowane indeksy (umożliwiają niezależność indeksacji). Lokalnie partycjonowane indeksy są łatwiejsze w zarządzaniu, ponieważ wszystkie klucze partycji indeksu posiadają skojarzone wiersze w partycji tabeli oraz klucze indeksu nie nakładają się na klucze indeksów z innych partycji. Oracle umożliwia automatyczne założenie lokalnie partycjonowanych indeksów dla każdej partycji tabeli oraz obsługuje niezależnie każdą parę (tabela-indeks). Globalnie partycjonowane indeksy umożliwiają niezależność indeksacji. Klucz partycji jest uniezależniony od metod partycjonowania tablicy. Globalnie partycjonowane indeksy stosowane są zwykle w sytuacji braku możliwości zastosowania indeksów partycjonowanych lokalnie lub też dla uzyskania efektywnego dostępu do danych po specyficznym kluczu nie wchodzącym w skład klucza partycjonowania tabeli. Testową bazę danych stanowi modelowa baza oparta o rzeczywisty system bankowy Euro- Bank Online firmy Asseco S.A. służący do obsługi rachunków bankowych. System rzeczy 3 Badania modelowe 473

W. Gryglewicz-Kacerka, J. Kacerka wisty jest systemem zrealizowanym w oparciu o technologię firmy Oracle. Tworząc bazę testową przyjęto następujące założenia: znany jest całkowity rozmiar danych przechowywanych w rzeczywistej bazie danych oraz znane są zmienne opisowe charakteryzujące zbiór R Pi parametrów opisujących strukturę każdej i-tej przestrzeni tabel, ilości wierszy i-tej tabeli W i, całkowitą ilość wierszy w bazie, zbiór zależności liczbowych wierszy dla każdej połączonej relacją pary tabel. W systemie modelowym zaimplementowano obsługę typowej struktury bankowej. Z rzeczywistej bazy danych EuroBank Online wydzielono do badań testowych 500 tabel przechowujących wszystkie dane bazy danych stanowiących jądro bazy danych oraz dodano 5 tabel stanowiących prosty moduł rejestracji klientów. Przyjęto nowy zbiór przestrzeni tabel oraz parametry charakteryzujące ich strukturę. W skład zbioru przestrzeni tabel wchodzą: DANA przestrzeń tabel, w której umieszczone są wszystkie tabele bazy wraz z zawartymi w nich danymi, INDX przestrzeń danych na wszystkie indeksy bazy, UNDO przestrzeń tabel zapewniająca automatyczne zarządzanie segmentami wycofania, SYSTEM przestrzeń systemowa, TEMP przestrzeń tymczasowa. W tabelach 1 i 2 zestawiono wartości parametrów składowania dla przestrzeni tabel. Dodatkowo utworzono w przestrzeni UNDO pięć segmentów wycofania o parametrach: INITIAL=3M, NEXT=6M, MINEXTENTS=5, MAXEXTENTS 121 Tabela 1. Parametry przestrzeni tabel Przestrzeń tabel Sposób użycia Rozmiar początkowy Następny segment Rozmiar maksymalny DANA REUSE 100M 50M 500M INDX REUSE 100M 50M 500M UNDO REUSE 100M 50M 500M SYSTEM REUSE 100M 100M Unlimited TEMP REUSE 100M 50M 200M Tabela 2. Parametry składowania dla przestrzeni tabel Wielkość Wielkość Przyrost Min ilość Max ilość Przestrzeń pierwszego kolejnego kolejnych obszarów obszarów tabel obszaru obszaru obszarów DANA 10K 20K 50K 1 121 INDX 10K 20K 50K 1 121 UNDO 10K 20K 50K 1 121 SYSTEM 10K 20K 100K 1 121 TEMP 10K 20K 50K 1 121 Wydzielone zostały następujące tabele: Klient, Waluta, Wojewodztwo, Oddział, Rachunek_klienta, Rejestr, Saldo, Operacja, Detal. Oprogramowanie generujące dane w bazie testowej wykonane zostało w postaci procedur składowanych w bazie w języku PL*SQL i uruchamiane za pomocą SQL*Plus. Badania testowe obejmowały wykonanie szeregu testów, które miały za zadanie pokazanie wpływu: konfiguracji wybranych parametrów inicjalizacyjnych na wydajność przetwarzania systemu [3] oraz obecności wybranych struktur pomocniczych (indeks B-drzewo, 474

Wpływ wybranych struktur pomocniczych na rozmiar bazy danych Oracle indeks bitmapowy, indeks zbudowany w oparciu o funkcje oraz tabele o organizacji indeksowej IOT) na rozmiar bazy danych. Do badań testowych przyjęto dwie struktury baz danych Baza1, Baza2, które zawierały następujące struktury pomocnicze: Baza1 - zbiór przestrzeni tabel przechowujących wszystkie dane bazy, struktury zapewniające unikalność danych (zbiór kluczy unikalnych), struktury zapewniające integralność danych (klucze główne, obce), zbiór indeksów bitmapowych: Idx2_Status, Idx2_Miejscowosc, indeks zbudowany w oparciu o funkcje Idx_NazwiskoImie), Baza2 struktury pomocnicze rozszerzono w stosunku do Baza1 o klaster Grono założony na tabelach: Operacje i Detale wraz z indeksem Idxc_Grono, strukturę IOT na tabeli Saldo, która jest identyfikowana poprzez indeks PK_IOT_Saldo. Do badań testowych wykorzystano następujące narzędzia: perspektywy systemowe (dba_tables, dba_indexes, index_stats) oraz procedury wykorzystujące perspektywy systemowe (TestTable, TestIndex). Perspektywy systemowe zawierają informacje o rzeczywistej zajętości miejsca wymienionych struktur logicznych (pomocniczych). Procedura TestTable dokonuje analizy wszystkich tabel w schemacie użytkownika w celu wyznaczenia: ilość wierszy danej tabeli, liczby bloków zaalokowanych na tabele, średniej długości wierszy, ilości (liczonej w MB) przestrzeni dyskowej zajmowanej przez daną tabelę. Procedura TestIndex dokonuje analizy wszystkich indeksów w schemacie użytkownika w celu wyznaczenia: liczby oddzielnych kluczy w indeksie, wysokości B-drzewa (tylko dla indeksu B-drzewo), liczby bloków zaalokowanych na indeks, całkowitej przestrzeni używanej przez indeks. Pełny cykl testu dla pojedynczej bazy obejmuje symulację działań: zapisania klienta, utworzenia rachunku, wykonania operacji na rachunku, generowanie raportu za pomocą procedur TestTable i Test- Index. 4 Charakterystyka narzędzia badań testowych W celu przeprowadzenie badań testowych zaprojektowano aplikację testującą. Aplikacja testująca została napisana w języku Borland Delphi 5.0 i jest aplikacją o architekturze MDI (Multi Document Interface). Aplikacja testująca została zaprojektowana w celu wykonywania wszelkich testów wydajnościowych przeprowadzanych na bazach danych Oracle. Główne funkcje realizowane przez aplikację to: przygotowanie bazy do testu, porządkowanie bazy po wykonaniu testu, wykonanie testu i wygenerowanie raportu, analiza wyników. Aplikacja testująca umożliwia wykonywanie równoległe innych testów na innych bazach danych w tym samym czasie. W ramach realizacji czynności przygotowujących bazę do wykonania testów wyróżnia się następujące funkcje: tworzenie przestrzeni tabel, tworzenie tabel, załadowanie tabel, tworzenie więzów integralności, tworzenie indeksów, pełne przygotowanie bazy do testu (realizuje wszystkie powyższe podpunkty z wyjątkiem tworzenia przestrzeni tabel). Czynności mające na celu uporządkowanie bazy danych po teście polegają na wykonaniu działań przeciwnych do opisanych powyżej. 475

W. Gryglewicz-Kacerka, J. Kacerka W ramach przygotowania bazy do przeprowadzania testów wykonywane są następujące czynności: utworzenie bazy danych z zadanymi parametrami, wykonanie czynności organizacyjnych, np. stworzenie użytkownika, na rzecz którego będą tworzone obiekty bazy danych, utworzenie przestrzeni tabel o odpowiednich parametrach składowania, wypełnienie bazy danymi, utworzenie tabel, załadowanie tabel, utworzenie więzów integralności, utwo Rys. 1. Funkcje obsługiwane przez aplikację testującą Aplikacja testująca zawiera w sobie moduł służący do analizy wyników otrzymanych z testów. Możliwa jest analiza dwóch typów plików z wynikami: analiza pliku generowanego przez narzędzia systemu operacyjnego lub przez aplikację testującą. Rys. 2. Przykład okna wykresów aplikacji testującej 476

Wpływ wybranych struktur pomocniczych na rozmiar bazy danych Oracle rzenie indeksów oraz konfigurowanie optymalizatora (poprzez uruchomienie procedury analizy schematu zawierającego tabele z danymi testowymi). 5 Wyniki badań testowych Dane w bazie Baza1 znajdują się w tabelach oraz indeksach odpowiedzialnych za wymuszenie więzów integralności oraz unikalność kluczy. Dane w bazie Baza2 zawierają dodatkowo struktury pomocnicze: klaster oraz strukturę tabela indeks IOT. Z założenia Baza1 zawiera mniejszą ilość struktur pomocniczych niż baza Baza2. Baza2 zawiera więcej struktur pomocniczych zajmuje więc większą przestrzeń dyskową konieczną do składowania struktur pomocniczych niż Baza1. W obu bazach modelowych zastosowane struktury pomocnicze zajmują większą przestrzeń niż same tabele. Wyniki badań zestawiono na rys. 1 i 2. M B 900 800 700 600 500 400 300 200 100 0 Baza1 Baza2 C a lk o w ity ro z m ia r Tabel Struktury Rys. 3. Całkowity rozmiar danych (bazy testowe) Rozmiar tabel: Detale, Operacje w bazie: Baza1, Baza2 300 M 350 250 200 150 100 50 0 Baza1 Tabele Baza2 Struktury pomocnicze Rys. 4. Wpływ struktury pomocniczej klastra na rozmiar przestrzeni dyskowej koniecznej do składowania danych 477

W. Gryglewicz-Kacerka, J. Kacerka MB IOT na tabeli Salda 140,0000 120,0000 100,0000 80,0000 60,0000 40,0000 20,0000 0,0000 Tabela Salda Tabela Salda o organizacji indeksow ej Tabela Salda Tabela Salda o organizacji indeksow ej Rys. 5. Wpływ struktury pomocniczej IOT na rozmiar przestrzeni dyskowej koniecznej do składowania danych Badania testowe wykazały, że wzrost wielkości przestrzeni zajmowanej przez struktury pomocnicze jest uzależniony od wartości przestrzeni potrzebnej do składowania tabel (rośnie ze wzrostem ilości połączonych z nimi kolumn w tabelach, wzrostem ilości kluczy głównych, unikalnych i obcych oraz odpowiadających im indeksów). Na rys. 2 pokazany jest wpływ struktury pomocniczej klastra i związanego z nim indeksu na rozmiar tych samych tabel w obu bazach testowych (Baza1 nie zawiera struktury klastra). Wpływ struktury IOT (rys. 3) jest następujący: całkowity rozmiar tabeli z IOT jest niższy niż w tabeli, w której dane są przechowywane w sposób tradycyjny (tu zysk 17%). Wyniki testów potwierdzają rolę tabeli zorganizowanej w indeks opisaną w dokumentacji Oracle [4]. 6 Uwagi końcowe Wpływ obecności struktur pomocniczych na rozmiar bazy danych jest szczególnie widoczny w bardzo dużych tabelach, w których struktury pomocnicze zapewniają nie tylko lepszą organizację dostępu do danych, ale również zmniejszenie przestrzeni dyskowej niezbędnej do przechowywania tabel wraz z odpowiadającymi im strukturami pomocniczymi. Współczesne aplikacje budowane w oparciu o bazy relacyjne, korzystają ze struktur pomocniczych. W rzeczywistych bazach danych, eksploatowanych w dużych bankach, w których wielkość rocznego przyrostu bazy danych przekracza 1TB, 60% bazy stanowią struktury pomocnicze, a 40% dane. Niezależnie od tego zarezerwowane jest miejsce na przestrzenie wycofania i sortowania (UNDO i TEMP). Jest oczywiste, że biorąc pod uwagę wysoki koszt jednostek dyskowych używanych w wysokowydajnych macierzach, rozmiar przestrzeni wymaganej przez struktury pomocnicze znacząco wpływa na realne koszty eksploatacji systemu. Obecność struktur pomocniczych musi być również uwzględniana w procesie projektowania systemów informatycznych oraz w procesie strojenia systemu i konstrukcji zapytań do bazy. 478

Literatura Wpływ wybranych struktur pomocniczych na rozmiar bazy danych Oracle 1. Gryglewicz-Kacerka W., Grzybowski R., Szymczak B.: Wybrane zagadnienia z baz danych, Wydawnictwo Tempus, Politechnika Łódzka, Łódź 2000, 2. Gryglewicz-Kacerka W., Szymczak B.: Administracja bazą danych, Wydawnictwo Politechniki Łódzkiej, Politechnika Łódzka, Łódź 2003, 3. Gryglewicz-Kacerka W., Figiel P., Szymczak B.: Wpływ parametrów konfiguracyjnych i architektury Oracle na wydajność przetwarzania, Zastosowania Komputerów w Elektrotechnice ZkwE 2003, Wydawnictwo Politechniki Poznańskiej, Poznań 2003 4. Ruth Baylis, Joyce Fee: Oracle8i Administrator s Guide, Part No. Release 2, IEC Publication 270. Partial discharge measurements. (1989) A76956, 5. Primary Author: Michele Cyran: Oracle8i Designing and Tuning for Performance, Part No. A76992-01, Release 2. 479