Creare e utilizzare un indice per migliorare le prestazioni

Creare e utilizzare un indice per migliorare le prestazioni

Se si eseguono spesso ricerche in una tabella in Access o se ne ordinano i record in base a un campo specifico, è possibile rendere più veloci queste operazioni creando un indice per il campo. Access usa gli indici di una tabella in modo analogo all'indice di un libro: per trovare i dati, Access cerca la posizione dei dati nell'indice. In alcuni casi, ad esempio per una chiave primaria, viene creato automaticamente un indice, mentre in altri casi è possibile crearlo manualmente.

In questo articolo vengono presentati gli indici e viene spiegato come scegliere i campi da indicizzare, nonché come creare, eliminare o modificare un indice. Vengono inoltre illustrate le condizioni in cui gli indici vengono creati automaticamente da Access.

In questo articolo

Che cos'è un indice?

Scegliere i campi da indicizzare

Creare un indice

Eliminare un indice

Visualizzare e modificare gli indici

Creazione automatica degli indici

Nota : Non è possibile usare i metodi descritti in questo articolo per creare un indice per una tabella in un database Web. Le prestazioni di un database Web dipendono dalle prestazioni di diversi fattori, come il server SharePoint che ospita il database Web.

Che cos'è un indice?

Un indice consente a Access di trovare e ordinare i record più velocemente. L'indice memorizza la posizione dei record in base al campo o ai campi che si è scelto di indicizzare. Dopo aver ottenuto la posizione dall'indice, Access può recuperare i dati spostandosi direttamente nella posizione corretta. L'uso di un indice può quindi consentire una ricerca dei dati sensibilmente più veloce rispetto alla scansione di tutti i record.

Scegliere i campi da indicizzare

È possibile creare indici basati su un singolo campo o su più campi. Può essere utile indicizzare i campi inclusi più di frequente nelle ricerche, i campi che vengono ordinati e quelli che vengono collegati ai campi di altre tabelle nelle query su più tabelle. Gli indici possono accelerare l'esecuzione di ricerche e query, ma possono rallentare le prestazioni quando si aggiungono o aggiornano i dati. Quando si immettono dati in una tabella che contiene uno o più campi indicizzati, Access deve aggiornare gli indici ogni volta che viene aggiunto o modificato un record. Anche l'aggiunta di record usando una query di accodamento o l'accodamento di record importati risulterà più lenta se la tabella di destinazione contiene indici.

Nota : La chiave primaria di una tabella viene indicizzata automaticamente.

Non si possono indicizzare campi il cui tipo di dati è Oggetto OLE, Calcolato o Allegato. Per i campi di altro tipo, l'indicizzazione è possibile quando sono valide tutte le condizioni seguenti:

  • Il tipo di dati del campo è Testo breve (Testo in Access 2007 e 2010), Testo lungo (Memo in Access 2007 e 2010), Numero, Data/ora, Numerazione automatica, Valuta, Sì/No o Collegamento ipertestuale.

  • Si prevede di eseguire la ricerca dei valori memorizzati nel campo.

  • Si prevede di eseguire l'ordinamento dei valori del campo.

  • Si prevede di memorizzare più valori diversi nel campo. Se molti dei valori del campo sono uguali, è possibile che l'utilizzo dell'indice non determini un aumento significativo della velocità di esecuzione delle query.

Indici multicampo

Se si prevede di eseguire con frequenza la ricerca o l'ordinamento in base a due o più campi contemporaneamente, è possibile creare un indice per tale combinazione di campi. Se, ad esempio, si impostano spesso criteri per i campi Fornitore e NomeProdotto nella stessa query, risulterà utile creare un indice multicampo basato su entrambi i campi.

Quando ordina una tabella in base a un indice multicampo, Access ordina prima di tutto in base al primo campo definito per l'indice. L'ordine dei campi viene specificato al momento della creazione dell'indice multicampo. Se esistono record che contengono valori duplicati nel primo campo, l'ordinamento successivo verrà eseguito in base al secondo campo definito per l'indice e così via.

