Ottimizzazione e organizzazione fisica

Documenti analoghi
Basi di Dati e Sistemi Informativi. Organizzazione fisica dei dati. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale

Strutture di accesso ai dati: B + -tree

Strutture fisiche e strutture di accesso ai dati

una chiave primaria o secondaria => B+tree primario o secondario (NL,g e h diversi) clustered o unclustered => ho un piano di accesso diverso!!

INDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso

Memorizzazione di una relazione

La gestione delle interrogazioni

Pag Politecnico di Torino 1

Organizzazione fisica dei dati: Gli Indici

Strutture fisiche di accesso

FILE E INDICI Architettura DBMS

Cognome Nome Matricola Ordin.

Indici multilivello dinamici (B-alberi e B + -alberi) Alberi di ricerca - 1. Un esempio. Alberi di ricerca - 3. Alberi di ricerca - 2

Dr. C. d'amat LA PROGETTAZIONE FISICA

Esercizio 10.1 Soluzione

Organizzazione Fisica dei Dati (Parte II)

I B+ Alberi. Sommario

Organizzazione fisica dei dati. L. Vigliano

Parte 6 Esercitazione sull accesso ai file

Esercitazione E3 File System

INTRODUZIONE AL LIVELLO FISICO: FILE, PAGINE, RECORD E INDICI

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.

File e Indici. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Basi di Dati 2. Corso del Prof. Stefano Ceri. Politecnico di Milano Anno Accademico 2010/2011. Stefano Invernizzi

Il file È un insieme di informazioni: programmi. Il File System. Il file system

5. Strutture di indici per file

Introduzione alla valutazione delle interrogazioni. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1

ORDINE DI INSERIMENTO DELLE CHIAVI <35 >35

Gestione di basi di dati in Access. SUISM Docente: Ugo de Liguoro a.a Asti

Parte V. Il File System

INDICI, IMPLEMENTAZIONE DI OPERATORI ALGEBRICI E QUERY PROCESSING

Heap e code di priorità

Processo di ottimizzazione. Ottimizzatore di Oracle. Execution plan. Esempio. Albero di esecuzione. Ottimizzatore di Oracle Dicembre 2002

Scelte nella valutazione dei costi

Tipi di dato e Strutture dati elementari

Algoritmi e Strutture Dati

Architettura degli elaboratori Docente:

Algoritmi e Strutture Dati

Indice. Prefazione. Capitolo 1 Introduzione al data warehousing 1

LE STRUTTURE DATI DINAMICHE: GLI ALBERI. Cosimo Laneve

Esercizi Capitolo 7 - Hash

23/10/2016. gli alberi. alcune definizioni. un esempio. LABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica.

Albero binario. Alberi binari (introduzione) Terminologia. Alberi di ricerca binaria (BST)

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Problemi di ordinamento

Ottimizzazione delle query. Stima dell IO: Per generare i piani si considera: --> Generare e confrontare i piani Query

Progettazione Fisica - 1. Concetti di Base - 1. Indici. Progettazione di Basi di Dati. Assunzioni Fondamentali

Heap scenario. Ho un insieme dinamico di oggetti, ciascuno identificato con una priorità. (la priorità è semplicemente un numero);

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:

TRIE (albero digitale di ricerca)

Sviluppo di programmi

! 11.2! Silberschatz, Galvin and Gagne 2005! Operating System Concepts 7 th Edition, Jan 1, 2005!

Indici non tradizionali. Indici non tradizionali. Indici bitmap. Indici bitmap. Indici bitmap. Indici bitmap - esempio

I DATI E LA LORO INTEGRAZIONE 63 4/001.0

Componenti di un DBMS

Equivalenza di Espressioni Algebriche

Informatica e Bioinformatica: Basi di Dati

Gestione della Concorrenza

Dizionari Liste invertite e Trie

Alberi binari di ricerca

MODELLI DEI DATI. Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia

T 1 =1. n 4 n log n. T n =3 T. Esercizio 1 (6 punti) A.A Esame di Algoritmi e strutture dati 18 luglio 2008

