• Nie Znaleziono Wyników

Systemy zarządzania bazami danych

N/A
N/A
Protected

Academic year: 2021

Share "Systemy zarządzania bazami danych"

Copied!
12
0
0

Pełen tekst

(1)

Systemy zarządzania bazami danych

10. Strojenie

(2)
(3)

Strojenie bazy danych

Strojenie bazy danych to działalność mająca na celu sprawienie, aby baza

danych działała szybciej.

“Szybciej” zwykle oznacza większą

przepustowość, ale może też oznaczać krótszy czas reakcji aplikacji, w których

jest on ważny.

(4)

Programista aplikacyjny

Zmyślny programista aplikacyjny

(np. konsul. SAP)

Admin BD, Stroiciel BD

Sprzęt [procesor(y), dysk(i), pamięć]

System operacyjny

Men. transakcji Odtwarzanie

Podsystem składu Indeksy

Procesor zapytań Aplikacja

(5)

Cel wykładu

• Pokazać:

– Pryncypia strojenia, które są wspólne dla różnych systemów, platform i technologii

– Wyniki eksperymentów nada efektywnością proponowanych metod

– Techniki radzenia sobie z problemami wydajnościowymi

(6)

Myśl globalnie, działaj lokalnie

• Zasada taka jak w medycynie (chirurgii)

– Osiągnąć jak największy efekt za pomocą jak najmniejszej interwencji

– Nie lecz symptomów, lecz przyczyny

– Nie zajmuj się drobnymi problemami, bo możesz popsuć całość

• Strojenie baz danych nie mniej tajemne

niż medycyna (mniej wtajemniczonych)

(7)

Partycjonowanie rozpycha wąskie gardła

• Partycjonowanie w przestrzeni

– Rozproszenie danych geograficzne

– Hurtownictwo danych, bazy analityczne – Bazy rezerwowe (partycjonowanie dla

dostępności)

– Rozproszenie danych na wielu dyskach (równoległa praca kontrolerów)

• Partycjonowanie w czasie

– Przeniesienie zadań wsadowych na okresy

(8)

Inicjacja jest droga, używanie tanie

• Inicjacja operacji dyskowej jest droga, a potem odczyt ciągu sektorów tani

• Wysłanie komunikatu sieciowego jest drogie, ale każdy dodatkowy bajt wysłany tym samym komunikatem jest bardzo tani

• Analiza składniowa, kontrola praw dostępu, optymalizacja zapytania jest droga, ale

następne wykonanie tego zapytania tanie

– używaj prepared statement, soft parse

• Otwarcie połączenia z bazą danych jest drogie, ale wielokrotne użycie tanie

– Używaj puli połączeń

(9)

Wsadź na serwer to, co ma tam być

• Równoważ obciążenie klienta i serwera

• Lepszy jest mechanizm wyzwalaczy niż

aktywne czekanie aplikacji na zdarzenie (np.

poprzez wielokrotne ponawianie zapytania o oczekiwane dane)

• Interakcja z użytkownikiem GUI powinna odbywać się poza zakresem transakcji, bo trwa długo

• Obliczenia numeryczne (np. FFT) raczej nie na SZBD

(10)

Bądź gotowy na kompromis

• Dodanie pamięci RAM przyspiesza system, ale kosztuje $

• Dodanie indeksu przyśpiesza zapytania, ale spowalnia modyfikacje danych

• Robienie dużych zapytań raportujących na kopii głównej bazy danych, obniża jej

obciążenie, ale kosztuje $ i sprawia, że odpowiedzi nie są dokładne

• Obniżenie izolacji transakcji zwiększa szybkość, ale obniża poprawność

(11)

Eksperymenty

• Będą wyniki eksperymentów

pozwalających ocenić sensowność porad

• http://www.diku.dk/dbtune/experiments zawiera zapytania SQL, dane i narzędzia do przeprowadzania eksperymentów

• Teraz to jest nawet:

http://www.databasetuning.org/

(12)

Sprzęt użyty do eksperymentów

• SQL Server 7, SQL Server 2000, Oracle 8i, Oracle 9i, DB2 UDB 7.1

• Trzy konfiguracje:

– Dual Xeon (550MHz,512Kb), 1Gb RAM, Internal RAID controller from Adaptec (80Mb) 2 Ultra 160 channels, 4x18Gb drives (10000RPM), Windows 2000.

– Dual Pentium II (450MHz, 512Kb), 512 Mb RAM, 3x18Gb drives (10000RPM), Windows 2000.

– Pentium III (1 GHz, 256 Kb), 1Gb RAM, Adapter 39160 with 2 channels, 3x18Gb drives (10000RPM), Linux Debian 2.4.

Cytaty

Powiązane dokumenty

(2) Zanim zmieniony x znajdzie się na dysku, wszystkie wpisy dotyczące transakcji, która zmodyfikowała x muszą trafić na dysk. (3) Przy commit , zrzuć dziennik na dysk ( flush

(4) Ti może założyć zamek X,SIX,IX na węzeł Q tylko wtedy, gdy rodzic(Q) ma zamek IX lub SIX założony przez transakcję Ti. (5) Ti zakłada

– Brak promocji zamków w Oracle; Parametry DB2 ustawione, żeby nie było promocji zamków; brak takiej kontroli w SQL Server. – Dual Xeon (550MHz,512Kb), 1Gb

– Zapis do pamięci podręcznej: transfer kończy się, gdy dane znajdą się w pamięci podręcznej sterownika. • Baterie gwarantują zapis przy

• Punkt kontrolny (częściowy zrzut brudnych strona na dysk) odbywa się w stałych odstępach lub po zapełnieniu dziennika:. – Wpływa na wydajność bazy + Pozwala

– Jeśli często odczytuje się adres dostawcy na podstawie numeru zamówionej części, to schemat 1 jest dobry.. – Jeśli jest wiele dodawanych wiele zamówień, schemat 1

• Indeks niepogrupowany jest dobry, gdy używające go zapytania zwracają znacznie mniej rekordów niż jest stron w tabeli. •

• DISTINCT jest zbędny, ponieważ ssnum jest kluczem w employee, więc też i kluczem w podzbiorze relacji employee...