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