Programmazione II. Lezione 7. Daniele Sgandurra 9/11/2010.

Data Management. Query evaluation. Maurizio Lenzerini, Riccardo Rosati

Algoritmi e Strutture Dati

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Ogni ufficio è formato da 100 dipendenti, i quali hanno a loro volta 3 clienti ciascuno. Inoltre, ad ogni ufficio sono stati assegnati 4 fornitori.

Il file system. Il File System. Attributi del file. File

CORSO ACCESS PARTE IV

CALCOLO DEL COSTO DI JOIN. costo di join 1

Introduzione Concetti Generali Pratica su Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 1

Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia. Università degli Studi di Salerno

Basi di dati II 30 gennaio 2015

Significato delle componenti

ORGANIZZAZIONE FISICA DEI DATI

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

Introduzione Definizioni

Espressioni aritmetiche

Indici. Sistemi Informativi L-B. Home Page del corso: Versione elettronica: Indici.pdf

Sistemi Informativi L-B. Home Page del corso: Versione elettronica: Indici.pdf. Sistemi Informativi L-B

Note sull utilizzazione di componenti logici di tipo memoria

PIL Percorsi di Inserimento Lavorativo

Le basi di dati. Definizione 1. Lezione 2. Bisogna garantire. Definizione 2 DBMS. Differenza

Alberi Binari di Ricerca

Casi di studio per il tuning delle strutture fisiche (Shasha)

Realizzazione del file system. Fabio Buttussi HCI Lab Dipart. Di Matematica ed Informatica Università degli studi di Udine

Strutture dati e loro organizzazione. Gabriella Trucco

Informatica 3. LEZIONE 20: Ordinamento esterno. Modulo 1: Organizzazione della memoria Modulo 2: Ordinamento esterno

Il supporto al sistema operativo

Parte III. L algebra relazionale

BASI DATI: algebra relazionale

Esercizi di Algoritmi e Strutture Dati

Esercitazione 1 Algebra relazionale

Basi di Dati. Concetti e Principi Generali. Maria Mirto

B-Alberi Esercitazioni

Il sistema operativo deve fornire una visione astratta dei file su disco e l'utente deve avere la possibilità di:

Corso di Laurea in Informatica Basi di Dati a.a

Gestione del file system. Astrazione di File System. Attributi del file. File

Ripasso Concetti Pratica in Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 3

Transcript:

Parte VIII Organizzazione fisica Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VIII - 1 Ottimizzazione e organizzazione fisica L Ottimizzatore genera i piani esecutivi delle interrogazioni Un piano esecutivo rappresenta un espressione algebrica, e specifica le modalità di esecuzione degli operatori Il Gestore degli accessi trasforma un piano esecutivo in una sequenza di accessi alle pagine della base di dati Sia l ottimizzazione che l accesso ai dati dipendono dalla organizzazione fisica (come le tabelle sono organizzate e memorizzate nei file): Uso di metodi di accesso (indici) Organizzazione dei dati all interno delle pagine Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VIII - 2

Organizzazione della pagina H E A D E R T 1 T 2 T 3 T N DIZIONARIO DEI DATI STACK STACK T U P L A N T U P L A 3 T U P L A 2 T U P L A 1 T R A I L E R Ogni pagina del DB contiene un certo numero di tuple, ed uno spazio libero per consentire inserimenti La pagina e composta da: Block header e block trailer gestiti dal file system Dizionario di pagina contiene puntatori ai dati all interno della pagina (gestito a stack) Parte utile contenente i dati (gestita a stack) N.B. Non sempre è consentito avere tuple di lunghezza variabile e spezzare una tupla su più pagine Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VIII - 3 Primitive del gestore delle pagine Inserzione e aggiornamento, con eventuale riorganizzazione della pagina, svolta comunque in memoria centrale Cancellazione: tramite invalidazione della tupla Accesso ad una tupla Associativo: tramite il valore della chiave In base al suo offset Accesso ad un campo di una tupla, calcolato in base allo offset e alla lunghezza dei campi N.B. E possibile avere nella stessa pagina tuple di relazioni diverse (clustering) Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VIII - 4

