La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

G. Mecca – – Università della Basilicata Basi di Dati Progettazione Fisica e Tuning: Concetti Avanzati versione 2.0 Questo lavoro è concesso.

Presentazioni simili


Presentazione sul tema: "G. Mecca – – Università della Basilicata Basi di Dati Progettazione Fisica e Tuning: Concetti Avanzati versione 2.0 Questo lavoro è concesso."— Transcript della presentazione:

1 G. Mecca – mecca@unibas.it – Università della Basilicata Basi di Dati Progettazione Fisica e Tuning: Concetti Avanzati versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

2 2 G. Mecca - mecca@unibas.it - Basi di Dati Concetti Avanzati m Introduzione m Ottimizzazione delle Interrogazioni Un Esempio m Messa a Punto (Tuning) Carico Applicativo Strutture di Accesso Modifiche allo Schema Logico Parametri Architetturali Progettazione Fisica e Tuning >> Sommario

3 3 G. Mecca - mecca@unibas.it - Basi di Dati Introduzione m Processo di Progettazione della BD progettazione logica: dallo schema concettuale viene derivato: uno schema logico standard gli schemi esterni necessari progettazione fisica: a partire dallo schema logico viene derivato: uno schema fisico (strutture di accesso) uno schema logico ottimizzato Progettazione Fisica e Tuning >> Concetti Avanzati >> Introduzione

4 4 G. Mecca - mecca@unibas.it - Basi di Dati Introduzione m Progettazione Logica lobiettivo è fare in modo che la base di dati sia normalizzata (priva di anomalie) algoritmo sistematico m Progettazione Fisica lobiettivo è fare in modo che la operazioni sulla base di dati siano efficienti problema poco sistematizzabile Progettazione Fisica e Tuning >> Concetti Avanzati >> Introduzione

5 5 G. Mecca - mecca@unibas.it - Basi di Dati Progettazione Fisica m Lobiettivo sono le prestazioni si interviene su parametri che le influenzano m Parametri che influenzano le prestazioni organizzazione dei file e strutture di accesso schema logico operazioni (query e transazioni) parametri dellarchitettura (buffer, dischi ecc.) m Questi aspetti sono difficili da progettare Progettazione Fisica e Tuning >> Concetti Avanzati >> Introduzione

6 6 G. Mecca - mecca@unibas.it - Basi di Dati Messa a Punto (Tuning) m Tipicamente si comincia con lo schema standard le strutture di accesso standard si accumula informazione sul funzionamento e si valutano le prestazioni sulla base dei dati raccolti si procede alla messa a punto dei parametri è unattività condotta periodicamente Progettazione Fisica e Tuning >> Concetti Avanzati >> Introduzione

7 7 G. Mecca - mecca@unibas.it - Basi di Dati Messa a Punto (Tuning) m In questa lezione panoramica sulla progettazione fisica e il tuning discuteremo le principali classi di parametri descriveremo delle linee guida non cè la pretesa di essere esaustivi m Punto di partenza valutazione e ottimizzazione delle interrogazioni in un DBMS relazionale Progettazione Fisica e Tuning >> Concetti Avanzati >> Introduzione

8 8 G. Mecca - mecca@unibas.it - Basi di Dati Ottimizzazione delle Interrogazioni m Processo di valutazione di una query la query viene inviata al DBMS interattivamente o da unapplicazione il DBMS effettua lanalisi sintattica del codice SQL il DBMS effettua le verifiche sulle autorizzazioni di accesso il DBMS esegue il processo di ottimizzazione della query Progettazione Fisica e Tuning >> Concetti Avanzati >> Ottimizzazione

9 9 G. Mecca - mecca@unibas.it - Basi di Dati Ottimizzazione delle Interrogazioni m Processo di ottimizzazione scelta di una strategia efficiente per la valutazione della query m Piano di esecuzione di una query scelta dellordine di applicazione degli operatori algebrici necessari strategia di calcolo del risultato di ciascun operatore algebrico attraverso le strutture di accesso disponibili Progettazione Fisica e Tuning >> Concetti Avanzati >> Ottimizzazione

10 10 G. Mecca - mecca@unibas.it - Basi di Dati Ottimizzazione delle Interrogazioni m Per effettuare lottimizzazione vengono valutati molti diversi piani di esecuzione alternativi lottimizzatore dispone di statistiche sul contenuto della base di dati (dimensione delle tabelle, dimensione dei record, dimensione degli indici, selettività ecc.) sulla base delle statistiche viene stimato il costo di ciascun piano di esecuzione (numero di accessi ai blocchi su disco) Progettazione Fisica e Tuning >> Concetti Avanzati >> Ottimizzazione

