Adresaci szkolenia:

Szkolenie adresowane jest do programistów oraz administratorów baz danych pragnących pogłębić swoją wiedzę dotyczącą poprawiania wydajności i skalowalności aplikacji bazodanowych.

Cel szkolenia:

Uczestnicy dowiedzą się jak pisać zapytania oraz jak organizować dane aby w jak największym stopniu wykorzystać możliwości posiadanego systemu baz danych. Uczestnicy poznają również budowę wewnętrzną współczesnych systemów baz danych, co ułatwi im świadomie ustawiać parametry konfiguracyjne oraz przewidywać wpływ podjętych decyzji projektowych na wydajność. Przedstawione zostaną też słabości wybranych systemów baz danych i sposoby na ich zaradzenie.

Wymagania:

Od uczestników wymaga się podstawowej znajomości zagadnień związanych z relacyjnymi bazami danych, znajomości języka Java i podstawowej znajomości technik mapowania obiektowo relacyjnego (JPA lub Hibernate).

Parametry szkolenia:

3 * 8 godzin (3*7 godzin netto) wykładów i warsztatów (z wyraźną przewagą warsztatów). W trakcie warsztatów, uczestnicy przećwiczą poznane techniki na przykładowej aplikacji działającej w wybranym systemie baz danych.

Wielkość grupy: maks. 8-10 osób.

Program szkolenia

  1. Architektura systemów bazodanowych
    1. warstwa dostępu do danych (DAO)
    2. cache aplikacji
    3. sterownik JDBC
    4. parser / kompilator zapytań SQL
    5. moduł przepisywania zapytań
    6. optymalizator zapytań
    7. warstwa wykonawcza
  2. Fizyczne struktury danych
    1. organizacja danych w tabelach
    2. diagnostyka "zdrowia" tabel
    3. indeksy: B+ drzewa, mieszające, zakresowe, przestrzenne
    4. indeksowanie grupujące
    5. indeksowanie pełnotekstowe
    6. naprawianie indeksów
  3. Algorytmy wykonywania zapytań i ich charakterystyka
    1. algorytmy wyszukiwania informacji
    2. algorytmy złączeń: hash join, merge join, nested loops, index
  4. nested loops
    1. algorytmy grupowania
    2. wyjaśnianie planów zapytań (EXPLAIN, AUTOTRACE)
  5. Pisanie wydajnych zapytań i projektowanie fizycznej struktury danych
    1. ograniczenia optymalizatorów zapytań
    2. wykorzystanie zaawansowanych możliwości optymalizatorów w Oracle / MSSQL / DB/2
    3. utrzymywanie statystyk optymalizatora
    4. dobór indeksów
    5. dobór perspektyw zmaterializowanych
    6. wielowymiarowe klastrowanie tabel
    7. partycjonowanie poziome i pionowe tabel, podział na wiele nośników
    8. wykorzystanie narzędzi wspomagających strojenie wydajności
    9. konstrukcje, których należy unikać
  6. Buforowanie
    1. buforowanie bloków w systemie plików
    2. buforowanie bloków danych w pamięci współdzielonej
    3. buforowanie na poziomie rekordów
    4. buforowanie wyników zapytań
    5. buforowanie planów wykonania zapytań (prepared statements)
  7. Transakcje
    1. strategie zarządzania współbieżnością 2PL,MVCC
    2. blokady na poziomie tabeli, rekordu
    3. pisanie kodu bezpiecznego ze względu na transakcje
    4. redukcja zakleszczeń / liczby anulowanych transakcji
    5. zapewnianie trwałości danych, wycofywanie i wznawianie transakcji (log transakcyjny, segment wycofywania)
    6. problemy związane z częstą modyfikacją danych i długimi transakcjami
    7. transakcje rozproszone
  8. Replikacja i systemy HA
    1. strategie replikacji synchroniczna, asynchroniczna
    2. masterslave, mastermaster
    3. replikacja w MySQL, PostgreSQL, Oracle, DB/2...
    4. load balancing
    5. Hibernate shards
  9. Tworzenie wydajnego kodu w Java
    1. lazy/eager fetching
    2. bulk update/delete
    3. buforowanie w JPA/Hibernate
    4. buforowanie rozproszone

Pytania?

* Wymagane.


Konsultant on-line
Skorzystaj z usług naszego konsultanta on-line.
Naciśnij przycisk ‘Skorzystaj’ aby przejść do okienka czatu
Kontakt
ul. Nowogrodzka 62c
02-002 Warszawa
Telefon +48 22 2035600
Fax +48 22 2035601
Email