Szkolenie Zaawansowany Oracle SQL - TERMIN GWARANTOWANY - 28.06.2027

location icon
JSystems Szkolenia IT Szkolenie online na żywo, Online Zobacz na mapie
calendar icon
Od 28 cze 9:00 do 30 cze 16:00
ticket icon
Od 2 952,00 zł

Szkolenie Zaawansowany Oracle SQL: TERMIN GWARANTOWANY 28-30.06.2027

Szkolenie online na żywo z trenerem, 3 dni, w godz. 9:00-16:00. Termin gwarantowany odbędzie się na pewno, nawet przy jednym uczestniku. Prowadzi: Monika Lewandowska.

Szczegóły szkolenia, program i zapisy: Szkolenie Zaawansowany Oracle SQL na jsystems.pl
Wszystkie terminy gwarantowane JSystems: lista terminów gwarantowanych

W skrócie

Raport z rankingami i sumami narastającymi rozrasta się do kilku zapytań i arkusza, błędny UPDATE oznacza odtwarzanie danych z kopii zapasowej, a wolne zapytanie spowalnia cały system. Po tym szkoleniu taki raport piszesz jednym zapytaniem SQL, błędną zmianę cofasz w Oracle bez sięgania po kopię, a przyczynę wolnego działania odczytujesz z planu wykonania i usuwasz. Przechodzisz od zapytań hierarchicznych i funkcji analitycznych, przez PIVOT, MERGE i Flashback, po indeksy i strojenie zapytań.

Co potrafisz po szkoleniu

  • Rozwijasz dowolną hierarchię jednym zapytaniem - Strukturę organizacyjną, drzewo kategorii produktów czy listę materiałową wyrobu wyświetlasz z poziomami i pełną ścieżką od góry drzewa, bez pętli w kodzie i bez ręcznego składania wyników, a zapętlone dane wykrywasz i obsługujesz w trakcie zapytania.
  • Liczysz rankingi, trendy i sumy narastające prosto w bazie - Wskazujesz najlepszych klientów w każdym regionie, porównujesz wyniki z poprzednim okresem, liczysz sumy narastające od początku roku i średnie kroczące, a szczegóły zostają w wyniku obok podsumowań. Omijasz przy tym pułapki, przez które takie obliczenia potrafią zwracać błędne wyniki bez żadnego ostrzeżenia.
  • Pilnujesz jakości danych tekstowych - Sprawdzasz poprawność NIP, PESEL, adresów e-mail i numerów telefonów prosto w zapytaniu, wydobywasz potrzebne fragmenty z opisów i notatek oraz porządkujesz niejednolite zapisy przed raportem albo importem.
  • Cofasz błędne zmiany w danych bez odtwarzania kopii zapasowej - Po pomyłkowym UPDATE albo DELETE sprawdzasz, jak dane wyglądały wcześniej, śledzisz historię zmian pojedynczego wiersza, przywracasz całą tabelę do stanu sprzed pomyłki i odzyskujesz omyłkowo usuniętą tabelę. Znasz też granice tego mechanizmu, więc wiesz, w jakich sytuacjach zadziała.
  • Sprawnie ładujesz dane i panujesz nad równoczesną pracą użytkowników - Synchronizujesz tabele jednym poleceniem, które w jednym kroku dodaje nowe wiersze, aktualizuje istniejące i usuwa zbędne, co upraszcza i przyspiesza ładowanie hurtowni. Wiesz, co widzą użytkownicy pracujący na tych samych danych w tym samym czasie, i wykrywasz blokady oraz zakleszczenia wraz z ich źródłem.
  • Budujesz kompletne raporty jednym zapytaniem - Sumy częściowe, podsumowania na każdym poziomie i sumę całkowitą dostajesz w jednym wyniku z czytelnymi etykietami, dane obracasz w tabelę krzyżową, na przykład z miesiącami w kolumnach i produktami w wierszach, a warunkowe wyliczenia i zamianę kodów na czytelne nazwy robisz w samym SQL.
  • Udostępniasz dane bezpiecznie i szybko - Przygotowujesz widoki, które pokazują użytkownikom tylko dozwolone wiersze i kolumny, nadajesz uprawnienia i role dokładnie w potrzebnym zakresie, a ciężkie zestawienia przeliczasz z wyprzedzeniem w widokach zmaterializowanych, z których baza sama korzysta, gdy zapytanie tego wymaga.
  • Przyspieszasz wolne zapytania - Z planu wykonania odczytujesz, dlaczego zapytanie działa wolno, dobierasz indeksy, przepisujesz zapytanie tak, by baza wybrała szybszą drogę, i śledzisz, co naprawdę dzieje się podczas jego wykonania. Utrwalasz dobre plany, żeby zapytanie nie zwolniło po zmianach w bazie.

