Wykład XII. optymalizacja w relacyjnych bazach danych



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

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

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

Optymalizacja zapytań część I

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

Optymalizacja poleceń SQL Wprowadzenie

Teoretyczne podstawy informatyki

Systemy GIS Tworzenie zapytań w bazach danych

Model relacyjny. Wykład II

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

Administracja i programowanie pod Microsoft SQL Server 2000

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

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

Optymalizacja poleceń SQL

Optymalizacja poleceń SQL Metody dostępu do danych

1 Wstęp do modelu relacyjnego

Technologie baz danych

Oracle11g: Wprowadzenie do SQL

Model relacyjny. Wykład II

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

Technologie baz danych

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

Indeksowanie w bazach danych

Statystyki (1) Optymalizacja poleceń SQL Część 2. Statystyki (2) Statystyki (3) Informacje, opisujące dane i struktury obiektów bazy danych.

SQL Structured Query Language

Autor: Joanna Karwowska

SQL Structured Query Language

Optymalizacja poleceń SQL Statystyki

RBD Relacyjne Bazy Danych

3. Podzapytania, łączenie tabel i zapytań

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

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Przestrzenne bazy danych Podstawy języka SQL

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

Wstęp do SQL. copyright: KGiIS WGGiOŚ AGH

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

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

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

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

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

Wprowadzenie do baz danych

Microsoft SQL Server Podstawy T-SQL

PLAN WYKŁADU BAZY DANYCH ETAPY PRZETWARZANIA ZAPYTANIA OPTYMALIZACJA ZAPYTAŃ

Opisy efektów kształcenia dla modułu

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

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

Relacyjne bazy danych. Podstawy SQL

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

PODSTAWY BAZ DANYCH. 15. Optymalizacja zapytań. 2009/ Notatki do wykładu "Podstawy baz danych"

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

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

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

Definicja bazy danych TECHNOLOGIE BAZ DANYCH. System zarządzania bazą danych (SZBD) Oczekiwania wobec SZBD. Oczekiwania wobec SZBD c.d.

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

Baza danych. Modele danych

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

Podstawowe zapytania SELECT (na jednej tabeli)

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

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

Relacyjne bazy danych. Podstawy SQL

SQL (ang. Structured Query Language)

Hurtownie danych. Przetwarzanie zapytań. ZAPYTANIA NA ZAPLECZU

Złączenie CROSS JOIN jest to tzw. złączenie krzyżowe, którego ogólna postać wygląda następująco:

Autor: Joanna Karwowska

Język SQL. Rozdział 2. Proste zapytania

PRZEWODNIK PO PRZEDMIOCIE

Podstawy języka SQL cz. 2

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji

a) Polecenie: Wyświetl wszystkie rekordy z tabeli Pracownicy (wszystkie atrybuty)

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Przygotowanie do egzaminu. część I

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

PRZEWODNIK PO PRZEDMIOCIE

P o d s t a w y j ę z y k a S Q L

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Technologie baz danych

PODZAPYTANIE (SUBSELECT)

Bazy danych 2013/14. Egzamin. (5 pkt). Baza danych przechowuje w relacji binarnej G graf skierowany.

Język SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych

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

SQL SERVER 2012 i nie tylko:

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

Zapytania z ograniczeniem czasowym w Oracle

Tworzenie zapytań do Microsoft SQL Server

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

Spis treści. Przedmowa

Plan wykładu. Problemy w bazie danych. Problemy w bazie danych BAZY DANYCH

SQL Structured Query Language

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

Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni

Bazy danych 1. Wykład 5 Metodologia projektowania baz danych. (projektowanie logiczne)

Systemy OLAP I. Krzysztof Dembczyński. Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska

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

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

E.14 Bazy Danych cz. 14 SQL Podzapytania

Bazy danych. Dr inż. Paweł Kasprowski

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

Transkrypt:

Optymalizacja wyznaczenie spośród dopuszczalnych rozwiązań danego problemu, rozwiązania najlepszego ze względu na przyjęte kryterium jakości ( np. koszt, zysk, niezawodność ) optymalizacja w relacyjnych bazach danych wybór wydajnej strategii obliczania wyrażenia relacyjnego konieczna w systemach relacyjnych możliwa jest automatyczna optymalizacja w systemach relacyjnych " ręczna" optymalizacja w systemach nierelacyjnych optymalizacja w systemach bazodanowych to nie tylko optymalizacja zapytań Zalety automatycznego optymalizatora ( dla programisty ) posiada więcej informacji o aktualnym stanie bazy danych przeprowadza reoptymalizację może rozważyć więcej strategii optymalizacyjnych w krótszym czasie udostępnia w tani i wydajny sposób szeroki zestaw funkcjonalności przykład: podaj nazwy Dostawców dostarczających część AZ234 tabela Dostawcy (100 wierszy ) id_dostawcy nazwa adres 9191 MaxBuild Słowackiego 5, Kraków 10115 CorpExport Matejki 12, Warszawa......... tabela Dostawy ( 10000 wierszy ) nr_dostawy id_dostawcy id_czesci... 0003 9191 HOM89... 0005 10115 AZ234............... SELECT nazwa FROM dostawy JOIN dostawcy USING (id dostawcy) WHERE id_czesci = 'AZ234' ; wyrażenie algebry relacyjnej: 1

warunek złączenia: Bez optymalizacji: 1. złączenie tabel dostawy i dostawcy ( odczyt dla każdej dostawy tabeli dostawcy ) 2. restrykcja wyniku kroku pierwszego do wierszy z częścią o nazwie AZ234 3. rzutowanie wyniku kroku 2 na atrybut nazwa Z optymalizacją: 1. restrykcja tabeli dostaw do wierszy z częścią o nazwie AZ234 ( wczytanie tabeli dostaw) 2. złączenie tabeli wynikowej z kroku pierwszego i tabeli dostawcy 3. rzutowanie wyniku kroku 2 na atrybut nazwa Formy optymalizacji: statyczna ( polega na znalezieniu najlepszego planu wykonania zapytania, przed rozpoczęciem wykonywania zapytania. W trakcie realizacji zapytania plan wykonania nie ulega już zmianie ) dynamiczna ( bardziej kosztowna ) pojedynczego zapytania ( systemy komercyjne zapewniają jedynie optymalizację pojedyńczego zapytania ) zbioru zapytań Popularne metody optymalizacji metody dotyczące fizycznej organizacji danych metody oparte na przepisywaniu metody wykorzystujące wyspecjalizowane algorytmy dla niektórych operatorów metody wybierające najtańszy plan realizacji zapytania zapamiętywanie wyników poprzednio wyliczonych zadań równoległe wykonywanie zapytań Fazy przetwarzania zapytania dekompozycja zapytania optymalizacja zapytania ( transformacja, uproszczenie i wybór optymalnego planu wykonania z wykorzystaniem statystyk bazy danych ) generowanie kodu wykonanie zapytania 2

Etapy optymalizacji transformacja zapytania do postaci wewnętrznej dekompozycja do postaci wyrażenia algebry relacyjnej wybór kandydatów do procedur niskiego poziomu tworzenie planów realizacji zapytania wybór najtańszego rozwiązania Transformacja składowe transformacji: analiza zapytania normalizacja zapytania analiza semantyczna zapytania upraszczanie zapytania restrukturyzacja zapytania Analiza syntaktyczna analiza poprawności syntaktycznej weryfikacja poprawności atrybutów i relacji budowa drzewa logicznego 3

