Optymalizacja zapytań

Wielkość: px
Rozpocząć pokaz od strony:

Download "Optymalizacja zapytań"

Transkrypt

1 Optymalizacja zapytań Charakterystyka środowiska relacyjnej bazy danych 1. Złożone zapytania zawierające wiele elementarnych operacji relacyjnych: selekcji, projekcji, połączenia, porządkowania, itd. select p.nazwisko from pracownicy p, zespoły z where p.id_zesp = z.id_zesp and p.płaca = 7500 and z.budżet > Przemienność operacji relacyjnych (a) π nazwisko (σ płaca=7500 Pracownicy) (σ budżet> Zespoły) (b) π nazwisko (σ płaca=7500 and budżet> (Pracownicy Zespoły)) (c) σ budżet> ((σ płaca=7500 (π nazwisko Pracownicy)) Zespoły) 2. Istnienie wielu alternatywnych logicznie równoważnych metod dostępu (fizyczna niezależność danych) σ płaca=7500 Pracownicy - (k) iteracja po wszystkich danych - (l) indeks drugorzędny Przykład B = 2 kb R(Pracownicy) = 100 B bfr(pracownicy) = 20 R(Zespoły) = 50 B bfr(zespoły) = 40 r(pracownicy) = b(pracownicy) = 500 r(zespoły) = 100 b(zespoły) = 3 (a) σ płaca=7500 Pracownicy = P : iteracja 500 operacji I/O σ budżet> Zespoły = Z : iteracja 3 operacje I/O b(p ) = 2; b(z ) = 1 (P ) (Z ) = PZ: nested loop 3 operacje, b(pz) = 2 π nazwisko (PZ) = wynik: 2 operacje Razem: 508 operacji (b) (Pracownicy) (Zespoły) = PZ: nested loop (Pracownicy = outer, n=10) 650 operacji b(pz) = 770 σ płaca=7500 and budżet> (PZ) = PZ : iteracja 770 operacji I/O, b(pz ) = 2 π nazwisko (PZ) = wynik: 2 operacje Razem: 1422 operacje Kolejność wykonywania elementarnych operacji relacyjnych oraz wybór jednej z alternatywnych metod dostępu ma istotny wpływ na czasy wykonywania zapytań

2 Metody dostępu do danych Operacja selekcji S1. Iteracja: Odczytuj kolejno wszystkie rekordy pliku i sprawdzaj czy wartości ich atrybutów spełniają warunek selekcji. S2. Połowienie binarne: Jeżeli warunek logiczny operacji selekcji odwołuje się do atrybutu porządkującego plik można zastosować bardziej efektywną metodę wyszukiwania. Za pomocą algorytmu połowienia binarnego znajdź pierwszy rekord, który spełnia warunek zapytania. Następnie odczytaj kolejne rekordy spełniające warunek zapytania. S3. Zastosowanie indeksu: Jeżeli na atrybucie występującym w warunku logicznym selekcji jest założony indeks, to korzystając z tego indeksu znajdź wskaźnik na pierwszy rekord spełniający warunek zapytania. Następnie trawersując po liściach indeksu pobieraj kolejne wskaźniki rekordów spełniających warunek zapytania. S4. Zastosowanie funkcji mieszającej: Jeżeli zapytanie zawiera warunek logiczny zawierający atrybut, który jest argumentem funkcji mieszającej i operatorem relacyjnym jest operator "=" zastosuj funkcję mieszającą i wyznacz wskaźnik na szukany rekord. S5. Zastosowanie identyfikatora rekordu: Odczytaj rekord o danym identyfikatorze. Problem: Selektywność zapytania Czy zawsze należy korzystać z dostępnych indeksów lub plików haszowych? Selektywność = card(relacji wynikowej) card(relacji źródłowej) Przykład Relacja Pracownicy liczba rekordów = 2000, atrybut id_prac jest kluczem podstawowym relacji (q1) σ id_prac=120 (PRACOWNICY) selektywność(q1) = 1/2000 = 0,0005 (q2) σ etat=120 (PRACOWNICY) selektywność(q2) = 1/count(distinct etat) (q3) σ płeć='k' OR płaca>50000 (PRACOWNICY) selektywność(q2) = 1001/2000 0,5 (q4)σ płaca IS NOT NULL (PRACOWNICY) selektywność(q3) = 1998/2000 1

3 Estymacja kosztu metod dostępu dla operacji selekcji Koszty będą określane liczbą operacji I/O Liczba rekordów relacji r, liczba bloków zajmowanych przez relację b, selektywność zapytania s, wysokość indeksu h, rząd indeksu q. S1 S2 S3 b/2 (średnio) pomyślne odnalezienie rekordu spełniającego warunek atr = x, gdzie atr jest kluczem relacji b wszystkie pozostałe przypadki, niezależnie od selektywności zapytania log 2 b + s*b h + s q h-1 + s r lub h + s r/q + s r dla indeksu drugorzędnego h + s b dla indeksu podstawowego lub zgrupowanego S4 1 S5 1 Złożone warunki zapytania Koniunkcja warunków prostych S6. Zagnieżdżanie selekcji: Jeżeli w warunku zapytania występują atrybuty, dla których jest dostępna jedna z metod dostępu: S2 do S5, to zastosuj najbardziej selektywną metodę. Następnie odczytując rekordy wyznaczone przez tę metodę sprawdź, które z nich spełniają pozostałe warunki zapytania. S7. Metoda dostępu zdefiniowana na zbiorze atrybutów: Jeżeli dla kilku atrybutów występujących w warunku zapytania w porównaniach równościowych, jest dostępny indeks lub funkcja mieszająca zdefiniowane na konkatenacji tych atrybutów, zastosuj je. S8. Iloczyn logiczny zbiorów identyfikatorów: Jeżeli dla kilku atrybutów występujących w warunku zapytania, są dostępne metody dostępu: S2 do S5, to wyznacz za ich pomocą zbiory identyfikatorów rekordów spełniających poszczególne warunki zapytania. Następnie wyznacz iloczyn logiczny tych zbiorów. Suma warunków prostych S9. Suma logiczna zbiorów identyfikatorów: Jeżeli dla wszystkich atrybutów występujących w prostych warunkach zapytania połączonych operatorem OR, są dostępne metody dostępu: S2 do S5, to wyznacz za ich pomocą zbiory identyfikatorów rekordów spełniających te warunki. Następnie wyznacz sumę logiczną tych zbiorów.

4 Metody łączenia rekordów plików J1. Algorytm Nested loop: Wybierz jeden z plików jako zewnętrzny (outer), a drugi jako wewnętrzny (inner). Dla bufora pamięci o wielkości n bloków wczytuj kolejno do tego bufora po n-1 bloków pliku zewnętrznego. Po każdej operacji odczytu pliku zewnętrznego wczytuj pojedynczo do ostatniego bloku bufora wszystkie bloki pliku wewnętrznego. Spróbuj połączyć znajdujące się w buforze rekordy pliku zewnętrznego z rekordami pliku wewnętrznego. Połączone rekordy umieszczaj w pliku wynikowym. plik zewnętrzny n-1 plik wewnętrzny J2. Bezpośrednie ścieżki dostępu dla dopasowania rekordów: Jeżeli dla atrybutu połączeniowego jednego z plików jest dostępna jedna z metod dostępu: S2 do S5, to odczytuj kolejno wszystkie rekordy drugiego z nich. Dla każdego odczytanego rekordu, korzystając z bezpośredniej ścieżki dostępu znajdź wszystkie rekordy pierwszego pliku o danej wartości atrybutu połączeniowego. J3. Algorytm Sort-merge: Jeżeli łączone pliki są uporządkowane według wartości atrybutu połączeniowego (lub na atrybutach połączeniowych jest założony indeks), przeglądając liniowo obydwa pliki dopasowuj rekordy na podstawie wartości atrybutu połączeniowego. J4. Algorytm Hash-join: Zastosuj funkcję mieszającą na atrybucie połączeniowym dla utworzenia jednego pliku haszowego dla rekordów obydwu łączonych plików. J5. Plik zgrupowany: Korzystając z jednej z metod dostępu odczytaj połączone fizycznie rekordy. n

