SlideShare a Scribd company logo
1 of 13
Download to read offline
Gli indici SQL: cosa sono e
come funzionano
Gli indici sono una struttura
SQL molto utile
per migliorare le performance
delle query e accedere
più velocemente ai dati
#e-Commerce
Contenuti a cura di HostingTalk
Lavorando con query e tabelle SQL ci si imbatte prima o poi
in strutture interne chiamate indici e view.
Cerchiamo, per un attimo, di dimenticare il linguaggio SQL e gli indici
e immaginiamoci all’interno di una biblioteca: tutti i libri presenti sono indicizzati
secondo uno specifico archivio che, in ordine alfabetico o per autore,
recensisce ogni singolo volume, indicando l’esatta posizione dove andare a recuperarlo.
Immaginiamo che questo archivio di indicizzazione venga disordinato.
Accedere a un volume diverrà molto più complicato e se prima era sufficiente
valutare un indice alfabetico per pochi minuti prima di individuare
il libro desiderato,
ora la questione diventa molto più complicata.
In una biblioteca di questo tipo, per trovare il libro giusto
sarà necessario consultare, in media, almeno 500 mila volumi
prima di arrivare a quello desiderato.
La ricerca si complica e i tempi si allungano.
Un indice è una sorta di schedario, che tiene traccia su dove sono posizionati i dati all’interno
del database.
Quando un database crea un record in una tabella, tale record
seguirà un ordine che è quello di inserimento.
Questo equivale a dire che, in assenza di un indice, ogni operazione
che tenta il recupero di dati da qualsiasi tabella del database,
costringe il database stesso a leggere l’intera tabella,
eseguendo quello che in gergo viene definito scansione della tabella.
Il famigerato Table Scan, infatti, di norma è sinonimo di crollo delle prestazioni.
Con un indice appropriato, invece, il database è capace
di recuperare i dati necessari direttamente consultando l’indice,
per identificare la posizione esatta occupata dalle informazioni sul database stesso.
In questo modo, si evita il Table Scan, il recupero dei dati su cui le query
devono lavorare avviene in modo più veloce
e la query stessa è più performante.
È errato associare un indice a qualsiasi campo
di qualsiasi tabella dati contenuta nel database,
credendo che in questo modo le performance tendano a migliorare.
Infatti, quando con il linguaggio SQL si creano degli indici,
SQL memorizza tanto i dati della tabella, quanto i dati degli indici.
Inoltre, a differenza di altri linguaggi progettati per la gestione dei file,
il linguaggio SQL permette di creare più indici sulla stessa tabella.
Così, qualora si modifichino spesso i dati a cui gli indici sono associati,
a queste variazioni ne conseguano altrettante relative
ai puntatori che puntano alle tuple della tabella stessa.
Come dire: cambiano i dati, cambiano anche gli indici.
Questa situazione, insieme al fatto che gli indici occupano spazio su disco, porta
a una brusca caduta delle performance dell’intero database,
qualora gli indici siano troppi o siano associati a tipologie di query,
di esecuzioni e dati in modo non opportuno.
Per questo, nell’uso degli indici bisogna sapere che:
• gli indici sono indicati nelle query di SELECT,
in quelle con condizioni WHERE o negli ordinamenti di tipo ORDER BY;
sono da evitare nei comandi di INSERT e UPDATE per quanto detto fino a ora;
• gli indici velocizzano le query a livello computazionale,
garantendo un accesso più veloce ai dati coinvolti nell’interrogazione,
ma occupano molto spazio su disco;
• le query possono essere ottimizzate tramite l’uso degli indici
solo se lavorano su una quantità di dati
che non superi il 30 percento dei dati totali.
Nel caso in cui si lavori con una quantità di dati superiore,
allora gli indici non migliorano la velocità di lettura delle query;
• gli indici non dovrebbero comunque essere usati
sulle tabelle piccole e con poche tuple, perché non migliorerebbero
i tempi di accesso, ma produrrebbero l’effetto contrario;
• i migliori risultati nell’uso degli indici si ottengono
quando questi lavorano su un numero consigliato di quattro
o cinque colonne con importanti quantità di dati e con pochi valori NULL;
• gli indici non dovrebbero essere usati su dati che
richiedono modifiche frequenti. Se si deve procedere con un aggiornamento totale
dei dati e vi sono degli indici, bisogna procedere prima alla distruzione degli indici,
poi all’aggiornamento dati e infine alla creazione di nuovi indici necessari;
• se si usano funzioni sugli attributi, è opportuno non indicizzarli;
• l’indice non si sfrutta se si usa l’operatore di diseguaglianza (!=);
• l’uso degli indici è sconsigliato nei confronti testuali con l’operatore LIKE e,
comunque, in questi casi le wildcard vanno messe in fondo alla direttiva;
• nelle query su indici combinati, bisogna mantenere l’ordine per
garantire migliori performance.
• Semplice: contiene una sola colonna
• Composto: è dichiarato su 2 o più colonne di dati
• Clustered: definisce l’ordinamento della tabella. Questo tipo di indice non esiste fisicamente
ma definisce le colonne (o attributi) rispetto ai quali ordinare i dati memorizzati nella
tabella. Ovviamente, può essere definito un solo indice clustered per ogni tabella ed è il più
performante dal punto di vista delle query di richiesta.
Il più delle volte, l’indice clustered coincide con l’identificatore della tupla di dati, perché è
immodificabile
• Non clustered: non memorizza i dati della tabella, ma solo i puntatori ai dati in una
struttura a tabella a parte contenuta sempre nel database
• Univoco: qualora i dati a cui l’indice fa riferimento non possano essere duplicati all’interno
della tabella
• Non univoco: permette di inserire nella tabella più tuple con gli stessi valori delle colonne
definite come indici
Dal punto di vista applicativo, la creazione di un indice
avviene in modo molto semplice,
con un apposito comando del linguaggio SQL.
La sintassi di base prevede che si usi una query del tipo:
Per quanto riguarda il nome dell’indice, è prassi comune
usare il prefisso idx_, prima del nome dell’indice,
di solito formato dalle informazioni relative alla tabella
e alla colonna su cui l’indice viene creato.
In questo modo, si evita di confondere l’indice
con altre strutture del database.
Per creare un indice su singola colonna, usiamo:
mentre per creare un indice composito,
bisogna usare:
Allo stesso modo, per avere un indice unico,
la sintassi SQL esatta è:
Qualora sia necessario eliminare un indice creato in precedenza,
bisogna usare:
Anche con le piattaforme di gestione database MySQL
come phpMyAdmin, è possibile interagire e visualizzare eventuali indici presenti.
Ad esempio, collegandosi all’interfaccia di gestione MySQL e autenticandosi al servizio è
possibile accedere al phpMyAdmin.
Da qui, una volta selezionato il database, bisogna scegliere la tabella di interesse,
effettuando sempre un clic con il pulsante sinistro del mouse.
Nella parte bassa, vengono indicati gli Indici definiti sulla tabella,
da cui possono essere modificati ed eliminati con i link Modifica ed Elimina.
Hosting Aruba
Grazie