11 11 G. Mecca - mecca@unibas.it - Basi di Dati Un Esempio m Consideriamo la base di dati universitaria Progettazione Fisica e Tuning >> Concetti Avanzati >> Ottimizzazione CREATE TABLE Studente ( matricola integer PRIMARY KEY, cognome varchar(20) NOT NULL, nome varchar(20) NOT NULL, ciclo char(20), anno integer, relatore char(4) REFERENCES Docente(codice) ); CREATE TABLE Docente ( codice char(4) PRIMARY KEY, cognome varchar(20) NOT NULL, nome varchar(20) NOT NULL, qualifica char(15), facolta char(10) );

12 12 G. Mecca - mecca@unibas.it - Basi di Dati Un Esempio m Studiamo la seguente interrogazione: Nomi e cognomi dei tesisti di Christian Vieri iscritti alla laurea specialistica Progettazione Fisica e Tuning >> Concetti Avanzati >> Ottimizzazione SELECT Studente.nome, Studente.cognome FROM Docente, Studente WHERE Docente.codice=Studente.relatore AND Studente.ciclo = laurea sp. AND Docente.cognome = Vieri;

13 13 G. Mecca - mecca@unibas.it - Basi di Dati Un Esempio m Forma standard Progettazione Fisica e Tuning >> Concetti Avanzati >> Ottimizzazione SELECT S.nome, S.cognome FROM Docente AS D, Studente AS S WHERE D.codice=S.relatore AND S.ciclo = laurea sp. AND D.cognome = Vieri; S D S. nome, S.cognome D.codice=S.relatore AND S.ciclo=laurea sp. AND D.cognome=Vieri X S. nome, S.cognome D.codice=S.relatore AND S.ciclo=laurea sp. AND D.cognome=Vieri (S X D) ) Albero degli operatori della query

14 14 G. Mecca - mecca@unibas.it - Basi di Dati Un Esempio m Non è lunico possibile Progettazione Fisica e Tuning >> Concetti Avanzati >> Ottimizzazione S D S. nome, S.cognome D.codice=S.relatore AND S.ciclo=laurea sp. AND D.cognome=Vieri X Piano A S D S.ciclo=laurea sp. AND D.cognome=Vieri S. nome, S.cognome D.codice=S.relatore Piano B

15 15 G. Mecca - mecca@unibas.it - Basi di Dati Un Esempio m In generale un ottimizzatore dovrebbe preferire il piano B al piano A i prodotti cartesiani sono costosi m In altri casi però lalbero degli operatori da solo non basta a stabilire se una strategia è migliore di unaltra è necessario considerare le strutture di accesso disponibili Progettazione Fisica e Tuning >> Concetti Avanzati >> Ottimizzazione

16 16 G. Mecca - mecca@unibas.it - Basi di Dati Altri Piani di Esecuzione Progettazione Fisica e Tuning >> Concetti Avanzati >> Ottimizzazione S D S.ciclo= laurea sp. S. nome, S.cognome D.codice=S.relatore Piano C D.cognome =Vieri S S.ciclo=laurea sp. S. nome, S.cognome D D.codice=S.relatore Piano D D.cognome =Vieri

17 17 G. Mecca - mecca@unibas.it - Basi di Dati Un Esempio m In generale il piano C è migliore di A e di B in alcune condizioni il piano D è migliore di C m Dipende dalla strategia utilizzata per valutare gli operatori in particolare dallorganizzazione dei file e dalle strutture di accesso (indici) Progettazione Fisica e Tuning >> Concetti Avanzati >> Ottimizzazione

18 18 G. Mecca - mecca@unibas.it - Basi di Dati Esecuzione di un Operatore Algebrico m Tre tecniche principali m Scansione lineare del file inefficiente, applicabile solo a file piccoli m Accesso attraverso indici assume la presenza di indici (aggiornamenti) m Raggruppamento temporaneo creazione di strutture aggiuntive per raggruppare le ennuple (es: ordinamenti, tabelle di hash in memoria centrale) Progettazione Fisica e Tuning >> Concetti Avanzati >> Ottimizzazione