Jak pracujemy

Składnię przechodzisz na praktycznych zastosowaniach: od struktur organizacyjnych i raportów finansowych po synchronizację tabel w procesach ETL i walidację danych tekstowych. Szkolenie prowadzi Monika Lewandowska, projektantka i programistka baz danych Oracle oraz Oracle ACE Pro, która specjalizuje się w wydajności i optymalizacji SQL.

Dla kogo

Dla programistów baz danych, analityków, twórców raportów i osób pracujących z hurtowniami danych, którzy znają podstawy SQL i chcą wykorzystać pełnię możliwości bazy Oracle. Wymagania wstępne: swobodne pisanie zapytań SELECT ze złączeniami, grupowaniem i podzapytaniami.

Co zyskujesz

Umiejętność samodzielnego pisania złożonych zapytań analitycznych w Oracle, cofania błędnych zmian w danych bez sięgania po kopię zapasową i diagnozowania wolnych zapytań na podstawie planu wykonania. Termin gwarantowany odbywa się na pewno, nie odwołamy go z powodu małej grupy. Otrzymujesz też imienny certyfikat ukończenia szkolenia.

Zarezerwuj miejsce i wykorzystaj pełnię możliwości SQL w Oracle: od zapytań hierarchicznych i funkcji analitycznych po Flashback i strojenie zapytań.

Sprawdź, czy w Twoim przypadku dostępne jest finansowanie szkolenia ze środków BUR/KFS. Dostępność finansowania zależy od warunków danego programu oraz decyzji właściwej instytucji. Więcej informacji: https://jsystems.pl/dofinansowanie/

Prowadzący szkolenie

Monika Lewandowska
Monika Lewandowska

Monika Lewandowska to doświadczona projektantka i programistka baz danych Oracle, Oracle ACE Pro i członkini społeczności Symposium 42. Swoją przygodę z technologią zaczęła od Oracle 7 i od tamtej pory rozwija swoją pasję do wydajności i optymalizacji.

Jako prelegentka polskich i międzynarodowych konferencji (POUG, DOAG, UKOUG, OUGN, SIOUG, RMOUG i wiele innych) pokazuje, że SQL może być nie tylko poprawny - ale naprawdę szybki.

Ma wieloletnie doświadczenie w bankowości, telco i systemach kartowych. W pracy skupia się na zrozumieniu potrzeb klienta, prostych i przejrzystych rozwiązaniach oraz najwyższej jakości kodzie, wspieranym testami jednostkowymi (utPLSQL, Quest Code Tester).

Pracowała jako programistka, projektantka, analityk i lider techniczny - od zbierania wymagań po wdrożenia.

Specjalizuje się w wydajności: tam, gdzie inni mówią "działa", ona pyta "dlaczego tak wolno?" i znajduje rozwiązania, które realnie przyspieszają systemy.

Monika łączy pasję do wydajności z miłością do dalekich wypraw motocyklowych. Wyznaje zasadę, że życie (podobnie jak bazy danych) najlepiej smakuje przy dużej prędkości.