5 Koszty metod połączenia Selektywność połączenia - JS JS = R c S / R S JS określa rozmiar pliku wynikowego Szczególne przypadki: Dla operacji iloczynu kartezjańskiego JS = 1 Jeżeli warunek połączeniowy relacji R i S jest A = B, gdzie A jest kluczem w relacji R, wtedy R c S S, a więc JS 1/ R Współczynnik selektywności połączenia - JSF JSF jest równy procentowi rekordów danego pliku, dla których warunek połączeniowy jest spełniony Przykłady Plik A: r A = 50 rekordów, b A =10 bloków Plik B: r B = 5000 rekordów, b B = 2000 bloków Bufor pamięci: n = 6 bloków, js = 1/5000, bfr AB = 2 Wysokość indeksu na atrybucie połącz. pliku A: x A =2 Wysokość indeksu na atrybucie połącz. pliku B: x B =4 Rząd drzewa p = 100, q = 75 J1. Liczba odczytanych bloków pliku zewnętrznego = b o Liczba transferów bloków pliku zewnętrznego = b o /(n - 1) Liczba odczytanych bloków pliku wewnętrznego = b i b o /(n - 1) a) Plik B - zewnętrzny, plik A - wewnętrzny b B + (b A b B /(n - 1) ) + (js A B )/bfr AB = ( 10 * 2000/5 ) + 50/2 = 6025 b) Plik A - zewnętrzny, plik B - wewnętrzny b A + (b B b A /(n - 1) ) + (js A B )/bfr AB = 10 + ( 2000 * 10/5 ) + 50/2 = 4035 J3. b A + b B + (js A B )/bfr AB = 2035 J2. JSF = 0,0002; a) b B + (r B (x A + JSF (r A /q+r A ))) + (js A B )/bfr AB = (5000 2,01) + 50/ b) b A + (r A (x B + JSF (r B /q+r B ))) + (js A B )/bfr AB = 10 + (50 5,01) + 50/2 285

6 Drzewo zapytania Realizacja zapytań Struktura hierarchiczna odpowiadająca wyrażeniu algebry relacji: relacje są reprezentowane przez liście hierarchii, a operacje algebry przez węzły wewnętrzne Wykonanie drzewa zapytania Krokowe wykonanie operacji reprezentowanych przez wewnętrzne węzły drzewa zapytania w momencie gdy dostępne są wszystkie argumenty danej operacji. Węzły reprezentujące wykonane operacje są zastępowane relacjami, które powstały jako wynik tych operacji. Wykonanie drzewa zapytania kończy się kiedy wykonana zostanie operacja znajdująca się w korzeniu drzewa i zostanie ona zastąpiona ostatecznym wynikiem zapytania. Realizacja zapytań Kanoniczne drzewo zapytania Analizator składniowy zapytania transluje zapytania zapisane w języku zapytań (np. SQL) na kanoniczne drzewo zapytania. Przykład: SELECT nazwisko FROM pracownicy p, projekty k, udział u WHERE p.id_prac = k.prac AND u.proj = k.id_proj AND u.zatrudniony < ' ' AND k.budżet > π nazwisko σ id_prac=prac AND proj=id_proj AND zatrudniony < ' ' AND budżet > r π nazwisko, nazwa >< id_zesp = id r Udział Pracownicy Zespoły Pracownicy Projekty W ogólności dla danego zapytania istnieje wiele równoważnych drzew zapytania.

7 Optymalizacja zapytań Kolejność wykonywania operacji relacyjnych drzewo zapytania ma wpływ na czas wykonywania zapytania.? Pracownicy π nazwisko, nazwa σ staż_pracy > 10 >< id_zesp = id Zespoły Celem działania optymalizatora zapytań jest transformacja nieefektywnego kanonicznego drzewa zapytania w równoważne logicznie drzewo, którego wykonanie będzie efektywne. Reguły transformacji drzewa zapytania (1) Rozbicie operacji selekcji: zamiana operacji selekcji z warunkiem, który jest iloczynem logicznym warunków składowych, na sekwencję operacji selekcji ze składowymi warunkami zapytania: σ C1 AND C 2 (R) σ C1 (σ C2 (R)), (2) Rozbicie operacji selekcji: zamiana operacji selekcji z warunkiem, który jest sumą logiczną warunków składowych, na sumę operacji selekcji ze składowymi warunkami zapytania: σ C1 OR C 2 (R) σ C1 (R) σ C2 (R). (3) Przemienność operacji selekcji: σ C1 (σ C2 (R)) σ C2 (σ C1 (R)). (4) Sekwencja operacji projekcji: w sekwencji operacji projekcji wszystkie operacje za wyjątkiem pierwszej mogą zostać usunięte: π L1 (π L2 (π L3 (R))) π L 1 (R), gdzie: L 1 L 2 L 3.

