Procesarea și optimizarea interogărilor

Slides:



Advertisements
Prezentări similare
Curtea Supremă a Republicii Croația
Advertisements

Proiectarea sistemelor digitale
Copyright.
ELECTRONICĂ II Notiţe de curs Cursul nr. 8
Bazele Tehnologiei Informaţiei Curs 7
Algoritmii Dijkstra si Bellman-Ford pentru determinarea costului minim
Aplicaţii Calculaţi media aritmetică şi suma pătratelor numerelor 10, 12, 57, 23, 99 folosind caseta statistică a calculatorului. Calculaţi valoarea expresiei.
Determinarea divizorilor unui numar
-Algebra Relațională II-
8 Gestiunea fişierelor 22 aprilie 2010
Recapitulare – rezolvați următorul rebus:
Internet - notiuni generale
Probleme Powerful variants of these commands are available; more later! 12.
Educație financiară Internet banking.
Structura sistemelor de calcul (03-5)
LEGE nr. 336 din 21 decembrie 2018 privind aprobarea Programului pentru stimularea angajării tinerilor în sectoarele agricultură, acvacultură şi industria.
CREAREA DE LINK-URI.
Profesor IOAN AIACOBOAIE
Ideile din această prezentare le-am primit prin
ELECTRONICĂ ANALOGICĂ
MEDIUL LIMBAJULUI DE PROGRAMARE STUDIAT
Mergând prin astă lume, Omul alege orice Ar vrea
Conferința ştiințifico-practică INOVAȚII PEDAGOGICE ÎN ERA DIGITALĂ
TOATE drepturile fundamentale pentru TOATE persoanele cu dizabilităţi!
Utilizarea funcţiei Istoric căutări
Elementele de bază în Solidworks
Co-Creation of Value in IT Service Processes using Semantic MediaWiki
Profilul pieţei bancare din mediul urban românesc
Organizarea informaţiilor pe disc
Testul docimologic Conf. dr. Florin Frumos
Bazele Tehnologiei Informaţiei Curs 5
Generalități despre fișiere
SORTAREA PRIN METODA BULELOR
2. Unitatea aritmetică și logică
Algoritmi.
S t r u c t u r i l i n i a r e  .
Despre sistemul TVA la încasare începând cu data de
Piata romaneasca a asigurarilor
Optimizarea funcțiilor de pierdere. Algoritmul coborârii pe gradient.
ALGORITMI PENTRU SORTAREA UNUI VECTOR
Informatica in economie
DESCOMPUNERI ÎN FACTORI.
Conferinta internationala “Intarirea Legitimitatii”
5. Introducere în arhitecturi paralele
concepte si instrumente de lucru e-Learning si software educational
Fă parte din Agricultura Susținută de Comunitate!
UNIUNEA EUROPEANĂ Fondul Social European GUVERNUL ROMANIEI
Structura fișierelor index Securitate în baze de date
Cursul 7: Memorarea şi managementul informațiilor economice
Solutii informatice integrate pentru sectorul auto
Curs 10-Operatii cu pointeri -Pointeri la tablouri
Prezentare Unitate Centrala
Apa Prod S.A. Deva Calitatea rezidă în oameni și în managementul pe care ei îl fac. *** Sistemul Integrat de Management Calitate – Mediu – SSM.
Teoremele lui Kirchhoff
ESANTIONAREA SI CUANTIZAREA IMAGINILOR 1. Introducere
Importanța legii periodicității
Sisteme de operare în timp real Contiki
Tastați aici detaliile evenimentului dvs.
Introducere in Geoinformatica
Tema 4. Tipurile de strategii ale întreprinderii.
Aspecte juridice referitoare la piata de retail
Curs 9-Pointeri la variabile -Pointeri la siruri de caractere
Structura sistemelor de calcul (02-3)
VĂ ROG SĂ PĂSTRAŢI LINIŞTEA !.
Metodologia elaborării proiectelor de intervenţie
Profesor coordonator: prof. ing. POP ȘTEFAN DAN
Tipuri de placi video,sunet si retea
Instrumentar de formare privind APE 4. Evaluarea nevoilor
Transcriere de prezentare:

Procesarea și optimizarea interogărilor

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

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  

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.

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.

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.

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.

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.

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.

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).

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.

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).

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

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.

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:

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:

Transformarea expresiilor relaționale

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.