cw 11 03, Studia, bazy danych, LABORATORIUM I-SZY STOP


Ćwiczenie 11

  1. KLASTRY

Klastry (cluster) jest jeszcze jedną alternatywną strukturą składowania danych w Oracle. Utworzenie klastra to opcjonalna metoda fizycznego składowania tabel, która może zmniejszyć czas dostępu do danych, poprawić wydajność I/O, a także w niektórych przypadkach ograniczyć zapotrzebowanie na przestrzeń dyskową. Obecność klastra w bazie danych jest przeźroczysta dla użytkownika i aplikacji. Z tabel zawartych w klastrze korzysta się w taki sam sposób, jak z normalnych tabel. Pomimo, że klastry mogą poprawić efektywność zapytań, istnieje zagrożenie zmniejszenia wydajności niektórych operacji, dlatego należy je budować na tabelach często łączonych, rzadko aktualizowanych, o stosunkowo stałych rozmiarach i rzadko przeglądanych w całości.

W systemie Oracle można tworzyć dwa rodzaje klastrów:

Po utworzeniu klastra możemy tworzyć na nim tabele, wykorzystując klauzulę CLUSTER instrukcji CREATE TABLE. Nie można jednak określać parametrów składowania tych tabel - trzeba je ustalić na poziomie klastra.

Klastry indeksowe

Klaster indeksowy tworzy zwykle kilka tabel dzielących te same bloki danych, dobranych ze względu na to, że są często łączone wg pewnej, wspólnej dla nich kolumny. Wiersze tabel należące do klastra pogrupowane są fizycznie według wartości wskazanej kolumny, zwanej kluczem klastra. Każda tabela w klastrze musi posiadać kolumnę lub kolumny o typie i rozmiarze pasującym do klucza klastra. Klucz klastra nie może zawierać kolumn typu LONG. Najlepszymi kluczami klastra są kolumny używane do złączeń wielu tabel, rzadko aktualizowane, zawierające szeroki zakres wartości. Zanim do klastra będzie można wstawiać dane, należy najpierw założyć indeks klastra za pomocą klauzuli cluster polecenia CREATE INDEX, stosując te same zasady, co w stosunku do zwykłych indeksów. Istnienie indeksy klastra nie wyklucza możliwości zakładania normalnych indeksów dla sklastrowanych tabel.

Klastry haszowe

W klastrach haszowych klucz klastra wystarcza do wyznaczenia bloku danych zawierającego określony wiersz. Odpowiednio zaprojektowany klaster może dzięki temu spowodować zmniejszenie średniej liczby operacji potrzebnych do wyszukania pojedynczego wiersza, ponieważ może on zostać natychmiast zlokalizowany, bez konieczności odczytywania całej tabeli lub indeksu. Każdy klaster haszowy zawiera wiersze tabeli pogrupowane fizycznie na podstawie wartości zwracanej przez tzw. funkcję haszową (a nie na podstawie klucza klastra, jak w przypadku klastrów indeksowych), której argumentem jest klucz klastra. Domyślnie funkcja haszowa jest funkcja modulo, jednak może być ona zmieniona przez użytkownika.

Liczba unikalnych wartości zwracanych przez funkcję haszową ustalana jest za pomocą parametru HUSHKEYS w momencie tworzenia klastra. W połączeniu z wartością klucza klastra, wartość ta służy do obliczania wartości funkcji haszowej. Jeśli HUSHKEYS nie jest liczbą pierwszą, to Oracle automatycznie zwiększa jej wartość do najbliższej liczby pierwszej.

Podczas tworzenia klastra haszowego określa się również wartość parametru SIZE, wyznaczając w ten sposób przestrzeń, która jest rezerwowana na umieszczenie wszystkich rekordów z identyczna wartością funkcji haszowej. Na podstawie wartości parametru SIZE, Oracle oblicza liczbę wierszy z ta sama wartością funkcji haszowej, które można wstawić do jednego bloku. Jeśli np. wolna przestrzeń w każdym bloku wynosi 1700 bajtów, a parametr SIZE jest ustalony na 500 bajtów, to do jednego bloku przypisane mogą być maksymalnie trzy wiersze o tej samej funkcji haszowej.