More Related Content

Viewers also liked

Aruba e-Commerce: 5 notizie sulla tassazione 2015 #Arubait5
Aruba e-Commerce: 5 notizie sulla tassazione 2015 #Arubait5Aruba e-Commerce: 5 notizie sulla tassazione 2015 #Arubait5
Aruba e-Commerce: 5 notizie sulla tassazione 2015 #Arubait5Aruba S.p.A.
 
Aruba, Dell e Intel: una partnership d'eccezione
Aruba, Dell e Intel: una partnership d'eccezioneAruba, Dell e Intel: una partnership d'eccezione
Aruba, Dell e Intel: una partnership d'eccezioneAruba S.p.A.
 
Con Aruba, a lezione di cloud #lezione 9 - parte 1: 'Configurazione server di...
Con Aruba, a lezione di cloud #lezione 9 - parte 1: 'Configurazione server di...Con Aruba, a lezione di cloud #lezione 9 - parte 1: 'Configurazione server di...
Con Aruba, a lezione di cloud #lezione 9 - parte 1: 'Configurazione server di...Aruba S.p.A.
 
Hosting Backup: 3 soluzioni a confronto #TipOfTheDay
Hosting Backup: 3 soluzioni a confronto   #TipOfTheDayHosting Backup: 3 soluzioni a confronto   #TipOfTheDay
Hosting Backup: 3 soluzioni a confronto #TipOfTheDayAruba S.p.A.
 
Con Aruba, a lezione di cloud #lezione 22 - parte 1: Unified Storage: un NAS...
Con Aruba, a lezione di cloud  #lezione 22 - parte 1: Unified Storage: un NAS...Con Aruba, a lezione di cloud  #lezione 22 - parte 1: Unified Storage: un NAS...
Con Aruba, a lezione di cloud #lezione 22 - parte 1: Unified Storage: un NAS...Aruba S.p.A.
 
Smau Padova 2014 - Workshop Aruba, Dell e Intel: 'Dai server fisici al cloud'
Smau Padova 2014 - Workshop Aruba, Dell e Intel: 'Dai server fisici al cloud'  Smau Padova 2014 - Workshop Aruba, Dell e Intel: 'Dai server fisici al cloud'
Smau Padova 2014 - Workshop Aruba, Dell e Intel: 'Dai server fisici al cloud' Aruba S.p.A.
 
Con Aruba, a lezione di cloud #lezione 17 - parte 2: 'Creare un data center ...
Con Aruba, a lezione di cloud  #lezione 17 - parte 2: 'Creare un data center ...Con Aruba, a lezione di cloud  #lezione 17 - parte 2: 'Creare un data center ...
Con Aruba, a lezione di cloud #lezione 17 - parte 2: 'Creare un data center ...Aruba S.p.A.
 
Hosting: Joomla e Drupal, confronto e setup - parte 2 #TipOfTheDay
Hosting: Joomla e Drupal, confronto e setup - parte 2   #TipOfTheDayHosting: Joomla e Drupal, confronto e setup - parte 2   #TipOfTheDay
Hosting: Joomla e Drupal, confronto e setup - parte 2 #TipOfTheDayAruba S.p.A.
 
Con Aruba, a lezione di cloud #lezione 10 - parte 2: 'Configurazione server d...
Con Aruba, a lezione di cloud #lezione 10 - parte 2: 'Configurazione server d...Con Aruba, a lezione di cloud #lezione 10 - parte 2: 'Configurazione server d...
Con Aruba, a lezione di cloud #lezione 10 - parte 2: 'Configurazione server d...Aruba S.p.A.
 
Con Aruba, a lezione di cloud #lezione 10 - parte 1: 'Configurazione server d...
Con Aruba, a lezione di cloud #lezione 10 - parte 1: 'Configurazione server d...Con Aruba, a lezione di cloud #lezione 10 - parte 1: 'Configurazione server d...
Con Aruba, a lezione di cloud #lezione 10 - parte 1: 'Configurazione server d...Aruba S.p.A.
 
Con Aruba, a lezione di cloud #lezione11 - parte 1: 'Cloud Object Storage: t...
Con Aruba, a lezione di cloud  #lezione11 - parte 1: 'Cloud Object Storage: t...Con Aruba, a lezione di cloud  #lezione11 - parte 1: 'Cloud Object Storage: t...
Con Aruba, a lezione di cloud #lezione11 - parte 1: 'Cloud Object Storage: t...Aruba S.p.A.
 
Arubait5 - 5 punti da sapere sulla Fatturazione Elettronica PA
Arubait5 -  5 punti da sapere sulla Fatturazione Elettronica PA   Arubait5 -  5 punti da sapere sulla Fatturazione Elettronica PA
Arubait5 - 5 punti da sapere sulla Fatturazione Elettronica PA Aruba S.p.A.
 
