Optymalizacja SQL: Pisanie wydajnych zapytań

Najbliższe terminy tego szkolenia
Standardy JSystems
- Wszyscy nasi trenerzy muszą być praktykami i osiągać średnią z ankiet minimum 4.75 na 5. Nie ma wśród nas trenerów-teoretyków. Każdy trener JSystems ma bogate doświadczenie komercyjne w zakresie tematów z których prowadzi szkolenia.
- Wszystkie szkolenia mają format warszatowy. Każde zagadnienie teoretyczne jest poparte rzędem warsztatów w ściśle określonym formacie.
- Terminy gwarantowane na 100%. Jeśli jakiś termin jest oznaczony jako gwarantowany, oznacza to że odbędzie się nawet jeśli część grupy wycofa się z udziału. Ryzyko ponosimy my jako organizator.
- Do każdego szkolenia które wymaga jakiegokolwiek oprogramowania dostarczamy skonfigurowane, gotowe hosty w chmurze. Dzięki temu uczestnik nie musi nic instalować na swoim komputerze (i bić się z blokadami korporacyjnymi). Połączenie następuje przez zdalny pulpit lub SSH - w zależności od szkolenia.
Program szkolenia
- Co to jest SQL?
- Jak skonstruowane jest zapytanie SQL?
- Jaka jest kolejność wykonywania operacji w SQL?
- Jak przebiega proces przetwarzania zapytania SQL?
- Kto decyduje o sposobie realizacji zapytania SQL?
- Jak pisać wydajne zapytania SQL?
- Gdzie są moje dane?
- Jak Oracle przechowuje dane?
- W jaki sposób Oracle odczytuje dane?
- Pełny odczyt tabeli
- Odczyt za pomocą indeksu
- Co to jest indeks?
- Kiedy warto stosować index B-tree?
- Kiedy warto stosować indeks bitmapowy?
- Do czego służy indeks funkcyjny?
- Kiedy warto stosować indeksy?
- W jaki sposób tabele mogą być łączone?
- Nested loops
- Merge
- Hash joins
- Co to jest plan wykonania?
- Jak wygenerować plan wykonania?
- Co to jest koszt zapytania?
- Co to jest Cardinality/Rows?
- Co to są predykaty i co można z nich wyczytać?
- W jakiej kolejności czytać plan wykonania?
- Jak sprawdzić, w jaki sposób zostały tabele złączone?
- Jak wydajnie wyszukiwać dane z tabeli?
- Jak efektywnie znaleźć pojedynczy wiersz?
- Jak efektywnie wyszukiwać po zakresie?
- Jak zoptymalizować odczyt z użyciem indeksu?
- Kiedy stosować indeks a kiedy czytać całą tabelę?
- Czy mogę użyć dwa indeksy przy wyszukiwaniu z jednej tabeli?
- Jaki wpływ na wydajność mają operatory AND i OR?
- Jak pisać efektywne zapytania Top-N?
- Jak efektywnie wyszukiwać wiersze z wartościami NULL?
- Jak wyszukiwać po kolumnie o niskim zróżnicowaniu wartości np. Y/N?
- Jak sprawdzić, czy istnieje rekord?
- Jakie są popularne metody optymalizacji zapytań?
- Common Table Expression
- Result Cache
- Jak efektywnie wyliczać agregaty?
- Jak wykorzystać indeks do wyliczeń agregatów?
- Jak filtrować po wynikach agregacji?
- Jak sortować wyniki agregacji?
- Czy można zastąpić GROUP BY funkcjami analitycznymi?
- Czy CTE można zastosować do optymalizacji agregacji?
- Jak wykonywać operacje na zbiorach?
- Jak utworzyć tabelę na podstawie wyników zapytania?
- Jak usunąć duplikaty z wyników zapytania?
- Jak efektywnie połączyć zbiory?
- Jak znaleźć różnicę między zbiorami?
- Jak znaleźć część wspólną zbiorów?
- Jak wyszukać różnicę w zbiorach?
- Jak zoptymalizować łączenia tabel?
- Czy kolejność łączenia tabel ma znaczenie?
- Które złączenie tabel jest najwydajniejsze?
- Czy Oracle wybrał dobrą metode złączenia tabel?
- Jak poprawić efektywność nested loop?
- Kiedy warto używać złączenia merge join a kiedy hash join?
- Jak uniknąć iloczynu kartezjańskiego?
- Jaki wpływ na wydajność mają OUTER JOINS?
- Jak efektywnie używać podzapytań?
- Co to są podzapytania skorelowane?
- Co to są podzapytanie inline?
- Co to są zapytania skalarne?
- Co to jest Scalar Subquery Caching?
- Jakie są posoby optymalizacji podzapytań?
- Czy się różni podzapytanie EXISTS od IN?
- Czym się różni podzapytanie NOT EXISTS od NOT IN?
- Jak stosować widoki w zapytaniach?
- Czy mogę wywoływać funkcje z zapytania SQL?
- Czym różni się funkcja wbudowana od funkcji PL/SQL?
- Co to jest CONTEX SWITCHING?
- Czy mogę wykorzystać CTE do wywołań funkcji w SQL?
- Czy mogę wykorzystać "SCALAR SUBQUERY CACHING" do optymalizacji wywołań funkcji w SQL?
- Jak wykorzystać indeks funkcyjny do optymalizacji wywołań funkcji?
- Co to są partycje?
- Jak efektywnie skorzystać z partycji do wyszukiwania danych?
- Czy na partycjonowanej tabeli mogę korzystać z indeksów?
- Czym się różnią indeksy globalne od lokalnych?
- Dlaczego Oracle nie używa mojego indeksu?
- Ile wierszy zwraca zapytanie?
- Jakie jest zróżnicowanie wartości w kolumnie?
- Czy kolumna może mieć wartość null?
- Czy w zapytaniu użyty jest inny indeks?
- Czy na kolumnie jest funkcja?
- Czy na kolumnie jest wykonywana operacja matematyczna?
- Czy na kolumnie wykonywana jest konkatenacja?
- Czy kolumna jest na pierwszym miejscu w indeksie?
- Czy użyty jest operator LIKE?
- Czy w warunku WHERE użyta jest negacja?
- Czy kolumna i wartość są tego samego typu?
- Czy zapytanie zwraca tyle wierszy ile jest estymowane w planie wykonania?
- Ile tabel bierze udział w zapytaniu?
- Czy warunki WHERE są skomplikowane?
- Jaki jest Clustering Factor indeksu i co to w ogóle jest?
- Najczęstsze problemy
- Nieprawidłowe statystyki
- Brak warunków złączenia
- Nieznajomość wymagań
- Nieznajomość struktury i danych
- Duża ilość zapytań
- Niejawna konwersja
- Zbyt duże zapytania
- Błędy w zapytaniu
- Jak pisać wydajne zapytania SQL?
- Refactoring zapytań SQL
Opis szkolenia
Szkolenie odbywa się na żywo z udziałem trenera. Nie jest to forma kursu video!O szkoleniu w skrócie
Szkolenie Optymalizacja SQL dla każdego to kurs skierowany do osób, które chcą nauczyć się pisać wydajne zapytania SQL bez konieczności zagłębiania się w szczegóły techniczne czy administracyjne. Kurs ma charakter warsztatowy, co pozwala uczestnikom na praktyczne opanowanie umiejętności pisania efektywnych zapytań SQL.
W trakcie szkolenia omawiane będą kluczowe aspekty, takie jak efektywne filtracja danych wykorzystująca istniejące struktury (indeksy), wydajne agregacje czy efektywne korzystanie z podzapytań. Zapoznamy się także z różnymi rodzajami indeksów oraz poznamy możliwe przyczyny ich niewykorzystania. Uczestnicy dowiedzą się także, co to jest plan wykonania, jak go interpretować i jak go wykorzystać do napisania wydajnego zapytania.
Kurs zawiera liczne ćwiczenia praktyczne, które umożliwiają uczestnikom szybkie przyswajanie wiedzy i efektywne zastosowanie jej w codziennej pracy.
Korzyści ze szkolenia
Po ukończeniu kursu uczestnik będzie potrafił:
- wydajnie wyszukiwać dane
- wydajnie agregować dane
- pisać zapytania wywołujące funkcje pl/sql
- wykonywać operacje na zbiorach
- efektywnie używać podzapytań
- wykorzystać CTE do pisania wydajnych zapytań
- efektywnie stosować indeksy
- wygenerować i zinterpretować plan wykonania zapytania
- przeanalizować przyczyny niewykorzystania indeksu
Dla kogo?
Szkolenie przeznaczone jest dla osób chcących nauczyć się piasać wydajne zapytania SQL bez konieczności zagłębiania się w detale techniczne. Adresowane jest tak dla początkujących programistów jak i dla osób piszących zapytania SQL ale nie związanych z pracami programistycznymi np. dla Analityków, Testerów czy Kierowników Projektów.
Wymagania
Kurs jest przeznaczony dla osób znających podstawy SQL takie jak: złączenia tabel, grupowanie GROUP BY, pozdzapytania.
Stanowisko robocze

Do tego szkolenia każdy uczestnik otrzymuje dostęp do indywidualnej wirtualnej maszyny w chmurze. Ma ona zainstalowane i skonfigurowane wszystko co potrzebne do realizacji szkolenia. Maszyna będzie dostępna przez cały okres szkolenia.
Gdy na jakiś termin zgłosi się minimalna liczba osób, termin oznaczamy jako gwarantowany.
Jeśli jakiś termin oznaczony jest jako gwarantowany to oznacza to, że na 100% się odbędzie we wskazanym czasie i miejscu.
Nawet gdyby część takiej grupy zrezygnowała lub przeniosła się na inny termin, raz ustalony termin gwarantowany takim pozostaje.
Ewentualne ryzyko ponosimy my jako organizator.
Przejdź do terminów tego szkolenia

Sprawdź, co mówią o nas ci, którzy nam zaufali
Trenerzy kategorii Oracle













