Szkolenie: Oracle – Strojenie wydajności poleceń SQL i programów PL/SQL
Podczas szkolenia "Oracle – Strojenie wydajności poleceń SQL i programów PL/SQL" uczestnicy nauczą się jak zdiagnozować i zapobiegać problemom związanym z wydajnością procesów bazodanowych zaimplementowanych w SQL i PL/SQL.
- Trenerzy praktycy
- Kameralne grupy
Czas trwania szkolenia:5 dni (40h)
Kod kursu:ORA/SQLTUN
Oracle – Strojenie wydajności poleceń SQL i programów PL/SQL
Cele szkolenia
Zapoznanie się z procesem diagnozowania i usuwania problemów wydajnościowych procesów bazodanowych zaimplementowanych w SQL i PL/SQL
Zrozumienie procesów zachodzących wewnątrz bazy danych mających wpływ na wydajność
Implementowanie efektywnego kodu
Dla kogo?
Doświadczonych programistów i administratorów bazy danych, którzy spotykają się na co dzień z problemami wydajnościowymi zarówno w określonych poleceniach SQL jak i całych procesach zaimplementowanych po stronie bazy danych Oracle
Zalety
Szkolenie w przejrzysty i szeroki sposób prezentuje zagadnienia pozwalające na zrozumienie wewnętrznych mechanizmów zachodzących podczas wykonywania poleceń SQL i programów PL/SQL, na monitorowanie i diagnozowanie problemów wydajnościowych oraz implementowanie rozwiązań
Umożliwia efektywne zarządzanie procesem optymalizacji poleceń SQL i programów PL/SQL
Podejście praktyczne do procesu tuningu
Wymagania
Swobodne posługiwanie się językiem SQL i PL/SQL
Kilkuletnie doświadczenie praktyczne w pracy z Oracle lub innym silnikiem relacyjnej bazy danych
W cenie otrzymasz:
Materiały szkoleniowe
Certyfikat ukończenia szkolenia
W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki
Program szkolenia
Metodologia strojenia aplikacji
Odnalezienie problemu
Diagnozowanie przyczyny
Aplikowanie rozwiązania
Architektura bazy danych i instancji
Podstawowe informacje o plikach i procesach serwera
Struktury pamięci (SGA, PGA)
Proces parsowania i współdzielenia kursorów
Analiza planu wykonania polecenia
Sposoby pozyskiwania hipotetycznego i rzeczywistego planu zapytania (EXPLAIN PLAN, DBMS_XPLAN, SQLPlus Autotrace)
Oznaczanie kolejności kroków algorytmu
Interpretacja zawartości drzewa planu
Plany adaptywne
Proces optymalizacji kosztowej i sterowanie praca optymalizatora kosztowego
Właściwości optymalizacji kosztowej i regułowej
Parametry sesji i instancji
Podpowiedzi (hinty)
Wzorce planów zapytań (outlines)
Baza planów - SQL Plan Baselines
Łatki - SQL Patches
SQL Prifiles
Statystyki i histogramy
Wpływ statystyk i histogramów na wydajność
Sposoby zbierania statystyk i histogramów
Strategie zliczania i estymacji statystyk, próbkowanie ad hoc
Zarządzanie statystykami: blokowanie, kopiowanie, edycja, automatyzacja zbierania, monitorowanie zmian
Statystyki wielokolumnowe, oparte na wyrażeniach
Statystyki systemowe i słownikowe
Statystyki adaptywne
Autotuning i SQLDirectives
Logiczna i fizyczna struktura bazy
Przestrzenie tabel
Segmenty
Rozszerzenia
Bloki
Optymalizacja pełnego odczytu poprzez prawidłową gospodarkę miejscem
Kiedy stosować pełny odczyt
Alokacja przestrzeni w bloku i segmencie, wskaźnik wysokiej wody, PCTFREE
Wpływ operacji DML oraz sposobu alokacji przestrzeni na wydajność odczytów
Ładowanie danych ścieżką konwencjonalną i bezpośrednią
Reorganizacja fizyczna danych, obcinanie, defragmentacja, przebudowa
Optymalizacja pełnego odczytu poprzez fizyczne wydzielenie „gorących danych”
Tablice tymczasowe
Partycjonowanie
Widoki zmaterializowane
Optymalizacja pełnego odczytu poprzez kompresję danych
Kompresja OLTP
Kompresja OLAP
Optymalizacja odczytu poprzez indeks
Pojęcie ROWID
Budowa indeksów BTREE
Porównanie efektywności dostępu do danych poprzez indeksy BTREE i FULL SCAN
Wpływ indeksów na operacje DML
Strategie zakładania i usuwanie indeksów
Indeks „dobry” i „zły”, wpływ entropii fizycznego rozmieszczenia danych na koszty użycia indeksu
Właściwości i statystyki indeksów
Rodzaje odczytów: UNIQUE, RANGE, SKIP, FULL, FAST FULL, MIN/MAX
Rodzaje indeksów: unikalne, funkcyjne, wielokolumnowe, z odwróconym kluczem, lokalne/globalne, wirtualne, niewidzialne
Wartości NULL w indeksach
Tablice zorganizowane indeksowo (IOT)
Indeksy bitmapowe i złączeniowe
Optymalizacja procesu sortowania
Sortowanie pamięciowe
Sortowania indeksowe
Sortowania lingwistyczne
Optymalizacja złączeń i podzapytań
Metody łączenia: MERGE, HASH, NESTED LOOP
Złączenia w systemach OLTP i OLAP
Złączenia gwiazdowe
Kolejność łączeń
Złączenia zewnętrzne
Monitorowanie wydajności i znajdowanie wąskich gardeł procesu
v$sql…., dba_hist…
Śledzenie sesji bazodanowej/procesu
Śledzenie sesji aplikacyjnej/użytkownika w modelu dzierżawy połączenia do bazy danych
Narzędzie TkProf, TrcSess
Raporty ASH i AWR
Wydajność kodu PL/SQL
Używanie wartości literalnych w poleceniach SQL
Prawidłowy sposób komunikacji SQL <=> PL/SQL
Funkcje własne w SQL
Przekazywanie parametrów przez kopię/wskaźnik
Wtapianie krótkich procedur na etapie kompilacji
Zarządzanie kompilatorem