Aruba sponsor di FIG Working Week 2012
Aruba sponsor di FIG Working Week 2012Aruba sponsor di FIG Working Week 2012
Aruba sponsor di FIG Working Week 2012Aruba S.p.A.
 
Aruba eCommerce - Corso online ' Come preparare le promozioni nel tuo eCommerce'
Aruba eCommerce - Corso online ' Come preparare le promozioni nel tuo eCommerce'Aruba eCommerce - Corso online ' Come preparare le promozioni nel tuo eCommerce'
Aruba eCommerce - Corso online ' Come preparare le promozioni nel tuo eCommerce'Aruba S.p.A.
 
Hosting: WordPress, Joomla e altri cms: la scelta giusta #TipOfTheDay
Hosting: WordPress, Joomla e altri cms: la scelta giusta #TipOfTheDayHosting: WordPress, Joomla e altri cms: la scelta giusta #TipOfTheDay
Hosting: WordPress, Joomla e altri cms: la scelta giusta #TipOfTheDayAruba S.p.A.
 
Aruba e-Commerce - 5 funzioni di cui approfittare #Arubait5
Aruba e-Commerce - 5 funzioni di cui approfittare #Arubait5Aruba e-Commerce - 5 funzioni di cui approfittare #Arubait5
Aruba e-Commerce - 5 funzioni di cui approfittare #Arubait5Aruba S.p.A.
 
Con Aruba, a lezione di cloud #Lezione 4 - parte 2: 'Cloud Monitoring, come t...
Con Aruba, a lezione di cloud #Lezione 4 - parte 2: 'Cloud Monitoring, come t...Con Aruba, a lezione di cloud #Lezione 4 - parte 2: 'Cloud Monitoring, come t...
Con Aruba, a lezione di cloud #Lezione 4 - parte 2: 'Cloud Monitoring, come t...Aruba S.p.A.
 
Hosting: sottodomini, sei vantaggi per migliorare l'hosting di un sito #TipO...
Hosting: sottodomini, sei vantaggi per migliorare l'hosting di un sito  #TipO...Hosting: sottodomini, sei vantaggi per migliorare l'hosting di un sito  #TipO...
Hosting: sottodomini, sei vantaggi per migliorare l'hosting di un sito #TipO...Aruba S.p.A.
 
Workshop Smau Firenze 2015: 'Le soluzioni Cloud di Aruba'
Workshop Smau Firenze 2015: 'Le soluzioni Cloud di Aruba'Workshop Smau Firenze 2015: 'Le soluzioni Cloud di Aruba'
Workshop Smau Firenze 2015: 'Le soluzioni Cloud di Aruba'Aruba S.p.A.
 
Hosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDay
Hosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDayHosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDay
Hosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDayAruba S.p.A.
 

Viewers also liked (20)

Aruba e-Commerce: 5 notizie sulla tassazione 2015 #Arubait5
Aruba e-Commerce: 5 notizie sulla tassazione 2015 #Arubait5Aruba e-Commerce: 5 notizie sulla tassazione 2015 #Arubait5
Aruba e-Commerce: 5 notizie sulla tassazione 2015 #Arubait5
 
Aruba, Dell e Intel: una partnership d'eccezione
Aruba, Dell e Intel: una partnership d'eccezioneAruba, Dell e Intel: una partnership d'eccezione
Aruba, Dell e Intel: una partnership d'eccezione
 
Con Aruba, a lezione di cloud #lezione 9 - parte 1: 'Configurazione server di...
Con Aruba, a lezione di cloud #lezione 9 - parte 1: 'Configurazione server di...Con Aruba, a lezione di cloud #lezione 9 - parte 1: 'Configurazione server di...
Con Aruba, a lezione di cloud #lezione 9 - parte 1: 'Configurazione server di...
 
Hosting Backup: 3 soluzioni a confronto #TipOfTheDay
Hosting Backup: 3 soluzioni a confronto   #TipOfTheDayHosting Backup: 3 soluzioni a confronto   #TipOfTheDay
Hosting Backup: 3 soluzioni a confronto #TipOfTheDay
 
Con Aruba, a lezione di cloud #lezione 22 - parte 1: Unified Storage: un NAS...
Con Aruba, a lezione di cloud  #lezione 22 - parte 1: Unified Storage: un NAS...Con Aruba, a lezione di cloud  #lezione 22 - parte 1: Unified Storage: un NAS...
Con Aruba, a lezione di cloud #lezione 22 - parte 1: Unified Storage: un NAS...
 
Smau Padova 2014 - Workshop Aruba, Dell e Intel: 'Dai server fisici al cloud'
Smau Padova 2014 - Workshop Aruba, Dell e Intel: 'Dai server fisici al cloud'  Smau Padova 2014 - Workshop Aruba, Dell e Intel: 'Dai server fisici al cloud'
Smau Padova 2014 - Workshop Aruba, Dell e Intel: 'Dai server fisici al cloud'
 
Con Aruba, a lezione di cloud #lezione 17 - parte 2: 'Creare un data center ...
Con Aruba, a lezione di cloud  #lezione 17 - parte 2: 'Creare un data center ...Con Aruba, a lezione di cloud  #lezione 17 - parte 2: 'Creare un data center ...
Con Aruba, a lezione di cloud #lezione 17 - parte 2: 'Creare un data center ...
 
Hosting: Joomla e Drupal, confronto e setup - parte 2 #TipOfTheDay
Hosting: Joomla e Drupal, confronto e setup - parte 2   #TipOfTheDayHosting: Joomla e Drupal, confronto e setup - parte 2   #TipOfTheDay
Hosting: Joomla e Drupal, confronto e setup - parte 2 #TipOfTheDay
 
