Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.



23.06.2020

PLNOG Online

PLNOG Online
23.06.2020

Nowe zagrożenie

Ramsay
23.06.2020

Chmurowe kopie

Veeam Backup dla Microsoft Azure
19.06.2020

Nowości w kontenerach

Red Hat OpenShift 4.4
19.06.2020

Analityka bezpieczeństwa

FortiAI
19.06.2020

UPS dla obliczeń edge

Schneider APC Smart-UPS
16.06.2020

Przemysłowe SD

Nowe karty Transcend
16.06.2020

Storage dla SMB

QNAP TS-451DeU
16.06.2020

Pamięć masowa

Dell EMC PowerStore

Budowa i działanie b-trees

Data publikacji: 02-12-2013 Autor: Marcin Szeliga

Drzewa zrównoważone są najpopularniejszym typem indeksów, dlatego zostały zaimplementowane w większości serwerów bazodanowych. Przedstawiamy zasadę działania indeksów tego typu na przykładzie rozwiązania zaimplementowanego w serwerach SQL Server firmy Microsoft.

Dopóki bazy danych są względnie małe (na tyle małe, że wszystkie dane mieszczą się w pamięci operacyjnej) i korzysta z nich niewielu (kilku lub kilkunastu) użytkowników, ich działanie jest na tyle wydajne, że rzadko wymagają one optymalizacji. Sytuacja zmienia się jednak diametralnie wraz ze wzrostem wielkości baz oraz liczby ich użytkowników – wtedy najważniejszym zadaniem administratorów staje się zadbanie o zapewnienie odpowiedniej wydajności serwerów.

Ponieważ administratorzy rzadko mają możliwość zmiany aplikacji bazodanowej, pozostają im dwa rozwiązania:

 

  1. zwiększenie wydajności fizycznego serwera poprzez rozbudowę systemu wejścia/wyjścia, dodanie pamięci RAM czy zwiększenie jego mocy obliczeniowej;
  2. poprawę wydajności baz poprzez utworzenie prawidłowych (wykorzystywanych przez serwer) indeksów.


Okazuje się, że pierwsze rozwiązanie jest prawie zawsze nieopłacalne, czyli że nakłady rzędu tysięcy złotych pozwalają poprawić wydajność bazy zaledwie o kilka procent. Znacznie skuteczniejszym, tańszym i jednocześnie względnie łatwym sposobem jest optymalizacja indeksów.

Indeksy są, obok tabel, drugą podstawową strukturą każdej bazy danych. W typowej bazie zajmują od 25% do 45% jej całkowitej wielkości. Do wersji 2014 serwery SQL Server przechowują indeksy, tak samo jak tabele – w plikach danych (plikach MDF lub NDF). Zadanie indeksów jest trojakie:

 

  1. zapewnienie szybkiego dostępu do danych poprzez umożliwienie wyszukania (seek) określonych rekordów tabeli. Dzięki temu, że rekordy indeksów zawsze są uporządkowane, serwer bazodanowy może w stałym, niezależnym od wielkości tabeli, czasie znaleźć i odczytać dane potrzebne do zrealizowania żądania użytkownika;
  2. wyeliminowanie z planów wykonania zapytań kosztownych (wymagających pamięci i/lub wielu obliczeń) operacji, takich jak sortowanie (sort) czy mieszanie (hash) rekordów;
  3. poprawa współbieżności, czyli umożliwienie wielu jednoczesnym użytkownikom wykonywanie operacji na tych samych tabelach, które w innym wypadku zostałyby automatycznie zablokowane.

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.

prenumerata Numer niedostępny Spis treści

.

Transmisje online zapewnia: StreamOnline

All rights reserved © 2019 Presscom / Miesięcznik "IT Professional"