8 (5) Przemienność operacji projekcji i selekcji: π A1, A2,..., An (σ C (R)) σ C (π A1, A2,..., An (R)), gdzie: warunek C odwołuje się jedynie do atrybutów A 1, A 2,..., A n. (6) Przemienność operacji połączenia (lub iloczynu kartezjańskiego): R >< C S S >< C R (Rr S Sr R). (7) Przemienność operacji selekcji i połączenia (lub iloczynu kartezjańskiego): σ C (R >< S) (σ C1 (R)) >< (σ C2 (S)) gdzie: C 1 AND C 2 = C. (8) Przemienność operacji projekcji i połączenia (lub iloczynu kartezjańskiego): π L (R >< C S) (π L 1 (R) >< C (π L2 (S)), (10) Łączność operacji połączenia, iloczynu kartezjańskiego, sumy i iloczynu relacji: (R Θ S) Θ T R Θ (S Θ T), gdzie: Θ reprezentuje jedną z wymienionych operacji binarnych. (11) Przemienność operacji selekcji z operacjami sumy, iloczynu i różnicy relacji: σ C (R Θ S) (σ C (R)) Θ (σ C (T)), gdzie: Θ reprezentuje jedną z wymienionych operacji. (12) Przemienność operacji projekcji z operacją sumy relacji: π L (R S) π L (R) π L (T). gdzie: L = A 1, A 2,..., A n, B 1, B 2,..., B m, L 1 = A 1, A 2,..., A n, A n+1,..., A n+k, L 2 = B 1, B 2,..., B m, B m+1,..., B m+p. Atrybuty o indeksach n+1 do n+k i m+1 do m+p, są to atrybuty z poza listy L, do których odwołuje się warunek C. (9) Przemienność operacji sumy i iloczynu relacji: R Θ S S Θ R, gdzie: Θ reprezentuje jeden z operatorów lub.

9 Zasady działania algorytmu optymalizacji zapytań Ogólną zasadą działania algorytmy jest takie przesuwanie węzłów wewnętrznych w drzewie zapytania, aby operacje bardziej restrykcyjne (tzn. takie, których wynikiem są relacje przejściowe o najmniejszym rozmiarze) były wykonywane w pierwszej kolejności. 1. Korzystając z reguły transformacji (1) dziel operacje selekcji na selekcje z warunkami elementarnymi. Ułatwi to przesuwanie wybranych selekcji w dół drzewa zapytania. 2. Korzystając z reguł (3), (5), (7) i (11) opisujących własność przemienności operacji selekcji z innymi operacjami relacyjnymi, przesuń każdą z powstałych operacji selekcji jak najniżej w dół drzewa. π nazwisko σ proj=id_proj r 3. Korzystając z reguły transformacji (10) dotyczącej łączności operacji binarnych zmień kolejność łączenia relacji tak, żeby jako pierwsze były wykonywane operacje na relacjach o najbardziej restryktywnym warunku selekcji. σ budżet > Projekty σ proj=id_proj r π nazwisko σ id_prac=prac r Pracownicy σ zatrudniony < ' ' Udział 4. Połącz iloczyny kartezjańskie relacji z operacjami selekcji, które reprezentują warunki połączeniowe, w operacje połączenia relacji. π nazwisko σ id_prac=prac σ zatrudniony < ' ' >< id_prac=prac r Udział >< proj=id_proj Pracownicy Pracownicy σ budżet > Projekty σ budżet > Projekty σ zatrudniony < ' ' Udział

10 5. Korzystając z reguł (4), (5), (8) i (12) opisujących własności podziału i przemienności operacji projekcji podziel i przesuń operacje projekcji jak najniżej w dół drzewa zapytania. Jeżeli potrzeba twórz nowe operacje projekcji. π id_proj σ budżet > Projekty π prac >< proj=id_proj π nazwisko >< id_prac=prac π id_prac, nazwisko π proj, prac Udział Pracownicy σ zatrudniony < ' ' Kosztowa optymalizacja fizycznych planów zapytań Fizyczny plan zapytania obejmuje: Porządek i łączenie operacji komutatywnych i łącznych. Metodę dostępu dla każdego operatora w planie logicznym. Dodanie operacji nie występujących w planie logicznym, ale niezbędnych dla planu fizycznego (np. sortowania). Sposób przesyłania argumentów między operatorami: składowanie wyników przejściowych lub przesyłanie pojedynczych danych między buforami. σ płaca>5000 PRACOWNICY <IdZesp=IdZesp> ZESPOŁY Nested Loops Full Table Access (Zespoły) Table Access by ROWID (Pracownicy) Index Scan (Płaca)

11 Funkcja kosztu Składniki funkcji kosztu Operacje dyskowe (D): szukanie, czytanie i zapis bloków dyskowych (podstawowa część kosztów) [liczba operacji dyskowych] Zajętość pamięci dyskowej (S): składowanie wyników pośrednich [liczba bloków dyskowych] Czas przetwarzania (P): czas wykonywania algorytmów związanych z metodami dostępu [liczba kroków algorytmu] Zajętość pamięci operacyjnej (M): przydział pamięci na bufory dla operacji sortowania, usuwania duplikatów, nested-loop, itp. [rozmiar przydzielonej pamięci] Koszty komunikacyjne (K): w przypadku wykonywania zapytań w środowisku rozproszonym [liczba przesyłanych bloków danych] Funkcja kosztu: suma ważona składników kosztu Przykładowa funkcja kosztu: Koszt = 0,7*D + 0,05*S + 0,05*P + 0,15*M + 0,05*K Dane wejściowe dla wyznaczania składników funkcji kosztu liczba rekordów w pliku liczba bloków danych zajmowanych przez plik średnia zajętość bloku średnia długość rekordów liczba różnych wartości danego atrybutu wartość minimalna i maksymalna wartość każdego atrybutu rozkład wartości wysokość indeksu liczba liści w indeksie współczynnik uporządkowania indeksowanego atrybutu ANALYZE {TABLE tablica INDEX indeks CLUSTER grono} { COMPUTE STATISTICS ESTIMATE STATISTICS SAMPLE liczba {ROWS PERCENTS} DELETE STATISTICS }

12 Składowanie informacji o rozkładach danych Histogramy danych Podział dziedziny na przedziały o stałej długości: (v 0 v 0 +d) n 0, (v 0 +d v 0 +2d) n 1,... Najczęściej występujące wartości: , , , inne 459 Podział zbioru wartości atrybutu na n podzbiorów o stałej wielkości: ( ) 1, ( ) 2,..., ( ) n Szacowanie rozmiarów pośrednich wyników zapytań Pośrednie wyniki zapytania są argumentami kolejnych operacji relacyjnych Szacowanie rozmiarów selekcji S relacja źródłowa O=σ(S) relacja wynikowa r(r) liczba rekordów relacji R V(R,A) liczba różnych wartości atrybutu A relacji R 1. O=σ A=c (S) r(o)=r(s)/v(s,a) 2. O=σ A<c (S) r(o)=r(s)/3 3. O=σ A c (S) r(o)= r(s) (V(S,A)-1)/V(S,A) 4. O=σ A=c1 and B=c2 (S) r(o)= r(s)/(v(s,a) V(S,B)) 5. O=σ A=c1 or B=c2 (S) r(o)=r(s) (1-(1-1/V(S,A)) (1-1/V(S,B)))

13 Szacowanie rozmiarów połączenia 1. O=R R.X=S.YS r(o)=r(r) r(s)/max(v(r,x),v(s,y)) 2. O=R R.X=S.Y and R.W=S.ZS r(r) r(s) r(o)= (max(v(r,x),v(s,y)) (max(v(r,x),v(s,y)) Urealnienie kosztu operacji dyskowych Na czas wykonywania operacji dyskowych składają się trzy podstawowe składniki: czas szukania ścieżki (s) (10-50 [ms]); czas opóźnienia obrotu (rd); dla prędkości obrotowej p wyrażonej w liczbie obrotów na minutę, czas ten wynosi: rd = (1/2)*(1/p) [min] = (60*1000)/(2*p) [ms]; dla: p = 5400 [rpm], rd = 5,56 [ms]. czas transferu bloku (btt); zależy od rozmiaru ścieżki, rozmiaru transferowanego bloku i prędkości obrotowej dysku. Dla danej prędkości transferu tr czas transferu sektora o rozmiarze B wynosi: btt = B/tr [ms]. Dla ścieżki o rozmiarze 50 kb, i dla prędkości obrotowej dysku 5400 rpm, prędkość transferu danych wynosi: tr = (50*1000)/(60*1000/5400) = 4500 [bajtów/ms]; i dalej dla bloku B=2kB: btt = 0,46 [ms].

14 Wpływ rozkładu danych na czasy wykonywania operacji dyskowych Czas odczytu k bloków rozmieszczonych sekwencyjnie na jednej ścieżce będzie wynosił w tym wypadku: czas sekwencyjnie = s + rd + k * btt [ms]. Czas odczytu k bloków losowo rozrzuconych po dysku będzie wynosił: czas losowo = k * (s + rd + btt) [ms]. Dla k = 25, B = 2 [kb], s =10 [ms], rd = 5,56 [ms], btt = 0,46 [ms]: czas sekwencyjnie = 27,06 [ms], czas losowo = 400 [ms]. Optymalizacja zapytań w oparciu o funkcję kosztów Optymalizacja zapytań polega na znalezieniu optymalnego stanu w przestrzeni stanów zawierającej wszystkie możliwe plany wykonania danego zapytania. Stan optymalny jest to stan o najmniejszej wartości funkcji kosztu. Optymalizator zapytań jest charakteryzowany przez: Reguły transformacji służące do generowania przestrzeni stanów dla danego zapytania. Algorytm przeszukiwania przestrzeni stanów pozwalający na przechodzenie między poszczególnymi stanami. Funkcja kosztu, która jest stosowana do każdego ze stanów.

15 Algorytmy przeszukiwania 1. Algorytmy dokładne pełne przeszukiwanie (exhaustive search) programowanie dynamiczne 2. Algorytmy przybliżone heurystyki optymalizacja składniowa 3. Metaheurystyki - algorytmy kombinatoryczne Iterative Improvement Simulated Annealing Tabu Search Podstawowe pojęcia optymalizacji kombinatorycznej Stan akceptowalny plan wykonania zapytania Przestrzeń stanów zbiór wszystkich możliwych stanów Ruch wygenerowanie i przejście do nowego stanu Sąsiad stan osiągany ze stanu bieżącego za pomocą jednego ruchu Koszt stanu wartość funkcji kosztu dla danego planu zapytania Minimum lokalne stan, dla którego żaden z sąsiadów nie posiada niższego kosztu Minimum globalne stan o najniższym koszcie w przestrzeni stanów - rozwiązanie optymalne

16 Algorytmy kombinatoryczne Iterative Improvement 1. wybierz losowo stan początkowy; 2. przeszukuj przestrzeń stanów przez wykonywanie ruchów, akceptując tylko sąsiadów z niższym kosztem, aż do osiągnięcia minimum lokalnego; 3. powtarzaj kroki 1) i 2) do momentu spełnienia warunku kończącego optymalizację; 4. zwróć najlepsze znalezione minimum lokalne Simulated Annealing 1. wybierz losowo stan początkowy; 2. dobierz początkową temperaturę; 3. redukując stopniowo T przeszukuj przestrzeń stanów, akceptując zawsze sąsiadów z niższym kosztem i akceptując sąsiadów o wyższym koszcie z prawdopodobieństwem równym e- C/T; 4. gdy system zostanie zamrożony, zwróć najlepszy znaleziony stan; Tabu Search 1. wybierz losowo stan początkowy; 2. przeszukuj przestrzeń stanów przez wykonywanie ruchów, pamiętając na liście Tabu ostatnio odwiedzone stany; aby wykonać ruch: wygeneruj zbiór sąsiadów, którzy nie figurują na liście Tabu; wykonaj ruch w stronę najlepszego znalezionego sąsiada; 3. powtarzaj krok 2) do momentu spełnienia warunku kończącego optymalizację; 4. zwróć najlepszy znaleziony stan;