Con Aruba, a lezione di cloud #lezione 10 - parte 2: 'Configurazione server d...
Con Aruba, a lezione di cloud #lezione 10 - parte 2: 'Configurazione server d...Con Aruba, a lezione di cloud #lezione 10 - parte 2: 'Configurazione server d...
Con Aruba, a lezione di cloud #lezione 10 - parte 2: 'Configurazione server d...
 
Con Aruba, a lezione di cloud #lezione 10 - parte 1: 'Configurazione server d...
Con Aruba, a lezione di cloud #lezione 10 - parte 1: 'Configurazione server d...Con Aruba, a lezione di cloud #lezione 10 - parte 1: 'Configurazione server d...
Con Aruba, a lezione di cloud #lezione 10 - parte 1: 'Configurazione server d...
 
Con Aruba, a lezione di cloud #lezione11 - parte 1: 'Cloud Object Storage: t...
Con Aruba, a lezione di cloud  #lezione11 - parte 1: 'Cloud Object Storage: t...Con Aruba, a lezione di cloud  #lezione11 - parte 1: 'Cloud Object Storage: t...
Con Aruba, a lezione di cloud #lezione11 - parte 1: 'Cloud Object Storage: t...
 
Arubait5 - 5 punti da sapere sulla Fatturazione Elettronica PA
Arubait5 -  5 punti da sapere sulla Fatturazione Elettronica PA   Arubait5 -  5 punti da sapere sulla Fatturazione Elettronica PA
Arubait5 - 5 punti da sapere sulla Fatturazione Elettronica PA
 
Aruba sponsor di FIG Working Week 2012
Aruba sponsor di FIG Working Week 2012Aruba sponsor di FIG Working Week 2012
Aruba sponsor di FIG Working Week 2012
 
Aruba eCommerce - Corso online ' Come preparare le promozioni nel tuo eCommerce'
Aruba eCommerce - Corso online ' Come preparare le promozioni nel tuo eCommerce'Aruba eCommerce - Corso online ' Come preparare le promozioni nel tuo eCommerce'
Aruba eCommerce - Corso online ' Come preparare le promozioni nel tuo eCommerce'
 
Hosting: WordPress, Joomla e altri cms: la scelta giusta #TipOfTheDay
Hosting: WordPress, Joomla e altri cms: la scelta giusta #TipOfTheDayHosting: WordPress, Joomla e altri cms: la scelta giusta #TipOfTheDay
Hosting: WordPress, Joomla e altri cms: la scelta giusta #TipOfTheDay
 
Aruba e-Commerce - 5 funzioni di cui approfittare #Arubait5
Aruba e-Commerce - 5 funzioni di cui approfittare #Arubait5Aruba e-Commerce - 5 funzioni di cui approfittare #Arubait5
Aruba e-Commerce - 5 funzioni di cui approfittare #Arubait5
 
Con Aruba, a lezione di cloud #Lezione 4 - parte 2: 'Cloud Monitoring, come t...
Con Aruba, a lezione di cloud #Lezione 4 - parte 2: 'Cloud Monitoring, come t...Con Aruba, a lezione di cloud #Lezione 4 - parte 2: 'Cloud Monitoring, come t...
Con Aruba, a lezione di cloud #Lezione 4 - parte 2: 'Cloud Monitoring, come t...
 
Hosting: sottodomini, sei vantaggi per migliorare l'hosting di un sito #TipO...
Hosting: sottodomini, sei vantaggi per migliorare l'hosting di un sito  #TipO...Hosting: sottodomini, sei vantaggi per migliorare l'hosting di un sito  #TipO...
Hosting: sottodomini, sei vantaggi per migliorare l'hosting di un sito #TipO...
 
Workshop Smau Firenze 2015: 'Le soluzioni Cloud di Aruba'
Workshop Smau Firenze 2015: 'Le soluzioni Cloud di Aruba'Workshop Smau Firenze 2015: 'Le soluzioni Cloud di Aruba'
Workshop Smau Firenze 2015: 'Le soluzioni Cloud di Aruba'
 
Hosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDay
Hosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDayHosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDay
Hosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDay
 

Similar to Hosting: gli indici SQL, cosa sono e come funzionano #TipOfTheDay

Indici - Come, Quando, Perchè
Indici - Come, Quando, PerchèIndici - Come, Quando, Perchè
Indici - Come, Quando, PerchèDavide Mauri
 
MongoDB
MongoDBMongoDB
MongoDBNaLUG
 
Guida SQL: le basi per iniziare a programmare i database
Guida SQL: le basi per iniziare a programmare i databaseGuida SQL: le basi per iniziare a programmare i database
Guida SQL: le basi per iniziare a programmare i databaseBTF Traduzioni SEO Sviluppo Web
 
Quanto mi costa SQL Pool Serverless Synapse
Quanto mi costa SQL Pool Serverless SynapseQuanto mi costa SQL Pool Serverless Synapse
Quanto mi costa SQL Pool Serverless SynapseMarco Pozzan
 
Access parte prima
Access parte primaAccess parte prima
Access parte primaMatekanc
 
Back to the roots - SQL Server Indexing
Back to the roots - SQL Server IndexingBack to the roots - SQL Server Indexing
Back to the roots - SQL Server IndexingDavide Mauri
 
Progetto e sviluppo di un'applicazione per dispositivi mobili per la visualiz...
Progetto e sviluppo di un'applicazione per dispositivi mobili per la visualiz...Progetto e sviluppo di un'applicazione per dispositivi mobili per la visualiz...
Progetto e sviluppo di un'applicazione per dispositivi mobili per la visualiz...paolabassi91
 
Azure Synapse: data lake & modern data warehouse dalla A alla Z
Azure Synapse: data lake &  modern data warehouse dalla A alla ZAzure Synapse: data lake &  modern data warehouse dalla A alla Z
Azure Synapse: data lake & modern data warehouse dalla A alla ZRoberto Messora
 
