La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Laurea Magistrale in Informatica Architetture basi di dati A.A. 2010-2011 Docente: Prof. Carlo Batini Query Optimization nei DDBMS.

Presentazioni simili


Presentazione sul tema: "Laurea Magistrale in Informatica Architetture basi di dati A.A. 2010-2011 Docente: Prof. Carlo Batini Query Optimization nei DDBMS."— Transcript della presentazione:

1 Laurea Magistrale in Informatica Architetture basi di dati A.A. 2010-2011 Docente: Prof. Carlo Batini Query Optimization nei DDBMS

2 Basi di Dati distribuite – Carlo Batini 2004 2005 1. Query processing

3 Basi di Dati distribuite – Carlo Batini 2004 2005 Query processing  In un contesto di dati centralizzati, le strategie di esecuzione delle queries sono esprimibili tramite estensioni di algebra relazionale: i query trees  In un DDBMS, l’algebra relazionale non e’ piu’ sufficiente. Una strategia di esecuzione deve comprendere anche le operazioni e i costi relativi a: –trasferimento di frammenti tra nodi; –scelta del sito migliore dove processare i dati  Queste nuove variabili rendono ulterioriormente complessa l’ottimizzazione di query distribuite

4 Basi di Dati distribuite – Carlo Batini 2004 2005 Esempio

5 Basi di Dati distribuite – Carlo Batini 2004 2005 Distributed query processing – esempio Schema: Employee (eno, ename, title) AssiGN(eno, projectno, resp, dur), dove resp indica il tipo di responsabilita’ |EMP| = 400, |ASG| = 1000 Query: “trovare nomi dei dipendenti che sono manager di progetti” AR:  ename (EMP >< eno (  resp=“manager” (ASG))) Frammentazione orizzontale: ASG 1 =  eno  ‘E3’ (ASG)nodo 1 ASG 2 =  eno > ‘E3’ (ASG)nodo 2 EMP 1 =  eno  ‘E3’ (EMP)nodo 3 EMP 2 =  eno > ‘E3’ (EMP)nodo 4 Risultato nodo 5

6 Basi di Dati distribuite – Carlo Batini 2004 2005 Allocazione dei frammenti EMP 1 =  eno  ‘E3’ (EMP) EMP 2 =  eno > ‘E3’ (EMP) ASG 1 =  eno  ‘E3’ (ASG) ASG 2 =  eno > ‘E3’ (ASG)  ename (EMP >< eno(  resp=“manager” (ASG))) 1 3 5 4 2

7 Basi di Dati distribuite – Carlo Batini 2004 2005 Esecuzione della query: Strategia A EMP 1 =  eno  ‘E3’ (EMP) EMP 2 =  eno > ‘E3’ (EMP) ASG 1 =  eno  ‘E3’ (ASG) ASG 2 =  eno > ‘E3’ (ASG) 1 3 5 4 2 ASG’1   resp=“manager’(ASG1) ASG’2   resp= “manager’(ASG2) EMP’1  EMP1 ><eno ASG’1 EMP’2  EMP2 ><eno ASG’2 ASG’1 ASG’2 = EMP >< eno(  resp=“manager”(ASG)))  EMP’ 1 EMP’ 2 Result = EMP’1  EMP’2 =  ename EMP >< eno(  resp=“manager”(ASG)))

8 Basi di Dati distribuite – Carlo Batini 2004 2005 Esecuzione della query: Strategia B EMP 1 =  eno  ‘E3’ (EMP) EMP 2 =  eno > ‘E3’ (EMP) ASG 1 =  eno  ‘E3’ (ASG) ASG 2 =  eno > ‘E3’ (ASG) 1 3 5 4 2 Tutte le tabelle vengono inviate al nodo 5 Dove viene calcolato il risultato

9 Basi di Dati distribuite – Carlo Batini 2004 2005 Rappresentazione della strategia A come operazioni + trasmissioni ASG’ 1 =  resp=“manager’ (ASG 1 ) ASG’ 2 =  resp=“manager’ (ASG 2 ) Sito 1 Sito 2 EMP’ 1 = EMP 1 >< eno ASG’ 1 EMP’ 2 = EMP 2 >< eno ASG’ 2 ASG’ 1 ASG’ 2 Sito 3 Sito 4 Result = EMP’ 1  EMP’ 2 Sito 5 EMP’ 1 EMP’ 2