Optymalizacja poleceń SQL Metody dostępu do danych

Optymalizacja poleceń SQL Metody dostępu do danych Optymalizacja poleceń SQL Metody dostępu do danych 1 Metody dostępu do danych Określają, w jaki sposób dane polecenia SQL są odczytywane z miejsca ich fizycznej lokalizacji. Dostęp do tabeli: pełne przeglądnięcie,

Bardziej szczegółowo

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

Optymalizacja zapytań. Proces przetwarzania i obliczania wyniku zapytania (wyrażenia algebry relacji) w SZBD Optymalizacja zapytań Proces przetwarzania i obliczania wyniku zapytania (wyrażenia algebry relacji) w SZBD Elementy optymalizacji Analiza zapytania i przekształcenie go do lepszej postaci. Oszacowanie

Bardziej szczegółowo

Optymalizacja poleceń SQL Wprowadzenie

Optymalizacja poleceń SQL Wprowadzenie Optymalizacja poleceń SQL Wprowadzenie 1 Fazy przetwarzania polecenia SQL 2 Faza parsingu (1) Krok 1. Test składniowy weryfikacja poprawności składniowej polecenia SQL. Krok 2. Test semantyczny m.in. weryfikacja

Bardziej szczegółowo

Optymalizacja poleceń SQL

Optymalizacja poleceń SQL Optymalizacja poleceń SQL Przetwarzanie polecenia SQL użytkownik polecenie PARSER słownik REGUŁOWY RBO plan zapytania RODZAJ OPTYMALIZATORA? GENERATOR KROTEK plan wykonania statystyki KOSZTOWY CBO plan

Bardziej szczegółowo

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

Bazy danych wykład dwunasty. dwunasty Wykonywanie i optymalizacja zapytań SQL 1 / 36 Bazy danych wykład dwunasty Wykonywanie i optymalizacja zapytań SQL Konrad Zdanowski Uniwersytet Kardynała Stefana Wyszyńskiego, Warszawa dwunasty Wykonywanie i optymalizacja zapytań SQL 1 / 36 Model kosztów

Bardziej szczegółowo

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

Język SQL. Rozdział 5. Połączenia i operatory zbiorowe Język SQL. Rozdział 5. Połączenia i operatory zbiorowe Iloczyn kartezjański, połączenie równościowe, połączenie nierównościowe, połączenie zwrotne, połączenie zewnętrzne, składnia jawna połączeń, składnia

Bardziej szczegółowo

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

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA Relacyjny model danych. Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe Relacyjny model danych Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe Charakterystyka baz danych Model danych definiuje struktury danych operacje ograniczenia integralnościowe

Bardziej szczegółowo

wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK

wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK 1 2 3 Pamięć zewnętrzna Pamięć zewnętrzna organizacja plikowa. Pamięć operacyjna organizacja blokowa. 4 Bufory bazy danych. STRUKTURA PROSTA

Bardziej szczegółowo

Cwiczenie 4. Połączenia, struktury dodatkowe

Cwiczenie 4. Połączenia, struktury dodatkowe Cwiczenie 4. Połączenia, struktury dodatkowe Optymalizacja poleceń SQL 1 W niniejszym ćwiczeniu przyjrzymy się, w jaki sposób realizowane są operacje połączeń w poleceniach SQL. Poznamy również dodatkowe

Bardziej szczegółowo

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. Przetwarzanie zapytań. Etapy przetwarzania zapytania. Translacja zapytań języka SQL do postaci wyrażeń algebry relacji Plan wykładu Bazy danych Wykład 12: Optymalizacja zapytań. Język DDL, DML (cd) Etapy przetwarzania zapytania Implementacja wyrażeń algebry relacji Reguły heurystyczne optymalizacji zapytań Kosztowa optymalizacja

Bardziej szczegółowo

Przykładowe B+ drzewo

Przykładowe B+ drzewo Przykładowe B+ drzewo 3 8 1 3 7 8 12 Jak obliczyć rząd indeksu p Dane: rozmiar klucza V, rozmiar wskaźnika do bloku P, rozmiar bloku B, liczba rekordów w indeksowanym pliku danych r i liczba bloków pliku

Bardziej szczegółowo

Kosztowy optymalizator zapytań

Kosztowy optymalizator zapytań Kosztowy optymalizator zapytań Marek Wojciechowski, Maciej Zakrzewicz Politechnika Poznańska, Instytut Informatyki marek.wojciechowski@cs.put.poznan.pl maciej.zakrzewicz@cs.put.poznan.pl Streszczenie Praktycznie

Bardziej szczegółowo

Definicja pliku kratowego

Definicja pliku kratowego Pliki kratowe Definicja pliku kratowego Plik kratowy (ang grid file) jest strukturą wspierająca realizację zapytań wielowymiarowych Uporządkowanie rekordów, zawierających dane wielowymiarowe w pliku kratowym,

Bardziej szczegółowo

1 Wstęp do modelu relacyjnego

1 Wstęp do modelu relacyjnego Plan wykładu Model relacyjny Obiekty relacyjne Integralność danych relacyjnych Algebra relacyjna 1 Wstęp do modelu relacyjnego Od tego się zaczęło... E. F. Codd, A Relational Model of Data for Large Shared