Strutture sequenziali Disposizione sequenziale delle tuple. Il file è costituito da blocchi consecutivi. Vari tipi di organizzazione Entry-sequenced: tuple in ordine di immissione Utilizzata per scan sequenziali Inserzioni e cancellazioni gestite lasciando i blocchi solo parzialmente pieni. Sequenziale ad array: tuple di dimensione fissa File di n blocchi ciascuno con m tuple Tuple accedute anche tramite il valore dell indice Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VIII - 5 Accesso calcolato: indici hash Accesso associativo ai dati: si calcola la posizione della tupla a partire dal valore della chiave Al file vengono allocati B blocchi Per inserire e per accedere ad una tupla di chiave k si utizza una funzione hash h(k) con codominio [0.. B] calcola il blocco in cui la tupla di chiave k è contenuta Si sovradimensiona il file per evitare il trabocco dei blocchi a causa delle collisioni Metodo più sofisticati: hashing dinamico Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VIII - 6

Indici B-tree LEO RICK DINO EZIO LUCA NANA TED UGO ALDO DAN...................... DAN LEO LORI LUCA MAX NINO PIO VAL VIC BLOCCHI DEL FILE Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VIII - 7 Indici B-tree: struttura.. P 0 K 1 P 1 K i P i K i+1 K F-1 P F-1 K F P F SOTTOALBERO CON CHIAVI K<K 1 SOTTOALBERO CON CHIAVI K i K<K i+1 SOTTOALBERO CON CHIAVI K>K F Sono alberi m-ri bilanciati di ricerca i cui nodi sono blocchi allocati su memoria di massa Ciascun nodo contiene una sequenza ordinata di F chiavi K 1,K 2,..K F e F +1 puntatori a sottoalberi: F +1 è detto fan-out dell albero La ricerca ha profondità logaritmica (in base F +1): parte dalla radice e confronta ad ogni passo la chiave k da ricercare con quelle del nodo corrente. Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VIII - 8

B-tree: organizzazione delle foglie A) Key-sequenced : tuple sono allocate nei nodi foglia Utilizzata per gli indici primari Indici definiti come unique sulla primary key B) Indiretta: i nodi foglia contengono i puntatori ai blocchi contenenti le tuple Utilizzata per indici secondari Tuple allocate in base ad un indice primario N.B. Su strutture sequenziali ordinate è possibile costruire indici sparsi cioè indici sulle prime tuple di ciascun blocco Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VIII - 9 B-tree: inserzioni e cancellazioni Cancellazioni ed inserzioni sulle tabelle provocano sempre anche aggiornamenti dell indice. Se in inserzione il nodo del B-tree non ha più spazio libero si effettua uno split del blocco A seguito di una cancellazione, si può dover effettuare il merge di due blocchi Inserzioni e cancellazioni possono anche provocare una variazione nel numero ddi livelli (costo di accesso) Per mantenere l albero bilanciato, si mantiene il livello di riempimento dei nodi fra F/2 e F Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VIII - 10

B+tree LEO RICK DINO EZIO LUCA NANA TED UGO ALDO DAN...................... DAN LEO LORI LUCA MAX NINO PIO VAL VIC Nei B+tree le foglie sono legate in una catena che le collega in base all ordinamento della chiave Ciò è vantaggioso nel caso delle range queries, in cui il predicato di selezione è su di un intervallo Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VIII - 11 B-tree: costo di accesso Per accedere ad una tupla di chiave data, è necessario un accesso per ogni livello del B-tree Il costo di accesso dipende quindi dalla profondità dello albero, e quindi dal fattore di ramificazione (fan-out) F+1 Per calcolare la dimensione, ed il numero di livelli di un B-tree consideriamo i seguenti parametri N: numero di tuple nella tabella indicizzata B: dimensione di una pagina o blocco k: lunghezza di una chiave t: lunghezza di una tupla p: lunghezza di un puntatore u: coefficiente medio di riempimento dei nodi Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VIII - 12

