CALCOLO DEL COSTO DI MODIFICA DEI DATI



Documenti analoghi
Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

CALCOLO DEL COSTO DI ACCESSO AI DATI

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI

SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2011/12

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

Organizzazione degli archivi

Operazioni sui database

Compito Basi di Dati. Tempo concesso: 90 minuti 18 Gennaio 2007 Nome: Cognome: Matricola:

Dispensa di database Access

Guida Compilazione Piani di Studio on-line

Analisi di scenario File Nr. 10

(anno accademico )

DBMS (Data Base Management System)

ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 2

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Il linguaggio SQL: trigger. Versione elettronica: 04.7.SQL.trigger.pdf

Istruzioni DML di SQL

CONTENT MANAGEMENT SY STEM

MODULO 5 ACCESS Basi di dati. Lezione 4

Inflazione. L indice dei prezzi al consumo ci consente quindi di introdurre anche il concetto di inflazione:

Gestione delle tabelle

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

ITIS Mattei Sondrio. Appunti veloci su moodle versione 2.7

Le query di raggruppamento

Ricorsione in SQL-99. Introduzione. Idea di base

ESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7

Definizione di domini

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

Esercitazione 1. Sistemi Informativi T. Versione elettronica: L01.2.DDLDMLbase.pdf

Corso di Informatica. Immissione di dati. Visualizzazione come foglio dati 1. Visualizzazione come foglio dati 2 11/01/2008

SQL. Alcune note sulla definizione dei dati

RISOLUTORE AUTOMATICO PER SUDOKU

risulta (x) = 1 se x < 0.

Guida per l utilizzo del software Registro Pazienti v1.2

Traccia di soluzione dell esercizio del 25/1/2005

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

Gestione Catalogo Online e Vendita

Basi di Dati: Corso di laboratorio

Linguaggio SQL: fondamenti D B M G. Gestione delle tabelle

MICROECONOMIA La teoria del consumo: Alcuni Arricchimenti. Enrico Saltari Università di Roma La Sapienza

2104 volume III Programmazione

Basi di Dati Relazionali

Algoritmi e strutture dati. Codici di Huffman

Il linguaggio SQL: query innestate

Modulo 5 Database. Diapo: 1

Programma Gestione Presenze Manuale autorizzatore. Versione /08/2010. Area Sistemi Informatici - Università di Pisa