Metadata Driven Pipeline with Microsoft Fabric
Metadata Driven Pipeline  with Microsoft FabricMetadata Driven Pipeline  with Microsoft Fabric
Metadata Driven Pipeline with Microsoft FabricMarco Pozzan
 
Modello er (2)
Modello er (2)Modello er (2)
Modello er (2)enzosa007
 
corso web - Introduzione ai Database
corso web - Introduzione ai Databasecorso web - Introduzione ai Database
corso web - Introduzione ai DatabaseRiccardo Piccioni
 

Similar to Hosting: gli indici SQL, cosa sono e come funzionano #TipOfTheDay (19)

Indici - Come, Quando, Perchè
Indici - Come, Quando, PerchèIndici - Come, Quando, Perchè
Indici - Come, Quando, Perchè
 
Descrizione di NO-SQL
Descrizione di NO-SQLDescrizione di NO-SQL
Descrizione di NO-SQL
 
MongoDB
MongoDBMongoDB
MongoDB
 
Guida SQL: le basi per iniziare a programmare i database
Guida SQL: le basi per iniziare a programmare i databaseGuida SQL: le basi per iniziare a programmare i database
Guida SQL: le basi per iniziare a programmare i database
 
SQL Server2000
SQL Server2000SQL Server2000
SQL Server2000
 
Quanto mi costa SQL Pool Serverless Synapse
Quanto mi costa SQL Pool Serverless SynapseQuanto mi costa SQL Pool Serverless Synapse
Quanto mi costa SQL Pool Serverless Synapse
 
Access parte prima
Access parte primaAccess parte prima
Access parte prima
 
Back to the roots - SQL Server Indexing
Back to the roots - SQL Server IndexingBack to the roots - SQL Server Indexing
Back to the roots - SQL Server Indexing
 
Progetto e sviluppo di un'applicazione per dispositivi mobili per la visualiz...
Progetto e sviluppo di un'applicazione per dispositivi mobili per la visualiz...Progetto e sviluppo di un'applicazione per dispositivi mobili per la visualiz...
Progetto e sviluppo di un'applicazione per dispositivi mobili per la visualiz...
 
Azure Synapse: data lake & modern data warehouse dalla A alla Z
Azure Synapse: data lake &  modern data warehouse dalla A alla ZAzure Synapse: data lake &  modern data warehouse dalla A alla Z
Azure Synapse: data lake & modern data warehouse dalla A alla Z
 
Data Base In Open Office
Data Base In Open OfficeData Base In Open Office
Data Base In Open Office
 
Metadata Driven Pipeline with Microsoft Fabric
Metadata Driven Pipeline  with Microsoft FabricMetadata Driven Pipeline  with Microsoft Fabric
Metadata Driven Pipeline with Microsoft Fabric
 
Big Data Analytics, Giovanni Delussu e Marco Enrico Piras
 Big Data Analytics, Giovanni Delussu e Marco Enrico Piras  Big Data Analytics, Giovanni Delussu e Marco Enrico Piras
Big Data Analytics, Giovanni Delussu e Marco Enrico Piras
 
MongoDB
MongoDBMongoDB
MongoDB
 
Modello er (2)
Modello er (2)Modello er (2)
Modello er (2)
 
Database Design
Database DesignDatabase Design
Database Design
 
corso web - Introduzione ai Database
corso web - Introduzione ai Databasecorso web - Introduzione ai Database
corso web - Introduzione ai Database
 
Corso access 2010
Corso access 2010Corso access 2010
Corso access 2010
 
Database relazionali
Database relazionaliDatabase relazionali
Database relazionali
 

More from Aruba S.p.A.

Cloud Backup e Cloud Object Storage: come mettere in sicurezza i tuoi dati
Cloud Backup e Cloud Object Storage: come mettere in sicurezza i tuoi datiCloud Backup e Cloud Object Storage: come mettere in sicurezza i tuoi dati
Cloud Backup e Cloud Object Storage: come mettere in sicurezza i tuoi datiAruba S.p.A.
 
Create and use a Dockerized Aruba Cloud server - CloudConf 2017
Create and use a Dockerized Aruba Cloud server - CloudConf 2017Create and use a Dockerized Aruba Cloud server - CloudConf 2017
Create and use a Dockerized Aruba Cloud server - CloudConf 2017Aruba S.p.A.
 
I servizi Cloud di Aruba - 2016
I servizi Cloud di Aruba - 2016I servizi Cloud di Aruba - 2016
I servizi Cloud di Aruba - 2016Aruba S.p.A.
 
Aruba Cloud: Cloud Pubblico vs. Cloud Privato per la propria infrastruttura v...
Aruba Cloud: Cloud Pubblico vs. Cloud Privato per la propria infrastruttura v...Aruba Cloud: Cloud Pubblico vs. Cloud Privato per la propria infrastruttura v...
Aruba Cloud: Cloud Pubblico vs. Cloud Privato per la propria infrastruttura v...Aruba S.p.A.
 
Aruba Cloud DRaaS, Disaster Recovery as a Service
Aruba Cloud DRaaS, Disaster Recovery as a ServiceAruba Cloud DRaaS, Disaster Recovery as a Service
Aruba Cloud DRaaS, Disaster Recovery as a ServiceAruba S.p.A.
 
Aruba Business: il programma dedicato ai Partner
Aruba Business: il programma dedicato ai Partner Aruba Business: il programma dedicato ai Partner
Aruba Business: il programma dedicato ai Partner Aruba S.p.A.
 
Identità certa nei processi online, SPID, Firma grafometrica e Avanzata
Identità certa nei processi online, SPID, Firma grafometrica e AvanzataIdentità certa nei processi online, SPID, Firma grafometrica e Avanzata
Identità certa nei processi online, SPID, Firma grafometrica e AvanzataAruba S.p.A.
 