Dimensioni e profondità dell albero Numero medio di tuple per foglia Key-sequenced C = B/(k +t) u Indiretto C = B/(k +p) u Fan-out medio F = B/(k +p) u Profondità media dell albero H = 1+log F (N/C) Dimensione in pagine dell albero S = H Σi=0 F i+1 Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VIII - 13 Piani esecutivi L ottimizzatore produce un piano esecutivo rappresentabile con un albero, secondo il quale la query viene poi valutata Le foglie sono le tabelle ed i nodi interni specificano le modalità con cui gli accessi alle tabelle e le operazioni relazionali sono effettuate Le operazioni elementari supportate dai DBMS relazionali tipicamente sono: Scansione sequenziale Accesso tramite indice Join (con varie modalità) Ordinamento Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VIII - 14

Scansione sequenziale Le tuple della tabella vengono accedute sequenzialmente Vengono letti e bufferizzati più blocchi contigui (per ridurre i tempi di accesso) Contestualmente alla scansione possono essere eseguite varie operazioni: Selezione: filtraggio su una condizione sulla tupla Proiezione su una lista di attributi; Ordinamento su una lista di attributi; Aggiornamento: inserzioni, cancellazioni e modifiche sulle tuple man mano che vengono accedute Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VIII - 15 Ordinamento Sort-merge a più vie, con parallelismo che dipende dal numero m di pagine nel buffer dedicate all operazione Data una tabella R i di B i blocchi i singoli blocchi vengono ordinati a m per volta Succesivamente si effettuano più passate, ciacuna delle quali consta in un merge a m-1 vie che produce m-1 file, che costituiscono l input della passata successiva In tutto le passate sono log m-1 B i, e ciascuna comporta una lettura ed una scrittura per ogni blocco di R i con un numero di accessi complessivo di 2 B i log m-1 Bi Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VIII - 16

Accesso tramite indice Un indice su di un attributo A i può essere sfruttato per valutare predicati del tipo A i = V o del tipo V 1 A i V 2, che si dicono valutabili tramite l indice Se c è una congiunzione di pi`u predicati si utilizza l indice corrispondente al predicato che si ritiene pi`u selettivo, e poi si applicano gli altri predicati alle tuple così accedute Se c è una disgiunzione o sono tutti valutabili oppure tanto vale fare un unica scansione sequenziale Nel caso di predicati poco selettivi può convenire una scansione sequenziale Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VIII - 17 Join nested-loop SCAN TABELLA ESTERNA TABELLA INTERNA TUPLA CORRENTE x x x TUPLE CHE SI ACCOPPIANO Si ha una tabella esterna R E e una tabella interna R I Si effettua una scansione sulla tabella esterna, e per ogni tupla si cercano le tuple della tabella interna che possono essere accoppiate con essa Accesso alla tabella interna con indice, se possibile Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VIII - 18