19 19 G. Mecca - mecca@unibas.it - Basi di Dati Esecuzione di una Selezione con Ug. m File non ordinato, nessun indice rilevante scansione lineare del file m File ordinato per lattributo, nessun indice ricerca binaria nel file (ennuple cons.) m Indice B+-tree sullattributo ricerca nellindice m Indice di Hash sullattributo accesso diretto con la funzione di hashing Progettazione Fisica e Tuning >> Concetti Avanzati >> Ottimizzazione

20 20 G. Mecca - mecca@unibas.it - Basi di Dati Esecuzione di un Join m Strategia elementare cicli nidificati abbastanza inefficiente m Esempio: S JOIN D ON S.codice=D.rel. per ogni ennupla di S per ogni ennupla di D –se S.codice=D.relatore allora produci una ennupla del risultato Progettazione Fisica e Tuning >> Concetti Avanzati >> Ottimizzazione

21 21 G. Mecca - mecca@unibas.it - Basi di Dati Esecuzione di un Join m Cicli nidificati con indice sfrutto un indice su uno degli attributi di join m Esempio: S JOIN D ON S.relatore=D.cod supponiamo di avere un indice su D.codice per ogni ennupla di S per ogni ennupla di D tale che D.cod=S.relatore –produci una ennupla del risultato Progettazione Fisica e Tuning >> Concetti Avanzati >> Ottimizzazione accesso basato sullindice

22 22 G. Mecca - mecca@unibas.it - Basi di Dati Esecuzione di un Join m Sort-Merge Join idea: se entrambe le tabelle sono ordinate sullattributo di join, il join è lineare m Strategia creo una copia ordinata delle tabelle genero il risultato per scansione lineare particolarmente efficiente se una delle tabelle è già ordinata Progettazione Fisica e Tuning >> Concetti Avanzati >> Ottimizzazione

23 23 G. Mecca - mecca@unibas.it - Basi di Dati Esecuzione di un Join m Hash Join idea: hash sullattributo di join per entrambe le tabelle m Strategia costruisco in memoria centrale una tabella di hash per entrambe le tabelle sullattr. di join scandisco una tabella e per ciascun valore uso la funzione di hash per localizzare i bucket di ennuple corrispondenti Progettazione Fisica e Tuning >> Concetti Avanzati >> Ottimizzazione

24 24 G. Mecca - mecca@unibas.it - Basi di Dati Piano C m Supponiamo che: non ci siano indici rilevanti m Selezioni scansione lineare m Join sort-merge m Piano completo Progettazione Fisica e Tuning >> Concetti Avanzati >> Ottimizzazione S D S.ciclo= laurea sp. S. nome, S.cognome D.codice=S.relatore Piano C D.cognome =Vieri

25 25 G. Mecca - mecca@unibas.it - Basi di Dati Piano D m Supponiamo che: indice di hash sul nome docente indice di hash sul relatore m Selezione hash m Join cicli con indice Progettazione Fisica e Tuning >> Concetti Avanzati >> Ottimizzazione S S.ciclo=laurea sp. S. nome, S.cognome D D.codice=S.relatore Piano D D.cognome =Vieri

26 26 G. Mecca - mecca@unibas.it - Basi di Dati Piano D Completo Progettazione Fisica e Tuning >> Concetti Avanzati >> Ottimizzazione Calcolata usando lindice di hash (non è necessaria la materializzazione) Ciclo nidificato con indice (uso lindice secondario su S.relatore) Calcolata al volo sul risultato del Join S S.ciclo=laurea sp. S. nome, S.cognome D D.codice=S.relatore Piano D D.cognome =Vieri

27 27 G. Mecca - mecca@unibas.it - Basi di Dati Piano C, Altra Ipotesi m Supponiamo che: indice di hash sul nome docente indice secondario sul ciclo dello studente m Non molti benefici rispetto a D il numero di valori di ciclo è basso bassa selettività dellindice Progettazione Fisica e Tuning >> Concetti Avanzati >> Ottimizzazione S D S.ciclo= laurea sp. S. nome, S.cognome D.codice=S.relatore Piano C D.cognome =Vieri

28 28 G. Mecca - mecca@unibas.it - Basi di Dati Ottimizzazione m Tutti i DBMS di fascia alta consentono di consultare i piani di esecuzione scelti m Comando EXPLAIN sintassi tipica: EXPLAIN illustra il piano di esecuzione e fornisce la stima di costo da parte dellottimizzatore utilizzabile sia con PgSQL che con MySQL Progettazione Fisica e Tuning >> Concetti Avanzati >> Ottimizzazione

