142 Bazy danych
Zasadniczy czas dostępu do danych bazy to czas odczytu tych danych z dysków. W celu optymalizacji tego dostępu stosuje się metodę zwaną klastrowaniem.
Klastrowanie polega na dążeniu do utrzymania blisko siebie na dysku rekordów, które są logicznie powiązane. Taka organizacja danych znacznie przyspiesza dostęp do danych. Aby odczytać dane powiązane (i w związku z tym zapewne razem wykorzystywane i odczytywane), głowica nie musi wykonywać dużych ruchów, a tym samym maleją czasy wyszukiwania).
Rozróżniamy przy tym dwa rodzaje klastrowania:
• - klastrowanie wewnątrzplikowe,
• - klastrowanie międzyplikowe.
Klastrowanie wewnątrzplikowe polega na grupowaniu rekordów obok siebie wewnątrz jednego pliku.
Klastrowanie międzyplikowe polega na umieszczaniu na stronie obok siebie rekordów pochodzących z więcej niż jednego pliku (tabeli).
Optymalizacja dostępu do danych sprowadza się w zasadzie do odpowiedniego zarządzania stronami i decydowania w jaki sposób dane mają być klastrowane.
Strony Strona 4 Słona |
Słona 6 Słona 7 Słona |
Słona 9 | ||||||||
II Gon |
Ruda |
Afchter |
Smith |
Martin |
Santo | |||||
Furt; |
irmite |
Furt; |
Cła |
Phua |
Jones | |||||
UMe |
Barr |
Smith |
Jones |
Jones |
Hall | |||||
Martin |
Smith | |||||||||
I— |
— |
Rys. 6.2Przechowy wanie danych na dysku
Jak to pokazano na rysunku 6.2, wszystkie dane z tabel relacyjnej bazy danych są przechowywane na stronach danych (ang. page) na dysku. Na przykład w serwerze MS SQL strona danych ma wielkość 8 KB. Strony tworzą większe struktury zwane stertami (ang. heap).
Sterta jest kolekcją stron danych. W każdej tabeli dane są przechowywane w kolekcji 8 kilobajowych stron. 8 ciągłych stron tworzy zakres (ang. extent). Wiersze danych nie są na stronach przechowywane w szczególnej kolejności, a strony danych nie są połączone w listę. Jeśli podczas wstawiania danych do strony, strona ulega przepełnieniu, to wtedy następuje podział takiej strony. Ponieważ jeden wiersz tabeli musi zmieścić się na stronie danych, więc w serwerze MS SQL występuje ograniczenie co do wielkości wiersza i wynosi ono 8060 bajtów (ponieważ na stronie zapisywane są jeszcze metadane -informacje o obiekcie, którego dane przechowuje strona itd., dane nie zajmują dokładnie pełnych 8 KB).