Basi di Dati

51
G. Mecca – [email protected] – Università della G. Mecca – [email protected] – Università della Basilicata 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)

description

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). Progettazione Fisica e Tuning >> Sommario. Concetti Avanzati. Introduzione - PowerPoint PPT Presentation

Transcript of Basi di Dati

Page 1: Basi di Dati

G. Mecca – [email protected] – Università della BasilicataG. Mecca – [email protected] – 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)

Page 2: Basi di Dati

2G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Concetti Avanzati Introduzione Ottimizzazione delle Interrogazioni

Un Esempio Messa a Punto (“Tuning”)

Carico ApplicativoStrutture di AccessoModifiche allo Schema LogicoParametri Architetturali

Progettazione Fisica e Tuning >> Sommario

Page 3: Basi di Dati

3G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Introduzione Processo di Progettazione della BD

“progettazione logica”: dallo schema concettuale viene derivato: uno schema logico standardgli 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

Page 4: Basi di Dati

4G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Introduzione Progettazione Logica

l’obiettivo è fare in modo che la base di dati sia normalizzata (priva di anomalie)

algoritmo sistematico Progettazione Fisica

l’obiettivo è fare in modo che la operazioni sulla base di dati siano efficienti

problema poco sistematizzabile

Progettazione Fisica e Tuning >> Concetti Avanzati >> Introduzione

Page 5: Basi di Dati

5G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Progettazione Fisica L’obiettivo sono le prestazioni

si interviene su parametri che le influenzano Parametri che influenzano le prestazioni

organizzazione dei file e strutture di accessoschema logicooperazioni (query e transazioni)parametri dell’architettura (buffer, dischi ecc.)

Questi aspetti sono difficili da progettare

Progettazione Fisica e Tuning >> Concetti Avanzati >> Introduzione

Page 6: Basi di Dati

6G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Messa a Punto (“Tuning”) Tipicamente

si comincia con lo schema standardle strutture di accesso standardsi accumula informazione sul funzionamento

e si valutano le prestazionisulla base dei dati raccolti si procede alla

messa a punto dei parametriè un’attività condotta periodicamente

Progettazione Fisica e Tuning >> Concetti Avanzati >> Introduzione

Page 7: Basi di Dati

7G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Messa a Punto (“Tuning”) In questa lezione

panoramica sulla progettazione fisica e il tuning

discuteremo le principali classi di parametridescriveremo delle linee guidanon c’è la pretesa di essere esaustivi

Punto di partenzavalutazione e ottimizzazione delle

interrogazioni in un DBMS relazionale

Progettazione Fisica e Tuning >> Concetti Avanzati >> Introduzione

Page 8: Basi di Dati

8G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Ottimizzazione delle Interrogazioni Processo di valutazione di una query

la query viene inviata al DBMS interattivamente o da un’applicazione

il DBMS effettua l’analisi 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

Page 9: Basi di Dati

9G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Ottimizzazione delle Interrogazioni Processo di ottimizzazione

scelta di una strategia efficiente per la valutazione della query

Piano di esecuzione di una queryscelta dell’ordine di applicazione degli

operatori algebrici necessaristrategia di calcolo del risultato di ciascun

operatore algebrico attraverso le strutture di accesso disponibili

Progettazione Fisica e Tuning >> Concetti Avanzati >> Ottimizzazione

Page 10: Basi di Dati

10G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Ottimizzazione delle Interrogazioni Per effettuare l’ottimizzazione

vengono valutati molti diversi piani di esecuzione alternativi

l’ottimizzatore 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

Page 11: Basi di Dati

11G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Un Esempio 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) );

Page 12: Basi di Dati

12G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Un Esempio 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.cognomeFROM Docente, StudenteWHERE Docente.codice=Studente.relatore AND Studente.ciclo = ‘laurea sp.’ AND Docente.cognome = ‘Vieri’;

Page 13: Basi di Dati

13G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Un Esempio Forma standard

Progettazione Fisica e Tuning >> Concetti Avanzati >> Ottimizzazione

SELECT S.nome, S.cognomeFROM Docente AS D, Studente AS SWHERE 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

Page 14: Basi di Dati

14G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Un Esempio Non è l’unico 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

Page 15: Basi di Dati

15G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Un Esempio In generale un ottimizzatore dovrebbe

preferire il piano B al piano Ai prodotti cartesiani sono costosi

In altri casi peròl’albero degli operatori da solo non basta a

stabilire se una strategia è migliore di un’altraè necessario considerare le strutture di

accesso disponibili

Progettazione Fisica e Tuning >> Concetti Avanzati >> Ottimizzazione

Page 16: Basi di Dati

16G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - 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’

Page 17: Basi di Dati

17G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Un Esempio In generale

il piano C è migliore di A e di Bin alcune condizioni il piano D è migliore di C

Dipende dalla strategia utilizzata per valutare gli operatoriin particolare dall’organizzazione dei filee dalle strutture di accesso (indici)

Progettazione Fisica e Tuning >> Concetti Avanzati >> Ottimizzazione

