Inspiracja , wiedza , realizacja
Jsystems

W przebudowie

Login



Java

Oracle

Linux

Android

PostgreSQL

Microsoft SQL Server

Zarządzanie tabelami partycjonowanymi

Data dodania: Jun 17, 2016
Data aktualizacji: Jun 17, 2016


Przy użyciu polecenia "ALTER TABLE" możemy tak jak w przypadku zwykłej tabeli, modyfikować strukturę tabeli partycjonowanej.


Usuwanie partycji z tabeli.




Dodawanie nowej partycji do tabeli.




Dzielenie partycji.




Scalanie partycji.





Czyszczenie partycji.





Przeniesienie partycji tabeli do innej przestrzeni tabel.





Główne zalety wynikające z uzywania tabel partycjonowanych w stosunku do zwykłych tabel, to przede wszystkim wzrost wydajności. Możemy na przykład zadać pytanie tylko do jednej partycji, dzięki czemu nie ma potrzeby przetwarzania całej tabeli. Ewentualnie może to za nas zrobić silnik bazy danych, jeśli np okaże się że wartości których poszukujemy znajdują się na przykład tylko w dwóch, z dziesięciu partycji tabeli. Nie ma wtedy w ogóle potrzeby zaglądać do pozostałych osmiu partycji. Poza tym, możemy każdą z naszych przykładowych dziesięciu partycji trzymać w osobnej przestrzeni tabel.


Dla przykładu, mamy dwie tabele, które zawierają dokładnie po 2000 wierszy.

Oczywiście jedna z nich bedzie tabelą zwykłą (PRACOWNICY) a druga partycjonowaną (PRACOWNICY_PARTITIONED).


Zanim jeszcze przejdziemy do porównania, sprawdzimy jeszcze w jaki sposób tabela została podzielona na partycje.







Widzimy, że rekordy w tej tabeli zostały umieszczone w sześciu partycjach, które uwzględniają to w jakim roku dana osoba została zatrudniona.


Zakładamy, iż chcieli byśmy wyświetlić dane pracowników którzy zostali zatrudnieni po pierwszym stycznia roku 2015. Przy użyciu zwykłej tabeli zapytanie i koszt takiego zapytania wyglądałyby nastepująco.




I to samo zapytanie przy użyciu tabeli partycjonowanej.




Jak widać koszt takiego zapytania spadł z 13 na 4. Dodatkowo możemy zauważyć, że nie została przeszukana cała tabela, w poszukiwaniu rekordów, które nas interesują, a pojedyncza partycja z tej tabeli.


Dodatkowo, wiedząc już o tym, że wiersze których poszukujemy, znajdują się tylko w jednej partycji, możemy wskazać sami, że tylko z tej partycji chcemy otrzymać wyniki.