Prezentarea se încărcă. Vă rugăm să așteptați

Prezentarea se încărcă. Vă rugăm să așteptați

Procesarea și optimizarea interogărilor

Prezentări similare


Prezentarea pe tema: "Procesarea și optimizarea interogărilor"— Transcriere de prezentare:

1 Procesarea și optimizarea interogărilor

2 Cuprins procesarea, optimizarea și
executarea interogărilor scrise în limbaj de nivel înalt, de către un sistem de gestiune a bazelor de date.

3 Procesarea interogărilor
interogare parsare și transformare expresia în algebra relațională optimizare rezultatul interogării execuție plan de execuție -Parsarea și transformarea - parserul verifică sintaxa și relațiile, apoi interogarea este transformată în reprezentare internă-algebra relațională. -Optimizarea - O expresie în algebra relațională poate avea mai mult expresii echivalente, astfel fiecare expresie poate fi evaluate folosind diferiți algoritmi. -Expresia adnotată care specifică strategia detaliată de evaluare a unei interogări este numită plan de evaluare. Dintre mai multe planuri echivalente de execuție, optimizatorul alege pe cel cu costul cel mai mic. Costul este estimat folosind informațiile statistice oferite de catalogul baze de date: numărul de tupluri al fiecărei relații, dimensiunea tuplului, etc. -Evaluarea - planul de execuție al interogării este executat și se retunrează rezultatele interogării. date statistici

4 Procesarea interogărilor
Interogările SQL sunt descompuse în blocuri care sunt transformate în limbajul algebrei relaționale și optimizate. Un bloc conține o singură expresie SELECT-FROM- WHERE, împreună cu clauze GROUP BY și HAVING.

5 Algoritmi pentru procesarea operației selecție
Pentru operația de selecție există un număr mare de algoritmi pentru găsirea înregistrărilor în fișier: Căutare liniară: se parcurge tot fișierul și se verifică dacă fiecare înregistrare îndeplinește condițiile de căutare; Căutare binară: Dacă operația de căutare are o condiție de egalitate pe un atribut după care fișierul este ordonat, atunci căutarea binară este mai eficientă decât căutarea liniară. Căutare folosind indexul pe atributul care apare în condiția din operația de selecție.

6 Algoritmi pentru procesarea operației de SORTARE
Sortarea este una dintre cele mai utilizate operații în procesarea interogărilor: dacă apare clauza ORDER BY, rezultatul interogării trebuie sortat, dacă se folosește algoritmul ”merge-sort” în operația de joncțiune de asemenea trebuie sortate înregistrările, dacă folosim operațiile de intersecție, reuniune, eliminarea duplicatelor pentru operația de proiecție avem nevoie de sortarea înregistrărilor.

7 Algoritmi pentru procesarea operației de SORTARE
Pentru relațiile care sunt memorate în memorie, tehnici ca ”quicksort” sunt folosite. Pentru relații foarte mari care nu pot fi stocate în memorie se folosește ”sort- merge” extern. Algoritmul de sortare externă folosește tehnica ”merge - sort” care începe prin a sorta subfișiere de mică dimensiune ale fișierului principal și apoi le combină creând subfișiere sortate mai mari care la rândul lor sunt combinate. Ca și alți algoritmi, algoritmul de sortare externă necesită un spațiu tampon în memoria principală pentru sortarea sufișierelor si combinarea lor.

8 Algoritmi pentru procesarea operației JOIN
Operația de joncțiune este mare consumatoare de timp. Cele mai des întâlnite tipuri de joncțiuni în interogări sunt joncțiunea de egalitate și joncțiunea naturală. Pentru implementarea operației de joncțiune (R join S) sunt folosiți diferiți algoritmi : Nested-loop join – pentru fiecare înregistrare t din R se extrage înregistrarea s din S și se verifică dacă se îndeplinește condiția de joncțiune, dacă există. Single nested-loop join – dacă există definit un index pe unul din atributele din condiția de joncțiune, atunci se folosesc căile de acces pentru a găsi înregistrările care se potrivesc.

