Fazy przetwarzania zapytania zapytanie SQL. Optymalizacja zapytań. Klasyfikacja technik optymalizacji zapytań. Proces optymalizacji zapytań.



Podobne dokumenty
Optymalizacja zapytań część I

Wykład XII. optymalizacja w relacyjnych bazach danych

Optymalizacja w relacyjnych bazach danych - wybór wydajnej strategii obliczania wyrażenia relacyjnego.

Bazy danych wykład dwunasty. dwunasty Wykonywanie i optymalizacja zapytań SQL 1 / 36

Teoretyczne podstawy informatyki

Optymalizacja poleceń SQL Wprowadzenie

Optymalizacja zapytań część II

Podzapytania. SELECT atrybut_1, atrybut_2,... FROM relacja WHERE atrybut_n operator (SELECT atrybut_1, FROM relacja WHERE warunek

Technologie baz danych

Indeksy w bazach danych. Motywacje. Techniki indeksowania w eksploracji danych. Plan prezentacji. Dotychczasowe prace badawcze skupiały się na

Język SQL. Rozdział 6. Podzapytania Podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, operatory ANY, ALL i EXISTS.

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Wstęp Wprowadzenie do BD Podstawy SQL. Bazy Danych i Systemy informacyjne Wykład 1. Piotr Syga

Sylabus do programu kształcenia obowiązującego od roku akademickiego 2014/15

Optymalizacja zapytań. Proces przetwarzania i obliczania wyniku zapytania (wyrażenia algebry relacji) w SZBD

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Laboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Szkolenie autoryzowane. MS Tworzenie zapytań do Microsoft SQL Server Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje

RBD Relacyjne Bazy Danych

Bazy danych. Plan wykładu. Przetwarzanie zapytań. Etapy przetwarzania zapytania. Translacja zapytań języka SQL do postaci wyrażeń algebry relacji

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Podstawy języka SQL cz. 2

Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania.

Języki i środowiska przetwarzania danych rozproszonych

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2011/2012

Laboratorium nr 8. Temat: Podstawy języka zapytań SQL (część 2)

Podstawy Automatyki. Wykład 13 - Układy bramkowe. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA Relacyjny model danych. Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe

3. Podzapytania, łączenie tabel i zapytań

Hurtownie danych. Przetwarzanie zapytań. ZAPYTANIA NA ZAPLECZU

Podstawowy kurs z systemów baz danych / Jeffrey D. Ullman, Jennifer Widom. - wyd Gliwice, cop Spis treści.

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści

Optymalizacja poleceń SQL

BAZY DANYCH. Anomalie. Rozkład relacji i normalizacja. Wady redundancji

Fazy przetwarzania polecenia SQL. Faza parsingu (2) Faza parsingu (1) Optymalizacja poleceń SQL Część 1.

PRZEWODNIK PO PRZEDMIOCIE

Microsoft SQL Server Podstawy T-SQL

PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W NOWYM SĄCZU SYLABUS PRZEDMIOTU. Obowiązuje od roku akademickiego: 2011/2012

Podzapytania do tabel W miejscu w którym możemy użyć nazwy tabeli, możemy użyć podzapytania

Spis treści. Przedmowa

Wprowadzenie do języka SQL

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

1 Wstęp do modelu relacyjnego

T-SQL w Microsoft SQL Server 2014 i SQL Server 2012

Spis treści. Przedmowa Wykaz oznaczeń Wstęp Układy kombinacyjne... 18

Podstawy Automatyki. Wykład 13 - Układy bramkowe. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Język SQL. Rozdział 5. Połączenia i operatory zbiorowe

PODZAPYTANIE (SUBSELECT)

System zarządzania bazą danych SZBD (ang. DBMS -Database Management System)

Optymalizacja poleceń SQL Metody dostępu do danych

Plan wykładu. Elementy ERD BAZY DANYCH. Proces modelowania i implementacji bazy danych. Diagramy związków encji. SQL podzapytania

Autor: Joanna Karwowska

Optymalizacja. Plan wykonania polecenia SQL (1) Plan wykonania polecenia SQL (2) Rozdział 19 Wprowadzenie do optymalizacji poleceń SQL

Oracle11g: Wprowadzenie do SQL

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

Ćwiczenie 3 funkcje agregujące

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Indukowane Reguły Decyzyjne I. Wykład 3

Data Mining Wykład 9. Analiza skupień (grupowanie) Grupowanie hierarchiczne O-Cluster. Plan wykładu. Sformułowanie problemu

Technologie baz danych

Temat : SBQL 1 obiektowy język zapytań.

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL.

Laboratorium nr 10. Temat: Połączenia relacji

Relacyjne bazy danych. Podstawy SQL

BAZY DANYCH algebra relacyjna. Opracował: dr inż. Piotr Suchomski

Technologie baz danych

Zapytania, złączenia, optymalizacja zapytań, planowanie zapytań, optymalizacja indeksów.

Grupowanie i funkcje agregacji. Grupowanie z użyciem rollup

Model relacyjny. Wykład II

Wybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee

Grupowanie i funkcje agregacji

Bazy danych 8. Podzapytania i grupowanie. P. F. Góra

Systemy GIS Tworzenie zapytań w bazach danych

1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9.

PODSTAWY SZTUCZNEJ INTELIGENCJI

Bazy danych. Plan wykładu. Zalenoci funkcyjne. Wykład 4: Relacyjny model danych - zalenoci funkcyjne. SQL - podzapytania A B

1.5.3 Do czego słuŝą tymczasowe przestrzenie Zarządzanie plikami danych

K1A_W11, K1A_W18. Egzamin. wykonanie ćwiczenia lab., sprawdzian po zakończeniu ćwiczeń, egzamin, K1A_W11, K1A_W18 KARTA PRZEDMIOTU

Zapytania w języku T-SQL w Microsoft SQL Server 2014 i SQL Server 2012 / Itzik Ben-Gan, Dejan Sarka, Adam Machaniec, Kevin Farlee.

Cel przedmiotu. Wymagania wstępne w zakresie wiedzy, umiejętności i innych kompetencji 1 Język angielski 2 Inżynieria oprogramowania

Podstawowe zapytania SELECT (na jednej tabeli)

Przestrzenne bazy danych Podstawy języka SQL

Normalizacja baz danych

Optymalizacja zapytań

1.7. Eksploracja danych: pogłębianie, przeszukiwanie i wyławianie

SZKOLENIE: Administrator baz danych. Cel szkolenia

Metody Kompilacji Wykład 1 Wstęp

Język SQL. Rozdział 2. Proste zapytania

SQL (ang. Structured Query Language)

Programowanie komputerów

Wymagania: Konstrukcja prostych zapytań w języku SQL, umiejętność wykorzystania funkcji wierszowych i agregujących.

Bazy danych wykład trzeci. Konrad Zdanowski

Rozpatrzymy bardzo uproszczoną bazę danych o schemacie

Relacyjny model baz danych, model związków encji, normalizacje

METODY INŻYNIERII WIEDZY ASOCJACYJNA REPREZENTACJA POWIĄZANYCH TABEL I WNIOSKOWANIE IGOR CZAJKOWSKI

Metody Kompilacji Wykład 3

Transkrypt:

1 Fazy przetwarzania zapytanie SQL 2 Optymalizacja zapytań część I dekompozycja optymalizacja generacja kodu wyraŝenie algebry relacji plan wykonania kod katalog systemowy statystyki bazy danych wykonanie baza danych wynik Klasyfikacja technik optymalizacji zapytań 3 Proces optymalizacji zapytań 4 Moment przeprowadzenia optymalizacji statyczna optymalizacja zapytań dynamiczna optymalizacja zapytań Liczba optymalizowanych zapytań optymalizacja pojedynczego jednoczesna optymalizacja zbioru zapytań Transformacja do postaci drzewa wyraŝenia logicznego identyfikacja bloków Faza przepisywania zastosowanie transformacji algebraicznych w celu uzyskania tańszego planu wykonania Optymalizacja bloku zdefiniowanie porządku wykonywania połączeń Zakończenie optymalizacji wybór uszeregowania

Dekompozycja 5 Analiza 6 Dekompozycja : celem procesu dekompozycji jest transformacja wyraŝonego w języku wysokiego poziomu na wyraŝenie algebry relacji i weryfikacja syntaktycznej i semantycznej poprawności Etapy procesu dekompozycji analiza normalizacja analiza semantyczna upraszczanie restrukturyzacja Analiza syntaktyczna poprawności Weryfikacja poprawności atrybutów i relacji Transformacja do postaci reprezentacji wewnętrznej, bardziej adekwatnej do procesu dalszego przetwarzania E.position = manager Employees E E.deptId = D.deptId SELECT * FROM Employees E JOIN Departments D ON (E.deptId = D.deptId) WHERE E.position = 'manager' AND D.location = 'London'; D.location = 'London' Departments D zapytanie SQL drzewo algebry relacji Normalizacja 7 Analiza semantyczna (1) 8 Celem tego etapu jest przekształcenie wewnętrznej reprezentacji do znormalizowanej postaci koniunkcyjnej lub dysjunkcyjnej koniunkcyjna postać normalna (position = 'manager' OR salary > 1) AND deptid =1 dysjunkcyjna postać normalna (position = 'manager' AND salary > 1) OR deptid =1 Celem analizy jest odrzucenie niepoprawnie sformułowanych lub sprzecznych zapytań zapytanie jest niepoprawnie sformułowane jeŝeli jego elementy składowe nie prowadzą do generacji wyniku zapytanie jest sprzeczne jeŝeli jego predykaty nie mogą być spełnione przez Ŝadną krotkę (position = 'manager' AND position = 'asistant') OR salary > 1 salary > 1

Analiza semantyczna (2) 9 Analiza semantyczna (3) 1 Algorytmy oceny poprawności semantycznej zapytań istnieją tylko dla pewnej klasy zapytań nie zawierających dysjunkcji i negacji Rozwiązanie problemu zapytań niepoprawnie sformułowanych: skonstruuj graf połączenia relacji w którym wierzchołki odpowiadają relacjom, łuki odpowiadają operacjom połączenia jeŝeli graf nie jest spójny, to zapytanie jest (najprawdopodobniej) niepoprawnie sformułowane Graf połączeń atrybutów 1. dla kaŝdej referencji do atrybutu utwórz w grafie wierzchołek atrybutu lub wierzchołek 2. utwórz łuk skierowany pomiędzy wierzchołkami reprezentującymi operację połączenia 3. utwórz łuk skierowany pomiędzy wierzchołkiem atrybutu a wierzchołkiem (warunek selekcji) Wagi łuków łuk: a b: waga c, jeŝeli łuk reprezentuje warunek nierównościowy (a b+c) łuk: a: waga c, jeŝeli łuk reprezentuje warunek nierównościowy (a c) łuki reprezentujące połączenia: waga jeŝeli graf zawiera cykl, którego suma wag jest ujemna, to zapytanie jest sprzeczne Analiza semantyczna (4) 11 Analiza semantyczna (5) 12 SELECT p.proprertyid, p.street FROM Client c, Viewing v, PropertyForRent p WHERE c.clientno = v.clientno AND c.maxrent >= 5 AND c.preftype = 'flat AND p.ownerno = 'CO93' c v p graf połączeń relacji Zapytanie jest źle sformułowane brakuje warunku połączeniowego v.propertyno = p.propertyno SELECT p.proprertyid, p.street FROM Client c, Viewing v, PropertyForRent p WHERE c.clientno = v.clientno AND v.propertyno = p.propertyno AND c.maxrent >= 5 AND c.preftype = 'flat' AND c.maxrent < 2; c.maxrent 2 c.peftype -5 flat -flat graf połączeń atrybutów c.clientno v.propertyno v.clientno p.propertyno

Upraszczanie 13 Budowa bloków 14 Celem jest identyfikacja wyraŝeń redundantnych, eliminacja wspólnych podwyraŝeń, i transformacja do równowaŝnej postaci ułatwiającej dalsze przekształcanie Początkowa optymalizacja polega na zastosowaniu znanych reguł algebry relacji: p (p) = p p (false) = false p (true) = p p ( p) = false p (p q) = p p (p) = p p false = p p true = true p ( p) = true p (p q) = p Transformacje algebraiczne Model kosztowy estymacja kosztów i rozmiarów częściowych wyników Znajdowanie najlepszego drzewa operacji połączenia podejście bottom-up podejście w stylu systemu R programowanie dynamiczne Optymalizacja - problemy 15 Operacje 16 Problem optymalizacji zapytań jest bardzo trudny Konieczność uwzględniania bardzo wielu czynników klasyczny problem optymalizacyjny optymalizacja zapytań nie została jeszcze rozwiązana MoŜliwe kierunki poprawy efektywności: nowe reguły algebraicznej transformacji zapytań nowe metody znajdowanie kolejności wykonywania operacji połączenia nowe metody szacowania kosztów i rozmiarów wyników pośrednich Operacja skanowania skanowanie indeksu skanowanie relacji Selekcja Projekcja Połączenie nested loop sort-merge hash-join Grupowanie i agregacja operacje unarne staramy się przesunąć w dół drzewa operacje binarne staramy się przesunąć w kierunku korzenia drzewa

Prawa algebry relacji (1) 17 Prawa algebry relacji (2) Reguły dotyczące operacji selekcji: 18 reguły przemienności i łączności operacji R U S = S U R, R U (S U T) = (R U S) U T R S = S R, R (S T) = (R S) T R >< S = S >< R, R >< (S >< T) = (R >< S) >< T reguły dystrybutywności R >< (S U T) = (R >< S) U (R >< T) kaskada selekcji C AND C (R) = C ( C (R)) = C (R) C (R) C OR C (R) = C (R) U C (R) C (R >< S) = C (R) >< S jeŝeli C zawiera tylko atrybuty relacji R C (R >< S) = C (R) >< C (S) C (R S) = C (R) S C (R U S) = C (R) U C (S) C (R S) = C (R) S Prawa algebry relacji (3) 19 Prawa algebry relacji (4) 2 Komutatywność selekcji i projekcji π M ( C (R)) = C (π M (R)) reguły dotyczące projekcji π M (R >< S) = π N (π P (R) >< π Q (S)), gdzie N,P,Q M π M (π N (R)) = π M (R), gdzie M N Przykład: R(A,B,C,D) S(E,F,G) C=3 (R S) =? (R)? S = A=5 AND G=9 (R S) =? (R)??? (S) Przykład: R(A,B,C,D) S(E, F, G) π A,B,G (R S) = π? (π? (R) π? (S))

pod SELECT Emp.Name FROM Emp WHERE Emp.Age < 3 AND Emp.Dept# IN ( SELECT Dept.Dept# FROM Dept WHERE Dept.Loc = 'Seattle' AND Emp.Emp# = Dept.Mgr ) 21 zagnieŝdŝone SELECT DISTINCT p.name, p.maker FROM Products p AND p.price >= ALL ( SELECT q.price FROM Products q WHERE p.maker = q.maker AND q.color = 'blue' ) SELECT p.name, p.maker FROM Products p MINUS SELECT p.name, p.maker FROM Products p JOIN Products q ON ( p.maker = q.maker ) AND q.color = 'blue' AND p.price < q.price 22 SELECT Emp.Name FROM Emp JOIN Dept ON (Emp.Dept# = Dept.Dept#) WHERE Emp.Age < 3 AND Dept.Loc = 'Seattle' AND Emp.Emp# = Dept.Mgr SELECT DISTINCT p.name, p.maker FROM Products p AND p.price < ANY SELECT DISTINCT p.name, p.maker ( SELECT q.price FROM Products p JOIN Products q FROM Products q ON ( p.maker = q.maker ) WHERE p.maker = q.maker AND q.color = 'blue' ) AND q.color = 'blue' AND p.price < q.price agregacja i połączenie 23 wstawienie operacji 24 Schemat: produkty(produkt_id, nazwa, cena) sprzedaz(sprzedaz_id, data, produkt_id, ilość, data) Drzewo : GROUP BY(nazwa) (data Q2,2) (nazwa,'keczup') GROUP BY(produkt_id) (data Q2,2) (nazwa,'keczup') Schemat: produkty(produkt_id, kategoria_id, nazwa, cena) sprzedaz(sprzedaz_id, data, produkt_id, ilość, data) Drzewo : GROUP BY(kategoria_id) (data Q2,2) (nazwa,'keczup') GROUP BY(kategoria_id) GROUP BY(produkt_id) (data Q2,2) (nazwa,'keczup')

przesuwanie predykatów (1) 25 przesuwanie predykatów (2) 26 Schemat nauczyciele(n_id, nazwisko, stanowisko, wiek) wykłady(w_id, n_id, dzień, przedmiot) wykłady w_id=1 nazwisko n_id=n_id stanowisko = adiunkt nauczyciele w_id=1 wykłady nazwisko n_id=n_id stanowisko = adiunkt wykładowcy Przesuwamy predykaty selekcji w kierunku liści drzewa mniej krotek weźmie udział w operacji połączenia. Wada? Dla kaŝdego wykładu znajdź wiek najstarszego wykładowcy SELECT przedmiot, MAX(wiek) FROM wyklady w JOIN nauczyciele n ON (w.n_id = n.n_id) GROUP BY przedmiot HAVING MAX(wiek) > 4 SELECT przedmiot, MAX(wiek) FROM wyklady w JOIN nauczyciele n ON (w.n_id = n.n_id) WHERE n.wiek > 4 GROUP BY przedmiot Zaleta: minimalizacja wyniku wykonania operacji połączenia Wada: wymaga zastosowania reguł specyficznych dla operatorów grupowania i agregacji podsumowanie 27 Redukcja rozmiarów relacji 28 MoŜna opracować bardzo wiele poprawnych semantycznie reguł przepisywania zapytań Celem reguł jest minimalizacja kosztu wykonania czy kaŝda reguła minimalizuje koszt? szczególnie waŝne dla duŝych złoŝonych zapytań Problem wyboru reguł transformacji musi być uzupełnione o moduł szacowania kosztu wykonania planu danego Nie zawsze jest moŝliwe przetransformowanie zapytań w taki sposób, aby nie zawierało podzapytań (szczególnie dla podzapytań skorelowanych) MoŜliwość uŝycia sekwencji operacji półpołączenia w celu redukcji rozmiarów relacji uczestniczących w podzapytaniu szczególnie przydatna w optymalizacji zapytań rozproszonych