Tworzenie klastrów

Klastry tworzy się poleceniem CREATE CLUSTER

Składnia:

CREATE CLUSTER nazwa_klastra

(kolumna typ_danych [,kolumna typ_danych] ...)

[PCTUSED wartość

|PCTFREE wartość

|SIZE wartość [K|M]

|TABLESPACE przestrzeń tabel

|STORAGE klauzula_składowania

|HASHKEYS wartość [HASH IS funkcja_haszująca] ] ...

gdzie:

SIZE wyznacza rozmiar przestrzeni (w bajtach) służącej do przechowywania w pojedynczym bloku wierszy z ta sama wartością klucza haszujacego,

TABLESPACE przestrzeń tabel, w której ma zostać utworzony klaster,

INDEX pozwala na utworzenia klastra indeksowego,

HASHKEYS oznacza, że ma zostać utworzony klaster haszowy (domyślnie zostałby utworzony klaster indeksowy), a także określa liczbę wartości zwracanych przez funkcje haszową

HASH IS specyfikuje funkcję haszową zdefiniowaną przez użytkownika, albo wskazuje kolumnę, której wartości mają być używane, jako wyniki funkcji haszowej.

Przykład:

SQL> CREATE CLUSTER prac_clus (id_zesp NUMBER (2))

SQL> CREATE INDEX prac_idx

SQL> CREATE TABLE prac_clus

SQL> CREATE TABLE zesp_clus

SQL> SELECT nazwisko

Modyfikowanie klastrów

Klastry modyfikuje się poleceniem ALTER CLUSTER

Składnia:

ALTER CLUSTER nazwa_klastra

{PCTUSED wartość

|PCTFREE wartość

|SIZE wartość [K|M]

|STORAGE klauzula_składowania

|HASHKEYS wartość [HASH IS funkcja_haszująca } ...

Usuwanie klastrów

Klastry usuwa się poleceniem DROP CLUSTER

Składnia:

DROP CLUSTER nazwa_klastra

[INCLUDING TABLES [CASCADE CONSTRAINTS] ]

gdzie:

INCLUDING TABLES powoduje usunięcie tabel należących do klastra. Jeśli opcja nie zostanie podana, wówczas usunięcie klastra zawierającego tabele nie powiedzie się,

CASCADE CONSTRAINTS usuwa wszystkie referencyjne więzy integralności z tabel.

Przykład:

SQL> DROP CLUSTER prac_clus;

SQL> CREATE CLUSTER prac_clus

LABORATORIUM z BAZ DANYCH

ORACLE

3



Wyszukiwarka

Podobne podstrony:
cw 10 03, Studia, bazy danych, LABORATORIUM I-SZY STOP
cw4 08 stud, Studia, bazy danych, LABORATORIUM I-SZY STOP
cw8 1 03stud, Studia, bazy danych, LABORATORIUM I-SZY STOP
cw8 03stud, Studia, bazy danych, LABORATORIUM I-SZY STOP
cw6 1 08, Studia, bazy danych, LABORATORIUM I-SZY STOP
cw6 08 stud, Studia, bazy danych, LABORATORIUM I-SZY STOP
Ćw 2 11.03.2008, studia, Chirurgia
spr cw 11, Technologia chemiczna, semestr 2, Fizyka, Laboratorium, laboratoria fizyka bincia
bd2 06 211b, bd2 06 211b id14, Bazy Danych 2 - Laboratorium
BD gr D, Studia, Bazy danych, Wszystkie zestawy na BD
Sprawozdanie ćw. 11 Marty, Studia, I rok, Chemia fizyczna
POLU CW1, Studia, bazy danych
Polu cw2, Studia, bazy danych

więcej podobnych podstron