Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Slide 15- 1. Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 15 Algorithms for Query Processing and Optimization.

Lignende præsentationer


Præsentationer af emnet: "Slide 15- 1. Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 15 Algorithms for Query Processing and Optimization."— Præsentationens transcript:

1 Slide 15- 1

2 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 15 Algorithms for Query Processing and Optimization

3 Slide 15- 3

4 SQL → Relationel Algebra Slide 15- 4 SELECT Lname,Fname FROM EMPLOYEE WHERE Salary >( SELECT max(Salary) FROM EMPLOYEE WHERE Dno = 5) SELECT max(Salary) FROM EMPLOYEE WHERE Dno = 5 SELECT Lname,Fname FROM EMPLOYEE WHERE Salary >c → ExecutionplanExecutionplan :

5 Sortering Slide 15- 5 Sortering er en af de primære algoritmer der bruges i SQL Querys. F.eks. Ved: Order BY Join Union Intersection Distinct En effektiv sorterings algoritme til store filer er SORT-MERGE algoritmen

6 Slide 15- 6 Merge-Sort:

7 Eksempel på merge-sort Slide 15- 7 Tag de 13 ruder fra et kortspil: Sæt i =1 Sæt j = 13 (antag at hvert kort fylder en blok) Sæt k = 3 (Blokstørrelsen) m =  (13/3)  = 5 Sort fasen resulterer i 5 sorterede bunker Merge fasen: j = 1 p =  log (k-1) m  =  log 2 5 = log 2 2 3 = 3 antal gennemløb j= m = 5 1.While løkke: n = 1 q =  (j/(k-1))  =  (5/2)  = 3 MERGE j = q = 3 i = i + 1 = 2 2.While løkke: n = 1 q =  (j/(k-1))  =  (3/2)  = 2 MERGE j = q = 2 i = i + 1 = 3 3.While løkke: n = 1 q =  (j/(k-1))  =  (2/2)  = 1 MERGE j = q = 1 i = i + 1 = 3 SLUT

8 Aloritmer til SELECT og JOIN Slide 15- 8 Hvordan kan DBMS’en udfører vores SELECT og JOIN operationer

9 Søgemetoder for simple selektioner Slide 15- 9

10 Søgemetoder for komplekse selektioner Slide 15- 10

11 SQL - join Slide 15- 11 Behov for at lave forespørgsler der bruger data fra flere tabeller

12 Slide 15- 12 SQL - join Generel join (kobling af to relationer) Haves to relationer R 1 (A 1,A 2, A 3,…,A n ) og R 2 (B 1,B 2, B 3,…,B m ) join skrives som Q  R 1 [X] R 2 Resultatet af en JOIN er en relation Q med n + m attributter Q (A 1,A 2, A 3,…,A n, B 1,B 2, B 3,…,B m )

13 Nestede loop join Simpel metode: For (hver række i tabel1){ for (hver række i tabel2){ concatener tabel1Række med tabel2Række }} Udfør selektion på den dannede tabel

14 Nestede loop join Nestede-loop Join FOR (hver række i tabel1){ FOR (hver række i tabel2){ Hvis join betingelser matcher SÅ concatener tabel1Række med tabel2Række ELLERS ingenting }} Bedre end den første

15 Nestede loop join Bedre: FOR (hver page i tabel1) { FOR (hver række i tabel1-page){ FOR (hver række i tabel2-page){ Hvis join betingelser matcher SÅ concatener tabel1Række med tabel2Række ELLERS ingenting }}}} Udnytter bufferen, dvs færre læseoperationer

16 Single loop join Slide 15- 16 Hvis der findes et index på en af join betingelserne kan følgende algoritme bruges FOR (hver række i tabel1){ Slå op i indeks for tabel2 Hvis tupel eksisterer SÅ concatener tabel1Række med tabel2Række ELLERS ingenting }} (den kan selvfølgelig optimeres )

17 SQL - join Sort-merge join Først sorteres tabellerne, for siden at flettes Hash join Der beregnes en hash værdi for hver enkelt række i de 2 tabeller.

18 Slide 15- 18 Sort merge JOIN : PROJEKTION

19 Slide 15- 19 Forenings mængde Fællesmængde Mængdedifferens (R-S)

20 Query optimering Slide 15- 20 Hvad sker der så når der er en kombination af join, select og projektion ? Som f.eks.: SELECT P.Pnumber, P.Dnum, E.Lname, E.Address, E.Bdate FROM PROJECT AS P, DEPARTMENT AS D, EMPLOYEE AS E WHERE P.Dnum= D.Dnumber AND D.Mgrssn = E.Ssn AND P.Plocation = 'Stafford' Svar : Queryen splittes op

21 Slide 15- 21 SELECT P.Pnumber, P.Dnum, E.Lname, E.Address, E.Bdate FROM PROJECT AS P, DEPARTMENT AS D, EMPLOYEE AS E WHERE P.Dnum= D.Dnumber AND D.Mgrssn = E.Ssn AND P.Plocation = 'Stafford'

22 Generelle transformations regler Slide 15- 22

23 Generelle transformations regler Slide 15- 23

24 Generelle transformations regler Slide 15- 24

25 Hvordan gør vi så (Algoritme)? Slide 15- 25

26 Eksempel Slide 15- 26 SELECT Lname FROM Employee, Works_on, Project Where Pname = ’Aquarius’ AND Pnumber=Pno AND Essn=Ssn AND Bdate > ’1957-12-31’ π Lname (σ Pname= ’’Aguaris’ AND Bdate >’1957-12-31’ AND Pnumber=Pno AND Essn=Ssn ((EMPLOYEE X WORKS_ON) X PROJECT)))

27 Slide 15- 27 SELECT Lname FROM Employee, Works_on, Project Where Pname = ’Aquarius’ AND Pnumber=Pno AND Essn=Ssn AND Bdate > ’1957-12-31’

28 Slide 15- 28 SELECT Lname FROM Employee, Works_on, Project Where Pname = ’Aquarius’ AND Pnumber=Pno AND Essn=Ssn AND Bdate > ’1957-12-31’

29 Eksempel ExecutionPlan Slide 15- 29

30 Slide 15- 30


Download ppt "Slide 15- 1. Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 15 Algorithms for Query Processing and Optimization."

Lignende præsentationer


Annoncer fra Google