Kapitulli 4

You might also like

You are on page 1of 64

Kapitulli 4

Optimizimi dhe Perpunimi i Queryve

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Ceshtjet e Kapitullit
1.

2.

3.

4.

5.

Hyrje ne Perpunimin e Query-ve Algoritmet Kryesore per Ekzekutimin e Veprimeve te Query-ve Kombinimi i Veprimeve duke perdorur Pipelining Perdorimi i teknikes heuristike ne Optimizimin e Query-ve Perdorimi i Vleresimeve te Kostos ne Optimizimin e Query-ve

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 2

Hyrje ne Optimizimin dhe perpunimin e Query-ve

Teknikat e perdorura nga DBMS per te perpunuar, optimizuar dhe ekzekutuar query te nivelit te larte. Optimizimi i Query-ve: Procesi i zgjedhjes se nje strategjie te pershtatshme (eficiente) per perpunimin e nje query. Gjetja e strategjise optimale eshte zakonisht time-consuming, me perjashtim te query-ve te thjeshta; mund te kerkoje informacione qe katalogu i DBMS nuk i disponon. Termi planifikim i nje strategjie ekzekutimi eshte me i pershtatshem se optimizim i query-ve. Optimizimi i query-ve eshte i nevojshem per query qe jane te specifikuara ne nje gjuhe query-e te nivelit te larte. Nje DBMS relacionale duhet sistematikisht te vleresoje strategji te ndryshme ekzekutimi te query-ve dhe te zgjedhe ate me optimalen.
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 3

Hyrje ne Optimizimin dhe Perpunimin e Query-ve

Nje query e shprehur ne nje gjuhe te nivelit te larte (SQL) duhet me pare te skanohet, analizohet dhe vertetohet. Skanimi identifikon komponentet e gjuhes ne tekstin e query-se: fjalet celes te SQL, emrat e atributeve, emrat e relacioneve. Analiza kontrollon sintaksen e gjuhes se query-se Vlefshmeria kontrollohet nese te gjithe atributet dhe emrat e relacioneve jane te vlefshme dhe me semantike te kuptueshme.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 4

Hyrje ne Optimizimin dhe Perpunimin e Query-ve

Krijohet nje paraqitje e brendshme e query-se, zakonisht si nje strukture te dhenash peme (query tree). Mund te perdoret edhe nje strukture grafi query graph. DBMS duhet te krijoje nje strategji ekzekutimi per marrjen e rezultatit nga skedaret e brendshem te bazes se te dhenave. Nje query, tipikisht ka disa mundesi per strategjite e ekzekutimit; procesi i zgjedhjes se nje strategjie te pershtatshme optimizim i query-se.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 5

Hyrje ne Optimizimin dhe Perpunimin e Query-ve

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 6

Hyrje ne Optimizimin dhe Perpunimin e Query-ve

Moduli i optimizimit te query-se duhet te prodhoje nje plan ekzekutimi. Gjeneruesi i kodit gjeneron kodin per ekzekutimin e ketij plani. Procesori i ekzekutimit te bazes se te dhenave duhet te ekzekutoje kodin e query-se, i perkthyer ose kompiluar, per te marre rrezultatin. Nese rezulton ndonje gabim, ky procesor gjeneron mesazh gabimi.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 7

Hyrje ne Optimizimin dhe Perpunimin e Query-ve

Dy jane teknikat kryesore per optimizimin e query-ve:

Rregullat heuristike per renditjen e veprimeve ne nje strategji ekzekutimi; rregullat rirendisin veprimet ne nje peme query-sh. Vleresimi sistematik i kostove te strategjive te ndryshme te ekzekutimit dhe zgjedhja e nje plani me koston me te ulet te vleresimit.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 8

Perkthimi i Queries SQL ne Algjebren Relacionale

Ne praktike, SQL eshte gjuhe query-e qe perdoret ne shume RDBMS komerciale. Nje query ne SQL, se pari perkthehet ne nje shprehje ekuivalente te algjebres relacionale paraqitur si nje peme query-e e cila me pas optimizohet. Tipikisht, query-te ne SQL dekompozohen ne blloqe qyery-sh.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 9

Perkthimi i SQL Queries ne Algjebren Relacionale

Blloku Query:

Njesia baze qe mund te perkthehet ne veprime algjebrike dhe qe mund te optimizohet.

Nje bllok query permban nje shprehje te vetme SELECT-FROM-WHERE, po ashtu edhe GROUP BY dhe HAVING nese keto jane pjese e bllokut. Nested queries brenda nje query identifikohen si blloqe te vecanta.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 10

Perkthimi i SQL Queries ne Algjebren Relacionale


SELECT FROM WHERE EMRI, MBIEMRI PUNONJESI PAGA > ( SELECT FROM WHERE

MAX (PAGA) PUNONJESI DNO = 5);

SELECT FROM WHERE

EMRI, MBIEMRI PUNONJESI PAGA > C

SELECT FROM WHERE

MAX (PAGA) PUNONJESI DNO = 5

EMRI,MBIEMRI (PAGA>C(PUNONJESI))
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

MAX PAGA (DNO=5 (PUNONJESI))


Slide 15- 11

Algorithme per Veprimet SELECT dhe JOIN - Implementimi i veprimit SELECT

