Swobodne posługiwanie się językiem SQL i PL/SQL. Doświadczenie praktyczne w pracy z Oracle lub innym silnikiem relacyjnej bazy danych.
Poziom: Ekspert. Forma: Wykład, Prezentacja, Dyskusja, Rozwiązywanie problemów. Przeznaczenie szkolenia: Szkolenie to jest przeznaczone dla 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. Korzyści wynikające z ukończenia szkolenia: 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.
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)
- Zarządzanie planami zapytań (baselines, Profile, SQL Patch)
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
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
Wydajność kodu PL/SQL
Używanie wartości literalnych w poleceniach SQL
zasady współdzielenia kursorów
używanie wartości literalnych w poleceniach SQL
kursory adaptywne
Prawidłowy sposób komunikacji SQL <=> PL/SQL
kursory a operacje masowe
prefetch
for update
Funkcje własne w SQL
lokalne
buforowanie wyników funkcji
determinizm a wydajność
- Przekazywanie parametrów przez kopię/wskaźnik
- Wtapianie krótkich procedur na etapie kompilacji
- Zarządzanie kompilatorem
poziomy optymalizacji kompilatora
Natywna kompilacja
- Inne aspekty optymalizacji PL/SQL
Slovenia - Oracle - Tuning SQL commands and performance of PL/SQL programs
Croatia - Oracle - Tuning SQL commands and performance of PL/SQL programs
Serbia - Oracle - Tuning SQL commands and performance of PL/SQL programs
Bhutan - Oracle - Tuning SQL commands and performance of PL/SQL programs
Nepal - Oracle - Tuning SQL commands and performance of PL/SQL programs
Uzbekistan - Oracle - Tuning SQL commands and performance of PL/SQL programs