10 Basi di Dati distribuite – Carlo Batini 2004 2005 Strategia B - Rappresentazione come operazioni + trasmissioni Risultato = (EMP 1  EMP 2 ) >< ENO  resp=“manager’ (ASG 1  ASG 2 ) Sito 5 ASG 1 ASG 2 EMP 1 EMP 2 Sito 1Sito 2Sito 3Sito 4 ASG 1 ASG 2 EMP 2 EMP 1

11 Basi di Dati distribuite – Carlo Batini 2004 2005 Confronto di costi tra le due strategie  Modelli di costo (semplificato): –Costo accesso a un record: 1 –Costo trasferimento di un record: 10 –|EMP| = 400, |ASG| = 1000, |  resp=“manager’ (ASG 1 )| = |  resp=“manager’ (ASG 2 )| = 10 –Accesso diretto a EMP via ENO, ASG via RESP Costo strategia A: 1.Calcolo ASG’ 1 e ASG’ 2  10+10 per accesso diretto 2.Trasferimento ASG’ 1 e ASG’ 2  20 x 10 = 200 3.Calcolo EMP’ 1 ed EMP’ 2 : join (single-loop)  (10 + 10) x 2 4.Trasferimento EMP’ 1, EMP’ 2 : 20 x 10 = 200  Totale: 460 (400 trasferimento e 60 calcolo)

12 Basi di Dati distribuite – Carlo Batini 2004 2005 Confronto di costi tra le due strategie  Modelli di costo (semplificato): –Accesso a un record: 1 –Trasferimento di un record: 10 –|EMP| = 400, |ASG| = 1000, |  resp=“manager’ (ASG 1 )| = |  resp=“manager’ (ASG 2 )| = 10 –Accesso diretto a EMP via ENO, ASG via RESP Costo strategia B (non si trasferiscono gli indici!): 1.Trasferimento EMP 1, EMP 2 sul nodo 5: 400 x 10 = 4.000 2.Trasferimento ASG 1, ASG 2 sul nodo 5: 1000 x 10 = 10.000 3.Calcolo ASG’ (selezione): 1.000 (no indice) 4.Join ASG’, EMP: 20 x 400 = 8.000 (non ricostruisce gli indici  nested loop)  Totale: 23.000 (14.000 trasferimento e 9.000 calcolo)

13 Basi di Dati distribuite – Carlo Batini 2004 2005 Obiettivi del query processing distribuito: parametri utilizzati  Costo totale = somma dei costi delle operazioni (I/O e CPU) + costi di comunicazione (trasmissione)  Response time = somma dei costi tenendo conto del parallelismo

14 Basi di Dati distribuite – Carlo Batini 2004 2005 Costo Rispetto al caso centralizzato, in cui i costi piu’ rilevanti sono quelli di trasferimento dei blocchi da memoria secondaria a principale, consideriamo qui i soli costi di comunicazione e trasuriamo i costi di I/O. Costo comunicazione = C MSG * #msgs + C TR * #bytes C MSG = costo fisso di spedizione/ricezione messaggio (setup) C TR = costo (fisso rispetto alla topologia!) di trasmissione dati

15 Basi di Dati distribuite – Carlo Batini 2004 2005 Tempo di risposta Nel tempo di risposta, a differenza del costo di trasmissione, i costi delle operazioni in parallelo non si sommano Tempo di risposta (solo comunicazione) = C MSG * seq_#msgs + C TR * seq_#bytes dove seq_#msgs e’ il massimo numero di messaggi che devono essere comunicati in modo sequenziale.

16 Basi di Dati distribuite – Carlo Batini 2004 2005 Rapporto tra costo di comunicazione e costo di I/O  Nelle grandi reti geografiche costo di comunicazione >> costo di I/O (fattore 1 a 10)  Nelle reti locali costo di comunicazione e costo di I/O sono paragonabili  Tendenza il costo di comunicazione e’ ancora il fattore critico, ma si stanno avvicinando Possiamo,in alternativa a trascurare i costi di I/O, utilizzare pesi nelle formule di costo