Il Cloud Computing di Aruba: soluzione IaaS per l'IT aziendale
Il Cloud Computing di Aruba: soluzione IaaS per l'IT aziendaleIl Cloud Computing di Aruba: soluzione IaaS per l'IT aziendale
Il Cloud Computing di Aruba: soluzione IaaS per l'IT aziendaleAruba S.p.A.
 
Aruba Business: nuova divisione per la rivendita delle soluzioni Aruba.it
Aruba Business: nuova divisione per la rivendita delle soluzioni Aruba.it Aruba Business: nuova divisione per la rivendita delle soluzioni Aruba.it
Aruba Business: nuova divisione per la rivendita delle soluzioni Aruba.it Aruba S.p.A.
 
Hosting: a ogni CMS, il suo hosting...con qualche eccezione #TipOfTheDay
Hosting: a ogni CMS, il suo hosting...con qualche eccezione  #TipOfTheDayHosting: a ogni CMS, il suo hosting...con qualche eccezione  #TipOfTheDay
Hosting: a ogni CMS, il suo hosting...con qualche eccezione #TipOfTheDayAruba S.p.A.
 
Hosting: cache Joomla, tutte le opzioni spiegate passo dopo passo - parte 2 ...
Hosting: cache Joomla, tutte le opzioni spiegate passo dopo passo - parte 2  ...Hosting: cache Joomla, tutte le opzioni spiegate passo dopo passo - parte 2  ...
Hosting: cache Joomla, tutte le opzioni spiegate passo dopo passo - parte 2 ...Aruba S.p.A.
 
Hosting: cache Jooml, tutte le opzioni spiegate passo dopo passo - parte 1 #...
Hosting: cache Jooml, tutte le opzioni spiegate passo dopo passo - parte 1  #...Hosting: cache Jooml, tutte le opzioni spiegate passo dopo passo - parte 1  #...
Hosting: cache Jooml, tutte le opzioni spiegate passo dopo passo - parte 1 #...Aruba S.p.A.
 
Hosting: trasferire Joomla con plugin
Hosting: trasferire Joomla con pluginHosting: trasferire Joomla con plugin
Hosting: trasferire Joomla con pluginAruba S.p.A.
 
Hosting: trasferire Joomla da un hosting all'altro #TipOfThaDay
Hosting: trasferire Joomla da un hosting all'altro   #TipOfThaDayHosting: trasferire Joomla da un hosting all'altro   #TipOfThaDay
Hosting: trasferire Joomla da un hosting all'altro #TipOfThaDayAruba S.p.A.
 
Hosting: il successore di http 1.1 il perchè dell' http 2.0
Hosting: il successore di http 1.1 il perchè dell' http 2.0Hosting: il successore di http 1.1 il perchè dell' http 2.0
Hosting: il successore di http 1.1 il perchè dell' http 2.0Aruba S.p.A.
 
Hosting: storia del protocollo http
Hosting: storia del protocollo httpHosting: storia del protocollo http
Hosting: storia del protocollo httpAruba S.p.A.
 
Hosting: 20 trucchi SEO per ottimizzare il proprio sito - II parte
Hosting: 20 trucchi SEO per ottimizzare il proprio sito -  II parteHosting: 20 trucchi SEO per ottimizzare il proprio sito -  II parte
Hosting: 20 trucchi SEO per ottimizzare il proprio sito - II parteAruba S.p.A.
 
Hosting: 20 trucchi SEO per migliorare l'indicizzazione di un sito - Parte I ...
Hosting: 20 trucchi SEO per migliorare l'indicizzazione di un sito - Parte I ...Hosting: 20 trucchi SEO per migliorare l'indicizzazione di un sito - Parte I ...
Hosting: 20 trucchi SEO per migliorare l'indicizzazione di un sito - Parte I ...Aruba S.p.A.
 
Hosting: Database MySQL, 10 trucchi per migliorarne le performance - #TipOf...
Hosting: Database MySQL, 10 trucchi per migliorarne le performance  -  #TipOf...Hosting: Database MySQL, 10 trucchi per migliorarne le performance  -  #TipOf...
Hosting: Database MySQL, 10 trucchi per migliorarne le performance - #TipOf...Aruba S.p.A.
 
Hosting: gestione degli accessi FTP #TipOfTheDay
Hosting: gestione degli accessi FTP   #TipOfTheDayHosting: gestione degli accessi FTP   #TipOfTheDay
Hosting: gestione degli accessi FTP #TipOfTheDayAruba S.p.A.
 

More from Aruba S.p.A. (20)

Cloud Backup e Cloud Object Storage: come mettere in sicurezza i tuoi dati
Cloud Backup e Cloud Object Storage: come mettere in sicurezza i tuoi datiCloud Backup e Cloud Object Storage: come mettere in sicurezza i tuoi dati
Cloud Backup e Cloud Object Storage: come mettere in sicurezza i tuoi dati
 
Create and use a Dockerized Aruba Cloud server - CloudConf 2017
Create and use a Dockerized Aruba Cloud server - CloudConf 2017Create and use a Dockerized Aruba Cloud server - CloudConf 2017
Create and use a Dockerized Aruba Cloud server - CloudConf 2017
 
I servizi Cloud di Aruba - 2016
I servizi Cloud di Aruba - 2016I servizi Cloud di Aruba - 2016
I servizi Cloud di Aruba - 2016
 
Aruba Cloud: Cloud Pubblico vs. Cloud Privato per la propria infrastruttura v...
Aruba Cloud: Cloud Pubblico vs. Cloud Privato per la propria infrastruttura v...Aruba Cloud: Cloud Pubblico vs. Cloud Privato per la propria infrastruttura v...
Aruba Cloud: Cloud Pubblico vs. Cloud Privato per la propria infrastruttura v...
 
Aruba Cloud DRaaS, Disaster Recovery as a Service
Aruba Cloud DRaaS, Disaster Recovery as a ServiceAruba Cloud DRaaS, Disaster Recovery as a Service
Aruba Cloud DRaaS, Disaster Recovery as a Service
 