Attributi e domini. A per {A}; XY per X Y (pertanto A 1 A 2 A 3 denota

LeggiCATASTO. Le due funzionalità principali sono:

ALGEBRA RELAZIONALE RIEPILOGO

Lezione 5. Fogli di calcolo

Prof.ssa Paola Vicard

Personalizzazione documenti Word

Progettazione di Basi di Dati

Progettazione Fisica FILE

MODULO 4: FOGLIO ELETTRONICO (EXCEL)

Regimi IVA Speciali MULTI. Gestione Beni Usati

Aggiornamento Titoli

Procedura SMS. Manuale Utente

Indici ad albero. Albero Binario di Ricerca

PROTOCOLLO INFORMATICO

AMMINISTRAZIONE SOCI

Amministrazione Trasparente

Basi di Dati Complementi Esercizi. Esercizi su strutture fisiche di accesso. Soluzione Esercizio 1. Esercizio 1. Soluzione Esercizio 2.

Workland CRM. Workland CRM Rel /11/2013. Attività --> FIX. Magazzino --> NEW. Nessuna --> FIX. Ordini --> FIX

MANUALE PARCELLA FACILE PLUS INDICE

HBase Data Model. in più : le colonne sono raccolte in gruppi di colonne detti Column Family; Cosa cambia dunque?

LA MASSIMIZZAZIONE DEL PROFITTO ATTRAVERSO LA FISSAZIONE DEL PREZZO IN FUNZIONE DELLE QUANTITÀ

Cosa è un foglio elettronico

Integrazione al Manuale Utente 1

Progetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore

SITO DI PUBBLICAZIONE ANNUNCI

Blanchard, Macroeconomia Una prospettiva europea, Il Mulino 2011 Capitolo IV. I mercati finanziari. Capitolo IV. I mercati finanziari

Volume GESTFLORA. Gestione aziende agricole e floricole. Guidaall uso del software

Uso delle variabili di alias. SQL slide aggiuntive. Interrogazione 25. Interrogazione 26

NUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT.

ANTISPAM PLAYNET (nuova Piattaforma) In questa piccola guida vogliamo mostrarvi come creare regole di BlackListe e Whitelist per

DATABASE RELAZIONALI

MODELLO RELAZIONALE. Introduzione

Entrare nel sistema. Clicca su Entra per entrare nel sistema. PAGINA 1

Il linguaggio SQL: viste e tabelle derivate

Organizzazione delle informazioni: Database

CALCOLO COMBINATORIO

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

PULSANTI E PAGINE Sommario PULSANTI E PAGINE...1

Il linguaggio SQL: viste e tabelle derivate. Versione elettronica: SQLd-viste.pdf

Sistemi Mobili e Wireless Android - Dati persistenti: SQLite

Transcript:

CALCOLO DEL COSTO DI MODIFICA DEI DATI costo di accesso 1 ipotesi Ipotesi di base sui metodi di accesso: scan sequenziale, oppure accesso su singlo indice, oppure intersezione di tids Ipotesi di base sugli indici: indici clustered indici unclustered con tid list ordinata TIPO 1 indici unclustered con tid list disordinata TIPO 2 costo di accesso 2

scansioni della relazione Scansioni ordinate: indice clustered scansione sequenziale tid list ordinata indice di tipo 1 per un valore di chiave Scansioni disordinate: indice tipo 2 indice di tipo 1 per più valori di chiave costo di accesso 3 ottimizzatori I casi UPDATE e DELETE hanno il where : DELETE EMP WHERE UPDATE EMP SET. WHERE Il costo sarà dato da tre termini: CAT+ CRT+ CAI COSTO DI ACCESSO ALLE TUPLE + COSTO DI RISCRITTURA DELLE PAGINE MODIFICATE + COSTO DI AGGIORNAMENTO DEGLI INDICI L ottimizzatore deve scegliere la via di accesso per la ricerca delle tuple che riduca il costo globale, non solo il primo termine. SQL esclude l accesso attraverso un indice su una colonna nella clausola SET per non rischiare di modificare le stesse tuple più volte. costo di accesso 4

scansione Per il costo di accesso si usano le formule ed i criteri visti in precedenza. Ci occupiamo qui del costo di riscrittura delle tuple. Bisogna considerare se la scansione della relazione decisa dall ottimizzatore è ordinata rispetto alle tuple(pagine) da riscrivere oppure no. SCANSIONE ORDINATA: NB: pagine della relazione NR: frazione di pagine che possono contenere tuple da riscrivere NR=NB*F P, dove F P 1 è il fattore di filtro sulla colonna ordinata presente nella clausola WHERE (1 se non c è) NR NB costo di accesso 5 Scansione ordinata Costo di riscrittura: qualunque sia la via d accesso le E tuple da riscrivere sono in NR quindi se la riscrittura è ordinata CRT = Φ(E, NR) Scansione disordinata Costo di riscrittura: con l accesso su indice di tipo 1 CRT = F s NKΦ(E/( F s NK), NR) dove F s è il fattore di filtro sulla colonna K su cui è costruito l indice usato per l accesso, NK: cardinalità di chiave K Costo di riscrittura: con l accesso su indice di tipo 2 CRT = E costo di accesso 6

insert DBMS mantiene il sort delle tuple: le E tuple vengono ordinate prima dell inserimento, assumendo che tutte le tuple di un gruppo con un dato valore di K possano essere contenute nella stessa pagina e che gli nk valori di K dei gruppi non siano contigui, si ha: Costo-inserimento = Cins = Φ(nk, NB) min (nk, NB) min (E, NB) le tuple non vengono ordinate: Cins = E DBMS non mantiene l ordinamento e la tuple vengono inserite in fondo: Cins = E/Ntp con Ntp numero di tuple per pagina costo di accesso 7 manutenzione indici Due casi base: 1) scan della relazione disordinato rispetto ai tid nelle foglie dell indice da modificare 1a) modifica di Ix unclustered con scan su (Ix ) Ix 1b) modifica di Ip clustered con scan su di tipo 2 Ip costo di accesso 8

manutenzione indici 1c) modifica di Ip clustered con scan su di tipo 1 con + val di K Ip costo di accesso 9 2) scan della relazione ordinato rispetto ai tid nelle foglie dell indice da modificare 2a) modifica di Ip clustered con scan sequenziale, tid list ordinata, unclustered tipo 1 con 1 val. di K Ip manutenzione indici 2b) modifica di Ix con scan su Ix (insert o delete, no update) costo di accesso 10

