Strojenie SQL w bazie Oracle

1 Strojenie SQL w bazie OracleAutor: Marcin Malinowski ...
Author: Świętosław Bułka
0 downloads 2 Views

1 Strojenie SQL w bazie OracleAutor: Marcin Malinowski

2 Agenda Rodzaje oracle’owych optymalizatorów Optymalizator regułowyOptymalizator kosztowy Wybór optymalizatora Kilka częstych błędów Plan zapytania Wskazówki optymalizatora zapytań Pytania

3 Rodzaje optymalizatorówOptymalizator regułowy (rule –based optimizer) Optymalizator (cost-based optimizer)

4 Optymalizator regułowyOparty na zestawie 20 reguł (tzw. „Złote reguły”) Brak czynników zewnętrznych (rozmiar tabeli, selektywność indeksów) Przykładowe reguły: 1. Rowid = constant 5.Kolumna z indeksem unikatowym = constant 20. Full scan tabeli

5 Optymalizator kosztowyBardziej wyrafinowany i elastyczny Działanie: Analiza składniowa Wszystkie plany zapytań Szacowanie kosztu Wybór najlepszego planu

6 Optymalizator kosztowy cd.Statystyki oraz metody ich zbierania: Analyze table Dbms_stats

7 Wybór optymalizatora Zdecydowanie kosztowy Dlaczego:Krótszy czas kodowania Programista nie musi znać reguł Większa uniwersalność, więcej produktów Regułowy nie rozwijany Wiele funkcji nie działa dla regułowego

8 Kilka częstych błędów Błędnie zapisane zapytania (bez indeksu)Brak indeksów Niepotrzebne sortowania Widoki oparte na widokach Zbyt wiele złączeń Błędne ustawienie konfiguracyjne

9 Plan zapytania Polecenie explain plan Przykłady Nested loopsHash_joins

10 Wskazówki optymalizatoraWykorzystanie wskazówek (ang. Hints) Przykłady wskazówek index(index_name, table_name) First_rows Full Use_hash

11 Pytania Dziękuję