Bazy danych. Plan wykładu. Przetwarzanie zapyta. Etapy przetwarzania zapytania. Wykład 12: Optymalizacja zapyta. Etapy przetwarzanie zapytania

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

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

Bazy danych. Plan wykładu. Metody organizacji pliku rekordów. Pojcie indeksu. Wykład 11: Indeksy. Pojcie indeksu - rodzaje indeksów

Bazy danych. Plan wykładu. Operacje w algebrze relacji. Pojcie algebry relacji. Wykład 8: Algebra relacji. SQL - cd

Bazy danych. Plan wykładu. Podzapytania - wskazówki. Podzapytania po FROM. Wykład 5: Zalenoci wielowartociowe. Sprowadzanie do postaci normalnych.

Bazy danych. Plan wykładu. Podstawy modeli relacyjnych. Diagramy ER. Wykład 3: Relacyjny model danych. SQL

Wykład XII. optymalizacja w relacyjnych bazach danych

Bazy danych. Plan wykładu. Klucz wyszukiwania. Pojcie indeksu. Wykład 8: Indeksy. Pojcie indeksu - rodzaje indeksów

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

Bazy danych. Plan wykładu. Dekompozycja relacji. Anomalie. Wykład 5: Projektowanie relacyjnych schematów baz danych. SQL - funkcje grupujce

Bazy danych. Plan wykáadu. Zale*noci funkcyjne. Wykáad 4: Relacyjny model danych - zale*noci funkcyjne. A B

Bazy danych Podstawy teoretyczne

Bazy danych. Plan wykáadu. Powtórzenie BCNF i 3NF. Nowa forma redundancji. Wykáad 6: Postaci normalne. SQL - zapytania záo*one.

Technologie baz danych

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

Teoretyczne podstawy informatyki

Bazy danych. Plan wykładu. Proces modelowania i implementacji bazy danych. Elementy ERD. Wykład 2: Diagramy zwizków encji (ERD)

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

Bazy danych. Plan wykładu. Model logiczny i fizyczny. Operacje na pliku. Wykład 10: Fizyczna organizacja danych w bazie danych

Bazy danych. Plan wykładu. Definicja zalenoci funkcyjnych. Zalenoci funkcyjne. Wykład 4: Relacyjny model danych - zalenoci funkcyjne.

Optymalizacja poleceń SQL Wprowadzenie

Optymalizacja poleceń SQL Metody dostępu do danych

Przykłady wyrae uywanych w kwerendach i filtrach

Autor: Joanna Karwowska

Gramatyki regularne i automaty skoczone

Bazy danych. Plan wykładu. Pierwsza posta normalna. Druga posta normalna. Wykład 7: Sprowadzanie do postaci normalnych. DDL, DML

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Bazy danych. Plan wykładu. Proces modelowania i implementacji bazy danych. Elementy ERD. Wykład 2: Diagramy zwizków encji (ERD)

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

stopie szaro ci piksela ( x, y)