17 Basi di Dati distribuite – Carlo Batini 2004 2005 Esempio  Costo di trasferimento di x unita’ da 1 a 3 e di y unita’ da 2 a 3:  Costo comunicazione = 2 C MSG + C TR * (x + y)  Tempo di risposta = max(C MSG + C TR * x, C MSG + C TR * y) dato che x e y vengono trasferiti in parallelo Nodo 1 Nodo 2 Nodo 3 X unita’ Y unita’ Risultato al nodo 3

18 Basi di Dati distribuite – Carlo Batini 2004 2005 Rapporto tra tempo di risposta e costo Possiamo essere interessati a: * Minimizzazione tempo di risposta: piu’ parallelismo  puo’ portare ad aumento del costo totale (maggiore numero di trasmissioni e processing locale) * Minimizzazione costo totale = somma dei costi senza tener conto del parallelismo: utilizza meglio le risorse  aumento del throughput (con peggioramento del response time in generale)

19 Basi di Dati distribuite – Carlo Batini 2004 2005 Nel nostro esempio ASG’ 1 =  resp=“manager’ (ASG 1 ) ASG’ 2 =  resp=“manager’ (ASG 2 ) Sito 1 Sito 2 EMP’ 1 = EMP 1 >< eno ASG’ 1 EMP’ 2 = EMP 2 >< eno ASG’ 2 ASG’ 1 ASG’ 2 Sito 3 Sito 4 Result = EMP’ 1  EMP’ 2 Sito 5 EMP’ 1 EMP’ 2 Risultato = (EMP 1  EMP 2 ) >< ENO  resp=“manager’ (ASG 1  ASG 2 ) Sito 5 ASG 1 ASG 2 EMP 1 EMP 2 Sito 1Sito 2Sito 3Sito 4 ASG 1 ASG 2 EMP 2 EMP 1 Strategia AStrategia B Operazioni e trasmissioni eseguibili in parallelo Ottimizza il costo Parallelizza di piu’ ma, in questo caso, non minimizza il tempo di riposta

20 Basi di Dati distribuite – Carlo Batini 2004 2005 Strategie di Query processing nei DDBMS

21 Basi di Dati distribuite – Carlo Batini 2004 2005 Fasi del query processing nei DDBMS  1. Query decomposition  2. Data localization  3. Global query optimization  4. Local optimization  Vediamole in dettaglio, insieme agli input alla fase

22 Basi di Dati distribuite – Carlo Batini 2004 2005 Fasi del query processor - 1  1. Query decomposition  Global schema –Opera sullo schema logico globale –Non considera la distribuzione –Usa tecniche di ottimizzazione algebrica analoghe a quelle centralizzate –Output: un query tree – non ottimizzato rispetto ai costi di comunicazione

23 Basi di Dati distribuite – Carlo Batini 2004 2005 Fasi del query processor - 1  2. Data localization  Fragment schema –Considera la distribuzione dei frammenti –Ottimizza le operazioni rispetto alla frammentazione, con tecniche di riduzione –Output: una query che opera in modo efficiente sui frammenti – non ottimizzata

24 Basi di Dati distribuite – Carlo Batini 2004 2005 Esempio  Es.  eno = ‘E20’ EMP   Supponiamo che EMP sia rappresentata nei nodi 1, 2, e 3.  La query puo’ essere inizialmente frammentata nella   eno = ‘E20’ EMP1   eno = ‘E20’ EMP2   eno = ‘E20’ EMP3  Applichiamo una tecnica di riduzione (supponiamo che E20 sia solo in EMP2)   eno = ‘E20’ EMP2

25 Basi di Dati distribuite – Carlo Batini 2004 2005 Fasi del query processor - 3  3. Global query optimization  statistiche sui frammenti –Strategia di esecuzione: nel query tree agli operatori di Algebra relazionale vengono aggiunti gli operatori di comunicazione (send/receive tra nodi) –Obiettivo: trovare l’ordinamento “migliore” delle operazioni definite dalla fragment query –Utilizza modelli di costo che tengono conto dei costi di comunicazione –Output: le decisioni piu’ rilevanti riguardano i join:  1. L’ordine dei join n-ari   2. La scelta tra join e semijoin 