Program szkolenia

  1. Zapytania hierarchiczne
    • Modelowanie relacji rodzic-dziecko w jednej tabeli
    • Składnia START WITH i CONNECT BY (PRIOR)
    • Pseudokolumny: LEVEL, CONNECT_BY_ROOT, CONNECT_BY_ISLEAF
    • Funkcja SYS_CONNECT_BY_PATH - budowa pełnej ścieżki w drzewie
    • Sortowanie rodzeństwa (ORDER SIBLINGS BY)
    • Wykrywanie i obsługa cykli (NOCYCLE, CONNECT_BY_ISCYCLE)
    • Filtrowanie hierarchii - różnica między WHERE a warunkiem CONNECT BY
    • Recursive WITH (CTE rekurencyjne) jako alternatywa standardu SQL
    • Przypadki użycia: struktury organizacyjne, kategorie produktów, BOM
  2. Funkcje analityczne (okienkowe)
    • Różnica między funkcją agregującą a analityczną
    • Składnia OVER, PARTITION BY, ORDER BY
    • Definiowanie ramki okna: ROWS vs RANGE, BETWEEN … AND …
    • Funkcje rankingu: ROW_NUMBER, RANK, DENSE_RANK, NTILE
    • Dostęp do innych wierszy: LAG, LEAD, FIRST_VALUE, LAST_VALUE
    • Sumy i średnie kroczące oraz narastające
    • Funkcje rozkładu: PERCENT_RANK, CUME_DIST, PERCENTILE_CONT/DISC
    • Klauzula KEEP (FIRST/LAST) i agregacje warunkowe
    • Najczęstsze pułapki: domyślne ramki, NULL-e w PARTITION BY
  3. Wyrażenia regularne
    • Funkcje: REGEXP_LIKE, REGEXP_INSTR, REGEXP_SUBSTR, REGEXP_REPLACE, REGEXP_COUNT
    • Składnia POSIX, metaznaki, klasy znaków, kwantyfikatory
    • Grupy przechwytujące i wsteczne referencje
    • Modyfikatory: case-insensitive, multiline, dotall
    • Walidacja danych (NIP, PESEL, email, telefon)
    • Ekstrakcja danych z tekstu nieustrukturyzowanego
  4. Transakcje i blokady
    • ACID w Oracle i poziomy izolacji
    • COMMIT, ROLLBACK, SAVEPOINT
    • Read consistency i mechanizm UNDO
    • Blokady wierszy i tabel (SELECT FOR UPDATE, LOCK TABLE)
    • Tryby blokad: SHARE, EXCLUSIVE, ROW SHARE, ROW EXCLUSIVE
    • Wykrywanie i obsługa deadlocków
    • Diagnostyka: V$LOCK, V$SESSION, DBA_BLOCKERS, DBA_WAITERS
    • Transakcje autonomiczne (autonomous transactions)
  5. Technologia Flashback
    • Mechanizm UNDO i okno retencji (UNDO_RETENTION)
    • Flashback Query - AS OF TIMESTAMP, AS OF SCN
    • Flashback Versions Query - historia zmian wiersza w czasie
    • Flashback Table - przywrócenie całej tabeli do stanu sprzed N minut
    • Flashback Drop i Recycle Bin (PURGE, FLASHBACK TABLE TO BEFORE DROP)
    • Ograniczenia (DDL, retencja UNDO, brak supplemental log)
    • Scenariusze: cofanie błędnych UPDATE/DELETE bez restore z backupu
  6. Instrukcja MERGE (UPSERT)
    • Składnia: USING, ON, WHEN MATCHED THEN UPDATE, WHEN NOT MATCHED THEN INSERT
    • WHEN MATCHED THEN DELETE - usuwanie w jednym kroku
    • Warunkowe operacje z dodatkowym WHERE w klauzulach
    • Wydajność MERGE vs sekwencja IF EXISTS + UPDATE/INSERT
    • Synchronizacja tabel stage do target w procesach ETL
    • Konflikty unikalności i obsługa błędów
  7. Operator DECODE
    • Składnia i porównanie z CASE
    • Traktowanie NULL przez DECODE (DECODE uznaje NULL = NULL)
    • Zastosowanie do prostej translacji wartości w SELECT
    • Kiedy DECODE jest czytelniejszy, a kiedy lepiej sięgnąć po CASE
  8. Operator CASE
    • CASE proste (simple) i wyszukiwane (searched)
    • CASE w SELECT, WHERE, ORDER BY i GROUP BY
    • CASE z agregacjami - tabele krzyżowe ręcznie
    • Zagnieżdżone CASE i czytelność kodu
    • Zastępowanie złożonych IF-THEN-ELSE z PL/SQL
  9. Operatory EXISTS i NOT EXISTS
    • Semantyka EXISTS vs IN
    • Pułapka NOT IN przy wartościach NULL w podzapytaniu
    • Podzapytania skorelowane (correlated subqueries)
    • Porównanie wydajności: EXISTS vs JOIN vs IN
    • ANTI JOIN i SEMI JOIN w planach wykonania
  10. Rozszerzone agregacje
    • ROLLUP - subtotale i grand total w jednym zapytaniu
    • CUBE - wszystkie możliwe kombinacje agregatów (raporty OLAP)
    • GROUPING SETS - precyzyjnie wybrane poziomy grupowania
    • Funkcje GROUPING() i GROUPING_ID() - identyfikacja poziomu agregacji
    • Zastępowanie NULL czytelnymi etykietami w raportach
    • Zastosowania w raportach finansowych i hurtowniach danych
  11. Zarządzanie uprawnieniami do obiektów
    • GRANT i REVOKE - uprawnienia obiektowe i systemowe
    • Role - tworzenie, hierarchia, role domyślne i nie-domyślne
    • WITH GRANT OPTION i WITH ADMIN OPTION
    • Uprawnienia kolumnowe (column-level privileges)
    • Słowniki: ROLE_PRIVS, USER_TAB_PRIVS, USER_SYS_PRIVS, SESSION_ROLES
    • Najczęstsze błędy w nadawaniu uprawnień (over-privileged users)
  12. Widoki
    • Widoki proste (aktualizowalne) i złożone
    • WITH CHECK OPTION i WITH READ ONLY
    • Widoki jako warstwa bezpieczeństwa (row-level security)
    • Inline views i subquery factoring (klauzula WITH … AS)
    • Widoki a wydajność - czy widok spowalnia zapytanie?
    • Widoki edytowalne z INSTEAD OF triggers
  13. Widoki zmaterializowane
    • Różnica między widokiem a materialized view
    • Strategie odświeżania: ON COMMIT, ON DEMAND, harmonogram (DBMS_SCHEDULER)
    • Tryby refresh: COMPLETE, FAST, FORCE
    • Materialized View Logs - warunek FAST refresh
    • Query Rewrite - przezroczyste przekierowanie zapytań do widoku
    • Zastosowanie w hurtowniach danych i raportowaniu BI
  14. Sekwencje
    • Tworzenie sekwencji - parametry CACHE, NOCACHE, INCREMENT, CYCLE, ORDER
    • NEXTVAL i CURRVAL - kolejność wywołań
    • Sekwencje vs kolumny IDENTITY (Oracle 12c+)
    • Luki w numeracji - przyczyny (cache, rollback, RAC) i obsługa
    • Resetowanie i modyfikacja sekwencji w locie
    • Sekwencje w środowiskach klastrowych (RAC)
  15. Synonimy
    • Synonimy prywatne (CREATE SYNONYM)
    • Synonimy publiczne (CREATE PUBLIC SYNONYM)
    • Zastosowania: ukrywanie schematów, dostęp przez DB links, migracje
    • Konflikty nazw i kolejność rozwiązywania (private → public → schema)
    • Synonimy a uprawnienia
  16. Tabele przestawne PIVOT i UNPIVOT
    • Klasyczne podejście CASE WHEN … SUM() vs PIVOT
    • Składnia PIVOT z listą wartości statycznych
    • PIVOT z klauzulą XML - dynamiczne kolumny
    • UNPIVOT - transformacja kolumn w wiersze
    • Tabele krzyżowe w raportach sprzedażowych i finansowych
  17. Tabele tymczasowe
    • Global Temporary Tables (GTT) - definicja stała, dane sesyjne
    • Zakres danych: ON COMMIT DELETE ROWS vs PRESERVE ROWS
    • Private Temporary Tables (Oracle 18c+)
    • GTT vs Common Table Expressions vs widoki inline
    • Zastosowania w złożonych procesach ETL
    • Ograniczenia (brak transakcji rozproszonych, statystyki)
  18. Linki bazodanowe (Database Links)
    • Tworzenie połączenia do innej bazy Oracle (CREATE DATABASE LINK)
    • Składnia tabela@dblink, widoki nad linkami
    • Linki publiczne i prywatne, current user vs fixed user
    • Bezpieczeństwo i przechowywanie haseł (dba_db_links)
    • Optymalizacja zapytań rozproszonych (DRIVING_SITE, push predicates)
    • Ograniczenia: typy LOB, transakcje rozproszone, 2PC
  19. Indeksy
    • Typy indeksów: B-tree, Bitmap, Function-Based, Reverse, Compressed
    • Indeksy złożone - wpływ kolejności kolumn na użycie
    • Indeksy unikalne i pokrywające (index-only scan)
    • Indeksy partycjonowane: lokalne vs globalne
    • Stan UNUSABLE i jego konsekwencje
    • Kiedy indeks szkodzi: częste DML, mała tabela, niska selektywność
    • Statystyki indeksów (DBMS_STATS, histogramy)
    • Monitorowanie użycia indeksów (V$OBJECT_USAGE)
  20. Analiza planów wykonania
    • EXPLAIN PLAN i tabela PLAN_TABLE
    • DBMS_XPLAN.DISPLAY, DISPLAY_CURSOR, DISPLAY_AWR
    • AUTOTRACE w SQL*Plus i SQL Developer
    • Czytanie planu: kolejność operacji, koszt, kardynalność, czas
    • Operacje: FULL SCAN, INDEX RANGE/UNIQUE SCAN, HASH JOIN, NESTED LOOP, MERGE JOIN
    • Dlaczego CBO wybiera "zły" plan - statystyki, histogramy, bind peeking
    • Plany historyczne: V$SQL, V$SQL_PLAN, AWR
  21. Elementy tuningu SQL
    • Hints (wskazówki optymalizatora): USE_HASH, USE_NL, INDEX, FULL, PARALLEL, LEADING
    • Przepisywanie zapytań pod plan: EXISTS zamiast IN, JOIN zamiast podzapytania skorelowanego
    • SQL Trace i tkprof - analiza śladu wykonania
    • V$SESSION_LONGOPS - śledzenie długich operacji
    • SQL Plan Baselines i stabilność planów po zmianach
    • Bind variable peeking i Adaptive Cursor Sharing
    • Wpływ statystyk i histogramów na wybór planu
    • Diagnostyka wąskich gardeł: I/O, CPU, buffer cache, latch contention

Przeczytaj na naszym blogu

Zapisz się na termin gwarantowany: Szkolenie Zaawansowany Oracle SQL | wszystkie terminy gwarantowane
Pytania: [email protected], tel. 22 299 53 69

Dołącz do wydarzenia

Rodzaj Dostępne do Cena Liczba
Udział w szkoleniu online (1 osoba)

Cena za jednego uczestnika szkolenia online na żywo z trenerem.

27 czerwca 2027, 16:00 2 952,00 zł