Ekzistojne shume opsione per ekzekutimin e nje veprimi SELECT; Do te paraqesim disa algoritme qe perdoren per implementimin e SELECT. Per ilustrim do te pedorim veprimet e meposhtme te specifikuara ne bazen e te dhenave KOMPANIA:

(V1): s ID='123456789' (PUNONJESI) (V2): s DNUMER>5(DEPARTAMENTI) (V3): s DNO=5(PUNONJESI) (V4): s DNO=5 AND PAGA>30000 AND GJINIA=F(PUNONJESI) (V5): s PID=123456789 AND PRNUMER=10(PUNON_NE)
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 12

Algorithme per Veprimet SELECT dhe JOIN - Implementimi i veprimit SELECT

Metodat e Kerkimit per Selektimin e Thjeshte Simple Selection. Nje numer algoritmesh kerkimi jane te mundshem per zgjedhjen e regjistrimeve nga nje skedar (file scans) ose index scan nese algoritmi perfshin perdorimin e nje indeksi. Metodat e meposhtme te kerkimit (S1-S6) jane shembuj te disa algortimeve te kerkimit qe mund te perdoren per te implementuar nje veprim selektimi.
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 13

Algorithme per Veprimet SELECT dhe JOIN - Implementimi i veprimit SELECT

Metodat e Kerkimit per Selektimin e Thjeshte Simple Selection.

S1 Kerkimi linear - Linear search (brute force):

Kap cdo regjistrim ne skedar dhe teston nese vlerat e atributeve te tij plotesojne kushtin e selektimit.
Nese kushti i selektimit permban nje krahasim barazimi ne nje atribut celes sipas te cilit skedari eshte i renditur, mund te perdoret kerkimi binar (qe eshte me eficient se kerkimi linear) (Shih V1).
Slide 15- 14

S2 Kerkimi binar - Binary search:

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Algorithme per Veprimet SELECT dhe JOIN - Implementimi i veprimit SELECT

Metodat e Kerkimit per Selektimin e Thjeshte - Simple Selection.

S3 Perdorimi i nje indeksi kryesor - primary index ose celesi hash per te gjetur nje regjistrim te vetem:

Nese kushti i selektimit permban nje krahasim barazimi ne nje atribut celes me nje indeks kryesor (ose nje celes hash) perdoret indeksi kryesor (ose celesi hash) per te gjetur regjistrimin.

S4 Perdorimi i nje indeksi kryesor per te gjetur disa regjistrime

Nese kushti i krahasimit >, , <, ose eshte ne nje fushe celes me nje indeks kryesor, perdor indeksin per te gjetur regjistrimin qe ploteson kushtin korrespondues te barazimit, me pas gjej te gjithe regjistrimet pasuese ne skedar (e renditur).

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 15

Algorithme per Veprimet SELECT dhe JOIN - Implementimi i veprimit SELECT

Metodat e Kerkimit per Selektimin e Thjeshte - Simple Selection.

S5 Perdorimi i nje indeksi cluster per te gjetur disa regjistrime:

Nese nje kusht selektimi permban nje krahasim barazimi ne nje atribut jo-celes me nje indeks cluster, perdor indeksin cluster per te gjetur te gjithe regjistrimet qe plotesojne kushtin e selektimit.

S6 Perdorimi i nje indeksi sekondar (B+-tree) ne nje krahasim barazimi:

Ne nje krahasim barazimi, kjo metode kerkimi mund te perdoret per te gjetur nje regjistrim te vetem nese fusha indeks ka nje vlere unike (eshte nje celes) ose te gjeje disa regjistrime ne se fusha indeks nuk eshte nje celes. Vec kesaj, ai mund te perdoret per te gjetur regjistrime me kushtet qe permbajne >,>=, <, ose <=.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 16

Algorithme per Veprimet SELECT dhe JOIN - Implementimi i veprimit SELECT

Metodat e Kerkimit per Selektimin e Thjeshte - Simple Selection. Metoda S1 zbatohet mbi cdo skedar, ndersa metodat e tjera varen ne ekzistencen e rruges se aksesimit ne atributin e perdorur ne kushtin e selektimit. Metodat S4 dhe S6 mund te perdoren per te kapur regjistrime ne nje rend te caktuar per shembull, 3000<=Paga<=3500. Queries qe perdorin kushte te tilla quhen range queries.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 17

Algorithme per Veprimet SELECT dhe JOIN - Implementimi i veprimit SELECT


Metodat e Kerkimit per Selektimin e perbere - Complex Selection. Nese nje kusht i nje veprimi SELECT eshte nje kusht lidhes eshte i perbere prej disa kushtesh te thjeshta te lidhura me lidhezen AND DBMS mund te perdori disa metoda te tjera per te implementuar vepimin: S7 Selektimi lidhes - Conjunctive selection- duke perdorur nje indeks individual:

Nese nje atribut i perfshire ne ndonje kusht te vetem te thjeshte ne kushtin lidhes ka nje rruge aksesimi access path qe lejon perdorimin e nje prej metodave S2-S6, perdor kete kusht per te gjetur regjistrimet dhe me pas kontrollo nese cdo regjstrim i gjetur ploteson kushtet e thejshta te mbetura ne kushtin lidhes. Nese dy ose me teper atribute bejne pjese ne kushte barazimi ne kushtin lidhes dhe ekziston nje indeks i perbere (ose strukture hash) ne fushat e kombinuara, p.sh. celesi i perbere (PID, PRNUMER) i PUNON_NE per V5, ne mund te perdorim direkt indeksin.

