Discuteremo le varie categorie di indici nel server Microsoft SQL. I principali tipi di indici sono: indici cluster, indici non cluster, indici BTREE e indici univoci.
Tipi di indici nel server Microsoft SQL
Indice cluster
Un indice cluster definisce la disposizione fisica effettiva dei dati all'interno di una tabella. Ogni tabella nel server SQL può avere un solo indice cluster e l'indice deve essere creato su una colonna o un set di colonne univoca, non null. Poiché un indice cluster determina il layout fisico di una tabella, viene spesso utilizzato per le tabelle che sono spesso cercate in base alla loro chiave primaria o ad altri valori univoci.
Creiamo prima una tabella e inseriamo i valori in essa usando i seguenti comandi SQL:
INSERT IN Clienti (Customer_id, Customer_Name, Customer_Email, Customer_Phone)Diamo un'occhiata a un esempio di indice cluster. Per creare un indice cluster sulla colonna "Customer_id", possiamo utilizzare la seguente query SQL:
Crea indice clusterd idx_customers_customer_name su clienti (customer_name);Ciò crea un indice cluster sulla colonna Customer_Name in cui i dati nella tabella sono fisicamente ordinati in base ai valori nella colonna Customer_Name.
Per recuperare tutti i clienti il cui nome inizia con la lettera "A", possiamo usare la seguente query SQL:
SELEZIONARE *Produzione:
customer_id customer_name customer_email customer_phoneIndice non cluster
È un tipo di indice che non influisce sull'ordine fisico dei dati in una tabella. Un indice non cluster produce una struttura di dati indipendente che memorizza la chiave dell'indice e il puntatore alla riga dei dati associati nella tabella. Ciò consente alle query di individuare rapidamente le righe di dati pertinenti in base ai valori nell'indice. A differenza degli indici cluster, le tabelle nel server SQL possono avere più indici non cluster e l'indice può essere creato su qualsiasi colonna o set di colonne nella tabella.
Un esempio di un indice non cluster è il seguente:
Crea indice non clusterd idx_customer_emailCiò crea un indice non cluster nella colonna "Customer_Email" in cui i dati nella tabella rimangono fisicamente non ordinati, ma l'indice memorizza una copia ordinata dei dati nella colonna "Customer_Email".
Per recuperare tutti i clienti il cui indirizzo e -mail include il "Gmail.com ”dominio, possiamo utilizzare la seguente query SQL:
SELEZIONARE *Produzione:
customer_id customer_name customer_email customer_phoneQui, nessun cliente ha un'e -mail che contiene il "Gmail.com ”dominio, quindi il campo di output è vuoto.
Indice btree
Un indice BTREE è un modo per organizzare i dati in una struttura che ricorda un albero. Ogni nodo nell'albero contiene una gamma di valori chiave e ogni nodo foglia contiene un puntatore alla riga dei dati corrispondente. Gli indici BTREE sono comunemente utilizzati nel server SQL perché consentono una ricerca e l'ordinamento efficienti di grandi quantità di dati. Sono particolarmente utili per le query che coinvolgono ricerche di intervallo o operazioni di smistamento. Ad esempio: stipendi, numeri di telefono, ecc.
Un esempio di creazione di un indice BTREE sulla colonna "Customer_Phone" è il seguente:
Crea indice idx_customer_phoneCiò crea un indice B-Tree sulla colonna "Customer_Phone" in cui i dati nell'indice sono archiviati in una struttura simile a un albero, con ciascun nodo contenente un intervallo di valori e puntatori agli altri nodi.
Ora, vogliamo recuperare tutti i clienti il cui numero di telefono inizia con il codice area di "555" utilizzando la seguente query SQL:
SELEZIONARE *Produzione:
customer_id customer_name customer_email customer_phoneIndice univoco
È un tipo di indice che garantisce che non ci sono due righe in una tabella abbiano lo stesso valore chiave. Ciò può essere utile per far rispettare l'integrità dei dati e prevenire i record duplicati in una tabella.
Un esempio di creazione di un indice univoco sulla colonna "Customer_Email" è il seguente:
Crea indice idx_customer_email_newCiò crea un indice univoco sulla colonna "Customer_Email" in cui l'indice applica un vincolo che garantisce che non ci sono due righe nella tabella possano avere lo stesso valore nella colonna "Customer_Email".
Ora, inserisci un nuovo cliente nel tavolo con il "[email protected] "e -mail e recuperalo utilizzando la seguente query SQL:
INSERT IN Clienti (Customer_id, Customer_Name, Customer_Email, Customer_Phone)Produzione:
customer_id customer_name customer_email customer_phoneConclusione
Gli indici svolgono un ruolo importante nell'ottimizzazione delle prestazioni dei database SQL Server. Comprendere i diversi tipi di indici può aiutare gli amministratori del database a scegliere il tipo di indice più appropriato per le loro applicazioni. Creando e mantenendo efficacemente gli indici, le aziende possono garantire che i loro database stiano eseguendo in modo efficiente, consentendo loro di prendere decisioni basate sui dati e fornire un servizio migliore ai propri clienti.