Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoAndrea Mauro Modificato 8 anni fa
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
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.