Bardziej szczegółowo

Optymalizacja zapytań część II

Optymalizacja zapytań część II Optymalizacja zapytań część II Wykład przygotował: Tadeusz Morzy BD wykład 13 Niniejszy wykład jest kontynuacją wykładu poświęconego problemom wykonywania i optymalizacji zapytań w systemach baz danych.

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 8b: Algebra relacyjna http://hibiscus.if.uj.edu.pl/~erichter/dydaktyka2009/tpi-2009 Prof. dr hab. Elżbieta Richter-Wąs 1 Algebra relacyjna Algebra relacyjna (ang.

Bardziej szczegółowo

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

Optymalizacja w relacyjnych bazach danych - wybór wydajnej strategii obliczania wyrażenia relacyjnego. Plan wykładu Spis treści 1 Optymalizacja 1 1.1 Etapy optymalizacji............................... 3 1.2 Transformacja zapytania............................ 3 1.3 Przepisywanie zapytań.............................

Bardziej szczegółowo

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

Fazy przetwarzania polecenia SQL. Faza parsingu (2) Faza parsingu (1) Optymalizacja poleceń SQL Część 1. Fazy przetwarzania polecenia SQL Optymalizacja poleceń SQL Część 1. Fazy przetwarzania polecenia SQL, pojęcie i cel optymalizacji, schemat optymalizacji, plan wykonania polecenia SQL, polecenie EXPLAIN

Bardziej szczegółowo

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

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę Podzapytania Rozdział 5 Podzapytania podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, klauzula WITH, operatory ANY, ALL i EXISTS, zapytania hierarchiczne Podzapytanie jest poleceniem

Bardziej szczegółowo

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

Statystyki (1) Optymalizacja poleceń SQL Część 2. Statystyki (2) Statystyki (3) Informacje, opisujące dane i struktury obiektów bazy danych. Statystyki (1) Informacje, opisujące dane i struktury obiektów bazy danych. Optymalizacja poleceń SQL Część 2. Statystyki i histogramy, metody dostępu do danych Przechowywane w słowniku danych. Używane

Bardziej szczegółowo

Język SQL. Rozdział 7. Zaawansowane mechanizmy w zapytaniach

Język SQL. Rozdział 7. Zaawansowane mechanizmy w zapytaniach Język SQL. Rozdział 7. Zaawansowane mechanizmy w zapytaniach Ograniczanie rozmiaru zbioru wynikowego, klauzula WITH, zapytania hierarchiczne. 1 Ograniczanie liczności zbioru wynikowego (1) Element standardu

Bardziej szczegółowo

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

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę Podzapytania Rozdział 5 Podzapytania podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, klauzula WITH, operatory ANY, ALL i EXISTS, zapytania hierarchiczne Podzapytanie jest poleceniem

Bardziej szczegółowo

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

Optymalizacja. Plan wykonania polecenia SQL (1) Plan wykonania polecenia SQL (2) Rozdział 19 Wprowadzenie do optymalizacji poleceń SQL Optymalizacja Rozdział 19 Wprowadzenie do optymalizacji poleceń SQL Pojęcie i cel optymalizacji, schemat optymalizacji, plan wykonania polecenia SQL, polecenie EXPLAIN PLAN, dyrektywa AUTOTRACE, wybór

Bardziej szczegółowo

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

Plan wykładu. Klucz wyszukiwania. Pojęcie indeksu BAZY DANYCH. Pojęcie indeksu - rodzaje indeksów Metody implementacji indeksów. Plan wykładu 2 BAZY DANYCH Wykład 4: Indeksy. Pojęcie indeksu - rodzaje indeksów Metody implementacji indeksów struktury statyczne struktury dynamiczne Małgorzata Krętowska Wydział Informatyki PB Pojęcie

Bardziej szczegółowo

Język SQL. Rozdział 2. Proste zapytania

Język SQL. Rozdział 2. Proste zapytania Język SQL. Rozdział 2. Proste zapytania Polecenie SELECT, klauzula WHERE, operatory SQL, klauzula ORDER BY. 1 Wprowadzenie do języka SQL Język dostępu do bazy danych. Język deklaratywny, zorientowany na

Bardziej szczegółowo

Relacyjny model danych

Relacyjny model danych Relacyjny model danych Wykład przygotował: Robert Wrembel BD wykład 2 (1) 1 Plan wykładu Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe BD wykład 2 (2) W ramach drugiego

Bardziej szczegółowo

< K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 >

< K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 > Typy indeksów Indeks jest zakładany na atrybucie relacji atrybucie indeksowym (ang. indexing field). Indeks zawiera wartości atrybutu indeksowego wraz ze wskaźnikami do wszystkich bloków dyskowych zawierających

Bardziej szczegółowo

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

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę Podzapytania Rozdział 5 Podzapytania podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, klauzula WITH, operatory ANY, ALL i EXISTS, zapytania hierarchiczne Podzapytanie jest poleceniem

Bardziej szczegółowo

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Modelowanie hierarchicznych struktur w relacyjnych bazach danych Modelowanie hierarchicznych struktur w relacyjnych bazach danych Wiktor Warmus (wiktorwarmus@gmail.com) Kamil Witecki (kamil@witecki.net.pl) 5 maja 2010 Motywacje Teoria relacyjnych baz danych Do czego

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska Jeśli pobieramy dane z więcej niż jednej tabeli, w rzeczywistości wykonujemy tak zwane złączenie. W SQL istnieją instrukcje pozwalające na formalne wykonanie złączenia tabel - istnieje

Bardziej szczegółowo

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT Studia podyplomowe Inżynieria oprogramowania współfinansowane przez Unię Europejska w ramach Europejskiego Funduszu Społecznego Projekt Studia podyplomowe z zakresu wytwarzania oprogramowania oraz zarządzania

Bardziej szczegółowo

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

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. 77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. Przy modelowaniu bazy danych możemy wyróżnić następujące typy połączeń relacyjnych: jeden do wielu, jeden do jednego, wiele

Bardziej szczegółowo

Optymalizacja poleceń SQL

Optymalizacja poleceń SQL Optymalizacja poleceń SQL Optymalizacja kosztowa i regułowa, dyrektywa AUTOTRACE w SQL*Plus, statystyki i histogramy, metody dostępu i sortowania, indeksy typu B* drzewo, indeksy bitmapowe i funkcyjne,

Bardziej szczegółowo

Podstawy Informatyki. Metody dostępu do danych

Podstawy Informatyki. Metody dostępu do danych Podstawy Informatyki c.d. alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Bazy danych Struktury danych Średni czas odszukania rekordu Drzewa binarne w pamięci dyskowej 2 Sformułowanie

Bardziej szczegółowo

Przestrzenne bazy danych Podstawy języka SQL

