Oracle Crea indice

Oracle Crea Indice



Nei database Oracle, un indice fa riferimento a una struttura di dati che aumenta la velocità delle operazioni di recupero dei dati su una tabella di database. Tuttavia, ciò potrebbe comportare una penalità per ulteriori operazioni di scrittura e spazio di archiviazione sul database.

Un esempio di dove un indice di database sarebbe utile è in un sistema di gestione delle relazioni con i clienti.







In un tale sistema, possiamo avere una tabella di database che memorizza le informazioni sui clienti. Ciò potrebbe includere il nome, l'indirizzo, i metodi di pagamento, le informazioni di contatto, ecc.



Se la tabella contiene molti record, forse milioni, la ricerca di informazioni specifiche sui clienti dal database può richiedere molto tempo e risorse. Questo è un fenomeno negativo, soprattutto nei database in cui le prestazioni sono critiche.



Per circumnavigare questo, possiamo usare un indice del database.





Ad esempio, possiamo creare un indice sulla colonna del nome del cliente che consenta al sistema di database di trovare e recuperare rapidamente le informazioni di un cliente specifico utilizzando il nome. Pertanto, anziché esaminare tutte le righe e le colonne della tabella, il motore di database utilizza solo l'indice per cercare le informazioni sui clienti.

In questo tutorial imparerai come utilizzare il comando CREATE INDEX nel database Oracle per inizializzare un nuovo indice.



Dichiarazione Oracle Create Index

Quanto segue mostra la sintassi dell'istruzione CREATE INDEX nei database Oracle:

CREATE INDEX nome_indice
ON nome_tabella (colonna1, colonna2, ...);

La sintassi precedente crea un indice denominato nome_indice sulla tabella con il nome nome_tabella utilizzando le colonne specificate (colonna1, colonna2 e così via) come chiave per l'indice.

In Oracle, una chiave primaria è una colonna o un insieme di colonne che identifica in modo univoco ogni riga in una tabella. Per impostazione predefinita, Oracle crea automaticamente un indice univoco sulle colonne della chiave primaria di una tabella per applicare il vincolo di univocità e migliorare le prestazioni delle ricerche della chiave primaria.

Tuttavia, in alcuni casi, potrebbe essere necessario creare manualmente un nuovo indice per una tabella specifica.

Diamo un'occhiata ad alcuni esempi di come possiamo realizzare questo.

Esempio di creazione di un indice Oracle

Supponiamo di avere una tabella contenente informazioni sui dipendenti come mostrato nell'output seguente:

seleziona nome, cognome, stipendio, data_assunzione da EMPLOYEES;

Oracle Crea indice per una singola colonna

Supponiamo di voler creare un indice utilizzando la colonna first_name. Possiamo eseguire una query come mostrato:

crea indice first_name_lookup su EMPLOYEES(FIRST_NAME);

Questa istruzione CREATE INDEX crea un indice denominato first_name_lookup nella tabella EMPLOYEES, utilizzando la colonna FIRST_NAME come chiave per l'indice. Questo indice può essere utilizzato per migliorare le prestazioni delle query che cercano i dipendenti per nome.

Una volta creato l'indice, possiamo usarlo per cercare un dipendente specifico come mostrato:

SELEZIONA nome, cognome, stipendio, data_assunzione
A PARTIRE DAL dipendenti
WHERE nome_nome = 'Guglielmo';

Risultato:

Senza l'indice first_name_lookup, il sistema del database dovrebbe eseguire la scansione dell'intera tabella EMPLOYEES per trovare tutte le righe in cui la colonna FIRST_NAME è uguale a 'William'. Tuttavia, con l'indice attivo, il sistema del database può cercare rapidamente le righe nel index utilizzando il valore 'John' come chiave e quindi recuperare le righe richieste dalla tabella, che sarà molto più veloce.

È possibile visualizzare i passaggi utilizzati quando si effettua la query utilizzando il comando di spiegazione del piano come mostrato:

spiegare il piano per SELECT nome, cognome, stipendio, data_assunzione
A PARTIRE DAL dipendenti
WHERE nome_nome = 'Guglielmo';

Piano di query risultante:

Esempio 2: Oracle crea un indice con più colonne

Allo stesso modo, possiamo creare un indice composto da più di una colonna in una data tabella. Ad esempio, supponiamo di voler creare un indice composto dalla colonna first_name e last_name.

Possiamo usare il codice come mostrato:

crea indice multi_lookup su EMPLOYEES(FIRST_NAME, LAST_NAME);

Questa istruzione CREATE INDEX crea un indice denominato multi_lookup nella tabella EMPLOYEES, utilizzando le colonne FIRST_NAME e LAST_NAME come chiave per l'indice.

Una volta creato, possiamo utilizzare questo indice come mostrato nella query di esempio come mostrato:

SELEZIONA nome, cognome, stipendio, data_assunzione
A PARTIRE DAL dipendenti
WHERE first_name = 'William' AND last_name = 'Smith';

Valore risultante:

E lì, hai un metodo per velocizzare le query del tuo database utilizzando gli indici per limitare l'ambito della ricerca.

Conclusione

L'istruzione CREATE INDEX in Oracle ci consente di creare un indice su una tabella per migliorare le prestazioni delle operazioni di recupero dei dati. Tuttavia, sebbene gli indici possano migliorare le prestazioni delle query, incorrono anche in penalità di spazio di archiviazione, portando a operazioni di velocità di scrittura ridotte, utilizzali solo quando necessario.