Crea indice cluster in SQL Server

Crea indice cluster in SQL Server
Gli indici svolgono un ruolo critico nei database. Agiscono da indici in un libro, permettendoti di cercare e individuare vari elementi e argomenti all'interno di un libro. Gli indici in un database eseguono in modo simile e aiutano ad accelerare la velocità di ricerca per i record memorizzati in un database. Crea l'indice cluster in SQL Server è spiegato in questo articolo.

Gli indici svolgono un ruolo critico nei database. Agiscono da indici in un libro, permettendoti di cercare e individuare vari elementi e argomenti all'interno di un libro. Gli indici in un database eseguono in modo simile e aiutano ad accelerare la velocità di ricerca per i record memorizzati in un database.

Gli indici cluster sono uno dei tipi di indice in SQL Server. Viene utilizzato per definire l'ordine in base al quale i dati sono archiviati in una tabella. Funziona ordinando i record su un tavolo e poi memorizzandoli.

In questo tutorial, imparerai gli indici cluster in una tabella e come definire un indice cluster in SQL Server.

SQL Server Clustering Indexes

Prima di capire come creare un indice cluster in SQL Server, apprendiamo come funzionano gli indici.

Considera la query di esempio di seguito per creare una tabella usando una struttura di base.

Crea database Product_Inventory;
Usa Product_Inventory;
Crea l'inventario delle tabelle (
id non null,
Product_Name Varchar (255),
Prezzo int,
quantità int
);

Quindi, inserire alcuni dati di esempio nella tabella, come mostrato nella query seguente:

INSERIRE IN INVENTRIA (ID, Product_Name, Price, Quantity) Valori
(1, "Smart Watch", 110.99, 5),
(2, "MacBook Pro", 2500.00, 10),
(3, 'Winter Coats', 657.95, 2),
(4, "Office Desk", 800.20, 7),
(5, "saldatura", 56.10, 3),
(6, "Tripode telefonico", 8.95, 8);

La tabella di esempio sopra non ha un vincolo chiave primario definito nelle sue colonne. Quindi, SQL Server memorizza i record in una struttura non ordinata. Questa struttura è conosciuta come un mucchio.

Supponiamo che tu debba eseguire una query per individuare una riga specifica nella tabella? In tal caso, costringerà SQL Server a scansionare l'intera tabella per individuare il record corrispondente.

Ad esempio, considera la query.

Seleziona * dall'inventario dove quantità = 8;

Se si utilizza il piano di esecuzione stimato in SSMS, noterai che la query scansiona l'intera tabella per individuare un singolo record.

Sebbene le prestazioni siano difficilmente evidenti in un piccolo database come quello sopra, in un database con un numero enorme di record, la query può richiedere più tempo per completare.

Un modo per risolvere un tale caso è utilizzare un indice. Esistono vari tipi di indici in SQL Server. Tuttavia, ci concentreremo principalmente su indici cluster.

Come accennato, un indice cluster memorizza i dati in un formato ordinato. Una tabella può avere un indice cluster, in quanto possiamo ordinare i dati solo in un ordine logico.

Un indice cluster utilizza le strutture B-albero per organizzare e ordinare i dati. Ciò consente di eseguire inserti, aggiornamenti, elimina e altre operazioni.

Avviso nell'esempio precedente; La tabella non aveva una chiave primaria. Quindi, SQL Server non crea alcun indice.

Tuttavia, se si crea una tabella con un vincolo della chiave primaria, SQL Server crea automaticamente un indice cluster dalla colonna della chiave primaria.

Guarda cosa succede quando creiamo la tabella con un vincolo chiave primario.

Crea l'inventario delle tabelle (
id int non null Key primario,
Product_Name Varchar (255),
Prezzo int,
quantità int
);

Se si esegue la reinserimento della query seleziona e si utilizza il piano di esecuzione stimato, si vede che la query utilizza un indice cluster come:

Seleziona * dall'inventario dove quantità = 8;

Su SQL Server Management Studio, è possibile visualizzare gli indici disponibili per una tabella espandendo il gruppo degli indici come mostrato:

Cosa succede quando si aggiunge un vincolo chiave primario a una tabella che contiene un indice cluster? SQL Server applicherà il vincolo in un indice non cluster in tale scenario.

SQL Server Crea indice cluster

È possibile creare un indice cluster utilizzando l'istruzione Crea Clustered Index in SQL Server. Questo viene utilizzato principalmente quando la tabella target non ha un vincolo chiave primario.

Ad esempio, considera la tabella seguente.

Drop tabella se esiste un inventario;
Crea l'inventario delle tabelle (
id non null,
Product_Name Varchar (255),
Prezzo int,
quantità int
);

Poiché la tabella non ha una chiave primaria, possiamo creare manualmente un indice cluster, come mostrato nella query seguente:

Crea indice cluster ID_index su Inventory (ID);

La query sopra crea un indice cluster con il nome ID_index nella tabella dell'inventario usando la colonna ID.

Se navighiamo per gli indici in SSMS, dovremmo vedere ID_Index come:

Incartare!

In questa guida, abbiamo esplorato il concetto di indici e indici cluster in SQL Server. Abbiamo anche trattato come creare una chiave cluster su una tabella di database.

Grazie per la lettura e rimanete sintonizzati per altri tutorial di SQL Server.