S8 Selektimi lidhes duke perdorur nje indeks te perbere

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 18

Algorithme per Veprimet SELECT dhe JOIN- Implementimi i veprimit SELECT

S9 Selektimi lidhes nepermjet nderprerjes (prerjes) se shenjuesve te regjistrimeve- record pointers:

Kjo metode eshte e mundur nese indekse dytesore jane te disponueshme ne te gjitha (ose disa prej) fushat e perfshira ne kushtet e krahasimit te barazise ne kushtin lidhes dhe nese indekset perfshijne shenjues mbi regjistrimet (me teper se shenjues blloku). Cdo indeks mund te perdoret per te gjetur shenjuesit e regjistrimeve qe plotesojne kushtin individual. Prerja e ketyre bashkesive te shenjuesve te regjistrimit jep shenjuesin e regjistrimit qe ploteson kushtin lidhes, te cilat me pas perdoren per te gjetur direkt keto regjistrime. Nese vetem disa prej kushteve kane indekse dytesore, cdo regjistrim i gjetur testohet me pas per te percaktuar nese ploteson kushtet e mbetura.
Slide 15- 19

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Algorithme per Veprimet SELECT dhe JOIN-Implementimi i veprimit SELECT

Sa here qe nje kusht i vetem - single condition specifikon selektimin, ne vetem mund te kontrollojme nese ekziston nje menyre aksesimi - access path ne atributin e perfshire ne kete kusht.

Nese ekziston nje menyre aksesimi, perdoret metoda korresponduese e kesaj menyre (access paths); perndryshe perdoret menyra e kerkimit linear te metodes S1 (brute force) (Shih V1, V2 dhe V3).

Per kushte lidhese selektimi - conjunctive selection conditions, sa here qe me teper se nje prej atributeve te perfshira ne kushte ka nje menyre aksesimi, optimizuesi i query-se duhet te realizohet qe te zgjedhe menyren e aksesimit qe gjen sa me pak regjistrime ne menyren me eficiente.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 20

Algorithme per Veprimet SELECT dhe JOIN - Implementimi i veprimit SELECT

Kushtet ndarese te selektimit - Disjunctive selection conditions (kushtet e thjeshta jane te lidhur me teper nga OR se nga AND).

Shume e veshtire per tu perpunuar dhe optimizuar. Vepimi V4: s DNO=5 OR PAGA>30000 OR GJINIA=F(PUNONJESI)

Mund te behet nje optimizim i vogel, spese regjistrimet qe plotesojne kushtin e vecuar jane regjistrime qe plotesojne kushtet individuale. Nese ndonje nga kushtet nuk ka nje rruge aksesimi, jemi te detyruar te perdorim menyren e kerkimit linear. Vetem nese ne cdo kusht ekziston nje rruge aksesimi ne mund te optimizojme zgjedhjen duke gjetur regjistrimet qe plotesojne cdo kusht ose id-te e tyre- dhe me pas te zbatojme veprimin e bashkimit per te eliminuar dublikatet.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 21

Algoritme per Veprimet SELECT dhe JOIN Implementimi i veprimit JOIN

Veprimi JOIN eshte nje nga veprimet qe kerkon me teper kohe ne perpunimin e querive. Veprimet JOIN qe perdorin me teper querite jane EQUIJOIN dhe NATURAL JOIN. Ka disa menyra per te zbatuar nje twoway join - nje join ne dy skedare

p.sh

A=B

Do te diskutojme teknikat vetem per implementimin e nje twoway join Shembuj


(V6): PUNONJESI DNO=DNUMER DEPARTAMENTI (V7): DEPARTAMENTI MGID=ID PUNONJESI


Slide 15- 22

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Algoritme per Veprimet SELECT dhe JOIN Implementimi i veprimit JOIN

Metodat per implementimin e joins:

J1 Nested-loop join (brute force):

Per cdo regjistrim t ne R (outer loop), gjen cdo regjistrim s prej S (inner loop) dhe teston nese dy regjistrimet plotesojne kushtin e join: t[A] = s[B].

J2 Single-loop join (duke perdorur nje strukture aksesimi per te gjetur regjistrimet koordinuese matching):

Nese ekziston nje indeks (ose celes hash) per nje nga dy atributet join p.sh. B e S gjej cdo regjistrim t ne R, dhe me pas perdor strukturen e aksesimit per te gjetur direkt te gjithe regjistrimet koordinuese s te S qe plotesojne s[B] = t[A].

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 23

Algoritme per Veprimet SELECT dhe JOIN Implementimi i veprimit JOIN

Metodat per implementimin e joins:

J3 Sort-merge join:

Nese regjistrimet e R dhe S jane fizikisht te renditur sipas vleres se atributeve join A dhe B, respektivisht, ne mund te implementojme join ne menyren me eficiente te mundshme. Te dy skedaret skanohen ne rendin e atributeve join, duke koordinuar (matching) regjistrimet qe kane te njejtat vlera per A dhe B. Ne kete metode, regjistrimet e secilit skedar skanohen vetem njehere secili, per tu koordinuar me skedarin tjeter