Aruba Business: il programma dedicato ai Partner
Aruba Business: il programma dedicato ai Partner Aruba Business: il programma dedicato ai Partner
Aruba Business: il programma dedicato ai Partner
 
Identità certa nei processi online, SPID, Firma grafometrica e Avanzata
Identità certa nei processi online, SPID, Firma grafometrica e AvanzataIdentità certa nei processi online, SPID, Firma grafometrica e Avanzata
Identità certa nei processi online, SPID, Firma grafometrica e Avanzata
 
Il Cloud Computing di Aruba: soluzione IaaS per l'IT aziendale
Il Cloud Computing di Aruba: soluzione IaaS per l'IT aziendaleIl Cloud Computing di Aruba: soluzione IaaS per l'IT aziendale
Il Cloud Computing di Aruba: soluzione IaaS per l'IT aziendale
 
Aruba Business: nuova divisione per la rivendita delle soluzioni Aruba.it
Aruba Business: nuova divisione per la rivendita delle soluzioni Aruba.it Aruba Business: nuova divisione per la rivendita delle soluzioni Aruba.it
Aruba Business: nuova divisione per la rivendita delle soluzioni Aruba.it
 
Hosting: a ogni CMS, il suo hosting...con qualche eccezione #TipOfTheDay
Hosting: a ogni CMS, il suo hosting...con qualche eccezione  #TipOfTheDayHosting: a ogni CMS, il suo hosting...con qualche eccezione  #TipOfTheDay
Hosting: a ogni CMS, il suo hosting...con qualche eccezione #TipOfTheDay
 
Hosting: cache Joomla, tutte le opzioni spiegate passo dopo passo - parte 2 ...
Hosting: cache Joomla, tutte le opzioni spiegate passo dopo passo - parte 2  ...Hosting: cache Joomla, tutte le opzioni spiegate passo dopo passo - parte 2  ...
Hosting: cache Joomla, tutte le opzioni spiegate passo dopo passo - parte 2 ...
 
Hosting: cache Jooml, tutte le opzioni spiegate passo dopo passo - parte 1 #...
Hosting: cache Jooml, tutte le opzioni spiegate passo dopo passo - parte 1  #...Hosting: cache Jooml, tutte le opzioni spiegate passo dopo passo - parte 1  #...
Hosting: cache Jooml, tutte le opzioni spiegate passo dopo passo - parte 1 #...
 
Hosting: trasferire Joomla con plugin
Hosting: trasferire Joomla con pluginHosting: trasferire Joomla con plugin
Hosting: trasferire Joomla con plugin
 
Hosting: trasferire Joomla da un hosting all'altro #TipOfThaDay
Hosting: trasferire Joomla da un hosting all'altro   #TipOfThaDayHosting: trasferire Joomla da un hosting all'altro   #TipOfThaDay
Hosting: trasferire Joomla da un hosting all'altro #TipOfThaDay
 
Hosting: il successore di http 1.1 il perchè dell' http 2.0
Hosting: il successore di http 1.1 il perchè dell' http 2.0Hosting: il successore di http 1.1 il perchè dell' http 2.0
Hosting: il successore di http 1.1 il perchè dell' http 2.0
 
Hosting: storia del protocollo http
Hosting: storia del protocollo httpHosting: storia del protocollo http
Hosting: storia del protocollo http
 
Hosting: 20 trucchi SEO per ottimizzare il proprio sito - II parte
Hosting: 20 trucchi SEO per ottimizzare il proprio sito -  II parteHosting: 20 trucchi SEO per ottimizzare il proprio sito -  II parte
Hosting: 20 trucchi SEO per ottimizzare il proprio sito - II parte
 
Hosting: 20 trucchi SEO per migliorare l'indicizzazione di un sito - Parte I ...
Hosting: 20 trucchi SEO per migliorare l'indicizzazione di un sito - Parte I ...Hosting: 20 trucchi SEO per migliorare l'indicizzazione di un sito - Parte I ...
Hosting: 20 trucchi SEO per migliorare l'indicizzazione di un sito - Parte I ...
 
Hosting: Database MySQL, 10 trucchi per migliorarne le performance - #TipOf...
Hosting: Database MySQL, 10 trucchi per migliorarne le performance  -  #TipOf...Hosting: Database MySQL, 10 trucchi per migliorarne le performance  -  #TipOf...
Hosting: Database MySQL, 10 trucchi per migliorarne le performance - #TipOf...
 
Hosting: gestione degli accessi FTP #TipOfTheDay
Hosting: gestione degli accessi FTP   #TipOfTheDayHosting: gestione degli accessi FTP   #TipOfTheDay
Hosting: gestione degli accessi FTP #TipOfTheDay
 

