Optymalizacja zapytań Firebird
Optymalizacja zapytań Firebird obejmuje sposób wykonywania instrukcji SELECT: plany, statystyki, metody dostępu, wzorce strojenia oraz sposoby wykrywania wolnych zapytań za pomocą MON$ i Trace API.
Program kursu
-
Wydajność zapytań SELECT - jak wykonywane jest zapytanie
- Podejście klient-serwer
- Przygotowanie, generowanie planu, wykonanie, pobieranie, buforowanie
-
Statystyki wykonania
- Odczyty, zapisy, pobrania, czas
- Pamięć podręczna bazy danych, dysk, CPU
- Jak śmieci wpływają na wykonanie
- Trafienia w pamięci podręcznej (Classic vs SuperServer)
-
Metody dostępu / ścieżki danych
- Skan NATURAL
- Wyszukiwanie INDEX: drzewa B, wskaźniki rekordów, kierunek, przykłady
- Wymuszone użycie indeksu, bitowa suma indeksów
- Kardynalność tabeli i selektywność indeksu
- Wyłączanie indeksów w WHERE
- Indeks ORDER vs SORT (ustawienia
firebird.conf) - Wyłączanie indeksów w ORDER BY / GROUP BY
- Plany w procedurach składowanych i widokach
-
Strojenie zapytań
- Jak czytać PLAN
- Dostrajanie optymalizatora
WHERE FIELD IN (…)- LIKE, CONTAINING, STARTING WITH
- JOIN: niejawne vs jawne, złe złączenia, LEFT/RIGHT, self-joins
- UPDATE + SELECT
- MAX, MIN, COUNT, AVG, SUM
- IN vs EXISTS vs MERGE
WHERE (X AND Y) OR (K AND N)
-
Śledzenie wolnych zapytań za pomocą MON$ i Trace API
- Czym są MON$ i Trace
- Pola MON$, które mają znaczenie
- Parametry i wyniki Trace API
- Narzędzia (w tym monitorowanie HQbird)