Kategorie: Bazy danych, SQL, Oracle
Wydajność baz danych to jedno z najistotniejszych kryteriów, po którym w praktyce ocenia się ich działanie. Z punktu widzenia użytkownika najważniejszy jest czas oczekiwania na wyniki zadanego zapytania, jednak na wydajność baz danych składa się wiele dodatkowych czynników, takich jak obciążenie procesora, dysków i pamięci, możliwość jednoczesnego korzystania z bazy przez wielu klientów i wykonywania różnych operacji w tym samym czasie.
Tradycyjnie kwestie wydajności są utożsamiane z hasłem „optymalizacja / strojenie / tuning zapytań”. Jednak nowoczesne podejście do zarządzania wydajnością baz danych koncentruje się na odpowiednim zaprojektowaniu i utrzymaniu samej bazy. Przechowując dane we właściwy sposób i przygotowując takie elementy, jak klucze, indeksy, a czasami bardziej zaawansowane rozwiązania, m.in. partycjonowanie czy tabele IOT, umożliwiamy serwerowi baz danych automatyczną optymalizację zapytań.
Są wszakże sytuacje, gdy bezpośrednia ingerencja w wykonanie zapytania poprzez jego odpowiedni zapis lub dodatkowe wskazówki (hints) może być właściwa. Możemy na przykład mieć do czynienia z bazą o nieoptymalnej strukturze, do której nie mamy wszelkich potrzebnych uprawnień.
To szkolenie kompleksowo przedstawia mechanizmy wpływające na wydajność serwera baz Oracle. Gdy je zrozumiesz, będziesz wiedzieć, co oznaczają poszczególne oznaczenia w planie zapytania i co robi serwer podczas wykonywania zapytań. Na tym szkoleniu dowiesz się, jak należy przygotowywać bazy danych tak, aby działały możliwie wydajnie, oraz jak poprawiać wydajność istniejących baz (za pomocą indeksów i nie tylko). Dowiesz się wreszcie, jak bezpośrednio wpływać na przebieg wykonania zapytania, jak monitorować wydajność oraz jak zachować się w pewnych specyficznych, nawet jednorazowych, sytuacjach, jak migracja dużej porcji danych. W swojej pracy wykorzystasz od razu zapewne tylko część poznanych tutaj praktyk – tę, która akurat odpowiada problemom, z którymi się mierzysz. Szkolenie ma jednak charakter kompleksowy, ponieważ w różnych momentach pracy z bazami danych wymagane są różne działania – chcemy przedstawić Ci je wszystkie.
Pragniemy podkreślić, że szkolenie nie ogranicza się do przedstawienia teorii, ale omawiane kwestie ilustrowane są przykładami i ćwiczeniami, dzięki czemu uczestnicy mają szansę na żywo zobaczyć jak poszczególne techniki i wybory wpływają na szybkość działania baz danych.
Czas trwania
3 dni
Program
- Wprowadzenie
- Zasada działania serwera baz danych
- Przebieg wykonania zapytania
- Czynniki wpływające na wydajność
- Różne spojrzenia na kwestie poprawiania wydajności:
- Optymalizacja bazy vs optymalizacja zapytań
- Rola sprzętu i architektury fizycznej
- Czy „strojenie wydajnościowe” ma jeszcze sens? W jakich sytuacjach?
- Plan zapytania – jak go uzyskać (wersja tekstowa i graficzna), jak go czytać?
- Optymalizator zapytań i tryby jego działania
- Monitorowanie obciążenia serwera
- Narzędzia przydatne w ocenie wydajności, m.in. SQL Trace
- Zasady przygotowania bazy danych z myślą o wydajności
- Struktura logiczna: podział na tabele, klucze główne i obce
- Dobór właściwych typów dla kluczy i pozostałych kolumn; konsekwencje wyboru poszczególnych typów w Oracle:
- Zajętość dysku
- Czas dostępu
- Szybkość porównywania
- Możliwości użycia indeksów różnego typu
- Obsługa specyficznych sytuacji:
- Tabele słownikowe
- Dane rzadkie (sparse data)
- Duże dane tekstowe (CLOB) i binarne (BLOB)
- Indeksy
- Ogólna zasada działania indeksów i ich rola w działaniu kwerend
- Definiowanie indeksu podczas tworzenia bazy danych oraz gdy baza już istnieje i jest wypełniona danymi
- Koszty tworzenia i utrzymywania indeksów; jak ocenić, czy indeks ma sens?
- Rodzaje indeksów w Oracle, dobór rodzaju indeksu zwn sytuację:
- Indeks typu B-tree: unikalny i nieunikalny
- Indeks bitmapowy
- Indeksy wielokolumnowe i dobre praktyki ich stosowania
- Indeksy nakładane na wyrażenia („indeksy funkcyjne”)
- Metody dostępu do danych:
- Pełny dostęp do tabeli (FULL SCAN)
- Wybiórczy dostęp do rekordów (BY ROWID)
- Dostęp tylko do indeksu
- Strategie dostępu do indeksu typu B-tree:
- UNIQUE SCAN i RANGE SCAN
- FULL SCAN i FAST FULL SCAN
- SKIP SCAN i jego wpływ na myślenie o indeksach wielokolumnowych
- Techniki optymalizacji zapytań
- Podpowiedzi (hints) dotyczące wydajności w komentarzach
- Unikanie niepotrzebnego odczytu tabel (ograniczanie warunku do indeksu)
- Właściwa kolejność łączenia i filtrowania tabel oraz kolejność warunków w WHERE
- Realizacja złączeń przez Oracle; wybór automatyczny lub za pomocą hintów:
- HASH
- NL (nested loops)
- MERGE
- Podzapytania i klauzula WITH
- Podzapytania skorelowane i ich wpływ na wydajność
- Widoki zmaterializowane i ich wykorzystanie w celu podniesienia wydajności
- Różne strategie aktualizacji
- Tabele tymczasowe i ich wykorzystanie w celu unikania wielokrotnych obliczeń podczas sesji
- Planowa redundancja w bazie danych
- Przykłady złych praktyk; czego należy unikać
- Operacje modyfikacji danych (DML)
- Wpływ operacji DML na wydajność bazy jako całości; zagrożenie blokadami i świadomość kompromisu między ilością operacji DML a szybkością odczytu
- Wpływ indeksów na wydajność operacji DML
- Techniki zwiększania wydajności masowych operacji DML, m.in.:
- Tymczasowe wyłączanie indeksów i więzów integralności
- Tymczasowe ograniczanie współbieżnego dostępu
- Tymczasowe wyłączanie operacji administracyjnych (jak replikacja, backup, statystyki)
- Pielęgnacja działającej bazy danych
- Wpływ statystyk na planowanie zapytań przez Oracle
- Podgląd statystyk
- Automatyczne i ręczne odświeżanie statystyk
- Histogramy
- Fizyczna struktura bazy danych
- Dobór sprzętu zwn rozmiar i obciążenie bazy
- Definiowanie przestrzeni dyskowych na rzecz bazy Oracle
- Podział danych między różne przestrzenie dyskowe
- Partycjonowanie tabel i jego wpływ na wydajność; dobór strategii partycjonowania w zależności od potrzeb
- Partycjonowanie zwn na zakres dat lub inny warunek logiczny (RANGE)
- Partycjonowanie w oparciu o funkcję skrótu (HASH)
- Tabele organizowane wokół indeksu (IOT)
Training also available in English.
Przeznaczenie i wymagania
Szkolenie przeznaczone dla osób pracujących z bazami danych (administratorzy, programiści, analitycy, osoby z jakiegokolwiek innego powodu korzystające z SQL), które chcą poznać mechanizmy wpływające na wydajność działania baz danych Oracle i wykorzystać tę wiedzę w praktyce poprzez odpowiednią konfigurację swoich baz danych i odpowiednie pisanie kwerend.
Wymagana jest podstawowa wiedza na temat relacyjnych baz danych i znajomość języka SQL pozwalająca na pisanie typowych zapytań z warunkami i odwołaniami do wielu tabel na raz. Zalecany wcześniejszy kontakt z narzędziami Oracle Database (dowolna wersja) i SQL Developer, ale na szkolenie zapraszamy także osoby pracujące z innymi produktami, jeśli chcą poszerzyć swoją wiedzę.
Certyfikaty
Uczestnicy szkolenia otrzymują imienne certyfikaty sygnowane przez ALX.