9 Algoritmi pentru procesarea operației JOIN
Sort-merge join – dacă înregistrările din cele două relații sunt sortate după valorile atributelor care apar în condiția de joncțiune, operația se poate implementa în cel mai eficient mod posibil. Ambele fișiere sunt parcurise concurentîn ordinea atributelor de joncțiune, potrivind înregistrările care au aceleași valori pentru ele. Dacă fișierele nu sunt sortate, ele pot fi sortate folosind sortarea externă. Alegerea unuia dintre acești algorimti se face prin estimarea costului care ia în considerare informații ca: numărul de înregistrări și blocuri din relațiile implicate în joncțiune.

10 Algoritmi pentru procesarea altor operații
Eliminarea duplicatelor poate fi implementată prin sortare. Optimizarea poate fi făcută prin eliminarea duplicatelor în timpul sortării externe în ambii pasi (generarea subfisierelor și combinarea lor). Pentru operația de proiecție se iau atributele corespunzătoare din fiecare tuplu, apoi urmează eliminarea duplicatelor. Operațiile de agregare pot fi implementate asemănător celei de eliminare a duplicatelor: Prin sortare se pun tuplurile în grupuri și apoi funcțiile de agregare sunt aplicate pe fiecare grup. Optimizarea poate fi făcută prin gruparea tuplurilor în același grup în timpul sortării externe în ambii pași (generarea subfișierelor și combinarea lor).

11 Combinarea operațiilor folosind ”pipelining”
O interogare specificată în SQL va fi translatată în algebra relațională care este un șir de operații relaționale. Dacă se va executa o singură operație la un moment dat, vor trebui generate fișiere temporare pe disc pentru a stoca rezultatele temporare ale acestor operații, creându-se astfel o încarcare mare. Generarea și încărcarea fișierelor temporare mari pe disc sunt consumatoare de timp. Pentru a reduce numărul mare de fișiere temporare, se folosește procesarea ”pipelining” sau bazată pe fluxuri. Procesarea ”pipeline” constă în evalurea simultană a operațiilor, trecând rezultatul unei operații urmatoarei operații fără a mai stoca pe disc rezultatele temporare.

12 Optimizarea interogărilor
Optimizarea interogării este procesul de selectare a celui mai eficient plan de execuție a interogării. Nu se așteaptă numai ca utilizatorii să scrie interogări eficiente, ci și sistemul să construiască un plan eficient de execuție care să minimizeze costurile. Unul dintre aspectele optimizării apare la nivelul algebrei relaționale, unde sistemul trebuie să găsească o expresie care este echivalentă cu expresia dată, dar mai eficientă la execuție. Un alt aspect este selectarea unei strategii detaliate de procesare a interogării, cum ar fi alegerea unui algoritm pentru executarea unei operații, alegerea unor indecși, etc (Silber).

13 Evaluarea interogărilor
Exemplu: dorim să afișăm codurile clienților care au conturi la filiale cu locația în Craiova.

14 Evaluarea interogărilor
Există mai multe moduri de a evalua o interogare: folosirea expresiilor echivalente folosirea diferiților algoritmi pentru operații Exemplu de plan de evaluare detaliat cu specificarea algoritmilor folosiți pentru fiecare operație și cum sunt coordonate aceste operații.

15

16 Transformarea expresiilor relaționale
Două expresii relaționale sunt echivalente în algebra relațională dacă generează același set de tupluri, ordinea tuplurilor nefiind relevantă. Regulile de echivalență sunt următoarele: 1. Operația de selecție cu condiții legate prin conjunctie pot fi descompuse în selecții individuale: 2. Operațiile de selecție sunt commutative: 3. Numai ultima operație de proiecție dintr-un șir este necesară, celelalte pot fi omise:

17 Transformarea expresiilor relaționale
4. Selecțiile cu produsul cartezian (sau joncțiune) pot fi înlocuite numai cu joncțiune theta: 5. Joncțiunile theta și naturale sunt commutative:   6(a)Joncțiunile naturale sunt asociative: 6(b) Joncțiunile theta sunt associative , doar dacă condiția 2 implică attribute numai din E2 și E3:

18 Transformarea expresiilor relaționale

19 7.Selecția poate fi distribuită peste joncțiunea theta cu următoarele condiții: 7(a) Când toate atributele din 0 implică numai atributele (E1) 7(b) Când  1 implică numai attribute din E1 și 2 implică nuami attribute din E2.


Descărcați ppt "Procesarea și optimizarea interogărilor"

Prezentări similare


Publicitate de la Google