Costo del join nested-loop Ha costo lineare o quadratico a seconda che ci sia o meno un indice su R I su almeno uno degli attributi di join A) Indice su R I : Si apre uno scan su R E Per ogni tupla di R E si cercano tramite l indice le tuple di R I che si possono accoppiare con essa B) Nessun indice sugli attributi di join: occorre fare una doppia scansione. Se R E e R I hanno rispettivament B E e B I blocchi Si dedicano m pagine nel buffer al join, Vengono letti m - 2 blocchi di R E per volta Per essi si effettua una intera scansione di R I Si hanno in totale B E /(m -2) B I accessi Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VIII - 19 Esecuzione di join in cascata R 1 R 2 R 3 R N Si può effettuare una esecuzione in pipeline Sono necessari indici sugli attributi di join su R 2... R n Si effettua il join nested-loop tra R 1 e R 2, e poi si passa ciascun blocco del risultato intermedio così prodotto, per effettuarne il join con indice con R 3, e cos`i via Eventuali condizioni di selezione e proiezione sugli operandi vengono applicate durante l esecuzione del join L ordine in cui i join vengono eseguiti può influire sul costo Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VIII - 20

Join merge-scan SCAN TABELLA SINISTRA a b b c TABELLA DESTRA a a b c SCAN c. Occorre che entrambe le tabelle siano ordinate in base agli attributi di join Nel caso si può effettuare un passo preliminare di sort Si aprono in parallelo due scansioni sulle due tabelle e si confrontano le tuple, come se si facesse un merge Il costo è lineare Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VIII - 21 Ottimizzazione basata sui costi Nel selezionare il migliore piano esecutivo per una data query l ottimizzatore opera scelte su più dimensioni, fra loro interconnesse: Tipo di accesso ai dati: scan sequenziale, accesso con indici Ordinamento degli operatori: il costo dipende anche dalla dimensione dei risultati intermedi Metodo: quando più di un metodo è disponibile per la stessa operazione Metodi di join Scegliere a che livello effettuare un ordinamento e con che metodo effettuarlo Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VIII - 22

Albero delle alternative L ottimizzatore costruisce un albero di scelta in cui ogni nodo corrisponde a fissare una particolare opzione A ciascuna foglia dell albero corrisponde un piano esecutivo definito dal cammino tra la radice e la foglia L ottimizzatore tipicamente effettua una visita parziale dell albero, usando formule di costo approssimate Si cerca di scartare il più presto possibile interi sottoalberi sottoalberi, e si usano strategie di branch and bound, sia esatte che approssimate Nel caso di query compilate fuori linea e poi eseguite molte volte,ha senso investire molto tempo nella ottimizzazione Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VIII - 23 Albero delle alternative (esempio) Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VIII - 24

Progettazione fisica È la fase finale della progettazione: a partire dallo schema logico, dalle previsioni sul carico applicativo e dalle caratteristiche e dalla configurazione del sistema prescelto, produce in uscita lo schema fisico Occorre stabilire: Per ciascuna tabella come e dove viene memorizzata Dimensioni iniziali del file, vincoli di allocazione etc Su quali attributi definire indici e di che tipo Parametri relativi alla gestione del buffer, del controllo della concorrenza e dell affidabilità N.B. Il DBMS offre comunque accettabili valori di default Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VIII - 25 Scelta degli indici Occorre analizzare il carico e individuare gli attributi coinvolti in operazioni di join e di selezioni Si predispongono indici sugli attributi di join, in modo da rendere possibili piani esecutivi vantaggiosi Gli attributi chiave sono spesso coinvolti in join e selezioni, e pertanto su di essi tipicamente vengono predisposti indici. Considerare anche gli aspetti negativi: L occupazione di un indice può essere dello stesso ordine, o addirittura superare quella della tabella Gli aggiornamenti comportano operazioni costose sugli indici, oltre che sulla tabella Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VIII - 26

Tuning delle applicazioni: analisi Fase molto delicata di cuinecessitano tutte le applicazioni con requisiti o problemi di prestazioni. In sede di analisi è possibile stabilire: Tramite il monitor del DBMS il piano esecutivo scelto dall ottimizzatore per ciascuna interrogazione (albero esecutivo, metodi di accesso alle tavole, metodi di join) Tramite il monitor del DBMS gli accessi logici e fisici effettuatiin lettura e scrittura alle tabelle e agli indici da ciascuna interrogazione Tramite il monitor del sistema operativo gli accessi effettivamente (al netto degli effetti della buffer cache) ai vari dischi, le loro utilizzazioni e i valori medi dei tempi di accesso e di attesa Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VIII - 27 Tuning delle applicazioni: sintesi In base ai risultati dell analisi si possono stabilire azioni di vario tipo per migliorare le prestazioni Aggiunta o ridefinizione di indici, per rendere possibili diversi piani esecutivi e/o metodi di join Riaggiustamento dei parametri relativi al buffer, allo scopo di migliorare il rapporto tra I/O logico e I/O fisico; Riallocazione dei file fra le unità a disco, per bilanciare le utilizzazioni Eventuali ristrutturazioni dello schema logico; N.B. Spesso il problema è di forzare l ottimizzatore ad adottare i piani esecutivi che si sta cercando di rendere possibili Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VIII - 28