Bazy danych SQL. Wstp. SQL (Structured( Query Language) strukturalny jzyk zapyta

Optymalizacja poleceń SQL

Relacyjne bazy danych. Podstawy SQL

Plan wykładu. Klucz wyszukiwania. Pojęcie indeksu BAZY DANYCH. Pojęcie indeksu - rodzaje indeksów Metody implementacji indeksów.

Wprowadzenie do baz danych

Systemy GIS Tworzenie zapytań w bazach danych

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

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

Przestrzenne bazy danych Podstawy języka SQL

.! $ Stos jest list z trzema operacjami: dodawanie elementów na wierzch stosu, zdejmowanie elementu z wierzchu stosu, sprawdzanie czy stos jest pusty.

Model relacyjny. Wykład II

Wprowadzenie do języka SQL

sprowadza się od razu kilka stron!

3. Podzapytania, łączenie tabel i zapytań

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

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

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

Temat: Geometria obliczeniowa cz II. Para najmniej odległych punktów. Sprawdzenie, czy istnieje para przecinajcych si odcinków.

Materiały szkoleniowe. Podstawy jzyka SQL. Prowadzcy Anna Pijanowska - Kunierz Paweł ołnierczyk

Wprowadzenie do kompilatorów

Bazy danych. Plan wykładu. Złczenia tabel. Perspektywy cd. Wykład 9: Programowanie aplikacji baz danych po stronie serwera. Sekwencje Wyzwalacze

Technologie baz danych

Relacyjne bazy danych. Podstawy SQL

SQL (ang. Structured Query Language)

1 Wstęp do modelu relacyjnego

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

Podstawy języka SQL cz. 2

Model relacyjny. Wykład II

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

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

Wprowadzenie do algorytmów. START

Optymalizacja oprogramowania - wprowadzenie

Bazy danych. Plan wykładu. Model logiczny i fizyczny. Operacje na pliku. Dyski. Mechanizmy składowania

Indeksowanie w bazach danych

Planowanie adresacji IP dla przedsibiorstwa.

obsług dowolnego typu formularzy (np. formularzy ankietowych), pobieranie wzorców formularzy z serwera centralnego,

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

Optymalizacja zapytań

Podstawowe zapytania SELECT (na jednej tabeli)

Administracja i programowanie pod Microsoft SQL Server 2000

Technologie baz danych

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Zadania do wykonaj przed przyst!pieniem do pracy:

Temat: Technika zachłanna. Przykłady zastosowania. Własno wyboru zachłannego i optymalnej podstruktury.

Tworzenie bazy danych Biblioteka tworzenie tabel i powiza, manipulowanie danymi. Zadania do wykonani przed przystpieniem do pracy:

WPROWADZENIE DO BAZ DANYCH

Wprowadzenie do baz danych

Plan wykładu. Reguły asocjacyjne. Przykłady asocjacji. Reguły asocjacyjne. Jeli warunki to efekty. warunki efekty

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

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

I Powiatowy Konkurs Matematyka, Fizyka i Informatyka w Technice Etap finałowy 10 kwietnia 2013 grupa elektryczno-elektroniczna

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

Autor: Joanna Karwowska

Język SQL. Rozdział 4. Funkcje grupowe Funkcje grupowe, podział relacji na grupy, klauzule GROUP BY i HAVING.

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

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

Bazy danych. Zaliczenie. Literatura. Strony WWW. Wykáad 1: Wprowadzenie do baz danych

Struktura drzewa w MySQL. Michał Tyszczenko

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

Bazy danych. Zaliczenie. Literatura. Strony WWW. Wykáad 1: Wprowadzenie do baz danych

Bazy danych. Zaliczenie. Literatura. Strony WWW. Wykład 1: Wprowadzenie do baz danych. Semestr 1

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

Syntactic Pattern Recognition. Anna Kuchna Maciej arnowski

Metody Kompilacji Wykład 1 Wstęp

ODPOWIEDZI I SCHEMAT PUNKTOWANIA ZESTAW NR 2 POZIOM PODSTAWOWY. 1. x y x y

POZNA SUPERCOMPUTING AND NETWORKING. Podstawy optymalizacji kodu ródłowego

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

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

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

Bazy danych. Plan wykáadu. Proces modelowania i implementacji bazy danych. Elementy ERD

Transkrypt:

Plan wykładu Bazy danych Wykład 12: Optymalizacja zapyta Etapy przetwarzanie zapytania Implementacja wyrae algebry relacji Reguły heurystyczne optymalizacji zapyta Kosztowa optymalizacja zapyta Małgorzata Krtowska Katedra Oprogramowania e-mail: mmac@ii.pb.bialystok.pl Bazy danych (studia dzienne) 2 Przetwarzanie zapyta Etapy przetwarzania zapytania Zapytanie wyraone w wysokopoziomowym jzyku zapyta, takim jak SQL, musi najpierw zosta odczytane, poddane analizie składniowej i zweryfikowane. Czytnik (ang. Scanner) - identyfikuje elementy jzyka (słowa kluczowe SQL, nazwy atrybutów, nazwy relacji ) w tekcie zapytania Analizator składniowy (ang. Parser) - sprawdza składni zapytania w celu okrelenia czy sformułowano je zgodnie z regułami gramatyki jzyka zapyta. Drzewo zapytania - wewntrzna reprezentacja zapytania, w postaci drzewiastej struktury Strategia wykonania zapytania - okrelana jest przez SZBD i okrela strategi pobrania wyników zapytania z plików bazy danych. Proces wyboru najlepszej strategii okrela si mianem optymalizacji zapytania. Zapytanie w jzyku wysokiego poziomu ODCZYT, ANALIZA SKŁADNIOWA I WERYFIKACJA Zapytanie w postaci poredniej OPTYMALIZATOR ZAPYTA Plan wykonania GENERATOR KODU ZAPYTA Kod wykonania zapytania WYKONAWCZY PROCESOR BAZY DANYCH Wynik zapytania Bazy danych (studia dzienne) 3 Bazy danych (studia dzienne) 4

Strategie optymalizacji zapyta Reguły heurystyczne - sprawdzaj si z wikszoci sytuacji, ale nie gwarantuj poprawnego działania w kadym przypadku Reguły z systematycznym szacowaniem - szacowany jest koszt róznych strategii wykonania zapytania. Wybierany jest plan o najniszym szacowanym koszcie. Translacja zapyta jzyka SQL do postaci wyrae algebry relacji Zapytanie jzyka SQL jest tłumaczone na równowane mu wyraenie algebry relacji - reprezentowane jako struktura danych drzewa zapytania - które podlega optymalizacji. Zapytanai SQl s rozkładane na bloki zapytania, które stanowi podstawow jednostke, jaka moe by tłumaczona na operatory algebraiczne i optymalizowana Blok zapytania stanowi pojedyncze wyraenie SELECT- FROM- WHERE, jak równie klauzule GROUP BY I HAVING. Wyraenia algebry relacji: operacje teoriomnogosciowe (suma, przecicie, róznica) rzutowanie (projekcja) Π selekcja σ złczenie agregacja (zastosowanie funkcji agregujcych) I Bazy danych (studia dzienne) 5 Bazy danych (studia dzienne) 6 Przykład Algorytmy sortowania zewntrznego Select ename, no from where sal > (select ma(sal) from where deptno=5) Blok wewntrzny ma posta: select ma(sal) from where deptno=5 Zapis w postaci wyraenia algebry relacji: I ma sal (σ deptno=5 ()) Blok zewntrzny ma posta: Select ename, no from where sal > C Zapis w postaci wyraenia algebry relacji:, no (σ sal>c ()) Bazy danych (studia dzienne) 7 Jedne z najwaniejszych algorytmów uywanych w czasie przetwarzania zapyta, wykorzystywany wówczas gdy zapytanie zawiera klauzul order by opcj distinct w klauzuli select przy złczaniu tabel sortowanie mona unikn, jeeli istnieje odpowiedni indeks, umoliwiajcy uzyskanie uporzdkowanego dostpu do rekordów Sortowanie zewntrzne odnosi si do algorytmów sortowania odpowiednich dla duych plików rekordów składowanych na dysku, które nie mieszcz si w pamici głównej Bazy danych (studia dzienne) 8

Algorytmy sortowania zewntrznego Implementacja operacji SELECT Typowy algorytm sortowanie zewntrznego wykorzystuje strategi sortujcoscalajc: Faza sortowania: jednostki pliku, które mieszcz si w dostpnej przestrzeni bufora, s wczytywane do pamici, sortowane przy uyciu algorytmu sortowania wewntrznego i zapisywane z powrotem na dysku jako tymczasowe posortowane podpliki. Liczba jednostek pocztkowych n r zaley od liczby bloków pliku (b) oraz dostpnej przestrzeni bufora n B : n R =ceil (b/n B ). Faza scalania: posortowane jednostki s scalane w czasie jednego lub wikszej liczby przebiegów. Stopie scalenia d M jest liczb jednostek, które mona scali w kadym przebiegu. W kadym przebiegu potrzebny jest jest jeden blok bufora w celu przechowywania jednego bloku z kadej ze scalanych jednostek i jeden blok do przechowywania kadego bloku wyniku scalenia. d M jest mniejsz sposród wartoci (n B -1) i n R ; liczba przebiegów wynosi ceil(log dm (n R )). Liczba operacji dostpu do bloków: (2*b)+(2*(b*log dm n R )) Metody wyszukiwania w przypadku prostych operacji wybierania σ deptno=5 () ; σ no>3 () algorytmy te mona podzieli na tzw. przegldy plików (przegldaj rekordy w pliku w celu wyszukania i pobrania odpowiednich rekordów) oraz przegldy indeksu (wyszukiwania uwzgldniajce uycie indeksu). wyszukiwanie liniowe- pobieramy kady rekord z pliku i sprawdzamy, czy warto jego atrybutu spełnia warunek wyboru wyszukiwanie binarne - warunek wyboru zawiera porównanie równowartociowe na atrybucie klucza, wzgldem którego uporzdkowany jest plik uycie indeksu głównego (lub klucza haszujcego) jeei warunek zawiera porównanie równowartociowe na atrybucie klucza z indeksem głównym warunek ten powoduje wybranie najwyej jednego rekordu Bazy danych (studia dzienne) 9 Bazy danych (studia dzienne) 10 Implementacja operacji SELECT Implementacja operacji SELECT uycie indeksu głównego w celu pobrania wielu rekordów warunek porównania jest >,>=,< lub <= na polu klucza z indeksem gównym uywamy indeksu w celu znalezienia rekord spełniajcego odpowiedni warunek, a nastpnie pobieramy wszystkie kolejne rekordy z uporzdkowanego pliku uycie indeksu drugorzdnego (B + -drzewa) na porównaniu równociowym - metoda moe by uyta w celu pobrania pojedynczego rekordu, jeeli pole indeksujce jest kluczem lub w celu pobrania wielu rekordów, jeeli pole indeksujce nie jest kluczem. Mona jej uywa w przypadku porówna uwzgldniajcych relacje >; >=;<; <=. Bazy danych (studia dzienne) 11 Metody wyszukiwania w przypadku złoonych operacji wyboru σ deptno=5 and ename= C% () Wybór koniunktywny przy uyciu pojedynczego indeksu - jeeli atrybut zwizany z dowolnym pojedynczym warunkiem prostym jest kluczem,moemy uy jednej z metod dla prostych operacji wybierania, a nastpnie sprawdzamy, czy kady pobrany rekord spełnia pozostałe warunki proste. Wybór koniunktywny przy uyciu indeksu złoonego - jeeli warunki równoci dotycz dwóch lub wicej atrybutów i na połczonych polach istnieje indeks złoony moemy bezporednio uy takiego indeksu Wybór koniunktywny poprzez przecicie zbiorów wskaników na rekordy jeeli na wicej ni jednym polu zwizanym z warunkami prostymi istniej indeksy drugorzdne oraz jeeli indeksy zawieraj wskaniki na rekody wówczas kady indeks moe zosta uyty w celu pobrania zbioru wskaników rekordów, które spełniaj pojedyncze warunki. Przecicie tych zbiorów daje w wyniku wskaniki rekordów spełniajce warunek koniunktywny. Jeeli tylko niektóre warunki posiadaj odpowiednie indeksy, wówczas kady pobrany rekord jest dodatkowo sprawdzany w celu okrelenia czy spełnia pozostałe warunki. Bazy danych (studia dzienne) 12

Implementacja operacji SELECT σ deptno=5 or ename= C% () alternatywy logicznej stanowi sum teoriomnogociow rekordów spełniajacych poszczególne warunki std niewielkie pole manewru w zakresie optymalizacji jeeli który z warunków nie posiada indeksu naley wykorzysta wyszukiwanie liniowe tylko wówczas gdy indeks istnieje na kadym warunku mona zoptymalizowa wybór, pobiarajc rekordy spełniajce kady z warunków a nastpnie zastosowa operacj sumy teoriomnogociowej w celu wyeliminowania duplikatów Bazy danych (studia dzienne) 13 Implementacja operacji NATURAL JOIN R A=B S np. depno=deptno dept Złczenie ptli zagniedonych - dla kadego rekordu t w pliku R (ptla zewntrzna) pobieramy kady rekord s z pliku S (ptla wewntrzna) i sprawdzamy, czy oba rekordy spełniaj warunek złczenia Złczenie z ptl pojedyncz - jeeli na jednym z atrybutów podlegajacych złczeniu - np. B w pliku S - istnieje indeks pobieramy kady rekord t z pliku R, po jednym naraz, a nastpnie uywamy struktury dostpowej w celu bezporedniego pobrania wszystkich pasujcych rekordów s z pliku S, spełniajacych warunek złczenia. Złczenie sortujco - scalajce jeeli rekordy plików R i S s uporzdkowane według wartoci atrbutów złczenia -> implementacja złczenia najwydajniejsza; oba pliki s przegladane w kolejnoci atrybutów złczenia i dopasowujemy rekordy majce odpowiednio takie same wartoci atrybutów złczenia jeeli rekordy nie s posortowane mona tego dokona przy uyciu sortowania zewntrznego. Bazy danych (studia dzienne) 14 Algorytmy operacji rzutowania Π <lista atrybutów> (R) Prosty do implementacji,jeeli lista atrybutów zawiera klucz relacji R -> wynik operacji ma t sam liczb krotek co relacji R, ale zawiera w kadej krotce tylko wartoci atrybutów nalecych do listy. Jeeli lista atrybutów nie zawiera klucza relacji R, naley wyeliminowa duplikaty -> dokonuje si tego zwykle przez posortowanie wyniku operacji, a nastpnie usunicie duplikatów krotek, które wystpuj teraz obok siebie Algorytmy operacji teoriomnogociowych iloczyn kartezjaski - operacja kosztowna, std istotn rzecz jest jej unikanie poprzez zastpowanie jest równowanymi operacjami w czasie optymalizacji suma, przecicie, rónica technika sortujco-mieszajca - dwie relacje zostaj posortowane wzgldem tych samych atrybutów i jednokrotne przejrzenie kadej z nich wystarczy do utworzenia wyniku (np. suma - zachowanie w pliku scalonym tylko tych krotek które wystpuj w obu relacjach) Bazy danych (studia dzienne) 15 Bazy danych (studia dzienne) 16

Implementacja operacji agregujcych Implementacja złczenia zewntrznego Select ma(sal) from ; jeeli na atrybucie sal relacji istnieje indeks (rosncy), optymalizator moe zdecydowa o jego uyciu w celu uzyskania najwikszej wartoci. Najwiksza warto bdzie to ostatni wpis indeksu. Count, avg, sum mona uy indeksu, jeeli jest to indeks zagszczony tzn wystpuje w nim wpis dla kadego rekordu z pliku głównego. Indeksu niezagszczonego mona uzytylko dla operacji count distinct. Wówczas odpowiedni obliczenia wykorzystuj tylko wartoci w indeksie. Klauzula GROUP BY operator agregujcy musi by zastosowany oddzielnie dla kadej grupy krotek najpierw tabela musi by podzielona na podgrupy wzgldem atrybutu grupujcego czsto stosowane jest najpierw albo sortowanie albo haszowanie na atrybutach grupujcych. Select no, ename, dname from left join dept on deptno; złczenie zewntrzne mona okreli modyfikujc jeden z algorytmów złczeniowych, takich jak złczenie ptli zagniedonych lub złczenie z ptl pojedyncz: w przypadku operacji left join relacja wystpujca po lewej stronie musi si znale w petli zewntrznej (lub pojedynczej), poniewa kada krotka z tej relacji musi si znale w wyniku jeeli w relacji po prawej stronie nie ma odpowiednich krotek to wartoci uzuepłnia si wartociami null. Bazy danych (studia dzienne) 17 Bazy danych (studia dzienne) 18 Implementacja złczenia zewntrznego Mechanizm potokowy Rozwizanie alternatywne polega na wykonaniu kombinacji algebry relacji: 1. Okrelamy złczenie wewntrzne tabel i dept t1 Π no, ename, dname ( deptno=deptno dept) 2. Znajdujemy w tabeli pracownik krotki, które nie wystepuj w wyniku złczenia wewntrznego t2 Π no, ename () Π no, ename (t1) 3. Uzupełniamy kad krotk polem dname o wartoci null t2 t2 NULL 4. Wykonujemy operacj sumy na t1 i t2 wynik t1 t2 Zapytanie w jzyku SQL jest przekształcane na wyraenie algebry relacji, które jest sekwencj operacji relacyjnych wykonywanie po jednej operacji generuje pliki tymczasowe na dysku, co jest czasochłonne i moe by niepotrzebne, poniewa pliki te s natychmiast wykorzystywane jako dane wejciowe do kolejnej operacji w celu zredukowania liczby plików tymczasowych czsto generuje si kod zapytania, który odpowiada algorytmom łczenia operacji w zapytaniu. Jest to tzw. przetwarzanie potokowe. Bazy danych (studia dzienne) 19 Bazy danych (studia dzienne) 20

Reguły heurystyczne optymalizacji zapyta Heurystyczna technika optymalizacji wykorzystuje reguły heurystyczne w celu modyfikowania wewnetrznej reprezentacji zapytania (drzewa zapytania) w celu zwikszenia oczekiwanej wydajnoci działania Przykład Select ename from,, where p_desc= wodnik and.no=.no and.projid=.projid and hiredate> 1998-12-31 ; Pocztkowe drzewo zapyta: Analizator składniowy najpierw generuje pocztkow reprezentacj wewntrzn, która jest optymalizowana zgodnie z regułami heurystycznymi (np. stosowanie operacji selekcji i projekcji przed operacj złczenia) and.no=.no and.projid=.projid and hiredate> 1998-12-31 Otrzymujemy kocowe drzewo zapytania a nastpnie generuje si plan wykonania zapytania w celu wykonania grup operacji Bazy danych (studia dzienne) 21 Bazy danych (studia dzienne) 22 Przykład cd Przeniesienie operacji select w dół drzewa Przykład cd Zastosowanie bardziej restrykcyjnej operacji select jako pierwszej σ projid=projid σ no=no σ no=no σ projid=projid Bazy danych (studia dzienne) 23 Bazy danych (studia dzienne) 24

Przykład cd Zastpienie iloczynu kartezjaskiego i select operacj join Przykład cd Redukcja liczby atrybutów no=no no=no Π no Π no projid=projid Π projid projid=projid Π projid, no Bazy danych (studia dzienne) 25 Bazy danych (studia dzienne) 26 Wykorzystanie oszacowa kosztu w optymalizacji zapyta Optymalizator zapyta nie powinien polega wyłcznie na regułach heurystycznych, ale równie uwzgldna oszacowania i porównywa koszty wykonania zapytania przy uyciu rónych strategii wykonania, wybierajc strategi o najniszym oszacowanym koszcie. Takie podejcie okrela si mianem kosztowej optymalizacji zapyta i wykorzystuje ono tradycyjne techniki optymalizacji przeszukujace przestrze rozwizania problemu w celu znalezienia rozwizania, które bdzie minimalizowa funkcj kosztu. Składowe kosztu wykonania zapyta Składowe kosztu wykonania zapyta: koszt dostpu do drugorzdnych mechanizmów składowania danych koszt wyszukania, odczytania i zapisania bloków danych przechowywanych na dysku koszt zaley od struktur dostepu utworzonych dla danego pliku: uporzdkowanie, haszowanie, indeksy koszt składowania - koszt przechowywania wszelkich plików porednich generowanych w ramach strategii wykonania zapytania Koszt obliczeniowy - koszt dokonywania oblicze w pamici na buforach danych w czasie wykonywania zapytania np. wyszukiwanie, sortowanie, scalanie rekordów, obliczenia na wartociach pól koszt zuycia pamici - koszt zaleny od liczby buforów pamici potrzebnych w czasie wykonywania zapytania koszt komunikacji - koszt zawizany z przesłaniem zapytania i jego wyników z bazy danych do wzła lub terminalu, z którego zostało przesłane danie Bazy danych (studia dzienne) 27 Bazy danych (studia dzienne) 28