26 Basi di Dati distribuite – Carlo Batini 2004 2005 Esempio -Strategia A EMP 1 =  eno  ‘E3’ (EMP) EMP 2 =  eno > ‘E3’ (EMP) ASG 1 =  eno  ‘E3’ (ASG) ASG 2 =  eno > ‘E3’ (ASG) 1 3 5 4 2 ASG’1   resp=“manager’(ASG1) ASG’2   resp= “manager’(ASG2) EMP’1  EMP1 ><eno ASG’1 EMP’2  EMP2 ><eno ASG’2 ASG’1 ASG’2 = EMP >< eno(  resp=“manager”(ASG)))  EMP’ 1 EMP’ 2 Result = EMP’1  EMP’2 =  ename EMP >< eno(  resp=“manager”(ASG)))

27 Basi di Dati distribuite – Carlo Batini 2004 2005 Prima della fase 4: Local optimization trattiamo percio’ i join in ambiente distribuito

28 Basi di Dati distribuite – Carlo Batini 2004 2005 1. Strategie di ordinamento dei join

29 Basi di Dati distribuite – Carlo Batini 2004 2005 Strategie di ordinamento dei join  Problema: dato un join n-ario tra n frammenti distribuiti:  A Join B Join C … Join N  in quale ordine conviene eseguirlo?  Caso di n=2 frammenti: ovviamente conviene trasferire il frammento piu’ piccolo –Occorre stimare le dimensioni dei frammenti –Def.: per un frammento F j : size(Fj) = card(F j ) x length(F j )  Cosa accade nel caso n>2? –E’ necessario stimare le dimensioni dei risultati intermedi  usando la selettivita’ di ciascun join –Il problema e’ combinatorio R S Se size(R) < size(S) Se size(R) > size(S)

30 Basi di Dati distribuite – Carlo Batini 2004 2005 Caso n > 2: partiamo da un esempio Emp proJ asG eno pno Nodo 1 Nodo 2 Nodo 3 Schema dell’esempio Employee (eno, ename, title) ASsiGn(eno, pno, resp, dur) Proj (pno, pname, budget, localization) Costruiamo il join graph, struttura che descrive i legami tra chiavi e le allocazioni nei nodi Emp E AssiGn G Proj P

31 Basi di Dati distribuite – Carlo Batini 2004 2005 Caso n > 2 Esempio: ordinamenti alternativi dei joins Emp proJ asG eno pno Nodo 1 Nodo 2 Nodo 3 1.E  nodo 22 calcola E’ = E join G E’  nodo 33 calcola R = E’ join J 2.G  nodo 11 calcola E’ = E join G E’  nodo 33 calcola R = E’ join J 3.G  nodo 33 calcola G’ = G join J G’  nodo 11 calcola R = G’ join E 4.J  nodo 22 calcola J’ = J join G J’  nodo 11 calcola R = J’ join E 5.E  nodo 2 J  nodo 22 calcola R = E join J join G Info necessarie per la scelta della strategia: - size(EMP), size(ASG), size(PROj) - size(EMP join ASG), size( ASG join PROJ) - Inoltre, alcuni trasferimenti possono avvenire in parallelo Approssimazione Assumendo il prodotto delle cardinalita’ come size dei join, si puo’ usare per la strategie l’ordinamento delle relazioni in base alle loro cardinalita’ Query: Emp Join eno asG Join pno proJ

32 Basi di Dati distribuite – Carlo Batini 2004 2005 Ordinamenti banali  Sono quelli in cui si eseguono prodotti cartesiani, perche’ le relazioni non hanno chiavi in comune  Nel nostro caso, ad esempio, una sequenza che inizi con  E  Nodo 3  E’ banale perche’ porta al massimo di inefficienza (calcolo del prodotto cartesiano)

33 Basi di Dati distribuite – Carlo Batini 2004 2005 2. Join e semijoin

34 Basi di Dati distribuite – Carlo Batini 2004 2005 Situazione di partenza R Nodo 1 S Nodo 2

35 Basi di Dati distribuite – Carlo Batini 2004 2005 Join e semijoin - 1  In un DBMS distribuito l’operazione di semijoin puo’ essere in alcune circostanze una alternativa piu’ efficiente alla operazione di join.  Definizione : R semijoin A S   R* ( R join A S)  Dove R* e’ l’insieme degli gli attributi di R  Il semijoin R semijoin A S percio’ e’ la proiezione sugli attributi di R della operazione di join  Attenzione: il semijoin e’ non comutativo!