29 29 G. Mecca - mecca@unibas.it - Basi di Dati Messa a Punto (Tuning) m Scenario tipico dopo una fase iniziale, la base di dati viene sottoposta a valutazione delle prestazioni le prestazioni sono inadeguate è necessario intervenire per migliorare le prestazioni mettendo a punto i parametri m Punto di partenza carico applicativo Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

30 30 G. Mecca - mecca@unibas.it - Basi di Dati Carico Applicativo (Workload) m La messa a punto non è possibile per tutte le possibili interrogazioni m Si considerano le operazioni più frequenti e rilevanti m Carico applicativo lista di interrogazioni lista di aggiornamenti prestazioni attese per ciascuna (es: <2s, oppure numero di transazioni al minuto) Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

31 31 G. Mecca - mecca@unibas.it - Basi di Dati Attività del Tuning m Scelta delle strutture di accesso organizzazione dei file, indici, clustering m Interventi sulle operazioni riscritture, livelli di isolamento m Interventi sullo schema logico partizionamenti, aggregazioni, denormalizzazioni m Interventi sui parametri architetturali buffer, dischi, RAM Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

32 32 G. Mecca - mecca@unibas.it - Basi di Dati Strutture di Accesso m Principale forma di intervento aggiunta di indici m Attenzione gli indici migliorano le prestazioni ma rallentano gli aggiornamenti richiedono spazio su disco è necessario un compromesso Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

33 33 G. Mecca - mecca@unibas.it - Basi di Dati Strutture di Accesso m Il caso estremo: base di dati di sola lettura m Esempio (Shasha, Database Tuning) il sistema informativo di Ellis Island archivio degli immigrati in USA tra l800 e i primi del 900 (milioni di ennuple) ricerche per cognome, nome e anno di arrivo m E possibile utilizzare molti indici cognome, nome, anno, cognome e anno, cognome e nome Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

34 34 G. Mecca - mecca@unibas.it - Basi di Dati Strutture di Accesso m Linea guida n.1 è opportuno introdurre un indice solo se contribuisce a migliorare le prestazioni di più di una interrogazione del carico applicativo m Attenzione: non sempre lottim. riesce ad usare un indice es: select * from Impiegato where stipendioAnnuo/12>3000 verificare il piano di esecuzione prima e dopo Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

35 35 G. Mecca - mecca@unibas.it - Basi di Dati Strutture di Accesso m Linea guida n.2 gli attributi su cui intervenire sono quelli che compaiono in join e selezioni per condizioni di uguaglianza (es: stipendio=5000) sono da preferirsi indici hash per condizioni su intervalli (es: stipendio>5000 and stipendio <10000) sono da preferirsi B+-tree Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

36 36 G. Mecca - mecca@unibas.it - Basi di Dati Strutture di Accesso m Linea guida n.3 è opportuno introdurre un indice solo se il numero di valori dellattributo è sufficientemente alto m Esempio: select * from impiegati where stipendio = 10000 lindice su stipendio potrebbe non servire se sono molti ad avere uno stipendio uguale Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

37 37 G. Mecca - mecca@unibas.it - Basi di Dati Strutture di Accesso m Linea guida n.4 attenzione ai colli di bottiglia m Esempio n.1: relazione disordinata con inserimenti frequenti lultimo blocco è un collo di bottiglia m Esempio n.2: modifiche allo schema (lock in scrittura sul catalogo) Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

38 38 G. Mecca - mecca@unibas.it - Basi di Dati Interventi sulle Operazioni m Due forme riscrittura delle operazioni scelta del livello di isolamento per le trans. m Esempio: select * from Impiegato where stipendioAnnuo/12>3000 select * from Impiegato where stipendioAnnuo>3000*12 Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

39 39 G. Mecca - mecca@unibas.it - Basi di Dati Interventi sulle Operazioni m Altre forme di riscrittura limitare luso di nidificazione (difficilmente ottimizzabile) m Livello di isolamento il livello standard è SERIALIZABLE in molti casi READ COMMITTED è adeguato in generale, è opportuno separare interrogazioni interattive e aggiornamenti Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

40 40 G. Mecca - mecca@unibas.it - Basi di Dati Modifiche allo Schema Logico m Non è detto che lo schema normalizzato sia il più efficiente m Quattro forme di intervento principali partizionamenti di tabelle aggregazioni di tabelle denormalizzazione di tabelle aggiunta di informazione ridondante Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