Page 18: Basi di Dati

18G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Esecuzione di un Operatore Algebrico Tre tecniche principali Scansione lineare del file

inefficiente, applicabile solo a file piccoli Accesso attraverso indici

assume la presenza di indici (aggiornamenti) 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

Page 19: Basi di Dati

19G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Esecuzione di una Selezione con Ug. File non ordinato, nessun indice rilevante

scansione lineare del file File ordinato per l’attributo, nessun indice

ricerca binaria nel file (ennuple cons.) Indice B+-tree sull’attributo

ricerca nell’indice Indice di Hash sull’attributo

accesso diretto con la funzione di hashing

Progettazione Fisica e Tuning >> Concetti Avanzati >> Ottimizzazione

Page 20: Basi di Dati

20G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Esecuzione di un Join Strategia elementare

cicli nidificatiabbastanza inefficiente

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

Page 21: Basi di Dati

21G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Esecuzione di un Join Cicli nidificati con indice

sfrutto un indice su uno degli attributi di join Esempio: S JOIN D ON S.relatore=D.cod

supponiamo di avere un indice su D.codiceper 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 sull’indice

Page 22: Basi di Dati

22G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Esecuzione di un Join “Sort-Merge” Join

idea: se entrambe le tabelle sono ordinate sull’attributo di join, il join è lineare

Strategiacreo una copia ordinata delle tabellegenero il risultato per scansione lineareparticolarmente efficiente se una delle

tabelle è già ordinata

Progettazione Fisica e Tuning >> Concetti Avanzati >> Ottimizzazione

Page 23: Basi di Dati

23G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Esecuzione di un Join Hash Join

idea: hash sull’attributo di join per entrambe le tabelle

Strategiacostruisco in memoria centrale una tabella di

hash per entrambe le tabelle sull’attr. di joinscandisco 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

Page 24: Basi di Dati

24G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Piano C Supponiamo che:

non ci siano indici rilevanti

Selezioniscansione lineare

Joinsort-merge

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’

Page 25: Basi di Dati

25G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Piano D Supponiamo che:

indice di hash sul nome docente

indice di hash sul relatore

Selezionehash

Joincicli 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’

Page 26: Basi di Dati

26G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Piano D Completo

Progettazione Fisica e Tuning >> Concetti Avanzati >> Ottimizzazione

Calcolata usando l’indicedi hash (non ènecessaria la materializzazione)

Ciclo nidificato con indice(uso l’indice secondariosu S.relatore)

Calcolata al volosul risultato del Join

S

S.ciclo=‘laurea sp.’

S.nome, S.cognome

D

D.codice=S.relatore

Piano D

D.cognome =‘Vieri’

Page 27: Basi di Dati

27G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Piano C, Altra Ipotesi Supponiamo che:

indice di hash sul nome docente

indice secondario sul ciclo dello studente

Non molti benefici rispetto a Dil numero di valori di

ciclo è bassobassa selettività

dell’indice

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’

Page 28: Basi di Dati

28G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Ottimizzazione Tutti i DBMS di fascia alta consentono di

consultare i piani di esecuzione scelti Comando EXPLAIN

sintassi tipica: EXPLAIN <select>illustra il piano di esecuzione e fornisce la

stima di costo da parte dell’ottimizzatoreutilizzabile sia con PgSQL che con MySQL

Progettazione Fisica e Tuning >> Concetti Avanzati >> Ottimizzazione

Page 29: Basi di Dati

29G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Messa a Punto (“Tuning”) 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 Punto di partenza

carico applicativo

Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

Page 30: Basi di Dati

30G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Carico Applicativo (“Workload”) La messa a punto non è possibile per

tutte le possibili interrogazioni Si considerano le operazioni più frequenti

e rilevanti Carico applicativo

lista di interrogazionilista di aggiornamentiprestazioni attese per ciascuna (es: <2s,

oppure numero di transazioni al minuto)

Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

Page 31: Basi di Dati

31G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Attività del Tuning Scelta delle strutture di accesso

organizzazione dei file, indici, clustering Interventi sulle operazioni

riscritture, livelli di isolamento Interventi sullo schema logico

partizionamenti, aggregazioni, denormalizzazioni Interventi sui parametri architetturali

buffer, dischi, RAM

Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

Page 32: Basi di Dati

32G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Strutture di Accesso Principale forma di intervento

aggiunta di indici Attenzione

gli indici migliorano le prestazioni ma rallentano gli aggiornamentirichiedono spazio su discoè necessario un compromesso

Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

Page 33: Basi di Dati

33G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Strutture di Accesso Il caso estremo: base di dati di sola lettura Esempio (Shasha, “Database Tuning”)

il sistema informativo di Ellis Islandarchivio degli immigrati in USA tra l’800 e i

primi del 900 (milioni di ennuple)ricerche per cognome, nome e anno di arrivo

E’ possibile utilizzare molti indicicognome, nome, anno, cognome e anno,

cognome e nome

Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

Page 34: Basi di Dati

34G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Strutture di Accesso Linea guida n.1