nese A dhe B jane qe te dy atribute jo-celes, metoda ka nevoje te modifikohet.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 24

Algoritme per Veprimet SELECT dhe JOIN Implementimi i veprimit JOIN

Metodat per implementimin e joins:

J4 Hash- join:

Regjistrimet e skedareve R dhe S behen hash ne te njejtin skedar hash, duke perdorur te njejtin funksion hash ne atributet join A te R dhe B te S si celesa hash. Se pari, ne fazen e copezimit partitioning phase behen hash ne buckets te skedarit hash regjistrimet e skedarit me madhesi me te vogel, p.sh. R. Me pas, ne fazen e shqyrtimit probing phase behet hash cdonje prej regjistrimeve te skedarit tjeter (S) ne bucket e pershtatshem dhe kombinohet me te gjithe regjistrimet koordinuese (matching) te R-se ne kete bucket.
Slide 15- 25

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Algoritme per Veprimet SELECT dhe JOIN Implementimi i veprimit JOIN

Faktoret qe ndikojne ne performancen e veprimit JOIN.


Hapesira disponibel e buffer-it . Faktori i perzgjedhjes JOIN perqindja e regjistrimeve ne nje skedar qe do te behen join me regjistrimet ne skedarin tjeter. Zgjedhja e relacionit inner kundrejt relacionit outer.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 26

Algoritme per veprimet PROJECT

Algoritem per veprimet PROJECT

<liste atributesh>(R)

1. Nje veprim PROJECT eshte i thjeshte per tu implementuar, nese <lista e atributeve> permban nje celes te relacionit R, sepse ne kete rast rezultati do te kete te njejtin numer tuples me R me vlere vetem te atributeve ne <lista e atributeve>. 2. Nese <lista e atributeve>, nuk perfshin nje celes te relacionit R, tuples te dubluar duhet te hiqen nga rezultati.

Metodat qe perdoren per te hequr tuples te dubluar:


1. Sorting 2. Hashing

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 27

Algoritme per Veprimet e Bashkesive


Algoritme per veprimet e bashkesive - SET Veprimet e bashkesive - Set: BASHKIMI - UNION, PRERJA -

INTERSECTION, DIFERENCA dhe PRODHIMI KARTEZIAN shpesh jane te veshtire per tu implementuar.

Vecanerisht PRODHIMI KARTEZIAN i relacioneve R dhe S(R X S) eshte shume i shtrenjte, sepse rezultati perfshin nje regjistrim per cdo kombinim te regjistrimeve te R dhe S. Atributet e rezultatit perfshijne te gjithe atributet e R dhe S. Nese R ka n regjistrime dhe j atribute dhe S ka m regjistrime dhe k atribute, relacioni rezultat do te kete n*m regjistrime dhe j+k atribute. Eshte e rendesishme te shmanget veprimi i PRODHIMIT KARTEZIAN dhe te zevendesohet me veprime te tjera ekuivalente gjate fazes se optimizimit.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 28

Algoritme per Veprimet e Bashkesive

Algoritme per veprimet e bashkesive - SET Veprimet UNION, INTERSECTION DHE DIFFERENCE zbatohen vetem mbi relacionet union-compatible, qe kane te njejtin numer atributesh dhe te njejtat domain-e. Menyra me e zakonshme per implemntimin e tyre: te perdoren variante te teknikes sort-merge: dy relacionet renditen ne te njejtat atribute dhe pas renditjes nje skanim i thjeshte ne cdo relacion eshte i mjaftueshem per te prodhuar rezultatin.

P.sh., mund te zbatojme veprimin R U S, duke skanuar dhe bashkuar(merge) te dy skedaret e renditur ne menyre konkurrente dhe sa here qe i njejti tuple ekziston ne te dy relacionet, vetem njeri mbahet ne rezultat.
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 29

Implementimi i Veprimeve Agregate

Veprimet MIN, MAX, COUNT, AVERAGE, SUM kur zbatohen mbi te gjithe tabelen, mund te llogariten nga nje skanim i tabeles ose duke perdorur nje indeks te pershtatshem, nese ekziston. Konsiderojme SQL query: SELECT MAX (Paga) FROM PUNONJESI Nese ne relacionin PUNONJESI ekziston nje indeks mbi Pagen, atehere optimzuesi mund te vendose perdorimin e indeksit per te kerkuar per vleren me te madhe duke ndjekur shenjuesin me djathtas ne cdo nyje te indeksit nga rrenja deri ne gjethen me te djathte. Kjo nyje perfshin vleren me te madhe te Pages si elementin e saj te fundit. Veprimi MIN mund te trajtohet ne menyre te ngjashme, duke perdorur shenjuesin me majtas per te shkuar nga rrenja ne gjethen me te majte.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 30

Implementimi i Veprimeve Agregate

Indeksi mund te perdoret gjithashtu edhe per veprimet COUNT, AVERAGE dhe SUM, por vetem nese ai eshte dense. Ne kete rast llogaritja mund te kryhet mbi vlerat ne indeks. Per nje indeks nondense, mund te perdoret numri aktual i regjistrimeve qe shoqerohen me cdo element te indeksit, per te korrigjuar llogaritjen (perjashtuar COUNT DISTINCT).

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 31