41 41 G. Mecca - mecca@unibas.it - Basi di Dati Modifiche allo Schema Logico m Attenzione modificare lo schema logico impedisce alle applicazioni di lavorare correttamente m Due possibili soluzioni le modifiche allo schema logico vanno decise molto presto (subito dopo la progettazione logica) oppure, se è possibile, si crea uno schema esterno uguale al vecchio schema logico Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

42 42 G. Mecca - mecca@unibas.it - Basi di Dati Modifiche allo Schema Logico m Partizionamenti di tabelle tabelle con molti attributi possono essere spezzate in due m Esempio: la tabella Studente chiave primaria (matricola) attributi anagrafici (nome, cognome, codice fiscale, indirizzo, reddito del padre ecc.) attributi accademici (ciclo, anno di corso, relatore, tirocinio, tutor ecc.) Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

43 43 G. Mecca - mecca@unibas.it - Basi di Dati Modifiche allo Schema Logico m Posso dividere la tabella in due tabelle DatiAnagraficiStudente: matricola e tutti gli attributi anagrafici DatiUniversitariStudente: matricola e tutti gli attributi universitari m Conviene se le operazioni richiedono di accedere raramente a tutti i dati in questo caso è necessario un join Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

44 44 G. Mecca - mecca@unibas.it - Basi di Dati Modifiche allo Schema Logico m Attenzione questo è un esempio di ristrutturazione dello schema che deve essere effettuato molto presto le viste non servono definire la vista Studente corrispondente al join delle tabelle partizionate non darebbe nessun beneficio in termini di prestazioni Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

45 45 G. Mecca - mecca@unibas.it - Basi di Dati Modifiche allo Schema Logico m Aggregazioni di tabelle può essere utile per evitare join m Esempio: Studente e Tirocinio chiave esterna matricola di tirocinio se laccesso ai dati del tirocinio è frequente, conviene riunirli in ununica tabella si evitano i join aumentano i valori nulli posso definire due viste per pres. lo schema Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

46 46 G. Mecca - mecca@unibas.it - Basi di Dati Modifiche allo Schema Logico m Denormalizzazioni di tabelle la normalizzazione evita le anomalie ma spesso costringe a fare troppi join m Esempio: Docente e Numeri Numeri(numero, docente FK) se devo frequentemente stampare lelenco di nomi e numeri posso aggiungendo il nome del docente alla tabella Numeri aumenta la complessità degli aggiornamenti Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

47 47 G. Mecca - mecca@unibas.it - Basi di Dati Modifiche allo Schema Logico m In questo caso si generano (modeste) anomalie di aggiornamento esempio: ogni volta che cambio il cognome di un docente devo intervenire tanto su Docente che su Numeri per evitare di creare istanze inconsistenti della base di dati è necessario utilizzare transazioni Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

48 48 G. Mecca - mecca@unibas.it - Basi di Dati Modifiche allo Schema Logico m Aggiunta di informazione ridondante in alcuni casi può evitare interrogazioni complesse m Esempio: numero di esami sostenuti derivabile per aggregazione dal join di studenti ed esami può essere memorizzato esplicitamente come attributo di Studente costringe ad utilizzare le transazioni Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

49 49 G. Mecca - mecca@unibas.it - Basi di Dati Parametri Architetturali m Buffer aumentare il buffer aumenta lhit ratio non è opportuno andare oltre un certo limite m Dischi disporre i file su più dischi aumenta le prestazioni es: disco per il log (il log è un tipico collo di bottiglia) Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

50 50 G. Mecca - mecca@unibas.it - Basi di Dati Concetti Avanzati m Introduzione m Ottimizzazione delle Interrogazioni Un Esempio m Messa a Punto (Tuning) Carico Applicativo Strutture di Accesso Modifiche allo Schema Logico Parametri Architetturali Progettazione Fisica e Tuning >> Sommario

51 51 G. Mecca - mecca@unibas.it - Basi di Dati Termini della Licenza m This work is licensed under the Creative Commons Attribution- ShareAlike License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/1.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. http://creativecommons.org/licenses/by-sa/1.0/ m Questo lavoro viene concesso in uso secondo i termini della licenza Attribution-ShareAlike di Creative Commons. Per ottenere una copia della licenza, è possibile visitare http://creativecommons.org/licenses/by-sa/1.0/ oppure inviare una lettera allindirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. http://creativecommons.org/licenses/by-sa/1.0/


Scaricare ppt "G. Mecca – – Università della Basilicata Basi di Dati Progettazione Fisica e Tuning: Concetti Avanzati versione 2.0 Questo lavoro è concesso."

Presentazioni simili


Annunci Google