120 likes | 269 Views
Systemy zarządzania bazami danych. 10. Strojenie. Strojenie bazy danych. Strojenie bazy danych to działalność mająca na celu sprawienie, aby baza danych działała szybciej.
E N D
Systemy zarządzania bazami danych 10. Strojenie
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. 10. Strojenie
Programista aplikacyjny Aplikacja Zmyślnyprogramistaaplikacyjny(np. konsul. SAP) Procesor zapytań Indeksy Podsystem składu Men. transakcji Odtwarzanie Admin BD,Stroiciel BD System operacyjny Sprzęt [procesor(y), dysk(i), pamięć] 10. Strojenie
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 10. Strojenie
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) 10. Strojenie
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 mniejszego obciążenia (noc, weekend) 10. Strojenie
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, alenastę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ń 10. Strojenie
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 • Złączenie tabel raczej nie na kliencie 10. Strojenie
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ść 10. Strojenie
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/ 10. Strojenie
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. 10. Strojenie