36 Basi di Dati distribuite – Carlo Batini 2004 2005 Join e semijoin - 2 Osservazione 1 : dalla definizione di semijoin  R semijoin  S   R* ( R join A S) il calcolo di (R semijoin A S) richiede la presenza del solo attributo S.A da parte di S, cioe’ solo di  A (S) R Nodo 1 S Nodo 2  A (S)

37 Basi di Dati distribuite – Carlo Batini 2004 2005 Join e semijoin - 3 Osservazione 1: se R, S sono allocate su nodi diversi, allora R join A S puo’ essere calcolato tramite operazioni di semijoin piuttosto che di join. Valgono infatti le seguenti equivalenze (vedi ad es. [Ozsu-Vald. sec.9.3.2]) tra join e semijoin: 1. R join  S  (R semijoin  S) join  S 2. R join  S  R join  (S semijoin  R) 3.R join  S  (R semijoin  S) join  (S semijoin  R) Ognuna da’ luogo ad una diversa strategia. La scelta tra le strategie richiede la stima dei loro costi

38 Basi di Dati distribuite – Carlo Batini 2004 2005 Esempio – formula 1 R join A S  (R semijoin A S) join A S 2. R’  R semijoin A S’ 4. Ris  R’ join A S 1. S’   A (S) 3. R’ Nodo 1 Nodo 2 RS

39 Basi di Dati distribuite – Carlo Batini 2004 2005 Confronto costo join e semijoin In generale: L’uso del semijoin e’ conveniente se il costo del suo calcolo e del trasferimento del risultato e’ inferiore al costo del trasferimento dell’intera relazione e del costo del join intero Vediamo quando questo accade

40 Basi di Dati distribuite – Carlo Batini 2004 2005 Confronto costo join e semijoin  Calcoliamo i costi di trasmissione nei due casi:  R join A S vs (R semijoin A S) join A S assumendo: size(R) < size(S), R su nodo 1, S su nodo 2 R Nodo 1 S Nodo 2

41 Basi di Dati distribuite – Carlo Batini 2004 2005 Costi del semijoin e del join Operazioni necessarie nel caso di semijoin: 1.  A (S)  nodo 1 2.Nodo 1 calcola R’ = R semijoin A S -- usando solo  A (S)! 3.R’  nodo 2 4.Nodo 2 calcola R’ join S Costo del semijoin = C TR * size(  A (S)) + C TR * size(R semijoin A S) Costo join = C TR * size(R)

42 Basi di Dati distribuite – Carlo Batini 2004 2005 Confronto Quindi il semijoin conviene se size(  A (S)) + size(R semijoin A S) < size(R) Cioe’ quando il fattore di selezione JSF(R,S, R.A=S.A)) = |R join A S| / |R| e’ piccolo

43 Basi di Dati distribuite – Carlo Batini 2004 2005 R join jno J = (R semijoin jno J) join jno J =  R.*(R join jno (  jno (E))) join jno J R R = G join eno E = (G semijoin eno E) join eno E =  G.* ( G join eno (  eno ( E))) join eno E Esempio con tre relazioni EG J1: join 3:join 2:G 1:E 2: semijoin 1: join 1:  ENO 1:E 1:semijoin 3:join 3:J 3:  JNO 3:J E join G join J

44 Basi di Dati distribuite – Carlo Batini 2004 2005 Fasi del query processor - 4  4. Local query optimization  local schemas –Ogni nodo riceve una fragment query e la ottimizza in modo indipendente –Vengono utilizzate tecniche analoghe a quelli dei sistemi centralizzati

45 Basi di Dati distribuite – Carlo Batini 2004 2005 Tornando al peso dei costi di comunicazione Per DDBMS in rete geografica, conviene  1 Global query optimization con obiettivo: ridurre i costi di comunicazione  2 Seguita da local optimization Per DDBMS in rete locale, conviene 1 Global query optimization con obiettivo: aumentare il parallelismo 2 Seguita da local optimization

46 Basi di Dati distribuite – Carlo Batini 2004 2005 Progettazione di basi di dati distribuite  Passare a questo punto all’altro insieme di slildes


Scaricare ppt "Laurea Magistrale in Informatica Architetture basi di dati A.A. 2010-2011 Docente: Prof. Carlo Batini Query Optimization nei DDBMS."

Presentazioni simili


Annunci Google