Normalizacja zapytania celem tego etapu jest przekształcenie wewnętrznej reprezentacji zapytania do znormalizowanej postaci koniunkcyjnej lub dysjunkcyjnej. ( dowolny predykat w SQL można przekształcić do jednej z dwóch postaci ) przykład: postać koniunkcyjna: ( id_czesci = AZ234 ٨ id_dostawcy = 9191 ) ٧ id_czesci = AZ235 do ( id_czesci = AZ234 ٧ id_czesci = AZ235 ) ٨ ( id_dostawcy = 9191 ٧ id_czesci = AZ235 ) postać dysjunkcyjna ( id_czesci = AZ234 ٧ id_czesci = AZ235 ) ٨ id_dostawcy = 9191 do ( id_czesci = AZ234 ٨ id_dostawcy = 9191 ) ٧ ( id_czesci = AZ235 ٨ id_dostawcy = 9191 ) Analiza semantyczna odrzucenie niepoprawnie sformułowanych lub sprzecznych warunków ( zawsze zwracających wartość FALSE algorytmy oceny poprawności semantycznej istnieją jedynie dla zapytań nie zawierających dysjunkcji i negacji algorytmy te opierają działanie na grafie połączeń relacji i grafie połączeń atrybutów Upraszczanie zapytania identyfikacja i eliminacja wyrażeń nadmiarowych eliminacja wspólnych podwyrażeń zastosowanie reguł algebry relacyjnej

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 Przepisywanie zapytań - użycie transformacji algebraicznych w celu uzyskania " lepszego " planu wykonania przepisywanie zapytań realizuje się dla: podzapytań agregacji połączeń przykłady: SELECT id_czesci FROM dostawy WHERE id_dostawcy IN ( SELECT id_dostawcy FROM dostawcy WHERE adres LIKE '%KRAKÓW%' AND stan_mag - dostawy.sprzedano > 1000) ; SELECT id_czesci FROM dostawy JOIN dostawcy USING (id_dostawcy) WHERE adres LIKE '%KRAKÓW%' AND stan_mag - sprzedano > 1000; SELECT rok, count(*) FROM studenci GROUP BY rok, Extract(MONTH FROM data_urodzenia) HAVING Extract( MONTH FROM data_urodzenia) = 5; SELECT rok, count(*) FROM studenci WHERE Extract(MONTH FROM data_urodzenia) = 5 GROUP BY rok; SELECT nazwisko, imiona FROM studenci JOIN wyniki_zaliczen ON (nr_albumu = nr_indeksu) WHERE rok=2 AND gr_dziekan = 1 AND kolokwium1 > 4; 5

Realizacja złączeń złączenia są jednym z istotnych czynników wpływających na wydajność w relacyjnych bazach danych. Nie zawsze przepisywanie złączeń przyniesie lepszy efekt. Dla złączeń stosuje się specjalne algorytmy, np: nested-loop sort-merge hash-join Nested-loop - metoda polegająca na przejściu po kolei przez wszystkie wiersze pierwszej z łączonych tabel (tzw. tabeli zewnętrznej), dla każdego odczytanego wiersza następuje porównanie z wszystkimi wierszami drugiej tabeli ( tabeli wewnętrznej). Wiersze spełniające warunek złączenia są konkatenowane i zwracane jako wynik. Algorytm jest korzystny dla małych tabel zewnętrznych i tabel wewnętrznych zaopatrzonych w indeks na kolumnie złączenia. Sort_merge - metoda polegająca na posortowaniu wszystkich wierszy obu łączonych tabel względem kolumn użytych w warunku złączenia, a następnie równoległym przechodzeniu przez poszczegółne wiersze i dopasowywaniu ich do siebie. Wiersze spełniające warunek złączenia są konkatenowane i zwracane jako wynik. Metoda ta jest stosowana przez system Oracle jedynie dla połączeń równościowych. Hash-join - algorytm wykorzystuje funkcję haszującą, przechodzi przez wszystkie wiersze obu tabel. Pierwsze przejście buduje tablicę haszowania dla tabeli zewnętrznej na kolumnie złączenia ( elementy tej tablicy zawierają wartości kolumny złączenia i wskaźnik do wiersza, w którym wartość się znajduje). Drugie przejście stosuje funkcję haszującą dla kolumny złączenia w tabeli wewnętrznej i sprawdza czy jej wartość koliduje z już zapisanymi wartościami (czyli czy wartości się pokrywają).wiersze spełniające warunek złączenia są konkatenowane i zwracane jako wynik. Algorytm nie wymaga sortowania, korzystny dla dużych tabel.

Szacowanie kosztu dla każdego planu zapytania szacowany jest: koszt wykonania każdego operatora w planie zapytania rozmiar wyniku wykonania każdego operatora Statystyki na etapie wyboru procedur niskiego poziomu i tworzenia planów realizacji zapytania wykorzystywane są statystyki prowadzone przez system baz danych. Są to dla: tabel (liczebność, liczba stron, itp) kolumn ( liczba różnych wartości w kolumnie, liczba wystąpień NULL, rozkład danych ) indeksów ( wysokośc, maksymalna i minimalna wartość klucz indeksu ) Niektóre systemy przechowują histogramy wartości atrybutów. Optymalizacja proces doboru odpowiednich struktur danych, metod dostępu i operacji w celu zminimalizowania kosztu realizacji polecenia SQL wykonywana przez wyspecjalizowany moduł SZBD- optymalizator poleceń rodzaje: regułowa: oparta na rankingu metod dostępu do struktur danych obecnie niestosowana kosztowa oparta na szacowaniu kosztu wykonania wszystkich potencjalnych sposobów wykonania polecenia SQL ( wybiera najtańszy, wykorzystuje statystyki ) przykład: SELECT nazwisko,stanowisko,placa,siedziba FROM pracownicy JOIN dzialy USING(id_dzialu) WHERE siedziba like '%R%' ; wykorzystano materiały: wykłady Bazy Danych - 2012 roku - dr inż. Siedlecka-Lamch http://wazniak.mimuw.edu.pl/images/c/c7/bd-2st-1.2-w12.tresc-1.1.pdf