Implementimi i Veprimeve Agregate

Nese ne nje query eshte perdorur nje GROUP BY, operatori i agregimit duhet te perdoret vecant per cdo grup tuples. Se pari tabela duhet te ndahet ne nenbashkesi tuples, ku cdo grup ka te njejten vlere per atributet e grupimit. Ne kete rast, llogaritja eshte me komplekse. Konsiderojme SELECT Dno, AVG(Paga) FROM PUNONJESI GROUP BY Dno;
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 32

Implementimi i Veprimeve Agregate

Teknika e zakonshme per queries te tilla eshte qe se pari te perdoret ose sorting ose hashing ne atributet e grupimit per te ndare skedarin ne grupet e pershtatshme. Me pas algoritmi llogarit funksionin agregat per tuples ne cdo grup, qe e kane te njejte vleren e atributit te grupimit. Theksojme qe nese ne atributet e grupimit ekziston nje indeks cluster, atehere regjistrimet jane tashme te ndara (grupuara) ne nenbashkesine e duhur. Duhet vetem te zbatohet llogaritja ne cdo grup.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 33

Kombinimi i Veprimeve duke perdorur Pipelining

Nje query e specifikuar ne SQL perkthehet ne nje shprehje te algjebres relacionale : varg veprimesh relacionale. Nese ekzekutojme nje veprim te thjeshte ne nje moment, mund te krijojme skedare te perkohshem ne disk qe mbajne rezultatin e veprimeve te perkohshme. Kjo dukuri eshte time-consuming dhe shpesh mund te jete e panevojshme, meqe keta skedare menjehere do te perdoren si input per veprimin tjeter. Per te reduktuar numrin e skedareve te perkohshem, zakonisht gjenerohen kode ekzekutimi query-sh qe i korrespondojne algoritmeve per kombinimet e veprimeve ne nje query.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 34

Kombinimi i Veprimeve duke perdorur Pipelining

Per shembull: Me mire se te implementohen vecmas, nje JOIN mund te kombinohet me dy veprime SELECT ne skedaret input dhe nje veprim perfundimtar PROJECT ne skedarin rezultat; E gjithe kjo implementohet nga nje algoritem me dy skedare input dhe nje skedar te vetem output. Ne vend qe te krijohen 4 skedare te perkohshem, zbatohet direkt algoritmi dhe merret vetem nje skedar rezultat. Ky quhet pipelining ose strem-based processing. Gjenerim dinamik i kodit per te implementuar shume veprime pipeline. Sapo prodhohen tuples te rezultatit te nje veprimi, ato perdoren si input per veprimin pasues. Per shembull, nese nje veprim join ndjek dy veprime select ne relacionet baze, tuples rezultat te cdo select-i perdoren si input per algoritmin e join sapo ato prodhohen.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 35

Perdorimi i Teknikave Heuristike ne Optimizimin e Query-ve

Teknika optimizimi qe zbatojne rregulla heuristike per te modifikuar paraqitjen e brendshme te nje query e cila zakonisht eshte ne formen e nje peme ose grafi per te permiresuar performancen e pritur ne ekzekutim. Procesi per optimizimin heuristik: 1. Analiza (parser) e nje query te nivelit te larte (high-level) gjeneron nje paraqitje fillestare te brendshme; 2. Zbatohen rregullat heuristike per te optimizuar paraqitjen e brendshme. 3. Gjenerohet nje plan ekzekutimi query per te ekzekutuar grupet e veprimeve, bazuar ne menyrat e aksesimit (access paths) te disponueshme ne skedaret e perfshire ne query.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 36

Perdorimi i Teknikave Heuristike ne Optimizimin e Query-ve

Heuristika kryesore te zbatohen se pari veprimet qe reduktojne madhesine e rezultateve te ndermjetme.

Zbato veprimet SELECT dhe PROJECT para zbatimit te JOIN ose veprimeve te tjera binare. JOIN dhe veprimet e tjera binare shumefishojne madhesine e skedareve input. Veprimet SELECT dhe PROJECT reduktojne madhesine e nje skedari. Rregullat heuristike te optimizimit zbatohen per te konvertuar nje peme query ne nje ekuivalente te saj, qe paraqet nje shprehje tjeter te algjebres relacionale me eficiente per tu ekzekutuar, por qe jep te njejtin rezultat me te.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 37

Perdorimi i Teknikave Heuristike ne Optimizimin e Query-ve

Struktura Peme - Query tree:

Nje strukture te dhenash Peme qe korespondon me nje shprehje te algjebres relacionale. Paraqet relacionet ne hyrje (input) te query-se si gjethe(leaf nodes) te pemes, dhe veprimet e algjebres relacionale si nyje te brendshme (internal nodes).

Nje ekzekutim i pemes se query-se konsiston ne ekzekutimin e nje veprimi te nje nyjeje te brendshme sapo operandet e tij jane te disponueshem dhe me pas zevendeson kete nyje te brendshme me relacionin qe rezulton nga ekzekutimi i veprimit.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 38

Perdorimi i Teknikave Heuristike ne Optimizimin e Query-ve