update Consta di una parte insert ed una delete cioè Cu = Ci + Cd Ci e Cd possono corrispondere a casi ordinati e disordinati Esempio: UPDATE EMP SET A = <espressione> WHERE A = a nell indice i tid vengono eliminati dal gruppo A= a e inseriti in altri gruppi derivanti del calcolo dell espressione a costo di accesso 11 update Parte insert: caso SET A = <valore> si assume che tutte le tid dell indice su A eliminate da altri valori di A si inseriscano nella stessa foglia: Ci = 2 ( 1 accesso all inizio e 1 riscrittura alla fine dell esecuzione) caso SET A = <espressione> non potendo fare previsioni si assume che tutte le tid si inseriscano in foglie diverse Ci = E*2 ( 1 accesso e 1 riscrittura per ogni tid) costo di accesso 12

update Parte delete: casi 1a, 1b (disordinati): le cancellazioni di tid avvengono in modo disordinato: Cd = E*2 caso 1c (disordinato, tipo 1 con + val. di K) E tuple vengono modificate con scan su un tipo 1 per + val di K con Fs*NK scan ordinati, ogni scan modifica il clustered in modo ordinato: Cd = 2*Fs *NK* Φ(E/(Fs*NK), Lp) costo di accesso 13 Lp può essere sostituito da Fp*Lp se nello statement esiste un predicato di restrizione sul clustered, che non può esser preso come via d accesso perché la sua colonna compare nella clausola SET...) manutenzione indici Ip Fp*Lp Fp*NB Il costo di update per un indice varia tra : 2+2< Cu <2*(E+E) costo di accesso 14

delete I costi sono analoghi alla parte delete di update ad eccezione di un caso: si accede alla relazione con un metodo ordinato rispetto all indice (anche l indice da modificare), quindi il costo corrisponde ad una scansione ordinata sulle foglie dell indice da modificare: Cd = Φ(E, Lx)*α dove α = 2 oppure 1 se si tratta dello stesso indice usato per l accesso e L diventa Fx*Lx se c è un predicato con filtro Fx sulla colonna (x) dell indice. Se Fx*Lx = 1, Cd=1 *α ( delete concentrato) costo di accesso 15 update ESEMPIO 1: SPARE_PT (PTNO, SUPP_CODE, PNAME, SHELF, PRICE, ) UPDATE SPARE_PT SET SHELF = 5 PRICE = PRICE * 1.15 WHERE SHELF = 10 AND SUPP_CODE = 25 Supponiamo di avere indici non ordinati, sia su SHELF che su PRICE. Supponiamo E=50, per l'indice su PRICE: C PRICE = (E + E) *2= 200 per l'indice su SHELF, se F SHELF *L SHELF = 1 : C SHELF = 2 + 2 = 4 costo di accesso 16

update ESEMPIO 2: SPARE_PT (PTNO, SUPP_CODE, PNAME, SHELF, PRICE, ) UPDATE SPARE_PT SET SHELF = 55 WHERE PTNO BETWEEN 125 AND 135 AND altri predicati.. Supponiamo: esistono indici clustered su SHELF e unclustered su PTNO, SPARE_PT ha 100 pag. ma è contenuta in un file STORE con 400 pag., E =320 sono le tuple che soddisfano il pred. su PTNO ma E= 200 quelle filtrate con altri pred.. Siano CA STORE = 400 (sequenziale) CA PTNO =280 (caso se l indice è di tipo 1) CA PTNO =320 (caso se l indice è di tipo 2) costo di accesso 17 update MODIFICA DELLE TUPLE con scan sequenziale: CRT SEQ = Φ(E, NB) = 87 con scan su indice (supponiamo Fx*NK = 10, E/(Fx*NK) = 20): CRT PTNO = Fx*NK *Φ(E/(Fx*NK), NB) = 180 o, CRT PTNO = E = 200. MODIFICA DELL INDICE clustered assumendo Lp=10 con scan sequenziale: Ci + Cd = 2+ 10 +2 = 22 con scan su indice PTNO: Φ(20, 10) = 9 tipo 1: C i + C d = 2 + 10*9*2 = 182, tipo 2: C i + C d = 2 + 200*2 = 402. TOTALI: C SEQ = 87 + 22 + 400 = 509 ATT.: la scan seq. può essere C PTNO = 180 + 182 + 280 = 642 migliore degli indici! C PTNO = 200 + 402 + 320 = 922 costo di accesso 18