In un indice multicampo è possibile includere fino a 10 campi.

Creare un indice

Quando si crea un indice, è innanzitutto necessario decidere se si desidera creare un indice a campo singolo o a più campi. È possibile creare un indice su un campo singolo impostando da proprietà Indicizzato. Nella tabella che segue vengono elencate le impostazioni disponibili per la proprietà Indicizzato.

Impostazione della proprietà Indicizzato

Significato

No

Sul campo non viene creato alcun indice oppure non viene eliminato l'indice esistente

Sì (Duplicati ammessi)

Sul campo viene creato un indice

Sì (Duplicati non ammessi)

Sul campo viene creato un indice univoco

Se si crea un indice univoco, non sarà consentita l'immissione di un nuovo valore nel campo se tale valore esiste già nello stesso campo in un altro record. Access crea automaticamente un indice univoco per le chiavi primarie, ma può anche essere utile impedire l'immissione di valori duplicati in altri campi. Si può ad esempio creare un indice univoco su un campo che memorizza numeri di serie, per fare in modo che due prodotti non possano avere lo stesso numero di serie.

Creare un indice a campo singolo    

  1. Nel riquadro di spostamento fare clic con il pulsante destro del mouse sul nome della tabella nella quale si desidera creare l'indice, quindi scegliere Visualizzazione Struttura dal menu di scelta rapida.

  2. Fare clic su Nome campo per il campo che si desidera indicizzare.

  3. In Proprietà campo scegliere la scheda Generale.

  4. Nella proprietà Indicizzato fare clic su Sì (Duplicati ammessi) se si vuole consentire l'immissione di valori duplicati oppure su Sì (Duplicati non ammessi) per creare un indice univoco.

  5. Per salvare le modifiche, fare clic su Salva sulla barra di accesso rapido oppure premere CTRL+S.

Creare un indice multicampo    

Per creare un indice multicampo per una tabella, è necessario includere una riga per ogni campo dell'indice e includere il nome dell'indice solo nella prima riga. Access interpreta tutte le righe come appartenenti allo stesso indice fino a quando non raggiunge una riga contenente un altro nome di indice. Per inserire una riga, fare clic con il pulsante destro del mouse nella posizione in cui si vuole inserire la riga, quindi scegliere Inserisci righe dal menu di scelta rapida.

  1. Nel riquadro di spostamento fare clic con il pulsante destro del mouse sul nome della tabella nella quale si desidera creare l'indice, quindi scegliere Visualizzazione Struttura dal menu di scelta rapida.

  2. Nel gruppo Mostra/Nascondi della scheda Progettazione fare clic su Indici.

    Verrà visualizzata la finestra di dialogo Indici. Ridimensionare la finestra in modo da visualizzare alcune righe vuote e le proprietà dell'indice.

  3. Nella colonna Nome indice all'interno della prima riga vuota digitare un nome per l'indice. È possibile denominare l'indice con il nome di un campo indice oppure utilizzare un altro nome.

  4. Nella colonna Nome campo fare clic sulla freccia, quindi fare clic sul primo campo che si desidera utilizzare per l'indice.

  5. Nella riga successiva lasciare vuota la colonna Nome indice, quindi nella colonna Nome campo fare clic sul secondo campo per l'indice. Ripetere questo passaggio fino a quando non sono stati selezionati tutti i campi che si desidera includere nell'indice.

  6. Per modificare il criterio di ordinamento dei valori del campo, nella colonna Criterio ordinamento della finestra di dialogo Indici fare clic su Crescente o Decrescente. L'ordinamento predefinito è Crescente.

  7. Nella finestra di dialogo Indici impostare le proprietà dell'indice per la riga della colonna Nome indice che contiene il nome dell'indice in Proprietà indice. Impostare le proprietà in base alla tabella seguente.

    Etichetta

    Valore

    Primario

    Se l'impostazione è , l'indice è la chiave primaria.

    Univoco

    Se l'impostazione è , ogni valore dell'indice deve essere univoco.

    Ignora Null

    Se l'impostazione è , i record con un valore Null nei campi indicizzati verranno esclusi dall'indice.

  8. Per salvare le modifiche, fare clic su Salva sulla barra di accesso rapido oppure premere CTRL+S.

  9. Chiudere la finestra di dialogo Indici.