Shembull: Per cdo projekt te vendosur ne Shkoder, gjej numrin e projektit, numrin e departamentit qe e kontrollon kete projekt dhe mbiemrin dhe datelindjen e manaxherit te ketij departamenti. Shprehja korresponduese ne algjebren relacionale: PNUMER, DNUMER, MBIEMRI, DAT.LINDJA (((sPVENDODHJE=SHKODER(PROJEKT)) DNUMERP=DNUMER (DEPARTAMENTI)) MGID=ID (PUNONJESI)) Query korresponduese ne SQL : Q2: SELECT PR.PNUMER,D.DNUMER,P.MBIEMRI, P.DAT.LINDJA FROM PROJEKT AS PR,DEPARTAMENTI AS D, PUNONJESI AS P WHERE PR.DNUMERP=D.DNUMER AND D.MGID=P.ID AND PR.PVENDODHJE=SHKODER;

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 39

Perdorimi i Teknikave Heuristike ne Optimizimin e Query-ve

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 40

Perdorimi i Teknikave Heuristike ne Optimizimin e Query-ve

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 41

Perdorimi i Teknikave Heuristike ne Optimizimin e Query-ve

Analizuesi i query-se gjeneron nje peme fillestare standarte qe i korrespondon query-se ne SQL pa ndonje optimizim. Ne shembullin tone, zbatohet se pari PRODUKTI KARTEZIAN i relacioneve te specifikuara ne fjalen FROM. Me pas zbatohen kushtet e selektimit dhe te join te fjales WHERE, ndjekur nga projektimi ne atributet e fjales SELECT. Nje query e tille eshte shume ineficiente per tu ekzekutuar direkt. Eshte detyre e optimizuesit heuristik te query-se te transformoje kete peme fillestare ne nje peme perfundimtare qe eshte eficiente per tu ekzekutuar. Optimizuesi duhet te perfshije rregulla per ekuivalencen ndermjet shprehjeve te algjebres relacionale qe mund te zbatohen ne pemen fillestare. Rregullat heuristike te optimizuesit te query-se me pas i perdorin keto shprehje ekuivalente per te transformuar pemen fillestare ne pemen perfundimtare te optimizuar.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 42

Perdorimi i Teknikave Heuristike ne Optimizimin e Query-ve

Shembull: Gjej mbiemrat e punonjesve te lindur pas vitit 1957 qe punojne ne nje projekt te quajtur AQUARIUS Q: SELECT MBIEMRI FROM PUNONJESI, PUNON_NE, PROJEKT
WHERE >31.12.1957 PEMER= AQUARIUS AND PNUMER=PRNUMER AND PID=ID AND DAT.LINDJA

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 43

Perdorimi i Teknikave Heuristike ne Optimizimin e Query-ve

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 44

Perdorimi i Teknikave Heuristike ne Optimizimin e Query-ve

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 45

Perdorimi i Teknikave Heuristike ne Optimizimin e Query-ve

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 46

Perdorimi i Teknikave Heuristike ne Optimizimin e Query-ve

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 47

Perdorimi i Teknikave Heuristike ne Optimizimin e Query-ve

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 48

Rregullat e Pergjithshme te Transformimit per Veprimet e Algjebres Relacionale


Kaskada e s: Nje kusht lidhes selection mund te ndahet ne nje kaskade (sequence) veprimesh individuale s: s c1 AND c2 AND ... AND cn(R) = sc1 (sc2 (...(scn(R))...) ) 2. Vetia e nderrimit - e s: Veprimi s ka vetine e nderrimit(commutative): sc1 (sc2(R)) = sc2 (sc1(R)) 3. Kaskada e : Ne nje kaskade (sequence) veprimesh , te gjithe por jo i fundit mund te mos merren parasysh: List1 (List2 (...(Listn(R))...) ) = List1(R) 4. Nderrimi i s me : Ne se kushti perzgjedhes (selection) c perfshin vetem atributet A1, ..., An ne listen e projektimit projection list, dy veprimet mund te nderrojne vendet: A1, A2, ..., An (sc (R)) = sc (A1, A2, ..., An (R))
1.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 49

Rregullat e Pergjithshme te Transformimit per Veprimet e Algjebres Relacionale


5. Nderrimi i JOIN ( dhe x ): Veprimi JOIN eshte commutative sikurse edhe veprimi x :

6. Nderrimi i s me (ose x ): nese te gjithe atributet ne kushtin e selektimit C perfshijne vetem atributet e nje prej relacioneve qe do te behen join themi, R dy veprimet mund te nderrojne vendet si me poshte:

S=S

R; R x S = S x R

sc ( R sc ( R

S ) = (sc (R))

Ne menyre alternative, nese kushti perzgjedhes c mund te shkruhet si (c1 dhe c2), ku kushti c1 perfshin vetem atributet e R dhe kushti c2 pefshin vetem atributet e S, veprimet nderrohen si me poshte:

S ) = (sc1 (R))

(sc2 (S))
Slide 15- 50

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Rregullat e Pergjithshme te Transformimit per Veprimet e Algjebres Relacionale