Hosting: gli indici SQL, cosa sono e come funzionano #TipOfTheDay

  • 1. Gli indici SQL: cosa sono e come funzionano
  • 2. Gli indici sono una struttura SQL molto utile per migliorare le performance delle query e accedere più velocemente ai dati #e-Commerce Contenuti a cura di HostingTalk
  • 3. Lavorando con query e tabelle SQL ci si imbatte prima o poi in strutture interne chiamate indici e view. Cerchiamo, per un attimo, di dimenticare il linguaggio SQL e gli indici e immaginiamoci all’interno di una biblioteca: tutti i libri presenti sono indicizzati secondo uno specifico archivio che, in ordine alfabetico o per autore, recensisce ogni singolo volume, indicando l’esatta posizione dove andare a recuperarlo. Immaginiamo che questo archivio di indicizzazione venga disordinato. Accedere a un volume diverrà molto più complicato e se prima era sufficiente valutare un indice alfabetico per pochi minuti prima di individuare il libro desiderato, ora la questione diventa molto più complicata. In una biblioteca di questo tipo, per trovare il libro giusto sarà necessario consultare, in media, almeno 500 mila volumi prima di arrivare a quello desiderato. La ricerca si complica e i tempi si allungano.
  • 4. Un indice è una sorta di schedario, che tiene traccia su dove sono posizionati i dati all’interno del database. Quando un database crea un record in una tabella, tale record seguirà un ordine che è quello di inserimento. Questo equivale a dire che, in assenza di un indice, ogni operazione che tenta il recupero di dati da qualsiasi tabella del database, costringe il database stesso a leggere l’intera tabella, eseguendo quello che in gergo viene definito scansione della tabella. Il famigerato Table Scan, infatti, di norma è sinonimo di crollo delle prestazioni. Con un indice appropriato, invece, il database è capace di recuperare i dati necessari direttamente consultando l’indice, per identificare la posizione esatta occupata dalle informazioni sul database stesso. In questo modo, si evita il Table Scan, il recupero dei dati su cui le query devono lavorare avviene in modo più veloce e la query stessa è più performante.
  • 5. È errato associare un indice a qualsiasi campo di qualsiasi tabella dati contenuta nel database, credendo che in questo modo le performance tendano a migliorare. Infatti, quando con il linguaggio SQL si creano degli indici, SQL memorizza tanto i dati della tabella, quanto i dati degli indici. Inoltre, a differenza di altri linguaggi progettati per la gestione dei file, il linguaggio SQL permette di creare più indici sulla stessa tabella. Così, qualora si modifichino spesso i dati a cui gli indici sono associati, a queste variazioni ne conseguano altrettante relative ai puntatori che puntano alle tuple della tabella stessa. Come dire: cambiano i dati, cambiano anche gli indici. Questa situazione, insieme al fatto che gli indici occupano spazio su disco, porta a una brusca caduta delle performance dell’intero database, qualora gli indici siano troppi o siano associati a tipologie di query, di esecuzioni e dati in modo non opportuno.
  • 6. Per questo, nell’uso degli indici bisogna sapere che: • gli indici sono indicati nelle query di SELECT, in quelle con condizioni WHERE o negli ordinamenti di tipo ORDER BY; sono da evitare nei comandi di INSERT e UPDATE per quanto detto fino a ora; • gli indici velocizzano le query a livello computazionale, garantendo un accesso più veloce ai dati coinvolti nell’interrogazione, ma occupano molto spazio su disco; • le query possono essere ottimizzate tramite l’uso degli indici solo se lavorano su una quantità di dati che non superi il 30 percento dei dati totali. Nel caso in cui si lavori con una quantità di dati superiore, allora gli indici non migliorano la velocità di lettura delle query; • gli indici non dovrebbero comunque essere usati sulle tabelle piccole e con poche tuple, perché non migliorerebbero i tempi di accesso, ma produrrebbero l’effetto contrario;
  • 7. • i migliori risultati nell’uso degli indici si ottengono quando questi lavorano su un numero consigliato di quattro o cinque colonne con importanti quantità di dati e con pochi valori NULL; • gli indici non dovrebbero essere usati su dati che richiedono modifiche frequenti. Se si deve procedere con un aggiornamento totale dei dati e vi sono degli indici, bisogna procedere prima alla distruzione degli indici, poi all’aggiornamento dati e infine alla creazione di nuovi indici necessari; • se si usano funzioni sugli attributi, è opportuno non indicizzarli; • l’indice non si sfrutta se si usa l’operatore di diseguaglianza (!=); • l’uso degli indici è sconsigliato nei confronti testuali con l’operatore LIKE e, comunque, in questi casi le wildcard vanno messe in fondo alla direttiva; • nelle query su indici combinati, bisogna mantenere l’ordine per garantire migliori performance.
  • 8. • Semplice: contiene una sola colonna • Composto: è dichiarato su 2 o più colonne di dati • Clustered: definisce l’ordinamento della tabella. Questo tipo di indice non esiste fisicamente ma definisce le colonne (o attributi) rispetto ai quali ordinare i dati memorizzati nella tabella. Ovviamente, può essere definito un solo indice clustered per ogni tabella ed è il più performante dal punto di vista delle query di richiesta. Il più delle volte, l’indice clustered coincide con l’identificatore della tupla di dati, perché è immodificabile • Non clustered: non memorizza i dati della tabella, ma solo i puntatori ai dati in una struttura a tabella a parte contenuta sempre nel database • Univoco: qualora i dati a cui l’indice fa riferimento non possano essere duplicati all’interno della tabella • Non univoco: permette di inserire nella tabella più tuple con gli stessi valori delle colonne definite come indici
  • 9. Dal punto di vista applicativo, la creazione di un indice avviene in modo molto semplice, con un apposito comando del linguaggio SQL. La sintassi di base prevede che si usi una query del tipo: Per quanto riguarda il nome dell’indice, è prassi comune usare il prefisso idx_, prima del nome dell’indice, di solito formato dalle informazioni relative alla tabella e alla colonna su cui l’indice viene creato. In questo modo, si evita di confondere l’indice con altre strutture del database. Per creare un indice su singola colonna, usiamo:
  • 10. mentre per creare un indice composito, bisogna usare: Allo stesso modo, per avere un indice unico, la sintassi SQL esatta è: Qualora sia necessario eliminare un indice creato in precedenza, bisogna usare:
  • 11. Anche con le piattaforme di gestione database MySQL come phpMyAdmin, è possibile interagire e visualizzare eventuali indici presenti. Ad esempio, collegandosi all’interfaccia di gestione MySQL e autenticandosi al servizio è possibile accedere al phpMyAdmin.
  • 12. Da qui, una volta selezionato il database, bisogna scegliere la tabella di interesse, effettuando sempre un clic con il pulsante sinistro del mouse. Nella parte bassa, vengono indicati gli Indici definiti sulla tabella, da cui possono essere modificati ed eliminati con i link Modifica ed Elimina.