Przestrzenne bazy danych Podstawy języka SQL Przestrzenne bazy danych Podstawy języka SQL Stanisława Porzycka-Strzelczyk porzycka@agh.edu.pl home.agh.edu.pl/~porzycka Konsultacje: wtorek godzina 16-17, p. 350 A (budynek A0) 1 SQL Język SQL (ang.structured

Bardziej szczegółowo

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

Fazy przetwarzania zapytania zapytanie SQL. Optymalizacja zapytań. Klasyfikacja technik optymalizacji zapytań. Proces optymalizacji zapytań. 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

Bardziej szczegółowo

Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski

Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski : idea Indeksowanie: Drzewo decyzyjne, przeszukiwania binarnego: F = {5, 7, 10, 12, 13, 15, 17, 30, 34, 35, 37, 40, 45, 50, 60} 30 12 40 7 15 35 50 Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski

Bardziej szczegółowo

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

Język SQL. Rozdział 6. Podzapytania Podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, operatory ANY, ALL i EXISTS. Język SQL. Rozdział 6. Podzapytania Podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, operatory ANY, ALL i EXISTS. 1 Podzapytania Podzapytanie jest poleceniem SELECT zagnieżdżonym

Bardziej szczegółowo

Wykład XII. optymalizacja w relacyjnych bazach danych

Wykład XII. optymalizacja w relacyjnych bazach danych 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

Bardziej szczegółowo

Model relacyjny. Wykład II

Model relacyjny. Wykład II Model relacyjny został zaproponowany do strukturyzacji danych przez brytyjskiego matematyka Edgarda Franka Codda w 1970 r. Baza danych według definicji Codda to zbiór zmieniających się w czasie relacji

Bardziej szczegółowo

2011-01-20 PLAN WYKŁADU BAZY DANYCH ETAPY PRZETWARZANIA ZAPYTANIA OPTYMALIZACJA ZAPYTAŃ

2011-01-20 PLAN WYKŁADU BAZY DANYCH ETAPY PRZETWARZANIA ZAPYTANIA OPTYMALIZACJA ZAPYTAŃ PLAN WYKŁADU BAZY DANYCH Wykład 11 dr inż. Agnieszka Bołtuć Pojęcie optymalizacji Etapy wykonywania zapytania Etapy optymalizacji Rodzaje optymalizacji Reguły transformacji Procedury implementacyjne Koszty

Bardziej szczegółowo

sprowadza się od razu kilka stron!

sprowadza się od razu kilka stron! Bazy danych Strona 1 Struktura fizyczna 29 stycznia 2010 10:29 Model fizyczny bazy danych jest oparty na pojęciu pliku i rekordu. Plikskłada się z rekordów w tym samym formacie. Format rekordujest listą

Bardziej szczegółowo

Wprowadzenie do języka SQL

Wprowadzenie do języka SQL Wprowadzenie do języka SQL język dostępu do bazy danych grupy poleceń języka: DQL (ang( ang.. Data Query Language) DML (ang( ang.. Data Manipulation Language) DDL (ang( ang.. Data Definition Language)

Bardziej szczegółowo

Model relacyjny. Wykład II

Model relacyjny. Wykład II Model relacyjny został zaproponowany do strukturyzacji danych przez brytyjskiego matematyka Edgarda Franka Codda w 1970 r. Baza danych według definicji Codda to zbiór zmieniających się w czasie relacji

Bardziej szczegółowo

Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane

Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane Algorytmy i struktury danych Wykład 4 Tablice nieporządkowane i uporządkowane Tablice uporządkowane Szukanie binarne Szukanie interpolacyjne Tablice uporządkowane Szukanie binarne O(log N) Szukanie interpolacyjne

Bardziej szczegółowo

SQL SERVER 2012 i nie tylko:

SQL SERVER 2012 i nie tylko: SQL SERVER 2012 i nie tylko: Wstęp do planów zapytań Cezary Ołtuszyk coltuszyk.wordpress.com Kilka słów o mnie Starszy Administrator Baz Danych w firmie BEST S.A. (Bazy danych > 1TB) Konsultant z zakresu

Bardziej szczegółowo

Zad. 1. Systemy Baz Danych przykładowe zadania egzaminacyjne

Zad. 1. Systemy Baz Danych przykładowe zadania egzaminacyjne Zad. 1 Narysuj schemat związków encji dla przedstawionej poniżej rzeczywistości. Oznacz unikalne identyfikatory encji. Dla każdego związku zaznacz jego opcjonalność/obowiązkowość oraz stopień i nazwę związku.

Bardziej szczegółowo

Laboratorium Bazy danych SQL 2

Laboratorium Bazy danych SQL 2 Klauzula order by występuje jako ostatnia klauzula w poleceniu select, powoduje posortowanie wierszy będących wynikiem zapytania według wartości atrybutu w niej wskazanego. Domyślnie sortowanie jest według

Bardziej szczegółowo

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

Indeksy w bazach danych. Motywacje. Techniki indeksowania w eksploracji danych. Plan prezentacji. Dotychczasowe prace badawcze skupiały się na Techniki indeksowania w eksploracji danych Maciej Zakrzewicz Instytut Informatyki Politechnika Poznańska Plan prezentacji Zastosowania indeksów w systemach baz danych Wprowadzenie do metod eksploracji

Bardziej szczegółowo

Bazy danych - BD. Indeksy. Wykład przygotował: Robert Wrembel. BD wykład 7 (1)

Bazy danych - BD. Indeksy. Wykład przygotował: Robert Wrembel. BD wykład 7 (1) Indeksy Wykład przygotował: Robert Wrembel BD wykład 7 (1) 1 Plan wykładu Problematyka indeksowania Podział indeksów i ich charakterystyka indeks podstawowy, zgrupowany, wtórny indeks rzadki, gęsty Indeks

Bardziej szczegółowo

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku System plików 1. Pojęcie pliku 2. Typy i struktury plików 3. etody dostępu do plików 4. Katalogi 5. Budowa systemu plików Pojęcie pliku (ang( ang. file)! Plik jest abstrakcyjnym obrazem informacji gromadzonej

Bardziej szczegółowo

"Kilka słów" o strojeniu poleceń SQL w kontekście Hurtowni Danych wprowadzenie. Krzysztof Jankiewicz

Kilka słów o strojeniu poleceń SQL w kontekście Hurtowni Danych wprowadzenie. Krzysztof Jankiewicz "Kilka słów" o strojeniu poleceń SQL w kontekście Hurtowni Danych wprowadzenie Krzysztof Jankiewicz Plan Opis schematu dla "kilku słów" Postać polecenia SQL Sposoby dostępu do tabel Indeksy B*-drzewo Indeksy

Bardziej szczegółowo

2012-01-16 PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew

2012-01-16 PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew 0-0-6 PLAN WYKŁADU Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew BAZY DANYCH Wykład 9 dr inż. Agnieszka Bołtuć INDEKSY - DEFINICJE Indeksy to pomocnicze struktury

Bardziej szczegółowo

Optymalizacja poleceń SQL Statystyki

Optymalizacja poleceń SQL Statystyki Optymalizacja poleceń SQL Statystyki 1 Statystyki (1) Informacje, opisujące dane i struktury obiektów bazy danych. Przechowywane w słowniku danych. Używane przez optymalizator do oszacowania: selektywności

Bardziej szczegółowo

Indeksowanie w bazach danych

Indeksowanie w bazach danych w bazach Katedra Informatyki Stosowanej AGH 5grudnia2013 Outline 1 2 3 4 Czym jest indeks? Indeks to struktura, która ma przyspieszyć wyszukiwanie. Indeks definiowany jest dla atrybutów, które nazywamy

Bardziej szczegółowo

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

Bazy danych. Plan wykładu. Model logiczny i fizyczny. Operacje na pliku. Dyski. Mechanizmy składowania Plan wykładu Bazy danych Wykład 10: Fizyczna organizacja danych w bazie danych Model logiczny i model fizyczny Mechanizmy składowania plików Moduł zarządzania miejscem na dysku i moduł zarządzania buforami

Bardziej szczegółowo

Bazy danych. Andrzej Łachwa, UJ, /15

Bazy danych. Andrzej Łachwa, UJ, /15 Bazy danych Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 15/15 PYTANIA NA EGZAMIN LICENCJACKI 84. B drzewa definicja, algorytm wyszukiwania w B drzewie. Zob. Elmasri:

Bardziej szczegółowo

INDEKSY I SORTOWANIE ZEWNĘTRZNE

INDEKSY I SORTOWANIE ZEWNĘTRZNE INDEKSY I SORTOWANIE ZEWNĘTRZNE Przygotował Lech Banachowski na podstawie: 1. Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill, 2000 (książka i slide y). 2. Lech Banachowski,

Bardziej szczegółowo

Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.

Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane. 1 Perspektywa Perspektywa (ang. view) jest strukturą logiczną

Bardziej szczegółowo

Optymalizacja zapytań część I

Optymalizacja zapytań część I Optymalizacja zapytań część I Wykład przygotował: Tadeusz Morzy BD wykład 12 Wykład jest poświęcony problemom wykonywania i optymalizacji zapytań w systemach baz danych. Rozpoczniemy od krótkiego wprowadzenia

Bardziej szczegółowo

PODSTAWY BAZ DANYCH Wykład 6 4. Metody Implementacji Baz Danych

PODSTAWY BAZ DANYCH Wykład 6 4. Metody Implementacji Baz Danych PODSTAWY BAZ DANYCH Wykład 6 4. Metody Implementacji Baz Danych 2005/2006 Wykład "Podstawy baz danych" 1 Statyczny model pamiętania bazy danych 1. Dane przechowywane są w pamięci zewnętrznej podzielonej

Bardziej szczegółowo

Optymalizacja wydajności SZBD

Optymalizacja wydajności SZBD Optymalizacja wydajności SZBD 1. Optymalizacja wydajności systemu bazodanowego Wydajność SZBD określana jest najczęściej za pomocą następujących parametrów: liczby operacji przeprowadzanych na sekundę,

Bardziej szczegółowo

INDEKSY. Biologiczne Aplikacje Baz Danych. dr inż. Anna Leśniewska

INDEKSY. Biologiczne Aplikacje Baz Danych. dr inż. Anna Leśniewska INDEKSY Biologiczne Aplikacje Baz Danych dr inż. Anna Leśniewska alesniewska@cs.put.poznan.pl INDEKSY dodatkowe struktury służące przyspieszaniu dostępu do danych, tworzone dla relacji, są jednak niezależne

Bardziej szczegółowo

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce.

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce. POLITECHNIKA WARSZAWSKA Instytut Automatyki i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 204/205 Język programowania: Środowisko programistyczne: C/C++ Qt Wykład 2 : Drzewa BST c.d., równoważenie

Bardziej szczegółowo

Algebra relacji. nazywamy każdy podzbiór iloczynu karteziańskiego D 1 D 2 D n.

Algebra relacji. nazywamy każdy podzbiór iloczynu karteziańskiego D 1 D 2 D n. Algebra relacji Definicja 1 (Relacja matematyczna). Relacją R między elementami zbioru D 1 D 2 D n, gdzie przypomnijmy D 1 D 2 D n = {(d 1, d 2,..., d n ) : d i D i, i = 1, 2,..., n}, nazywamy każdy podzbiór

Bardziej szczegółowo

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

PODSTAWY BAZ DANYCH. 15. Optymalizacja zapytań. 2009/ Notatki do wykładu Podstawy baz danych PODSTAWY BAZ DANYCH 15. Optymalizacja zapytań 1 Optymalizacja zapytań - Przykład Mamy następujące relacje: Dostawcy Id Nazwisko Imie 1 Kowalski Jan 2 Nowak Anna 3 Norek Tadeusz Dostawy Id_dostawcy Data

Bardziej szczegółowo

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

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN Integralność danych Wersje języka SQL Klauzula SELECT i JOIN Robert A. Kłopotek r.klopotek@uksw.edu.pl Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW Integralność danych Aspekty integralności

Bardziej szczegółowo

Administracja i programowanie pod Microsoft SQL Server 2000

Administracja i programowanie pod Microsoft SQL Server 2000 Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 9 Optymalizacja zapytań Pobieranie planu wykonania Indeksy i wydajność - 1 - Zadania optymalizatora

Bardziej szczegółowo

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

Zapytania, złączenia, optymalizacja zapytań, planowanie zapytań, optymalizacja indeksów. Dr inŝ. Dziwiński Piotr Katedra InŜynierii Komputerowej Zapytania, złączenia, optymalizacja zapytań, planowanie zapytań, optymalizacja indeksów. Kontakt: piotr.dziwinski@kik.pcz.pl 2 SQLQuery4_1.sql 3

Bardziej szczegółowo

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

Systemy OLAP II. Krzysztof Dembczyński. Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska Krzysztof Dembczyński Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska Technologie Wytwarzania Oprogramowania Semestr letni 2006/07 Plan wykładu Systemy baz

Bardziej szczegółowo

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

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne. Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne. 1 Perspektywa Perspektywa (ang. view) jest strukturą

Bardziej szczegółowo

Rozproszone bazy danych 3

Rozproszone bazy danych 3 Rozproszone bazy danych 3 Optymalizacja zapytań rozproszonych Laboratorium przygotował: Robert Wrembel ZSBD laboratorium 3 (1) 1 Plan laboratorium Zapytanie rozproszone i jego plan wykonania Narzędzia

Bardziej szczegółowo

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2014/15 Znajdowanie maksimum w zbiorze

Bardziej szczegółowo

Przygotowanie do egzaminu. część I

Przygotowanie do egzaminu. część I 1 Przygotowanie do egzaminu część I Modelowanie związków encji 2 Narysuj schemat EER dla poniższej rzeczywistości. Oznacz unikalne identyfikatory encji. Dla każdego związku zaznacz jego opcjonalność/obowiązkowość

Bardziej szczegółowo

Ćwiczenie zapytań języka bazy danych PostgreSQL

Ćwiczenie zapytań języka bazy danych PostgreSQL Ćwiczenie zapytań języka bazy danych PostgreSQL 1. Uruchom link w przeglądarce: http://127.0.0.1/phppgadmin 2. Kliknij w zaznaczony na czerwono link PostgreSQL: 3. Zaloguj się wpisując hasło i login student.

Bardziej szczegółowo

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne Algorytmy i struktury danych Wykład VIII Elementarne techniki algorytmiczne Co dziś? Algorytmy zachłanne (greedyalgorithms) 2 Tytułem przypomnienia metoda dziel i zwyciężaj. Problem można podzielić na

Bardziej szczegółowo

SYSTEMY UCZĄCE SIĘ WYKŁAD 4. DRZEWA REGRESYJNE, INDUKCJA REGUŁ. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska

SYSTEMY UCZĄCE SIĘ WYKŁAD 4. DRZEWA REGRESYJNE, INDUKCJA REGUŁ. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska SYSTEMY UCZĄCE SIĘ WYKŁAD 4. DRZEWA REGRESYJNE, INDUKCJA REGUŁ Częstochowa 2014 Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska DRZEWO REGRESYJNE Sposób konstrukcji i przycinania

Bardziej szczegółowo

Haszowanie (adresowanie rozpraszające, mieszające)

Haszowanie (adresowanie rozpraszające, mieszające) Haszowanie (adresowanie rozpraszające, mieszające) Tadeusz Pankowski H. Garcia-Molina, J.D. Ullman, J. Widom, Implementacja systemów baz danych, WNT, Warszawa, Haszowanie W adresowaniu haszującym wyróżniamy

Bardziej szczegółowo

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

BAZY DANYCH algebra relacyjna. Opracował: dr inż. Piotr Suchomski BAZY DANYCH algebra relacyjna Opracował: dr inż. Piotr Suchomski Wprowadzenie Algebra relacyjna składa się z prostych, ale mocnych mechanizmów tworzenia nowych relacji na podstawie danych relacji. Hdy

Bardziej szczegółowo

Optymalizacja poleceń SQL Indeksy

Optymalizacja poleceń SQL Indeksy Optymalizacja poleceń SQL Indeksy Indeksy Dodatkowe struktury służące przyspieszaniu dostępu do danych. Tworzone dla relacji, są jednak niezależne logicznie i fizycznie od danych relacji. O użyciu indeksu

Bardziej szczegółowo

Sortowanie bąbelkowe

Sortowanie bąbelkowe 1/98 Sortowanie bąbelkowe (Bubble sort) prosty i nieefektywny algorytm sortowania wielokrotnie przeglądamy listę elementów, porównując dwa sąsiadujące i zamieniając je miejscami, jeśli znajdują się w złym

Bardziej szczegółowo

Algorytmy i struktury danych. Wykład 6 Tablice rozproszone cz. 2

Algorytmy i struktury danych. Wykład 6 Tablice rozproszone cz. 2 Algorytmy i struktury danych Wykład 6 Tablice rozproszone cz. 2 Na poprzednim wykładzie Wiele problemów wymaga dynamicznych zbiorów danych, na których można wykonywać operacje: wstawiania (Insert) szukania

Bardziej szczegółowo

Systemy GIS Tworzenie zapytań w bazach danych

Systemy GIS Tworzenie zapytań w bazach danych Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE

Bardziej szczegółowo

Podstawy języka SQL cz. 2

Podstawy języka SQL cz. 2 Podstawy języka SQL cz. 2 1. Operatory zbiorowe a. UNION suma zbiorów z eliminacją powtórzeń, b. EXCEPT różnica zbiorów z eliminacją powtórzeń, c. INTERSECT część wspólna zbiorów z eliminacją powtórzeń.

Bardziej szczegółowo

WPROWADZENIE DO BAZ DANYCH

WPROWADZENIE DO BAZ DANYCH WPROWADZENIE DO BAZ DANYCH Pojęcie danych i baz danych Dane to wszystkie informacje jakie przechowujemy, aby w każdej chwili mieć do nich dostęp. Baza danych (data base) to uporządkowany zbiór danych z

Bardziej szczegółowo

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

Kompresja danych Streszczenie Studia Dzienne Wykład 10, 1 Kwantyzacja wektorowa Kompresja danych Streszczenie Studia Dzienne Wykład 10, 28.04.2006 Kwantyzacja wektorowa: dane dzielone na bloki (wektory), każdy blok kwantyzowany jako jeden element danych. Ogólny

Bardziej szczegółowo

System plików warstwa fizyczna

System plików warstwa fizyczna System plików warstwa fizyczna Dariusz Wawrzyniak Przydział miejsca na dysku Przydział ciągły (ang. contiguous allocation) cały plik zajmuje ciąg kolejnych bloków Przydział listowy (łańcuchowy, ang. linked

Bardziej szczegółowo

System plików warstwa fizyczna

System plików warstwa fizyczna System plików warstwa fizyczna Dariusz Wawrzyniak Plan wykładu Przydział miejsca na dysku Zarządzanie wolną przestrzenią Implementacja katalogu Przechowywanie podręczne Integralność systemu plików Semantyka

Bardziej szczegółowo

System plików warstwa fizyczna

System plików warstwa fizyczna System plików warstwa fizyczna Dariusz Wawrzyniak Przydział miejsca na dysku Zarządzanie wolną przestrzenią Implementacja katalogu Przechowywanie podręczne Integralność systemu plików Semantyka spójności

Bardziej szczegółowo

Systemy plików i zarządzanie pamięcią pomocniczą. Struktura pliku. Koncepcja pliku. Atrybuty pliku

Systemy plików i zarządzanie pamięcią pomocniczą. Struktura pliku. Koncepcja pliku. Atrybuty pliku Systemy plików i zarządzanie pamięcią pomocniczą Koncepcja pliku Metody dostępu Organizacja systemu plików Metody alokacji Struktura dysku Zarządzanie dyskiem Struktura pliku Prosta sekwencja słów lub

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 8a Relacyjny model danych 21.11.2008 Relacyjny model danych Jednym z najważniejszych zastosowań komputerów jest przechowywanie i przetwarzanie informacji. Relacyjny

Bardziej szczegółowo

Cwiczenie 2. Metody dostępu do danych

Cwiczenie 2. Metody dostępu do danych Optymalizacja poleceń SQL 1 Cwiczenie 2. Metody dostępu do danych W niniejszym ćwiczeniu przyjrzymy się metodom dostępu do tabel i indeksów używanych w planach wykonywania zapytań. Uwaga! Przed rozpoczęciem

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 8a: Relacyjny model danych http://hibiscus.if.uj.edu.pl/~erichter/dydaktyka2009/tpi-2009 Prof. dr hab. Elżbieta Richter-Wąs 1 Relacyjny model danych Jednym z najważniejszych

Bardziej szczegółowo

2010-10-21 PLAN WYKŁADU BAZY DANYCH MODEL DANYCH. Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna HISTORIA

2010-10-21 PLAN WYKŁADU BAZY DANYCH MODEL DANYCH. Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna HISTORIA PLAN WYKŁADU Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna BAZY DANYCH Wykład 2 dr inż. Agnieszka Bołtuć MODEL DANYCH Model danych jest zbiorem ogólnych zasad posługiwania

Bardziej szczegółowo

RBD Relacyjne Bazy Danych

RBD Relacyjne Bazy Danych Wykład 7 RBD Relacyjne Bazy Danych Bazy Danych - A. Dawid 2011 1 Selekcja σ C (R) W wyniku zastosowania operatora selekcji do relacji R powstaje nowa relacja T do której należy pewien podzbiór krotek relacji

Bardziej szczegółowo

Indeksy. Wprowadzenie. Indeksy jednopoziomowe indeks podstawowy indeks zgrupowany indeks wtórny. Indeksy wielopoziomowe

Indeksy. Wprowadzenie. Indeksy jednopoziomowe indeks podstawowy indeks zgrupowany indeks wtórny. Indeksy wielopoziomowe 1 Plan rozdziału 2 Indeksy Indeksy jednopoziomowe indeks podstawowy indeks zgrupowany indeks wtórny Indeksy wielopoziomowe Indeksy typu B-drzewo B-drzewo B+ drzewo B* drzewo Wprowadzenie 3 Indeks podstawowy

Bardziej szczegółowo

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010 Algorytmy równoległe Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka Znajdowanie maksimum w zbiorze n liczb węzły - maksimum liczb głębokość = 3 praca = 4++ = 7 (operacji) n - liczność

Bardziej szczegółowo

Operacja Teta-złączenia. v1 v1 Θ v2

Operacja Teta-złączenia. v1 v1 Θ v2 Operacja Teta-złączenia Dane są: r(r) tabela r o schemacie R, A R s(s) tabela s o schemacie S, B S R i S nie zawierają tych samych nazw (R S = Ø) Θ {>, =,

Bardziej szczegółowo

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

Bazy danych 2013/14. Egzamin. (5 pkt). Baza danych przechowuje w relacji binarnej G graf skierowany. Bazy danych 2013/14. Egzamin Zadanie 1 (5 pkt). Baza danych przechowuje w relacji binarnej G graf skierowany. (a) Napisz formułę logiki pierwszego rzędu ϕ(x, y) bez kwantyfikatorów,, która definiuje zapytanie

Bardziej szczegółowo