7. Nderrimi i me (ose x): Supozojme qe projection list eshte L = {A1, ..., An, B1, ..., Bm}, ku A1, ..., An jane atribute te R dhe B1, ..., Bm jane atribute te S. Nese kushti join c perfshin vetem atributet ne L, dy veprimet mund te nderrohen si me poshte:

L ( R

S ) = (A1, ..., An (R))

( B1, ..., Bm (S))

Ne se kushti join c permban atribute shtese jo ne L, keto duhet te shtohen ne projection list dhe eshte i nevojshem nje veprim perfundimtar .
Slide 15- 51

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Rregullat e Pergjithshme te Transformimit per Veprimet e Algjebres Relacionale


8. Nderrimi i vendeve te veprimeve te bashkesise: Veprimet e bashkesise bashkimi dhe prerja( and ) jane commutative ndersa nuk eshte. 9. Vetia e shoqerimit te , x, , dhe : Keto kater veprime jane individualisht te shoqerueshme; qe do te thote qe, nese q paraqet cdo nje prej ketyre kater veprimeve (gjate gjithe shprehjes), kemi

(RqS)qT = Rq(SqT)

10.Nderrimi i s me veprimet e bashkesise: Veprimi s nderohet me , , dhe . Ne se q paraqet cdo nje prej ketyre tre veprimeve , kemi

sc ( R q S ) = (sc (R)) q (sc (S))

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 52

Rregullat e Pergjithshme te Transformimit per Veprimet e Algjebres Relacionale


11.Veprimi nderrohet me . L ( R S ) = (L (R)) (L (S)) 12.Konvertimi i nje sekuence (s, x) ne : Ne se kushti c i nje s qe ndjek nje x korespondon me nje kusht join , konverto sekuenca (s, x) ne nje si :(sC (R x S)) = (R C S) Jane te mundshme edhe transformime te tjera

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 53

Skica e nje Algoritmi Heuristik Optimizimi


1. Duke perdorur rregullin 1, shpernda cdo veprim SELECT me kushte lidhese ne nje kaskade veprimesh SELECT 2. Duke perdorur rregullat 2, 4, 6, dhe 10 lidhur me nderrimin e SELECT me veprime te tjera, zhvendos cdo veprim SELECT sa me poshte pemes, aq sa mund te lejohet nga atributet e perfshira ne kushtet e perzgjedhjes. 3. Duke perdorur rregullin 9 lidhur me shoqerimin e veprimeve binare, rirregullo nyjet gjethe te pemes ne menyre qe relacionet e nyjes gjethe me veprimin select me kufizues ( nje qe prodhon nje relacion me sa me pak tuples ose me madhesine absolute me te vogel) te ekzekutohen te paret ne paraqitjen e pemes .
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 54

Skica e nje Algoritmi Heuristik Optimizimi


4. Duke perdorur Rregullin 12, kombino nje veprim Produkti Kartezian me nje veprim SELECT pasues ne peme ne nje veprim JOIN, nese kushti paraqet nje kusht join. 5. Duke perdorur rregullat 3, 4, 7, dhe 11 lidhur me kaskaden e PROJECT dhe nderrimin e PROJECT me veprime te tjera, shpernda dhe leviz listen e atributeve te projektimit sa me poshte te jete e mundur duke krijuar veprime te reja projektimi sipas nevojes. 6. Identifiko nenpemet qe paraqesin grupet e veprimeve qe mund te ekzekutohen nga nje algoritem i vetem.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 55

Permbledhje e Teknikave Heuristike per Optimizimin Algjebrik

Heuristica kryesore eshte qe te zbatohen se pari veprimet qe reduktojne madhesine e rezultateve te ndermjetme. Kryej veprimet SELECT sa me shpejt te jete e mundur per te reduktuar numrin e tuples dhe kryej veprimet PROJECT sa me shpejt te jete e mundur per te reduktuar numrin e atributeve. (Kjo realizohet duke zhvendosur veprimet SELECT dhe PROJECT sa me poshte te jete e mundur ne peme.) Veprimet SELECT dhe JOIN qe jane me kufizues duhet te ekzekutohen perpara veprimeve te tjera te ngjashme. (Kjo realizohet duke rirregulluar nyjet gjethe te pemes midis tyre dhe duke rregulluar mbetjen e pemes ne menyre te pershtatshme.)
Slide 15- 56

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Konvertimi i Pemeve Query ne Plan Ekzekutimi Query

Nje plan ekzekutimi per nje shprehje te algjebres relacionale, e paraqitur si nje peme query, perfshin informacion rreth metodave te aksesimit te vlefshme per cdo relacion si edhe algoritmet qe perdoren ne llogaritjen e operatoreve relacionale te paraqitur ne peme. Me pas, menyrat qe ndiqen per ekzekutimin e query-se mund te specifikojne nje: Vleresim te Realizuar (Materialized evaluation): rezultati i nje veprimi ruhet si nje relacion i perkohshem, rezultati materializohet fizikisht. Vleresim Pipelined : sapo tuples rezultat te nje veprimi krijohen, ato percillen direkt tek operatori i radhes ne vargun e query-se.

Avantazhi: kosto e ruajtjes nuk eshte e nevojshme qe rezultate te ndermjetme te shkruhen ne disk dhe me pas te lexohen nga disku per veprimin tjeter.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 57