Eliminare un indice

È possibile eliminare un indice non più necessario o che ha un impatto elevato sulle prestazioni. Quando si elimina un indice, viene rimosso solo l'indice e non il campo o i campi in base ai quali è stato creato.

  1. Nel riquadro di spostamento fare clic con il pulsante destro del mouse sul nome della tabella nella quale si vuole eliminare l'indice, quindi scegliere Visualizzazione Struttura dal menu di scelta rapida.

  2. Nel gruppo Mostra/Nascondi della scheda Progettazione fare clic su Indici.

    Verrà visualizzata la finestra di dialogo Indici. Ridimensionare la finestra in modo da visualizzare alcune righe vuote e le proprietà dell'indice.

  3. Nella finestra di dialogo Indici, selezionare la riga o le righe che contengono l'indice che si desidera eliminare, quindi premere CANC.

  4. Per salvare le modifiche, fare clic su Salva sulla barra di accesso rapido oppure premere CTRL+S.

  5. Chiudere la finestra di dialogo Indici.

Visualizzare e modificare gli indici

Si può decidere di visualizzare gli indici di una tabella per valutarne l'impatto sulle prestazioni oppure per assicurarsi che determinati campi siano indicizzati.

  1. Nel riquadro di spostamento fare clic con il pulsante destro del mouse sul nome della tabella nella quale si vuole modificare l'indice e quindi scegliere Visualizzazione Struttura dal menu di scelta rapida.

  2. Nel gruppo Mostra/Nascondi della scheda Progettazione fare clic su Indici.

    Verrà visualizzata la finestra di dialogo Indici. Ridimensionare la finestra in modo da visualizzare alcune righe vuote e le proprietà dell'indice.

  3. Visualizzare o modificare gli indici e le relative proprietà in base alle necessità.

  4. Per salvare le modifiche, fare clic su Salva sulla barra di accesso rapido oppure premere CTRL+S.

  5. Chiudere la finestra di dialogo Indici.

Creazione automatica degli indici

In alcuni casi, gli indici vengono creati automaticamente da Access. Un indice viene ad esempio creato automaticamente per un campo o più campi impostati come chiave primaria della tabella.

Gli indici vengono creati automaticamente anche quando si usa l'opzione Indice automatico all'importazione/creazione nella finestra di dialogo Opzioni di Access. Access indicizza automaticamente i campi i cui nomi iniziano o terminano con i caratteri immessi nella casella Indice automatico all'importazione/creazione, ad esempio ID, chiave, codice oppure num. Per visualizzare o modificare l'impostazione corrente, eseguire le operazioni seguenti:

  1. Fare clic su File > Opzioni. Se si usa Access 2007, fare clic sul pulsante Microsoft Office e quindi su Opzioni di Access.

  2. Fare clic su Progettazione oggetti e quindi in Struttura tabella aggiungere, modificare o rimuovere valori nella casella Indice automatico all'importazione/creazione. Usare il punto e virgola (;) per separare i valori.

    Nota : Se un nome di campo inizia o termina con un valore elencato nella casella, il campo viene indicizzato automaticamente.

  3. Fare clic su OK.

Poiché ogni indice aggiuntivo implica un carico di elaborazione supplementare per Access, l'aggiunta o l'aggiornamento dei dati influisce sulle prestazioni. Può quindi essere opportuno modificare i valori visualizzati nella casella Indice automatico all'importazione/creazione o limitare il numero di valori per ridurre al minimo la quantità di indici creati.

Inizio pagina

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa al programma Office Insider

Queste informazioni sono risultate utili?

Grazie per i tuoi commenti e suggerimenti

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×