è opportuno introdurre un indice solo se contribuisce a migliorare le prestazioni di più di una interrogazione del carico applicativo

Attenzione: non sempre l’ottim. riesce ad usare un indicees: select * from Impiegato

where stipendioAnnuo/12>3000verificare il piano di esecuzione prima e dopo

Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

Page 35: Basi di Dati

35G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Strutture di Accesso 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

Page 36: Basi di Dati

36G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Strutture di Accesso Linea guida n.3

è opportuno introdurre un indice solo se il numero di valori dell’attributo è sufficientemente alto

Esempio:select * from impiegati

where stipendio = 10000l’indice su stipendio potrebbe non servire se

sono molti ad avere uno stipendio uguale

Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

Page 37: Basi di Dati

37G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Strutture di Accesso Linea guida n.4

attenzione ai colli di bottiglia Esempio n.1:

relazione disordinata con inserimenti frequenti

l’ultimo blocco è un collo di bottiglia Esempio n.2:

modifiche allo schema (lock in scrittura sul catalogo)

Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

Page 38: Basi di Dati

38G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Interventi sulle Operazioni Due forme

riscrittura delle operazioniscelta del livello di isolamento per le trans.

Esempio:select * from Impiegato

where stipendioAnnuo/12>3000select * from Impiegato

where stipendioAnnuo>3000*12

Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

Page 39: Basi di Dati

39G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Interventi sulle Operazioni Altre forme di riscrittura

limitare l’uso di nidificazione (difficilmente ottimizzabile)

Livello di isolamentoil livello standard è SERIALIZABLEin molti casi READ COMMITTED è adeguatoin generale, è opportuno separare

interrogazioni interattive e aggiornamenti

Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

Page 40: Basi di Dati

40G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Modifiche allo Schema Logico Non è detto che lo schema normalizzato

sia il più efficiente Quattro forme di intervento principali

partizionamenti di tabelleaggregazioni di tabelledenormalizzazione di tabelleaggiunta di informazione ridondante

Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

Page 41: Basi di Dati

41G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Modifiche allo Schema Logico Attenzione

modificare lo schema logico impedisce alle applicazioni di lavorare correttamente

Due possibili soluzionile 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

Page 42: Basi di Dati

42G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Modifiche allo Schema Logico Partizionamenti di tabelle

tabelle con molti attributi possono essere spezzate in due

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

Page 43: Basi di Dati

43G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Modifiche allo Schema Logico Posso dividere la tabella in due tabelle

DatiAnagraficiStudente: matricola e tutti gli attributi anagrafici

DatiUniversitariStudente: matricola e tutti gli attributi universitari

Conviene sele operazioni richiedono di accedere

raramente a tutti i datiin questo caso è necessario un join

Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

Page 44: Basi di Dati

44G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Modifiche allo Schema Logico Attenzione

questo è un esempio di ristrutturazione dello schema che deve essere effettuato molto presto

le viste non servonodefinire la vista “Studente” corrispondente al

join delle tabelle partizionate non darebbe nessun beneficio in termini di prestazioni

Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

Page 45: Basi di Dati

45G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Modifiche allo Schema Logico Aggregazioni di tabelle

può essere utile per evitare join Esempio: Studente e Tirocinio

chiave esterna “matricola” di tirociniose l’accesso ai dati del tirocinio è frequente,

conviene riunirli in un’unica tabellasi evitano i joinaumentano i valori nulliposso definire due viste per pres. lo schema

Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

Page 46: Basi di Dati

46G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Modifiche allo Schema Logico Denormalizzazioni di tabelle

la normalizzazione evita le anomalie ma spesso costringe a fare troppi join

Esempio: Docente e NumeriNumeri(numero, docente FK)se devo frequentemente stampare l’elenco 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

Page 47: Basi di Dati

47G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Modifiche allo Schema Logico 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

Page 48: Basi di Dati

48G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Modifiche allo Schema Logico Aggiunta di informazione ridondante

in alcuni casi può evitare interrogazioni complesse

Esempio: numero di esami sostenuti derivabile per aggregazione dal join di

studenti ed esamipuò essere memorizzato esplicitamente

come attributo di Studentecostringe ad utilizzare le transazioni

Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

Page 49: Basi di Dati

49G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Parametri Architetturali Buffer

aumentare il buffer aumenta l’”hit ratio”non è opportuno andare oltre un certo limite

Dischidisporre i file su più dischi aumenta le

prestazionies: disco per il log (il log è un tipico collo di

bottiglia)

Progettazione Fisica e Tuning >> Concetti Avanzati >> Tuning

Page 50: Basi di Dati

50G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Concetti Avanzati Introduzione Ottimizzazione delle Interrogazioni

Un Esempio Messa a Punto (“Tuning”)

Carico ApplicativoStrutture di AccessoModifiche allo Schema LogicoParametri Architetturali

Progettazione Fisica e Tuning >> Sommario

Page 51: Basi di Dati

51G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati

Termini della Licenza

Termini della Licenza

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.

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 all’indirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.