Perdorimi i Vleresimeve te Kostos ne Optimizimin e Query-ve

Kjo menyre eshte me e pershtatshme per compiled queries optimizimi behet ne kohen e kompilimit dhe kodi i strategjise se ekzekutimit ruhet dhe ekzekutohet direkt ne runtime. Optimizimi Cost-based i query-se:

Vlereson dhe krahason kostot e ekzekutimit te nje query-e duke perdorur strategji te ndryshme ekzkekutimi dhe zgjedh strategjine me koston me te ulet te llogaritur.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 58

Perdorimi i Vleresimeve te Kostos ne Optimizimin e Query-ve

Komponentet e kostos per ekzekutimin e query-se : 1. Kosto e aksesimit ne kujtesen sekondare. 2. Kosto e ruajtjes kosto e ruajtjes se cdo skedari te ndermjetem qe gjenerohet nga nje strategji ekzekutimi per query-ne 3. Kosto e llogaritjes kosto e kryerjes ne memorie te veprimeve me te dhenat qe ndodhen ne buffer-a gjate ekzekutimit te queryse 4. Kosto e perdorimit te memories kosto qe i perket numrit te buffer-ave te nevojshem gjate ekzkekutimit te query-se 5. Kosto e komunikimit kosto e transportimit te query-se dhe rezultateve te saj nga vendodhja e bazes se te dhenave ne vendodhjen apo terminalin nga ku query eshte nisur. Shenim: sisteme te ndryshme bazash te dhenash mund te fokusohen ne komponente te ndryshme te kostos.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 59

Perdorimi i katalogut ne funksionet e kostos

Per te vleresuar kostot e stratagjive te ndryshme te ekzkekutimit duhet te ndiqet cdo informacion i nevojshem per funksionet e kostos; ky informacion ruhet ne katalogun e DBMS-se, nga ku aksesohet nga optimizuesi i query-se. Informacioni rreth madhesise se nje skedari

numri i regjistrimeve (tuples) (r), madhesia e regjistrimit (R), numri i blloqeve (b) faktori i shperndarjes bllok - blocking factor (bfr)
Slide 15- 60

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Perdorimi i katalogut ne funksionet e kostos

Informacioni rreth indekseve dhe atributeve te indeksimit te nje skedari


numri i niveleve (x) te cdo indeksi multilevel numri i blloqeve te indeksit te nivelit te pare (bI1) numri i vlerave te ndryshme (d) te nje atributi selectivity (sl) i nje atributi pjesa e regjistrimeve qe plotesojne nje kusht barazimi ne atribut Kardinaliteti i perzgjedhjes (s) te nje atributi (s = sl * r) numri mesatar i regjistrimeve qe do te plotesojne nje kusht perzgjedhjeje barazimi ne kete atribut.

Per nje atribut celes: d=r, sl=1/r dhe s =1.

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 61

Funksionet e Kostos per veprimin SELECT

I referohemi vetem numrit te blloqeve te transferuara ndermjet kujteses dhe diskut (nuk marrim parasysh faktoret e tjere) Kostos per metoden Si i referohemi me CSi aksesime blloku. S1. Menyra e kerkimit linear (brute force) CS1a = b; Per nje kusht barazimi ne nje celes, CS1b = (b/2) nese regjistrimi gjendet; perndryshe CS1b = b. S2. Kerkimi binar CS2 = log2b + ceiling(s/bfr) 1 Per nje kusht barazimi ne nje atribut celes, CS2 =log2b S3. Duke perdorur nje indeks kryesor (S3a) ose celes hash (S3b) per te gjetur nje regjistrim te vetem CS3a = x + 1; CS3b = 1 per hashing static ose linear

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 62

Funksionet e Kostos per veprimin SELECT

S4. Duke perdorur nje indeks te renditur per te gjetur shume regjistrime:

Per nje kusht krahasimi ne nje fushe celes me nje indeks te renditur, CS4 = x + (b/2)

S5. Duke perdorur nje indeks cluster per te gjetur shume regjistrime:

CS5 = x + ceiling (s/bfr)

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 63

Optimizimi Semantik i Query-ve

Kjo teknike, qe mund te perdoret e kombinuar me teknikat e tjera (sa me siper), perdor kushtezimet e specifikuara ne skemen e DB me qellim qe te modifikoje nje query ne nje tjeter qe eshte me eficiente ne ekzekutim. Konsdierojme SQL query-ne e meposhtme qe gjen mbiemrat e punonjesve qe paguhen me teper se supervizoret e tyre, SELECT P.MBIEMRI, M.MBIEMRI FROM PUNONJESI P M WHERE P.SUPERV.ID=M.ID AND P.PAGA>M.PAGA Supozojme qe kemi nje kusht ne skemen e bazes se te dhenave qe percakton qe asnje punonjes nuk mund te fitoje me teper se supervizori i tij direkt. Ne se optimizuesi semantik kontrollon per ekzistencen e ketij kushti, ai nuk e ekzekuton query-ne, sepse ai e di qe rezultati i query-se do te jete bosh. Eshte time-consuming Me zhvillimin e sistemeve te bazuara ne njohuri dhe sistemeve eksperte, kjo teknike mund te perfshihet ne DBMS

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe

Slide 15- 64

You might also like